From 5fe77c688b9b6b57661621e5d342df17a9d46320 Mon Sep 17 00:00:00 2001 From: Pavel Sviderski Date: Thu, 31 Oct 2024 18:35:59 +1000 Subject: [PATCH] exclude Docker bridge br-[0-9a-f]{12} interfaces from machine routable IPs --- internal/machine/network/address.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/internal/machine/network/address.go b/internal/machine/network/address.go index 68053d9a..36b25e64 100644 --- a/internal/machine/network/address.go +++ b/internal/machine/network/address.go @@ -7,6 +7,7 @@ import ( "net" "net/http" "net/netip" + "regexp" "strings" "time" ) @@ -24,6 +25,13 @@ func ListRoutableIPs() ([]netip.Addr, error) { // Skip the Uncloud WireGuard and Docker interfaces. continue } + // Docker bridge name doesn't seem to be documented but this is the source code where it is generated: + // https://github.com/moby/moby/blob/v27.2.1/libnetwork/drivers/bridge/bridge_linux.go#L664 + if match, _ := regexp.MatchString(`br-[0-9a-f]{12}`, iface.Name); match { + // Skip Docker bridge interfaces. + continue + } + if iface.Flags&net.FlagUp == 0 || iface.Flags&net.FlagRunning == 0 || iface.Flags&net.FlagLoopback != 0 { // Skip interfaces: // * Not administratively UP.