Networkctl:手動 VLAN IP 連結
我有一個網路介面
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=manual
到Link
網路定義的部分:啟動策略=
指定 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 中被忽略。該配置適用於正常網路介面,沒有問題。