.. _envoy_v3_api_file_envoy/config/core/v3/address.proto: Network addresses ================= .. _envoy_v3_api_msg_config.core.v3.Pipe: config.core.v3.Pipe ------------------- `[config.core.v3.Pipe proto] <https://github.com/envoyproxy/envoy/blob/v1.16.3/api/envoy/config/core/v3/address.proto#L19>`_ .. code-block:: json { "path": "...", "mode": "..." } .. _envoy_v3_api_field_config.core.v3.Pipe.path: path (`string <https://developers.google.com/protocol-buffers/docs/proto#scalar>`_, *REQUIRED*) Unix Domain Socket path. On Linux, paths starting with '@' will use the abstract namespace. The starting '@' is replaced by a null byte by Envoy. Paths starting with '@' will result in an error in environments other than Linux. .. _envoy_v3_api_field_config.core.v3.Pipe.mode: mode (`uint32 <https://developers.google.com/protocol-buffers/docs/proto#scalar>`_) The mode for the Pipe. Not applicable for abstract sockets. .. _envoy_v3_api_msg_config.core.v3.SocketAddress: config.core.v3.SocketAddress ---------------------------- `[config.core.v3.SocketAddress proto] <https://github.com/envoyproxy/envoy/blob/v1.16.3/api/envoy/config/core/v3/address.proto#L45>`_ .. code-block:: json { "protocol": "...", "address": "...", "port_value": "...", "named_port": "...", "resolver_name": "...", "ipv4_compat": "..." } .. _envoy_v3_api_field_config.core.v3.SocketAddress.protocol: protocol (:ref:`config.core.v3.SocketAddress.Protocol <envoy_v3_api_enum_config.core.v3.SocketAddress.Protocol>`) .. _envoy_v3_api_field_config.core.v3.SocketAddress.address: address (`string <https://developers.google.com/protocol-buffers/docs/proto#scalar>`_, *REQUIRED*) The address for this socket. :ref:`Listeners <config_listeners>` will bind to the address. An empty address is not allowed. Specify ``0.0.0.0`` or ``::`` to bind to any address. When used within an upstream :ref:`BindConfig <envoy_v3_api_msg_config.core.v3.BindConfig>`, the address controls the source address of outbound connections. For :ref:`clusters <envoy_v3_api_msg_config.cluster.v3.Cluster>`, the cluster type determines whether the address must be an IP (*STATIC* or *EDS* clusters) or a hostname resolved by DNS (*STRICT_DNS* or *LOGICAL_DNS* clusters). Address resolution can be customized via :ref:`resolver_name <envoy_v3_api_field_config.core.v3.SocketAddress.resolver_name>`. .. _envoy_v3_api_field_config.core.v3.SocketAddress.port_value: port_value (`uint32 <https://developers.google.com/protocol-buffers/docs/proto#scalar>`_) Precisely one of :ref:`port_value <envoy_v3_api_field_config.core.v3.SocketAddress.port_value>`, :ref:`named_port <envoy_v3_api_field_config.core.v3.SocketAddress.named_port>` must be set. .. _envoy_v3_api_field_config.core.v3.SocketAddress.named_port: named_port (`string <https://developers.google.com/protocol-buffers/docs/proto#scalar>`_) This is only valid if :ref:`resolver_name <envoy_v3_api_field_config.core.v3.SocketAddress.resolver_name>` is specified below and the named resolver is capable of named port resolution. Precisely one of :ref:`port_value <envoy_v3_api_field_config.core.v3.SocketAddress.port_value>`, :ref:`named_port <envoy_v3_api_field_config.core.v3.SocketAddress.named_port>` must be set. .. _envoy_v3_api_field_config.core.v3.SocketAddress.resolver_name: resolver_name (`string <https://developers.google.com/protocol-buffers/docs/proto#scalar>`_) The name of the custom resolver. This must have been registered with Envoy. If this is empty, a context dependent default applies. If the address is a concrete IP address, no resolution will occur. If address is a hostname this should be set for resolution other than DNS. Specifying a custom resolver with *STRICT_DNS* or *LOGICAL_DNS* will generate an error at runtime. .. _envoy_v3_api_field_config.core.v3.SocketAddress.ipv4_compat: ipv4_compat (`bool <https://developers.google.com/protocol-buffers/docs/proto#scalar>`_) When binding to an IPv6 address above, this enables `IPv4 compatibility <https://tools.ietf.org/html/rfc3493#page-11>`_. Binding to ``::`` will allow both IPv4 and IPv6 connections, with peer IPv4 addresses mapped into IPv6 space as ``::FFFF:<IPv4-address>``. .. _envoy_v3_api_enum_config.core.v3.SocketAddress.Protocol: Enum config.core.v3.SocketAddress.Protocol ------------------------------------------ `[config.core.v3.SocketAddress.Protocol proto] <https://github.com/envoyproxy/envoy/blob/v1.16.3/api/envoy/config/core/v3/address.proto#L48>`_ .. _envoy_v3_api_enum_value_config.core.v3.SocketAddress.Protocol.TCP: TCP *(DEFAULT)* .. _envoy_v3_api_enum_value_config.core.v3.SocketAddress.Protocol.UDP: UDP .. _envoy_v3_api_msg_config.core.v3.TcpKeepalive: config.core.v3.TcpKeepalive --------------------------- `[config.core.v3.TcpKeepalive proto] <https://github.com/envoyproxy/envoy/blob/v1.16.3/api/envoy/config/core/v3/address.proto#L93>`_ .. code-block:: json { "keepalive_probes": "{...}", "keepalive_time": "{...}", "keepalive_interval": "{...}" } .. _envoy_v3_api_field_config.core.v3.TcpKeepalive.keepalive_probes: keepalive_probes (`UInt32Value <https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#uint32value>`_) Maximum number of keepalive probes to send without response before deciding the connection is dead. Default is to use the OS level configuration (unless overridden, Linux defaults to 9.) .. _envoy_v3_api_field_config.core.v3.TcpKeepalive.keepalive_time: keepalive_time (`UInt32Value <https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#uint32value>`_) The number of seconds a connection needs to be idle before keep-alive probes start being sent. Default is to use the OS level configuration (unless overridden, Linux defaults to 7200s (i.e., 2 hours.) .. _envoy_v3_api_field_config.core.v3.TcpKeepalive.keepalive_interval: keepalive_interval (`UInt32Value <https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#uint32value>`_) The number of seconds between keep-alive probes. Default is to use the OS level configuration (unless overridden, Linux defaults to 75s.) .. _envoy_v3_api_msg_config.core.v3.BindConfig: config.core.v3.BindConfig ------------------------- `[config.core.v3.BindConfig proto] <https://github.com/envoyproxy/envoy/blob/v1.16.3/api/envoy/config/core/v3/address.proto#L111>`_ .. code-block:: json { "source_address": "{...}", "freebind": "{...}", "socket_options": [] } .. _envoy_v3_api_field_config.core.v3.BindConfig.source_address: source_address (:ref:`config.core.v3.SocketAddress <envoy_v3_api_msg_config.core.v3.SocketAddress>`, *REQUIRED*) The address to bind to when creating a socket. .. _envoy_v3_api_field_config.core.v3.BindConfig.freebind: freebind (`BoolValue <https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#boolvalue>`_) Whether to set the *IP_FREEBIND* option when creating the socket. When this flag is set to true, allows the :ref:`source_address <envoy_v3_api_field_config.cluster.v3.UpstreamBindConfig.source_address>` to be an IP address that is not configured on the system running Envoy. When this flag is set to false, the option *IP_FREEBIND* is disabled on the socket. When this flag is not set (default), the socket is not modified, i.e. the option is neither enabled nor disabled. .. _envoy_v3_api_field_config.core.v3.BindConfig.socket_options: socket_options (:ref:`config.core.v3.SocketOption <envoy_v3_api_msg_config.core.v3.SocketOption>`) Additional socket options that may not be present in Envoy source code or precompiled binaries. .. _envoy_v3_api_msg_config.core.v3.Address: config.core.v3.Address ---------------------- `[config.core.v3.Address proto] <https://github.com/envoyproxy/envoy/blob/v1.16.3/api/envoy/config/core/v3/address.proto#L134>`_ Addresses specify either a logical or physical address and port, which are used to tell Envoy where to bind/listen, connect to upstream and find management servers. .. code-block:: json { "socket_address": "{...}", "pipe": "{...}" } .. _envoy_v3_api_field_config.core.v3.Address.socket_address: socket_address (:ref:`config.core.v3.SocketAddress <envoy_v3_api_msg_config.core.v3.SocketAddress>`) Precisely one of :ref:`socket_address <envoy_v3_api_field_config.core.v3.Address.socket_address>`, :ref:`pipe <envoy_v3_api_field_config.core.v3.Address.pipe>` must be set. .. _envoy_v3_api_field_config.core.v3.Address.pipe: pipe (:ref:`config.core.v3.Pipe <envoy_v3_api_msg_config.core.v3.Pipe>`) Precisely one of :ref:`socket_address <envoy_v3_api_field_config.core.v3.Address.socket_address>`, :ref:`pipe <envoy_v3_api_field_config.core.v3.Address.pipe>` must be set. .. _envoy_v3_api_msg_config.core.v3.CidrRange: config.core.v3.CidrRange ------------------------ `[config.core.v3.CidrRange proto] <https://github.com/envoyproxy/envoy/blob/v1.16.3/api/envoy/config/core/v3/address.proto#L151>`_ CidrRange specifies an IP Address and a prefix length to construct the subnet mask for a `CIDR <https://tools.ietf.org/html/rfc4632>`_ range. .. code-block:: json { "address_prefix": "...", "prefix_len": "{...}" } .. _envoy_v3_api_field_config.core.v3.CidrRange.address_prefix: address_prefix (`string <https://developers.google.com/protocol-buffers/docs/proto#scalar>`_, *REQUIRED*) IPv4 or IPv6 address, e.g. ``192.0.0.0`` or ``2001:db8::``. .. _envoy_v3_api_field_config.core.v3.CidrRange.prefix_len: prefix_len (`UInt32Value <https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#uint32value>`_) Length of prefix, e.g. 0, 32.