我家里有 Linksys 路由器和 Belkin 无线路由器。Linksys 路由器连接了电缆调制解调器和两台计算机,还连接了 Belkin 无线路由器。
第三台计算机通过 Wifi 连接到 Belkin 路由器。
连接Linksys的电脑的IP地址为192.168.1.101和192.168.1.102。LAN上的Linksys路由器的IP地址为192.168.1.1。
Belkin无线路由器的IP地址为192.168.2.1(基于第3台计算机的路由表),第3台计算机的IP地址为192.168.2.5。
如果我从 192.168.2.5 ping 192.168.1.101,则一切正常。但是,如果我从 192.168.1.101 ping 192.168.2.5,则会出现目标主机无法访问的情况。
为什么?
答案1
那是因为您的 192.168.1.101 机器上的默认网关是 192.168.1.1。因此,当您要求将流量发送到您不直接访问的网络时,它会将其发送到默认网关,在本例中为 192.168.1.1。所以问题是 192.168.1.1 不知道如何到达 192.168.2.0/24 网络。
如果 Belkin 连接到 Linksys,它也应该有一个 192.168.1.x 地址?一旦您知道这一点,您就可以通过 2 种方法中的 1 种来修复它。在 192.168.1.1 上添加一条静态路由,该路由表示要到达目标网络 192.168.2.0/24,网关或下一跳是 192.168.1.x(belkin)。您应该能够在 Linksys gui 中的某个位置添加它。在菜单中查找“路由”。另一个选项是只在您的 192.168.1.101 框上添加一条到 Windows 的静态路由。
路由添加 192.168.2.0 掩码 255.255.255.0 192.168.1.x
希望这可以帮助。
答案2
您遇到了我们在网络业务中称之为“黑洞”的情况。基本上,您可以从 2.x 网络 ping 到 1.x,因为 2.x 计算机会询问 Belkin 路由器(计算机通向外部世界的网关),Belkin 路由器可能知道,但可能会尝试使用 arp 来查找 1.x 计算机地址。计算机响应 Belkin 路由器,然后 Belkin 路由器将消息转发回 2.x 计算机。
另一个方向,1.x 计算机询问 Linksys 路由器它在哪里,而 Linksys 路由器不知道(除非您已设置到 192.168.2.0/24 网络的路由(如果路由器支持))。现在 192.168.2.x 地址是私有 C 类地址(不能通过互联网路由),因此 Linksys 路由器可能会放弃,或者可能会尝试将其发送到链上(Linksys 路由器询问其网关),在某个时候,它们将停止尝试解析私有地址并返回无法到达的目的地。
也许您安装 belkin 路由器仅仅是为了隔离无线客户端,这并不是一个坏习惯,您要么需要将路由从 linksys 路由器添加到 2.x 网络(甚至可能不支持没有自定义固件的家用设备)您还需要确保在 belkin 路由器上禁用 NAT。
要使网络直接通信(而不是单独的网络),您需要做一些事情。更改 belkin 的连接方式。您可能在 belkin 上的 WAN/上行链路/中继/调制解调器端口中,将其更改为常规/LAN/下行端口之一。您还需要关闭 DHCP 服务器(或将其配置为中继),并将 belkin 上的地址更改为与 linksys 相同的范围(我建议 belkin 为 1.2,因为 linksys 是 1.1)这将允许流量仍然通过 linksys 路由器进行解析,DHCP 由 linksys 处理,belkin 可能是无线 AP,但 DHCP 仍然应该通过 linksys 为无线客户端提供。基本上,我们将 belkin 从 SUB 网络更改为同一网络上的接入点和交换机。