You are not logged in.

#1 2011-08-05 18:14:59

julian24
Member
From: Germany
Registered: 2011-08-05
Posts: 17

Kernel 2.6.39 breaking(?) network bridges

Hi.

I recently ran into some trouble with network bridges on Arch.

Description

This is what you get if you create a bridge on Debian:

debian# brctl addbr br0
debian# ifconfig br0 up
debian# ifconfig br0
br0       Link encap:Ethernet  HWaddr f6:56:ad:d8:77:f4  
          inet6 addr: fe80::f456:adff:fed8:77f4/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:7 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 B)  TX bytes:1407 (1.3 KiB)

debian# ip link show br0
4: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN 
    link/ether f6:56:ad:d8:77:f4 brd ff:ff:ff:ff:ff:ff

And this is what you get if you do the same on Arch:

arch# brctl addbr br0
arch# ifconfig br0 up
arch# ifconfig br0
br0       Link encap:Ethernet  HWaddr 82:50:01:29:67:7F  
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

arch# ip link show br0
7: br0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN 
    link/ether 82:50:01:29:67:7f brd ff:ff:ff:ff:ff:ff

As you can see the interface gets no link-local IPv6 address and ip link says NO-CARRIER and DOWN.

So why is this a problem? In my case I'm experimenting with libvirt and this causes virtual networks to break with IPv6 and that's definitively not how it should be. radvd also complains that the interface has no link-local address if you want to send router announcments for this interface.

Cause

In commit 1faa4356a3bd89ea11fb92752d897cff3a20ec0e to the Linux kernel (which was before 2.6.39 got released so this is the first affected version) the behavior of bridges was changed so that they set the carrier state to off if no interfaces are connected.

Workaround

You can attach any device to the bridge and everything will work but that's not exactly how I want this to be solved as this requires unnecessary addiditional configuration.

Do you know any better solutions for this problem or do you think this should be considered as a bug?

Offline

Board footer

Powered by FluxBB