Linux

兩個網卡在同一個 ip 段

  • September 1, 2010

解決這個問題的最佳技術方案是什麼?

我有一個 /24 段,在一個 Linux 伺服器(我們稱之為srv)中有兩個 NIC,在這個段中有兩個 IP 地址。

  • 網卡1/eth0 10.10.1.101//MAC1
  • 網卡2/eth1 10.10.1.102//MAC2

該段10.10.1.0 /24通過一個交換機連結起來,該交換機允許基於 MAC/IP 組合通過它進行訪問,IP 由該交換機的 DHCP 設置(基於單個 MAC)。

到目前為止,這似乎工作 -不知何故。我知道,這個設置在技術上是不行的,並且查看/var/log/messages顯示eth1每 500 毫秒的預期碰撞(火星源包):

...
srv 核心:[1217.220559] 來自 10.10.1.112 的火星源 10.10.1.254,在 dev eth1 上
srv 核心:[1217.220563] ll 標頭:ff:ff:ff:ff:ff:ff:00:1e:68:9d:54:05:08:06
srv 核心:[1218.313186] 來自 10.10.1.59 的火星源 10.10.1.255,在 dev eth1 上
srv 核心:[1218.313190] ll 標頭:ff:ff:ff:ff:ff:ff:00:13:d4:b7:6f:e9:08:00
...

每個 NIC 都有其特定的職責(連接到由基於 ip 的 vhosts-setup 中的一個 apache2 伺服器服務的不同網站)。

如何解決這個問題?sysctrl -p我知道(實際上我確實做到了),可以通過通常的呼叫關閉“火星數據包記錄” :

net.ipv4.conf.all.log_martians = 0
net.ipv4.conf.eth0.log_martians = 0
net.ipv4.conf.eth1.log_martians = 0
net.ipv4.conf.lo.log_martians = 0

但問題應該以乾淨的方式解決嗎?或者不是?

問候和感謝

rbo

你真的需要2個網卡嗎?

解決此問題的一種方法是向其中一個介面添加別名以分配額外的 IP 地址:

sudo /sbin/ifconfig eth0:1 10.10.1.102/24 向上

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