L3-DSR环境中真实服务器SNAT规则不生效,无法以VIP作为源地址回复报文的问题排查请求
L3-DSR环境中真实服务器SNAT规则不生效,无法以VIP作为源地址回复报文的问题排查请求
大家好,我现在在搭建一个带有自定义负载均衡器的L3-DSR环境,自定义LB会做DNAT操作同时设置DSCP(不过DSCP的设置和当前问题无关)。我用网络命名空间搭建了实验环境,拓扑如下:
- client netns → router netns → server netns
相关IP信息:
- VIP:10.10.10.1
- 真实服务器IP:10.10.2.2、10.10.2.3
我的需求是让真实服务器回复客户端报文时,以VIP作为源地址,但目前遇到了问题:
- 当从客户端ping VIP时,router会执行DNAT操作,服务器能收到转换后的数据包
- 但服务器上配置的SNAT规则完全没有被触发,客户端收到的回复报文源地址是真实服务器的IP,查看iptables规则的命中计数也显示这些规则根本没被匹配到
下面是相关的抓包和命令输出:
服务器上的tcpdump输出(网卡veth0)
# tcpdump -i veth0 -n (on server) listening on veth0, link-type EN10MB (Ethernet), snapshot length 262144 bytes 12:08:48.353964 IP 10.10.1.2 > 10.10.2.3: ICMP echo request, id 48129, seq 1870, length 64 12:08:48.354002 IP 10.10.2.3 > 10.10.1.2: ICMP echo reply, id 48129, seq 1870, length 64
客户端的ping命令输出
# ping 10.10.10.1 (from client) 64 bytes from 10.10.2.3: icmp_seq=1818 ttl=63 time...
有没有大佬能帮忙分析下为什么SNAT规则不生效,该怎么调整才能让真实服务器用VIP回复报文呢?
备注:内容来源于stack exchange,提问作者Chul-Woong Yang
相关产品推荐
相关产品推荐

