if_bridge steals IP address of non-member interface

Nik Lam freebsdnik at j2d.lam.net.au
Tue Mar 7 02:11:49 UTC 2006

I'm not sure if what I'm seeing is an artefact of me doing something 
unusual with my design or if there is a bug in if_bridge.

I'm dividing my LAN into two parts using a pair of intel pro 1000 (em) 
interfaces in an if_bridge bridge. I've configured this bridge with STP 
(802.1d) although I don't think this should be the cause of the 
problem.  On the same host which is doing the bridging, I've got another 
interface (fxp0) which is configured "normally", i.e. it has an IP 
address on the subnet which the bridge divides.

Generally this setup works fine, however every now and then I find that 
the bridge is answering ARP who-has queries for the IP address assigned 
to fxp0.

Here's a simplified example:

My LAN is

The bridge host has 3 interfaces, fxp0, em0 and em1.

em0 and em1 are members of the bridge

fxp0 is configured with netmask for managing 
the host.

em0 is plugged into switch A

em1 is plugged into switch B

fxp0 is plugged into switch A

There are other hosts plugged into both switches and the bridge behaves 
as expected in transiting traffic between switch A and switch B.  
However, sometimes when a host on switch A tries to contact the bridge 
host itself using, rather than getting the mac address for 
fxp0, it gets the mac address for em0.

I've tried putting arp -S statements to permanently fix the fxp0 MAC 
address to its IP address in my rc.local of the bridge host in case that 
is taken notice of, but this doesn't seem to affect things in any 
positive way.



More information about the freebsd-net mailing list