envoyproxy/envoy

dns_filter: feature req - DNS over TLS

Open

#11 738 ouverte le 24 juin 2020

Voir sur GitHub
 (11 commentaires) (1 réaction) (1 assigné)C++ (5 373 forks)batch import
area/dnshelp wanted

Métriques du dépôt

Stars
 (27 997 stars)
Métriques de merge PR
 (Merge moyen 8j) (378 PRs mergées en 30 j)

Description

Today, the upstream resolver is specified using IP/Port like this:

dns_filter:
   client_config:
      resolver_timeout: 5s
      upstream_resolvers:
        addressList:
        - address: 8.8.8.8, port: 53 #only plaintext dns
      max_pending_lookups: 256

If we allow the specification of upstream resolvers using a cluster name reference, we will get DNS over TLS for free in addition to bunch of other [weird] functionalities. For example,

dns_filter:
   client_config:
      resolver_timeout: 5s
      upstream_resolver_cluster: my_dns_cluster
      max_pending_lookups: 256
...
Clusters:
- name: my_dns_cluster
  type: STATIC
  lbEndpoints:
  - 8.8.8.8, port 853 
  upstreamTLSContext:
  ....

If the request is not satisfied within the resolver_timeout period, then the resolution fails [just like http route timeout]. The question is should there be an API-ish mechanism to constrain the cluster type to just static or should we let the user use any normal cluster (strict_dns, eds, etc.). It doesn't really matter to the client_config as its just consuming the response from the cluster object.

Guide contributeur