Linux 上的輔助 IP 使用相同的網路遮罩或 /32
似乎(至少)有兩種方法可以將輔助 IP 地址添加到 Linux 上的介面。次要的,我的意思是它會接受到 IP 地址的流量,並且對該 IP 的連接的響應將使用它作為源,但是盒子發起的任何流量(例如,傳出 TCP 連接)都不會使用次要地址。
兩種方式都從添加主地址開始,例如
ip addr add 172.16.8.10/24 dev lan
. 然後我可以添加帶有/24
(匹配主)網路遮罩的輔助地址或/32
.如果我用 a 添加它
/24
,它會被標記為次要的,因此不會用作傳出數據包的來源,但這會留下兩個地址被錯誤地添加到錯誤順序的風險。如果我添加它/32
,則不會發生錯誤的順序,但它不會被標記為次要的,我不確定這可能會產生什麼不良影響。所以,我想知道,哪種方法最不可能打破?(如果重要的話,這台機器上的主要服務是 MySQL,但它也執行 NFSv3。我正在添加第二台機器作為熱備用,並希望通過更改擁有輔助 IP 的方式在它們之間切換。)
如果我用 /24 添加它,它會被標記為次要的,因此不會用作傳出數據包的來源,但這會留下兩個地址被錯誤地添加到錯誤順序的風險。如果我用 /32 添加它,則不會發生錯誤的順序,但它不會被標記為次要的,我不確定這可能會產生什麼不良影響。
我不確定你在這裡的意思。當您的系統啟動時,您的網路介面以一種確定的方式進行配置。通過正確配置您的網路,您可以決定首先分配哪個地址,哪個分配為輔助地址。
如果您在 RedHat-ish 系統上,主網路配置文件
ifcfg-eth0
(例如)將在任何別名介面之前處理,例如ifcfg-eth0:0
. 我不太確定 Debian-ish 系統上的行為,但看起來/etc/network/interfaces
文件可能是按順序處理的,所以把你的別名定義放在主地址之後,你應該準備好了。所以,我想知道,哪種方法最不可能打破?
如果您的兩個地址都在同一個網路上,我不知道任何一個地址或多或少都可能會中斷。對於它的價值,我通常使用 /32 網路遮罩配置輔助地址,因為主地址已經提供了必要的網路路由。