Plan 2 Separate PE-CE sub-interface | non VRF
非VRF子接口
*把上述实验的第6、7步去掉建立以下步骤:
8、R1 / R2之间启用非VRF子接口e0/0.100 (100.1.1.0/24)
9、R2的IPv4 BGP进程下发布100.1.1.0/24(即通告给R6)
router bgp 100
address-family ipv4
net 100.1.1.0 mask 255.255.255.0
10、R1(config)#ip route 0.0.0.0 0.0.0.0 e0/0.100 100.1.1.2 (R1创建默认路由,下一跳指向非vrf子接口)
11、R1做NAT转换,将10.1.1.0/24转换成100.1.1.1
ip nat inside source list 1 interface e0/0.100 overload
access-list 1 permit 10.1.1.0 0.0.0.255
int lo 1
ip address 10.1.1.1 255.255.255.0
ip nat inside
int e0/0.100
ip nat outside
12、R1在BGP进程下发布默认路由,这样R7就能从VPN连接中得到一条默认路由,并从R1出来连接互联网
int e0/0.12
ip nat inside
access-list 1 permit 10.7.7.7 0.0.0.255
router bgp 1
net 0.0.0.0(重分布默认路由是不生效的,而一定要在BGP中使用network把0.0.0.0通告给邻居)
r1#show ip nat translations
Pro Inside global Inside local Outside local Outside global
icmp 100.1.1.1:7 10.1.1.1:7 6.6.6.6:7 6.6.6.6:7
icmp 100.1.1.1:2 10.7.7.7:2 6.6.6.6:2 6.6.6.6:2
当使用命令R1#traceroute 6.6.6.6 source 100.1.1.1的时候,数据包到达R4的时候丢包,因为这不是VPN路由,而只是MPLS BGP路由条目,相应地就只拥有一个标签值而不是两个。因为当TTL = 3时候,即数据探测包到达R4的时候超时,此时数据包的D:100.1.1.1,S:34.1.1.4,R4作为倒数第二跳机制在此已经pop标签,使用纯FIB表查找100.1.1.1网段的路由的时候递归失败,所以出现丢包现象
使用命令R1#ping 6.6.6.6 source 100.1.1.1能够ping通的原因是数据包D:6.6.6.6,S:100.1.1.1在传输过程中是一直不变的,所以到达R4的时候仍然能够借到下一跳5.5.5.5的标签值来转发数据包
r1#traceroute 6.6.6.6 source 10.1.1.1
Type escape sequence to abort.
Tracing the route to 6.6.6.6
1 100.1.1.2 12 msec 8 msec 8 msec
2 23.1.1.3 [MPLS: Label 3002 Exp 0] 8 msec 12 msec 4 msec
3 * * *
4 45.1.1.5 4 msec 0 msec 4 msec
5 56.1.1.6 4 msec * 4 msec