Documentation
¶
Index ¶
- Variables
- type CaresDnsResolverConfig
- func (x *CaresDnsResolverConfig) ClearDnsResolverOptions()
- func (x *CaresDnsResolverConfig) ClearEdns0MaxPayloadSize()
- func (x *CaresDnsResolverConfig) ClearMaxUdpChannelDuration()
- func (x *CaresDnsResolverConfig) ClearQueryTimeoutSeconds()
- func (x *CaresDnsResolverConfig) ClearQueryTries()
- func (x *CaresDnsResolverConfig) ClearUdpMaxQueries()
- func (x *CaresDnsResolverConfig) GetDnsResolverOptions() *v3.DnsResolverOptions
- func (x *CaresDnsResolverConfig) GetEdns0MaxPayloadSize() *wrapperspb.UInt32Value
- func (x *CaresDnsResolverConfig) GetFilterUnroutableFamilies() bool
- func (x *CaresDnsResolverConfig) GetMaxUdpChannelDuration() *durationpb.Duration
- func (x *CaresDnsResolverConfig) GetQueryTimeoutSeconds() *wrapperspb.UInt64Value
- func (x *CaresDnsResolverConfig) GetQueryTries() *wrapperspb.UInt32Value
- func (x *CaresDnsResolverConfig) GetReinitChannelOnTimeout() bool
- func (x *CaresDnsResolverConfig) GetResolvers() []*v3.Address
- func (x *CaresDnsResolverConfig) GetRotateNameservers() bool
- func (x *CaresDnsResolverConfig) GetUdpMaxQueries() *wrapperspb.UInt32Value
- func (x *CaresDnsResolverConfig) GetUseResolversAsFallback() bool
- func (x *CaresDnsResolverConfig) HasDnsResolverOptions() bool
- func (x *CaresDnsResolverConfig) HasEdns0MaxPayloadSize() bool
- func (x *CaresDnsResolverConfig) HasMaxUdpChannelDuration() bool
- func (x *CaresDnsResolverConfig) HasQueryTimeoutSeconds() bool
- func (x *CaresDnsResolverConfig) HasQueryTries() bool
- func (x *CaresDnsResolverConfig) HasUdpMaxQueries() bool
- func (*CaresDnsResolverConfig) ProtoMessage()
- func (x *CaresDnsResolverConfig) ProtoReflect() protoreflect.Message
- func (x *CaresDnsResolverConfig) Reset()
- func (x *CaresDnsResolverConfig) SetDnsResolverOptions(v *v3.DnsResolverOptions)
- func (x *CaresDnsResolverConfig) SetEdns0MaxPayloadSize(v *wrapperspb.UInt32Value)
- func (x *CaresDnsResolverConfig) SetFilterUnroutableFamilies(v bool)
- func (x *CaresDnsResolverConfig) SetMaxUdpChannelDuration(v *durationpb.Duration)
- func (x *CaresDnsResolverConfig) SetQueryTimeoutSeconds(v *wrapperspb.UInt64Value)
- func (x *CaresDnsResolverConfig) SetQueryTries(v *wrapperspb.UInt32Value)
- func (x *CaresDnsResolverConfig) SetReinitChannelOnTimeout(v bool)
- func (x *CaresDnsResolverConfig) SetResolvers(v []*v3.Address)
- func (x *CaresDnsResolverConfig) SetRotateNameservers(v bool)
- func (x *CaresDnsResolverConfig) SetUdpMaxQueries(v *wrapperspb.UInt32Value)
- func (x *CaresDnsResolverConfig) SetUseResolversAsFallback(v bool)
- func (x *CaresDnsResolverConfig) String() string
- type CaresDnsResolverConfig_builder
Constants ¶
This section is empty.
Variables ¶
View Source
var File_envoy_extensions_network_dns_resolver_cares_v3_cares_dns_resolver_proto protoreflect.FileDescriptor
Functions ¶
This section is empty.
Types ¶
type CaresDnsResolverConfig ¶
type CaresDnsResolverConfig struct {
// A list of DNS resolver addresses.
// :ref:`use_resolvers_as_fallback <envoy_v3_api_field_extensions.network.dns_resolver.cares.v3.CaresDnsResolverConfig.use_resolvers_as_fallback>`
// below dictates if the DNS client should override system defaults or only use the provided
// resolvers if the system defaults are not available, i.e., as a fallback.
Resolvers []*v3.Address `protobuf:"bytes,1,rep,name=resolvers,proto3" json:"resolvers,omitempty"`
// If true use the resolvers listed in the
// :ref:`resolvers <envoy_v3_api_field_extensions.network.dns_resolver.cares.v3.CaresDnsResolverConfig.resolvers>`
// field only if c-ares is unable to obtain a
// nameserver from the system (e.g., “/etc/resolv.conf“).
// Otherwise, the resolvers listed in the resolvers list will override the default system
// resolvers. Defaults to false.
UseResolversAsFallback bool `` /* 132-byte string literal not displayed */
// The resolver will query available network interfaces and determine if there are no available
// interfaces for a given IP family. It will then filter these addresses from the results it
// presents. e.g., if there are no available IPv4 network interfaces, the resolver will not
// provide IPv4 addresses.
FilterUnroutableFamilies bool `` /* 136-byte string literal not displayed */
// Configuration of DNS resolver option flags which control the behavior of the DNS resolver.
DnsResolverOptions *v3.DnsResolverOptions `protobuf:"bytes,2,opt,name=dns_resolver_options,json=dnsResolverOptions,proto3" json:"dns_resolver_options,omitempty"`
// This option allows the number of UDP based DNS queries to be capped.
//
// .. note::
//
// This is only applicable to c-ares DNS resolver currently.
UdpMaxQueries *wrapperspb.UInt32Value `protobuf:"bytes,5,opt,name=udp_max_queries,json=udpMaxQueries,proto3" json:"udp_max_queries,omitempty"`
// The number of seconds each name server is given to respond to a query on the first try of any given server.
//
// .. note::
//
// While the c-ares library defaults to 2 seconds, Envoy's default (if this field is unset) is 5 seconds.
// This adjustment was made to maintain the previous behavior after users reported an increase in DNS resolution times.
QueryTimeoutSeconds *wrapperspb.UInt64Value `protobuf:"bytes,6,opt,name=query_timeout_seconds,json=queryTimeoutSeconds,proto3" json:"query_timeout_seconds,omitempty"`
// The maximum number of query attempts the resolver will make before giving up.
// Each attempt may use a different name server.
//
// .. note::
//
// While the c-ares library defaults to 3 attempts, Envoy's default (if this field is unset) is 4 attempts.
// This adjustment was made to maintain the previous behavior after users reported an increase in DNS resolution times.
QueryTries *wrapperspb.UInt32Value `protobuf:"bytes,7,opt,name=query_tries,json=queryTries,proto3" json:"query_tries,omitempty"`
// Enable round-robin selection of name servers for DNS resolution. When enabled, the resolver will cycle through the
// list of name servers for each resolution request. This can help distribute the query load across multiple name
// servers. If disabled (default), the resolver will try name servers in the order they are configured.
//
// .. note::
//
// This setting overrides any system configuration for name server rotation.
RotateNameservers bool `protobuf:"varint,8,opt,name=rotate_nameservers,json=rotateNameservers,proto3" json:"rotate_nameservers,omitempty"`
// Maximum EDNS0 UDP payload size in bytes.
// If set, c-ares will include EDNS0 in DNS queries and use this value as the maximum UDP response size.
//
// Recommended values:
//
// * **1232**: Safe default (avoids fragmentation).
// * **4096**: Maximum allowed.
//
// If unset, c-ares uses its internal default (usually 1232).
Edns0MaxPayloadSize *wrapperspb.UInt32Value `protobuf:"bytes,9,opt,name=edns0_max_payload_size,json=edns0MaxPayloadSize,proto3" json:"edns0_max_payload_size,omitempty"`
// The maximum duration for which a UDP channel will be kept alive before being refreshed.
//
// If set, the DNS resolver will periodically reinitialize its c-ares channel after the
// specified duration. This can help with avoiding stale socket states, and providing
// better load distribution across UDP ports.
//
// If not specified, no periodic refresh will be performed.
MaxUdpChannelDuration *durationpb.Duration `` /* 129-byte string literal not displayed */
// If true, reinitialize the c-ares channel when a DNS query fails with “ARES_ETIMEOUT“.
//
// This can help recover from rare cases where the UDP sockets held by the c-ares
// channel become unusable after timeouts, causing subsequent queries to fail or
// Envoy to keep serving stale DNS results. When enabled, a timeout-triggered
// reinitialization attempts to restore healthy state quickly. In environments
// where timeouts are caused by intermittent network issues, enabling this may
// increase channel churn; consider using
// :ref:`max_udp_channel_duration <envoy_v3_api_field_extensions.network.dns_resolver.cares.v3.CaresDnsResolverConfig.max_udp_channel_duration>`
// for periodic refresh instead.
//
// Default is false.
ReinitChannelOnTimeout bool `` /* 133-byte string literal not displayed */
// contains filtered or unexported fields
}
Configuration for c-ares DNS resolver. [#next-free-field: 12]
func (*CaresDnsResolverConfig) ClearDnsResolverOptions ¶
func (x *CaresDnsResolverConfig) ClearDnsResolverOptions()
func (*CaresDnsResolverConfig) ClearEdns0MaxPayloadSize ¶
func (x *CaresDnsResolverConfig) ClearEdns0MaxPayloadSize()
func (*CaresDnsResolverConfig) ClearMaxUdpChannelDuration ¶
func (x *CaresDnsResolverConfig) ClearMaxUdpChannelDuration()
func (*CaresDnsResolverConfig) ClearQueryTimeoutSeconds ¶
func (x *CaresDnsResolverConfig) ClearQueryTimeoutSeconds()
func (*CaresDnsResolverConfig) ClearQueryTries ¶
func (x *CaresDnsResolverConfig) ClearQueryTries()
func (*CaresDnsResolverConfig) ClearUdpMaxQueries ¶
func (x *CaresDnsResolverConfig) ClearUdpMaxQueries()
func (*CaresDnsResolverConfig) GetDnsResolverOptions ¶
func (x *CaresDnsResolverConfig) GetDnsResolverOptions() *v3.DnsResolverOptions
func (*CaresDnsResolverConfig) GetEdns0MaxPayloadSize ¶
func (x *CaresDnsResolverConfig) GetEdns0MaxPayloadSize() *wrapperspb.UInt32Value
func (*CaresDnsResolverConfig) GetFilterUnroutableFamilies ¶
func (x *CaresDnsResolverConfig) GetFilterUnroutableFamilies() bool
func (*CaresDnsResolverConfig) GetMaxUdpChannelDuration ¶
func (x *CaresDnsResolverConfig) GetMaxUdpChannelDuration() *durationpb.Duration
func (*CaresDnsResolverConfig) GetQueryTimeoutSeconds ¶
func (x *CaresDnsResolverConfig) GetQueryTimeoutSeconds() *wrapperspb.UInt64Value
func (*CaresDnsResolverConfig) GetQueryTries ¶
func (x *CaresDnsResolverConfig) GetQueryTries() *wrapperspb.UInt32Value
func (*CaresDnsResolverConfig) GetReinitChannelOnTimeout ¶
func (x *CaresDnsResolverConfig) GetReinitChannelOnTimeout() bool
func (*CaresDnsResolverConfig) GetResolvers ¶
func (x *CaresDnsResolverConfig) GetResolvers() []*v3.Address
func (*CaresDnsResolverConfig) GetRotateNameservers ¶
func (x *CaresDnsResolverConfig) GetRotateNameservers() bool
func (*CaresDnsResolverConfig) GetUdpMaxQueries ¶
func (x *CaresDnsResolverConfig) GetUdpMaxQueries() *wrapperspb.UInt32Value
func (*CaresDnsResolverConfig) GetUseResolversAsFallback ¶
func (x *CaresDnsResolverConfig) GetUseResolversAsFallback() bool
func (*CaresDnsResolverConfig) HasDnsResolverOptions ¶
func (x *CaresDnsResolverConfig) HasDnsResolverOptions() bool
func (*CaresDnsResolverConfig) HasEdns0MaxPayloadSize ¶
func (x *CaresDnsResolverConfig) HasEdns0MaxPayloadSize() bool
func (*CaresDnsResolverConfig) HasMaxUdpChannelDuration ¶
func (x *CaresDnsResolverConfig) HasMaxUdpChannelDuration() bool
func (*CaresDnsResolverConfig) HasQueryTimeoutSeconds ¶
func (x *CaresDnsResolverConfig) HasQueryTimeoutSeconds() bool
func (*CaresDnsResolverConfig) HasQueryTries ¶
func (x *CaresDnsResolverConfig) HasQueryTries() bool
func (*CaresDnsResolverConfig) HasUdpMaxQueries ¶
func (x *CaresDnsResolverConfig) HasUdpMaxQueries() bool
func (*CaresDnsResolverConfig) ProtoMessage ¶
func (*CaresDnsResolverConfig) ProtoMessage()
func (*CaresDnsResolverConfig) ProtoReflect ¶
func (x *CaresDnsResolverConfig) ProtoReflect() protoreflect.Message
func (*CaresDnsResolverConfig) Reset ¶
func (x *CaresDnsResolverConfig) Reset()
func (*CaresDnsResolverConfig) SetDnsResolverOptions ¶
func (x *CaresDnsResolverConfig) SetDnsResolverOptions(v *v3.DnsResolverOptions)
func (*CaresDnsResolverConfig) SetEdns0MaxPayloadSize ¶
func (x *CaresDnsResolverConfig) SetEdns0MaxPayloadSize(v *wrapperspb.UInt32Value)
func (*CaresDnsResolverConfig) SetFilterUnroutableFamilies ¶
func (x *CaresDnsResolverConfig) SetFilterUnroutableFamilies(v bool)
func (*CaresDnsResolverConfig) SetMaxUdpChannelDuration ¶
func (x *CaresDnsResolverConfig) SetMaxUdpChannelDuration(v *durationpb.Duration)
func (*CaresDnsResolverConfig) SetQueryTimeoutSeconds ¶
func (x *CaresDnsResolverConfig) SetQueryTimeoutSeconds(v *wrapperspb.UInt64Value)
func (*CaresDnsResolverConfig) SetQueryTries ¶
func (x *CaresDnsResolverConfig) SetQueryTries(v *wrapperspb.UInt32Value)
func (*CaresDnsResolverConfig) SetReinitChannelOnTimeout ¶
func (x *CaresDnsResolverConfig) SetReinitChannelOnTimeout(v bool)
func (*CaresDnsResolverConfig) SetResolvers ¶
func (x *CaresDnsResolverConfig) SetResolvers(v []*v3.Address)
func (*CaresDnsResolverConfig) SetRotateNameservers ¶
func (x *CaresDnsResolverConfig) SetRotateNameservers(v bool)
func (*CaresDnsResolverConfig) SetUdpMaxQueries ¶
func (x *CaresDnsResolverConfig) SetUdpMaxQueries(v *wrapperspb.UInt32Value)
func (*CaresDnsResolverConfig) SetUseResolversAsFallback ¶
func (x *CaresDnsResolverConfig) SetUseResolversAsFallback(v bool)
func (*CaresDnsResolverConfig) String ¶
func (x *CaresDnsResolverConfig) String() string
type CaresDnsResolverConfig_builder ¶
type CaresDnsResolverConfig_builder struct {
// A list of DNS resolver addresses.
// :ref:`use_resolvers_as_fallback <envoy_v3_api_field_extensions.network.dns_resolver.cares.v3.CaresDnsResolverConfig.use_resolvers_as_fallback>`
// below dictates if the DNS client should override system defaults or only use the provided
// resolvers if the system defaults are not available, i.e., as a fallback.
Resolvers []*v3.Address
// If true use the resolvers listed in the
// :ref:`resolvers <envoy_v3_api_field_extensions.network.dns_resolver.cares.v3.CaresDnsResolverConfig.resolvers>`
// field only if c-ares is unable to obtain a
// nameserver from the system (e.g., “/etc/resolv.conf“).
// Otherwise, the resolvers listed in the resolvers list will override the default system
// resolvers. Defaults to false.
UseResolversAsFallback bool
// The resolver will query available network interfaces and determine if there are no available
// interfaces for a given IP family. It will then filter these addresses from the results it
// presents. e.g., if there are no available IPv4 network interfaces, the resolver will not
// provide IPv4 addresses.
FilterUnroutableFamilies bool
// Configuration of DNS resolver option flags which control the behavior of the DNS resolver.
DnsResolverOptions *v3.DnsResolverOptions
// This option allows the number of UDP based DNS queries to be capped.
//
// .. note::
//
// This is only applicable to c-ares DNS resolver currently.
UdpMaxQueries *wrapperspb.UInt32Value
// The number of seconds each name server is given to respond to a query on the first try of any given server.
//
// .. note::
//
// While the c-ares library defaults to 2 seconds, Envoy's default (if this field is unset) is 5 seconds.
// This adjustment was made to maintain the previous behavior after users reported an increase in DNS resolution times.
QueryTimeoutSeconds *wrapperspb.UInt64Value
// The maximum number of query attempts the resolver will make before giving up.
// Each attempt may use a different name server.
//
// .. note::
//
// While the c-ares library defaults to 3 attempts, Envoy's default (if this field is unset) is 4 attempts.
// This adjustment was made to maintain the previous behavior after users reported an increase in DNS resolution times.
QueryTries *wrapperspb.UInt32Value
// Enable round-robin selection of name servers for DNS resolution. When enabled, the resolver will cycle through the
// list of name servers for each resolution request. This can help distribute the query load across multiple name
// servers. If disabled (default), the resolver will try name servers in the order they are configured.
//
// .. note::
//
// This setting overrides any system configuration for name server rotation.
RotateNameservers bool
// Maximum EDNS0 UDP payload size in bytes.
// If set, c-ares will include EDNS0 in DNS queries and use this value as the maximum UDP response size.
//
// Recommended values:
//
// * **1232**: Safe default (avoids fragmentation).
// * **4096**: Maximum allowed.
//
// If unset, c-ares uses its internal default (usually 1232).
Edns0MaxPayloadSize *wrapperspb.UInt32Value
// The maximum duration for which a UDP channel will be kept alive before being refreshed.
//
// If set, the DNS resolver will periodically reinitialize its c-ares channel after the
// specified duration. This can help with avoiding stale socket states, and providing
// better load distribution across UDP ports.
//
// If not specified, no periodic refresh will be performed.
MaxUdpChannelDuration *durationpb.Duration
// If true, reinitialize the c-ares channel when a DNS query fails with “ARES_ETIMEOUT“.
//
// This can help recover from rare cases where the UDP sockets held by the c-ares
// channel become unusable after timeouts, causing subsequent queries to fail or
// Envoy to keep serving stale DNS results. When enabled, a timeout-triggered
// reinitialization attempts to restore healthy state quickly. In environments
// where timeouts are caused by intermittent network issues, enabling this may
// increase channel churn; consider using
// :ref:`max_udp_channel_duration <envoy_v3_api_field_extensions.network.dns_resolver.cares.v3.CaresDnsResolverConfig.max_udp_channel_duration>`
// for periodic refresh instead.
//
// Default is false.
ReinitChannelOnTimeout bool
// contains filtered or unexported fields
}
func (CaresDnsResolverConfig_builder) Build ¶
func (b0 CaresDnsResolverConfig_builder) Build() *CaresDnsResolverConfig
Source Files
¶
- cares_dns_resolver.pb.go
Click to show internal directories.
Click to hide internal directories.