Skip to content

GWLB 与 GENEVE:对称检查路径和故障验证 ​

审查依据:AWS Gateway Load Balancer、PrivateLink、TGW 和 NAT 官方文档、RFC 8926 以及厂商集成指南。 最后更新:2026 年 10 月 15 日

GWLB 将原始 IP 流分发到兼容 GENEVE 的安全设备。GWLBE 是使用方 VPC 中的路由目标;检查策略配置在设备上。本指南在 Palo Alto/Fortinet 选型之后,继续验证路径、会话和故障。路由表和验收标准是设计示例,并非完整 IaC 或已部署结果。S24 S27

1. 组件与职责 ​

组件作用检查项
GWLB将 IP 流量送往目标可用区、目标组、粘性和故障转移
GENEVE 目标组设备注册、运行状况和属性GENEVE 端口 6081 以及受支持的 IP/实例目标
设备解封装、检查并重新封装策略、会话、许可、元数据和 MTU
端点服务向使用方 VPC 暴露提供方 GWLB允许的主体、接受操作和所有权
GWLBE使用方 VPC 中的可用区级路由目标子网、可用区、状态和路由
TGW appliance mode每条流使用一个检查连接的 ENI/可用区,双向共用检查 VPC 连接上的有效设置

端点服务权限/接受操作控制连接建立,不负责应用授权或设备策略。跨账户比较物理可用区时,应使用可用区 ID,而不是账户特定的可用区名称。请核对 PrivateLink 要求。

GWLB 不会像 ALB 那样接收安全组。GWLBE 也不支持安全组。 ELB API 的安全组参数适用于 ALB/NLB;端点安全组参数适用于接口端点。应检查设备/工作负载 ENI、NACL、路由和策略。S39 S40

2. GENEVE 是检查传输方式,不是加密 ​

text
Outer IP
  └─ UDP destination port 6081
      └─ GENEVE header + options / AWS metadata
          └─ Original encapsulated traffic

RFC 8926 定义了 GENEVE 标头、VNI、可变选项和 UDP 传输。AWS GWLB 使用 Option Class 0x0108 的 TLV 元数据;设备必须处理 TLV 键值对,GWLB 也使用该元数据选择返回路径上的 GWLBE。应通过受支持的集成保留所需元数据。仅支持通用 GENEVE 并不代表兼容 GWLB。S31 S42 S29

GENEVE 不像 TLS/IPsec 那样加密载荷。即使使用同一端口,Cilium 覆盖网络与 GWLB 封装的用途和路径也不同。检查 TLS 载荷需要设备解密,或在 TLS 终止点实施控制。S31 S24

3. 逻辑上的可用区级出站流量 ​

此顺序图展示了集中式出站流量的一个方向。实际 TGW、GWLBE、设备和 NAT 路径由可用区决定;响应必须沿一致的检查路径返回,才能维持会话。

TGW 连接、端点和 NAT 子网路由表承担不同的职责。将每个子网的默认路由都指向 GWLBE,可能导致已检查的流量再次回到检查路径并形成环路。应将 AWS TGW 检查与 NAT 集成文档结合起来审查。S29 S30

4. 中央检查路由审查 ​

以下是一种集中式 IPv4 出站和 VPC 间检查模式。应根据实际 CIDR、可用区、端点/连接 ID、前缀优先级和现有路由进行审查。使用方的网络连接本身并不能证明所有方向的流量都经过检查。

位置目标示例下一跳/用途
Spoke 工作负载子网其他 Spoke CIDR/外部默认路由TGW
与 Spoke 关联的 TGW 路由表需要检查的 Spoke/外部流量检查 VPC 连接
检查 VPC 的 TGW 连接子网需要检查的目标所选可用区内的 GWLBE
GWLBE 子网Spoke CIDRTGW
GWLBE 子网外部 0.0.0.0/0该可用区内的 NAT 网关
NAT 子网外部 0.0.0.0/0Internet 网关
NAT 子网返回 Spoke CIDR检查 GWLBE
与检查连接关联的 TGW 路由表Spoke CIDR正确的 Spoke 连接,不能再次指回检查连接

请求先经过检查再进行 NAT;响应在反向转换后经过检查,再通过 TGW 返回。遗漏 NAT 子网的返回路由,可能导致只有一个方向被检查或破坏有状态会话。迁移 NAT 时,需要重新检查元组和路由。S29 S30

应在中央检查连接上验证 TGW appliance mode。它会为同一流的双向流量一致地选择一个检查连接 ENI/可用区,取代 TGW 默认优先选择流量来源可用区的行为,并允许跨可用区路由。它不会复制防火墙会话。应将它与 GWLB 目标选择分开验证。S29 S25 S32

互联网入站需要单独设计 ​

对于入站流量插入检查路径,应一并检查 IGW 边缘关联路由、受保护子网路由、GWLBE 子网路由和返回路径。只有 ALB/IGW/GWLBE 的无序示意图并不足够。AWS 记录了 IGW/VGW 网关路由表的限制。应将 ALB 代理的前端和后端连接作为不同的流分别追踪。S28

5. 中央检查范围以外的路径 ​

路径需要单独验证的原因建议的补充控制
同节点 Pod 流量可能不会到达 VPC/TGWCNI、NetworkPolicy 和服务授权
VPC 本地/其他子网本地前缀比默认路由更具体受支持的本地路由设计,或 CNI/安全组控制
对等连接/其他 TGW 连接可能使用不同路由有效路由和连接清单
PrivateLink/网关端点与公有默认出站路由不同IAM、端点/资源策略和应用授权
IPv6/NAT64/代理单靠 IPv4 0.0.0.0/0 不会覆盖服务/设备支持和 ::/0 路径
管理/运行状况流量用途不同于受检查的数据流限制来源并留存记录

在特定条件下,可以将 VPC 本地路由重定向到设备;“不可能实现”和“会自动集中”都不准确。应核实路由类型、受支持的目标和 CIDR 限制。S28

EKS Pod/节点地址、CNI SNAT 和 Security Groups for Pods 模式都会影响可见性和路径。Pod 策略与 VPC 检查路由是不同的配置。S33 S34 S44

6. 粘性和空闲超时 ​

默认粘性使用五元组:源/目标地址、源/目标端口和协议。受支持的替代选项使用三元组(地址对/协议)或二元组(地址对),但启用 TGW appliance mode 时不支持这些模式。此中央检查模式使用五元组粘性。元组字段较少的模式可能导致负载集中;请核查其部署限制和容量。S25

TCP 空闲超时默认为 350 秒;使用五元组粘性时,可以调整为 60–6000 秒。UDP 超时固定为 120 秒。不要假定 TCP 超时调整适用于二元组/三元组模式。应分别检查设备、NAT、应用、TGW 和目标 ENI 的 TcpEstablishedTimeout;较短的 ENI 跟踪超时可能导致连接丢弃,而 GWLB 仍将该连接视为活动连接。S24

TCP 空闲超时后,新 SYN 会启动新流,而旧连接上的数据分组会被丢弃。UDP 超时后到达的分组可以形成新流。较长的超时与跨设备状态共享是两回事。应测试 keepalive、空闲后恢复、长连接 gRPC/WebSocket 和 UDP。S24

7. 运行状况、故障转移与 fail open ​

状态/设置AWS 文档说明的行为运维检查项
一个不健康的目标新流使用可用的健康目标已有流的配置行为
target_failover.on_unhealthy=no_rebalance已有流仍分配给原目标不健康目标可能导致流量黑洞
target_failover.on_unhealthy=rebalance已有流会被重新分配独立设备上的会话可能丢失
注销目标行为遵循 on_deregistration排空连接、缩容和升级
所有目标都不健康GWLB 为每条流随机选择一个不健康目标,并保持该选择直到重置/超时;AWS 说明在目标恢复健康前会丢弃流量验证文档描述的结果;仅运行状况探测故障、但数据面仍转发属于 PoC 假设
没有已注册目标新流没有目标;应确认流量丢弃行为验证空设备群的恢复;区分已有流的排空

target_failover.on_unhealthy 和 target_failover.on_deregistration 必须设置为相同值。默认值是 no_rebalance。运行状况检查支持 TCP、HTTP 和 HTTPS;协议、端口和路径应与设备相匹配。S25 S26

当前文档还提供 send_tcp_reset.on_unhealthy.enabled 和 send_tcp_reset.on_deregistration.enabled。两者默认均为 false,仅适用于 TCP,并且要求使用五元组粘性(stickiness.enabled=false)和 no_rebalance。它们不能与 rebalance 或元组字段较少的粘性模式同时启用。在收到 RST 后应测试重连、重试和业务操作重复执行的情况;这并不代表会话可以无中断迁移。还应检查注销目标时的排空时间。S25

当所有目标都不健康时,GWLB 不会直接绕过设备。 AWS 文档描述的是按流随机选择目标,并在所选目标恢复健康前丢弃流量。不同可用区会分别做出选择;关闭跨可用区负载均衡时,应检查每个可用区内符合条件的目标。跨可用区负载均衡会扩大符合条件的目标范围,但仍需关注已有流/新流的行为。S26

较早的部署博客将已有流继续分配给故障目标称作“fail-open mode”。这个术语并不意味着可用性有保证,也不是直接绕过设备的功能;应将其与设备本身的 fail-open 设置区分开。仅运行状况探测出现故障时数据流量是否仍会转发,属于应进行的实验,而非文档承诺的恢复行为。S32 S25 S26

跨可用区负载均衡可以使用其他可用区中的健康目标,但不会复制状态或修复故障的可用区端点。应检查跨可用区费用、容量和会话中断。要分别测试 GWLBE/可用区故障和目标故障。相较于较早部署博客中“GWLB 永不发送 RST”的说法,应优先采用当前的目标组属性文档。S24 S25 S27 S32

8. MTU、分片、NACL 和运行状况路径 ​

AWS 文档规定最大分组大小为 8500 字节,GENEVE 开销为 68 字节。GWLB 不会代替路径提供分片或路径 MTU 探测。工作负载使用较大的 MTU,并不意味着该 MTU 同样适用于 TGW、NAT 和设备组成的完整路径。S24 S32

应审查:

  • 端到端 MTU、设备 GENEVE 接口余量和 TCP MSS 处理。
  • 大分组、UDP 数据报、TLS/HTTP2、上传和分片。
  • SG、NACL 和设备策略中外层 UDP 6081 与内层载荷协议的区别。
  • 运行状况检查端口的可达性/响应以及真实的检查 canary。
  • 无状态 NACL 中的请求/返回端口和实际外层元组。
  • 根据产品核对当前 IPv6、封装和 ICMP/ICMPv6 要求。

仅端口开放或目标健康并不能证明流量经过检查。S26 S32

9. 在获准环境中执行只读检查 ​

以下 AWS CLI 示例均为只读命令。应将任务专属变量设为自己负责的资源,并明确指定区域。本次研究中没有执行这些命令。

bash
aws elbv2 describe-load-balancer-attributes \
  --region "$INSPECTION_REGION" --load-balancer-arn "$INSPECTION_GWLB_ARN"

aws elbv2 describe-target-group-attributes \
  --region "$INSPECTION_REGION" --target-group-arn "$INSPECTION_TARGET_GROUP_ARN"

aws elbv2 describe-target-health \
  --region "$INSPECTION_REGION" --target-group-arn "$INSPECTION_TARGET_GROUP_ARN"

aws ec2 describe-vpc-endpoints \
  --region "$INSPECTION_REGION" --vpc-endpoint-ids "$INSPECTION_ENDPOINT_ID"

aws ec2 describe-route-tables \
  --region "$INSPECTION_REGION" --route-table-ids "$INSPECTION_ROUTE_TABLE_ID"

aws ec2 describe-transit-gateway-vpc-attachments \
  --region "$INSPECTION_REGION" \
  --transit-gateway-attachment-ids "$INSPECTION_TGW_ATTACHMENT_ID"

应比较跨可用区属性、目标粘性/故障转移、运行状况、端点状态/可用区、路由/关联以及连接上的 ApplianceModeSupport。TGW 路由表关联、传播和有效路由需要额外查询;仅执行这六条命令不能证明路径对称。

10. 故障实验和验收标准 ​

应在隔离且获准的环境中执行以下计划。

实验必须观测的内容
允许/拒绝的无害 canary请求/响应五元组、目标、策略/配置文件和应用结果
单个目标运行状况故障旧/新会话以及 no_rebalance 与 rebalance 的区别
所有目标都不健康是否送达不健康目标、检查/错误;不能假定直接绕过
空设备群新流丢弃与已有流排空的区别、检测和恢复
TCP RST 功能五元组/no-rebalance 限制、重连和重试
可用区/端点路径故障区分端点与目标故障,并观测故障转移和恢复
缩容/滚动升级连接排空、中断、就绪状态和策略一致性
NAT/路由变更变更前后的地址转换、返回路径和环路
MTU/空闲超时/IPv6大分组、长连接和受支持的路径
中央检查以外的路径使用补充控制检查本地路径、端点、对等连接和 Pod 路径

验收标准应综合业务 SLO、实际观测到的检查/阻止行为、已有/新会话行为、N-1 容量、记录在案的绕行路径以及回滚/恢复责任人。本次更新没有部署基础设施、注入故障或测量性能。

继续学习 ​

参考资料与研究依据 ​

主要来源于 2026-10-15 访问的资料。变更前应重新核实所选产品/分支的安全公告和限制。

向文档提问

按 Enter 发送,按 Shift+Enter 换行。