summaryrefslogtreecommitdiffhomepage
path: root/drive
diff options
context:
space:
mode:
authorJonathan Nobels <jonathan@tailscale.com>2024-06-25 15:40:57 -0400
committerJonathan Nobels <jonathan@tailscale.com>2024-08-21 17:56:30 -0400
commita714d402f2ab8865d12cb16210f0832a21be5ad7 (patch)
tree669142b7192155f64f7388aeaf3b2e8822c0626a /drive
parent8e42510a717d98fbbcc64715d445d0feaace59d7 (diff)
downloadtailscale-jonathan/missing_resolvers.tar.xz
tailscale-jonathan/missing_resolvers.zip
net/netmon: add netmon hook for os-derived network change notificationsjonathan/missing_resolvers
Update tailscale/corp#20677 While hunting down DNS issues, it was observed that on apple platforms, w attempt to rebind to interfaces before they're completely configured by the system. The AF_ROUTE messages aren't lying, they're just not taking into account other setup that has to happen, notably the system setting the interface nameservers. When we react based on the route updates, it's often too quickly. This happens frequently on wakes-from-sleep. This replumbs netmon so that (optionally) rather than reacting to every system message by checking for interesting changes, we use that only to update our state, and recheck for interesting network changes when we get a poke from the upper layers indicating that a network change has 'completed'. Notably on Apple, NWPathMonitor seems to call us back at the correct time(s) to check for potentially interesting interface changes that have been observed via AF_ROUTE and to react to them. This seems to reduce thrashing during network transitions, and avoids some of the bad states we were previously ending up in. This is entirely opt in during the construction of the netmon and will have no effect until/unless a specific client chooses to use it. Signed-off-by: Jonathan Nobels <jonathan@tailscale.com>
Diffstat (limited to 'drive')
0 files changed, 0 insertions, 0 deletions