APP下载

MPLS VPN故障解决一例

2019-04-03云南卢立云

网络安全和信息化 2019年3期
关键词:网段数据包路由

■ 云南 卢立云

编者按:MPLS VPN由于搭建快捷、配置灵活、安全保密、扩展性好等特点,在营运商网络被广泛使用,近期笔者遇到在配置MPLS VPN时,出现两端的CE彼此ping不通对方的情况,后通过排查,找到了原因,并加以解决。

MPLS VPN由于搭建快捷、配置灵活、便于控制、安全保密、扩展性好等特点,在营运商网络被广泛采用,可为政府、企业在公共Internet网上构建安全可靠、方便快捷的专用网络,并可大大节省广域网的建设和运行维护费用。

MPLS VPN技术是广域网建设的最佳解决方案,MPLS VPN是基于MPLS技术构建的虚拟专用网,能够在提供原有VPN网络所有功能的同时,提供强有力的QoS能力,具有可靠性高、安全性高、扩展能力强、控制策略灵活以及管理能力强大等特点。

MPLS是一种特殊的转发机制,它为进入网络中的IP数据包分配标记,并通过对标记的交换来实现IP数据包的转发。在网络内部MPLS在数据包所经过的路径通过交换标记(而不是看IP包头)来实现转发;当数据包要退出MPLS网络时,数据包被解开封装,继续按照IP包的路由方式到达目的地。

图1 网络拓扑图

基本配置

利用EVE虚拟平台可以搭建一个MPLS VPN的实验环境,营运商网络有PE1、P、PE2,采用OSPF协议实现IGP网络的联通可达,PE1和PE2之间采用MP-BGP建立VPN连接,PE1-CE1之间,PE2-CE2之间可以采用静态路由方式,也可以采用OSPF,EIGRP,BGP等方式,这里先采用静态路由方式。网络拓扑图如图1所示。配置步骤如下:

1.配置CE1、PE1、P、PE2、CE2的主机名,环回口loopback0地址和互联接口地址;

2.营运商网络一侧,配置OSPF协议,实现营运商网络IGP可达,如PE1:

router ospf 234

network 22.22.22.0 0.0.0.255 area 0

network 23.23.23.0 0.0.0.255 area 0

!

3.在PE上定义并配置VRF,如PE1:

ip vrf aaa

rd 100:11

route-target export 100:1

route-target import 100:1

!

4.在PE1-P-PE2之间的互联接口配置启用LDP和mpls功能,如,PE1:

interface Ethernet1/1

ip address 23.23.23.2 255.255.255.0

duplex half

mpls ip

5.在PE1-CE1的PE1侧的接口启动ip vrf forwarding,如PE1:

interface Ethernet1/0

ip vrf forwarding aaa

ip address 12.12.12.2 255.255.255.0

duplex half

!

6.PE1-PE2建立MP-BGP VPNV4连接,如PE1:

router bgp 100

bgp router-id 22.22.22.22

bgp log-neighborchanges

no bgp default ipv4-unicast

neighbor 44.44.44.44 remote-as 100

neighbor 44.44.44.44 update-source Loopback0

图2 CE1 ping不通CE2

!

address-family ipv4

exit-address-family

!

address-family vpnv4

neighbor 44.44.44.44 activate

neighbor 44.44.44.44 send-community extended

exit-address-family

!

7.PE1端配置vrf静态路由指向CE1的loopback0口,如:PE1:

!

ip route vrf aaa 11.11.11.0 255.255.255.0 12.12.12.1

!

8.将VRF静态路由再发布到BGP的VRF AAA中,如PE1:

Router bgp 100

。。。。

address-family ipv4 vrf aaa

redistribute static

exit-addressfamily

!

9.CE1端配置默认路由,指向PE1,如CE1:

!

ip route 0.0.0.0 0.0.0.0 12.12.12.2

!

问题发现

以上配置部署完成,并且PE2、CE2参照PE1、CE1配置,P上只要配置OSPF协议,并在与PE1、PE2的直连端口配置MPLS IP即可,配置完成后,在CE1端ping CE2的loopback0,结果不通,如图2所示,同样CE2也ping不通CE1。

原因分析

发现CE1-CE2两端ping不通后,起初还以为是两端配置不对。通过仔细检查PE1和PE2的配置,并没有错,再在PE1处输入命令“sh ip route”和“sh ip route vrf aaa”,PE1已经学习到关于CE2端loopback0网段的路由。同样,PE2也学习到CE1端loopback0网段的路由,如图3所示的路由信息。

在PE1端输入命令“sh ip bgp vpnv4 all”,结果如图4显示,说明PE2和PE1建立了Mpbgp vpnv4的邻居关系,并且PE2与PE1相互传递了VPN路由。

CE1和CE2是客户一侧,MPLS VPN对于用户是透明的,客户端不用配置任何有关MPLS VPN的命令,只需配置默认路由即可。但是在CE1上ping对端CE2的loopback0口还是不通。

通过仔细排查,结果发 现,CE1上ping对端CE2的loopback0口地址,IP数据包的源地址是用的CE1-PE1的直连口地址,即12,12.12.1/24,而该地址没有通过VPN传递给PE2,即PE2的VRF AAA的路由表中没有该地址段的表项,数据包可以到达CE2,但是响应数据包从CE2到达PE2后,由于没有该网段的路由,结果被丢弃,从而导致无法ping通。

图3 路由信息

图4 在PE1端显示PE2和PE1建立了邻居关系

图5 CE1 ping通CE2

故障解决

知道了问题的根源后,解决起来就得心应手。

解决方法一:只要在CE1处将ping命令后面添加源地址即可,即:CE1#ping 55.55.55.55 source 11.11.11.11,这样数据包的源地址是11.11.11.11/32,即CE1的loopback0的地址,数据包到达PE1后,包上标签,因为有到55.55.55.0的VPN路由,数据被转发到PE2,再拆除标签,转发给CE2,而CE2的响应包上传至PE2后,包上标签,系统在PE2的VRF AAA路由表中查找到去往11.11.11.0的路由,并将数据包转发给PE1,在PE1处拆除标签,转发给CE1,完成ping通过程。如图5所示,CE1 ping通CE2。

解决方法二:可在PE1的BGP配置中“addressfamily ipv4 vrf aaa”部分配置“network 12.12.12.0 mask 255.255.255.0”命令通告直连网段,在PE2也做同样配置,即可解决以上问题。

经验总结

通过故障排查,需要技术人员不仅对VPN的路由和转发过程有清晰的了解,还要求能够了解数据包的结构和跟踪数据包的转发。这样才能快速检查和排除问题。另外,在配置过程中,一个VPN对应一个RD,这一点也是应该要注意的。

猜你喜欢

网段数据包路由
商用车网络架构设计探讨
二维隐蔽时间信道构建的研究*
“复兴号”17辆编组动车组列车总线网段扩展的设计研究
民用飞机飞行模拟机数据包试飞任务优化结合方法研究
数据通信中路由策略的匹配模式
什么是IPv6的前缀长度
路由选择技术对比
OSPF外部路由引起的环路问题
路由重分发时需要考虑的问题
C#串口高效可靠的接收方案设计