feat(dns): Support DNS queryStrategy config per NameServer. #2564
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There are multiple feature requests already to enable
queryStrategy
configuration at the granularity of DNS name server: #1953 #1940. The PR adds a fieldqueryStrategy
in NameServer struct to allow user to configure DNS query strategy for every NameServer instead of using a single option for all name servers.The configuration before looks likes this,
After this PR, users are allowed to specify the
queryStrategy
option for each of the NameServers, for example,To be compatible with the old configuration,
queryStrategy
field applied on the DNS config level still works. The NameServer levelqueryStrategy
option can be treated as another filter. This should be pretty straight-forward, for example, in the following case, the queryStrategy would be set toUseIP6
,but in the following case, the
queryStrategy
would always result in empty response, due to conflicting DNS option,Therefore, users are encouraged to use NameServer level
queryStrategy
field.queryStrategy
is not set at NameServer level, the NameService will not override thequeryStrategy
setting. The behavior of the DNS resolver should remain the same as previous.