在第2层交换机上有两个不同子网的主机 - 为什么这样做?

时间:2014-01-22 15:01:56

标签: networking ip arp

我正准备在大学里测试网络测试。 我正在尝试子网,我发现连接到第2层交换机的两个设备可以互相通信,尽管它们有不同的子网!

设备A:192.168.0.1子网掩码:255.255.255.0

设备B:192.168.1.1子网掩码:255.255.255.0

问题是为什么我可以从设备A ping到B,反之亦然? 没有路由器,只有两个设备和一个交换机。

从我的理解,他们不应该看到对方。 当未知IP位于不同的子网中时,操作系统甚至不应发送ARP请求。

这可能是一个缓存问题吗?

2 个答案:

答案 0 :(得分:0)

许多思科第2层交换机都能够ping通连接的系统。

答案 1 :(得分:0)

您的计算机可能有一个路由条目,该条目条目不会将与其他特定路由条目匹配的数据包发送到您的路由器。这也称为默认网关。通常,同一子网中的计算机直接连接,大多数时候不通过网关。

要更清楚地解释一下,如果您使用的是Linux计算机,请运行route -n

Destination     Gateway         Genmask
14.0.1.0        0.0.0.0         255.255.255.0
0.0.0.0         172.16.80.1     0.0.0.0      

第一个条目的目的地范围为14.0.1.0到14.0.1.255。此匹配的网关是0.0.0.0。该表表明这些系统是直接连接的。另一方面,当数据包与其他条目都不匹配时,目标字段中的条目0.0.0.0将匹配。这个网关就是路由器地址(在我的例子中是172.16.80.1)。所有没有上述指定范围内IP的数据包都会进入路由器进行进一步路由。一旦路由器获得了数据包,它就会根据它拥有的路由信息​​做出进一步的决定。

在您的情况下,路由器碰巧知道另一个子网已连接到它,因此将您的数据包传递到该子网。

仔细看看ARP。在ping到其他子网的情况下,ARP将发送到路由器。另一方面,如果在网络内ping,则ARP将直接到达目的地。这是传统的情况。当然,这完全取决于系统中的路由表。您始终可以使所有数据包通过网关或没有数据包通过网关。