Network addresses (proto)

config.core.v3.Pipe

[config.core.v3.Pipe proto]

{
  "path": ...,
  "mode": ...
}
path

(string, 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.

mode

(uint32) The mode for the Pipe. Not applicable for abstract sockets.

config.core.v3.EnvoyInternalAddress

[config.core.v3.EnvoyInternalAddress proto]

The address represents an envoy internal listener.

{
  "server_listener_name": ...,
  "endpoint_id": ...
}
server_listener_name

(string, REQUIRED) Specifies the name of the internal listener.

endpoint_id

(string) Specifies an endpoint identifier to distinguish between multiple endpoints for the same internal listener in a single upstream pool. Only used in the upstream addresses for tracking changes to individual endpoints. This, for example, may be set to the final destination IP for the target internal listener.

config.core.v3.SocketAddress

[config.core.v3.SocketAddress proto]

{
  "protocol": ...,
  "address": ...,
  "port_value": ...,
  "named_port": ...,
  "resolver_name": ...,
  "ipv4_compat": ...
}
protocol

(config.core.v3.SocketAddress.Protocol)

address

(string, REQUIRED) The address for this socket. 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 BindConfig, the address controls the source address of outbound connections. For clusters, 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 resolver_name.

port_value

(uint32)

Precisely one of port_value, named_port must be set.

named_port

(string) This is only valid if resolver_name is specified below and the named resolver is capable of named port resolution.

Precisely one of port_value, named_port must be set.

resolver_name

(string) 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.

ipv4_compat

(bool) When binding to an IPv6 address above, this enables IPv4 compatibility. Binding to :: will allow both IPv4 and IPv6 connections, with peer IPv4 addresses mapped into IPv6 space as ::FFFF:<IPv4-address>.

Enum config.core.v3.SocketAddress.Protocol

[config.core.v3.SocketAddress.Protocol proto]

TCP

(DEFAULT)

UDP

config.core.v3.TcpKeepalive

[config.core.v3.TcpKeepalive proto]

{
  "keepalive_probes": {...},
  "keepalive_time": {...},
  "keepalive_interval": {...}
}
keepalive_probes

(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.)

keepalive_time

(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.)

keepalive_interval

(UInt32Value) The number of seconds between keep-alive probes. Default is to use the OS level configuration (unless overridden, Linux defaults to 75s.)

config.core.v3.ExtraSourceAddress

[config.core.v3.ExtraSourceAddress proto]

{
  "address": {...}
}
address

(config.core.v3.SocketAddress, REQUIRED) The additional address to bind.

config.core.v3.BindConfig

[config.core.v3.BindConfig proto]

{
  "source_address": {...},
  "freebind": {...},
  "socket_options": [],
  "extra_source_addresses": [],
  "additional_source_addresses": []
}
source_address

(config.core.v3.SocketAddress, REQUIRED) The address to bind to when creating a socket.

freebind

(BoolValue) Whether to set the IP_FREEBIND option when creating the socket. When this flag is set to true, allows the 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.

socket_options

(repeated config.core.v3.SocketOption) Additional socket options that may not be present in Envoy source code or precompiled binaries.

extra_source_addresses

(repeated config.core.v3.ExtraSourceAddress) Extra source addresses appended to the address specified in the source_address field. This enables to specify multiple source addresses. Currently, only one extra address can be supported, and the extra address should have a different IP version with the address in the source_address field. The address which has the same IP version with the target host’s address IP version will be used as bind address. If more than one extra address specified, only the first address matched IP version will be returned. If there is no same IP version address found, the address in the source_address will be returned.

additional_source_addresses

(repeated config.core.v3.SocketAddress) Deprecated by extra_source_addresses

config.core.v3.Address

[config.core.v3.Address proto]

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.

{
  "socket_address": {...},
  "pipe": {...},
  "envoy_internal_address": {...}
}
socket_address

(config.core.v3.SocketAddress)

Precisely one of socket_address, pipe, envoy_internal_address must be set.

pipe

(config.core.v3.Pipe)

Precisely one of socket_address, pipe, envoy_internal_address must be set.

envoy_internal_address

(config.core.v3.EnvoyInternalAddress) Specifies a user-space address handled by internal listeners.

Precisely one of socket_address, pipe, envoy_internal_address must be set.

config.core.v3.CidrRange

[config.core.v3.CidrRange proto]

CidrRange specifies an IP Address and a prefix length to construct the subnet mask for a CIDR range.

{
  "address_prefix": ...,
  "prefix_len": {...}
}
address_prefix

(string, REQUIRED) IPv4 or IPv6 address, e.g. 192.0.0.0 or 2001:db8::.

prefix_len

(UInt32Value) Length of prefix, e.g. 0, 32. Defaults to 0 when unset.