Centos
CentOS 錯誤的傳出 IP 地址
我有一個帶有子界面的 Centos 5 盒子:
ifconfig eth0 10.1.1.1 255.255.255.255 ifconfig eth0:1 10.1.1.2 255.255.255.255
在這個伺服器所在的環境中,網路遮罩需要是 32 位的。所以為了指定預設路由,我們讓伺服器知道網關在哪裡,然後預設路由到它:
Destination Gateway Genmask Flags MSS Window irtt Iface 10.1.1.10 0.0.0.0 255.255.255.255 UH 0 0 0 eth0 0.0.0.0 10.1.1.10 0.0.0.0 UG 0 0 0 eth0
所以10.1.1.10是預設網關,出介面eth0
但是,所有離開伺服器的數據包都具有與 eth0:1 關聯的 IP 地址。他們需要在 eth0 上擁有 IP。
路由在 route-eth0 中定義:
10.1.1.10/32 dev eth0 default via 10.1.1.10
我試圖在 ifcfg-eth0 中強制解決 GATEWAY 和 SRCADDR 的問題:
DEVICE=eth0 BOOTPROTO=static ONBOOT=yes IPADDR=10.1.1.1 SRCADDR=10.1.1.1 NETMASK=255.255.255.255 GATEWAY=10.1.1.10
ifcfg-eth0:1 中沒有定義網關:
DEVICE=eth0:1 IPADDR=10.1.1.2 NETMASK=
eth0 IP 地址是用於 /etc/hosts 中的 fqdn 的地址。如果我 ping fqdn,我會得到 eth0 IP 地址。
有人可以告訴我如何強制傳出數據包使用綁定到 eth0 的 IP,而不是綁定到 eth0:1 的 IP 作為源 IP。
在 ifcfg-eth0:1 文件中未設置網路遮罩將使 Linux 預設為 255.0.0.0,因為它是舊 A 類,並且能夠訪問該子介面上的網關。
您至少需要為 eth0 上的 IP 提供 /28 前綴遮罩,以便與預設網關位於同一子網中(對於您在 .10 上使用網關描述的場景)。將 eth0 的網路遮罩更改為 255.255.255.240,查看是否可以 ping 預設網關,然後您可以使用 /32 前綴 (255.255.255.255) 向該設備添加任何其他 IP 地址而不會出現問題。