mirror of
https://github.com/tailscale/tailscale.git
synced 2024-12-01 14:05:39 +00:00
wgengine/netstack: don't remove 255.255.255.255/32 from netstack
The intent of the updateIPs code is to add & remove IP addresses to netstack based on what we get from the netmap. But netstack itself adds 255.255.255.255/32 apparently and we always fight it (and it adds it back?). So stop fighting it. Updates #2642 (maybe fixes? maybe.) Change-Id: I37cb23f8e3f07a42a1a55a585689ca51c2be7c60 Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
This commit is contained in:
parent
66164b9307
commit
5a9914a92f
@ -229,12 +229,21 @@ func ipPrefixToAddressWithPrefix(ipp netaddr.IPPrefix) tcpip.AddressWithPrefix {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var v4broadcast = netaddr.IPv4(255, 255, 255, 255)
|
||||||
|
|
||||||
func (ns *Impl) updateIPs(nm *netmap.NetworkMap) {
|
func (ns *Impl) updateIPs(nm *netmap.NetworkMap) {
|
||||||
ns.atomicIsLocalIPFunc.Store(tsaddr.NewContainsIPFunc(nm.Addresses))
|
ns.atomicIsLocalIPFunc.Store(tsaddr.NewContainsIPFunc(nm.Addresses))
|
||||||
|
|
||||||
oldIPs := make(map[tcpip.AddressWithPrefix]bool)
|
oldIPs := make(map[tcpip.AddressWithPrefix]bool)
|
||||||
for _, protocolAddr := range ns.ipstack.AllAddresses()[nicID] {
|
for _, protocolAddr := range ns.ipstack.AllAddresses()[nicID] {
|
||||||
oldIPs[protocolAddr.AddressWithPrefix] = true
|
ap := protocolAddr.AddressWithPrefix
|
||||||
|
ip := netaddrIPFromNetstackIP(ap.Address)
|
||||||
|
if ip == v4broadcast && ap.PrefixLen == 32 {
|
||||||
|
// Don't delete this one later. It seems to be important.
|
||||||
|
// Related to Issue 2642? Likely.
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
oldIPs[ap] = true
|
||||||
}
|
}
|
||||||
newIPs := make(map[tcpip.AddressWithPrefix]bool)
|
newIPs := make(map[tcpip.AddressWithPrefix]bool)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user