Estoy intentando migrar la configuración de algunas interfaces tap de tunctl
a systemd-networkd
. Estoy usando systemd versión 215-8. Entonces tengo este test.netdev
archivo:
[Match]
[NetDev]
Name=tap_test
Kind=tap
MACAddress=1:2:3:4:5:6
y un test.network
archivo:
[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 tunctl
comando.
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 .netdev
archivo de la [NETDEV]
sección. (Lo sé, en versiones posteriores systemd
la dirección MAC está configurada en .network
archivos 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 iproute2
en lugar de net-tools
, ya que utiliza raros ioctl
en lugar de más nuevos netlink
.