我已将 netgear r7000 连接到我现有的家庭网络作为第二个路由器,并为其分配了 ip 192.168.2.1,而主路由器的 ip 为 192.168.1.1
一切正常,wifi、以太网电缆等。问题是:我有一台 IP 为 192.168.1.100 的服务器(通过电缆连接到 192.168.1.1 路由器),我可以通过 SSH 从另一台连接到 192.168.2.1 路由器(IP 为 192.168.2.115)的机器连接到它,但反过来不行。反过来甚至不允许我 ping 网关 192.168.2.1。
从 192.168.1.100 我可以 ping 192.168.1.1 (主路由器),但不能 ping 192.168.2.1 (dd-wrt 路由器)。
192.168.1.100 机器上没有防火墙,我尝试通过使用与 192.168.1.100 机器完全相同的以太网电缆连接另一台笔记本电脑来缩小范围并找到问题,但问题依然存在:无法 ping 192.168.2.1。
然后,我将同一台笔记本电脑物理连接到 192.168.1.1 路由器,仍然无法 ping 通 192.168.2.1,这就是为什么我推测 99% 的问题与 dd-wrt 路由器有关。
简化一下:
192.168.1.100 ping -> 192.168.1.1 OK
192.168.1.100 ping -> 192.168.2.1 No Response
192.168.1.1 ping -> 192.168.2.1 No Reponse
192.168.2.115 ping -> 192.168.1.100 OK
192.168.1.100 ping -> 192.168.2.115 No Response
192.168.2.115 SSH -> 192.168.1.100 OK
192.168.1.100 SSH -> 192.168.2.115 Connection timeout
192.168.1.1 = Main router
192.168.2.1 = dd-wrt router
192.168.2.115 = Machine 1
192.168.1.100 = Machine 2
我已经尝试将 192.168.1.1 路由器恢复出厂设置,将 netgear 路由器范围从 192.168.2.1 更改为 10.0.0.1,问题依旧 :(
当我尝试 ping 以查看是否有某些消息时,还尝试对 eth 接口进行 tcpdump,但没有发现任何内容。
我从 ping 本身(从 192.168.1.100 到 192.168.2.1)获得的消息是:
[root@server_centos7 ~]$ ping 192.168.2.1
PING 192.168.2.1 (192.168.2.1) 56(84) bytes of data.
From 213.XXX.XXX.234 icmp_seq=76 Packet filtered
From 213.XXX.XXX.234 icmp_seq=142 Packet filtered
这个被过滤的数据包来自哪里?我不知道 IP 213.XXX.XXX.234。在 dd-wrt 上防火墙被禁用,我不知道还能在哪里检查。是不是某个地方存在配置问题?有人能帮我解决这个问题吗?
谢谢你!
答案1
这是一个非常常见的错误。人们连接第二个路由器,并将其置于 NAT 网关模式,就好像它是他们的网络头路由器一样,因此它将家庭 LAN 的下游一半与家庭 LAN 的上游一半分开,就像它被设计的那样。
解决方案是让下游“路由器”充当透明桥接器,而不是 NAT 网关路由器。您希望它像一个带有集成以太网交换机的普通桥接 Wi-Fi AP,而不是充当“路由器”。
- 在某些设备(例如 AirPort 基站)上,您可以关闭 NAT 和 DHCP 服务器服务,WAN 端口将成为另一个 LAN 端口。
- 在其他设备上,无法禁用 NAT,因此您只需禁用 DHCP 服务器服务并停止使用 WAN 端口。将下游路由器的一个 LAN 端口插入上游路由器的一个 LAN 端口。为下游路由器的 LAN 端提供一个在上游路由器的 LAN 端有效(但当前未使用)的 IP 地址(因此,在您的情况下,该 IP 地址在 192.168.1.x 范围内)。如果下游路由器不提供 DHCP,它就无法将其 NAT 服务告知任何人,因此其 NAT 服务将无害。现在,无论客户端设备连接到哪个盒子,上游路由器都将充当整个网络的 NAT 网关和 DHCP 服务器。