![了解双 WAN 路由](https://linux22.com/image/723315/%E4%BA%86%E8%A7%A3%E5%8F%8C%20WAN%20%E8%B7%AF%E7%94%B1.png)
好吧,这可能听起来有点令人困惑,但我还是会尝试描述它:我的 LAN 中有两个路由器,它们运行连接到两条 DSL WAN 线路的 HA-CARP 设置。 CARP 的工作方式与预期一致:当一个 DSL 调制解调器停止工作时,网络流量会自动通过第二条备用线路路由,而我将使用第二台调制解调器的 IP 号码出现在互联网上。
通过主 DSL 访问互联网的默认网关是 192.168.32.1,这是通过 192.168.13.1 上的 DSL 调制解调器连接到互联网的两个 pfsens 的虚拟 IP。备份连接转到 192.168.23.1 上的第二个 DSL 调制解调器。
如果发生断电,CARP 会设法通过 .23.1 路由所有互联网流量。我已经测试了两者,拔出 pfSense 路由器并断开 DSL 调制解调器。
然而,我不知何故无法从局域网内访问 .23.1普通手术,表示当 .13.1 提供互联网访问时。Traceroute 数据包始终通过 .13.1 进入互联网,但路由器知道 .23.0/24 是通过其备用线路接口访问的,并且在路由器上我可以 ping 通 .23.1,但不能从 LAN ping 通。
路由器上的路由表
Internet:
Destination Gateway Flags Netif Expire
default 192.168.13.1 UGS re0
127.0.0.1 link#4 UH lo0
192.168.13.0/24 link#1 U re0 <- Default WAN
192.168.13.2 link#1 UHS lo0 <- vIP for CARP
192.168.13.3 link#1 UHS lo0 <- Real IP
192.168.23.0/24 link#2 U re1 <- Backup WAN
192.168.23.2 link#2 UHS lo0 <- vIP for CARP
192.168.23.3 link#2 UHS lo0 <- Real IP
192.168.32.0/24 link#3 U re2 <- LAN
192.168.32.1 link#3 UHS lo0 <- vIP for CARP
192.168.32.2 link#3 UHS lo0 <- Real IP
从 .32.1 防火墙路由器 ping 备份调制解调器:
ping 192.168.23.1
PING 192.168.23.1 (192.168.23.1): 56 data bytes
64 bytes from 192.168.23.1: icmp_seq=0 ttl=64 time=0.477 ms
64 bytes from 192.168.23.1: icmp_seq=1 ttl=64 time=0.509 ms
LAN 内的 Traceroute 将数据包通过默认 WAN 发送到互联网,然后它们在我的 ISP 处终止
traceroute 192.168.23.1
traceroute to 192.168.23.1 (192.168.23.1), 30 hops max, 60 byte packets
1 192.168.13.1 (192.168.13.1) 1.101 ms 1.087 ms 1.431 ms
2 <some ISP IP number> (ISP IP number) 15.299 ms 15.883 ms 15.871 ms
3 * * *
我尝试在 LAN 服务器上添加路由,但这也无济于事
route add -net 192.168.23.0/24 gw 192.168.32.1
route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.32.1 0.0.0.0 UG 0 0 0 eno1
192.168.23.0 192.168.32.1 255.255.255.0 UG 0 0 0 eno1
192.168.32.0 0.0.0.0 255.255.255.0 U 0 0 0 eno1
为什么路由器实际上知道 23.0/24 网络及其连接到该网络的接口,却尝试通过默认路由发送所有数据包?我以为工作流程总是“如果知道如何到达网络,则查看路由表,如果不知道,则使用默认路由”。
答案1
我怀疑客户端有192.168.13.0/24
地址。这意味着该范围192.168.23.0/24
将被视为外部的,因此通过默认网关 (.13.) 发送。如果您需要备份路由器可管理,我建议两个选项:
1)将它们放入一个公共网络中,不需要.13。和.23。
2) 在主路由器中创建路由规则,将数据包转发到另一台路由器。此解决方案确实存在一些注意事项:必须在路由器上手动禁用路由重定向,因为尽管它们属于同一网段,但客户端无法直接连接。如果您希望主路由器也易于管理,请向备份路由器添加补充规则,注意不要出现循环。
我建议简单地将所有设备放在一个网段中。无论如何,这就是 CARP 的目的。您不应该为每个冗余路由器设置不同的地址。