Option 4:MP-EBGP between RRs
Option 4:MP-EBGP between RRs
拓扑1:
1.bridge
2.IGP
3.LDP
4.BGP
4.1.IPv4-BGP(R3通告1.1.1.1/2.2.2.2;R4通告5.5.5.5/6.6.6.6,还要注意控制面的next-hop-self)
4.3.VPNv4-BGP(建立R2/R5的VPNv4的邻居关系)
5.VRF advertise route
6.import/export
完成以上6步:Control-plane可以通信,但是Data-plane不可以通信
总结:
第一个拓扑:
存在的问题就是在R2/R5之间可不可以用IPv4 BGP路由建立VPNv4 BGP邻居
如果可以VPNv4路由的传递路径是什么样子:R1 <--> R2 <--> R5 <--> R6
那么R2/R3和R4/R5之间的VPNv4邻居还有没有必要存在啊?
这就是第二个拓扑出来的原因。
拓扑2:
第二个拓扑:
到这里VPN的控制面已经完全没有问题了!但数据面还不能通信。
原因:边界路由器上VPN路由的下一跳是IPv4 BGP路由,而是LDP本身是不给IPv4 BGP路由分配标签的?所以会递归到ASBR上,数据包因为去往ASBR在RR上倒数第二跳弹出了,在ASBR上丢包!
解决方法:应该是第三个拓扑ASBR之间相互send-label并在ASBR上将BGP路由重分布进IGP!
拓扑3:
第三个拓扑:
到这里数据包已经没有问题了!但是网络不是最优的!因为Option 4设计目的是为了减轻ASBR的负担。这里虽然减轻了ASBR的负担,但却增加了个RR路由的负担!
因为他们既要负责传递VPN路由又要负责数据面的转发。所以应该要有第四个拓扑。
R3/R4将BGP重分布进OSPF后,Data-plane仍然是无法通信
R3和R4之间相互send-label(send-label:将IPv4路由更新给对方同时协同label一同发过去)
r3(config)#router bgp 200
r3(config-router)#address-family ipv4
r3(config-router-af)#neighbor 34.1.1.3 send-label
拓扑4:(只是理想化的拓扑结果)
R1/R3和R4/R6之间起物理线路,并且通告进IGP协议,并宣告进BGP协议
R2和R4之间使用命令next-hop-unchanged
============================================
Topology:
step 1.configure ip address on the router.
step 2.Configure isis in the isp..
step 3.enable ip cef on the rotuer .
step 4.configure mpls in the isp.
step 5.configure vrf at r2,r7......
step 6.configure MP-BGP....
R3==============================
router bgp 100
nei 6.6.6.6 ebgp-mult
add vpnv4
nei 6.6.6.6 next-hop-u
R4===============================
router bgp 100
no bgp def ip
no bgp def route fil
nei 3.3.3.3 remote 100
nei 3.3.3.3 up lo 0
nei 45.1.1.5 remote 200
add ipv4
nei 3.3.3.3 act
nei 3.3.3.3 next-hop-s
nei 45.1.1.5 act
nei 45.1.1.5 send-label
net 2.2.2.2 mask 255.255.255.255
net 3.3.3.3 mask 255.255.255.255
R5=================================
router bgp 200
no bgp def ip
no bgp def route fil
nei 45.1.1.4 remote 100
nei 6.6.6.6 remote 200
nei 6.6.6.6 up lo 0
add ipv4
nei 45.1.1.4 act
nei 45.1.1.4 send-label
nei 6.6.6.6 act
nei 6.6.6.6 next-hop-s
exit
net 6.6.6.6 mask 255.255.255.255
net 7.7.7.7 mask 255.255.255.255
R6======================================
router bgp 200
no bgp def ip
nei 5.5.5.5 remote 200
nei 5.5.5.5 up lo 0
add ipv4
nei 5.5.5.5 act
exit
nei 3.3.3.3 remote 100
nei 3.3.3.3 up lo 0
nei 3.3.3.3 ebgp-mult
nei 7.7.7.7 remote 200
nei 7.7.7.7 up lo 0
add vpn
nei 3.3.3.3 act
nei 3.3.3.3 next-hop-u
nei 7.7.7.7 act
nei 7.7.7.7 route-r
exit
R7================================
router bgp 200
no bgp def ip
nei 6.6.6.6 remote 200
nei 6.6.6.6 up lo 0
add vpn
nei 6.6.6.6 act
step 7.configure ospf at r1,r2,r7,r8 and redistribute....
R1===========================
router ospf 100
net 1.1.1.1 0.0.0.0 a 0
net 12.1.1.1 0.0.0.0 a 0
R2===========================
router ospf 100 vrf vpna
net 12.1.1.2 0.0.0.0 a 0
red bgp 100 subnet
router bgp 100
add ipv4 vrf vpna
red ospf 100 mat i e 1 e 2
R4/R5==============
router isis
red bgp 100/200
R7=======================
router ospf 100 vrf ABC
net 78.1.1.7 0.0.0.0 a 0
red bgp 200 subnet
router bgp 200
add ipv4 vrf vpna
red ospf 100 mat i e 1 e 2
R8================================
router ospf 100
net 8.8.8.8 0.0.0.0 a 0
net 78.1.1.8 0.0.0.0 a 0
step 8.解说标签的交换过程。
需注意的地方:
(1)LDP不会给BGP路由分配标签,所以在r4 r5 上必需把BGP路由重分布到IGP,使其变成IGP路由。
(2)R4,R5要send-label,才会把标签发过去。
(3)R3,R6之间不能修改下一跳,需配置next-hop-unchange 及 ebgp-mult
以1.1.1.1为源,8.8.8.8为目的。
(1)当ping包到达R2时,R2为目的为8.8.8.8的路由分配一个顶层标签303,底层标签703。
R2#sh ip cef vrf vpna 8.8.8.8
8.8.8.8/32, version 10, epoch 0, cached adjacency 23.1.1.3
0 packets, 0 bytes
tag information set
local tag: VPN-route-head
fast tag rewrite with Fa0/0.23, 23.1.1.3, tags imposed: {303 703}
via 7.7.7.7, 0 dependencies, recursive
next hop 23.1.1.3, FastEthernet0/0.23 via 7.7.7.7/32
valid cached adjacency
tag rewrite with Fa0/0.23, 23.1.1.3, tags imposed: {303 703}
(2)到达R3时,R3对顶层标签进行交换,出标签为405。而去往8.8.8.8的路由的下一跳是7.7.7.7,所以去往8.8.8.8的路由会走7.7.7.7的顶层标签,也就是405。
R3#sh ip bgp vpn all la
Network Next Hop In label/Out label
Route Distinguisher: 100:100
1.1.1.1/32 2.2.2.2 nolabel/203
8.8.8.8/32 7.7.7.7 nolabel/703
12.1.1.0/24 2.2.2.2 nolabel/204
78.1.1.0/24 7.7.7.7 nolabel/704
R3#sh mpl f
Local Outgoing Prefix Bytes tag Outgoing Next Hop
tag tag or VC or Tunnel Id switched interface
300 Pop tag 2.2.2.2/32 1220 Fa0/0.23 23.1.1.2
301 Pop tag 4.4.4.4/32 728 Fa0/0.34 34.1.1.4
302 404 6.6.6.6/32 0 Fa0/0.34 34.1.1.4
303 405 7.7.7.7/32 1260 Fa0/0.34 34.1.1.4
(3)到达R4时,R4看到的去往7.7.7.7的标签转换是本地405,出标签502。那8.8.8.8的路由和底层标签703,到哪去了呢?它会由EBGP发送到它的邻居,这也是为什么要对EBGP邻居send-label,因为默认情况下是不会对EBGP邻居发送标签。
R4#sh mpls f
Local Outgoing Prefix Bytes tag Outgoing Next Hop
tag tag or VC or Tunnel Id switched interface
400 300 2.2.2.2/32 1260 Fa0/0.34 34.1.1.3
401 Pop tag 23.1.1.0/24 0 Fa0/0.34 34.1.1.3
402 Pop tag 3.3.3.3/32 1202 Fa0/0.34 34.1.1.3
403 Pop tag 45.1.1.5/32 0 Fa0/0.45 45.1.1.5
404 500 6.6.6.6/32 1015 Fa0/0.45 45.1.1.5
405 502 7.7.7.7/32 1260 Fa0/0.45 45.1.1.5
(4)到达R5时,502会被交换成601,底层标签和R4做同样的动作。
R5#sh mpl fo
Local Outgoing Prefix Bytes tag Outgoing Next Hop
tag tag or VC or Tunnel Id switched interface
500 Pop tag 6.6.6.6/32 6328 Fa0/0.56 56.1.1.6
501 Pop tag 67.1.1.0/24 0 Fa0/0.56 56.1.1.6
502 601 7.7.7.7/32 1890 Fa0/0.56 56.1.1.6
503 Pop tag 45.1.1.4/32 0 Fa0/0.45 45.1.1.4
506 400 2.2.2.2/32 0 Fa0/0.45 45.1.1.4
507 402 3.3.3.3/32 900 Fa0/0.45 45.1.1.4
(5)到达R6时,对去往7.7.7.7带601标签做了倒数第二跳弹出,顶层标签弹出,然后看到底层标签703。
R6#sh mpl f
Local Outgoing Prefix Bytes tag Outgoing Next Hop
tag tag or VC or Tunnel Id switched interface
600 Pop tag 5.5.5.5/32 0 Fa0/0.56 56.1.1.5
601 Pop tag 7.7.7.7/32 2558 Fa0/0.67 67.1.1.7
604 506 2.2.2.2/32 0 Fa0/0.56 56.1.1.5
605 507 3.3.3.3/32 0 Fa0/0.56 56.1.1.5
R6#sh ip bgp vpn all la
Network Next Hop In label/Out label
Route Distinguisher: 100:100
1.1.1.1/32 2.2.2.2 nolabel/203
8.8.8.8/32 7.7.7.7 nolabel/703
12.1.1.0/24 2.2.2.2 nolabel/204
78.1.1.0/24 7.7.7.7 nolabel/704
完成。