看似简单的问题,却包含多种可能的结果。让我们来一一分析。
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
这种情况属于比较特殊的情况,PC1ping 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报文可以彼此送达对方。
结果:能PING通
F、两PC配置不同网段IP地址,如PC1---172.16.1.1/24 ,PC2---172.16.0.1/24 各自的网关指向对方,即PC1的网关为172.16.0.1,PC2的网关为172.16.1.1。
PC1 ping PC2将目的IP地址与自己的子网掩码相与,认为对方和自己不属于同一网段。这样PC1发起跨网段通信时,会首先去找网关。这时网关即为PC2。 PC1与PC2的ARP交互成功。并将目的地址为172.16.1.1的ICMP报文发送至网关(实际为PC2)。 PC2收到后发现目的地址是自己,给出回应。通信完成。
结果:能PING通
2、交换机配置策略后的几种情况(IP全部按照A种情况设置)
问题中“随便找一台交换机”的“随便”就有多种可能性。我们可能很随便的找到一台傻瓜交换机,那么可能出现的情况就是上文种的四种。如果我们找到的是二层可划分VLAN的交换机。则可能出现:
G、两PC配置同一网段的地址,交换机划分了VLAN,两PC在同一VLAN下,两PC在同一广播域内,所以能够通信。
结果:能PING通
H、两PC配置同一网段的地址,其各自所在的端口下设置了端口隔离,端口隔离是基于芯片的端口之间的硬件隔离,所有开启此功能的端口之间是不能通信的,每个端口自成一个广播域。
结果:不能PING通
I、两PC配置同一网段的地址,接在同一VLAN,交换机开启了vlan filter功能,drop掉了相关arp报文,或者drop掉了相关ICMP报文,则不能通信。
结果:不能PING通
J、两PC配置同一网段的地址,接在同一VLAN中,但是在物理端口下有MAC-ACL的限制。如果拒绝掉了两个MAC地址之间的通信,则无法完成三层报文的通信。
结果:不能PING通
K、两PC配置同一网段的地址,PC所接的端口属于不同VLAN,但是开启PVLAN功能,两个端口都是TRUNK模式,透传所有的VLAN的数据,并且在出端口时退去标签。则通信可以完成。
结果:能PING通
3、采用三层交换机的几种情况
如果“随便”找到的交换机是一台三层交换机,则又有以下几种情况
L、默认配置情况下,三层交换机与普通二层交换机功能相同。两PC配置同一网段的地址,在同一广播域。能够通信。
结果:能PING通
M、开启了三层路由功能,两台PC配置同一网段的IP地址,但是属于不同的vlan。在这种情况下,vlan之间PC的通信需要经过交换机的三层路由模块进行通信。PC配置同一网段的IP不能通信。
结果:不能PING通
N、开启了三层路由功能,两台PC配置不同网段IP地址,在不同的VLAN中,但是都各自属于三层交换机的interface vlan 所在的网段,并且网关都各自指向各自所连的交换机interfacevlan地址。虽然不在一个网段,但是可以通过交换机的三层路由进行通信。
结果:能PING通
O、在N种情况的基础上,如果在交换机三层接口上应用了IP-ACL,限制了两PC之间的三层报文通信,路由通信则无法完成。
结果:不能PING通
P、两PC配置同网段IP地址,属于不同的VLAN,但是启用了SUPER VLAN。并且PC所在的VLAN设置为SUPER VLAN的SUB LAN。Super VLAN开启arp-proxy,交换机的三层接口代理应答其子VLAN的arp请求。通过代理的方式能够完成通信。
结果:能PING通