配置 MPLS_VPN 方法:
说明:MP-BGP 是配置 MPLS-VPN 的必须协议,在开始配置 MPLS_VPN 之前,应该先将 MPLS区域的相关接 配置 MPLS_VPN 时,需要在边缘路由器 R1 和 R3 之间使用 MP-BGP 协议,我们使用路由器的loopback 口作为源地址来建立邻居,首先测试双方 loopback 口已经实现标签交换。, 口实现标签交换,如各自的直连口,loopback 口均可看见已经通过标签进行交换;
1, , R1, ,R2 和 和 R3 配置 OSPF 协议 (为配置 MPLS 区域的连通性基本前提)
在 R1,R2 和 R3:
Router ospf 1 Router-id x.x.x.x Network x.x.x.x 0.0.0.0 area 0 Network y.y.y.y 0.0.0.0 area 0 在相应的接口下配置:ip ospf network point-to-point 2, , 配置 MPLS 区域:
在 R1,R2 和 R3:
Mpls label protocol ldp
在相应的接口下配置:mpls ip
(r1#sh mpls ldp discovery detail// 查看Router-ID 和Transport IP地址
说明:要解决邻居建立问题,就要让双方的Transport IP能够相通,而Transport IP就是选用Rotuer-ID的IP地址,可以修改Rotuer-ID为可路由的接口,即可解决Transport IP互通。
改R1Router-Id为S1/1接口地址
r1(config)#mpls ldp router-id serial 1/1 force force说明立即生效 说明:可以看到Rotuer-ID已经改成接口S1/1的地址12.1.1.1,Transport IP也随即变成了12.1.1.1。
) 3, , 配置普通 BGP: 说明:在R1和R3之间配置普通BGP,因为在配置MP-BGP之前,需要保证正常的BGP邻居是正常连通的. R1(config)#router bgp 100 R1(config-router)#neighbor 3.3.3.3 remote-as 100
R1(config-router)#neighbor 3.3.3.3 update-source loopback 0 R3(config)#router bgp 100 R3(config-router)#neighbor 1.1.1.1 remote-as 100 R3(config-router)#neighbor 1.1.1.1 update-source loopback 0 R3# show ip bgp summary
// 可以看到R3与R1已建立正常的BGP邻居关系。
4, , 在 在PE 上创建VRF 和RD 值: 说明:在PE上为用户创建相应的VRF,并且指定RD值,需要通信的两个用户网络之间,VRF和RD值保持一致。
R1(config)#ip vrf zqx1 R1(config-vrf)#rd 100:1
R3(config)#ip vrf zqx1 R3(config-vrf)#rd 100:1
5, , 在 在PE 上将连CE 的接口划入VRF: 说明:在PE上将相应的CE接口划入相应的VRF,以后从该接口进入的用户数据包,则属于相应的VRF,该用户的数据只能根据该VRF路由表作出转发决策。
R1(config)#interface s1/1 R1(config-if)#ip vrf forwarding zqx1 % Interface Serial1/1 IP address 14.1.1.1 removed due to enabling VRF zqx1 R1(config-if)#ip add 14.1.1.1 255.255.255.0
说明:当一个正常的接口被划入VRF之后,接口上的地址会消失,所以需要重新配置一次该接口的IP地址。
R3(config)#interface s1/0 R3(config-if)#ip vrf forwarding zqx1 % Interface Serial1/0 IP address 36.1.1.3 removed due to enabling VRF zqx1 R3(config-if)#ip add 36.1.1.3 255.255.255.0
在PE上查看VRF的路由表情况:
说明:从用户发到PE的数据包,PE只能根据该用户的VRF路由表作出转发决策,也就是说,如果两个要通信的用户网络,如果各自的内网路由没有出现在PE的VRF路由表里,那么他们将不能通信,
(1 )
在R1上查看VRF vpn1的路由表: r1#sh ip route vrf zqx1
14.0.0.0/24 is subnetted, 1 subnets
C 14.1.1.0 is directly connected, Serial1/1
说明:可以看见,PE在将连CE R4的接口s1/1划入VRF zqx1之后,该接口就进入VRF zqx1的路由表。并且要说明的是,该接口就不会再出现在全局路由表里。
(2)
查看PE R1的全局路由表,已经不会再有连CE接口s1/1的路由了:
r1#sh ip route
Gateway of last resort is not set
1.0.0.0/32 is subnetted, 1 subnets
C
1.1.1.1 is directly connected, Loopback0
2.0.0.0/32 is subnetted, 1 subnets
O
2.2.2.2 [110/65] via 12.1.1.2, 00:14:25, Serial1/0
3.0.0.0/32 is subnetted, 1 subnets
O
3.3.3.3 [110/129] via 12.1.1.2, 00:14:25, Serial1/0
23.0.0.0/24 is subnetted, 1 subnets
O
23.1.1.0 [110/128] via 12.1.1.2, 00:14:25, Serial1/0
12.0.0.0/24 is subnetted, 1 subnets
C
12.1.1.0 is directly connected, Serial1/0
r1# 6, 创建MP-BGP:
说明:通过上面在PE上查看VRF路由表发现,VRF路由表中并没有双方用户的路由,所以,必须创建MP-BGP,来为双方用户网络传递路由信息。
(1) 在PE R1上创建MP-BGP: R1(config)#router bgp 100 R1(config-router)#address-family vpnv4 R1(config-router-af)#neighbor 3.3.3.3 activate R1(config-router-af)#neighbor 3.3.3.3 send-community both
说明:因为要传递vpnv4的路由,所以创建的address-family为vpnv4,并且将正常的BGP邻居在vpnv4里面激活,而且还需要将这些BGP的扩展属性手工强行发给对端,否则对方收到的路由信息不会携带扩展属性,也就无法正常区分用户的路由信息。
(2) 在PE R3上创建MP-BGP: R3(config)#router bgp 100 R3(config-router)#address-family vpnv4 R3(config-router-af)#neighbor 1.1.1.1 activate R3(config-router-af)#neighbor 1.1.1.1 send-community both (3) 查看MP-BGP邻居:
R1#show ip bgp all summary For address family: IPv4 Unicast
BGP router identifier 1.1.1.1, local AS
BGP table version is 1, main routing table version 1
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
3.3.3.3 4 100 23 23 1 0 0 00:03:18 0
For address family: VPNv4 Unicast
BGP router identifier 1.1.1.1, local AS number 100
BGP table version is 1, main routing table version 1
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
3.3.3.3 4 100 23 23 1 0 0 00:03:18 0
r1#
说明:可以看到,R1上已经和R3建立普通BGP邻居关系,同时也建立MP-BGP邻居关系。
7, 查看 MP- - GBP 的 VRF 路由
R1#show ip bgp vpnv4 all
R1#
说明:在PE上只是已经创建了MP-BGP,并没有为BGP创建VRF,所以无法看到BGP中的VRF路由表信息,所以还需要手工创建VRF路由表。
8, 为MP-BGP 创建VRF:
说明:MP-BGP在收到用户的路由信息后,必须将其放入相应的VRF路由表,但是这个VRF表是要手工创建的,并且和该用户相关联的VRF名字保持一致。
(1) 在R1上为MP-BGP创建VRF zqx1: R1(config)#router bgp 100 R1(config-router)#address-family ipv4 vrf zqx1 (2) 在R3上为MP-BGP创建VRF zqx1: R3(config)#router bgp 100 R3config-router)#address-family ipv4 vrf zqx1 (3) 查看已创建的VRF路由表的路由条目:
R1#show ip bgp vpnv4 all
R1# R1#show ip bgp vpnv4 vrf zqx1
R1#
说明:可以看到,BGP VRF路由表中并没有用户的路由信息。
9, 配置RT 控制VRF 路由信息:
说明:因为MP-BGP的VRF路由表能让什么样的路由进入,是靠RT来控制的,所以要想让用户的路由被MP-BGP传递,就必须为VRF配置相应的RT,只有RT允许的RD路由,才能进入和出去VRF表。
(1)
在R1上为VRF配置相应的RT:
R1(config)#ip vrf zqx1 R1(config-vrf)#route-target both 100:1
说明:VRF zqx1允许RD为100:1的路由进入和出去。
(2)
在R3上为VRF配置相应的RT:
R1(config)#ip vrf zqx1 R1(config-vrf)#route-target both 100:1
10. 配置PE-CE 的路由协议
说明:虽然MP-BGP的VRF已经允许相应的用户路由进入,但是在PE上,此时并不能获知用户的路由信息,所以MP-BGP的VRF路由表中,依然为空,要想让MP-BGP的VRF路由表能够导入相应的用户路由,那就必须和用户CE之前启用路由协议,以获得对方的路由信息,从而导入MP-BGP的VRF表。
11. 在PE 上查看VRF 路由
说明:已经在PE和CE配置路由协议,所以PE上应该已经获得用户的内部路由信息。
(1) 在R1上查看是否得到CE R4的内部路由信息10.1.1.0/24:
r1#sh ip route vrf zqx1
Gateway of last resort is not set
10.0.0.0/24 is subnetted, 1 subnets
R
10.1.1.0 [120/1] via 14.1.1.4, 00:00:27, Serial1/1
14.0.0.0/24 is subnetted, 1 subnets
C
14.1.1.0 is directly connected, Serial1/1
r1#
说明:PE R1已经成功通过路由协议RIP获得用户的内部路由信息。
(2) 查看MP-BGP的VRF路由表中是否已将用户的内部路由信息导入:
r1#sh ip bgp vpnv4 all
r1#
说明:MP-BGP的VRF路由表还没有得到用户的内部路由信息,因为PE和CE之间运行的是IGP协议,所以要想让IGP学到的路由进入MP-BGP的VRF路由表,必须手工重分布。
12. 将路由重分布进MP-BGP
说明:PE-CE之间在运行IGP时,无法自动导入MP-BGP,所以手工重分布。
(1) 在R1上将RIP路由导入MP-BGP:
r1(config)#router bgp 100
r1(config-router)#address-family ipv4 vrf zqx1
r1(config-router-af)#redistribute rip
(2) 在R3上将OSPP路由导入MP-BGP: r3(config)#router bgp 100
r3(config-router)#address-family ipv4 vrf zqx1
r3(config-router-af)#redistribute ospf 100
13. 查看MP-BGP 路由 说明:MP-BGP已经和IGP之间实现重分布,查看双方路由是否获得。
r1#sh ip bgp vpnv4 all
r3#sh ip bgp vpnv4 all
说明:已经拥有双方用户网络的内部路由信息。
14. 查看VRF 路由 说明:MP-BGP中已经拥有双方用户的网络信息,再看VRF中是否全部拥有。
r1#show ip route vrf zqx1
r3#show ip route vrf zqx1
说明:PE R1上的VRF已经拥有双方用户的网络信息,再看VRF中是否全部拥有。
15. 查看CE 路由 说明:因为PE上已经拥有双方用户的路由信息,并且PE和CE之间也运行路由协议,所以这些路由应该出现在CE的路由表中,从而双方用户可以实现通信。
r4#sh ip route
。。。。。。
r6#sh ip route 。。。。。
16. 测试用户 之间通信
说明:因为用户CE之间已经拥有双方的内部路由信息,所以应该能够通信
17.PE 到CE 的通信 说明:因为PE将连CE的接口放入VRF之后,该接口就从全局路由表中消失,所以和CE的通信,由VRF路由表决定。
(1)测试ping: r1#ping 14.1.1.4
不通
说明:因为正常的ping是走的全局路由表,而全局路由表中没有到CE的接口,所以不通。
(3)
使用VRF路由表: r1#ping vrf zqx1 14.1.1.4
!!!!!
说明:通过指定到CE的数据走VRF路由表,所以最后通信成功。
相关热词搜索: 学习笔记 MPLS VPN