阿里云容器服务Ingress设置原IP透传

  1. 云栖社区>
  2. 容器服务Docker&Kubernetes>
  3. 博客>
  4. 正文

阿里云容器服务Ingress设置原IP透传

了哥-duff 2018-07-10 14:10:09 浏览6016
展开阅读全文

问题

在很多业务场景里,我们都需要知道客户端的真实IP来控制业务逻辑。但是从客户到真正的服务,中间总会进过多层的SLB(负载均衡),那么如何才能获取到客户的真实IP呢?
在Kubernetes容器的环境下,通常一个客户端访问到业务要经过云的SLB,Ingress才能达到业务的应用。所以我们需要每一层都能够透传客户端的IP才行。

原理

在基于HTTP的协议里,对于客户端原IP的透传,可以参考: RFC7239(Forwarded HTTP Extension, https://tools.ietf.org/html/rfc7239) 标准。没经过一层链路,都会把对应地址加入到X-Forwarded-For这个http的扩展头里,以逗号隔开,最早的客户端是第一个地址。

例如:

X-Forwarded-For: 192.0.2.43, 2001:d

网友评论

登录后评论
0/500
评论
了哥-duff
+ 关注
所属团队号: 容器服务Docker&Kubernetes