IstioCon 2021如何在Istio中进行源地址保持?
Posted 容器魔方
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IstioCon 2021如何在Istio中进行源地址保持?相关的知识,希望对你有一定的参考价值。
北京时间2月23日,在全球首届社区峰会IstioCon 2021中,华为云原生开源团队核心成员徐中虎发表了《Preserve Original Source Address within Istio》主题演讲。
演讲嘉宾:徐中虎
徐中虎,华为云原生开源团队核心成员,Istio社区指导委员会委员(亚洲唯一),Istio Maintainer以及核心贡献者,Kubernetes项目核心贡献者。畅销书《云原生服务网格Istio:原理、实践、架构与源码解析》作者之一,聚焦在Kubernetes、容器、Service Mesh等云原生技术。对于分布式系统高性能、高可靠、大规模扩展性有深入的研究和丰富的经验。
演讲主要包含三部分的内容:
2)用于安全策略控制,常用的黑白名单设置;
常见的源IP保持方式及背景知识
我们常用的源IP保持的方式从OSI网络模型L3-L7主要分为:
1. L3
2. L4
3. L7
集群内服务访问
Ingress服务访问
1. HTTP类协议源IP保持
那么可以看到,东西向七层HTTP类协议可以非常容易的通过添加XFF的方式,方便服务端获取客户端真实IP。其典型的配置如下:
Ingress HTTP
两种模式下,都需要配置Ingress gateway使其支持XFF自动添加, 另外可以通过xff_num_trusted_hops额外配置Envoy信任的代理跳数,详细参考https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_conn_man/headers#x-forwarded-for。
2. TCP源IP保持
2)配置TPROXY和个性化路由,确保svcB发送到10.244.0.20的数据包被Envoy接收。主要是对数据包打标记,然后根据自定义路由,将非本地的数据包通过本地lo路由。
-A PREROUTING -p tcp -m mark --mark 0x539 -j CONNMARK --save-mark --nfmask 0xffffffff --ctmask 0xffffffff
-A OUTPUT -p tcp -m connmark --mark 0x539 -j CONNMARK --restore-mark --nfmask 0xffffffff --ctmask 0xffffffff
ip -f inet rule add fwmark 1337 lookup 133
ip -f inet route add local default dev lo table 133
在svcB上配置envoy.filters.listener.proxy_protocol,保证Envoy监听器获取原始客户端IP。
本文小结
本文根据本人在IstioCon 2021的分享整理而来,相关的案例demo都可以在
https://github.com/hzxuzhonghu/istio-demo 找到,希望对大家有所启发。即可获取演讲PPT
戳阅读原文,观看演讲视频!
以上是关于IstioCon 2021如何在Istio中进行源地址保持?的主要内容,如果未能解决你的问题,请参考以下文章
国内首次 Istio Meetup 来了,主流社区专家邀你来共聊
国内首次 Istio Meetup 来了,主流社区专家邀你来共聊