DnsClientOptions Class

Configuration options for DnsClient.

public sealed class DnsClientOptions

Constructors

NameDescription
DnsClientOptions()

DnsClientOptions()

DnsClientOptions.cs
public DnsClientOptions()

No documentation is available.

Properties

NameDescription
DnssecOkGets or sets a value indicating whether to set the DNSSEC OK (DO) flag. Default is false.
DnssecTrustAnchorsGets or sets the DNSSEC trust anchors used for local validation.
DnssecValidationModeGets or sets how DNSSEC responses are validated. Default is DnssecValidationMode.None.
EdnsUdpPayloadSizeGets or sets the EDNS UDP payload size. Default is 1232, the value recommended by RFC 9715 and DNS Flag Day 2020 to avoid IP fragmentation; larger UDP answers are routinely dropped by middleboxes.
EnableEdnsGets or sets a value indicating whether to include EDNS(0) OPT records in queries. Default is true.
HttpHandlerGets or sets the HTTP message handler for DNS over HTTPS. When null, a default handler is used.
HttpVersionGets or sets the HTTP version used for DNS over HTTPS requests. Default is HTTP/2, which every DoH resolver supports; requesting HTTP/3 costs a failed QUIC attempt per connection on hosts or servers without it.
HttpVersionPolicyGets or sets the HTTP version policy used for DNS over HTTPS requests. Default is HttpVersionPolicy.RequestVersionOrLower.
RetryTruncatedOverTcpGets or sets a value indicating whether a truncated (TC) UDP response is automatically re-issued over TCP, as RFC 1035 section 4.2.1 requires. Default is true. Only applies to DnsClientProtocol.Udp.
ServerAddressResolverGets or sets the resolver used to resolve DNS server hostnames to IP addresses.
TimeProviderGets or sets the time provider used for DNSSEC signature lifetime checks.
TimeoutGets or sets the query timeout. Default is 5 seconds.

Gets or sets a value indicating whether to set the DNSSEC OK (DO) flag. Default is false.

public bool DnssecOk { get; set; }

Property value

bool

DnssecTrustAnchors

DnsClientOptions.cs

Gets or sets the DNSSEC trust anchors used for local validation.

public IReadOnlyList<DnssecTrustAnchor> DnssecTrustAnchors { get; set; }

DnssecValidationMode

DnsClientOptions.cs

Gets or sets how DNSSEC responses are validated. Default is DnssecValidationMode.None.

public DnssecValidationMode DnssecValidationMode { get; set; }

Property value

DnssecValidationMode

EdnsUdpPayloadSize

DnsClientOptions.cs

Gets or sets the EDNS UDP payload size. Default is 1232, the value recommended by RFC 9715 and DNS Flag Day 2020 to avoid IP fragmentation; larger UDP answers are routinely dropped by middleboxes.

public ushort EdnsUdpPayloadSize { get; set; }

Property value

ushort

Gets or sets a value indicating whether to include EDNS(0) OPT records in queries. Default is true.

public bool EnableEdns { get; set; }

Property value

bool

Gets or sets the HTTP message handler for DNS over HTTPS. When null, a default handler is used.

public HttpMessageHandler? HttpHandler { get; set; }

Property value

HttpMessageHandler?

Gets or sets the HTTP version used for DNS over HTTPS requests. Default is HTTP/2, which every DoH resolver supports; requesting HTTP/3 costs a failed QUIC attempt per connection on hosts or servers without it.

public Version HttpVersion { get; set; }

Property value

Version

HttpVersionPolicy

DnsClientOptions.cs

Gets or sets the HTTP version policy used for DNS over HTTPS requests. Default is HttpVersionPolicy.RequestVersionOrLower.

public HttpVersionPolicy HttpVersionPolicy { get; set; }

Property value

HttpVersionPolicy

RetryTruncatedOverTcp

DnsClientOptions.cs

Gets or sets a value indicating whether a truncated (TC) UDP response is automatically re-issued over TCP, as RFC 1035 section 4.2.1 requires. Default is true. Only applies to DnsClientProtocol.Udp.

public bool RetryTruncatedOverTcp { get; set; }

Property value

bool

ServerAddressResolver

DnsClientOptions.cs

Gets or sets the resolver used to resolve DNS server hostnames to IP addresses.

public Func<string, IReadOnlyList<IPAddress>>? ServerAddressResolver { get; set; }

Gets or sets the time provider used for DNSSEC signature lifetime checks.

public TimeProvider TimeProvider { get; set; }

Property value

TimeProvider

Gets or sets the query timeout. Default is 5 seconds.

public TimeSpan Timeout { get; set; }

Property value

TimeSpan