systemd-networkd を使用して MAC アドレスを Tap インターフェイスに設定することはできません。

systemd-networkd を使用して MAC アドレスを Tap インターフェイスに設定することはできません。

からいくつかのTapインターフェイス設定を移行しようとしていますtunctlsystemd-networkdsystemdバージョン215-8を使用しています。だから私はこのtest.netdevファイルを持っています:

[Match]

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

そしてtest.networkファイル:

[Match]
Name=tap_test

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

これは代替コマンドを想定しています。

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

tunctlコマンドの後に実行されました。

MACアドレスが正しく設定されていないことを除いて、結果は良好です。 systemdのドキュメントから(バージョン 215 の場合.netdev)部分ファイルにMACアドレスを設定する必要があることを示します[NETDEV]。 (今後のバージョンでは、systemdMACアドレスが一致ファイルに設定されていることがわかりますが、.networkそうではありません。)

答え1

見積もりsystemd.netdev(5):

デバイスで使用されるMACアドレス。 [...]このキーは現在、「tun」または「tap」デバイスではサポートされていません。

~によるとsystemd コミット e0fbf1fcfe014d5af6767b29f9108c2f2444888、それは不可能です。 systemd v215以降、この制限は言及されていないマンページでは、これはこのバージョンの明らかな文書エラーです。

答え2

ipユーティリティを使用して、ton / tapインターフェイスMACアドレスを設定できます。

ip link set address {MAC_ADDR} dev {DEVICE}

実際に最新のカーネルに移行する場合は、最新のカーネルではなくrareを使用するため、iproute2代わりに使用することをお勧めします。net-toolsioctlnetlink

関連情報