您的位置 首页 > 数码极客

【ttl64】IP报文中的TTL:天生的防环利器,让你见识一下

概述

我们谈论广播风暴,一般来说,开关是指环路引起的二层广播风暴,三层网络上也很少听说有广播风暴。

其实三层网络也有环路,也有风暴存在,只是我们很少见到。因为三层网络中自带一个二层网络没有的防环利器:TTL,它减低了风暴的影响,所以我们平常感觉不到三层风暴的存在。今天我们就有意构造一个环路,来验证一个TTL的防环功能,让大家感受一下。不过再此之前,我们先普及一下TTL的基本工作原理。

TTL原理

TTL全称是Time to Live,它是IPv4报文头中一个非常重要的字段,用来表示报文可以在三层网络中转发的跳数,如下图所示:

IPv4报文头部

TTL总共8bits,所以值范围是0~256。

初始PC发送报文时,会将TTL设置为一个初始值,报文每经过一个路由器,TTL的值就会减1,当路由器收到一个TTL值为1的报文以后,就会直接丢包报文,不做转发了!

TTL值减1

初始值的设置取决于操作系统的实现,不同的操作系统TTL值可能不一样,例如UNIX为255、Win NT/2000为128、Linux为64、Win7/10为64。

TTL值测试

拓扑

拓扑

  • PC发送目的IP为20.1.1.2的报文
  • R1收到以后,使用静态路由,将报文的路径指向R2
  • R2收到以后,使用静态路由,将报文的路径指向R3
  • R3收到以后,使用静态路由,将报文的路径指向R1
  • 这样形成一个环路,查看报文在环路中的转发情况

测试配置

R1的配置:添加静态路由,把目的为20.1.1.0/24的报文,指向R2的接口IP;

R1配置的静态路由和路由表

R2的配置:添加静态路由,把目的为20.1.1.0/24的报文,指向R3的接口IP;

R2配置的静态路由和路由表

R3的配置:添加静态路由,把目的为20.1.1.0/24的报文,指向R1的接口IP;

R3配置的静态路由和路由表

现象查看

第一步:PC发送报文的TTL是64,当经过R1以后,会减去1,变为63;

TTL值为63

第二步:经过R2,R3以后,各减去1,再次到R1以后,发送出去的报文TTL为60;

TTL值为60

第三步:报文一直循环,不停的减1,R1最后一次发送出去的报文TTL为3;

TTL值为60

第四步:当R1收到R3发送的TTL值为1的报文以后,就不会发送出去了;

TTL值为1

第五步:每台设备只需要处理很少的报文,环路就自动的终结,对网络的带宽影响较小。

R1和R3接口之间的抓包

总结

经过上面的实验,各位小伙伴对TTL的功能有所了解吧?这个例子就是使用静态路由,使网络形成一个环路,然后验证TTL功能。虽然说TTL也能防环,但是在工作中这种情况是要避免的哦,不能有意的配置环路,不然你们公司老大会找你麻烦的:)

最后,做一个简单的总结:

  • 报文每经过一个路由器,TTL值都会减一
  • 路由器收到一个TTL值为1的报文以后,就不会继续转发了

各位小伙伴如果还有疑问,欢迎留言讨论。也非常欢迎关注我的头条号,一起探讨网络原理!

关于作者: admin

无忧经验小编鲁达,内容侵删请Email至wohenlihai#qq.com(#改为@)

热门推荐