[Bridge] Simple bridge, something's wrong

Stephen Hemminger shemminger at linux-foundation.org
Mon Oct 8 08:36:40 PDT 2007


On Mon, 8 Oct 2007 02:50:42 -0500
Michael Jinks <mjinks at uchicago.edu> wrote:

> Hi, list.
> 
> I'm trying to set up a bridging VPN and having trouble.  The VPN part
> seems to be working well, but for some reason bridging doesn't.
> 
> To make things as simple as possible for tracking down what I'm doing
> wrong, I've set up a test network with three Linux machines connected to
> two ethernet segments, no VPN stuff involved:
> 
>  Host A                    Host B                   Host C
> 10.1.1.15--[segment 1]--[br0, no IP]--[segment 2]--10.1.1.16
>                         (eth1, eth2)

Does Host B have an IP address or is it a pure bridge?

> On Host B:
> 
>   $ /sbin/brctl show
>   bridge name     bridge id               STP enabled     interfaces
>   br0             8000.000c299eefe7       no              eth1
>                                                           eth2

Did you wait for the forwarding delay (30 sec) to expire after
setting up bridge?

/sbin/brctl showstp br0


> If I try to ping Host C from Host A, I get "Destination host
> unreachable".  Watching tcpdump on Host B at the same time, I see
> "who-has" arp requests coming in, but nothing going back out and no
> replies.  brctl shows that the bridge has learned the MAC of Host A, but
> not Host C.
> 
>   $ sudo tcpdump -n -i br0
>   tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
>   listening on br0, link-type EN10MB (Ethernet), capture size 96 bytes
>   01:46:37.542316 arp who-has 10.1.1.15 tell 10.1.1.16
>   01:46:38.543744 arp who-has 10.1.1.15 tell 10.1.1.16
>   01:46:39.544740 arp who-has 10.1.1.15 tell 10.1.1.16
> 
>   $ /sbin/brctl showmacs br0
>   port no mac addr                is local?       ageing timer
>     1     00:0c:29:9e:ef:e7       yes                0.00
>     2     00:0c:29:9e:ef:f1       yes                0.00
>     1     00:0c:29:d9:59:d8       no                 1.83
> 
> (00:0c:29:d9:59:d8 is correct for Host A.)
> 
> If I try to ping the other direction at the same time -- to Host A from
> Host C -- ping on host C doesn't produce any output at all, I don't see
> any arp traffic from Host C on Host B, and brctl doesn't show anything
> new.
> 
> But, a few seconds after I stop pinging from Host A, Host B starts to
> produce "host unreachable" messages, Host B sees C's arp requests, and
> for a short while brctl shows both systems' MAC addresses, until the
> record for A eventually times out:
> 
>   $ /sbin/brctl showmacs br0
>   port no mac addr                is local?       ageing timer
>     2     00:0c:29:25:1a:00       no                 0.74
>     1     00:0c:29:9e:ef:e7       yes                0.00
>     2     00:0c:29:9e:ef:f1       yes                0.00
>     1     00:0c:29:d9:59:d8       no                10.85
> 
> So, traffic is reaching the bridge, but it seems that nothing is ever
> repeated onto the other segment, and whichever host pings the bridge
> first "squashes" any traffic from the other.
> 
> I've tried various combinations of settings under /proc.  ip_forward set
> to both 1 and 0; /proc/sys/net/bridge/bridge-nf-* all set to 0 or all
> set to 1.  That doesn't seem to make any difference.
> 

Have you setup filter rules?? or just plan to in future.

-- 
Stephen Hemminger <shemminger at linux-foundation.org>


More information about the Bridge mailing list