dnat模式发送报文
src/ipvs/ip_vs_core.c
针对ipv4,INET_HOOK_PRE_ROUTING注册2个函数dp_vs_pre_routing和dp_vs_in,因为nat不做防止DDos攻击的syn_proxy,所以看dp_vs_in。
conn_sched新请求建立连接
选择后端rs建立连接,支持tcp、udp和icmp。
dp_vs_schedule->dp_vs_conn_new->dp_vs_conn_bind_dest
dpvs支持dnat、tunnel、dr、fullnat、snat。
src/ipvs/ip_vs_xmit.c
dp_vs_xmit_nat流量处理
route4_output查找路由,把路由赋给mbuf,dnat转换。
src/ipvs/ip_vs_proto_tcp.c
tcp_snat_in_handler转换目的端口,重新计算checksum。
dnat模式回包
src/ipvs/ip_vs_xmit.c
dp_vs_out_xmit_nat 源地址snat
src/ipvs/ip_vs_proto_tcp.c
tcp_snat_out_handler 源端口转换,重新计算checksum
参考资料
https://www.jianshu.com/p/9d8a96e21c59
标签:src,dnat,ip,模式,dpvs,ipvs,vs,dp From: https://www.cnblogs.com/WJQ2017/p/17738998.html