Bridge Network Problem - Comms Only Between NICs On Bridge

I have followed stux’s video on setting up a bridge and can’t get it working properly.

My server has four NICs:

  • two in a bond with a default gateway, used for internet access, static IP
  • one unused
  • one with an IP in an unrouted subnet, no gateway, static IP

I wanted a VM I’ve just spun up to be able to access host storage, so:

  • took the alias off the NIC on the unrouted subnet
  • created br0, a bridge interface, with the same NIC as a member
  • added an alias with the NIC’s previous details
  • changed the VM to use br0 rather than the previous NIC

Now from the TNS shell I can ping the IP on br0 and the VM, but nothing else on the subnet, and the IP on br0 does not respond to pings from any other devices on that subnet.

NB. kubernetes apps are not bound to br0, or the member NIC, they are bound to bond0, and everything running there still operates just fine.

Looking at the TNS console output, I can see that the bridge interface is constantly going up and down, but I can’t see why:

Jul  2 20:11:44 eurybia kernel: 
Jul  2 20:11:44 eurybia kernel: br0: port 1(enp2s0f0) entered blocking state
Jul  2 20:11:44 eurybia kernel: br0: port 1(enp2s0f0) entered listening state
Jul  2 20:11:53 eurybia kernel: perf: interrupt took too long (10604 > 10356), lowering kernel.perf_event_max_sample_rate to 18750
Jul  2 20:11:59 eurybia kernel: br0: port 1(enp2s0f0) entered learning state
Jul  2 20:12:14 eurybia kernel: br0: port 1(enp2s0f0) entered forwarding state
Jul  2 20:12:14 eurybia kernel: br0: topology change detected, propagating
Jul  2 20:12:42 eurybia kernel: br0: port 1(enp2s0f0) entered disabled state
Jul  2 20:12:44 eurybia kernel: bnx2 0000:02:00.0 enp2s0f0: NIC Copper Link is Up, 1000 Mbps full duplex
Jul  2 20:12:44 eurybia kernel: 
Jul  2 20:12:44 eurybia kernel: br0: port 1(enp2s0f0) entered blocking state
Jul  2 20:12:44 eurybia kernel: br0: port 1(enp2s0f0) entered listening state
Jul  2 20:12:46 eurybia kernel: br0: port 1(enp2s0f0) entered disabled state
Jul  2 20:12:48 eurybia kernel: bnx2 0000:02:00.0 enp2s0f0: NIC Copper Link is Up, 1000 Mbps full duplex
Jul  2 20:12:48 eurybia kernel: 
Jul  2 20:12:48 eurybia kernel: br0: port 1(enp2s0f0) entered blocking state
Jul  2 20:12:48 eurybia kernel: br0: port 1(enp2s0f0) entered listening state
Jul  2 20:13:03 eurybia kernel: br0: port 1(enp2s0f0) entered learning state

Any ideas?

Never mind, sorted it.

The switchport had bpduguard enabled and spanningtree port fast, and was in an errdisable state. That’s what was causing the host br0 interface to bounce.

Disabled both of those and all is good.

Obvious when you think about it: the switchport no longer had a host connected to it, but another switch (the bridge interface)

1 Like