packet storm as nics in STP enabled netns bridges lack BPDU maddr 01:80:c2:00:00:00
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
linux-signed (Ubuntu) |
New
|
Undecided
|
Unassigned |
Bug Description
Bridges with STP enabled, only if in the non-default namespace, connecting the nic as a port to the bridge will not add the STP multicast address to the port nics, causing them to fail in all important BPDU topology updates. This leads to packet storms, effectively locking up all connected systems -- all the problems STP is designed to prevent.
This bug exists in ubuntu's 5.15 generic Jammy and 6.1 22.04c kernels. 100% reproducible. Below you'll see two cases that vary only in that one takes place in a non-default network namespace. The only material difference is the nic ports in the non-default namespace lack the STP bridge multicast address.
Notice in the default namespace, for example, we have:
ip -d link show lan0bridge
31: lan0bridge: <BROADCAST,
link/ether 52:54:e5:79:c5:7a brd ff:ff:ff:ff:ff:ff promiscuity 0 minmtu 68 maxmtu 65535
bridge forward_delay 1500 hello_time 200 max_age 2000 ageing_time 30000 stp_state 1 priority 28 vlan_filtering 0 vlan_protocol 802.1Q bridge_id 001c.52:
And an example port:
ip -d addr show gnv0lan1
32: gnv0lan1: <BROADCAST,
link/ether 52:54:86:cb:d4:05 brd ff:ff:ff:ff:ff:ff promiscuity 1 minmtu 68 maxmtu 65485
geneve id 7745 remote 192.XXX.XXX.XXx ttl auto dstport 6081 noudpcsum udp6zerocsumrx
bridge_slave state forwarding priority 32 cost 100 hairpin off guard off root_block off fastleave off learning on flood on port_id 0x8002 port_no 0x2 designated_port 32770 designated_cost 4 designated_bridge 001c.52:
And the expected
# ip maddr show gnv0lan1
32: gnv0lan1
link 33:33:00:00:00:02 users 2
link 01:00:5e:00:00:01
link 33:33:00:00:00:01
link 01:80:c2:00:00:00 <-- STP multicast address.
...
But in a non-default namespace we have, for example:
root@rssnoc2e0:~# ip netns exec squad0ns ip -d link show sqd0lanbr
20: sqd0lanbr: <BROADCAST,
link/ether 2a:19:e7:b2:98:c6 brd ff:ff:ff:ff:ff:ff promiscuity 0 minmtu 68 maxmtu 65535
bridge forward_delay 1500 hello_time 200 max_age 2000 ageing_time 30000 stp_state 1 priority 10000 vlan_filtering 0 vlan_protocol 802.1Q bridge_id 2710.2a:
And a nic on that bridge:
root@rssnoc2e0:~# ip netns exec squad0ns ip -d link show gnv1lan
21: gnv1lan: <BROADCAST,
link/ether 4a:cf:01:4b:0a:fd brd ff:ff:ff:ff:ff:ff promiscuity 1 minmtu 68 maxmtu 65485
geneve id 7745 remote 192.XXX.XXX.XXX ttl auto dstport 6081 noudpcsum udp6zerocsumrx
bridge_slave state forwarding priority 32 cost 2048 hairpin off guard off root_block off fastleave off learning on flood on port_id 0x8001 port_no 0x1 designated_port 32769 designated_cost 0 designated_bridge 2710.2a:
And here, we see the STP multicast address is missing:
root@rssnoc2e0:~# ip netns exec squad0ns ip maddr show gnv1lan
21: gnv1lan
link 33:33:00:00:00:01
link 01:00:5e:00:00:01
inet 224.0.0.1
inet6 ff02::1
inet6 ff01::1
root@rssnoc2e0:~#
!! Missing multicast address for STP BPDU reception.
no longer affects: | ubuntu |
summary: |
- packet storm as nics in STP enabled bridges lack BDPU maddr + packet storm as nics in STP enabled netns bridges lack BDPU maddr 01:80:c2:00:00:00 |
description: | updated |
summary: |
- packet storm as nics in STP enabled netns bridges lack BDPU maddr + packet storm as nics in STP enabled netns bridges lack BPDU maddr 01:80:c2:00:00:00 |
tags: | added: kernel-net |