MPLS BGP VPN跨域
文章目录
背景
一般MPLS VPN体系结构都是在一个自制西戎内运行,任何VPN的路由信息都是只能在一个自治系统内按需扩展,没有提供自治系统内的VPN信息向其他自治系统扩散的功能
同一个VPN两个站点位于不同AS,普通MPLS BGP VPN不能解决。
跨域VPN-OptionA方式
方案思路
跨域VPN-OptionA是基本BGP/MPLS IP VPN在跨域环境下的应用,ASBR之间不需要运行MPLS,也不需要为跨域进行特殊配置。这种方式下,两个AS的边界ASBR直接相连,ASBR同时也是各自所在自治系统的PE。两个ASBR都把对端ASBR看作自己的CE设备,将会为每一个VPN创建VPN实例,使用EBGP方式向对端发布IPv4路由。
跨域VPN-OptionA方式(控制平面)
-
在AS100中,通过运行LDP协议, PE1分配一个与去往PE1的路由相关联的隧道标签(外层标签)T1给P1。
-
在AS100中,通过运行LDP协议, P1分配一个与去往PE1的路由相关联的隧道标签(外层标签)T2给ASBR-PE1。
-
在AS200中,同样通过运行LDP协议, ASBR-PE2分配一个与去往ASBR-PE2的路由相关联的隧道标签(外层标签)T3给P2。
-
在AS200中,通过运行LDP协议, P2分配一个与去往ASBR-PE2的路由相关联的隧道标签(外层标签)T4给PE2。
-
CE1通告路由Client1给PE1 ,路由的下一跳为CE1的接口地址。
-
PE1将IPv4路由Client1通过MP- BGP重发布为VPNv4路由,并且下一跳改为PE1 ,分配一个VPN标签V1 ,然后通告给ASBR-PE1.
-
ASBR-PE1将VPNv4路由变为IPv4路由,把IPv4路由Client1通告给ASBR-PE2 ,并且下一跳指向ASBR-PE1.
-
ASBR-PE2将IPv4路由Client1通过MP-
BGP重发布为VPNv4路由,并且下一跳ASBR-PE2,为该路由分配一个VPN标签V2 ,将其通告给PE2。 -
PE2将VPNv4路由转变为IPv4路由Client1 ,把路由Client1通告给CE2 ,并且下一跳指向PE2。
跨域VPN-OptionA方式(转发平面)
- CE2发送一个目的地为Client1的IP报文给PE2。
- PE2收到IP报文后进行MPLS标签的封装,先封装VPN标签V2 ,再封装外层标签T4 ,然后将此报文发送给P2.
- P2进行标签交换,把外层标签T4换成T3 ,然后将此报文发送给ASBR-PE2。
- ASBR-PE2去掉所有标签,将报文(普通IP报文)转发给ASBR-PE1.
- ASBR-PE1收到IP报文后进行MPL S标签的封装,先封装VPN标签V1 ,再封装外层标签T2 ,然后将此报文发送给P1。
- P1进行标签交换,把外层标签T2换成T1 ,然后将此报文发送给PE1。
- PE1收到后去掉所有标签,将报文(普通IP报文)转发给CE1
跨域VPN-OptionB方式
方案思路
跨域VPN-OptionB中,两个ASBR通过MP-EBGP交换它们从各自AS的PE设备接收的标签VPN-IPv4路由。
跨域VPN-OptionB方案中,ASBR接收本域内和域外传过来的所有跨域VPN-IPv4路由,再把VPN-IPv4路由发布出去。但MPLS
VPN的基本实现中,PE上只保存与本地VPN实例的VPN
Target相匹配的VPN路由。通过对标签VPN-IPv4路由进行特殊处理,让ASBR不进行VPN
Target匹配把收到的VPN路由全部保存下来,而不管本地是否有和它匹配的VPN实例。
跨域VPN-OptionB方式(控制平面)
- 在AS100中,通过运行LDP协议, PE1分配一一个与去往PE1的路由相关联的隧道标签(外层标签)T1给P1
- 在AS100中 ,通过运行LDP协议, P1分配一个与去往PE1的路由相关联的隧道标签(外层标签)T2给ASBR-PE1
- 在AS200中,同样通过运行LDP协议, ASBR-PE2分配一个与去往ASBR-PE2的路由相关联的隧道标签(外层标签)T3给P2
- 在AS200中 ,通过运行LDP协议, P2分配一个与去往ASBR-PE2的路由相关联的隧道标签(外层标签)T4给PE2
- CE1 通告路由Client1给PE1 ,路由的下一跳为CE1的接口地址
- PE1将IPv4路由Client1通过MP-IBGP重发布为VPNv4路由 ,并且下一跳改为PE1 ,分配一个VPN标签V1 ,然后通告给ASBR-PE1
- ASBR-PE 1通过MP-EBGP将Client1的VPNv4路由通告给ASBR-PE2 ,将下一跳改为ASBR-PE1 ,并重新分配一个VPN标签V2
- ASBR-PE2将收到的Client1 的VPNv4路由通过MP-1BGP通告给PE2 ,将下一跳指向自己,并重新分配一个VPN标签V3
- PE2将Client 1的VPNv4路由变为IPv4路由,把路由Client1通告给CE2 ,并且下一跳改为PE2
跨域VPN-OptionB方式(转发平面)
- CE2发送一一个目的地为Client1的IP报文给PE2。
- PE2收到IP报文后进行MPLS标签的封装,先封装VPN标签V3 ,再封装外层标签T4 ,然后将此报文发送给P2。
- P2进行标签交换,把外层标签T4换成T3 ,然后将此报文发送给ASBR-PE2.
- ASBR-PE2去掉外层标签,将VPN标签V3交换为V2 ,再将其转发给ASBR-PE1 (此时报文仅带有一层私网标签)。
- ASBR-PE交换VPN标签V2成V1 ,再加一个外层标签T2 ,并将报文转发给P1。
- P1进行标签交换,把外层标签T2换成T1 ,然后将此报文发送给PE1。
- PE1收到后去掉所有标签,将报文(普通IP报文)转发给CE1。
跨域VPN-OptionC方式(方案一)
前面介绍的两种方式都能够满足跨域VPN的组网需求,但这两种方式也都需要ASBR参与VPN-IPv4路由的维护和发布。当每个AS都有大量的VPN路由需要交换时,ASBR就很可能阻碍网络进一步的扩展
方案思路
在本端ASBR从对端的ASBR学到对端AS域内的带标签BGP公网路由后,通过策略为该路由分配标签,发布给支持标签能力的IBGP邻居PE,从而建立一条完整的公网LSP。
跨域VPN-OptionC方式(方案一)(控制平面)
-
在AS100中,通过运行LDP协议,PE1分配一个与去往PE1的路由相关联的隧道标签(外层标签)T1给P1
-
在AS100中,通过运行LDP协议,P1分配一个与去往PE1的路由相关联的隧道标签(外层标 签)T2给ASBR-PE1
-
在AS200中,同样通过运行LDP协议,ASBR-PE2分配一个与去往ASBR-PE2的路由相关联的隧道标签(外层标签)T3给P2
-
在AS200中,通过运行LDP协议,P2分配一个与去往ASBR-PE2的路由相关联的隧道标签(外层标签)T4给PE2
ASBR1通过EBGP会话通告一条去往PE1的带标签的IPv4路由给ASBR2,其中下一跳为ASBR1,标签为BGP标签,值为B1 -
ASBR2通过BGP会话通告一条去往PE1的带标签的IPv4路由给PE2,其中下一跳为ASBR2,标签为BGP标签,值为B2。
注意∶这里假设PE2与ASBR1所在的AS已经为去往它们的路由分配了隧道标签(公网标签),并且去往PE2的带标签路由也已经被通告。PE1与PE2建立起MP-EBGP会话
- CE1 通告路由Client1给PE1,路由的下一跳为CE1的接口地址
- PE1将IPv4路由Client1通过MP-EBGP重发布为VPNv4路由,并且下一跳改为PE1,分配一个VPN标签V1,将其通告给PE2
- PE2将VPNv4路由变为IPV4路由,把IPv4路由Client通告给CE2,并且下一跳改为PE2
跨域VPN-OptionC方式(方案一)(转发平面)
- CE2发送一个目的地为Client1的IP报文给PE2。
- PE2收到IP报文后进行MPLS标签的封装,先封装VPN标签V1,由于去往Client1的下一跳
- PE1不是直连邻居,通过查表发现去往PE1的BGP路由是带标签的路由,因此加上分配的 BGP标签B2做为中间标签,最后,由于去往PE1的路由的下一跳ASBR2也不是直连邻居,通过查表发现去往ASBR2也有关联的标签T4,因此,封装上外层标签T4。
- P2进行标签交换,把外层标签T4换成T3,然后将此报文发送给ASBR-PE2。
- ASBR2去掉外层标签,将BGP标签B2交换为B1,再将其转发给ASBR1。
- 当ASBR1收到报文后,发现B1是它分配的,所以去掉B1进一步查表转发,发现此时去往PE1的路由有一个关联的标签T2,因此,ASBR1将其加在栈顶,并转发给P1。
- P1进行标签交换,把外层标签T2换成T1,然后将此报文发送给PE1。
- PE1收到后去掉所有标签,将报文(普通IP报文)转发给CE1。
跨域VPN-OptionC方式(方案二)
方案思路
在PE和ASBR之间不用配置IBGP邻居。当ASBR从对端的ASBR学到对端AS域的带标签BGP公网路由后,通过将本端ASBR上的BGP路由引入IGP协议中,并触发为带标签的公网BGP路由建立LDP LSP,从而建立一条完整的公网LSP。
跨域VPN-OptionC方式(方案二)(控制平面)
- 在AS100中,通过运行LDP协议,PE1分配一个与去往PE1的路由相关联的隧道标签(外层标签)T1给P1。
- 在AS100中,通过运行LDP协议,P1分配一个与去往PE1的路由相关联的隧道标签(外层标 签)T2给ASBR1。
- 在AS200中,同样通过运行LDP协议,ASBR2分配一个与去往ASBR2的路由相关联的隧道标签(外层标签)T3给P2。
- 在AS200中,通过运行LDP协议,P2分配一个与去往ASBR2的路由相关联的隧道标签(外层 标签)T4给PE2。
- ASBR1通过EBGP会话通告一条去往PE1的带标签的IPV4路由给ASBR2,其中下一跳为 ASBR1,标签为BGP标签,值为B1。
- ASBR2为这条BGP标签路由触发建立LSP,分发LDP标签T5至P2,P2进而分发T6至PE2。
- PE1与PE2建立起MP-EBGP会话。
- CE1通告路由Clientl给PE1,路由的下一跳为CE1的接口地址。
- PE1将IPv4路由Client1通过MP-EBGP重发布为VPNv4路由,并且下一跳改为PE1,分配一 个VPN标签V1,将其通告给PE2。
- PE2将VPNv4路由变为IPV4路由,把IPv4路由Client通告给CE2,并且下一跳改为PE2。
跨域VPN-OptionC方式(方案二)(转发平面)
- CE2发送一个目的地为Client1的IP报文给PE2。
- PE2收到IP报文后进行MPLS标签的封装,先封装VPN标签V1,由于去往Client1的下一跳PE1不是直连邻居,通过查表发现去往PE1的标签为T6,打上T6。
- P2进行标签交换,把外层标签T6换成T5,然后将此报文发送给ASBR2。
- ASBR2去掉外层标签,将T5交换为B1,再将其转发给ASBR1。
- 当ASBR1收到报文后,发现B1是它分配的,所以去掉B1进一步查转发表,发现此时去往PE1的路由有一个关联的标签T2,因此,ASBR1将其加在栈顶,并转发给P1。
- P1进行标签交换,把外层标签T2换成T1,然后将此报文发送给PE1。
- PE1收到后去掉所有标签,将报文(普通IP报文)转发给CE1。
跨域VPN方案的配置
Option-A方案配置
配置思路
本例采用OptionA方式实现。配置主要思路是:
1.各AS内的MPLS骨干网上分别配置IGP协议,实现各自骨干网ASBR-PE和PE之间的互通。
2.各AS内的MPLS骨干网上分别配置MPLS基本能力和MPLS LDP,建立LDP LSP。
3.各AS内,PE与ASBR-PE之间建立MP-IBGP对等体关系,交换VPN路由信息。
4.各AS内,与CE相连的PE上需配置VPN实例,并把与CE相连的接口和相应的VPN实例绑定。
5.各AS内,PE与CE之间建立EBGP对等体关系,交换VPN路由信息。
6.在两个ASBR-PE上创建VPN实例,并将此实例绑定到连接另一个ASBR-PE的接口(把一个ASBR-PE当成是自己的CE),并在ASBR-PE之间建立EBGP对等体关系传递VPN路由信息。
Option-B方案配置
配置思路
本例采用OptionB方式实现。配置主要思路是:
1.各AS内的MPLS骨干网上分别配置IGP协议,实现各自骨干网ASBR-PE和PE之间的互通。
2.各AS内的MPLS骨干网上分别配置MPLS基本能力和MPLS LDP,建立LDP LSP。
3.各AS内,PE与ASBR-PE之间建立MP-IBGP对等体关系,交换VPN路由信息。
4.各AS内,与CE相连的PE上需配置VPN实例,并把与CE相连的接口和相应的VPN实例绑定。
5.各AS间,PE与CE之间建立EBGP对等体关系,交换VPN路由信息。
6.在ASBR上与另一ASBR相连接口上分别使能MPLS,且ASBR之间建立MP-EBGP对等体关系,并且不对接收的VPNv4路由进行VPN-target过滤。
难点理解
配置OptionB方式的跨域VPN
# 配置ASBR-PE1:在与ASBR-PE2相连的接口上使能MPLS。
[ASBR-PE1] interface gigabitethernet 2/0/0
[ASBR-PE1-GigabitEthernet2/0/0] ip address 192.1.1.1 24
[ASBR-PE1-GigabitEthernet2/0/0] mpls
[ASBR-PE1-GigabitEthernet2/0/0] quit
# 配置ASBR-PE1:与ASBR-PE2建立MP-EBGP对等体关系,并且不对接收的VPNv4路由进行VPN-target过滤,并且使能ASBR-PE1按下一跳分标签。ASBR–PE2的配置与ASBR–PE1类似,不再赘述。
[ASBR-PE1] bgp 100
[ASBR-PE1-bgp] peer 192.1.1.2 as-number 200
[ASBR-PE1-bgp] ipv4-family vpnv4
[ASBR-PE1-bgp-af-vpnv4] peer 192.1.1.2 enable
[ASBR-PE1-bgp-af-vpnv4] undo policy vpn-target
[ASBR-PE1-bgp-af-vpnv4] apply-label per-nexthop
[ASBR-PE1-bgp-af-vpnv4] quit
[ASBR-PE1-bgp] quit
1.为什么ASBR-PE接口使能MPLS?
使能MPLS使其对具有标签前缀的路由能进行转发
2.为什么关闭vpn-target?
缺省情况下,PE对收到的VPNv4路由进行VPN-target过滤。通过过滤的路由会被加入到路由表中,没有通过过滤的路由将被丢弃。因此,如果PE没有配置VPN实例,或者VPN实例没有配置VPN-Target,则PE丢弃所有收到的VPNv4路由。
在跨域VPN-OptionB方式中,ASBR可以不配置VPN实例,但是ASBR需要保存所有VPNv4路由信息,以通告给对端ASBR。这种情况下,ASBR应接收所有的VPNv4路由信息,不对它们进行VPN-Target过滤。
3.为什么开启 apply-label per-nexthop(可选)?
跨域VPN-OptionB场景中,ASBR使能按下一跳分标签,旨在节省ASBR上的标签资源。
ASBR按下一跳分标签是针对有相同转发行为的路由分配相同的标签:即转发路径和出标签相同的VPN路由分配相同的标签。它有别于默认的按前缀分标签的每路由每标签方式,不但丰富了ASBR上VPN路由的标签分配方式,使得标签分配更加灵活,而且当ASBR兼做PE时,该特性和PE上每实例每标签方式一起使用,可以大大节省ASBR上的标签资源,解决ASBR上的标签资源匮乏的问题。
如图1所示,跨域VPN-OptionB场景中的PE1上配置了两个VPN实例分别为VPN1和VPN2,标签分配方式为每实例每标签。在VPN1和VPN2对应的CE1和CE2上分别引入1千条私网路由,未使能ASBR VPN路由按下一跳分标签特性时,则ASBR1向ASBR2发布来自PE1的2千路由时需要消耗2千个标签;在ASBR1上使能按下一跳分标签特性后,对于下一跳和出标签相同的VPN路由,ASBR1只分配1个标签,这样ASBR1上仅需为这2千条路由分配2个标签即可。
Option-C(一)方案配置
配置思路
本例采用OptionC方式实现。配置主要思路是:
1.各AS内的MPLS骨干网上分别配置IGP协议,实现各自骨干网ASBR-PE和PE之间的互通。
2.各AS内的MPLS骨干网上分别配置MPLS基本能力和MPLS LDP,建立LDP LSP。
3.各AS内,PE与ASBR-PE之间建立MP-IBGP对等体关系,能够交换带标签的IPv4路由。
4.各AS内,与CE相连的PE上需配置VPN实例,并把与CE相连的接口和相应的VPN实例绑定。
5.各AS内,PE与CE之间建立EBGP对等体关系,交换VPN路由信息。
6.ASBR-PE与对端ASBR-PE之间能够交换带标签的IPv4路由。
7.在不同AS间的PE间建立MP-EBGP对等体关系,并配置PE之间的最大跳数。
8.在ASBR-PE上配置路由策略:对于向对端ASBR-PE发布的路由,分配MPLS标签;对于向本AS的PE发布的路由,如果是带标签的IPv4路由,为其分配新的MPLS标签。
难点理解
# 配置PE1:使能与ASBR-PE1交换标签IPv4路由的能力。PE2的配置与PE1类似,不再赘述。
[PE1] bgp 100
[PE1-bgp] peer 2.2.2.9 label-route-capability
[PE1-bgp] quit
# 配置ASBR-PE1:在与ASBR-PE2相连的接口上使能MPLS。ASBR-PE2的配置与ASBR-PE1类似,不再赘述。
[ASBR-PE1] interface gigabitethernet 2/0/0
[ASBR-PE1-GigabitEthernet2/0/0] ip address 192.1.1.1 24
[ASBR-PE1-GigabitEthernet2/0/0] mpls
[ASBR-PE1-GigabitEthernet2/0/0] quit
# 配置ASBR-PE1:创建路由策略。ASBR-PE2的配置与ASBR-PE1类似,不再赘述。
[ASBR-PE1] route-policy policy1 permit node 1
[ASBR-PE1-route-policy] apply mpls-label
[ASBR-PE1-route-policy] quit
[ASBR-PE1] route-policy policy2 permit node 1
[ASBR-PE1-route-policy] if-match mpls-label
[ASBR-PE1-route-policy] apply mpls-label
[ASBR-PE1-route-policy] quit
# 配置ASBR-PE1:对向PE1发布的路由应用路由策略,并使能与PE1交换标签IPv4路由的能力。ASBR-PE2的配置与ASBR-PE1类似,不再赘述。
[ASBR-PE1] bgp 100
[ASBR-PE1-bgp] peer 1.1.1.9 route-policy policy2 export
[ASBR-PE1-bgp] peer 1.1.1.9 label-route-capability
# 配置ASBR-PE1:对向ASBR-PE2发布的路由应用路由策略,并使能与ASBR-PE2交换标签IPv4路由的能力。ASBR-PE2的配置与ASBR-PE1类似,不再赘述。
[ASBR-PE1-bgp] peer 192.1.1.2 as-number 200
[ASBR-PE1-bgp] peer 192.1.1.2 route-policy policy1 export
[ASBR-PE1-bgp] peer 192.1.1.2 label-route-capability
[ASBR-PE1-bgp] quit
1.为什么配置 peer x.x.x.x label-route-capability?
在OptionC方式中,需要在PE间建立一条跨域的VPN LSP,相关PE、ASBR之间发布公网路由时携带MPLS标签信息。
携带MPLS标签的公网路由通过MP-BGP发布。一条路由的标签映射信息可以通过发布这条路由的BGP Update消息捎带(piggyback)。这种能力使用BGP的扩展属性实现,要求BGP对等体能够处理标签IPv4路由。
缺省情况下,BGP对等体不处理标签IPv4路由。
2.为什么配置路由策略控制标签分配?
跨域BGP LSP需要配置路由策略来控制标签的分配,对于向本AS的PE发布的路由,如果是带标签的IPv4路由,为其重新分配MPLS标签;对于从本AS的PE接收的路由,在向对端ASBR发布时,分配MPLS标签。
apply mpls-label,为IPv4路由分配标签。
Option-C(二)方案配置
配置思路
本例采用OptionC方式实现。配置主要思路是:
1.各AS内的MPLS骨干网上分别配置IGP协议,实现各自骨干网ASBR-PE和PE之间的互通。
2.各AS内的MPLS骨干网上分别配置MPLS基本能力和MPLS LDP,建立LDP LSP。
3.各AS内,与CE相连的PE上需配置VPN实例,并把与CE相连的接口和相应的VPN实例绑定。
4.各AS内,PE与CE之间建立EBGP对等体关系,交换VPN路由信息。
5.将域内PE的路由发布给对端PE:先在本端ASBR-PE上通过BGP将域内PE的路由发布给对端ASBR-PE,在远端ASBR-PE上将BGP路由引入到IGP,则远端PE就依靠IGP学到了本端域内PE的路由。
6.在ASBR-PE上配置路由策略:对于向对端ASBR-PE发布的路由,分配MPLS标签。
7.ASBR-PE与对端ASBR-PE之间能够交换带标签的IPv4路由。
8.在ASBR-PE上配置为带标签的公网BGP路由建立LDP LSP。
9.在不同AS间的PE间建立MP-EBGP对等体关系;不同AS间的PE通常不是直连的,为了在它们之间建立EBGP连接,需要配置PE之间允许的最大跳数。
难点理解
在ASBR-PE上配置为带标签的公网BGP路由建立LDP LSP
# 配置ASBR-PE1。
[ASBR-PE1] mpls
[ASBR-PE1-mpls] lsp-trigger bgp-label-route
[ASBR-PE1-mpls] quit
# 配置ASBR-PE2。
[ASBR-PE2] mpls
[ASBR-PE2-mpls] lsp-trigger bgp-label-route
[ASBR-PE2-mpls] quit
1.为什么配置lsp-trigger ?
使能MPLS LDP后,LSP将自动建立,如果不通过策略控制,将有大量的LSP建立导致资源浪费。
配置此命令,可以设定LSP的建立策略,仅由关注的路由触发LDP建立LSP,从而控制LSP的数量,减少系统资源的浪费。
ensp模拟Option-A方案配置下载
https://download.csdn.net/download/qq_43710889/15764202
ensp模拟Option-B方案配置下载
https://download.csdn.net/download/qq_43710889/15764217
ensp模拟Option-C方案(一)配置下载
https://download.csdn.net/download/qq_43710889/15764224
ensp模拟Option-C方案(二)配置下载
https://download.csdn.net/download/qq_43710889/15764233
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/100117.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...