Linux

3 個 NIC 上的 3 個 IP 和 3 個網關 - #3 沒有響應請求 - 路由到錯誤的埠?

  • October 12, 2011

我有一個 CentOS 5.5 伺服器,它使用 2 個板載網路埠(eth0)和 2 個 PCI 網卡(eth2 和 eth3)中的一個 - 每個在不同的子網上都有自己的 IP,在不同的 VLAN 上有不同的網關。eth0 和 eth2 上的 IP 工作正常,但 eth3 上的 IP 沒有響應包括 ICMP 在內的請求,儘管它在交換機上顯示為活動的,如果我在伺服器上本地 ping IP 它確實有效。

我猜這是 Linux 的某種 IP 路由問題,也許它試圖響應 eth2 或 eth0 而不是 eth3 上的 eth3 請求?

希望有人對我有一些建議嗎?

eth0: x.x.236.2 netmask 255.255.252.0 gateway x.x.236.1
eth2: x.x.232.2 netmask 255.255.252.0 gateway x.x.232.1
eth3: x.x.208.2 netmask 255.255.248.0 gateway x.x.208.1

“ip route”的輸出:

x.x.236.0/22 dev eth0  proto kernel  scope link  src x.x.236.2
x.x.232.0/22 dev eth2  proto kernel  scope link  src x.x.232.2
x.x.208.0/21 dev eth3  proto kernel  scope link  src x.x.208.2
169.254.0.0/16 dev eth3  scope link
default via x.x.232.1 dev eth2
default via x.x.236.1 dev eth0
default via x.x.208.1 dev eth3

Linux 在離目的地最近的介面上發送出站數據包。出於路由目的,它不會將一個數據包視為對另一個數據包的“響應”,這樣做也沒有任何意義。

除了冗餘之外,您通常不應擁有三個網關。如果路由器無法處理從任何機器的 IP 地址到您沒有更具體路由的任何主機的數據包,則不應將其列為網關。

沒有“eth3 請求”之類的東西。只有數據包,帶有源和目標 IP 地址。

三個列出的預設值意味著三台機器可以處理到非本地主機的任何數據包。

引用自:https://serverfault.com/questions/320823