我家有两个路由器。路由器 A 是 TP-Link AX1500,路由器 B 是 TP-Link AX1800。路由器 A 在楼下,其 WAN 接口连接到我的调制解调器。路由器 B 的 WAN 接口连接到路由器 A 的 LAN 接口。
路由器 A 的默认网关分配有 IP 地址 192.168.0.1/24,而我在路由器 A 中为路由器 B 预留了 DHCP 地址 192.168.0.100。路由器 B 的默认网关是 192.168.1.0/24。路由器 B 当前正在运行,启用了 DHCP,因为我有一个 Raspberry Pi,连接的静态 IP 为 192.168.1.101。路由器 B 上的防火墙已禁用。
从 Raspberry Pi,我可以 ping 通路由器 B 和路由器 A(192.168.1.1 和 192.168.0.1),但是;从直接连接到路由器 A 的任何设备,我都无法 ping 通我的 Pi。我尝试使用 配置路由器 A 的路由表route 192.168.1.0/24 via 192.168.0.100
,但是;当我ping 192.168.1.101
收到主机不可达错误时。因此,我可以向上 ping,但不能向下 ping。
我是网络新手,所以我甚至不知道如何指定我的问题;但是,我想我正在尝试连接两个子网。我想让连接到路由器 B 的 Pi 暴露给路由器 A,这样我就可以配置端口转发并使设备可通过互联网访问。当然,最简单的解决方案是重新定位 Pi 并将其直接连接到路由器 A。不幸的是,这对于我的设置来说并不理想,原因我就不多说了。
我可以访问这两个路由器的配置。
答案1
因此,正如评论中所讨论的那样,消费级互联网接入路由器是设计时考虑了两个基本目的的设备;允许 LAN 上的所有设备共享一个公共 IP,同时能够观察整个互联网,同时阻止互联网看到它们。本质上,它们让你凝视深渊(但深渊无法回头凝视你)。这是通过一对技术实现的,源网络地址转换(SNAT)状态包过滤。这些技术是设备所固有的,在大多数情况下,如果不完全禁用路由(通常称为桥接模式),就无法禁用它们。
众所周知,可以使用一种称为目标 NAT(DNAT;又名端口转发)。它有明显的局限性(有没有两个孩子带着他们自己的 PS4 尝试和他们的朋友一起玩游戏?),但对于简单的应用来说已经足够了。
由于你的服务器和你的公共 IP 之间有两个路由器,你的内部网络处于所谓的双重 NAT场景。这个术语有点令人畏惧,但只要你没有听到青少年抱怨 PSN Nat 类型(基本上任何使用UPNP 动态转发端口将在双 NAT 中失败),如果静态规则适合您的用例,则这是一种容易处理的情况。
为了使双重/三重/N-le NAT 配置适用于静态端口规则,您需要创建一个转发链,以便最外层的路由器接受新的未经请求的连接尝试,将它们转发到下一个内部路由器,该路由器的端口配置为接受新的连接尝试,并最终将它们转发到服务器:服务正在接受连接的端口。