Fixes NodePort in ipv6 with proxy-mode=ipvs. #68437
Use ipv6 addresses for NodePort with proxy-mode=ipvs in a ipv6-only cluster.
This commit is contained in:
@@ -30,11 +30,12 @@ import (
|
||||
|
||||
type netlinkHandle struct {
|
||||
netlink.Handle
|
||||
ipv6 bool
|
||||
}
|
||||
|
||||
// NewNetLinkHandle will crate a new NetLinkHandle
|
||||
func NewNetLinkHandle() NetLinkHandle {
|
||||
return &netlinkHandle{netlink.Handle{}}
|
||||
func NewNetLinkHandle(ipv6 bool) NetLinkHandle {
|
||||
return &netlinkHandle{netlink.Handle{}, ipv6}
|
||||
}
|
||||
|
||||
// EnsureAddressBind checks if address is bound to the interface and, if not, binds it. If the address is already bound, return true.
|
||||
@@ -181,7 +182,11 @@ func (h *netlinkHandle) GetLocalAddresses(dev, filterDev string) (sets.String, e
|
||||
if route.LinkIndex == filterLinkIndex {
|
||||
continue
|
||||
}
|
||||
if route.Src != nil {
|
||||
if h.ipv6 {
|
||||
if route.Dst.IP.To4() == nil && ! route.Dst.IP.IsLinkLocalUnicast() {
|
||||
res.Insert(route.Dst.IP.String())
|
||||
}
|
||||
} else if route.Src != nil {
|
||||
res.Insert(route.Src.String())
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user