網路位址 (proto)
config.core.v3.Pipe
{
"path": ...,
"mode": ...
}
- 路徑
(字串,必要) Unix Domain Socket 路徑。在 Linux 上,以「@」開頭的路徑將使用抽象命名空間。Envoy 會將開頭的「@」替換為空位元組。在 Linux 以外的環境中,以「@」開頭的路徑將導致錯誤。
- 模式
(uint32) Pipe 的模式。不適用於抽象 socket。
config.core.v3.EnvoyInternalAddress
[config.core.v3.EnvoyInternalAddress proto]
位址表示 Envoy 內部監聽器。
{
"server_listener_name": ...,
"endpoint_id": ...
}
- endpoint_id
(字串) 指定端點識別碼,以區分單一上游池中相同內部監聽器的多個端點。僅用於上游位址,以追蹤對個別端點的變更。例如,這可以設定為目標內部監聽器的最終目的地 IP。
config.core.v3.SocketAddress
[config.core.v3.SocketAddress proto]
{
"protocol": ...,
"address": ...,
"port_value": ...,
"named_port": ...,
"resolver_name": ...,
"ipv4_compat": ...
}
- 位址
(字串,必要) 此 socket 的位址。監聽器將會繫結到此位址。不允許使用空的位址。指定
0.0.0.0
或::
以繫結到任何位址。當在 BindConfig 上游使用時,此位址控制連出的連線的來源位址。對於 叢集,叢集類型決定位址必須是 IP (STATIC
或EDS
叢集) 或由 DNS 解析的主機名稱 (STRICT_DNS
或LOGICAL_DNS
叢集)。位址解析可以透過 resolver_name 自訂。
- port_value
(uint32)
必須設定 port_value 或 named_port 其中之一。
- named_port
(字串) 僅當下方指定 resolver_name,且已命名的解析器能夠解析已命名埠時,此值才有效。
必須設定 port_value 或 named_port 其中之一。
- resolver_name
(字串) 自訂解析器的名稱。此名稱必須已在 Envoy 中註冊。如果此值為空,則會套用上下文相關的預設值。如果位址是具體的 IP 位址,則不會進行解析。如果位址是主機名稱,則應設定此值,以進行 DNS 以外的解析。使用
STRICT_DNS
或LOGICAL_DNS
指定自訂解析器會在執行階段產生錯誤。
列舉 config.core.v3.SocketAddress.Protocol
[config.core.v3.SocketAddress.Protocol proto]
- TCP
(預設)
- UDP
config.core.v3.TcpKeepalive
[config.core.v3.TcpKeepalive proto]
{
"keepalive_probes": {...},
"keepalive_time": {...},
"keepalive_interval": {...}
}
- keepalive_probes
(UInt32Value) 在判斷連線已中斷之前,傳送而無回應的 keepalive 探測次數上限。預設是使用作業系統層級組態 (除非覆寫,Linux 預設為 9)。
- keepalive_time
(UInt32Value) 連線需要在閒置多少秒後才開始傳送 keep-alive 探測。預設是使用作業系統層級組態 (除非覆寫,Linux 預設為 7200 秒 (即 2 小時)。
- keepalive_interval
(UInt32Value) keep-alive 探測之間的秒數。預設是使用作業系統層級組態 (除非覆寫,Linux 預設為 75 秒)。
config.core.v3.ExtraSourceAddress
[config.core.v3.ExtraSourceAddress proto]
{
"address": {...},
"socket_options": {...}
}
- 位址
(config.core.v3.SocketAddress,必要) 要繫結的其他位址。
- socket_options
(config.core.v3.SocketOptionsOverride) 可能不存在於 Envoy 原始碼或預先編譯二進位檔中的其他 socket 選項。如果指定,這會覆寫 BindConfig 中的 socket_options。如果指定時沒有 socket_options 或 socket_options 的空清單,則表示不會套用任何 socket 選項。
config.core.v3.BindConfig
[config.core.v3.BindConfig proto]
{
"source_address": {...},
"freebind": {...},
"socket_options": [],
"extra_source_addresses": [],
"additional_source_addresses": [],
"local_address_selector": {...}
}
- source_address
(config.core.v3.SocketAddress) 建立 socket 時要繫結的位址。
- freebind
(BoolValue) 是否在建立 socket 時設定
IP_FREEBIND
選項。當此旗標設定為 true 時,允許 source_address 為未在執行 Envoy 的系統上組態的 IP 位址。當此旗標設定為 false 時,會在 socket 上停用IP_FREEBIND
選項。當未設定此旗標 (預設) 時,不會修改 socket,即不會啟用或停用選項。
- socket_options
(重複 config.core.v3.SocketOption) 可能不存在於 Envoy 原始碼或預先編譯二進位檔中的其他 socket 選項。
- extra_source_addresses
(重複 config.core.v3.ExtraSourceAddress) 附加到
source_address
欄位中指定位址的其他來源位址。這允許指定多個來源位址。來源位址的選取由 local_address_selector 決定。
- additional_source_addresses
(repeated config.core.v3.SocketAddress) 已被 extra_source_addresses 取代。
- local_address_selector
(config.core.v3.TypedExtensionConfig) 自訂本地位址選擇器,以覆寫預設值 (即 DefaultLocalAddressSelector)。
config.core.v3.Address
[config.core.v3.Address proto]
位址指定邏輯或實體位址和埠,用於告知 Envoy 綁定/監聽的位置、連線到上游以及尋找管理伺服器。
{
"socket_address": {...},
"pipe": {...},
"envoy_internal_address": {...}
}
- socket_address
(config.core.v3.SocketAddress)
必須設定 socket_address、pipe 或 envoy_internal_address 中的其中一個。
- pipe
-
必須設定 socket_address、pipe 或 envoy_internal_address 中的其中一個。
- envoy_internal_address
(config.core.v3.EnvoyInternalAddress) 指定由內部監聽器處理的使用者空間位址。
必須設定 socket_address、pipe 或 envoy_internal_address 中的其中一個。
config.core.v3.CidrRange
[config.core.v3.CidrRange proto]
CidrRange 指定 IP 位址和前綴長度,以建構 CIDR 範圍的子網路遮罩。
{
"address_prefix": ...,
"prefix_len": {...}
}
- address_prefix
(字串,必要) IPv4 或 IPv6 位址,例如
192.0.0.0
或2001:db8::
。
- prefix_len
(UInt32Value) 前綴長度,例如 0、32。未設定時預設為 0。