caresv3

package
v1.36.11-2026042420273... Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: unknown License: Apache-2.0 Imports: 9 Imported by: 0

Documentation

Index

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

Source Files

  • cares_dns_resolver.pb.go

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL