在Linux上使用相同的networking掩码或/ 32作为辅助IP

似乎有(至less)两种方法将辅助IP地址添加到Linux上的接口。 第二,我的意思是说,它会接受IP地址的stream量,并且对这个IP的连接的响应将使用它作为源,但是这个盒子发起的任何stream量(例如,一个外出的TCP连接)将不会使用次要的地址。

两种方式都从添加主地址开始,例如ip addr add 172.16.8.10/24 dev lan 。 然后,我可以添加/24 (匹配主)或/32的networking掩码的辅助地址。

如果我添加一个/24 ,它被标记为次要的,所以不会被用作传出数据包的来源,但是这留下了两个地址错误添加的风险。 如果我添加/32 ,错误的顺序不会发生,但它不会被标记为次要的,我不知道这可能是什么坏的影响。

所以,我想知道,哪种方法最不可能突破? (重要的是,这台机器上的主要服务是MySQL,但是它也运行NFSv3,我添加了第二台机器作为热备份,并且希望通过改变它们之间的转换来切换。

如果我添加一个/ 24,它被标记为次要的,所以不会被用作传出数据包的来源,但是这留下了两个地址错误添加的风险。 如果我添加/ 32,错误的顺序不会发生,但它不会被标记为次要的,我不知道这可能是什么坏的影响。

我不确定你在这里的意思。 networking接口在系统启动时以确定性的方式进行configuration。 通过正确configuration您的networking,您可以决定首先分配哪个地址,哪个分配为次要地址。

如果您使用的是RedHat-ish系统,则主要networkingconfiguration文件ifcfg-eth0 (例如)将在任何别名接口(如ifcfg-eth0:0 )之前处理。 我不太确定Debian-ish系统上的行为,但看起来/etc/network/interfaces文件可能会按顺序处理,因此请将您的别名定义放在主地址之后,并且应该全部设置好。

所以,我想知道,哪种方法最不可能突破?

如果你的两个地址都在同一个networking上,我不知道这两个地址会有多less有可能中断。 对于它的价值,我通常使用/ 32networking掩码来configuration辅助地址,因为主地址已经提供了必要的networking路由。