我确实有一个巨大的 Linux 路由器设置。有 3 个真正的 IF 和大约 200 个带有 IP 的桥接器,而 ubuntu 在启动阶段需要很长时间才能启动它们。
我虽然不担心,但还是删除了这些
auto ens19.xxx
东西,然后在自己的启动脚本中将它们调出来......
但此后部分接口配置未找到。
这是特定桥的 IF 配置文件内容。自动 ens ... 部分已存在,此操作成功!
#auto ens19.2023
iface ens19.2023 inet manual
vlan-raw-device ens19
#auto ens19.2023.4
iface ens19.2023.4 inet manual
vlan-raw-device ens19.2023
#auto ens19.2023.4090
iface ens19.2023.4090 inet manual
vlan-raw-device ens19.2023
#auto br_TB123
iface br_TB123 inet static
address 10.160.61.97
netmask 255.255.255.240
dns-nameservers 10.160.5.2
bridge_ports ens19.2023 ens19.2023.4 ens19.2023.4090
ifup -v ens19.2023 按预期工作
Parsing file /etc/network/interfaces.d/TB123.cfg
Reading directory /etc/network/interfaces.d
if test -d /sys/class/net/ens19 -a ! -d /sys/class/net/ens19.2023 ; then if test -d /sys/class/net/ens19/device/infiniband; then echo 0x2023 > /sys/class/net/ens19/create_child; else /bin/ip link set up dev ens19; /bin/ip link add link ens19 name ens19.2023 type vlan id 2023; fi; fi
Configuring interface ens19.2023=ens19.2023 (inet)
/bin/run-parts --exit-on-error --verbose /etc/network/if-pre-up.d
run-parts: executing /etc/network/if-pre-up.d/bridge
run-parts: executing /etc/network/if-pre-up.d/ethtool
run-parts: executing /etc/network/if-pre-up.d/ifenslave
+ [ inet = meta ]
+ IF_BOND_SLAVES=
+ [ ]
+ [ ]
+ [ -z ]
+ exit
run-parts: executing /etc/network/if-pre-up.d/vlan
Set name-type for VLAN subsystem. Should be visible in /proc/net/vlan/config
run-parts: executing /etc/network/if-pre-up.d/wpasupplicant
/bin/ip link set dev ens19.2023 up 2>/dev/null || true
/bin/run-parts --exit-on-error --verbose /etc/network/if-up.d
run-parts: executing /etc/network/if-up.d/000resolvconf
run-parts: executing /etc/network/if-up.d/ethtool
run-parts: executing /etc/network/if-up.d/ifenslave
+ [ inet = meta ]
+ [ ]
run-parts: executing /etc/network/if-up.d/ip
run-parts: executing /etc/network/if-up.d/openssh-server
run-parts: executing /etc/network/if-up.d/vlan
run-parts: executing /etc/network/if-up.d/wpasupplicant
root@dsr-router-1:/etc/network#
但以下ifup -v ens19.2023.4 failed
if test -d /sys/class/net/ens19 -a ! -d /sys/class/net/ens19.2023.4 ; then if test -d /sys/class/net/ens19/device/infiniband; then echo 0x2023 > /sys/class/net/ens19/create_child; else /bin/ip link set up dev ens19; /bin/ip link add link ens19 name ens19.2023.4 type vlan id 2023; fi; fi
RTNETLINK answers: File exists
Ignoring unknown interface ens19.2023.4=ens19.2023.4.
对我来说,这里的 IP 链接部分有问题
//// 更新 /////
我在 /etc/network/if-pre-up.d/vlan 中添加了打印内容,并仅启动了主 vlanifup ens19.2023
但你自己看看
root@dsr-router-1:~# ifup ens19.2023
ens19.2023
Set name-type for VLAN subsystem. Should be visible in /proc/net/vlan/config
ens19.2023.4
Set name-type for VLAN subsystem. Should be visible in /proc/net/vlan/config
Added VLAN with VID == 4 to IF -:ens19.2023:-
ens19.2023.4090
Set name-type for VLAN subsystem. Should be visible in /proc/net/vlan/config
Added VLAN with VID == 4090 to IF -:ens19.2023:-
root@dsr-router-1:~#
ifup 正在遍历所有名称以 ens19.2023 开头的接口,这肯定是错误的