.. _envoy_api_file_envoy/data/dns/v2alpha/dns_table.proto:

DNS Filter Table Data
=====================

.. warning::
   This API is work-in-progress and is subject to breaking changes.

:ref:`DNS Filter config overview <config_udp_listener_filters_dns_filter>`.

.. _envoy_api_msg_data.dns.v2alpha.DnsTable:

data.dns.v2alpha.DnsTable
-------------------------

`[data.dns.v2alpha.DnsTable proto] <https://github.com/envoyproxy/envoy/blob/v1.14.4/api/envoy/data/dns/v2alpha/dns_table.proto#L22>`_

This message contains the configuration for the DNS Filter if populated
from the control plane

.. code-block:: json

  {
    "external_retry_count": "...",
    "virtual_domains": [],
    "known_suffixes": []
  }

.. _envoy_api_field_data.dns.v2alpha.DnsTable.external_retry_count:

external_retry_count
  (`uint32 <https://developers.google.com/protocol-buffers/docs/proto#scalar>`_) Control how many times envoy makes an attempt to forward a query to
  an external server
  
  
.. _envoy_api_field_data.dns.v2alpha.DnsTable.virtual_domains:

virtual_domains
  (:ref:`data.dns.v2alpha.DnsTable.DnsVirtualDomain <envoy_api_msg_data.dns.v2alpha.DnsTable.DnsVirtualDomain>`, *REQUIRED*) Fully qualified domain names for which Envoy will respond to queries
  
  
.. _envoy_api_field_data.dns.v2alpha.DnsTable.known_suffixes:

known_suffixes
  (:ref:`type.matcher.StringMatcher <envoy_api_msg_type.matcher.StringMatcher>`) This field serves to help Envoy determine whether it can authoritatively
  answer a query for a name matching a suffix in this list. If the query
  name does not match a suffix in this list, Envoy will forward
  the query to an upstream DNS server
  
  
.. _envoy_api_msg_data.dns.v2alpha.DnsTable.AddressList:

data.dns.v2alpha.DnsTable.AddressList
-------------------------------------

`[data.dns.v2alpha.DnsTable.AddressList proto] <https://github.com/envoyproxy/envoy/blob/v1.14.4/api/envoy/data/dns/v2alpha/dns_table.proto#L24>`_

This message contains a list of IP addresses returned for a query for a known name

.. code-block:: json

  {
    "address": []
  }

.. _envoy_api_field_data.dns.v2alpha.DnsTable.AddressList.address:

address
  (`string <https://developers.google.com/protocol-buffers/docs/proto#scalar>`_, *REQUIRED*) This field contains a well formed IP address that is returned
  in the answer for a name query. The address field can be an
  IPv4 or IPv6 address. Address family detection is done automatically
  when Envoy parses the string. Since this field is repeated,
  Envoy will return one randomly chosen entry from this list in the
  DNS response. The random index will vary per query so that we prevent
  clients pinning on a single address for a configured domain
  
  


.. _envoy_api_msg_data.dns.v2alpha.DnsTable.DnsEndpoint:

data.dns.v2alpha.DnsTable.DnsEndpoint
-------------------------------------

`[data.dns.v2alpha.DnsTable.DnsEndpoint proto] <https://github.com/envoyproxy/envoy/blob/v1.14.4/api/envoy/data/dns/v2alpha/dns_table.proto#L41>`_

This message type is extensible and can contain a list of addresses
or dictate some other method for resolving the addresses for an
endpoint

.. code-block:: json

  {
    "address_list": "{...}"
  }

.. _envoy_api_field_data.dns.v2alpha.DnsTable.DnsEndpoint.address_list:

address_list
  (:ref:`data.dns.v2alpha.DnsTable.AddressList <envoy_api_msg_data.dns.v2alpha.DnsTable.AddressList>`, *REQUIRED*) 
  
  


.. _envoy_api_msg_data.dns.v2alpha.DnsTable.DnsVirtualDomain:

data.dns.v2alpha.DnsTable.DnsVirtualDomain
------------------------------------------

`[data.dns.v2alpha.DnsTable.DnsVirtualDomain proto] <https://github.com/envoyproxy/envoy/blob/v1.14.4/api/envoy/data/dns/v2alpha/dns_table.proto#L49>`_


.. code-block:: json

  {
    "name": "...",
    "endpoint": "{...}",
    "answer_ttl": "{...}"
  }

.. _envoy_api_field_data.dns.v2alpha.DnsTable.DnsVirtualDomain.name:

name
  (`string <https://developers.google.com/protocol-buffers/docs/proto#scalar>`_) The domain name for which Envoy will respond to query requests
  
  
.. _envoy_api_field_data.dns.v2alpha.DnsTable.DnsVirtualDomain.endpoint:

endpoint
  (:ref:`data.dns.v2alpha.DnsTable.DnsEndpoint <envoy_api_msg_data.dns.v2alpha.DnsTable.DnsEndpoint>`) The configuration containing the method to determine the address
  of this endpoint
  
  
.. _envoy_api_field_data.dns.v2alpha.DnsTable.DnsVirtualDomain.answer_ttl:

answer_ttl
  (`Duration <https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#duration>`_) Sets the TTL in dns answers from Envoy returned to the client