diff --git a/components/engine/daemon/daemon.go b/components/engine/daemon/daemon.go index 65fbfbb2e9..8cb227583b 100644 --- a/components/engine/daemon/daemon.go +++ b/components/engine/daemon/daemon.go @@ -10,6 +10,7 @@ import ( "fmt" "io" "io/ioutil" + "net" "os" "path/filepath" "regexp" @@ -52,7 +53,7 @@ import ( "github.com/docker/docker/volume/local" "github.com/docker/docker/volume/store" "github.com/docker/libnetwork" - "github.com/opencontainers/runc/libcontainer/netlink" + "github.com/vishvananda/netlink" ) var ( @@ -1078,13 +1079,18 @@ var errNoDefaultRoute = errors.New("no default route was found") // getDefaultRouteMtu returns the MTU for the default route's interface. func getDefaultRouteMtu() (int, error) { - routes, err := netlink.NetworkGetRoutes() + routes, err := netlink.RouteList(nil, 0) if err != nil { return 0, err } for _, r := range routes { - if r.Default && r.Iface != nil { - return r.Iface.MTU, nil + // a nil Dst means that this is the default route. + if r.Dst == nil { + i, err := net.InterfaceByIndex(r.LinkIndex) + if err != nil { + continue + } + return i.MTU, nil } } return 0, errNoDefaultRoute