wgengine/magicsock,ipn/ipnlocal: store and load homeDERP from cache (#19491)
With netmap caching, the home DERP of the self node was neither saved to
the cache or loaded from it, making nodes not stick to a DERP when
starting without a connection to control.
Instead, make sure that when a cache is available, load that cache,
before looking for DERP servers. This is implemented by allowing a skip
of ReSTUN in setting the DERP map (we must have a DERP map before
setting the home DERP), so the DERP from cache will set itself and be
sticky until a connection to control is established.
Making DERP only change when connected to control is handled by existing
code from f072d017bd.
Updates #19490
Signed-off-by: Claus Lensbøl <claus@tailscale.com>
This commit is contained in:
@@ -156,8 +156,8 @@ func setupWGTest(b *testing.B, logf logger.Logf, traf *TrafficGen, a1, a2 netip.
|
||||
})
|
||||
|
||||
// Not using DERP in this test (for now?).
|
||||
s1.MagicSock.Get().SetDERPMap(&tailcfg.DERPMap{})
|
||||
s2.MagicSock.Get().SetDERPMap(&tailcfg.DERPMap{})
|
||||
s1.MagicSock.Get().SetDERPMap(&tailcfg.DERPMap{}, true)
|
||||
s2.MagicSock.Get().SetDERPMap(&tailcfg.DERPMap{}, true)
|
||||
|
||||
wait.Wait()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user