梅利333

从无到有,自有至精

导航

MPLS-6 loop detection 隐藏ttl的回包

LOOP Detection

Ldp 的环路检测机制依赖于IGP协议

如果出现了环路(一般是IGP出了问题,也不是动态路由,而是静态路由配置错误引起的,标签头中的TTL将防止标签无止尽的被转发)

标签头中的TTL与IP头中的TTL是一样的,直接copy自IP头中的TTL值(这需要一个IP包进入一MPLS的网络当中)

 

如下图所示

 

 

 数据包进入A,然后被A压入标签,发出去,此时的TTL是复制经过A的TTL(IP包的)

然后再经过一跳设备,MPLS的B,此时减1的是MPLS的TTL,IP包的不变,

此时到了C,这时有意思的事儿发生了,

发数据从MPLS的网络转回到IP网络时,TTL会使用MPLS中的TTL-1,然后复制到IP包中。

 

看起来没什么,但是,当使用traceroute时,会将整个的MPLS 环境暴露。

为什么traceroute会暴露呢

因为归TTL=0时,会返回一个差错消息给起始端,

 

 

 向上图所示,经过了三个MPLS域中的设备,一眼就能看出来,那怎么办?

 

某种情况下我们需要手动的去关闭这个TTL propagation

 

 

 当关闭掉TTL propagation之后,MPLS将不再复制IP包中的TTL,而是直接=255,最大值

 这样一来,就可以关闭traceroute带来的暴露网络架构的风险,隐藏的只有mpls domain的部份。

 

效果是这样的

原有的traceroute

 

 

 命令后面有两个关键字,一个是forwarded ,一个是local,

很好理解

 

 Forwarded,是经过本路由器的数据

Local,是本设备产生的数据

但是你如果啥都不加的话,会比较狠,就是爱谁谁,

都不行,都给你干掉,

 

 

 可以这样测试一下

在R1上,关闭 no mpls ip propagate-ttl forwarded,

 

 

 看来对本地产生的数据的确是不管用的

那么对于PC而言呢?

 

 

 很好,

做为R1而言,PC1的请求数据就是forwarded的,所以被隐藏了

同理,关于local的关键字,意思已经很明确了,我就不再多说了。

在R1上关闭 mpls 的ttl propagate-ttl之后

 

 

 直接将所有的MPLS节点全部隐藏。

 

 

-----------------------------------------

CCIE 成长之路  --- 梅利

 

posted on 2020-09-24 10:29  梅利333  阅读(431)  评论(0编辑  收藏  举报