XFF 原 IP 检测扩展(proto)

extensions.http.original_ip_detection.xff.v3.XffConfig

[extensions.http.original_ip_detection.xff.v3.XffConfig proto]

此扩展允许通过读取 x-forwarded-for 标头来检测原始下游远程 IP。

此扩展的限定名称为 envoy.http.original_ip_detection.xff

注意

此扩展旨在对不受信任的下游流量具有鲁棒性。它假定上游是可信的。

提示

此扩展扩展并可与以下扩展类别一起使用

此扩展必须使用以下类型 URL 之一配置

{
  "xff_num_trusted_hops": ...,
  "xff_trusted_cidrs": {...},
  "skip_xff_append": {...}
}
xff_num_trusted_hops

(uint32) 当确定源客户端的 IP 地址时,要信任的 x-forwarded-for HTTP 标头右侧的额外入口代理跃点数量。如果未指定此选项,则默认值为零。有关更多信息,请参阅 x-forwarded-for 的文档。

只能设置 xff_num_trusted_hopsxff_trusted_cidrs 之一。

xff_trusted_cidrs

(extensions.http.original_ip_detection.xff.v3.XffTrustedCidrs) 当评估远程 IP 地址以确定源客户端的 IP 地址时要信任的 CIDR 范围。这用于代替 use_remote_address。当远程 IP 地址与受信任的 CIDR 匹配且发送了 x-forwarded-for 标头时,将从右到左评估 x-forwarded-for 标头中的每个条目,并将第一个公共不受信任的地址用作原始客户端地址。如果 x-forwarded-for 中的所有地址都在受信任列表中,则使用第一个(最左边的)条目。

这通常用于请求通过 CDN 代理时。

只能设置 xff_num_trusted_hopsxff_trusted_cidrs 之一。

skip_xff_append

(BoolValue) 如果设置,Envoy 不会将远程地址追加到 x-forwarded-for HTTP 标头。

注意

为了获得正确的代理行为,不建议设置此选项。为了向后兼容,如果未设置此选项,则默认值为 true。

这仅在 use_remote_address 为 false 时适用,否则 skip_xff_append 适用。

extensions.http.original_ip_detection.xff.v3.XffTrustedCidrs

[extensions.http.original_ip_detection.xff.v3.XffTrustedCidrs proto]

{
  "cidrs": []
}
cidrs

(repeated config.core.v3.CidrRange) 来自远程连接被视为可信的 CIDR 列表。