中心辐射型网络中Istio与AKS对接Azure Application Gateway出站流量问题咨询
问题根因与解决方案
核心判断
- 你猜测的「Istio直接将响应返回至原始源IP而非Application Gateway IP」不成立,TCP连接的端到端特性决定了Istio收到的请求源IP是Application Gateway的内网IP,回包目标IP必然指向Application Gateway,不存在主动绕过Application Gateway回源的逻辑。
- 不需要配置Egress Gateway做回传,该问题完全是Hub-Spoke架构下的不对称路由问题,和Istio组件无关。
问题触发逻辑
你当前的架构默认应该符合标准Hub-Spoke设计规范:Hub节点部署了防火墙/网络虚拟设备(NVA),所有Spoke的默认路由0.0.0.0/0原本指向Hub防火墙做统一出站管控,问题的出现完全匹配路由不对称的特征:
- 入方向请求路径:用户→Application Gateway公网IP→Application Gateway内网IP→Istio Ingress Gateway→AKS业务Pod,路径全程符合路由规则,所以请求可以正常抵达AKS。
- 回方向路由匹配逻辑:当Spoke和Hub保持对等互连时,AKS所在Spoke的路由表没有Application Gateway所在网段的明细路由,回包会匹配默认路由发往Hub防火墙。由于防火墙没有监测到对应入方向的TCP连接(请求直接从Application Gateway发往AKS,未经过防火墙),会默认丢弃该回包,最终表现为流量无法返回Application Gateway。
- 两个验证现象完全匹配该逻辑:
- 断开Hub和Spoke的对等互连后,系统路由删除了去往Hub的路径,回包直接在Vnet内转发,能正常抵达Application Gateway,问题消失。
- 你添加
0.0.0.0/0下一跳为Internet的UDR后,回包绕开了Hub防火墙,也能正常转发,访问恢复。但该配置会破坏Hub-Spoke统一管控出站流量的设计,不建议长期使用。
推荐修复方案
不需要修改Istio侧配置,只需调整路由表规则保证路由对称即可:
- 如果Application Gateway和AKS部署在不同Spoke:在AKS所在Spoke的路由表中,添加Application Gateway所在Spoke的网段明细路由,下一跳设置为
VNet对等互连,优先级高于指向Hub防火墙的默认路由。 - 如果Application Gateway和AKS部署在同一个Spoke:在AKS所在Spoke的路由表中,添加VNet内网网段的明细路由,下一跳设置为
VNet本地,保证同VNet内流量不需要经过Hub转发。
内容的提问来源于stack exchange,提问作者Morariu
相关产品推荐
相关产品推荐

