Network bridge with dummy interface via networkmanager

Hi. I’m new to using Balena and I try to create a bridge with a dummy interface and a regular ethernet port as members. This way the IP address on the bridge is always up. I can’t seem to get networkmanager to understand my request. Has anyone achieved this?

Hi @tuxeric, welcome to the balena forums.

I certainly have not seen this done before, but it should definitely be doable. Be aware that both balenaOS and docker are likely to create their own bridges - I wouldn’t mess with those. Can you post the connection file you’ve been experimenting with?

Thanks,
James.

Hi. I should have start saying I installed Balena on a RPI3. The way I try to bring the bridge up is this.

nmcli con add type bridge ifname tbr0
nmcli con add type dummy ifname dummy0
nmcli con add type dummy con-name dummy-br ifname dummy0 master tbr0
nmcli con add type ethernet con-name eth0-br ifname eth0 master tbr0
nmcli con mod bridge-tbr0 ipv4.method manual ipv4.addresses 10.20.30.1/24 

The dummy interface is created and I would expect dummy0 to be added to the bridge, only it isn’t.

root@balenapi:~# balena run -it --rm --network host --privileged alpine brctl show
bridge name     bridge id               STP enabled     interfaces
tbr0            8000.000000000000       yes
resin-dns               8000.000000000000       no
supervisor0             8000.02424f109696       no
balena0         8000.0242ca5b18e1       no


root@balenapi:~# ip add li | egrep '^[0-9]:'
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue qlen 1000
2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel qlen 1000
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel qlen 1000
4: resin-dns: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue qlen 1000
5: tbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue qlen 1000
6: dummy0: <BROADCAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue qlen 1000
7: supervisor0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue
8: balena0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue

If i manually add dummy to the bridge using ip link set dummy0 master tbr0 it works.

Thanks

Hi @tuxeric

Just to clarify what you are trying to do, can you please explain why you need the IP address on the bridge to always be up?

Furthermore, given that you can manually get it to work with ip link set dummy0 master tbr0, could you possibly run this command in a container as a long-term solution?

Kind regards
Alida

Hi Alida,
I want to have that IP address up even if my ethernet cable is unplugged. This way when I connect the ethernet cable my services would already have bind to that IP. An example is a DHCP server which should not care if the ethernet cable is unplugged.

Thanks

Hi @tuxeric,

It could be what you’re looking for is a way to set a static IP on the device? That would enable you to use that address in any service (likely with privileged: true set). Here are details on how to set up a static IP address. Does this address your issue?

John