您可以使用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在我的经历中也是非常错误的.