我正在尝试将一些tap接口设置从tunctl迁移到systemd-networkd。我使用的是系统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个版本)中,它指出MAC地址应该在.netdev文件中的[NETDEV]部分中配置。(我知道,在后来版本的systemd中,MAC adress配置为匹配.network文件,但事实并非如此)
发布于 2015-01-14 16:08:04
引用systemd.netdev(5)的话:
用于设备的MAC地址。...此键目前不支持"tun“或"tap”设备。
据系统提交e0fbf1fcffe014d5af6767b29f9108c2f2444888说,这是不可能的。在systemd v215中,这个限制在手册中没有提到,这在那个版本中是一个明显的文档错误。
发布于 2020-09-04 09:10:37
您可以使用ip实用程序设置tun/tap接口mac地址:
ip link set address {MAC_ADDR} dev {DEVICE}实际上,在迁移到现代内核的情况下,建议使用iproute2而不是net-tools,因为它使用的是稀有的ioctl而不是更新的netlink。
https://unix.stackexchange.com/questions/179098
复制相似问题