今天很突然的有了一个问题,为什么不同网段之间的电脑接在交换机(二层)上ping不通,而接在路由器上就能够ping的通了呢?
借着实验来说明这个问题
实验一:
在红框这里设置两个抓包点,开始抓包
如图所示,两台配置了不同网段IP地址的PC连在一个交换机上,交换机并未配置三层路由。
直接用PC6去ping一下PC7,结果如下所示:
直接显示不可达,然后查看wireshark抓包结果
抓包点一抓包结果
抓包点二抓包结果
可以看到都是STP生成树的数据包,并未有ARP包以及ICMP包
实验二
在红框处设置一个抓包点,使用wireshark抓包
如图所示,两台配置了不同网段的PC连接在一台路由器上,同时,相应接口已经配置好了网关地址。
用PC4去pingPC5,查看结果,如下图所示:
两次超时之后(可以想一下为什么),显示成功ping通。
再来看一下wireshark的抓包
抓包点一抓包结果:
抓包点二抓包结果:
有ARP包以及ICMP包
得出实验结论
在本地PC端去ping其他PC或者网络设备时,本地PC会开始对要ping的IP地址进行判断,如果是同一网段,则直接向网络发送ARP包进行询问,然后发送ICMP报文。
如果不是同一网段,本地PC会先向网关发起询问,在没有配置网关的情况下,本地PC会直接将这个不同网段的ping丢弃掉,不去管他。