假设我有一个eth0
带有 IPv4 地址接口的服务器192.168.0.1/24
。我在此服务器中运行一个应用程序,该应用程序必须绑定到192.168.0.0/24
网络中的另一个 IPv4 地址,但在服务器中运行的其余应用程序需要继续用作192.168.0.1
出口连接的源地址。假设,另一个地址必须是192.168.0.2
.我可以192.168.0.2/24
添加eth0
并确保ip route change default via 192.168.0.254 dev eth0 src 192.168.0.1
默认情况下传出连接用作192.168.0.1
源地址。或者,我可以添加192.168.0.2/32
而不是192.168.0.2/24
添加eth0
,然后我就不需要触及路由表。
使辅助地址与主地址保持相同的子网掩码有什么好处吗?或者更具体地说,根据我的示例,192.168.0.2/32
在网络接口上配置与在网络接口上配置有什么区别192.168.0.2/24
?
答案1
我不确定,但指定掩码/32
可能意味着点对点链接,这可能会禁用 ARP 的使用。这可能会导致一些意外的行为。你可以通过进一步设置来解决这个问题(可能在使用 192.168.0.2 地址的连接的两端)。
但这只是一种过于聪明的黑客行为,会导致你的手机在度假时因同事的消息而爆炸:”我换了一个坏掉的网卡,这个服务坏了,我什至不知道它以前是如何工作的,救命!!!”
或者可能是你自己在一年左右后,回到这个系统并想知道:“我记得我在这里做了一些非常聪明的事情,但是它的所有部分是什么?”
在对具有多个 IP 地址的系统进行故障排除时,路由表应该是首先要查看的内容之一,因此有能力的故障排除人员可以轻松地发现其中的自定义默认路由。 ”嗯...默认路由有一个额外的属性,指定源地址...这意味着必须为该网段配置多个可能的源地址!”
这将有望引导相关人员运行ip address show
(因为旧的ifconfig
不会显示添加到接口的额外地址ip address add
......问我我是怎么知道的)并发现第二个地址,否则这将是完全正常的,没有风险“点对点”的特殊情况。
因此,简而言之,我认为使用/24
路由表定制将使配置更加明确,并且更容易弄清楚是否/什么时候需要。
但我承认,这几乎完全是基于意见的。