相同的 IP 范围,不同的子网范围

相同的 IP 范围,不同的子网范围

简单查询。只是想知道,如果我有一台电脑,

PC-A
IP:      192.168.0.10
Subnet:  255.255.0.0

和另一个

PC-B
IP:      192.168.0.15
Subnet:  255.255.255.0

两者都在同一个物理网络上,我应该能够从 PC-A ping 通 PC-B 吗?

答案1

是的,它们应该能够双向 ping 通对方:原因是 PC-B 的网络完全包含在 PC-A 的网络内,而 PC-A 位于其网络的一部分,属于PC-B网络。

PC-B 的网络为

192.168.0.1 <-> 192.168.0.254

而 PC-A 的网络是

192.168.0.1 <-> 192.168.255.254

编辑

如果我的 PCB 为 192.168.1.15/255.255.255.0,会怎么样?我假设由于 IP 范围不同,我无法 ping 通?

是的,让我解释一下原因:如果您尝试 ping LAN 之外的某些东西,则 ICMP(=ping)数据包将被路由到您的网关,网关表示它们属于不同的 LAN,因此将它们从其外部接口(=向外部世界)发送出去:没有数据包在同一个物理网络上发送,只有发往网关的数据包,PC-B 无法也不会拦截该数据包。

尽管下面有这么说,路由器...

... 应该遵守水平分割规则,该规则规定不要将一个接口上收到的数据包转发回同一个接口。这可能会导致路由循环。路由器应该丢弃具有相同源和目标网络的数据包

正如@RonMaupin 正确指出的那样(对 RFC 表示赞赏,当您发布它们时我还在搜索它们!)。

此外,还有一个简单的方法来测试这一点:删除到本地局域网的默认路由(在 Linux 上,这是通过

 ip route del 192.168.0.0/24 dev eth0

如果192.168.0.0/24您的网络和eth0接口是 ,则默认网关保持不变。现在,与 LAN 上其他机器的所有通信都必须通过网关进行。您会发现大多数路由器(例外?)不允许pingLAN 机器,这包括我的 EdgeMax RouterOS 和我的 Buffalo DD-Wrt。

相关内容