为什么我在跨两个子网时遇到连接困难?

为什么我在跨两个子网时遇到连接困难?

我正在尝试将邻居的家庭网络无线连接到我的网络。我们每个人都有自己的互联网服务和子网,我们希望保留这些服务和子网,但仍然能够访问子网之间的服务。为此,我购买了两个 Ubiquiti NanoStation loco M2,并按照图中所示的测试配置进行设置:

网络图

我有一台 M2 连接到我的 ASUS 无线路由器的 LAN 端口。M2 的无线模式配置为“接入点”,网络模式配置为“路由器”。lan0 接口分配了 192.168.5.50/24(网关 192.168.5.1,dns 192.168.5.1),wlan0 分配了 192.168.3.1/24。它有一个静态路由,192.168.2.0 经由 192.168.3.2。从此时起,我可以成功 ping 通我网络上的两个现有主机,192.168.5.10 和 192.168.5.13。

另一台 M2 连接到 192.168.2.0/24 网络,无线模式配置为“站点”,网络模式也配置为“路由器”。lan0 接口分配了 192.168.2.2(网关 192.168.2.1,dns 192.168.2.1),wlan0 分配了 192.168.3.2/24。这台 M2 有一条静态路由,通过 192.168.3.1 到达 192.168.5.0。

192.168.5.1 处的华硕路由器正在分发 DHCP,并具有静态路由 192.168.2.0 通过 192.168.5.50。

图中的笔记本电脑被分配了静态地址 192.168.2.3。在测试期间,它直接连接到“远端”的 M2。我可以立即 ping 192.168.2.2、192.168.5.50 和 192.168.5.13。

这就是事情开始变得奇怪的地方。

当尝试从 192.168.2.3 到 192.168.5.13 进行 SSH 时,命令会一直拖延,但我最终能够连接。我运行了带有详细输出的命令,发现由于反向 DNS 查找失败,GSSAPI 身份验证发生了错误。我将 192.168.5.1 添加到笔记本电脑上的 DNS 解析器列表中,这解决了这个问题并允许我立即连接。

但是,我根本无法通过 SSH 连接到 192.168.5.10。我可以从笔记本电脑 ping 它,但除非我手动在 5.10 主机上通过 192.168.5.50 为 192.168.2.0 添加静态路由,否则它不会连接。奇怪的是,192.168.5.13 处的主机不需要此静态路由;无论如何它都会连接。192.168.2.2 处的笔记本电脑没有任何静态路由,即使添加静态路由也不会有任何变化。

我可以从 192.168.5.13 ping 笔记本电脑,但是 ping 输出包含 ICMP 重定向。

  1. 为什么192.168.5.13不需要静态路由就可以访问,而192.168.5.10却不可以呢?

  2. 上述访问不应该被 192.168.5.1 的静态路由条目覆盖吗?

  3. 是否有任何缺失配置或不正确的配置?我正在研究 DHCP 选项 141 和 249,这是解决此问题的正确方法吗?

答案1

这听起来像是反向路径过滤. 在 Debian 机器上编辑(以 sudo 身份)该文件/etc/sysctl.conf,确保包含以下两行:

net.ipv4.conf.default.rp_filter=0
net.ipv4.conf.all.rp_filter=0

保存后,重启机器,看看是否还有问题。如果不是,那么最简单的解决方法就是在华硕防火墙中添加以下规则,

iptables -o ethN -j MASQUERADE

您的 Centos 和 Debian 机器所连接的接口的名称在哪里ethN。这可以为您节省eachPC 上的配置,但恐怕您在华硕上拥有专有固件,没有类似的东西dd-wrt, openwrt, tomato,等等,对吗?在这种情况下,您必须研究 FM 以查看是否存在任何类似的东西。或者您可以检查 Ubiquities 是否可以做到这一点(它们是否运行 EdgeOS?如果是,那么您可以当然执行上述规则)。

相关内容