Fix routing between containers on same host

This commit is contained in:
Scott Yeager 2025-06-20 20:10:00 -07:00
parent 0618b41ae2
commit 4012686925

22
main.go
View File

@ -259,8 +259,28 @@ func configureContainerInterface(containerNS netns.NsHandle, ifName string, cont
}
if hostLLAddr != nil {
// Add route to Mycelium network via host veth
// First remove any existing route to our /64
myceliumPrefix := &net.IPNet{
IP: containerIP.Mask(net.CIDRMask(64, 128)),
Mask: net.CIDRMask(64, 128),
}
existingRoute := &netlink.Route{
Dst: myceliumPrefix,
}
netlink.RouteDel(existingRoute)
// Add route to our /64 via host veth
route := &netlink.Route{
Dst: myceliumPrefix,
Gw: hostLLAddr,
LinkIndex: link.Attrs().Index,
}
if err := netlink.RouteAdd(route); err != nil {
return err
}
// Add route to Mycelium network via host veth
route = &netlink.Route{
Dst: &net.IPNet{
IP: net.ParseIP("400::"),
Mask: net.CIDRMask(7, 128),