![Netplan - 桥接默认生成树行为](https://linux22.com/image/1028076/Netplan%20-%20%E6%A1%A5%E6%8E%A5%E9%BB%98%E8%AE%A4%E7%94%9F%E6%88%90%E6%A0%91%E8%A1%8C%E4%B8%BA.png)
我不是 Linux 新手,但这是我在 Ask Ubuntu 上的第一篇文章。如果我遗漏了任何关键信息,请告诉我,我会更新问题。
OS: Ubuntu Server 22.04.1 x86_64
Kernel: 5.15.0-48-generic
All packages are up to date.
我观察到,对于使用 Netplan 配置的网络桥,生成树协议并未默认启用,尽管手册表明这应该是默认行为。
此外,运行“netplan apply”时,在 netplan yaml 中启用它的“stp:true”条目被拒绝。
我已通过修改 /etc/netplan/00-installer-config.yaml 成功设置了我的网络
# This is the network config written by 'subiquity'
network:
version: 2
ethernets:
eno1:
dhcp4: true
enp1s0:
dhcp4: false
enxb2e5f92d03ca:
dhcp4: false
bridges:
br0:
dhcp4: true
interfaces:
- enxb2e5f92d03ca
- enp1s0
不过,我已确认 stp 没有被启用:
<host>:~$ brctl show
bridge name bridge id STP enabled interfaces
br0 8000.4231c3cca58e no enp1s0
enxb2e5f92d03ca
如果我手动启用 stp:
<host>:~$ brctl stp br0 on
STP 开启并且一切正常...直到我重新启动并且 STP 再次重置为禁用状态...
<host>:~$ brctl show
bridge name bridge id STP enabled interfaces
br0 8000.4231c3cca58e yes enp1s0
enxb2e5f92d03ca
我正在尝试默认启用我的网桥的 STP。
除了手册中描述应该默认启用之外,我还尝试将 stp 参数添加到上面的 yaml 中:
bridges:
br0:
dhcp4: true
stp: true
interfaces:
- enxb2e5f92d03ca
- enp1s0
但是这给了我如下错误:
Error in network definition: unknown key 'stp'
该手册还描述了一个“rstp”参数(不确定它的作用),但是与上面的类似,它被拒绝了。
我知道 yaml 对行距非常敏感,但我无法判断我的格式是否不正确,或者 netplan 是否有问题。(不过这可能是我的语法问题)
任何建议都值得感激。我只需要默认启用 STP。
提前致谢。
答案1
我的文件通常是这样的:
doug@s19:~/config/etc/netplan$ cat 01-netcfg.yaml
# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
version: 2
renderer: networkd
ethernets:
enp3s0:
dhcp4: no
bridges:
br0:
interfaces: [ enp3s0 ]
dhcp4: yes
# dhcp4: no
# addresses: [192.168.111.136/24]
# gateway4: 192.168.111.1
# nameservers:
# addresses: [192.168.111.1]
# dhcp6: no
# link-local: [ ]
# parameters:
# stp: true
# forward-delay: 4
结果是:
doug@s19:~/config/etc/netplan$ brctl show
bridge name bridge id STP enabled interfaces
br0 8000.3c7c3f0d9983 no enp3s0
我这样做了:
doug@s19:~/config/etc/netplan$ cat 01-netcfg.yaml
# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
version: 2
renderer: networkd
ethernets:
enp3s0:
dhcp4: no
bridges:
br0:
interfaces: [ enp3s0 ]
dhcp4: yes
# dhcp4: no
# addresses: [192.168.111.136/24]
# gateway4: 192.168.111.1
# nameservers:
# addresses: [192.168.111.1]
# dhcp6: no
link-local: [ ]
parameters:
stp: true
# forward-delay: 4
导致重新启动后出现以下情况:
doug@s19:~/config/etc/netplan$ brctl show
bridge name bridge id STP enabled interfaces
br0 8000.3c7c3f0d9983 yes enp3s0
我没有尝试进一步隔离事物:
doug@s19:~/config/etc/netplan$ diff 01-netcfg.yaml.doug 01-netcfg.yaml.test
19,21c19,21
< # link-local: [ ]
< # parameters:
< # stp: true
---
> link-local: [ ]
> parameters:
> stp: true