Technical documentation
发布日期:2022-04-26 浏览次数:2666 来源:崔志鹏
MPLS对于TTL的处理-HCIE Datacom直通车高级课程学习考试文档
HCIE技术文档编写:WOLF-LAB 崔志鹏 CCIE#64969;HCIE#15621
MPLS标签中包含一个8比特的TTL字段,其含义与IP头中的TTL域相同。MPLS对TTL的处理除了用于防止产生路由环路外,也用于实现Traceroute功能。
RFC3443中定义了两种MPLS对TTL的处理模式:Uniform和Pipe。缺省情况下,MPLS对TTL的处理模式为Uniform。
1)uniform(统一的方式)
@报文在入节点进来的时候有一个IP的TTL,假设是64,进入到MPLS域了,入节点先执行IP的TTL-1,压入标签的时候就把IP的TTL值复制给标签的TTL值;
@在中间执行转发的时候只对lable的TTL值减一;
@离开的时候将lable的TTL减一并弹出标签,并将lable的TTL复制到IP的TTL;
2)pipe(管道的):
@进来的时候按照常规减一,压标签的时候始终压入255(默认),IP的TTL跟我标签的TTL不关联;
@里面转发的时候只对顶部lable的TTL减一,内层标签TTL不变,IP的TTL也不变;
@出去的时候标签的TTL弹出不用管顶部lable的TTL了,只需要把IP的TTL减一就行;
@就是整个domain就是一跳,进来的时候IP减一,出去的时候IP减一,中间的标签自己玩,跟我IP没关系;
uniform(统一的方式):
pipe(管道的):
需要在MPLS domain边界设备上AR2和AR4上敲undo ttl propagate改成pipe模式
MPLS对TTL的处理:
uniform(统一的方式):
R1-R6:icmp request | sip:6.6.6.6 dip:7.7.7.7 ttl=255
R1-R2:icmp request | sip:6.6.6.6 dip:7.7.7.7 ttl=254 内:1031 ttl=254 外:1030 ttl=254
R2-R3:icmp request | sip:6.6.6.6 dip:7.7.7.7 ttl=254 内:1031 ttl=254 外:1030 ttl=253
R3-R4:icmp request | sip:6.6.6.6 dip:7.7.7.7 ttl=254 内:1031 ttl=254 外:1029 ttl=252
R4-R5:icmp request | sip:6.6.6.6 dip:7.7.7.7 ttl=254 内:1031 ttl=251
R5-R7:icmp request | sip:6.6.6.6 dip:7.7.7.7 ttl=250
pipe(管道的):
R1-R6:icmp request | sip:6.6.6.6 dip:7.7.7.7 ttl=255
R1-R2:icmp request | sip:6.6.6.6 dip:7.7.7.7 ttl=254 内:1031 ttl=255 外:1041 ttl=255
R2-R3:icmp request | sip:6.6.6.6 dip:7.7.7.7 ttl=254 内:1031 ttl=255 外:1040 ttl=254
R3-R4:icmp request | sip:6.6.6.6 dip:7.7.7.7 ttl=254 内:1031 ttl=255 外:1040 ttl=253
R4-R5:icmp request | sip:6.6.6.6 dip:7.7.7.7 ttl=254 内:1031 ttl=252
R5-R7:icmp request | sip:6.6.6.6 dip:7.7.7.7 ttl=253
tracert:
uniform(统一的方式):
traceroute to 7.7.7.7(7.7.7.7), max hops: 30 ,packet length: 40,press CTRL_C t
o break
1 1.1.16.1 30 ms 10 ms 20 ms
2 1.1.12.2 50 ms 30 ms 40 ms
3 1.1.23.3 50 ms 40 ms 40 ms
4 1.1.34.4 40 ms 40 ms 40 ms
5 1.1.57.5 40 ms 40 ms 50 ms
6 1.1.57.7 50 ms 50 ms 50 ms
tracert报文基于udp的
第一个报文:
R6-R1:data | sip:6.6.6.6 dip:7.7.7.7 ttl=1
R1-R6:icmp ttl exceeded | sip:1.1.16.1 dip:7.7.7.7
-----------------------------------------------------
第二个报文:
R6-R1:data | sip:6.6.6.6 dip:7.7.7.7 ttl=2
R1-R2:data | sip:6.6.6.6 dip:7.7.7.7 ttl=1 内:1028 ttl=1 外:1027 ttl=1
此时R2发现最外层标签TTL=0了,就会给R6回复一个
icmp ttl exceeded | sip:1.1.12.2 dip:6.6.6.6
但是R2没有6.6.6.6的私网标签,那么这个时候R6不就探测不出R2了么?
此时R2玩了一招移花接木:R2将回复给R6的icmp ttl exceeded 内层标签不动,外层标签正常替换(就是替换成去往5.5.5.5的公网标签)继续朝着R7去发。
R2-R3:icmp ttl exceeded | sip:1.1.12.2 dip:6.6.6.6 内:1028 外:1027
R3-R4:icmp ttl exceeded | sip:1.1.12.2 dip:6.6.6.6 内:1028 外:1027
R4-R5:icmp ttl exceeded | sip:1.1.12.2 dip:6.6.6.6 内:1028
此时数据包到了R5上,R5将内层标签拿掉,去查对应vrf的路由表,发现不是发给我的,打上去往6.6.6.6的私网标签和公网标签往回发。
R5-R4:icmp ttl exceeded | sip:1.1.12.2 dip:6.6.6.6 内:1028 外:1024
R4-R3:icmp ttl exceeded | sip:1.1.12.2 dip:6.6.6.6 内:1028 外:1024
R3-R2:icmp ttl exceeded | sip:1.1.12.2 dip:6.6.6.6 内:1028 外:1024
R2-R1:icmp ttl exceeded | sip:1.1.12.2 dip:6.6.6.6 内:1028
R1-R6:icmp ttl exceeded | sip:1.1.12.2 dip:6.6.6.6
-----------------------------------------------------
后续探测一个套路
pipe(管道的):
[AR6]tracert -a 6.6.6.6 7.7.7.7
traceroute to 7.7.7.7(7.7.7.7), max hops: 30 ,packet length: 40,press CTRL_C t
o break
1 1.1.16.1 20 ms 20 ms 30 ms
2 1.1.57.5 40 ms 40 ms 40 ms
3 1.1.57.7 50 ms 50 ms 50 ms
tracert报文基于udp的
第一个报文:
R6-R1:data | sip:6.6.6.6 dip:7.7.7.7 ttl=1
R1-R6:icmp ttl exceeded | sip:1.1.16.1 dip:7.7.7.7
-----------------------------------------------------
第二个报文
R6-R1:data | sip:6.6.6.6 dip:7.7.7.7 ttl=2
R1-R2:data | sip:6.6.6.6 dip:7.7.7.7 ttl=1 内:1028 ttl=255 外:1032 ttl=255
R2-R3:data | sip:6.6.6.6 dip:7.7.7.7 ttl=1 内:1028 ttl=255 外:1032 ttl=254
R3-R4:data | sip:6.6.6.6 dip:7.7.7.7 ttl=1 内:1028 ttl=255 外:1032 ttl=253
R4-R5:data | sip:6.6.6.6 dip:7.7.7.7 ttl=1 内:1028 ttl=252
此时R5将内层标签拿掉,发现网络层头部TTL减为0,此时R5就会给R6回复一个
R5-R4:icmp ttl exceeded | sip:1.1.57.5 dip:6.6.6.6 内:1040 外:1029
R4-R3:icmp ttl exceeded | sip:1.1.57.5 dip:6.6.6.6 内:1040 外:1029
R3-R2:icmp ttl exceeded | sip:1.1.57.5 dip:6.6.6.6 内:1040 外:1029
R2-R1:icmp ttl exceeded | sip:1.1.57.5 dip:6.6.6.6 内:1040
R1-R6:icmp ttl exceeded | sip:1.1.57.5 dip:6.6.6.6
总结:icmp ttl exceeded的TTL无需过多关注,因为TTL肯定是最大255,管道模式运营商可以隐藏自己内部的设备
HCIE Datacom免费试听,
联系在线客服预约直播 在线客服