配置思路与测试
首先本拓扑为实现mpls多协议之间通信,并实现不同网络协议私网互联和mpls与ipv6/ipv4隧道结合实现孤岛互联的虚拟专线安全运行的拓扑。配置文档放在最后面,建立好拓扑后直接使用,放在最后面(仅供学习)。
CE1-4和AR5都是使用不同协议的私网路由器,通过PE1和PE2(客户网络边界设备)建立vpn-instance隧道走mpls设备转发路由,骨干网使用bgp。
由于使用mpls的ldp会给ip的报文头加上lable标签从而使bgp探查不到实际的ip实现报文的透明化转发。
上面的部分是实现相同协议不同进程之间的通信和不同协议之间的通信,具体实现为CE3(rip10)和AR5(ospf10)之间的通信,CE3和CE4(rip11)之间的通信。而AR5和CE4之间不能通信。
实现上半部分首先要在下图骨干网实现全网通信并且在路由器和接口上都开启mpls ldp,本实验使用的是ospf 10实现全网通信,然后还要再PE1和PE2上开启bgp协议建立mpls对等体实现mpls封装报文走ldp隧道。
在PE1处查看OSPF 10的路由表
使用ping测试连通性
然后在PE上创建mpls实例,在里面添加标签和DR(路由分区)
PE1和PE2的实例可以不同但是VPN标签一定要相同
然后将实例加入与私网连接的接口中然后在配置ip地址,注意先后顺序,因为接口加入实例会刷新ip地址,从而导致配置丢失。
在私网路由器中配置预定好的rip 10路由协议,然后在PE1中创建rip 10的实例类型路由协议,将接口ip加入其中并将bgp路由协议引入,同样在bgp的实例类型中引入rip协议。
这样就可以实现CE3和CE4的mpls封装单独通信了。
CE3和AR5的通信同理,在PE2上在建立一个vrf实例写入vpn标签,然后bgp和ospf相互引入,在PE1中在上一个实例中添加相同的VPN标签就行,或者PE2直接用原来的实例不用在创建,只需要在与AR5接口处添加本实例即可。
本实验用的是前者
测试部分:
首先测试连通性:CE3→CE4
CE3→AR5
在测试不能通信的AR5→CE4
如果想实现CE4和AR5的通信只需要在PE2的AR5或者CE4的vpn实例中加入对方的标签即可
然后查看在骨干网中CE3pingCE4的icmp报文样式,在P1的s1/0/0接口抓包
发现封装了两层的mpls
再来查看路由表项
没有私网的路由表,以为私网都使用了vpn实例,所有的vpn实例都是一个虚拟的vrf路由器,都有自己独立的路由表,要想查看需要:
这样就可以看到路由表项了。
然后我们再来查看rip的vpn实例
确认全都开启
然后再查看公网的bgp表,
发现PE的邻居都建立起来了。
查看lsp标签
在看看PE的mpls开启状态
综上就是上半部分的全部的实验和测验过程
下面要实现下图的部分
首先要实现简单的ipv4的mpls路由封装,和上面的步骤一样,只不过bgp中不在引入动态路由协议而是引入静态
并且两边都用bgp进行EBGP的互联。
本次实验还需要进行ipv6的部分所以上图不只是一个ipv4还要实现ipv4/ipv6双栈,并且CE1和CE2要实现由mpls封装的IPv6孤岛互联。
其实思路很简单,先要在私网路由器接口加入ipv6并且要在bgp中加入ipv6,唯一要注意的是ipv6的bgp邻居不能自启动所以要手动启动
然后在PE1上面的vpn实例中加入ipv6那部分的路由表项和标签,并在接口添加ipv6。
中点来了,想要实现ipv6的孤岛互联则需要在PE上创建隧道接口,在隧道接口中加入公网的ipv6地址,并设置为ipv6 to ipv4,并且开启mpls
然后看我的bgp配置
标红的部分,由于公网bgp的vpnv6是没有ipv6的启动项的所以要借助对方的ipv4启动项来启动,剩下的东西同上,注意ipv6也需要路由协议(本机用的静态路由)。至此配置算是全部完成。
然后测试连通性:
Ipv4和ipv6都可以通
接着看ipv6的报文
证明配置成功。
接着看ipv6的各项配置结果
公网ipv6的路由表
Vpn实例的路由表