Netplan - 桥接默认生成树行为

Netplan - 桥接默认生成树行为

我不是 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

相关内容