Envoy流量劫持后outbound部分处理逻辑

 本篇文章主要来讲解下流量劫持到envoy之后,envoy层面是如何处理,并成功找到它的下一跳服务的,当然也是我们平时说的upstream。

fa9c0c66ad36d1da88ec17aa14f6bc8a.png

Envoy在实现层面,定义了listener、filter这些对象,具体如下所示:

Listener对应的是LDS里面的配置,通常一个LDS对应一个Listener,而它是一般格式是clusterIP+Port的方式,如果多个serviceName对应一个LDS的话,会转换成0.0.0.0+Port的样子。

因为iptables劫持流量的时候,只会在Envoy中基于outbound流量出口15006创建一个真实的物理连接socket,所有的流量到了这个socket之后,会先匹配到对应Listener。

Listener可以理解成一个逻辑连接,存储在内存中,通过流量中的带下来的Host+Port进行匹配,命中的话,就会走这个Listener进行处理。

Listener下面会挂载很多filterchains链,这些filterchains是用户根据不同的需求设置的filter数组,而每一个filter表示的是对流量某一段处理的逻辑对象。例如:处理http的filter,它会先将http包进行decode,然后去匹配RDS和CDS,以便找到这个服务对应的下一跳upstream。在找到

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值