对于年龄(> 7 年),我的自动化脚本以这种方式向服务器添加新的外部 IP
ifconfig lo:0 11.22.99.44 netmask 255.255.255.255
ifconfig lo:1 11.22.33.44 netmask 255.255.255.255
...
这与我合作过的所有(> 10)供应商都很好,而且我从来没有遇到过问题。
现在我意识到,我正在将 ips 添加到环回中,这可能是错误的
,并且在127.0.0.0/8沙盒中播放后就离开了
=)
一个简短的调查发现,必要的路由会自动添加,并且到达这些 ips 的数据包被正确路由
lo route 在routel中 可见
11.22.33.44 local 11.22.33.44 kernel host lo local
11.22.99.44 local 11.22.33.44 kernel host lo local
但不在ip route show 中
default via 99.88.22.1 dev eth0
99.88.22.0/24 dev eth0 proto kernel scope link src 99.88.22.123
测试路由:通过默认路由发送到服务器的基本(添加到 eth0)ip 网关
#ip route get 5.5.5.5 from 11.22.33.44 iif lo
5.5.5.5 from 11.22.33.44 via 99.88.22.1 dev eth0
因此,我将数据包从 11.22.33.44 发送到 192.168.1.1 而不是 11.22.33.1,它适用于许多配置,许多提供商都没有提出任何问题。
Q1:为什么这有效?
Q2:添加多个网关哪种方式更好?(源11.22.99.44为11.22.99.1,源11.22.33.44为11.22.33.1)
像下面这样添加多个是一个好主意还是基于 src 的路由更好?
auto eth0:0
iface eth0:0 inet static
address 11.22.33.44
netmask 255.255.255.0
broadcast 11.22.33.255
gateway 11.22.33.1
auto eth0:1
iface eth0:1 inet static
address 11.22.99.44
netmask 255.255.255.0
broadcast 11.22.99.255
gateway 11.22.99.1
感谢帮助!