# Strange problems with bridging after systemd update 249.x

## Sherban

Hello, 

I have the following Network Setup:

```
   "xi" (192.168.14.1) is Firewall, DHCP-Server

     |

     + - "omikron" (192.168.14.6) is Desktop

     |

     + - other pc

     |

     + - other pc

     |

     + - "my" enp1s0  (192.168.14.4) 

            |

          enp4s0 is bridged to "ny" (192.168.14.3)
```

All Systems are running gentoo with systemd (except for "ny", which is a NAS).

This setup works with systemd-248.6.

After update to systemd-249.2 or systemd-249.4, "my" cannot ping or ssh to "omikron" or any other machine on my local network or the internet, except for "xi" and "ny". And vice versa, only "xi" can ping/ssh to "my". The bridge to "ny" works, "ny" is fully accessible and can access the internet.

After downgrade to systemd-248.6 "my" can reach all pc on my local network, and "my" is reachable from all pcs. Unfortunately, systemd-248.6 is no longer in the gentoo repository, making downgrading a little more complicated now.

I think, this is a systemd bug.

This is the network configuration for "my":

/etc/systemd/network/MyBridge.netdev:

```
[NetDev]

Name=br0

Kind=bridge
```

/etc/systemd/network/MyBridge.network

```
[Match]

Name=br0

[Network]

DHCP=ipv4

LinkLocalAddressing=no

IPv6AcceptRA=no
```

/etc/systemd/network/MyEnps.network 

```
[Match]

Name=enp1s0 enp4s0

[Network]

Bridge=br0

```

Any ideas?

----------

## alamahant

 *Sherban wrote:*   

> 
> 
> /etc/systemd/network/MyBridge.network
> 
> Code:
> ...

 

Try it with static ip

```

[Match]

Name=br0

[Network]

Address=10.1.10.9/24

Gateway=10.1.10.1

DNS=10.1.10.1

LinkLocalAddressing=no

IPv6AcceptRA=no

```

Maybe also missing iptables kernel .config

Are you maybe trying to create a bond or a team?

What is the purpose of the bridge?

What you are describing sounds like a routing conflict like when you assign default gateway to more than one iface.

----------

## Sherban

Thanks for your reply, using a static IP does work. But why?

My setup should be generally correcly configured, it worked with systemd-248.6.

Specifically I don't have iptables in my kernel .config, and I think I don't need it, because "my" is not filtering anything.

I want a bridge (and not bonding) because "my" and "ny" are remote (in my garage) and I have only one LAN port there available (and don't want to add a switch there).

"my" has four interfaces, so I connect "my" (enp1s0) to the LAN port, and "ny" to the bridged enp4s0 interface of "my".

This is the routing table of "my" with static IP for the bridge:

```
Kernel IP Routentabelle

Ziel            Router          Genmask         Flags Metric Ref    Use Iface

default         xi.sasthei.de.1 0.0.0.0         UG    0      0        0 br0

default         xi.sasthei.de.1 0.0.0.0         UG    1002   0        0 enp1s0

192.168.14.0    0.0.0.0         255.255.255.224 U     0      0        0 br0

192.168.14.0    0.0.0.0         255.255.255.224 U     1002   0        0 enp1s0

```

And this ist the routing table of "my" with DHCP for the bridge (is identical for both systemd 248.6 and systemd-149.4):

```
Kernel IP Routentabelle

Ziel            Router          Genmask         Flags Metric Ref    Use Iface

default         xi.sasthei.de.1 0.0.0.0         UG    1002   0        0 enp1s0

default         xi.sasthei.de.1 0.0.0.0         UG    1024   0        0 br0

192.168.14.0    0.0.0.0         255.255.255.224 U     1002   0        0 enp1s0

192.168.14.0    0.0.0.0         255.255.255.224 U     1024   0        0 br0

xi.sasthei.de.1 0.0.0.0         255.255.255.255 UH    1024   0        0 br0
```

Anything wrong with that? And systemd now handles my faulty routing "correctly"?

----------

## alamahant

 *Quote:*   

> 
> 
> default         xi.sasthei.de.1 0.0.0.0         UG    1002   0        0 enp1s0
> 
> default         xi.sasthei.de.1 0.0.0.0         UG    1024   0        0 br0
> ...

 

This is your problem.

2 default gateway for the same network.It should ONLY be one.

Somehow dhcp assigns gateway to both the bridge and the bridge-slave.

Maybe br0 should not have a default gateway.Maybe not even an address.

In my case i use br0 with only one slave.

The br0 is fully static ip configured whereas the slave has "null" config.

I use br0 for libvirt and internet.

But your case is different.

----------

