Networkctl:手动 VLAN IP 链接

Networkctl:手动 VLAN IP 链接

我有一个网络接口eth0,它将我的主网络作为未标记的流量,以及一个带有标记流量的“管理”网络,其 id 为18。这是它的配置方式:

10-eth0.网络:

[Match]
Name=eth0

[Link]
RequiredForOnline=yes

[Network]
DHCP=v4
VLAN=vlan18

VLAN18.netdev:

[NetDev]
Name=vlan18
Kind=vlan

[VLAN]
Id=18

vlan18.网络:

[Match]
Name=vlan18

[Network]
Address=10.10.1.1/24

启动时,服务器将eth0通过 DHCP 获取 IP,并vlan18@eth0使用静态 IP 为“管理”网络创建10.10.1.1,一切正常。

我怎样才能告诉 networkctl 创建vlan18@eth0接口但不在启动时启动它?这个想法是,在需要的时候,有一堆脚本可以执行ip link set vlan18 up/ip link set vlan18 down访问该网络。

谢谢。

答案1

根据文档,解决此问题的方法是添加网络定义部分ActivationPolicy=manualLink

激活策略=

指定 systemd-networkd 管理链接管理状态的策略。具体来说,这控制 systemd-networkd 如何更改网络设备的“IFF_UP”标志,该标志有时由系统管理员通过运行 ip link set dev eth0 up 或 ip link set dev eth0 down 等来控制,也可以使用 networkctl up eth0 或 networkctl down eth0 进行更改。

采取“up”、“always-up”、“manual”、“always-down”、“down”或“bound”之一。当设置为“手动”时,systemd-networkd 不会自动更改链接的管理状态;系统管理员必须根据需要手动启动或关闭接口。

来源:https://www.freedesktop.org/software/systemd/man/systemd.network.html#ActivationPolicy=

vlan18.网络:

[Match]
Name=vlan18

[Network]
Address=10.10.1.1/24

[Link]
ActivationPolicy=manual

不幸的是,据报道这里 (github/systemd)这里(超级用户)systemd 中似乎有一个错误,导致它ActivationPolicy在 VLAN 中被忽略。该配置适用于常规网络接口,没有问题。

相关内容