Ip-Address

一個物理網路介面上的多個 MAC 地址 (linux)

  • February 20, 2012

簡單問題:如何在一個物理網路介面 (linux) 上設置多個 MAC 地址?

為什麼?我的 ISP 正在檢查 GW 上的 ip<->mac,我想通過我的“linuxbox”路由流量,而不是使用不同的源 ip 轉發它。

在不檢查 ip<->mac 的情況下,我將使用 eth0、eth0:0,但在這種情況下,我需要為每個 IP 提供唯一的 MAC 地址。

您可以使用 macvlan 創建多個具有不同 MAC 地址的虛擬介面。

ip link add link eth0 address 00:11:11:11:11:11 eth0.1 type macvlan
ip link add link eth0 address 00:22:22:22:22:22 eth0.2 type macvlan

從理論上講,這應該就是您所需要的,儘管在某些時候核心中出現了問題,這會導致它對所有事情都使用一個 MAC。我不確定那是什麼狀態;希望它是固定的。

如果沒有,您可以使用 arptables 在基於出口介面的輸出或基於目標 IP 的輸入上重寫 MAC 地址:

arptables -A OUT -o eth0.1 --arhln 06 -j mangle --mangle-hw-s 00:11:11:11:11:11
arptables -A OUT -o eth0.2 --arhln 06 -j mangle --mangle-hw-s 00:22:22:22:22:22
arptables -A IN -d 192.168.1.1 --arhln 06 -j mangle --mangle-hw-d 00:11:11:11:11:11
arptables -A IN -d 192.168.1.2 --arhln 06 -j mangle --mangle-hw-d 00:22:22:22:22:22

不幸的是,根據我的經驗,arptables 也有很多問題。

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