diff options
| author | Jonathan Nobels <jnobels@gmail.com> | 2024-06-12 15:45:13 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-06-12 15:45:13 -0400 |
| commit | 02e3c046aa381262ec30742797f8f5efbd40aabd (patch) | |
| tree | 4be393271f6cc910070279b65c23091a54883ead /control/controlknobs/controlknobs.go | |
| parent | d0f1a838a6bf1707ca270e347842f787031153e6 (diff) | |
| download | tailscale-02e3c046aa381262ec30742797f8f5efbd40aabd.tar.xz tailscale-02e3c046aa381262ec30742797f8f5efbd40aabd.zip | |
net/dns: re-query system resolvers on no-upstream resolver failure on apple platforms (#12398)
Fixes tailscale/corp#20677
On macOS sleep/wake, we're encountering a condition where reconfigure the network
a little bit too quickly - before apple has set the nameservers for our interface.
This results in a persistent condition where we have no upstream resolver and
fail all forwarded DNS queries.
No upstream nameservers is a legitimate configuration, and we have no (good) way
of determining when Apple is ready - but if we need to forward a query, and we
have no nameservers, then something has gone badly wrong and the network is
very broken.
A simple fix here is to simply inject a netMon event, which will go through the
configuration dance again when we hit the SERVFAIL condition.
Tested by artificially/randomly returning [] for the list of nameservers in the bespoke
ipn-bridge code responsible for getting the nameservers.
Signed-off-by: Jonathan Nobels <jonathan@tailscale.com>
Diffstat (limited to 'control/controlknobs/controlknobs.go')
0 files changed, 0 insertions, 0 deletions
