BGP&MPLS IP VPN基本原理

更新时间:2024-07-06 20:17:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

www.xahztx.com

BGP&MPLS IP VPN基本原理

一.MP-BGP

VPN为什么使用MP-BGP

前面提过,传统的BGP-4(RFC1771)只能管理IPv4的路由信息,无法正确处理地址空间重叠的VPN的路由。

为了正确处理VPN路由,VPN使用RFC2858(Multiprotocol Extensions for BGP-4)中规定的MP-BGP,即BGP-4的多协议扩展。MP-BGP实现了对多种网络层协议的支持,在Update报文中,将网络层协议信息反映到NLRI(Network Layer Reachability Information)及Next Hop。

MP-BGP采用地址族(Address Family)来区分不同的网络层协议,既可以支持传统的IPv4地址族,又可以支持其它地址族(比如VPN-IPv4地址族、IPv6地址族等)。关于地址族的一些取值可以参考RFC1700(Assigned Numbers)。

说明:VRP实现多种MP-BGP扩展应用,包括对VPN的扩展、对IPv6的扩展等,不同的扩展应在各自的地址族视图下配置。默认情况下,对于IPv4地址族,只要指定了对等体的地址及其所在的AS,本端就自动具备与对等体建立会话能力。但是对于其他地址族,需要手工使能。

MP-BGP能够在PE路由器之间传播VPN组成信息和VPN-IPv4路由,是通过在BGP中引入扩展团体属性来实现的。

MP-BGP中引入了两个新的路径属性: MP_REACH_NLRI MP_UNREACH_NLRI

这两个属性都是可选非过渡(Optional non-transitive)的,不提供多协议能力的BGP发言者将忽略这两个属性的信息,不把它们传递给其它邻居。因此,在VPN中,提供多协议能力的PE设备将把VPN路由信息通过MP-BGP发布给具备该能力的对端PE或作为ASBR的PE。不具备该能力的其他BGP对等体将忽略该属性,也就不会识别和保存VPN路由信息。

说明可选非过渡是BGP的一种属性类型。如果BGP路由器不支持此类属性,则相应的Update消息会被忽略,且不会通告给其他对等体。

下面介绍这两个属性:

二.MP_REACH_NLRI

MP_REACH_NLRI(Multiprotocol Reachable NLRI),即多协议可达NLRI,用于发布可达路由及下一跳信息。该属性由一个或多个三元组<地址族信息、下一跳信息、网络可达性信息>组成,格式如下:

www.xahztx.com

图1-1 MP_REACH_NLRI属性的格式

地址族信息域 ( 3 字节 )下一跳信息域 ( 可变长度 )网络可达性信息域 ( 可变长度 )

1.地址族信息(Address Family Information)域:由2字节的地址族标识AFI(Address Family Identifier)和1字节的子地址族标识SAFI(Subsequent Address Family Identifier)组成。

?

AFI标识网络层协议,对应RFC1700的“Address Family Number”所定义的地址族值。例如IPv4的值是1,IPv6的值是2。 SAFI表示NLRI的类型。

?

AFI值为1,SAFI值为128表示NLRI中的地址为MPLS-labeled VPN-IPv4地址。

2.下一跳信息(Next Hop Network Address Information)域:由一字节的下一跳网络地址长度和可变长度的下一跳网络地址组成。下一跳网络地址是指去往目的系统的路径上的下一个路由器网络地址。MP-BGP中,BGP发言者在向EBGP对等体发布MP_REACH_NLRI属性时,会把下一跳网络地址设置为本地与对端连接的接口地址。BGP发言者在向IBGP对等体发布MP_REACH_NLRI属性时,保持下一跳网络地址不变。 3.网络层可达性信息(NLRI)域:由一个或多个三元组<长度、标签、前缀>组成。其格式如下:

图1-2 携带标签的NLRI格式

长度域 ( 1 字节 )标签域 ( 可变长度 )前缀域 ( 可变长度 )

? ?

长度域:标签域和前缀域的总比特数。

标签域:标签域由一个或多个标签组成,每个标签长度为3字节。标签的格式

与MPLS中定义的一样,最高位表示是否为栈底,接下来三位为0,后面20位是标签值。关于标签的详细介绍请参见《VRP 特性描述 MPLS》。 前缀域:在BGP/MPLS IP VPN中,前缀域由RD和IPv4地址前缀组成。

?

当两个PE(或ASBR PE)之间交换VPN路由信息时,在Update消息中携带MP_REACH_NLRI属性。一

个Update消息可以携带多条具有相同路由属性的可达路由信息。

三.MP_UNREACH_NLRI

MP_UNREACH_NLRI(Multiprotocol Unreachable NLRI),即多协议不可达NLRI,用于通知对等体删除不可达的路由。该属性的格式如下:

www.xahztx.com

图1-3 MP_UNREACH_NLRI属性的格式

地址族标识 ( 2 字节 )子地址族标识 ( 1 字节 )撤销路由 ( 可变长度 )

1.地址族标识AFI:与MP_REACH_NLRI属性中的相同,用于标识网络层协议,对应RFC1700的“Address Family Number”所定义的地址族值。

2.子地址族标识SAFI:与MP_REACH_NLRI属性中的相同,表示NLRI的类型。

3.撤销路由(Withdrawn Routes):不可达路由列表,也是由一个或多个NLRI组成。BGP发言者可以通过在撤销路由域中携带与之前发布的可达路由中相同的NLRI来撤销路由。

BGP发言者通过携带MP_UNREACH_NLRI属性的Update消息来撤销VPN-IPv4路由。一个Update消息可以携带多条不可达路由信息。

当撤销路由时,如果指定了标签,只有指定的标签被撤销;如果没有指定标签,只有不带标签的路由被撤销。

携带MP_UNREACH_NLRI属性的Update消息不再携带其他路径属性。因为不同的路径分配的标签不同,对端只需根据标签来删除对应的路由。

三.MP-BGP能力协商

BGP路由器通过Open消息协商能力,通过查看OPEN消息中的能力参数来确定对等体所具有的能力(如使用多协议扩展来携带标签映射信息的能力)。BGP路由器如果支持某功能,并且确定对方也具备该能力,那么该BGP路由器将使用该功能与对等体交互。

Open消息包含可选的能力协商参数Capabilities,由一个或多个三元组组成。其格式如图1-4。

图1-4 BGP可选能力协商参数格式

Capability Code ( 1 bytes )Capability Length ( 1 bytes )Capability Value ( variable )

1.Capability Code:唯一标识了该能力的类型。该值为1表示BGP发言者具备MP-BGP能力。 2.Capability Length:表示能力值域的长度。MP-BGP能力参数中,能力值域的长度为4。

3.Capability Value:能力值域,可变长度,决定于Capability Code。MP-BGP能力参数中,能力值域的格式如图1-5。其中,

? ?

AFI(2字节)和SAFI(1字节)的含义与MP_REACH_NLRI中的相同。 Res.为保留域(1字节)。发送方应将其置0;接收方应忽略该域信息。

www.xahztx.com

图1-5 MP-BGP能力值域的格式

AFIRes.SAFI

目前BGP不支持动态能力协商。BGP发言者发布了一个携带可选能力参数后,

1.如果收到对端回应的Notification消息,表明对端不支持能力发布。此时BGP发言者将中断与该对等体的会话,发送一个不携带任何可选能力参数的Open消息,试图重新建立BGP连接。

2.如果对端支持能力发布,但该可选能力参数是未知的或不支持的,则协商失败。此时BGP发言者将中断与该对等体的会话,发送一个不携带该可选能力参数的Open消息(可能还携带其他可选能力参数),试图重新建立BGP连接。

因此BGP能力的变化,如使能或禁止标签路由能力、使能或禁止某地址族能力(如IPv4、IPv6、VPNv4、VPNv6)、使能GR能力等,BGP发言者都会中断与该邻居的会话,之后重新进行邻居能力协商。

BGP路由交互的条件

MP-BGP对等体之间进行路由交互,必须具备如下条件: 1.MP-BGP对等体之间有互相到对方的可达路由

BGP的运行是通过消息驱动的,这些消息通过TCP协议进行传播(端口号是179)。为了在对等体之间建立TCP连接,MP-BGP对等体之间必需有到对方的可达路由。

BGP对等体不一定就是相邻的路由器,利用逻辑链路也可以建立BGP对等体关系。为了增强BGP连接的稳定性,使用32位掩码的Loopback接口地址建立连接。

BGP不会自己去发现和计算AS内部的路由信息,一般通过引入IGP路由、静态配置的路由或直连路由到BGP路由表中。

MP-BGP对等体之间建立和维持BGP会话连接

Open消息是TCP连接建立后发送的第一个消息,用于建立BGP对等体之间的连接关系。对等体在接收到Open消息后,将发送Keepalive消息确认并保持连接的有效性。确认后,对等体间才进行其他类型消息的交换。因此MP-BGP对等体之间必须建立和维持BGP会话连接。

四.VPN-IPv4路由更新请求

以下几种情况,PE设备需要向对等体请求重传BGP Update消息来刷新路由:

? ? ?

本端入口策略发生变化

本端新增或删除VPN-Instance实例

本端VPN-Instance的VPN-Target属性的添加或删除

当需要向对等体请求重传BGP Update消息时,PE向已经和自己成功进行能力协商的邻居发送Route Refresh消息,其中携带AFI和SAFI。

邻居收到Route-Refresh消息会重传满足特定AFI和SAFI的所有路由。

www.xahztx.com

五.PE上的VPN路由选择

私网路由交叉

两台PE之间通过MP-BGP传播的路由是VPNv4路由。当接收到VPNv4路由,PE先进行如下处理: 1.检查其下一跳是否可达。如果下一跳不可达,该路由被丢弃。

2.对于RR发送过来的VPNv4路由,如果本地已有该路由,需检查其Cluster ID是否相同。如果相同,丢弃该路由。

3.进行BGP的路由策略过滤,如果不通过,拒丢弃该路由。

之后,PE把没有丢弃的路由与本地的各个VPN实例的Import Target属性匹配。 VPNv4路由与本地VPN实例的VPN-Target进行匹配的过程称为私网路由交叉。PE在收到VPNv4路由后,既不进行优选,也不检查隧道是否存在,直接将其与本地的VPN实例进行交叉。

PE上有种特殊的路由——来自本地CE的属于不同VPN的路由。对于这种路由,如果其下一跳直接可达或可迭代成功,PE也将其与本地的其他VPN实例的Import Target属性匹配,该过程称为本地交叉。要使本地交叉成功,需要在被交叉的路由所属VPN对应的BGP-VPN实例地址族下引入直连路由。

说明为了能够将报文正确转发出去,BGP路由器必须先找到一个直接可达的地址,通过这个地址到达路由表中指示的下一跳。在上述过程中,去往直接可达地址的路由被称为依赖路由,BGP路由依赖于这些路由指导报文转发。根据下一跳地址找到依赖路由的过程就是路由迭代。

在PE上执行display ip routing-table vpn-instance vpn-instance-name verbose命令可查看该PE上交叉成功的私网路由和来自本地CE的路由。该命令的显示结果中,只有对应的状态带有“Active”的路由才被放入VPN实例路由表。VPN实例路由表的查看方法是执行不带参数verbose的display ip routing-table vpn-instance vpn-instance-name命令。

隧道迭代

为了将私网流量通过公网传递到另一端,需要有一条公网隧道承载这个私网流量。因此私网路由交叉完成后,需要根据目的IPv4前缀进行路由迭代,查找合适的隧道(本地交叉的路由除外);只有隧道迭代成功,该路由才被放入对应的VPN实例路由表。将路由迭代到相应的隧道的过程叫做隧道迭代。

隧道迭代成功后,保留该隧道的标识符(Tunnel ID),供后续转发报文时使用。Tunnel ID用于唯一标识一条隧道。VPN报文转发时根据Tunnel ID查找对应的隧道,然后从隧道上发送出去。

display ip routing-table vpn-instance vpn-instance-name verbose命令的显示结果中,路由的状态带有“GotQ”表示隧道迭代成功;带有“WaitQ”表示隧道迭代不成功。隧道迭代成功的交叉路由对应的隧道标识符(Tunnel ID)不为0x0。如果交叉路由的隧道标识符为0x0,表示隧道迭代不成功。去往本地CE的报文不从隧道转发,因此本地CE路由和本地交叉路由对应的隧道标识符都是0x0。

私网路由的选择规则

经过路由交叉和隧道迭代的路由并不是全部被放入VPN实例路由表。从本地CE收到的路由和本地交叉路由也不是全部被放入VPN实例路由表。

对于到同一目的地址的多条路由,如果不进行路由的负载分担,按如下规则选择其中的一条:

www.xahztx.com

?

同时存在直接从CE收到的路由和交叉成功后的同一目的地址路由,则优选从CE收到的路由。

同时存在本地交叉路由和从其他PE接收并交叉成功后的同一目的地址路由,则优选本地交叉路由。

优先选择从本地CE收到的路由。只有一条从本地CE收到的路由而有多条交叉路由的情况下,也只选择从本地CE收到的路由。

只在从本地CE收到的路由之间分担或只在交叉路由之间分担,不会在本地CE收到的路由和交叉路由之间分担。

选择了交叉路由进行负载分担后,一旦从本地CE收到VPN路由,PE选择从本地CE收到的路由之间进行负载分担。 负载分担的AS-PATH属性必须完全相同。

?

对于到同一目的地址的多条路由,如果进行路由的负载分担,则:

?

?

?

?

六.VPNv4路由发布

PE设备通过MP-BGP发布给对端PE的VPNv4路由分为两种情况:

?

从本地CE接收的IPv4路由

?

没有配置负载分担时,从CE收到的路由直接转换为VPNv4的路由发送所有对等体

配置了负载分担后,从CE收到的路由优选后条数发生了变化,但发送给对等体的只有一条,下一跳为本PE设备。配置负载分担和取消负载分担的配置都会使PE重新发布这条VPNv4路由。

?

?

从其他对等体接收过来的VPNv4路由

PE把VPNv4路由向别的对等体发送前,需要检查是否从该对等体收到了RD相同的同一条路由:如果没有收到就发送给该对等体;如果收到了,则不再发送。

MP-BGP的VPN-IPv4路由发布策略仍与普通BGP相同:

? ? ?

存在多条有效路由时,BGP Speaker只将最优的路由发布给对等体。 BGP Speaker只把自己使用的路由发布给对等体。

BGP Speaker从EBGP获得的路由会向它所有BGP对等体发布(包括EBGP对等体和IBGP对等体)。 BGP Speaker从IBGP获得的路由不向它的IBGP对等体发布。

BGP Speaker从IBGP获得的路由发布给它的EBGP对等体(在不使能BGP与IGP同步特性的情况下)。 连接一旦建立,BGP Speaker把自己所有BGP路由发布给新对等体。

? ?

?

七.应用于BGP/MPLS IP VPN的隧道

BGP/MPLS IP VPN中常用的隧道有:

?

LSP隧道

使用标签转发,是应用于BGP/MPLS IP VPN中常见的隧道。使用LSP隧道作为BGP/MPLS IP VPN的公网隧道,骨干网在转发VPN数据转发时,只在PE设备分析IP报文头,而不用在VPN报文经过的每一台设备都分析IP报文头。这样,节约了对VPN报文的处理时间,可降低VPN报文时延。另外,标签能够被任意的链路层所支持。LSP在功能上与ATM和帧中继的虚电路相同,其安全性与ATM和帧

www.xahztx.com

中继网络相当。因此,如果传输BGP/MPLS IP VPN报文的骨干网设备都支持MPLS,建议使用LSP或MPLS TE(Traffic Engineered)作为公网隧道。

?

GRE隧道

如果网络边缘的PE路由器具备MPLS功能,但骨干网核心路由器(P路由器)只提供纯IP功能,不具备MPLS功能。这样,就不能使用LSP作为公网隧道。此时,可以使用GRE隧道替代LSP作为VPN骨干网隧道。GRE的详细介绍请参见“GRE协议”。

?

L2TP隧道

对于出差用户,不可能总是可以直接接入到MPLS骨干网的PE设备上。这样就无法通过Internet或者是IP骨干网直接访问MPLS VPN内部的站点。此时可以采用L2TP协议来解决此问题。这种技术也称为L2TP接入三层VPN技术。详细介绍请参见“L2TP协议”。

?

MPLS TE隧道

MPLS TE是MPLS技术与TE流量工程相结合的技术,通过建立到达指定路径的LSP隧道进行资源预留,使网络流量绕开拥塞节点,达到平衡网络流量的目的。MPLS TE中用到的这种LSP隧道就称为MPLS TE隧道,也是应用于BGP/MPLS IP VPN中常见的隧道。

除了具备LSP隧道的优势外,MPLS TE隧道在解决网络拥塞问题方面有着自己的优势。利用MPLS TE隧道,服务提供商能够充分利用现有的网络资源,提供多样化的服务。同时可以优化网络资源,进行科学的网络管理。

在MPLS VPN业务中,运营商往往需要为VPN用户的各种业务类型(如语音业务、视频业务、关键数据业务、普通上网业务)提供端到端的QoS保证。为满足用户需求,可以使用MPLS TE隧道,为用户创建具有QoS保证的隧道。

此外,使用MPLS TE隧道,运营商还可以根据VPN用户的不同服务要求,通过一定的策略构建各种有QoS保证的VPN服务,具体请参见十三.VPN QoS。

八.MP-BGP标签分配

在BGP/MPLS IP VPN中,PE通过MP-BGP发布给骨干网的其他相关的PE前,需要将私网路由与MPLS标签关联。当用户数据包在骨干网传输时,携带MPLS标签。

每个PE在分配标签前,需要发布一个标识自己的路由。该路由需要通过IGP发布给骨干网的其他PE节点,使其他节点根据该路由为PE分配标签。为了减少全网LSP数量,推荐使用只对32位掩码的Loopback接口的路由分配标签,一般与BGP会话使用同一个Loopback接口。 PE分配标签的方法有多种。VRP实现如下两种方法:

?

基于路由的MPLS标签分配:默认情况下,VRP为VPN路由表的每一条路由分配一个标签(one label per route)。这种方式的缺点是:当路由数量比较多时,路由器入标签映射表ILM(Incoming Label Map)需要维护的表项也会增多,从而提高了对路由器容量的要求。

基于VPN的MPLS标签分配:为整个VPN实例分配一个标签,该VPN实例里的所有路由都共享一个标签。使用这种分配方法的好处是节约了标签。

?

运营商的运营商(Carriers' Carrier)中采用基于路由的MPLS标签分配方式,在目前的VRP版本中,不能在运营商的运营商组网中使用基于VPN的MPLS标签分配。

www.xahztx.com

九基本BGP/MPLS IP VPN的路由发布

概述

在基本BGP/MPLS IP VPN组网中,VPN路由信息的发布涉及CE和PE,P路由器只维护骨干网的路由,不需要了解任何VPN路由信息。PE路由器一般只维护自身接入的VPN的路由信息,不维护所有VPN路由。

VPN路由信息的发布过程包括三部分:

? ? ?

本地CE到入口PE 入口PE到出口PE 出口PE到远端CE

完成这三部分后,本地CE与远端CE之间建立可达路由,VPN路由信息能够在骨干网上发布。 下面分别对这三部分进行介绍。

本地CE到入口PE的路由信息交换

CE与直接相连的PE建立邻居或对等体关系后,把本站点的VPN路由发布给PE。CE与PE之间可以使用静态路由、RIP、OSPF、IS-IS或BGP。无论使用哪种路由协议,CE发布给PE的都是标准的IPv4路由。 PE上的各VPN路由转发表之间相互隔离,并与公网路由转发表相互独立。PE从CE学习路由信息时,PE需要区分该路由应注入哪个路由转发表。通常的静态路由和路由协议自身并不具备这种区分能力,必须使用手工配置实现:

1.如果CE与PE之间使用静态路由,需要在配置静态路由时指定VPN实例(使用命令ip route-static vpn-instance)。 通常情况下,静态路由用于stub VPN的CE与PE间交换路由,或者CE是个主机或者交换机的情况。如果CE是台主机或者交换机,通常在与之相连的PE上配置到该CE所在site的静态路由,无需使用路由协议。

说明:如果一个VPN接收本VPN以外的、非PE发布的路由,并将这些路由发布给PE,这类VPN称为过渡VPN(transit VPN)。 只接收本VPN路由以及PE发布的路由的VPN称为stub VPN。

PE与CE之间采用静态路由的好处是配置简单,并且可以避免因CE设备的路由振荡影响骨干网PE设备的BGP VPNv6路由的稳定性。

2.如果CE与PE之间使用IGP,每个VPN单独使用一个进程,不同的VPN使用不同的进程。此时需要在配置IGP进程时指定VPN实例(例如,ospf process-id vpn-instance vpn-instance-name)。 当CE与PE之间使用IGP交换路由信息时,如果站点内包括后门连接(backdoor link)时,处理相对复杂,具体请参见错误!未找到引用源。。另外,在Hub&Spoke组网中IGP在CE与PE之间的使用也有一定的限制,具体请参见错误!未找到引用源。。

说明后门连接是指两个Site之间的连接,该连接不经过VPN骨干网。这两个site的流量主要通过VPN骨干网的链路传输,后门连接作为备份链路。

3.如果CE与PE之间运行EBGP,需要在相应的BGP VPN实例视图下使能MP-EBGP对等体。 从技术角度看,使用BGP是较好的选择:

?

BGP是一种外部网关协议,可以用来实现不同AS之间传递路由信息。

www.xahztx.com

? ? ?

使用BGP,CE更易于传递路由属性(如AS-PATH)给PE。

BGP提供了丰富的路由策略,能够对VPN路由实现灵活的过滤和选择。 如果站点内包括backdoor,BGP也能正确处理,而使用IGP的处理相对复杂。

如果PE和CE之间运行EBGP,由于BGP使用AS号检测路由环路,为保证路由信息的正确发送,需要为物理位置不同的节点分配不同的AS号。但VPN站点使用的是私有AS号,不同VPN的站点可能使用相同的AS号。Transit VPN站点使用的AS号要求全局唯一。

Stub VPN站点可以复用相同的私有AS号,此时需要在PE上使用十一.BGP的AS号替换功能。

入口PE到出口PE的路由信息交换

入口PE到出口PE的路由信息交换过程可分为三部分:

1.PE从CE学到VPN路由信息后,为这些标准IPv4路由增加RD和VPN Target属性,形成VPN-IPv4路由,存放到VPN实例中。

2.入口PE通过MP-BGP的Update报文把VPN-IPv4路由发布给出口PE。Update报文中还携带RD、VPN-Target属性及MPLS标签。

BGP发布的VPN-IPv4路由,首先通过策略路由的过滤,然后通过BGP路由策略的过滤,才能被下一跳PE接收到。

出口PE收到VPN-IPv4路由后,进行本地交叉、隧道迭代和路由优选,决定是否将该路由加入到VPN实例的路由表。从其他PE接收的并被加入到VPN路由表的路由,本地PE为其保留如下信息以供后续转发报文时使用:

? ?

MP-BGP Update消息中携带的MPLS标签值 隧道迭代成功后的Tunnel ID

出口PE到远端CE的路由信息交换

远端CE有多种方式可以从出口PE学习VPN路由,包括静态路由、RIP、OSPF、IS-IS和BGP,与本地CE到入口PE的路由信息交换相同。此处不再赘述。值得注意的是,出口PE发布给远端CE的路由是普通IPv4路由。

VPN路由发布过程举例

下面以图1-6(PE-CE之间使用BGP,公网隧道为LSP)为例,说明将CE2的一条路由发送到CE1的过程。

www.xahztx.com

图1-6 CE2->CE1的路由发布过程

CE1 Ingress PEP Egress PECE2IGP路由表引入BGP路由表BGPUpdateVPN实例路由表VPN backbone引入IGP路由表BGP路由表VPN实例路由表BGPUpdate路由交叉&隧道迭代BGPUpdate携带Label、RD和Export-RT表示路由表表示消息报文

1.在CE2的BGP IPv4单播地址族下引入IGP路由。

2.CE2将该路由随EBGP的Update消息一起发布给Egress PE。Egress PE从连接CE2的接口收到Update消息,把该路由转化为VPN IPv4路由,加入对应的VPN实例路由表。如果Egress上有其他VPN实例的路由表,比较其Import RT是否与该路由的Export RT一样。如果一样,将该路由加入相应的VPN实例的路由表。

3.同时,Egress PE为该路由分配MPLS标签,并将标签和VPNI IPv4路由信息加入MP-IBGP的Update消息中的NLRI,Export-RT属性加入MP-BGP Update消息的扩展团体属性字段中,将Update消息发送给Ingress PE。

4.Ingress PE先要对该路由进行BGP的路由策略过滤。如果不通过,则拒绝接收;如果通过,则Ingress PE对该路由进行路由交叉。交叉成功则根据路由目的IPv4地址进行隧道迭代,查找合适的隧道。如果迭代成功,则保留该隧道的Tunnel ID和标签,并将路由加入该VPN实例路由表。

5.Ingress PE把该路由通过BGP Update消息发布给CE2。此时路由是普通IPv4路由。

6.CE2收到该路由后,把该路由加入BGP路由表。通过在IGP中引入BGP路由的方法可使CE把该路由加入IGP路由表。

上面过程只是将CE2的路由发布给CE1。要实现CE1与CE2的互通,还需要将CE1的路由发布给CE2,其过程与上面的步骤类似,此处不再赘述。

十.基本BGP/MPLS IP VPN报文转发

在BGP/MPLS IP VPN骨干网中,P路由器并不知道VPN路由信息,VPN报文通过隧道在PE之间转发。以图1-6为例说明BGP/MPLS IP VPN报文的转发过程。图1-7是CE1发送报文给CE2的过程。其中,I-L表示内层标签,O-L表示外层标签。

本文来源:https://www.bwwdw.com/article/o1m.html

Top