OptionB
解决思路
-
通过在ASBR设备上建立MP-BGP的方式,实现VPN实例路由的透传操作。
-
与PE将CE的VPN实例路由转发至ASBR一样,ASBR与ASBR之间也可以通过MP-BGP的方式来实现VPN实例的跨域操作。
-
与OptionA本质不同的是,ASBR上并不需要创建对应的VPN实例,只需要ASBR与ASBR之间运行MPLS,以及建立MP-BGP邻居即可。
优缺点
-
优点:配置较少,只需要在ASBR之间启用MPLS以及建立VPNv4邻居即可
-
缺点:ASBR设备还是维护了大量的VPNv4路由。
案例
- CE与PE设备均已配置完毕,配置均与OptionA方案中的配置一致。
- PE与ASBR已经建立起了MP-BGP邻居
- PE与ASBR之间IGP使用OSPF,通过环回口建立MP-BGP邻居。
- PE与ASBR之间已经建立起了MPLS LDP邻居,所以ASBR上已经配置好了MPLS基础信息了。
- 要求通过OptionB方案实现VPN实例路由的跨域传递,最终实现VPN实例路由的跨域学习和访问。
- 为了便于理解,以下补上AR2、AR3与AR4设备配置,两侧配置相似可做参考:
【AR2】
# 所有CE设备配置均相似,只发布路由以及建立EBGP
#
interface GigabitEthernet0/0/0
ip address 10.1.23.2 255.255.255.0
#
interface LoopBack0
ip address 192.168.20.254 255.255.255.0
#
bgp 100
peer 10.1.23.3 as-number 123
#
ipv4-family unicast
undo synchronization
network 192.168.20.0
peer 10.1.23.3 enable
#
【AR3】
ip vpn-instance A
ipv4-family
route-distinguisher 1:1
vpn-target 1:1 export-extcommunity
vpn-target 1:1 import-extcommunity
#
ip vpn-instance B
ipv4-family
route-distinguisher 2:2
vpn-target 2:2 export-extcommunity
vpn-target 2:2 import-extcommunity
#
mpls lsr-id 3.3.3.3
mpls
#
mpls ldp
#
interface GigabitEthernet0/0/0
ip binding vpn-instance A
ip address 10.1.23.3 255.255.255.0
#
interface GigabitEthernet0/0/1
ip binding vpn-instance B
ip address 10.1.13.3 255.255.255.0
#
interface GigabitEthernet0/0/2
ip address 10.1.34.3 255.255.255.0
mpls
mpls ldp
#
interface NULL0
#
interface LoopBack0
ip address 3.3.3.3 255.255.255.255
#
bgp 123
peer 4.4.4.4 as-number 123
peer 4.4.4.4 connect-interface LoopBack0
#
ipv4-family unicast
undo synchronization
peer 4.4.4.4 enable
#
ipv4-family vpnv4
policy vpn-target
peer 4.4.4.4 enable
#
ipv4-family vpn-instance A
peer 10.1.23.2 as-number 100
#
ipv4-family vpn-instance B
peer 10.1.13.1 as-number 200
#
ospf 1 router-id 3.3.3.3
area 0.0.0.0
network 3.3.3.3 0.0.0.0
network 10.1.34.3 0.0.0.0
#
【AR4】
mpls lsr-id 4.4.4.4
mpls
#
mpls ldp
interface GigabitEthernet0/0/0
#
interface GigabitEthernet0/0/1
ip address 10.1.45.4 255.255.255.0
mpls
#
interface LoopBack0
ip address 4.4.4.4 255.255.255.255
#
bgp 123
peer 3.3.3.3 as-number 123
peer 3.3.3.3 connect-interface LoopBack0
#
ipv4-family unicast
undo synchronization
peer 3.3.3.3 enable
#
ipv4-family vpnv4
policy vpn-target
peer 3.3.3.3 enable
#
ospf 1 router-id 4.4.4.4
area 0.0.0.0
network 4.4.4.4 0.0.0.0
network 10.1.34.4 0.0.0.0
#
1.ASBR之间配置MPLS功能并建立MP-BGP邻居
【AR4】
# MPLS功能基础配置,只需要启用mpls即可,不需要建立LDP邻居。
[AR4-mpls-ldp]int g0/0/1
[AR4-GigabitEthernet0/0/1]ip address 10.1.45.4 24
[AR4-GigabitEthernet0/0/1]mpls
# 建立MP-BGP
[AR4-GigabitEthernet0/0/1]bgp 123
[AR4-bgp]peer 10.1.45.5 as 124
[AR4-bgp]ipv4 vpnv4
[AR4-bgp-af-vpnv4]peer 10.1.45.5 enable
【AR5】
# MPLS功能基础配置,只需要启用mpls即可,不需要建立LDP邻居。
[AR5-mpls-ldp]int g0/0/1
[AR5-GigabitEthernet0/0/1]ip address 10.1.45.5 24
[AR5-GigabitEthernet0/0/1]mpls
# 建立MP-BGP
[AR5-GigabitEthernet0/0/1]bgp 124
[AR5-bgp]peer 10.1.45.4 as 123
[AR5-bgp]ipv4 vpnv4
[AR5-bgp-af-vpnv4]peer 10.1.45.4 enable
2.解决路由无法传递问题
- 虽然邻居建立起来了,但并没有在PE设备上学习到跨域后的VPN实例路由。
[AR4]dis bgp vpnv4 all peer
BGP local router ID : 10.1.34.4
Local AS number : 123
Peer V AS MsgRcvd MsgSent OutQ Up/Down State PrefRcv
3.3.3.3 4 123 92 99 0 01:28:54 Established 0
10.1.45.5 4 124 2 3 0 00:00:51 Established 0
[AR5]dis bgp vpnv4 all peer
BGP local router ID : 10.1.56.5
Local AS number : 124
Peer V AS MsgRcvd MsgSent OutQ Up/Down State PrefRcv
6.6.6.6 4 124 93 101 0 01:27:53 Established 0
10.1.45.4 4 123 2 2 0 00:00:02 Established 0
- 因为在ipv4-family vpnv4地址簇内有个命令
policy vpn-target
,用来对接收到的VPN路由或者标签块进行VPN-Target过滤。 - 但由于ASBR设备上不会创建VPN实例,也就没有VPN-Target,这样会造成ASBR上不会保存VPN路由或者标签块。
- 为此,想要ASBR继续转发VPN实例路由,就需要关闭这个功能。
undo policy vpn-target
:
[AR4]bgp 123
[AR4-bgp]ipv4 vpnv4
[AR4-bgp-af-vpnv4]undo policy vpn-target
[AR5]bgp 124
[AR5-bgp]ipv4 vpnv4
[AR5-bgp-af-vpnv4]undo policy vpn-target
- 此时再去CE设备上查看路由信息,可以学习到跨域的路由条目了。
<AR2>display bgp routing-table
BGP Local router ID is 10.1.23.2
Network NextHop MED LocPrf PrefVal Path/Ogn
*> 192.168.20.0 0.0.0.0 0 0 i
*> 192.168.70.0 10.1.23.3 0 123 124 101i
<AR1>dis bgp routing-table
BGP Local router ID is 10.1.13.1
Network NextHop MED LocPrf PrefVal Path/Ogn
*> 192.168.10.0 0.0.0.0 0 0 i
*> 192.168.80.0 10.1.13.3 0 123 124 201i
疑惑
1、为什么PE到ASBR之间需要MPLS+LDP,而ASBR之间只需要启用MPLS?
简答:PE到ASBR需要MPLS+LDP主要为也解决中间设备路由黑洞问题。
- PE至ASBR之间需要跨越多个中间P设备,而中间设备通常并不需要知道这些VPNv4路由,故只是充当中转设备。
- 通过在PE、P、ASBR设备上配置MPLS+LDP的操作,可以实现PE设备在访问ASBR设备的时候直接通过MPLS标签转发,实现快速转发的同时还能解决中间设备路由黑洞的问题。
简答:ASBR之间没有中间设备,传递的VPNv4路由携带有私网标签需要MPLS协议支持。
- ASBR之间只需要启用MPLS因为ASBR之间并没有其它中间设备,所以并不需要LDP协议。
- ASBR之间建立的MP-BGP交互的VPNv4路由携带有BGP分配的私网标签,故需要ASBR之间的链路支持MPLS协议功能才可以正常传递。