Ubuntu
如何為三個不同子網上的三個 NIC 卡配置網路介面
我正在 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