tech-net archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: About bridges



On Sat, 08 May 2021 14:12:24 +0100
Robert Swindells <rjs%fdy2.co.uk@localhost> wrote:

> Staffan Thomén <staffan%shangtai.net@localhost> wrote:
> >I was toying with bridging three of the four ethernet ports on an
> >pcengines apu4d4 recently and bumped into something that made me unsure
> >if I understood how to use bridges correctly.
> >
> >My setup is like this:
> >
> >wm1 configured with an address
> >wm2 no address, just up
> >wm3 same as 2
> >
> >and the bridge:
> >
> >brconfig bridge0 add wm1 stp wm1 add wm2 stp wm2 add wm3 stp wm3
> >
> >This all works, packets flow and addresses are learned on all
> >interfaces, but ONLY if there is a cable with a link on wm1. It seems to
> >be that if there is no link on wm1 the interface (status: no carrier and
> >address shows <DETACHED>) gets disabled in the bridge, which kind of
> >sucks because then the host has no address and communication stops.  
> 
> [snip]
> 
> >So how is this supposed to work? Can I force the interface with an
> >address to stay enabled somehow or is there a pseudo-device that I
> >haven't found that I should be using?  
> 
> My reading is that this is caused by revision 1.175 of if_bridge.c which
> explicitly changed bridge(4) to behave in this way.
> 
> I have been caught out by this change in a different way. I just use
> dhcpcd(8) to configure IPv6 and have static IPv4 addresses on everything
> on my LAN.
> 
> When I add the upstream interface to a bridge this toggles the status
> on the interface and something in dhcpcd(8) or resolvconf(8) overwrites
> my /etc/resolve.conf with an empty one.
> 
> I think we should revert this change, any other opinions ?
> 
> Robert Swindells

I also recently discovered this behavior. I tried to bridge a WiFi interface
and an ethernet interface on my NetBSD router, so both wireless and wired
hosts would be on the same subnet. I was quite puzzled when if the
ethernet cable was unplugged, wireless hosts could not communicate. Through
experimentation I figured out that when there was no carrier on the wired
interface, the IP address and route went away.

I then thought that a solution would be to put the IP address on some
pseudo-device also attached to the bridge, but could not find something
suitable.

I read that OpenBSD has a vether pseudo-device which is specifically
intended for these kinds of bridge situations.
https://man.openbsd.org/vether
It would be nice if NetBSD had something equivalent to OpenBSD vether

I am still looking for a solution to this problem.


Home | Main Index | Thread Index | Old Index