关于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,数据包如下:


极其混乱,不是吗?目标地址在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,抓包如下:

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

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

猜你喜欢

转载自www.cnblogs.com/ksiwnhiwhs/p/10389162.html