简单查询。只是想知道,如果我有一台电脑,
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 上其他机器的所有通信都必须通过网关进行。您会发现大多数路由器(例外?)不允许ping
LAN 机器,这包括我的 EdgeMax RouterOS 和我的 Buffalo DD-Wrt。