我有一个多 WAN 路由器,其 LAN 地址为192.168.10.1/24
。
另外,我有一个地址为 的设备192.168.100.1
,它连接在接口WAN1
后面。
为了访问此设备,我已向路由器添加了静态路由
route add 192.168.100.1 mask 255.255.255.0 WAN1
并且它正在发挥作用。
现在我已将我的网络掩码LAN
从扩展255.255.255.0
到255.255.0.0
,之后静态路由停止工作或变为非法。
为何以及如何修复?
答案1
所以如果你仔细想想,它停止工作是有道理的。关键信息如下:
我更改了路由器上的网络掩码。这自动导致 DHCP 发生变化,进而更改了所有客户端上的网络掩码(当然是在租约到期时)。
现在,我可以解释为什么这不起作用 - 但为了获得更全面的理解,你应该阅读有关网络的一般知识。
因此,您提到您的 LAN 接口具有 的网络空间192.168.10.0/24
。 DCHP 将确保该网络上的所有客户端也存在于该 IP 空间中。 这意味着路由表可能如下所示:
Destination Netmask Route Type Gateway
192.168.10.0 255.255.255.0 connected *
0.0.0.0 0.0.0.0 default 192.168.10.1
要理解这个路由表,您需要了解一些有关路由的知识。
- 已连接 - 这是与接口地址和网络掩码关联的路由。此网络空间中存在的 IP 地址直接连接。也就是说,主机将针对该地址进行 ARP,然后直接向该主机发送流量。无需中间路由器(网关)。
- 默认 - 此路由是所有不属于表中其他路由范围的流量的路由。这通常是访问互联网所需的路由。这也是静态路由。
如果网络上有一个客户端192.168.10.0/24
,比如说192.168.10.10
,想要与 IP 地址通信,192.168.10.15
它会查阅路由表以了解应该如何操作。这将匹配连接的路由(它会通过对路由表中的目标 IP 和网络掩码执行按位与操作来实现)。192.168.10.10
然后会执行 ARP 操作192.168.10.15
,通信将从那里继续。
然而,在这种情况下192.168.100.1
,网络上的计算机192.168.10.0/24
会检查路由表并仅在默认路由上找到匹配项,因此它会将流量发送到具有到该网络的路由的路由器(网关)。
当您将网络从一个网络扩展到192.168.10.0/24
另一个192.168.0.0/16
网络时,您也会更改路由表。路由表现在如下所示:
Destination Netmask Route Type Gateway
192.168.0.0 255.255.0.0 connected *
0.0.0.0 0.0.0.0 default 192.168.10.1
因此,现在当您尝试查找192.168.100.1
路由表时,将匹配连接的路由。因此,您的主机正在执行 ARP 查询以查找设备,而不是将流量发送到路由器。ARP 查询失败,因为设备不存在于同一个 LAN 上,而是需要经过路由器跳转。
现在,可以让路由器为设备执行“代理 arp”,但这取决于路由器软件。
从更严谨和教学的角度来看,通常认为,拥有一条连接路由,然后在该连接路由内创建一条较小的静态路由是一种不好的做法。这可能会导致后续出现许多问题。在这种情况下,您有一个,/16
从中开辟出一个/24
以转到另一个接口。即使您创建了/24
主机路由,这仍然是不好的做法。大多数路由器软件甚至不允许您这样做,如果您尝试,则会抛出错误。现在,虽然使用这样的设置可以运行,但建议您使用完全独立的 IP 空间。
看起来你对做很多网络工作很感兴趣,这很好。这是一个困难的领域,有很多东西需要你去理解。我建议你读一点这方面的书,这样你就能了解实际情况。
我喜欢的一本书是 O'Reilly Media 的《网络战士》。这本书讲授了很多网络基础知识。当然,这只是我的看法,还有很多其他资源,无论是免费的还是收费的。
答案2
当您更改网络掩码时,它比简单地在一台机器上使用不同的网络掩码要复杂一些。您必须更改所有连接的网络设备(即路由器、交换机)的网络掩码以及所有机器上的以太网接口以匹配。此外,您还需要更改任何相关的 DHCP 网络掩码。如果您不这样做,事情就不会像您看到的那样顺利进行。
最有可能的情况是,一台或多台机器或网络设备的网络掩码不正确。