关于ping命令的-I选项的一个问题

在排查网络问题的时候,ping是一个不可或缺的工具(比ping更不可或缺的是www.baidu.com...),在Cisco上,可以指定源IP地址去ping任意IP,但是在Linux上指定源IP地址却并不是那么直观。通过ping的manual,发现一个-I选项,可以从指定网卡发送出去数据包,我天真以为后面携带的那个IP地址就是指定的源IP地址了,其实并不是。

        通过抓包,发现-I选项后面可以跟一个IP地址列表,这指定了“源路由选项”,什么是源路由,请自行google。比如,如果我执行ping 1.1.1.2 -I eth2 1.1.1.1,数据包如下:

关于ping命令的-I选项的一个问题

极其混乱,不是吗?目标地址在IP头里明明是1.1.1.2,但是却解析成了1.1.1.1。如果执行ping 1.1.1.2 -I eth1 1.1.1.2 10.2.2.4 2.2.2.2,抓包如下:

关于ping命令的-I选项的一个问题

更加混乱...

        实际上,-I选项指定了源路由,Wireshark会把-I列表的最后一个IP地址解析成目标IP展示出来,但是数据包的IP头里的目标IP,可能并不是这个IP。这极其容易被误用,特别是对于初学者而言,特别容易搞出一些让人难以理解的问题,分析来分析去,原来是ping工具实现的不健全导致。Cisco的ping就非常好用,我个人的观点。

原文链接: https://blog.csdn.net/dog250/article/details/51760544

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;

也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬

    关于ping命令的-I选项的一个问题

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/408033

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年4月26日 上午10:44
下一篇 2023年4月26日 上午10:44

相关推荐