Ip

Networkctl:手動 VLAN IP 連結

  • February 23, 2022

我有一個網路介面eth0,它將我的主網路作為未標記的流量和一個帶有 id 標記的流量的“管理”網路18。這是它的配置方式:

10-eth0.network:

[Match]
Name=eth0

[Link]
RequiredForOnline=yes

[Network]
DHCP=v4
VLAN=vlan18

vlan18.netdev:

[NetDev]
Name=vlan18
Kind=vlan

[VLAN]
Id=18

vlan18.network:

[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訪問該網路。

謝謝你。

根據文件,對此的解決方案是添加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.network:

[Match]
Name=vlan18

[Network]
Address=10.10.1.1/24

[Link]
ActivationPolicy=manual

不幸的是,正如此處(github/systemd)此處(超級使用者)所報告的,systemd 中似乎存在一個錯誤,使其ActivationPolicy在 VLAN 中被忽略。該配置適用於正常網路介面,沒有問題。

引用自:https://serverfault.com/questions/1094244