我的路由器(DHCP 已禁用)
IP : 192.168.1.1
Subnet Mask: 255.255.255.0
PC 网卡配置。
IP : 192.168.1.103
Subnet Mask : 255.255.255.240
Gateway addres : 192.168.1.1
我可以从计算机 ping 网关地址。192.168.1.1
请告诉我为什么会这样。PC255.255.255.240
上设置的网络掩码是否应该阻止这种情况?
答案1
通常是“前缀路由”,即直接的路由,将在地址配置了子网掩码/前缀长度(即不是255.255.255.255
或/32
)时派生并添加。
(192.168.1.0 255.255.255.0
涵盖主机 IP 192.168.1.1 - 192.168.1.254;在 IP/子网掩码的情况下192.168.1.103 255.255.255.240
,前缀路由将是192.168.1.96 255.255.255.240
,涵盖主机 IP 192.168.1.97 - 192.168.1.110)
对于以太网,直接路由意味着到该路由覆盖的目标 IP 的流量将被封装在以太网帧中,其中包含这些主机本身的第 2 层目标地址(又称目标 MAC 地址),在这种情况下,该地址是通过以下方式学习的:地址解析协议(或者新民主党在 IPv6 的情况下)。直接路由(通常,至少,如果不是总是)用接口定义/绑定到接口,这就是操作系统知道将 ARP 请求(即广播流量)发送到何处的方式。
对于目标 IP 覆盖的间接路由,目标 L2/MAC 地址将是网关/下一跳的地址。因此,通常您需要在间接您的系统中已有的路线。
当派生的前缀路由不涵盖默认网关(意味着默认路由中的网关,0.0.0.0 0.0.0.0
在以太网的情况下本质上始终是间接路由)时,操作系统很自然地不知道将流量发送到哪里(发送到默认网关或互联网)。
不过,我不确定 Windows 是否真的允许您设置/配置无效网关/路由(即网关未被任何直接路由覆盖的间接路由)。也许它允许,也许您只是认为您正在将其用作192.168.1.1
默认网关。无论如何,从技术上/一般来说,您只需要手动为其添加直接路由,或者修复子网掩码/前缀长度,以便前缀路由覆盖所需的网关。
PS 据我所知,On-link
上面的屏幕截图表示特定路由是直接路由,间接路由是字段中具有 IP 的路由gateway
。(可能还值得一提的是,在某些情况下,“(非)直接性”可能被视为虚假的,例如当接口不是以太网 NIC 而是通向 L3 VPN 隧道的虚拟接口时。)显然,Windows 使用在特定接口上配置的 IP 来表示路由打印中的接口。
答案2
我假设你的意思是“我不能ping 网关地址”。
网关地址必须总是位于需要使用它的主机的子网内。192.168.1.103/255.255.255.240
定义一个子网192.168.1.96/28
,其 IP 地址从192.168.1.96
到192.168.1.111
(第一个和最后一个不可用于主机)。192.168.1.1 在该子网之外,因此不能用作网关。
您应该始终对同一子网上的所有设备使用相同的子网掩码。您可以在此问答。
答案3
设备的网络掩码仅用于对传出流量做出路由决策,但永远不会“阻止”任何流量。
网络掩码定义了主机所属子网的 IP 地址范围。同一子网上的主机可以直接相互通信。因此,如果数据包的目标 IP 在主机的子网内,主机将直接将该数据包发送到目标主机。
另一方面,如果目标 IP 不在主机的子网内,则需要依靠其路由表来确定将数据包发送到何处。在最简单的情况下,路由表将具有到网关路由器的默认路由。然后该路由器将适当地路由流量。
在您的情况下,您的路由器和主机对其子网的理解不同,这令人困惑,但最终主机会将流量发送到默认网关路由器,一切就会正常工作。