Ubuntu

如何為三個不同子網上的三個 NIC 卡配置網路介面

  • April 9, 2015

我正在 Ubuntu 上設置雲環境,但遇到了一個有趣的問題。開箱即用的 Ubuntu(實際上是所有 linux)不允許您在 /etc/network/interfaces 中指定多個網關

由於我沒有對任何 NIC 使用 DHCP,並且我在交換機和路由器上使用 vLAN(參考下圖),因此我需要此伺服器上的每個 NIC 不僅要有自己的 IP,還要指定自己的網關。由於 10.0.1.0/24 的 vLAN 2 無法訪問預設網關 10.0.0.1,但由於網路遮罩 255.255.255.0 而無法訪問。

我的所有研究都讓我明白我需要手動配置路由表,但是,當我嘗試為第一個 eth0 網卡添加路由時,我收到以下錯誤:

# ip route add default via 10.0.1.1 dev eth1 table eth1
RTNETLINK answers: File exists

在此處輸入圖像描述

在這一點上,我失去了嘗試的東西……我無法將路由添加到新路由表,並且沒有顯式路由,每個 NIC 卡都嘗試使用 10.0.0.1 作為網關,因為它是 10.0.0.0/ 的預設網關24

因此,這是在接受馬特的建議並進行反複試驗後的答案。

我使用的命令具有以下模式 ip route add via dev

最後的命令實際上是

# ip route add 10.0.1.31 via 10.0.1.1 dev eth1
# ip route add 10.0.2.31 via 10.0.2.1 dev eth2

添加這些後,我在 vLAN 上的 IP 之間 ping 沒有問題。太棒了……

本質上,這裡的區別在於我添加了一條靜態路由,以便將互動下一跳發送到 vLAN 網關 ID,而不是發送到預設網關。

同樣,這些都是永久性的,我最終將它們作為後期配置添加到 /etc/network/interfaces 配置文件中。所以我結束了 eth1 和 eth2 的這一行,但我不理會 eth0,因為它可以使用預設網關

post-up route add 10.0.1.31 via 10.0.1.1 dev eth1

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