gra*_*uyt 22 mac-address ip-address linux-networking
一个简单的问题:如何在一个物理网络接口 (linux) 上设置多个 MAC 地址?
为什么?我的 ISP 正在检查 GW 上的 ip<->mac,我想通过我的“linuxbox”路由流量,而不是用不同的源 ip 转发它。
如果不检查 ip<->mac,我将使用 eth0、eth0:0,但在这种情况下,我需要每个 IP 的唯一 MAC 地址。
eat*_*ter 32
您可以使用 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
Run Code Online (Sandbox Code Playgroud)
从理论上讲,这应该就是您所需要的,尽管在某些时候内核中出现了某些问题,这会导致它对所有内容都使用一个 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
Run Code Online (Sandbox Code Playgroud)
不幸的是,根据我的经验,arptables 也有很多问题。