

嘿!兄弟们
干网络这行,天天跟Ping命令打交道,但你真的摸透它了吗?
比如同个VLAN里,两台不同网段的机器能不能Ping通?Ping一个不存在的IP时,电脑到底在干些啥?
这些看似简单的问题,藏着不少网络通信的底层逻辑,今天咱就掰开揉碎了聊聊。
今日文章阅读福利:《网工入门安装包》
扫码添加小助理微信,备注【入门】,即可获取。
同VLAN不同网段,能Ping通吗?
先从基础的来:同VLAN不同网段,到底能不能Ping通?
拿两台电脑举例,A的IP是10.1.1.1/8,B是11.1.1.1/8,都在一个VLAN里。
要是俩机器都不设网关,A Ping B会直接报“目的主机不可达”。为啥?因为A发现B跟自己不在一个网段,想找网关转发,可网关压根没设,数据包根本发不出去,B那边也抓不到任何包。
网关设成对方IP或自己,会有啥变化?
要是把A的网关设成B的IP,把B的网关设成A的IP,哎,神奇的事发生了——能Ping通!抓包一看就明白了:A会先发ARP广播,问11.1.1.1的MAC地址。B就在同一个VLAN里,收到广播一看,这不就是自己的IP吗?立马回应ARP。两边都知道了对方的MAC,自然能通信。
Ping三个不存在的IP,电脑在偷偷干些啥?
不过这些都是特殊情况,咱们再换个玩法——网关设得“正常”点,再Ping三个不存在的IP,看看电脑到底在琢磨啥。
先把A的网关设成自己,然后Ping三个IP:一个跟A同网段(比如10.1.1.2),一个跟网关同网段(比如11.1.1.2),一个跟谁都不搭边(比如100.1.1.1)。结果全是超时,但抓包能看出门道:A发出的ARP广播,都是直接问这三个目标IP的MAC,压根没找网关。因为网关设成了自己,电脑觉得“不用找网关,直接问目标就行”,可目标不存在,自然没回应。
但要是把A的网关设成B的IP(11.1.1.1),而B的网关设成一个不存在的IP(比如100.1.1.1,跟谁都不同网段),情况就变了。
A Ping跟网关同网段的IP(比如11.1.1.2)时,会先发ARP问网关11.1.1.1的MAC。
B收到后会应答,但目标IP不存在,最终还是超时。
Ping跟谁都不搭边的IP,过程类似,先查网关MAC,B应答了,但目标不通,结果还是超时。
最有意思的是Ping B的IP(11.1.1.1)居然也不通!按说A和B都能通过ARP拿到对方MAC,咋就不通呢?抓包发现,A确实收到了B的ARP应答,但B那边一直在发ARP广播问自己的网关100.1.1.1的MAC,没收到应答就一直等,自然没法回应A的Ping。
说到底,电脑通信有个基本原则:跟非本网段的IP通信时,一定会先查网关的MAC。要是网关MAC拿不到,哪怕知道目标IP的MAC,也没法正常通信。之前那些能通的情况,都是碰巧网关设成了目标IP或者自己,让电脑走了捷径。
这些看似绕的实验,其实藏着网络通信的底层逻辑。搞懂了这些,下次遇到Ping不通的情况,就知道该从ARP表、网关设置、网段划分这些地方下手排查了。毕竟,网络里的怪事再多,追根溯源总能找到答案。