Back-to-Back VRFs
优点:
配置思路简单,跟普通的域内MPLS ×××没有太多区别;
缺点:
在ASBR上需要有各个VRF,需要保存全网的×××v4路由,ASBR之间需要多个接口分别划进每个VRF里。ASBR负担较重。
配置说明:
端口连接规律:RN E0/0 -- R(N+1)0/1
PE跟CE起OSPF协议,AS内部IGP使用EIGRP,ASBR之间使用RIP协议;
CE端R1配置案例:
hostname R1
interface Loopback0
ip address 1.1.1.1 255.255.255.0
!
interface Ethernet0/0
ip address 12.1.1.1 255.255.255.0
router ospf 1 # 普通的路由协议,跟PE起路由协议,此处以OSPF为例。
log-adjacency-changes
network 1.1.1.1 0.0.0.0 area 0
network 12.1.1.0 0.0.0.255 area 0
hostname R2
ip vrf ×××_A #为CE客户建立VRF
rd 100:1
route-target export 100:1 (将本端CE的路由发布出去,并标记为100:1)
route-target import 100:4 (导入的是R4发布的route-target)
mpls label range 200 299 (为便于排错,对mpls标签分配进行手动分配范围)
interface Loopback0
ip address 2.2.2.2 255.255.255.255
!
interface Ethernet0/0
ip address 23.1.1.2 255.255.255.0
mpls ip
!
interface Ethernet0/1
ip vrf forwarding ×××_A
ip address 12.1.1.2 255.255.255.0
!
router eigrp 90 # AS 100 中的IGP,此处以EIGRP为例,本博文重点演示MP-BGP的配置,此处有鲁莽之处,敬请知悉。
network 0.0.0.0
no auto-summary
!
# 跟用户起的路由协议
router ospf 1 vrf ×××_A
router-id 2.2.2.2
log-adjacency-changes
redistribute bgp 100 subnets # 将MP-BGP学习到的路由发布到ospf中,通告给本端CE。
network 12.1.1.0 0.0.0.255 area 0
!
router bgp 100
no bgp default ipv4-unicast# 如果没有传递互联网路由的必要,就可以关掉ipv4的能力
bgp log-neighbor-changes
neighbor 4.4.4.4 remote-as 100
neighbor 4.4.4.4 update-source Loopback0
!
address-family ***v4
neighbor 4.4.4.4 activate # 激活跟ASBR的MP-BGP
neighbor 4.4.4.4 send-community extended
exit-address-family
!
address-family ipv4 vrf ×××_A
no synchronization
redistribute ospf 1 vrf ×××_A match internal external 1 external 2 nssa-external 1 nssa-external 2 #将从本端CE学到的路由发布到MP-BGP中,传出去
exit-address-family
!
hostname R3
只运行IGP和LDP进行分发标签,提供数据传输通道
R3:
mpls label range 300 399
interface Loopback0
ip address 3.3.3.3 255.255.255.255
!
interface Ethernet0/0
ip address 34.1.1.3 255.255.255.0
mpls ip
!
interface Ethernet0/1
ip address 23.1.1.3 255.255.255.0
mpls ip
!
router eigrp 90
network 0.0.0.0
no auto-summary
!
hostname R4 #R4的关键是导入RT怎么设置
ip vrf ×××_A # ASBR上为每个用户配置一个VRF
rd 100:1
route-target export 100:4 (导出的是此ASBR通过路由协议(RIP)学到对端ASBR的路由,导出给本AS PE的route-target)
route-target import 100:1 (导入本AS的PE设置的RT)
route-target import 200:5 (导入对端ASBR的export RT,而不是对端AS PE设置的export RT)
!
router eigrp 90 (本AS的IGP)
network 0.0.0.0
no auto-summary
!
router rip (跟对端ASBR 交换路由信息的路由协议)
!
address-family ipv4 vrf ×××_A
redistribute bgp 100 metric 2 (将本AS内的***v4路由重分发进rip,宣告给对端ASBR)
network 45.0.0.0
no auto-summary
version 2
exit-address-family
!
router bgp 100
no bgp default ipv4-unicast
bgp log-neighbor-changes
neighbor 2.2.2.2 remote-as 100
neighbor 2.2.2.2 update-source Loopback0
!
address-family ***v4 #激活跟PE R2的MP-BGP能力
neighbor 2.2.2.2 activate
neighbor 2.2.2.2 send-community extended
exit-address-family
!
address-family ipv4 vrf ×××_A # 将本AS内的***v4路由重分发进RIP,以便宣告给对端ASBR
no synchronization
redistribute rip
exit-address-family
!
hostname R5
ip vrf ×××_A
rd 200:7
route-target export 200:5 (将从对端ASBR 学来的路由导出给本端AS内的PE,和将从本端PE学到的路由导出给对端ASBR,所以对端ASBR要导入这个,本端PE也要导入这个RT)
route-target import 200:8 (导入本端PE的路由)
route-target import 100:4 (导入对端ASBR传来的路由)
!
mpls label range 500 599 # 下面就不做解释了,不懂就看上面的注释。
!
router eigrp 90
network 0.0.0.0
no auto-summary
!
router rip
!
address-family ipv4 vrf ×××_A
redistribute bgp 200 metric 2
network 45.0.0.0
no auto-summary
version 2
exit-address-family
!
router bgp 200
no bgp default ipv4-unicast
bgp log-neighbor-changes
neighbor 7.7.7.7 remote-as 200
neighbor 7.7.7.7 update-source Loopback0
!
address-family ***v4
neighbor 7.7.7.7 activate
neighbor 7.7.7.7 send-community extended
exit-address-family
!
address-family ipv4 vrf ×××_A
no synchronization
redistribute rip
exit-address-family
!
interface Loopback0
ip address 5.5.5.5 255.255.255.255
!
interface Ethernet0/0
ip address 56.1.1.5 255.255.255.0
mpls ip
!
interface Ethernet0/1
ip vrf forwarding ×××_A
ip address 45.1.1.5 255.255.255.0
!
hostname R6
mpls label range 600 699
interface Loopback0
ip address 6.6.6.6 255.255.255.255
!
interface Ethernet0/0
ip address 67.1.1.6 255.255.255.0
mpls ip
!
interface Ethernet0/1
ip address 56.1.1.6 255.255.255.0
mpls ip
!
router eigrp 90
network 0.0.0.0
no auto-summary
!
hostname R7
ip vrf ×××_A
rd 200:7
route-target export 200:8
route-target import 200:5
!
mpls label range 700 799
!
!
interface Loopback0
ip address 7.7.7.7 255.255.255.255
!
interface Ethernet0/0
ip vrf forwarding ×××_A
ip address 78.1.1.7 255.255.255.0
!
interface Ethernet0/1
ip address 67.1.1.7 255.255.255.0
mpls ip
!
!
router eigrp 90
network 0.0.0.0
no auto-summary
!
router ospf 1 vrf ×××_A
router-id 7.7.7.7
log-adjacency-changes
redistribute bgp 200 subnets
network 78.1.1.0 0.0.0.255 area 0
!
router bgp 200
no bgp default ipv4-unicast
bgp log-neighbor-changes
neighbor 5.5.5.5 remote-as 200
neighbor 5.5.5.5 update-source Loopback0
!
address-family ipv4
no synchronization
no auto-summary
exit-address-family
!
address-family ***v4
neighbor 5.5.5.5 activate
neighbor 5.5.5.5 send-community extended
exit-address-family
!
address-family ipv4 vrf ×××_A
no synchronization
redistribute ospf 1 vrf ×××_A match internal external 1 external 2 nssa-external 1 nssa-external 2
exit-address-family
!
hostname R8
interface Loopback0
ip address 8.8.8.8 255.255.255.255
!
interface Ethernet0/1
ip address 78.1.1.8 255.255.255.0
!
router ospf 1
router-id 8.8.8.8
log-adjacency-changes
network 8.8.8.8 0.0.0.0 area 0
network 78.1.1.0 0.0.0.255 area 0
!
R1#sh ip route R1 学到的路由
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route, + - replicated route
Gateway of last resort is not set
1.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C 1.1.1.0/24 is directly connected, Loopback0
L 1.1.1.1/32 is directly connected, Loopback0
8.0.0.0/32 is subnetted, 1 subnets
O E2 8.8.8.8 [110/1] via 12.1.1.2, 03:00:42, Ethernet0/0
12.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C 12.1.1.0/24 is directly connected, Ethernet0/0
L 12.1.1.1/32 is directly connected, Ethernet0/0
45.0.0.0/24 is subnetted, 1 subnets
O E2 45.1.1.0 [110/1] via 12.1.1.2, 03:00:42, Ethernet0/0
78.0.0.0/24 is subnetted, 1 subnets
O E2 78.1.1.0 [110/1] via 12.1.1.2, 03:00:42, Ethernet0/0
R1#traceroute 8.8.8.8 source loop0 标签交换过程
Type escape sequence to abort.
Tracing the route to 8.8.8.8
1 12.1.1.2 4 msec 0 msec 0 msec
2 23.1.1.3 [MPLS: Labels 301/404 Exp 0] 0 msec 0 msec 0 msec
3 45.1.1.4 [MPLS: Label 404 Exp 0] 0 msec 4 msec 8 msec
4 45.1.1.5 4 msec 4 msec 4 msec
5 56.1.1.6 [MPLS: Labels 601/703 Exp 0] 8 msec 4 msec 4 msec
6 78.1.1.7 [MPLS: Label 703 Exp 0] 4 msec 8 msec 4 msec
7 78.1.1.8 4 msec * 4 msec
R2#sh bgp ***v4 unicast all labels MP-BGP为***v4路由分的标签
Network Next Hop In label/Out label
Route Distinguisher: 100:1 (×××_A)
1.1.1.1/32 12.1.1.1 205/nolabel
8.8.8.8/32 4.4.4.4 nolabel/404
12.1.1.0/24 0.0.0.0 206/nolabel(×××_A)
45.1.1.0/24 4.4.4.4 nolabel/403
78.1.1.0/24 4.4.4.4 nolabel/405
R2#sh mpls forwarding-table LDP分配的标签
Local Outgoing Prefix Bytes Label Outgoing Next Hop
Label Label or Tunnel Id Switched interface
200 Pop Label 3.3.3.3/32 0 Et0/0 23.1.1.3
201 Pop Label 34.1.1.0/24 0 Et0/0 23.1.1.3
202 301 4.4.4.4/32 0 Et0/0 23.1.1.3
205 No Label 1.1.1.1/32[V] 5116 Et0/1 12.1.1.1
206 No Label 12.1.1.0/24[V] 8508 aggregate/×××_A