VPLS over GRE 概述
通用路由封装 (GRE) 是使用 IP 作为传输协议的隧道机制之一。隧道表现为虚拟点对点链路,每个端点上有两个端点,分别由隧道源地址和隧道目的地址标识。
GRE 的主要用途是通过 IP 网络传输非 IP 数据包。GRE 还通过 IP 云传输 IP 数据包,例如 IP 广播、IP 组播。GRE 隧道具有以下特征:
GRE 隧道是无状态的,不提供流控制机制。
GRE 是多协议的,可以对任何 OSI 第 3 层协议进行隧道传输。
GRE 使路由协议能够通过隧道传输。
GRE的安全功能较弱。
GRE 不提供可靠性或排序。此类功能通常由上层协议处理。
GRE 隧道承载组播流量。
VPLS over GRE 功能允许您在单个设备中组合基于流的服务和基于数据包的服务。可以通过 GRE 部署大规模 VPLS。
为了更好地理解此配置,请考虑以下方案:
在第一种情况下,伪线能够在通过 MPLS 网络传输的两个端点之间创建点对点电路。忽略本次讨论的信令协议,这些连接只是点对点连接。使用此方法可在站点之间提供端到端线路。从流量处理的角度来看,这是有益的,因为网关不需要学习 MAC 地址;他们只是将收到的任何内容转发到伪线。尝试提供与多个分支机构的连接时,部署此配置可能很困难。
在第二个场景中,VPLS 提供了第 2 层网络抽象。使用 VPLS 时,端点通常与每隔一个端点协商 LSP 和伪线(即,它们都是全网状的)。当节点从其某个 LAN 接口接收到以太网帧时,系统将学习源 MAC 地址(如果尚不知道),并使用连接到所有其他分支节点的每条伪线进行泛洪。但是,如果之前已经学习了目标,则会将帧发送到相应的目标。当通过其中一个伪线(即来自 MPLS 网络)接收到以太网帧时,将执行源 MAC 地址学习。下次将帧发送到该 MAC 时,无需将其泛洪,并且该帧将泛洪到节点中的每个 LAN 接口,但不会通过伪线泛洪。该网络充当分布式第 2 层交换机,在连接到网络中不同节点的设备之间提供任意到任意以太网连接。
虽然第二种方案具有显著优势(任意到任意连接、自动配置和简单抽象),但它比较复杂。每个 PE 节点都必须执行第 2 层学习和流量泛洪,这在使用多个广播/组播或对未知 MAC 地址的帧时可能会导致问题。例如,在包含一千个分支机构的拓扑中,每个接收广播数据包的分支机构必须复制该数据包 999 次,将每个副本封装在 GRE 中,然后转发生成的流量。此外,由于每个节点都执行第 2 层学习,因此每个节点可以学习的最大 MAC 地址数量有限,从而限制了域中的节点总数。