Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docker0 bind error spam #1192

Open
GamePlayer-8 opened this issue Oct 20, 2024 · 5 comments
Open

docker0 bind error spam #1192

GamePlayer-8 opened this issue Oct 20, 2024 · 5 comments
Labels
docker Operating system-specific

Comments

@GamePlayer-8
Copy link

Yggdrasil node is spamming yggdrasil[5177]: 2024/10/20 10:19:16 Not multicasting on docker0 due to error: listen tcp [fe80::1%docker0]:0: bind: cannot assign requested address in the /var/log/messages every second.

@neilalexander
Copy link
Member

If your Docker installation doesn't have IPv6 enabled then you can just disable multicasting by setting Listen and Beacon under MulticastInterfaces to false.

@neilalexander neilalexander added the docker Operating system-specific label Oct 20, 2024
@GamePlayer-8
Copy link
Author

It actually does:

/etc/docker/daemon.json

{
  "ipv6": true,
  "fixed-cidr-v6": "fd12:3452:789a:1::/64",
  "experimental": true,
  "ip6tables": true,
  "dns": ["192.168.4.100"],
  "log-opts": {
        "max-size": "10m",
        "max-file": "1"
  },
  "storage-driver": "overlay2",
  "builder": {
	"Entitlements": {
		"security-insecure": true
	}
  }
}

will disable the listening in the Yggdrasil config

@neilalexander
Copy link
Member

I don't really know Docker's bridge networking well enough to understand why it would be trying to assign fe80::1 as a link-local address as opposed to a normal generated one, or why if it had assigned it that it wouldn't be listenable.

Yggdrasil just tries to select a link-local address to use from interfaces that are up and connected, and it does so continuously to respond to changes in network links, i.e. a network cable or Wi-Fi network connects/disconnects.

That said there's every possibility that multicast discovery won't really work properly under Docker anyway, in which case you may just want to disable it anyway.

@GamePlayer-8
Copy link
Author

GamePlayer-8 commented Oct 20, 2024

Any way to add an exception / timed out on retries function on ports/interfaces which are misbehaving towards adding the multicast listener?

@GamePlayer-8
Copy link
Author

Solution is to use RegEx: "^([^d]|d[^o]|do[^c]|doc[^k]|dock[^e]|docker[^a-zA-Z0-9_]).*$" inside MulticastInterfaces.

When using "^(?!docker).*" the Perl interpreter fails with:

panic: regexp: Compile(`^(?!docker).*`): error parsing regexp: invalid or unsupported Perl syntax: `(?!`
goroutine 1 [running]:
        /opt/hostedtoolcache/go/1.20.13/x64/src/regexp/regexp.go:319 +0xbb
main.main()
        /home/runner/work/yggdrasil-go/yggdrasil-go/cmd/yggdrasil/main.go:245 +0x1fc9

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
docker Operating system-specific
Projects
None yet
Development

No branches or pull requests

2 participants