No se puede configurar la dirección mac para tocar la interfaz usando systemd-networkd

No se puede configurar la dirección mac para tocar la interfaz usando systemd-networkd

Estoy intentando migrar la configuración de algunas interfaces tap de tunctla systemd-networkd. Estoy usando systemd versión 215-8. Entonces tengo este test.netdevarchivo:

[Match]

[NetDev]
Name=tap_test
Kind=tap
MACAddress=1:2:3:4:5:6

y un test.networkarchivo:

[Match]
Name=tap_test

[Network]
Description=tap interface
Address=1.2.3.4/24

Esto se supone que reemplaza el comando.

ifconfig tap_test \
1.2.3.4 \
netmask  255.255.255.0 \
hw ether 1:2:3:4:5:6 up

que solía ejecutarse después del tunctlcomando.

El resultado está bien excepto por el hecho de que la dirección MAC no se configuró correctamente. En la documentación de systemd (para la versión 215) dice que la dirección MAC debe configurarse en el .netdevarchivo de la [NETDEV]sección. (Lo sé, en versiones posteriores systemdla dirección MAC está configurada en .networkarchivos coincidentes, pero este no es el caso)

Respuesta1

Citarsystemd.netdev(5):

La dirección MAC que se utilizará para el dispositivo. [...] Esta clave no es compatible actualmente con dispositivos "tun" o "tap".

De acuerdo aconfirmación de systemd e0fbf1fcffe014d5af6767b29f9108c2f2444888, esto nunca fue posible. A partir de systemd v215, esta limitaciónno se mencionaen la página de manual, que era un aparente error de documentación en esa versión.

Respuesta2

Puede configurar la dirección mac de la interfaz tun/tap con la utilidad ip:

ip link set address {MAC_ADDR} dev {DEVICE}

De hecho, en caso de migración a núcleos modernos, se sugiere utilizar iproute2en lugar de net-tools, ya que utiliza raros ioctlen lugar de más nuevos netlink.

información relacionada