(dpdk f-stack)-ipvs实现L3/L4层代理
Posted ygmdream
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(dpdk f-stack)-ipvs实现L3/L4层代理相关的知识,希望对你有一定的参考价值。
L3/L4层代理参考: https://github.com/iqiyi/dpvs
LVS 实现参考:https://cloud.tencent.com/developer/article/1792298
LVS向Netfilter的3个阶段注册钩子函数改写数据包
- 在 LOCAL_IN 阶段注册了 ip_vs_in() 钩子函数。
- 在 FORWARD 阶段注册了 ip_vs_out() 钩子函数。
- 在 POST_ROUTING 阶段注册了 ip_vs_post_routing() 钩子函数。
ipvs核心(L3/L4层代理参考dpvs文档)
ipvs重点就是根据NAT/DR/TUN模式,连接跟踪表信息,【修改原始数据包的路由,源/目的的ip/port等】信息,将来数据包发出去时会根据新的路由和目的地址选网卡发送;
ipvs介入fstack
FORWARD 阶段发送在数据包不是发送给本机的情况,但是【一般来说数据包都是发送给本机的即vser的】,所以函数 ip_vs_out() 不是重点,重点是函数 ip_vs_in(),fstack中移植ipvs模块后在此函数中改写数据包即可实现NAT/DR/TUN代理数据包到rser。
ip_vs_in() 运行在 Netfilter 的 LOCAL_IN 阶段。
ip_vs_out() 运行在 Netfilter 的 FORWARD 阶段。
以上是关于(dpdk f-stack)-ipvs实现L3/L4层代理的主要内容,如果未能解决你的问题,请参考以下文章
(dpdk f-stack) VMware跑 f-stack