MPLS连通性测试原理

ICMP响应报文:

LSR将TTL超时消息给报文发送者的方式有两种(ICMP ping的回复报文相同):

  1. 如果LSR上存在到达报文发送者的路由,则可以通过IP路由,直接向发送者回应TTL超时消息。
  2. 如果LSR上不存在到达报文发送者的路由,则ICMP响应报文将按照LSP继续传送,到达LSP出节点后,由Egress节点将该消息返回给发送者。(原路返回,不使用路由表)

使用标准:
通常情况下,收到的MPLS报文只带一层标签时,LSR可以采用第一种方式回应TTL超时消息;收到的MPLS报文包含多层标签时,LSR采用第二种方式回应TTL超时消息。但在MPLS VPN中,ASBR接收到的承载VPN报文的MPLS报文可能只有一层标签,此时,这些设备上并不存在到达报文发送者的路由,则采用第二种方法回应TTL超时消息。(标签个数+是否有路由一起考虑,默认是通过路由进行回复)

LSP连通性检测:

前提:源目检测地址需要在整个MPLS环境中。

在MPLS网络中,如果通过LSP转发数据失败,负责建立LSP的MPLS控制平面将无法检测到这种错误,加大了网络维护的难度。MPLS Ping/MPLS Tracert为用户提供了发现LSP错误、并及时定位失效节点的机制。

MPLS Ping主要用于检查LSP的连通性。MPLS Tracert在检查LSP的连通性的同时,还可以分析网络什么地方发生了故障。类似于普通IP的Ping/Tracert,MPLS Ping/MPLS Tracert使用MPLS回显请求(Echo Request)报文和MPLS回显应答(Echo Reply)报文检测LSP的可用性。这两种消息都以UDP报文格式发送,其中Echo Request的UDP端口号为3503,该端口号只有使能MPLS功能的设备才能识别。

MPLS Echo Request中携带需要检测的FEC信息,和其他属于此FEC的报文一样沿LSP发送,从而实现对LSP的检测。MPLS Echo Request报文通过MPLS转发给目的端,而MPLS Echo Reply报文则通过IP转发给源端。另外为了防止LSP断路时Echo Request进行IP转发,从而保证LSP的连通性测试,将Echo Request消息的IP头中目的地址设置为127.0.0.1/8(本机环回地址),IP头中的TTL值为1。

一、MPLS Ping:
在这里插入图片描述
如图,LSR_1上建立了一条目的地为LSR_4的LSP。从LSR_1对该LSP进行MPLS Ping时的处理如下:

  1. LSR_1查找该LSP是否存在。如果不存在,返回错误信息,停止Ping。如果存在,则继续进行以下操作。
  2. LSR_1构造MPLS Echo Request报文,IP头中的目的地址为127.0.0.1/8,IP头中的TTL值为1,同时将4.4.4.4填入Echo Request报文中的目的FEC中。然后查找相应的LSP,压入LSP的标签,将报文发送给LSR_2。
  3. 中间节点LSR_2和LSR_3对MPLS Echo Request报文进行普通MPLS转发。如果中间节点MPLS转发失败,则中间节点返回带有错误码的MPLS Echo Reply报文。
  4. 当MPLS转发路径无故障,则MPLS Echo Request报文到达LSP的出节点LSR_4。然后检查目的FEC中包含的目的地址4.4.4.4是否为自己的Loopback接口地址,以此来确认LSR_4是该FEC的真正出口后,返回正确的MPLS Echo Reply报文。至此整个MPLS Ping过程结束。

实验:
在这里插入图片描述
[R2]ping lsp -a 2.2.2.2 ip 5.5.5.5 32
在R2g0/0/1处抓包:
请求报文:带有标签
在这里插入图片描述
且目的地址为127.0.0.1(保证LSP不存在时不通过IP转发):
在这里插入图片描述
压入的标签为5.5.5.5对应的标签:1025。
在这里插入图片描述
同样IP报文的TTL值为1,避免通过IP转发:
在这里插入图片描述
回复报文:没有带有标签,因为有对应路由条目,可以直接通过查看IP路由表返回:
在这里插入图片描述
源目地址恢复正常(5.5.5.5和2.2.2.2)。

二、MPLS Tracert:
在这里插入图片描述
如图,从LSR_1对4.4.4.4/32进行MPLS Tracert时的处理如下:

  1. LSR_1检查LSP是否存在。如果不存在,返回错误信息,停止Tracert,否则继续进行如下处理。
  2. LSR_1构造MPLS Echo Request报文,IP头中的目的地址为127.0.0.1/8,同时将4.4.4.4填入MPLS Echo Request报文中的目的FEC中,然后查找相应的LSP,压入LSP的标签并且将MPLS TTL设置为1,将报文发送给LSR_2。此MPLS Echo Request报文中包含Downstream Mapping TLV(用来携带LSP在当前节点的下游信息,主要包括下一跳地址、出标签等)。
  3. LSR_2收到LSR_1发送来的报文后,将MPLS Echo Request中MPLS TTL减1为0后发现TTL超时,然后LSR_2需要检查是否存在该LSP,同时检查报文中Downstream Mapping TLV的下一跳地址、出标签是否正确,如果两项检查都正确,返回正确的MPLS Echo Reply报文,并且报文中必须携带LSR_2本身的包含下一跳和出标签的Downstream Mapping TLV给LSR_1。如果检查有不正确,则返回错误的MPLS Echo Reply报文。
  4. LSR_1收到正确的MPLS Echo Reply报文后再次发送MPLS Echo Request报文,报文的封装方式跟步骤2类似,只是将LSP标签的MPLS TTL设置为2,此时的MPLS Echo Request报文中的Downstream Mapping TLV是从MPLS Echo Reply报文中复制过来的。然后LSR_2收到该报文后进行普通MPLS转发。LSR_3收到此报文,标签的TTL超时,跟步骤3同样的处理方式后返回MPLS Echo Reply报文。
  5. LSR_1收到正确的MPLS Echo Reply报文后重复步骤4把LSP标签的MPLS TTL设置为3,复制Downstream Mapping TLV后发送MPLS Echo Request报文。LSR_2和LSR_3对该报文进行普通MPLS转发。LSR_4收到此报文,重复步骤3处理方式对报文进行处理,同时检查目的FEC中包含的目的IP 4.4.4.4为自己的Loopback接口地址,以此来发现已经是该LSP的出节点,因此返回不带下游信息的MPLS Echo Reply报文,至此整个MPLS Tracert过程结束。

通过上述步骤中返回携带下游信息的MPLS Echo Reply报文,在LSR_1上就获取了该LSP沿途每一个节点信息。

实验:
在这里插入图片描述
环境相同,我们可以看到内部的路径,对应标签,下一跳等。
在这里插入图片描述
同理,请求报文抓包:带有标签,目的地址为127.0.0.1。
在这里插入图片描述
回复报文:没有标签。
在这里插入图片描述

测试命令:

  1. 执行命令ping lsp [ -a source-ip | -c count | -exp exp-value | -h ttl-value | -m interval | -r reply-mode | -s packet-size | -t time-out | -v ] * ip destination-address mask-length [ ip-address ] [ nexthop nexthop-address ],进行MPLS Ping测试。
  2. 执行命令tracert lsp [ -a source-ip | -exp exp-value | -h ttl-value | -r reply-mode | -t time-out ] * ip destination-address mask-length [ ip-address ] [ nexthop nexthop-address ],进行MPLS Traceroute测试。

MPLS对TTL的处理:

MPLS也需要环路防止,但是对TTL有两种处理的模式:Uniform(统一,也是缺省模式)和Pipe(管道).

  1. Uniform模式
    IP报文经过MPLS网络时,在入节点,IP TTL减1映射到MPLS TTL字段,此后报文在MPLS网络中按照标准的TTL处理方式处理。在出节点将MPLS TTL减1后映射到IP TTL字段。如图所示:
    在这里插入图片描述
  2. Pipe模式(隐藏网络结构)
    在入节点,IP TTL值减1,MPLS TTL字段为固定值,此后报文在MPLS网络中按照标准的TTL处理方式处理。在出节点会将IP TTL字段的值减1。即IP分组经过MPLS网络时,无论经过多少跳,IP TTL只在入节点和出节点分别减1(相当于将整个隧道里的LSR看做一个设备即可)。如图所示:

在这里插入图片描述
在MPLS VPN应用中,出于网络安全的考虑,需要隐藏MPLS骨干网络的结构,这种情况下,对于私网报文,Ingress上使用Pipe模式。

配置MPLS对TTL的处理模式 :
执行命令mpls mode { short-pipe [ ttl ttlvalue exp expvalue ] | uniform },配置MPLS TTL的处理模式。 (此命令在eNSP模拟器上无法执行)

参考资料:《华为hedex文档》

  • 3
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
BGP/MPLS VPN是一种虚拟专用网络技术,它将MPLS(Multiprotocol Label Switching)和BGP(Border Gateway Protocol)结合起来,提供了一种可扩展的、安全的跨网络的VPN解决方案。 其工作原理如下: 1. 在MPLS VPN网络中,每个站点都有一个唯一的标识符称为RD(Route Distinguisher)。这个标识符用于区分不同站点之间的路由信息。 2. 当一个站点想要发送数据到另一个站点时,它首先将数据包封装成MPLS标签,这个标签用于在网络中标识数据包的路径和下一跳地址。 3. 每个站点有一个PE(Provider Edge)路由器,它负责将数据包从站点接口转发到MPLS VPN网络中。PE路由器还为数据包打上标签,以便在网络中找到正确的路径。 4. 数据包在MPLS VPN网络中通过LSP(Label Switched Path)进行转发。LSP是由MPLS标签组成的一条路径,它连接了不同的PE路由器,以便在网络中进行数据包转发。 5. 在LSP的两端,PE路由器使用BGP协议来交换路由信息。这些路由信息告诉PE路由器如何将数据包从一个站点转发到另一个站点。BGP协议还负责将每个站点的RD标识符传递给其他站点,以便它们可以区分不同站点之间的路由信息。 6. 当一个站点收到数据包时,它首先使用RD标识符来确定数据包的目的地。然后,它使用BGP协议来查找最佳的路径,并将数据包转发到下一个站点。 通过这种方式,MPLS VPN网络提供了一种可扩展、安全的跨网络的VPN解决方案,它可以在不同的站点之间建立虚拟专用网络,以便安全地共享数据和应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

格洛米爱学习

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值