Eu tento descobrir como configurar duas interfaces de rede lógicas (em uma interface física) com endereços MAC separados em uma máquina Linux.
Minha primeira tentativa foi usar o macvlan que parecia funcionar no começo:
[root@localhost ~]# ip link add link enp0s3 name veth0 type macvlan
[root@localhost ~]# ip link set veth0 up
[root@localhost ~]# dhclient veth0
[root@localhost ~]# ifconfig
enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.6 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::a00:27ff:fe3b:d08b prefixlen 64 scopeid 0x20<link>
ether 08:00:27:3b:d0:8b txqueuelen 1000 (Ethernet)
RX packets 356 bytes 58787 (57.4 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 210 bytes 24203 (23.6 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
veth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.11 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::2462:42ff:fecb:5090 prefixlen 64 scopeid 0x20<link>
ether 26:62:42:cb:50:90 txqueuelen 0 (Ethernet)
RX packets 83 bytes 9099 (8.8 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 34 bytes 3871 (3.7 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
No entanto, ao varrer a rede local de outra máquina, ambas as interfaces (192.168.1.6 e 192.168.1.11) são mostradas com o mesmo endereço MAC 08: 00: 27: 3b: d0: 8b.
Alguma idéia se isso for possível? Qual é o uso do macvlan se não posso usá-lo para este propósito?
Obrigado.
EDITAR:
Como sugerido por Otheus, tentei o mesmo de antes com as configurações
sysctl -w net.ipv4.conf.all.arp_ignore=1
sysctl -w net.ipv4.conf.all.arp_announce=2
Isso aparentemente faz com que as interfaces respondam apenas àquelas solicitações arp explicitamente dirigidas a elas.
Na minha configuração, isso levou à falha de solicitações DHCP para atribuir um endereço IP a veth0. Com um endereço IP estático em veth0, não consegui acessar esse endereço de outros hosts na rede (tentei arp / nmap / ping).
Minha conclusão (preliminar) é que não é possível ter uma interface virtual com um endereço MAC diferente na mesma sub-rede. No entanto, ainda me pergunto qual é o propósito exato do macvlan e por que vejo a interface virtual com seu próprio endereço MAC na máquina local (onde configuro a interface virtual), mas não em outras máquinas.