Linux

Linux預設網關錯誤?

  • June 12, 2020

我部署了一個 VMware vCloud 設備,在部署之前,我被要求輸入該設備應使用的 IP 地址和預設網關。預設情況下,此設備有 2 個 IP 地址和網卡,它們應位於同一子網中。

所以我輸入的資訊是: 10.248.2.10/24 for eth0 10.248.2.20/24 for eth1 預設網關是 10.248.2.254

現在我遇到了一個奇怪的問題。當我從同一子網中的電腦 ping 兩個 IP 地址時,一切都很好。當我從不同子網中的電腦 ping 時,我只收到來自 10.248.2.20 地址 (eth1) 的回复。當我登錄到設備時,我可以 ping 同一子網中的電腦以及不同子網中的電腦。

網路人員向我保證沒有防火牆阻止此流量。

不知道哪裡出錯了。我在想也許路由表不正確?不應該只有一個“預設”目的地嗎?但話又說回來,我希望進入 eth0 或 eth1 的流量也會離開它到達的同一個介面,或者這不是一個正確的假設?

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         10.248.2.254    0.0.0.0         UG    0      0        0 eth1
default         10.248.2.254    0.0.0.0         UG    0      0        0 eth0
10.248.2.0      *               255.255.255.0   U     0      0        0 eth1
10.248.2.0      *               255.255.255.0   U     0      0        0 eth0

任何線索在哪裡尋找?

在同一個子網中,無需路由即可訪問兩個 IP。

從不同的子網,您將需要工作路由才能正常工作。在您的情況下,預設路由通過 eth1。

如果您只想簡單地使路由優先 eth0,您可以使用路由表來完成此操作,或者只是為所需介面提供較低的指標。在這兩種情況下,您都將路由到所需的介面。

您還可以添加規則來確定哪個表用於什麼:

  • 創建兩個路由表,每個網卡一個
  • 將每個介面的路由添加到相應的表中
  • 添加規則以確定使用哪個表

這應該可以防止流量在內部通過 NIC,從而允許您保留冗餘或將每個 NIC 用於不同的功能。

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