Estou tentando migrar algumas configurações de interfaces de toque de tunctl
para systemd-networkd
. Estou usando o systemd versão 215-8. Então eu tenho esse test.netdev
arquivo:
[Match]
[NetDev]
Name=tap_test
Kind=tap
MACAddress=1:2:3:4:5:6
e um test.network
arquivo:
[Match]
Name=tap_test
[Network]
Description=tap interface
Address=1.2.3.4/24
Isso supõe que substitua o comando
ifconfig tap_test \
1.2.3.4 \
netmask 255.255.255.0 \
hw ether 1:2:3:4:5:6 up
que costumava ser executado após o tunctl
comando.
O resultado é bom, exceto pelo fato de o endereço MAC não ter sido configurado corretamente. Na documentação do systemd (para versão 215) diz que o endereço MAC deve ser configurado no .netdev
arquivo da [NETDEV]
seção. (Eu sei, em versões posteriores systemd
o endereço MAC é configurado em .network
arquivos correspondentes, mas não é o caso)
Responder1
Citarsystemd.netdev(5):
O endereço MAC a ser usado para o dispositivo. [...] Esta chave não é atualmente suportada para dispositivos "tun" ou "tap".
De acordo comcommit do sistema e0fbf1fcffe014d5af6767b29f9108c2f2444888, isso nunca foi possível. A partir do systemd v215, esta limitaçãonão é mencionadona página de manual, o que era um aparente bug de documentação naquela versão.
Responder2
Você pode definir o endereço MAC da interface tun/tap com o utilitário ip:
ip link set address {MAC_ADDR} dev {DEVICE}
Na verdade, no caso de migração para kernels modernos, sugere-se usar iproute2
em vez de net-tools
, porque usa rare ioctl
em vez de mais recente netlink
.