-
-
Notifications
You must be signed in to change notification settings - Fork 83
Description
What is Happening
Consider the following scenario (#440 )
I specified two addresses as DNS - 10.0.0.10 and 8.8.8.8. The 10.0.0.10 DNS is only accessible via VPN.
I connected to the VPN and used the dig command to query an address that has an IP within the 10.0.0.10 range. The command was: dig @172.17.0.1 (this is the IP of the Docker where the DNS is listening). There were no issues, and the response was the address 10.0.0.169.
Next, I disconnected from the VPN and tried the dig command again multiple times. I still received the internal IP 10.0.0.169, even though the site has an external IP address on 8.8.8.8. I waited 10 minutes to check the cache, but I still received the internal address.
I suppose this scenario it's related to the response entries cache. Once query has a successful response then DPS will cache it for the time the remote server specifies, 10.0.0.10 in that case.
What is expected
The thing is, once the VPN is disconnected and 10.0.0.10 DNS server is now unavailable, 10.0.0.169 reponse is obsolete, inconsistent, it looks like clear the remote cache when one of the remotes goes down or up, is the expected behavior.
Changes (Optional)
- Do Refactor Solving Module #449 first
- Refactor
SolverRemotewhich is with really big methods, see #455 - Refactoring SolverRemote #459 - Create a watch dog to keep testing the remote servers circuit, it will clear the cache whenever a remote server goes down or gets health again.
Metadata
Metadata
Assignees
Labels
Projects
Status