You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Title: DNS query sent out when the request with IPv6 address in authority - with HTTP dynamic forward proxy
Description:
When the http request with IPv6 address in authority such as http://[fd00:bada:194:99::98]:8285/test, the address can be directly used but the DNS query
Note: The Envoy_collect tool
gathers a tarball with debug logs, config and the following admin
endpoints: /stats, /clusters and /server_info. Please note if there are
privacy concerns, sanitize the data prior to sharing the tarball/pasting.
Admin and Stats Output:
Include the admin output for the following endpoints: /stats,
/clusters, /routes, /server_info. For more information, refer to the admin endpoint documentation.
Note: If there are privacy concerns, sanitize the data prior to
sharing.
Config:
Include the config used to configure Envoy.
Logs:
Include the access logs and the Envoy logs.
Reference to the code envoy/source/extensions/network/dns_resolver/cares/dns_impl.cc, it seems to be related with the below code logic.
DnsResolverImpl::AddrInfoPendingResolution::AddrInfoPendingResolution(
DnsResolverImpl& parent, ResolveCb callback, Event::Dispatcher& dispatcher,
ares_channel channel, const std::string& dns_name, DnsLookupFamily dns_lookup_family)
: PendingResolution(parent, callback, dispatcher, channel, dns_name),
dns_lookup_family_(dns_lookup_family), available_interfaces_(availableInterfaces()) {
if (dns_lookup_family == DnsLookupFamily::Auto ||
dns_lookup_family == DnsLookupFamily::V4Preferred) {
dual_resolution_ = true;
}
switch (dns_lookup_family_) {
case DnsLookupFamily::V4Only:
case DnsLookupFamily::V4Preferred: family_ = AF_INET;
break;
case DnsLookupFamily::V6Only:
case DnsLookupFamily::Auto:
family_ = AF_INET6;
break;
case DnsLookupFamily::All:
family_ = AF_UNSPEC;
break;
}
}
Note: If there are privacy concerns, sanitize the data prior to
sharing.
Title: DNS query sent out when the request with IPv6 address in authority - with HTTP dynamic forward proxy
Description:
Repro steps:
Filter - key config:
"http_filters": [
{
"name": "envoy.filters.http.dynamic_forward_proxy",
"typed_config": {
"@type": "type.googleapis.com/envoy.extensions.filters.http.dynamic_forward_proxy.v3.FilterConfig",
"dns_cache_config": {
"name": "dynamic_forward_proxy_cache_config",
"host_ttl": "7200s",
"dns_lookup_family": "V4_PREFERRED"
}
}
},
Cluster -key config:
"typed_config": {
"@type": "type.googleapis.com/envoy.extensions.clusters.dynamic_forward_proxy.v3.ClusterConfig",
"dns_cache_config": {
"name": "dynamic_forward_proxy_cache_config",
"host_ttl": "7200s",
"dns_lookup_family": "V4_PREFERRED"
},
Admin and Stats Output:
Config:
Logs:
Reference to the code envoy/source/extensions/network/dns_resolver/cares/dns_impl.cc, it seems to be related with the below code logic.
DnsResolverImpl::AddrInfoPendingResolution::AddrInfoPendingResolution(
DnsResolverImpl& parent, ResolveCb callback, Event::Dispatcher& dispatcher,
ares_channel channel, const std::string& dns_name, DnsLookupFamily dns_lookup_family)
: PendingResolution(parent, callback, dispatcher, channel, dns_name),
dns_lookup_family_(dns_lookup_family), available_interfaces_(availableInterfaces()) {
if (dns_lookup_family == DnsLookupFamily::Auto ||
dns_lookup_family == DnsLookupFamily::V4Preferred) {
dual_resolution_ = true;
}
switch (dns_lookup_family_) {
case DnsLookupFamily::V4Only:
case DnsLookupFamily::V4Preferred:
family_ = AF_INET;
break;
case DnsLookupFamily::V6Only:
case DnsLookupFamily::Auto:
family_ = AF_INET6;
break;
case DnsLookupFamily::All:
family_ = AF_UNSPEC;
break;
}
}
Call Stack:
The text was updated successfully, but these errors were encountered: