我的 ISP 为我提供了两个静态公共 IP 地址,它们通过同一条以太网线接入。我想使用两个路由器(运行 OpenWrt),每个路由器一个公共 IP。为了实现这一点,我有一台 Debian 11 机器(我称之为“盒子”),用于将每个 IP 的流量引导到其各自的路由器。
因此,我希望 IP 的流量X.X.X.2
流向路由器 A,而 的流量流向X.X.X.3
路由器 B。ISP 提供X.X.X.1
网关地址。这些都是全局 IP 地址。在此示例中,我将接口命名为“wan”、“lan1”和“lan2”,如下所示:
ISP
│
┌────▼─────┐
│ wan │
│ │
│ THE BOX │
│ │
┌─────┤lan1 lan2├────┐
│ └──────────┘ │
│ │
┌────▼─────┐ ┌────▼─────┐
│ wan │ │ wan │
│ │ │ │
│ ROUTER A │ │ ROUTER B │
│ │ │ │
└──────────┘ └──────────┘
我尝试分配X.X.X.2/32
给路由器 A 的 wan 接口。如果我错了,请纠正我,但我的想法是,盒子的任何接口都不应分配 IP 地址,因为它只转发流量,而不是任何数据包的最终目的地。我想这意味着它将无法访问互联网本身。
配置静态地址和路由后,路由器 A 如下所示:
root@RouterA:~# ip addr show dev wan
7: wan@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP qlen 1000
link/ether ZZ:ZZ:ZZ:ZZ:ZZ:ZZ brd ff:ff:ff:ff:ff:ff
inet X.X.X.2/32 brd 255.255.255.255 scope global wan
valid_lft forever preferred_lft forever
root@RouterA:~# ip route
default via X.X.X.1 dev wan
X.X.X.1 dev wan scope link
在盒子上,我没有在任何接口上设置静态 IP,并创建了以下静态路由:
root@TheBox:~# ip route
default via X.X.X.1 dev wan
X.X.X.1 dev wan scope link
X.X.X.2 dev lan1 scope link
X.X.X.3 dev lan2 scope link
然后我尝试X.X.X.1
从路由器 A ping ISP 的网关地址 (),结果发现数据包丢失率为 100%。为了检查数据包是否正确发送到盒子,我在盒子上运行了数据包嗅探器并得到了一些 ARP 请求:
root@TheBox:~# tcpdump -i lan1 -vv
14:55:48.202508 ARP, Etherenet (len 6), IPv4 (len 4), Request who-has X.X.X.1 tell X.X.X.2, length 46
14:55:49.212438 ARP, Etherenet (len 6), IPv4 (len 4), Request who-has X.X.X.1 tell X.X.X.2, length 46
14:55:50.252491 ARP, Etherenet (len 6), IPv4 (len 4), Request who-has X.X.X.1 tell X.X.X.2, length 46
由于盒子没有分配 IP 地址,我觉得我可能需要在某处硬编码网关的 MAC 地址。这是我目前所能得到的;我对第 2 层了解不多。
类似问题:
- 当连接到两个相似的路由器时,如何在服务器接口中分配 IP [关闭]:措辞模糊,没有回答我的问题
- 两个路由器,一个调制解调器,双 IP,第二个地址偶尔会断开连接:设置相同,但操作系统不同,解决方案是“路由器有缺陷”