Add option to keep contact points unresolved and always re-resolve when there's total connectivity loss

Description

In some cases, it might be useful to store contact points as unresolved (hosts with dynamic addresses like with k8s). We should have a config method on the builder to force the driver to resolve the contact point everytime it is used in the attempt to open/re-open the control connection.

Similar to this, we should use this mechanism when total connectivity is lost without considering what value is set in this new config option.

Also, we can't rely on Dns.GetHostEntryAsync since there is no way to avoid caching with this API. We should consider (using this library)https://github.com/MichaCo/DnsClient.NET

To avoid an additional dependency we can do some testing with this setting (not available in net standard < 2)

EDIT: we should do some testing first to see if DNS.GetHostEntry works fine as is, i.e., only caches for a duration specified by the TTL. DNS.GetHostEntry just invokes the OS DNS subsystem so it will be necessary to test this in both Windows and Linux. In Linux it might depend on what software is installed (see https://stackoverflow.com/questions/11020027/dns-caching-in-linux )

Note: See and for further context.

Environment

None

Pull Requests

None

Status

Assignee

Unassigned

Reporter

Joao Reis

Labels

None

PM Priority

None

Fix versions

None

External issue ID

None

Doc Impact

None

Reviewer

None

Pull Request

None

Epic Link

None

Sprint

Size

None

Priority

Major
Configure