Skip to content
View in the app

A better way to browse. Learn more.

Unraid

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

7.1.2 Docker no shim "network"

Featured Replies

Hi, i've recently detected another issue I have with unraid. I'm running Adguard (docker container) on a custom Network br:0 and wanted to ping it via the host console, with the result of: ;; communications error to 10.55.0.2#53: host unreachable

 

Digging a bit deeper I've found a possible solution: activate "Host access to custom networks:", but it was already activated. then i found out that maye the shim network is not crated, which is the case. 

 

By diggging into this threat here and there ive recreated the shim by using the command:

 

ip link add shim-br0 link br0 type macvlan mode bridge
ip link set shim-br0 up

 

all docker containers with the br0 custom network won't start. Only a restart solved the problem. 

 

I've attached the diagnosis, hope someone can help me to fix the issue.

homeservercs-diagnostics-20250516-2337.zip

Solved by bmartino1

  • Community Expert

when messing with the docker generated bridge with docker you need other commands to flush the interface and reconnect or assign a static ip...

 

Example:

 

Docker settings:

image.thumb.png.3690bdb14bd046acb10b79091be24ee3.png

 

VM Settings:

image.thumb.png.c059fb8248901590cbdb9777e86311dc.png

 

Unraid Network settings (Default Bridging on, bonding off)

image.thumb.png.b9c72c918d13861fe1e5710efdb89fd8.png

 

user scripts To touch the shim-br0

example:

 

user script run at first arry start

#!/bin/bash

# Wait at boot
sleep 30

echo "Fixing Docker shim bridge..."
ifconfig shim-br0 down 2>/dev/null
ip link set shim-br down 2>/dev/null
ip addr flush dev shim-br0
ip addr add 192.168.2.250/24 dev shim-br0
ip link set shim-br0 up
echo "Docker shim interface configured."

ip a

 

One Interface unraid example:

root@Docker:~# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: tunl0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 1000
    link/ipip 0.0.0.0 brd 0.0.0.0
3: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq master br0 state UP group default qlen 1000
    link/ether bc:24:11:05:59:37 brd ff:ff:ff:ff:ff:ff
4: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether bc:24:11:05:59:37 brd ff:ff:ff:ff:ff:ff
    inet 192.168.2.251/24 metric 1 scope global br0
       valid_lft forever preferred_lft forever
6: tailscale1: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1280 qdisc fq state UNKNOWN group default qlen 500
    link/none 
    inet6 fe80::2712:bdb6:8331:7a2c/64 scope link stable-privacy proto kernel_ll 
       valid_lft forever preferred_lft forever
7: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default 
    link/ether 02:42:a8:56:98:6c brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
       valid_lft forever preferred_lft forever
8: shim-br0@br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether ce:b1:97:23:c3:98 brd ff:ff:ff:ff:ff:ff
    inet 192.168.2.250/24 scope global shim-br0
       valid_lft forever preferred_lft forever
root@Docker:~# 

 

 

Edited by bmartino1
typo

I suspect that we are seeing the same issue. So far, I have found one other besides myself and this post.

 

https://forums.unraid.net/topic/190305-712-docker-vlan-host-comms-broken/

 

In my case, nothing was changed in the networking or Docker config prior to or following the 7.1.1 or 7.1.2 updates, and it has been working with the same configuration since 6.12.

Wow. I just found this post after spending some hours resolving yesterday.

 

My Configuration

In my environment, I typically host my Docker containers on the same network (10.0.0.0/24) that all of my devices are configured on - including the Unraid server at 10.0.0.10. I created a macvlan based custom Docker network on that same network, and each Docker container has an explicitly assigned IP address in the same network.

 

My unRaid has a dual 10GB network card with the interfaces bonded with 802.3ad on two aggregated ports on a Unifi 10GB switch (interface br1)  with the 10.0.0.10 statically assigned.

 

For some reason, my Docker containers on the same network could not communicate with the unRaid host and vice versa. The final solution I found worked was to manually create a second interface called "br1.macvlan0" on its own IP that explicitly bridged with the br1 interface. After that, the Docker containers and host (Unraid server at 10.0.0.10) could not communicate seamlessly.  

 

I installed User Scripts and added one to run the following explicitly at array start but you can have it start whenever appropriate for your situation.

 

#!/bin/bash
ip link add link br1 name br1.macvlan0 type macvlan mode bridge
ip addr add 10.0.0.2/24 dev br1.macvlan0
ip link set dev br1.macvlan0 up

 

The main difference from the OP (which I will try next as it's cleaner) is that I had added a second IP address as the bridge.

Edited by RandoUser

  • Author
20 hours ago, bmartino1 said:

when messing with the docker generated bridge with docker you need other commands to flush the interface and reconnect or assign a static ip...

 

Example:

.....

 

Thanks for getting back.

 

Just to be clear, and I no not make another misstake. Does this mean in my case the following... - important, i'm  on IPVLan NOT on MacLan, does this make any difference for your suggested script? the command I've postetd earlier was maclan, think this was one of my mistakes....

 

docker:

 

docker.thumb.png.3ec9476193988b6e321198cd3c3f7e25.png

 

VM

 

vm.thumb.png.570deea85d61eb3c3bf4d5e79b7aa5d7.png

 

Network-settings:

 

newtork.thumb.png.b67079db539300866a57e038e3718c43.png

 

 

 

Command I've adjusted:

 

#!/bin/bash

# Wait at boot
sleep 30

echo "Fixing Docker shim bridge..."
ifconfig shim-br0 down 2>/dev/null
ip link set shim-br down 2>/dev/null
ip addr flush dev shim-br0
ip addr add 10.55.0.189/24 dev shim-br0
ip link set shim-br0 up
echo "Docker shim interface configured."

ip a

 

is this correct? I will use user scripts to add this script at starting the array, or is there a better way of doing it?

 

Thx

  • Community Expert
Quote

Just to be clear, and I no not make another misstake. Does this mean in my case the following... - important, i'm  on IPVLan NOT on MacLan, does this make any difference for your suggested script? the command I've postetd earlier was maclan, think this was one of my mistakes....


NO, the script is messing with the network interfaces no the docker networks driver.(doent' matter if its ipvlan/macvlan....).. While it may affect how the docker driver uses the network interface...

 

While it will work with ipvlan its really meant for macvlan due to how the interface use the mac address. 

macvlan will randlomy make a mac address

ipvlan will reuse teh eth0/br0 mac address

some more info on the docker networks...

 

with tips and tweaks plugin giveing some nice notes to some settings:

The ipvlan type is best when connection to the physical network is not needed. Please read this on implementing an ipvlan network. https://docs.docker.com/engine/network/drivers/ipvlan/

 

The macvlan type of network allows direct connection to the physical network. Please read this on implementing a macvlan network. https://docs.docker.com/engine/network/drivers/macvlan/

 

Note: Docker uses its own dhcp service, which is the DHCP Pool setting. When you use multiple Unraid servers, then each server must have a different Docker DHCP Pool range configured.

 

Your unraid settings look good. moving into the script:

 

#!/bin/bash

# Wait at boot
sleep 30

echo "Fixing Docker shim bridge..."
ifconfig shim-br0 down 2>/dev/null
ip link set shim-br down 2>/dev/null
ip addr flush dev shim-br0
ip addr add 10.55.0.189/24 dev shim-br0
ip link set shim-br0 up
echo "Docker shim interface configured."

ip a

 

this looks good.

step 1 bring down the active interface.

setp 2 celar and bring down any assigned ip address to teh interface

step 3 clea and flush the dev netowrk interface for cusom ip (some small fixes from step 2 if not all is cleared...)

step 3 assign a static ip to the vhost/shim bridge interface (I do this to remove the same ip assigned that it gets from the br0 at eth0 creation

- as this make a duplicate mac taht can be flaged asa  rouge dhcp as 2 ip are on 2 different mac address!...

step 4 with the device flusehed and or assinged static ip set we bring up the interface

 

ip a to log and douple check

could use a ip before the echo to have a before and after in the log...

this script was setup and desigend for me to sleep 30 secods and the script to run at first array start.

this gives times for the disk array to finish starting and other unraid docker auto strat to begin.
the dockers need time form a rebbot to when they are full up as we are messing with autostart and potential docker networks...

your sleep time may need adjusted to be latter depending on how long it takes to boot and be fully up and loaded.

as this script will run with the dockers running. (tehre will be some notes in syslog when it happens but no issues to dockcer that I have experienced...

 

  • Author

I'm not an network expert, but i will try to figure it out and sorry for the dump questions:

 

1 hour ago, bmartino1 said:

While it will work with ipvlan its really meant for macvlan due to how the interface use the mac address. 

macvlan will randlomy make a mac address

ipvlan will reuse teh eth0/br0 mac address

does this mean, it's not recommended if I use ipvlan? Currently I'm not planning to switch to macvlan for my unraid server. Are there any potential issues, in case of the shim-network if the ipvlan is using the same mac address?

 

 

1 hour ago, bmartino1 said:

step 1 bring down the active interface.

setp 2 celar and bring down any assigned ip address to teh interface

step 3 clea and flush the dev netowrk interface for cusom ip (some small fixes from step 2 if not all is cleared...)

step 3 assign a static ip to the vhost/shim bridge interface (I do this to remove the same ip assigned that it gets from the br0 at eth0 creation

- as this make a duplicate mac taht can be flaged asa  rouge dhcp as 2 ip are on 2 different mac address!...

step 4 with the device flusehed and or assinged static ip set we bring up the interface

sorry but i do not get it. Is it possible to describe the steps in more detail?

 

step 1 bring down the active interface.

=> disable docker and vm ware?

setp 2 clear and bring down any assigned ip address to teh interface

=> how? what do have to do in order to clear step 2

step 3 clear and flush the dev netowrk interface for cusom ip (some small fixes from step 2 if not all is cleared...)

=> how?

step 3 assign a static ip to the vhost/shim bridge interface (I do this to remove the same ip assigned that it gets from the br0 at eth0 creation

- as this make a duplicate mac taht can be flaged asa  rouge dhcp as 2 ip are on 2 different mac address!...

=> how?

step 4 with the device flusehed and or assinged static ip set we bring up the interface

=> how?

 

 

general: when do i have to do the above steps? only one, before i initialy start the script, because in general the script will automatically startet on boot.

 

btw. this is my current routing table:

2025-05-1815_17_09-HomeServerCS_NetworkSettings.thumb.png.a0a3912667b31c4ed83d1672ee463d63.png

 

thank you for your help!

Edited by ChrisCross

  • Community Expert
  • Solution


...

  • Author
On 5/18/2025 at 10:23 PM, bmartino1 said:


...

Many thx, got it working for now, lets see if the script is working too, after rebooting the maschine.

What was working temporarly, was the hint by @KnightRdr23 : I was able to resolve this by stopping docker, changing ipvlan to macvlan, saving then reverting and saving, and also changing host access to custom networks to disabled, saving then enabled, and saving again. Finally re-enabled docker and seem to be working again for now,

15 minutes ago, ChrisCross said:

Many thx, got it working for now, lets see if the script is working too, after rebooting the maschine.

Is this script universal, or does it need customizing to work? My box has both bridging and bonding disabled, VLANs, and custom bridges in place. Also, my IP base is different from the script. I couldn't see any specific walkthrough of customizing the script to suit a system's config, and I would like to avoid killing my network connectivity completely.

Any chance of getting a walkthrough on what needs to be customized?

  • Author
48 minutes ago, aglyons said:

Any chance of getting a walkthrough on what needs to be customized?

I'm not an expert but you can us it as an starting point. And I have to mention, i do not know if it will work, as I haven't rebooted my system yet. My two cents on it, maybe bmarino1 jumps in and correct me:

#!/bin/bash

# Wait at boot
sleep 30

echo "Fixing Docker shim bridge..."
ifconfig shim-br0 down 2>/dev/null
ip link set shim-br down 2>/dev/null
ip addr flush dev shim-br0
ip addr add 10.55.0.189/24 dev shim-br0
ip link set shim-br0 up
echo "Docker shim interface configured."

ip a

check your standard network is, in my case br0

you have to manually insert an available IP adresse, in my case 10.55.0.189/24 , which will then be assigned for the shim-network

and i think thats it. You can check if the shim network was sucessfully created by checking the network routing tabel or use the command ifconfig directly

  • Community Expert
3 hours ago, aglyons said:

Is this script universal, or does it need customizing to work? My box has both bridging and bonding disabled, VLANs, and custom bridges in place. Also, my IP base is different from the script. I couldn't see any specific walkthrough of customizing the script to suit a system's config, and I would like to avoid killing my network connectivity completely.

Any chance of getting a walkthrough on what needs to be customized?

defualt un-edited unraid settings universal yes...

if you have eth0 then change br0 if its bond then change br0 to bond.

Original it was called vhost in v6. so it was called vhost0

use ip a to see the interface name to get the correct interface name.

Thanks @bmartino1 and @ChrisCross

Regarding the IP address to assign, is that for the host network or the VLAN? If it's the host network, is that not going to add another IP to the host machine on the same host network? I already have Unifi complaining on the regular about two devices having the same IP; now it appears that we are adding a third IP for one box!?

@limetech This is an example of the community trying to help solve these issues, but there is a lack of clarity and an introduction of third-party code to solve a bug that could cause complications should the following release address this issue from another direction. If there is an official patch that works, either broadcast that out in an email to paid users or release the 7.1.3 release with this in place.

Edited by aglyons

  • Community Expert
3 hours ago, aglyons said:

Thanks @bmartino1 and @ChrisCross

Regarding the IP address to assign, is that for the host network or the VLAN? If it's the host network, is that not going to add another IP to the host machine on the same host network? I already have Unifi complaining on the regular about two devices having the same IP; now it appears that we are adding a third IP for one box!?

@limetech This is an example of the community trying to help solve these issues, but there is a lack of clarity and an introduction of third-party code to solve a bug that could cause complications should the following release address this issue from another direction. If there is an official patch that works, either broadcast that out in an email to paid users or release the 7.1.3 release with this in place.


This is more due to orginal legacy code in how unraid generates and makes networks and there connections. As unraid runs on slackware linnux and doesn't use systemd it uses system intervars...

root@Docker:~# cd /etc/rc.d/

root@Docker:/etc/rc.d# ls

rc.0@ rc.apcupsd* rc.crond* rc.inetd* rc.local_shutdown* rc.ntpd* rc.serial* rc.unraid-api*

rc.4* rc.atd* rc.dnsmasq rc.ip_forward* rc.loop* rc.openldap rc.setterm* rc.wireguard*

rc.4.local* rc.avahidaemon* rc.docker* rc.kadmind rc.mcelog* rc.php-fpm* rc.smartd rc.wireless*

rc.6* rc.avahidnsconfd* rc.elogind* rc.keymap* rc.messagebus* rc.ptpd* rc.sshd* rc.wsdd2*

rc.K* rc.bind rc.flash_backup* rc.kpropd rc.modules* rc.rpc* rc.swapfile@ rc0.d@

rc.M* rc.cgconfig rc.font rc.krb5kdc rc.modules.local* rc.rsyslogd* rc.sysstat rc6.d/

rc.S* rc.cgred rc.inet1* rc.library.source rc.mysqld rc.runlog rc.sysvinit*

rc.S.cont* rc.cgroup2unraid* rc.inet1.conf rc.libvirt* rc.nfsd* rc.samba* rc.tailscale@

rc.acpid* rc.cpufreq* rc.inet2* rc.local* rc.nginx* rc.saslauthd rc.udev*

root@Docker:/etc/rc.d#

so unraid / slackware services as run from here example start stop status for the application daemon

root@Docker:/etc/rc.d# /etc/rc.d/rc.samba status

Samba server daemon is currently running.

root@Docker:/etc/rc.d#

then the mess that is unraid trying to make script to fix and edit inet the linux service daemon regarding networks...
root@Docker:/etc/rc.d# cat rc.inet

rc.inet1 rc.inet1.conf rc.inet2 rc.inetd

root@Docker:/etc/rc.d# cat rc.inet
its a long confusing script of loop of legacy code and script... Some has gotten better other areas worse...

(What I want is to have docker enabled, preserver custom networks in the docker db file. and to make my own docker netwroks and bridge interfaces to actual use the hypev layer 2/layer 3 virtual switch and linux comand to make my own netowrks and connections for the docker newtork. but this get into gotcha and caveots in the sytem that break other ares....


(Like why am I bridging a bridge interface I can make mutiple bridges off eth0...)
But then they[Limnetech/Unraid] can't gurantee conectivity.... and it works as is... just a mess across the forum and docs...

as noted in the programing scripts chat. this is a known issue with how linux network bridges are made and the over security in unfi equipment

hoard to exaplin depends on unif settings. It would be the host network and may be a vlan network depending on your setting and how you have unraid netwroking setup.

the option that flags this in unifi is rouge dhcp server.
this is due to first bridge creation it wil not make a endpoint on itself and will reuse the orginral interface

defualt unraid eth0 will make a br0 interface
br0 is then softwre shim bridge made for the ip[vlan/macvlan network.
the shim-br0 (or vhost0) interface is a bridge on a bridge and how the setting was passed is simlar to what it did to eth0
as eth0 is assigend ot the bridge interface the ip if set static or vlan if set on the interface gets assinged to br0 interface.

to make the docker network another bridge was called to br0 and it duplicated instead or replacing the interface of the netwrok.

SO for me
I don't run vlans.. I run unifi

root@Docker:~# ip a

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000

link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

inet 127.0.0.1/8 scope host lo

valid_lft forever preferred_lft forever

inet6 ::1/128 scope host

valid_lft forever preferred_lft forever

2: tunl0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 1000

link/ipip 0.0.0.0 brd 0.0.0.0

3: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq master br0 state UP group default qlen 1000

link/ether bc:24:11:05:59:37 brd ff:ff:ff:ff:ff:ff

inet6 fe80::be24:11ff:fe05:5937/64 scope link proto kernel_ll

valid_lft forever preferred_lft forever

4: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000

link/ether bc:24:11:05:59:37 brd ff:ff:ff:ff:ff:ff

inet 192.168.2.251/24 metric 1 scope global br0

valid_lft forever preferred_lft forever

inet6 fe80::be24:11ff:fe05:5937/64 scope link proto kernel_ll

valid_lft forever preferred_lft forever

6: tailscale1: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1280 qdisc fq state UNKNOWN group default qlen 500

link/none

inet6 fe80::4d14:31a2:3326:59eb/64 scope link stable-privacy proto kernel_ll

valid_lft forever preferred_lft forever

7: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default

link/ether 02:42:ba:c3:bd:1d brd ff:ff:ff:ff:ff:ff

inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0

valid_lft forever preferred_lft forever

inet6 fe80::42:baff:fec3:bd1d/64 scope link proto kernel_ll

valid_lft forever preferred_lft forever

8: shim-br0@br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000

link/ether 6a:c8:68:15:0a:76 brd ff:ff:ff:ff:ff:ff

inet 192.168.2.250/24 scope global shim-br0

valid_lft forever preferred_lft forever

root@Docker:~#

the script changes the dokcer made bridge netwrok and give it another lan ip on the netwrok (this issue with tunnels one side of the tunnel is made then other side is technical a seperate side.
I leverage this other side as they both have seperate mac address and interfaces whcih can become problematic when seting up ip routes.

So I Run script
image.png

#!/bin/bash

# Wait at boot

sleep 30

ip a

echo "Fixing Docker shim bridge..."

ifconfig shim-br0 down 2>/dev/null

ip link set shim-br down 2>/dev/null

ip addr flush dev shim-br0

ip addr add 192.168.2.250/24 dev shim-br0

ip link set shim-br0 up

echo "Docker shim interface configured."

ip a

to assing a static ip onthe same subnet as eth0 which is not br0 with default unedided unraid network settings...

this way teh other side of teh brdige doen't keep ping unifi taht the same IP is on 2 seperate mac address and using the same ip...
image.png

as each reboot the dam mac address chages... so i had to edit it at the unriad linux level...

image.png

more do to a unfi setting and other internal route that unifi does:

image.png

this also can fix some docker bridge setting and defines the docker network as its own lan idenity setting a seperate non unraid ip
(more for leverage 2 ip address to talk to teh docker network bridge.) but that other advance linmux shanagins like on linux iptable using 2 ports for the same service... FUN wiht IPTABLEs...

When adding vlans you need to make sure your grabing the correct vlan as this is unraid linux host side netwroking...
so If i want vlan 2 i'm targeting br0.2 to get the correct bridge and interface...

the scirpt is targeting unraid orgianl defualt newtok bridge since you added vland into the mix you need to edit some docker settings...
read docekr netwok docs:

https://docs.docker.com/network/ipvlan/

https://docs.docker.com/network/macvlan/

Settings docker:
image.png

I recomend mobing into macvlan as you want seperate macs as ipvaln will duplicate the same interface mac casuign other lan identity issues latter...

then making a docker netowrk targeting the interface with vlan example br0.2
with macvlan, preserve and a docker newtok crate comand that will s8rvice a reboot (as the data exist within the docker vdisk image in a database file...)

that docekr even though it was told its parent interface is br0.2 will still ataemt to connect over the shim-bridge...

even VM settign play a roll
image.png

as UNRAID IS NOT A NETWORK DEVICE! its a Nas applicae first, docker and Vms are nice addons and are treated as such.

and peole imdatle go docekr and have weird network requirments that nota a easey once click for all or setup for all...

I'm honestly on the side of why is ther a brdige interface enabled by default!
also toucehd int eh programing script forum found in my signature and posted above...

see the docs:

https://docs.unraid.net/unraid-os/manual/shares/network-access/

Review some videos:
https://www.youtube.com/watch?v=7fzBDCI8O2w

https://www.youtube.com/watch?v=7qxj04_zfro

https://m.youtube.com/watch?v=6hBRNoAwc2g

and vlan support:


Edited by bmartino1
typo-data

  • Author

@bmartino1 sorry but I need your knowledge again. Seems like the script is not working. After reboot, I've forgott to set the script to "at startup of array", so I let it run after the array started successfully.

Unfortunately no shim network was created. This is the output of the script:

Fixing Docker shim bridge...
Device "shim-br0" does not exist.
Cannot find device "shim-br0"
Cannot find device "shim-br0"
Docker shim interface configured.
1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: tunl0@NONE: mtu 1480 qdisc noop state DOWN group default qlen 1000
link/ipip 0.0.0.0 brd 0.0.0.0
3: eth0: mtu 1500 qdisc mq master br0 state UP group default qlen 1000
link/ether d0:50:99:c1:2d:ed brd ff:ff:ff:ff:ff:ff
4: br0: mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether d0:50:99:c1:2d:ed brd ff:ff:ff:ff:ff:ff
inet 10.55.0.14/16 metric 1004 scope global br0
valid_lft forever preferred_lft forever
6: tailscale1: mtu 1280 qdisc fq state UNKNOWN group default qlen 500
link/none
inet 100.97.45.107/32 scope global tailscale1
valid_lft forever preferred_lft forever
inet6 fd7a:115c:a1e0::f101:2d6b/128 scope global
valid_lft forever preferred_lft forever
inet6 fe80::ce30:e71f:eb91:6a0f/64 scope link stable-privacy proto kernel_ll
valid_lft forever preferred_lft forever
7: br-7323c0806ede: mtu 1500 qdisc noqueue state UP group default
link/ether 02:42:7f:62:ff:11 brd ff:ff:ff:ff:ff:ff
inet 172.18.0.1/16 brd 172.18.255.255 scope global br-7323c0806ede
valid_lft forever preferred_lft forever
inet6 fe80::42:7fff:fe62:ff11/64 scope link proto kernel_ll
valid_lft forever preferred_lft forever
8: docker0: mtu 1500 qdisc noqueue state UP group default
link/ether 02:42:2e:b3:89:89 brd ff:ff:ff:ff:ff:ff
inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
valid_lft forever preferred_lft forever
inet6 fe80::42:2eff:feb3:8989/64 scope link proto kernel_ll
valid_lft forever preferred_lft forever
10: virbr0: mtu 1500 qdisc noqueue state DOWN group default qlen 1000
link/ether 52:54:00:0b:41:90 brd ff:ff:ff:ff:ff:ff
inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
valid_lft forever preferred_lft forever
12: veth58e80e3@if11: mtu 1500 qdisc noqueue master br-7323c0806ede state UP group default
link/ether a6:03:fa:e2:79:ad brd ff:ff:ff:ff:ff:ff link-netnsid 1
inet6 fe80::a403:faff:fee2:79ad/64 scope link proto kernel_ll
valid_lft forever preferred_lft forever
14: veth71ca236@if13: mtu 1500 qdisc noqueue master docker0 state UP group default
link/ether a2:0c:9e:82:cf:5d brd ff:ff:ff:ff:ff:ff link-netnsid 2
inet6 fe80::a00c:9eff:fe82:cf5d/64 scope link proto kernel_ll
valid_lft forever preferred_lft forever
16: veth296a99e@if15: mtu 1500 qdisc noqueue master br-7323c0806ede state UP group default
link/ether 52:fd:81:61:c5:00 brd ff:ff:ff:ff:ff:ff link-netnsid 3
inet6 fe80::50fd:81ff:fe61:c500/64 scope link proto kernel_ll
valid_lft forever preferred_lft forever
17: vnet0: mtu 1500 qdisc noqueue master br0 state UNKNOWN group default qlen 1000
link/ether fe:54:00:da:ae:a4 brd ff:ff:ff:ff:ff:ff
inet6 fe80::fc54:ff:feda:aea4/64 scope link proto kernel_ll
valid_lft forever preferred_lft forever
19: veth70d4083@if18: mtu 1500 qdisc noqueue master br-7323c0806ede state UP group default
link/ether ca:b1:3a:8a:ae:41 brd ff:ff:ff:ff:ff:ff link-netnsid 4
inet6 fe80::c8b1:3aff:fe8a:ae41/64 scope link proto kernel_ll
valid_lft forever preferred_lft forever
21: vethb9d4dee@if20: mtu 1500 qdisc noqueue master br-7323c0806ede state UP group default
link/ether 0e:db:33:b1:f1:b1 brd ff:ff:ff:ff:ff:ff link-netnsid 5
inet6 fe80::cdb:33ff:feb1:f1b1/64 scope link proto kernel_ll
valid_lft forever preferred_lft forever
23: veth6d2f5d3@if22: mtu 1500 qdisc noqueue master br-7323c0806ede state UP group default
link/ether 8e:3b:92:cf:dd:c2 brd ff:ff:ff:ff:ff:ff link-netnsid 6
inet6 fe80::8c3b:92ff:fecf:ddc2/64 scope link proto kernel_ll
valid_lft forever preferred_lft forever
25: veth6d4dd2e@if24: mtu 1500 qdisc noqueue master br-7323c0806ede state UP group default
link/ether ae:12:f8:a6:d4:53 brd ff:ff:ff:ff:ff:ff link-netnsid 7
inet6 fe80::ac12:f8ff:fea6:d453/64 scope link proto kernel_ll
valid_lft forever preferred_lft forever
27: vetha30b4e2@if26: mtu 1500 qdisc noqueue master br-7323c0806ede state UP group default
link/ether ba:7d:cc:9d:e8:98 brd ff:ff:ff:ff:ff:ff link-netnsid 8
inet6 fe80::b87d:ccff:fe9d:e898/64 scope link proto kernel_ll
valid_lft forever preferred_lft forever
29: vethf5b82b5@if28: mtu 1500 qdisc noqueue master br-7323c0806ede state UP group default
link/ether 36:2e:70:58:83:16 brd ff:ff:ff:ff:ff:ff link-netnsid 9
inet6 fe80::342e:70ff:fe58:8316/64 scope link proto kernel_ll
valid_lft forever preferred_lft forever
31: veth9924c09@if30: mtu 1500 qdisc noqueue master br-7323c0806ede state UP group default
link/ether 62:6f:64:e0:34:83 brd ff:ff:ff:ff:ff:ff link-netnsid 10
inet6 fe80::606f:64ff:fee0:3483/64 scope link proto kernel_ll
valid_lft forever preferred_lft forever
33: veth979b273@if32: mtu 1500 qdisc noqueue master br-7323c0806ede state UP group default
link/ether ae:bd:78:33:a9:ab brd ff:ff:ff:ff:ff:ff link-netnsid 11
inet6 fe80::acbd:78ff:fe33:a9ab/64 scope link proto kernel_ll
valid_lft forever preferred_lft forever
35: vethc30fd94@if34: mtu 1500 qdisc noqueue master br-7323c0806ede state UP group default
link/ether 52:97:17:1f:fd:12 brd ff:ff:ff:ff:ff:ff link-netnsid 12
inet6 fe80::5097:17ff:fe1f:fd12/64 scope link proto kernel_ll
valid_lft forever preferred_lft forever
37: veth44148e1@if36: mtu 1500 qdisc noqueue master br-7323c0806ede state UP group default
link/ether f2:9e:6f:eb:28:44 brd ff:ff:ff:ff:ff:ff link-netnsid 13
inet6 fe80::f09e:6fff:feeb:2844/64 scope link proto kernel_ll
valid_lft forever preferred_lft forever
41: veth3a39927@if40: mtu 1500 qdisc noqueue master br-7323c0806ede state UP group default
link/ether 32:6b:19:75:b7:1d brd ff:ff:ff:ff:ff:ff link-netnsid 15
inet6 fe80::306b:19ff:fe75:b71d/64 scope link proto kernel_ll
valid_lft forever preferred_lft forever
46: veth4941e83@if45: mtu 1500 qdisc noqueue master docker0 state UP group default
link/ether ae:b4:23:0e:7e:e8 brd ff:ff:ff:ff:ff:ff link-netnsid 17
inet6 fe80::acb4:23ff:fe0e:7ee8/64 scope link proto kernel_ll
valid_lft forever preferred_lft forever
Done

and this was the script for it:

#!/bin/bash

# Wait at boot
sleep 30

echo "Fixing Docker shim bridge..."
ifconfig shim-br0 down 2>/dev/null
ip link set shim-br down 2>/dev/null
ip addr flush dev shim-br0
ip addr add 10.55.0.189/24 dev shim-br0
ip link set shim-br0 up
echo "Docker shim interface configured."

ip a

Even the temp fix I've followed by @KnightRdr23 is not working again (stopping docker, changing ipvlan to macvlan, saving then reverting and saving, and also changing host access to custom networks to disabled, saving then enabled, and saving again). Looks like it was just a random success.. damn that sucks.

Do you have any idea how to adjust it correctly? Thanks in advance

Edited by ChrisCross

  • Community Expert
4 hours ago, ChrisCross said:

@bmartino1 sorry but I need your knowledge again. Seems like the script is not working. After reboot, I've forgott to set the script to "at startup of array", so I let it run after the array started successfully.

Unfortunately no shim network was created. This is the output of the script:

Fixing Docker shim bridge...
Device "shim-br0" does not exist.
Cannot find device "shim-br0"
Cannot find device "shim-br0"
Docker shim interface configured.
1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: tunl0@NONE: mtu 1480 qdisc noop state DOWN group default qlen 1000
link/ipip 0.0.0.0 brd 0.0.0.0
3: eth0: mtu 1500 qdisc mq master br0 state UP group default qlen 1000
link/ether d0:50:99:c1:2d:ed brd ff:ff:ff:ff:ff:ff
4: br0: mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether d0:50:99:c1:2d:ed brd ff:ff:ff:ff:ff:ff
inet 10.55.0.14/16 metric 1004 scope global br0
valid_lft forever preferred_lft forever
6: tailscale1: mtu 1280 qdisc fq state UNKNOWN group default qlen 500
link/none
inet 100.97.45.107/32 scope global tailscale1
valid_lft forever preferred_lft forever
inet6 fd7a:115c:a1e0::f101:2d6b/128 scope global
valid_lft forever preferred_lft forever
inet6 fe80::ce30:e71f:eb91:6a0f/64 scope link stable-privacy proto kernel_ll
valid_lft forever preferred_lft forever
7: br-7323c0806ede: mtu 1500 qdisc noqueue state UP group default
link/ether 02:42:7f:62:ff:11 brd ff:ff:ff:ff:ff:ff
inet 172.18.0.1/16 brd 172.18.255.255 scope global br-7323c0806ede
valid_lft forever preferred_lft forever
inet6 fe80::42:7fff:fe62:ff11/64 scope link proto kernel_ll
valid_lft forever preferred_lft forever
8: docker0: mtu 1500 qdisc noqueue state UP group default
link/ether 02:42:2e:b3:89:89 brd ff:ff:ff:ff:ff:ff
inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
valid_lft forever preferred_lft forever
inet6 fe80::42:2eff:feb3:8989/64 scope link proto kernel_ll
valid_lft forever preferred_lft forever
10: virbr0: mtu 1500 qdisc noqueue state DOWN group default qlen 1000
link/ether 52:54:00:0b:41:90 brd ff:ff:ff:ff:ff:ff
inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
valid_lft forever preferred_lft forever
12: veth58e80e3@if11: mtu 1500 qdisc noqueue master br-7323c0806ede state UP group default
link/ether a6:03:fa:e2:79:ad brd ff:ff:ff:ff:ff:ff link-netnsid 1
inet6 fe80::a403:faff:fee2:79ad/64 scope link proto kernel_ll
valid_lft forever preferred_lft forever
14: veth71ca236@if13: mtu 1500 qdisc noqueue master docker0 state UP group default
link/ether a2:0c:9e:82:cf:5d brd ff:ff:ff:ff:ff:ff link-netnsid 2
inet6 fe80::a00c:9eff:fe82:cf5d/64 scope link proto kernel_ll
valid_lft forever preferred_lft forever
16: veth296a99e@if15: mtu 1500 qdisc noqueue master br-7323c0806ede state UP group default
link/ether 52:fd:81:61:c5:00 brd ff:ff:ff:ff:ff:ff link-netnsid 3
inet6 fe80::50fd:81ff:fe61:c500/64 scope link proto kernel_ll
valid_lft forever preferred_lft forever
17: vnet0: mtu 1500 qdisc noqueue master br0 state UNKNOWN group default qlen 1000
link/ether fe:54:00:da:ae:a4 brd ff:ff:ff:ff:ff:ff
inet6 fe80::fc54:ff:feda:aea4/64 scope link proto kernel_ll
valid_lft forever preferred_lft forever
19: veth70d4083@if18: mtu 1500 qdisc noqueue master br-7323c0806ede state UP group default
link/ether ca:b1:3a:8a:ae:41 brd ff:ff:ff:ff:ff:ff link-netnsid 4
inet6 fe80::c8b1:3aff:fe8a:ae41/64 scope link proto kernel_ll
valid_lft forever preferred_lft forever
21: vethb9d4dee@if20: mtu 1500 qdisc noqueue master br-7323c0806ede state UP group default
link/ether 0e:db:33:b1:f1:b1 brd ff:ff:ff:ff:ff:ff link-netnsid 5
inet6 fe80::cdb:33ff:feb1:f1b1/64 scope link proto kernel_ll
valid_lft forever preferred_lft forever
23: veth6d2f5d3@if22: mtu 1500 qdisc noqueue master br-7323c0806ede state UP group default
link/ether 8e:3b:92:cf:dd:c2 brd ff:ff:ff:ff:ff:ff link-netnsid 6
inet6 fe80::8c3b:92ff:fecf:ddc2/64 scope link proto kernel_ll
valid_lft forever preferred_lft forever
25: veth6d4dd2e@if24: mtu 1500 qdisc noqueue master br-7323c0806ede state UP group default
link/ether ae:12:f8:a6:d4:53 brd ff:ff:ff:ff:ff:ff link-netnsid 7
inet6 fe80::ac12:f8ff:fea6:d453/64 scope link proto kernel_ll
valid_lft forever preferred_lft forever
27: vetha30b4e2@if26: mtu 1500 qdisc noqueue master br-7323c0806ede state UP group default
link/ether ba:7d:cc:9d:e8:98 brd ff:ff:ff:ff:ff:ff link-netnsid 8
inet6 fe80::b87d:ccff:fe9d:e898/64 scope link proto kernel_ll
valid_lft forever preferred_lft forever
29: vethf5b82b5@if28: mtu 1500 qdisc noqueue master br-7323c0806ede state UP group default
link/ether 36:2e:70:58:83:16 brd ff:ff:ff:ff:ff:ff link-netnsid 9
inet6 fe80::342e:70ff:fe58:8316/64 scope link proto kernel_ll
valid_lft forever preferred_lft forever
31: veth9924c09@if30: mtu 1500 qdisc noqueue master br-7323c0806ede state UP group default
link/ether 62:6f:64:e0:34:83 brd ff:ff:ff:ff:ff:ff link-netnsid 10
inet6 fe80::606f:64ff:fee0:3483/64 scope link proto kernel_ll
valid_lft forever preferred_lft forever
33: veth979b273@if32: mtu 1500 qdisc noqueue master br-7323c0806ede state UP group default
link/ether ae:bd:78:33:a9:ab brd ff:ff:ff:ff:ff:ff link-netnsid 11
inet6 fe80::acbd:78ff:fe33:a9ab/64 scope link proto kernel_ll
valid_lft forever preferred_lft forever
35: vethc30fd94@if34: mtu 1500 qdisc noqueue master br-7323c0806ede state UP group default
link/ether 52:97:17:1f:fd:12 brd ff:ff:ff:ff:ff:ff link-netnsid 12
inet6 fe80::5097:17ff:fe1f:fd12/64 scope link proto kernel_ll
valid_lft forever preferred_lft forever
37: veth44148e1@if36: mtu 1500 qdisc noqueue master br-7323c0806ede state UP group default
link/ether f2:9e:6f:eb:28:44 brd ff:ff:ff:ff:ff:ff link-netnsid 13
inet6 fe80::f09e:6fff:feeb:2844/64 scope link proto kernel_ll
valid_lft forever preferred_lft forever
41: veth3a39927@if40: mtu 1500 qdisc noqueue master br-7323c0806ede state UP group default
link/ether 32:6b:19:75:b7:1d brd ff:ff:ff:ff:ff:ff link-netnsid 15
inet6 fe80::306b:19ff:fe75:b71d/64 scope link proto kernel_ll
valid_lft forever preferred_lft forever
46: veth4941e83@if45: mtu 1500 qdisc noqueue master docker0 state UP group default
link/ether ae:b4:23:0e:7e:e8 brd ff:ff:ff:ff:ff:ff link-netnsid 17
inet6 fe80::acb4:23ff:fe0e:7ee8/64 scope link proto kernel_ll
valid_lft forever preferred_lft forever
Done

and this was the script for it:

#!/bin/bash

# Wait at boot
sleep 30

echo "Fixing Docker shim bridge..."
ifconfig shim-br0 down 2>/dev/null
ip link set shim-br down 2>/dev/null
ip addr flush dev shim-br0
ip addr add 10.55.0.189/24 dev shim-br0
ip link set shim-br0 up
echo "Docker shim interface configured."

ip a

Even the temp fix I've followed by @KnightRdr23 is not working again (stopping docker, changing ipvlan to macvlan, saving then reverting and saving, and also changing host access to custom networks to disabled, saving then enabled, and saving again). Looks like it was just a random success.. damn that sucks.

Do you have any idea how to adjust it correctly? Thanks in advance

I need a diag file and or a output of
ip a with the docker service stopped

I also need confirmation of your hardware and unraid network settings. ( I have xyz # of nics and they are conected to xyz.... )

AS you don't have a shim-bridge nor a vhost. I have to make large assumptions. and can bet on some setting having played around with xyz combinations...

are you running any Virtual machines?
image.png

Make sure this is not the setting virbr0...
Chose the interface be it eth0, br0, bond0

What are your docker settings?
image.png

IPvlan is fine...

what are your unraids network settings

image.png

WIth docker off. and
with a clean output ofip a
we get the output of all the houst interfaces...

since shim-br0 doesn't exist and the fact you have a tunnel interface and a virbr interface, this tell me you have a network misconfiguration.

tunl0@NONE: mtu 1480 qdisc noop state DOWN group default qlen 1000

and your vm network is using virbr wicth doesnt' make a bridge interface... its makes a hyper-v switch that won't connect to the subnet of the lan ip unraid gets... it makes it own dhcp server to the VMs

virbr0: mtu 1500 qdisc noqueue state DOWN group default qlen 1000

so I have to assume:
br-7323c0806ede
which is randomly created at reboot...

as all the veth are the mutiple dockers you are running that make there bridge interface tothe hyper-v switch...

So I would need a clean output of no dockers running to see the actual interfaces you are using...

Since they are defaulting to the virbr network that is not edited with these commands or script you run...
The fact that the virbr0 is down and the tunel is down tells me there are netwrok issues...

I also assume you have bridging off and bonding off as I don't see a br0 interface
Weird as I also don't see a eth0 or corresponding interface... ? no nic detected?
--Or the ip a of what you shared isn't the complete list as yo ahve alot of docker running...

Thus br-7323c0806ede was the temperaoy interface created and without onsite testing I would have to assume this temp br interface is the interface you would touch to apply the script too...

which is ill advsed as this will randomly be a different br interface at reboot...

Edited by bmartino1
Data-Typo

Hey good morning, unfortunately I'm suffering of the same issue... for me the only reliable thing to let unraid create the shim network is to disable IPv6 on docker, here is a log, any idea what could be the actual problem?

The log contains the first auto start and a second one (successful)

tower-syslog-20250530-0704.zip.crdownload

Never mind, ipv6 has nothing to do with it, I restarted again with ip6 disabled but the network was still not created

Edited by Apocaliss92

I don't think disabling IPV6 or anything else does it. I suspect that once UR is up, making any change in the config resets the networking, and the SHIM gets created as it should.

I myself had the default bridge disabled, and when I re-enabled bridging on the ETH0, everything started working. But I have seen many other people saying they enabled this or disabled that, and it started working again.

I really think the problem is rooted in the boot-up process and the creation of the network at boot-up. Perhaps the SHIM creation process is run before another function that is required for the SHIM, in which case, the SHIM creation would fail. But once the system is up, changes to the networking runs the SHIM process again, and because all the other functions are already in place, the SHIM is created correctly.

Again, this is all theory. I don't possess the required Linux acumen to diagnose this fully.

  • Community Expert

What's the output of your IP a

-with all Dockers off ...

And

What are your unRAID settings.

VM network not virbr0

Docker setting network allow host access

?macvlan/ipvlan

unRAID interface settings bridge off, bond off?

Router you use ipv6 via slack? RA is needed then ... For some reason I road won't flag having a DHCP ipv6 using slack DHCP with our ra enabled ...

I can guarantee unRAID with my inifo networks setups and testing... I Find it better with bridge on bond off

Macvlan with host access to network enabled

Vmbir0 not enabled for VM

This makes a shim br0

Thank you @bmartino1 , here is my settings

About my router not sure, I have an unifi network with pretty much everything default

What should I check on that side exactly?

Screenshot 2025-05-31 alle 07.51.51.png

Screenshot 2025-05-31 alle 07.52.42.png

Screenshot 2025-05-31 alle 07.52.53.png

What would be the best setting on my network? I'm not really an expert here...
I do not have a specific network for unifi, just reduced the default network pool of unifi to 15 and statically giving addresses on unifi in that range

Could really it be the problem? I do not understand why changing ipv6 to off for one run would make it work

  • Community Expert

Depends on unifi equipment... network settings etc…

What you're running and what you want it to do...
What unifi hardware and what network application version you are on etc...

Those settings look good, not sure what you are trying to do. ?Set a separate static IP for your docker network with the script?

stop unifi error with duplicate ip?

Enable ipv6 on unifi ?

as you should have a shim-bro or vhot0 interface with the terminal command ip a

The unraid network inet rc script cretes the bridge network for the default docker system. Uusaly this is called shim-br0

Are you experiencing a Docker no shim "network" with the terminal command ip a?

otherwise, I can go over some generic unifi settings... as IDK what your asking...


Here what I run at home...
image.png

go to gear settings. Lets take a look at the internet settings.

The UCG has the ability to have a second wan... I only use the 1 2.5 GB for my fiber ISP providers.

image.png

Depending on your ISP your Provider may give you a IPv4 and a IPv6

most communications and network setups latter will require what your ipv6 address is.

For security I have removed my ipv6, ipv4 and isp provider...

so lets click on primary and setup so settings...

Here I have UPnP and NAT enabled. (for security it advised you turn of UPnP

(since this is my test net I have it on for testing as some standard routers run similar settings)

Note the IGMP Prosy and the circle with a "i" read the info on settings you don't understand

image.png

My Provider offers iptv for their cable package with internet.

My Provider technical done't server ipv6 address. I have a cgnat ipv4 address for my connection with fiber.
I pay for a static IPv4 address due to work and other server I run from my homelab

image.png

Since I don't have a IPv6 public IP I can still setup and use ipv6 on my lan DHCP network.

Companies like Comcast, Xfinity, mediacom in the USA give both a ipv6 and ipv4 in which case I would recommend you run DHCPv6

as this can affect lan settings latter.
Here I set my ipv6 dns on the WAN port to opendns Cisco ipv6 address.

-OpenDNS utilizes the following IP addresses for its DNS servers: 208.67.220.220 and 208.67.222.222

support recursive IPv6 DNS resolution and security filtering for IPv6 traffic. Our IPv6 DNS server addresses are: 2620:119:35::35 and 2620:119:53::53

more info here:
https://adguard-dns.io/kb/general/dns-providers/

If I'm running Vlans, I may have more networks outside the default. In which I would switch to Prefix Delegation. I have yet to see the need to run Vlans in a Home Lab. While useful to separate traffic. Its not worth the headache to get cross talk and other setting setup...

?DO YOU HAVE VLANs?

  • As this will dictate other unraid settings...

With general start of IPv6 out of the way with unifi equipment...
Lets take a look at networks...

image.png

Note the mDNS setting and Rouge DHCP server Detection.

The mDNS is avahi that Unraid is also pre packaged with... This can get in the way or assist with Vlans and with "chrome cast" devices...

Most generic home routers run avahi zero conf without additional settings for their dhcp networks. (More a Unix / Apple and some linux additional settings)

This can affect dns / netbios and other machine name access xyz device latter.

UnRaid do to its inet.rc script at boot makes a br0 network of the eth0 interface with the settings marked above when docker loads its network it also makes a bridge network interface but gets flagged and bridges off br0
Thus, the name shim-br0 as it shims a bridge network over a bridge network interface. Thus, due to what the inetrc script is told the ip of br0 is that of eth0 the initial ip route and default interface UnRaid uses for networking.

Due to shim brdige it also grabs the same IP but is at a different Mac address.
This creates the error in unifi:

image.png

You can ignore this, or turn off a security feature in unfi or, edit unraids shim-br0 network interface IP address.

as a bridge has 2 IPs the starting side (br0) and the other side (shim-br0). From What I can tell this is essential from Limetech due to a one size fit all shoe as most end users are not running network enterprise equipment and will never see this issue or error as the ip for both interfaces are the same. so I treat shim-br0 since its the docker network for unraid as a service that needs its own lan Identity meaning my unraid host is set to 192.168.2.251 where I need the shim-br0 at a different mac address to be at 192.168.2.250...

--This makes a mess of the unifi client device list for other edits such as IP and hostname static sets... (especial at reboots of unraid where it make a new random mac address)

SO! You can turn off Rouge DHCP Server Detection which will stop the error or run a unraid script to change the ip address of unraid which is what the script does. Thus moving the ip the docker network uses and makes unifi happy. (as their are 2 ip address with 2 different interfaces with different macs.... usually br0 duplicates the mac of eth0 where shim-br0 attempts but since its a software macvlan tap it randomly assign shim-br0 mac address. thus make extra entries in unifi and flagging that ip as duplicate due to 2 ips on the same mac. While going to the same interface, this cause network communication issues...

The only fix I found when running unifi equipment is to edit unriads shim-br0 / vhot0 interface to a different IP which is what the script does...

example above

#!/bin/bash

# Wait at boot
sleep 30

echo "Fixing Docker shim bridge..."
ifconfig shim-br0 down 2>/dev/null
ip link set shim-br down 2>/dev/null
ip addr flush dev shim-br0
ip addr add 10.55.0.189/24 dev shim-br0
ip link set shim-br0 up
echo "Docker shim interface configured."

ip a


The script statically sets 10.55.0.189 to shim-br0
Shim-br0 would be a ip a interface in the list which is dictated via other unraid network settings...

.....

so with that lets take a look at unifi defeat network... Especial with ipv6 as I'm using slacc ipv6 and unraid doesn't like that... Most ipv6 dhcp server that use slacc will not advertise a ipv6 without a setting "RA" route advise... (More a android phone ipv6 connection issues as android don't get ipv6 address without slacc...) - Data throughout the forum form bug reports to other passign communications...

Unifi Networking settings are fairly straight forward in the settings group. by default unifi is set to auto mange these settings. I went manual as I've set these up for ISP over the years... Not a professional installer, just what the ISP company I worked for used...

image.png

Since this network is a internal network I use for testing as usualy the default network is 192.168.1.x
This equipment is on subnet 192.168.2.x so its runs a 192.168.2.x dhcp server device in this network receive a 192.168.2.x address

I went manual as unifi by default may have this set to auto for you. But you may want to run something like pihole or adblock home as a dns server and protect the entire network...

you can do this by click show options

image.png

Note the additional options... You may need to alos turn off ping confit detection along with rouge dhcp to stop unraid log errors in unifi...

I set my dhcp dns settings to use 192.168.2.3

as in this test net
192.168.2.1 is unfi - the brandon-UCG equipment
192.168.2.2 is my ac-pro the wifi device for this test net...
thus the net network device IP availbe is 192.168.2.3 so I run a dns server

-this get weird when running ipv6 as "RA" can overwrite your custom static ipv4 dns servers, thus defeating the use and purpose of running adblock home or pihole...
-Noe the Domain Name. This sets the search domain for your network some default may be local localdomain lan etc... so a machines FQDN or full machine name would be hostname.searchdomain
In my dockers I use the extra parm options to assit unifi and static graps this also means on my network i can go to dockername.home.arpa
so plex.home.arpa is my FQDN of my plex docker...

I use .home.arpa due to IEEE and RFC standards.... .local is Apple linux and avahi zerconf network setups... unriad by default will also use .local and settings can be found in setting > management
Note that theses setting will need to match to fix samba machine names...

why .home.arpa:

https://www.rfc-editor.org/rfc/rfc8375.html

https://www.iana.org/domains/arpa

For me this is due to .local in else upstream and crossing subnets...

so without ipv6 land DHCP this sets my ipv4 address and give machines a 192.168.2.x in the .hom.arpa subnet for FQDNs...

Lets review ipv6... especial if I want my docker networks to use ipv6 confirmed via docker network inspect commands...

image.png

With theses IPv6 unfi commands I was finally able to get unraid to get a unifi dhcp lan ipv6 address vial SLACC and RA...

RA can and will overwrite and set your rotuers ipv4 dns... as you want your ad block dns of pihole or adguard home to be the first and main ip that the dhcp give out to enable full network blocking!!!

To acomplish this TURN OFF DNS SERVER AUTO!
a IPV6 dns server then needs set I used opdns cicso ipv6 dns servers.

Slacc requires RA. with that unraid will now get a ipv4 and ipv6 address for network comunications...

Unraid by default doen't enable ipv6 forwarding for dockers another script is needed to add system ctl comand to enable ipv6. however, unraid does run ipv4 forwarding automatically...

thats its Ths is why I find endusers issues more to do with unraid and docker netwrok miscomunications... Unriad doen't make it simple and as its mutable it can be hard to setup a patch/fix/workaround that doen't break ...

As this is more a Unifi Network setup issues as this isn't found in normal endusers network setups. You would need to ensure you either setup you unifi enterprise equipment to act as a home router woul or edit machine network settigns to conect with how you run your networl

This is a very detailed answer, thanks a lot! Here some screens of my unifi configurations
My provider does give Ipv6 addresses, no need to hakky that part
I have the DNS servers pointing to 2 pihole-unbound instances (one on the unraid itsself, one on a second unraid server)

I don't have any "special" need from unraid, I just need some containers to sit on their own IP, nothing more

The very strange thing is that my second unraid instance is not affected by this problem

Just to clarify, my only issue is that the first docker start (after unraid reboot) does not create the shim network, it does it only disbling/enabling some settings on the docker page and restarting it

The only setting the ALWAYS gives a success afterwords is:

  • stop docker

  • disable ipv6

  • start docker

  • (shim network is created for ipv4)

  • stop docker

  • enable ipv6

  • start docker

  • (shim network is created for ipv6 as well)

  • everything works

If it could help, I can also provide a new network specifically for unraid, but I'm again very blind on this stuff... Default settings are super fine to me, not pretending any rocket behaviour

Please let me know if I can provide more detailed information from any front

Again, thank you very much for the kind help

Screenshot 2025-05-31 alle 23.47.41.png

Screenshot 2025-05-31 alle 23.48.12.png

Screenshot 2025-05-31 alle 23.48.49.png

Screenshot 2025-05-31 alle 23.49.10.png

  • Community Expert

?

I just need some containers to sit on their own IP, nothing more

This is doent in unraid docker network and selecting custom br0 . eth0 bond0 depending on your network settings

then you asign the static ip to the docker to give it its lan idenity...

more info here:

#####################

The only setting the ALWAYS gives a success afterwords is:

  • stop docker

  • disable ipv6

  • start docker

  • (shim network is created for ipv4)

  • stop docker

  • enable ipv6

  • start docker

  • (shim network is created for ipv6 as well)

  • everything works

Please post a uinraid diagnostic. this may need a seperat post in the bug reports.

I have not experience isseus with unraid not getting a ipv6 or loseiong a ipv6/ipv4 address. the fact that you are killing docker to edit the netowk mutiple times tells me you have a bigger issue this is no a missing shim-br0 issue this is a clint network inablity to assign and keep assigned ip address.

I would recomend using the script to flush and static asign teh ip at array start. as a wor around.

I dont' see the need to stop docker , edit unriad settign to disable ipv6 start docker

etc to acomplish this. you hae something else wrong here ... PLEASE POST A DIAG FILE!

?Vlans?

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.