Bug 81979

Summary: [215] systemd-network: bridge with static settings does not work
Product: systemd Reporter: Gerardo Exequiel Pozzi <vmlinuz386>
Component: generalAssignee: Tom Gundersen <teg>
Status: RESOLVED FIXED QA Contact: systemd-bugs
Severity: normal    
Priority: medium CC: teg
Version: unspecified   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
i915 platform: i915 features:
Attachments: SYSTEMD_LOG_LEVEL=debug of systemd-networkd

Description Gerardo Exequiel Pozzi 2014-07-31 20:50:14 UTC
Created attachment 103767 [details]
SYSTEMD_LOG_LEVEL=debug of systemd-networkd

Setting up a bridge with systemd-networkd does not works for me. I can not reach other hosts on the same network (i.e. ping the default gateway).
Doing things manually with iproute2 works fine.
The output of "ip addr" looks same in both cases.

-- br0.netdev --

-- br0.network --


-- enp0s16.network --


This is are the steps I am doing for the same thing, that works:
ip link add name br0 type bridge
ip addr add broadcast + dev br0
ip link set dev enp0s16 master br0
ip link set dev br0 up
ip link set dev enp0s16 up
ip route add default via

In both cases the output of "ip addr" is:

2: enp0s16: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast
master br0 state UP group default qlen 1000
    link/ether 00:17:31:bb:44:19 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::217:31ff:febb:4419/64 scope link
       valid_lft forever preferred_lft forever
8: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state
UP group default
    link/ether 00:17:31:bb:44:19 brd ff:ff:ff:ff:ff:ff
    inet brd scope global br0
       valid_lft forever preferred_lft forever
    inet6 fe80::217:31ff:febb:4419/64 scope link
       valid_lft forever preferred_lft forever

and output of "bridge fdb":
01:00:5e:00:00:01 dev enp0s16 self permanent
33:33:00:00:00:01 dev enp0s16 self permanent
33:33:ff:bb:44:19 dev enp0s16 self permanent
00:19:3e:ea:c5:54 dev enp0s16 vlan 0
00:21:29:98:d4:f3 dev enp0s16 vlan 0
00:17:31:bb:44:19 dev enp0s16 vlan 0 permanent

If after start networkd, I set br0 to promisc executing "ip
link set br0 promisc on", network works fine, but of course now "br0"
shows PROMISC under "ip link".

OS: Arch Linux (x86_64) running on Linux 3.10.50, systemd-215-4

If more info is needed please let me know.
Comment 1 Tom Gundersen 2014-08-01 11:50:33 UTC
Hm, does your bridge get the same mac address when set up by networkd as when set up by ip? If not, can you reproduce the problem if you explicitly set the mac address of the bridge to something else when setting it up using ip?
Comment 2 Gerardo Exequiel Pozzi 2014-08-01 15:04:06 UTC
Interesting. br0 gets a random macaddr everytime that is created, but after:

ip link set dev enp0s16 master br0

macaddr of br0 is changed to the macaddr of enps16. This does not happens with networkd, so the random macaddr is keep. In this case, if I set manually the macaddr of br0 to the macaddr of enp0s16 with:

ip link set br0 address 00:17:31:bb:44:19

network is working again.
Comment 3 Tom Gundersen 2014-08-15 14:20:31 UTC
Thanks for getting back to me. That really does sound like a kernel bug, but I'll try to figure it out.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.