Die Mac-Adresse kann mit systemd-networkd nicht auf die TAP-Schnittstelle eingestellt werden

Die Mac-Adresse kann mit systemd-networkd nicht auf die TAP-Schnittstelle eingestellt werden

Ich versuche, einige Tap-Schnittstellen-Setups von tunctlnach zu migrieren systemd-networkd. Ich verwende systemd Version 215-8. Ich habe also diese test.netdevDatei:

[Match]

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

und eine test.networkDatei:

[Match]
Name=tap_test

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

Dies soll den Befehl ersetzen

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

das früher nach dem Befehl ausgeführt wurde tunctl.

Das Ergebnis ist in Ordnung, abgesehen von der Tatsache, dass die MAC-Adresse nicht richtig konfiguriert wurde. In der Dokumentation von systemd (für Version 215.netdev) heißt es, dass die MAC-Adresse in der Datei im Abschnitt konfiguriert werden soll [NETDEV]. (Ich weiß, in späteren Versionen systemdwird die MAC-Adresse in entsprechenden .networkDateien konfiguriert, aber das ist nicht der Fall)

Antwort1

Zitierensystemd.netdev(5):

Die für das Gerät zu verwendende MAC-Adresse. [...] Dieser Schlüssel wird derzeit für „tun“- oder „tap“-Geräte nicht unterstützt.

Entsprechendsystemd commit e0fbf1fcffe014d5af6767b29f9108c2f2444888war dies nie möglich. Ab systemd v215 ist diese Einschränkungwird nicht erwähntin der Manpage, was offensichtlich ein Dokumentationsfehler in dieser Version war.

Antwort2

Sie können die MAC-Adresse der Tun/Tap-Schnittstelle mit dem IP-Dienstprogramm festlegen:

ip link set address {MAC_ADDR} dev {DEVICE}

Tatsächlich wird im Falle einer Migration auf moderne Kernel die Verwendung iproute2anstelle von empfohlen net-tools, da dabei „rare“ ioctlanstelle von „newer“ verwendet wird netlink.

verwandte Informationen