2024年5月10日发(作者:)

问题:随便找一台交换机,2台PC的IP地址不一样,能否ping通?

看似简单的问题,却包含多种可能的结果。让我们来一一分析。

1、首先我们先说理想状态(即:交换机为普通二层交换机,无任何策略,PC上无病

毒,无防火墙软件)。这样的两台PC接在交换机上配置不同的IP地址,是否能PING通呢?

主要有以下几种情况:

A、两PC配置同一子网IP地址。如PC1---192.168.0.1/24 PC2---192.168.0.2/24

PC1 ping PC2 ,首先PC1自身先进行与运算(将目的IP地址与自己的子网掩码相

与)来判断对方是否和自己属于同一网段,PC1发现PC2与自己属于同一网段。那么PC1

发送ARP请求,去请求192.168.0.2这个IP所对应的MAC地址。目的MAC地址为“全

F”,则交换机会向所有接口转发此报文。PC2收到请求后对PC1报文进行回应,并且在自

己的ARP表项里添加PC1的ARP条目。相互学习到对方的IP MAC对应关系。然后进行

ICMP协议的通信。

结果:能PING通

B、两PC配置不同子网IP地址。如PC1---192.168.0.1/24 PC2---192.168.1.1/24

PC1 ping PC2 ,PC1自身先进行与运算(将目的IP地址与自己的子网掩码相与)来

判断对方是否和自己属于同一网段,运算完毕后发现网络位不一致,PC1认为PC2与自己

不属于同一网段,则不会对PC2发送ARP请求,而是转向把数据包丢向网关,去做路由

处理。

结果:不能PING通

C、两PC配置不同子网IP地址,但是两子网之间重叠(有包含与被包含关系)。如

PC1---192.168.0.1/16 PC2---192.168.0.2/24

PC1 ping PC2 ,PC1自身先进行与运算(将目的IP地址与自己的子网掩码相与)来

判断对方是否和自己属于同一网段,把192.168.0.2和255.255.0.0相与,得到

192.168.0.0 ,是和自己同一网段,则发送ARP请求。后续的通信过程与A种情况相同。

结果:能PING通

D、两PC配置不同子网IP地址,如PC1---192.168.1.1/16 PC2---192.168.0.2/24

这种情况属于比较特殊的情况,PC1 ping PC2将目的IP地址与自己的子网掩码相与,

认为对方和自己属于同一网段。则发送ARP请求,PC2收到后给出回应。双方能够互相学

习到ARP条目。PC1继而发出ICMP请求,PC2收到请求后,将PC1的IP地址与自己的

子网掩码相与,发现不属于同一网段,会把数据包丢向网关,去做路由处理。因此PC1收

不到ICMP应答。如果PC2去ping PC1,则与B种情况相同。

结果:不能PING通,但PC1 ping PC2时,可以互相学习到MAC地址。

E、两PC配置不同网段IP地址,如PC1---172.16.1.1/24 ,PC2---172.16.0.1/24 各

自的网关指向自身,即IP与网关相同。PC1 ping PC2网关代理了PC1的ARP请求,而

此时网关的地址即为PC1的IP。从而两台PC全部通过代理完成了ARP的交互。 继而ICMP

报文可以彼此送达对方。