k8s ingress获取真实IP地址配置
背景
业务架构: Client->WAF->LB->ECS->容器 问题:在容器中获取不到真实的客户端公网IP
抓包分析
1.在ECS上的抓包分析,看到WAF已经将 真实客户端地址放到了 x-Forwarded-For 的字段中传给了ECS 2.在容器中抓包,看到一个x-Forwarded-For的字段是错误的 对应的IP为WAF的回源地址 3.与容器同学确认 ingress的行为
将真实的客户端IP,放到了x-Original-Forwarded-For。而将WAF的回源地址放到了 x-Forwarded-For了。
处理方法
- 修改容器的配置文件 配置文件: kube-system/nginx-configuration 修改命令: kubectl -n kube-system edit cm nginx-configuration 添加内容: compute-full-forwarded-for: "true" forwarded-for-header: "X-Forwarded-For" use-forwarded-headers: "true" 保存后立即生效。随后ingress的添加真实的IP行为会与RFC一样都依次添加到X-Forwarded-For中了。
- 业务程序需要调整获取真实IP的字段为x-Original-Forwarded-For。
姐妹篇:
背景 业务架构: Client->WAF->LB->ECS->容器 问题:在容器中获取不到真实的客户端公网IP 抓包分析 1.在ECS上的抓包分析,看到WAF已经将 真实客户端地址放到了 x-Forwarded-For 的字段中传给了ECS 2.在容器中抓包,看到一个x-Forwarded-For的字段是错误的 对应的IP为WAF的回源地址 3.与容器同学确认 ingress的行为 将真实的客户端IP,放到了x-Original-Forwarded-For。而将WAF的回源地址放到了 x-Forwarded-For了。 处理方法 修改容器的配置文件 配置文件: kube-system/nginx-configuration 修改命令: kubectl -n kube-system edit cm nginx-configuration 添加内容: compute-full-forwarded-for: "true" forwarded-for-header: "X-Forwarded-For" use-forwarded-headers: "true" 保存后立即生效。随后ingress的添加真实的IP行为会与RFC一样都依次添加到X-Forwarded-For中了。 业务程序需要调整获取真实IP的字段为x-Original-Forwarded-For。 姐妹篇:
下一篇:
一分钟了解nohup和&的功效