这是一个典型的LVS IPIP隧道流量转发问题。异常服务器能收到IPIP包但应用层无流量,说明网络层接收正常但后续处理有问题。以下是系统性的排查方案:
1. 检查IPIP隧道解封装状态
# 确认tunl0接口状态和IP配置
ip addr show tunl0
ip link show tunl0
# 检查路由表,确保解封装后的包能正确路由
ip route show table local | grep 172.22.132.134
ip route get 172.22.132.134
# 验证内核IP转发已开启
sysctl net.ipv4.ip_forward
cat /proc/sys/net/ipv4/ip_forward
2. 检查iptables/nftables规则
# 查看是否有规则丢弃了转发或INPUT链的包
iptables -t filter -L -n -v --line-numbers
iptables -t nat -L -n -v --line-numbers
# 重点检查FORWARD链和INPUT链
iptables -t filter -L FORWARD -n -v --line-numbers
iptables -t filter -L INPUT -n -v --line-numbers
# 临时清空规则测试(谨慎操作)
# iptables -t filter -F
# iptables -t nat -F
3. TCP抓包分析
# 在Real Server上同时抓多个层面的包
# 1. 物理接口的IPIP封装包
tcpdump -i eth0 ip proto 4 -nn -v
# 2. tunl0接口的解封装后流量
tcpdump -i tunl0 host <VIP> -nn -v
# 3. Local地址的流量(应用层监听地址)
tcpdump -i any host <Local_IP> and port <Port> -nn -v
# 4. 使用高级过滤抓取完整通信过程
tcpdump -i any '(host <VIP> or host <Local_IP>) and port <Port>' -w /tmp/debug.pcap
4. LVS Real Server配置验证
# A) LVS服务类型检查
ipvsadm -Ln
你应该看到类似:
TCP 192.168.1.100:80 rr
-> 10.1.1.2:80 Route 1 0 0
-> 10.1.1.3:80 Route 1 0 0
如果是 Tunnel模式,应该显示"Route"而不是"Masq"
# B) Real Server本地配置验证
sysctl net.ipv4.conf.all.rp_filter
sysctl net.ipv4.conf.tunl0.rp_filter
对于Tunnel模式,通常需要:
echo 'net.ipv4.conf.all.rp_filter = 2' >> /etc/sysctl.conf
echo 'net.ipv4.conf.tunl0.rp_filter = 0' >> /etc/sysctl.conf
sysctl –p
ARP抑制设置:
echo 'net.ipv4.conf.all.arpi gnore = l' >> /etc/sysctl.conf
echo 'net.ipv4.conf.tunl0.arpi gnore = l' >> /etc/sysctl.conf
5. VIP绑定和应用监听检查
# A) VIP不应直接绑定在Real Server上(除了Director)
ip addr show | grep <VIP>
# B)应用服务应监听在正确的本地地址上
netstat –lnp | grep :<Port>
# C)如果应用只监听localhost或特定地址,需要改为全监听(0 .O.O.O)
ss –lnp | grep :80
## 6. conntrack连接跟踪状态分析
#查看连接跟踪表是否有相关条目
conntrack –L | grep <VIP>
#如果conntrack表满或有异常,可以临时清空测试
conntrack –F
#监控新建连接过程
conntrack –E
## 7. MTU和分片问题排查
#检查MTU设置, IPIP会额外增加20字节开销
ip link show | grep mtu
#适当调低MTU避免分片
ip link set dev tunlo mtu 1480
ip link set dev etho mtu 1500
## 8. LVS Director端调试
在Director服务器上执行:
#A)检查VIP是否正常绑定到网卡
ip addr show dev <VIP Interface>
#B)查看ipvs连接转发状态
ipvsadm –Lnc
#C) Director抓包验证封包发送
tcpdump –i any host <Real Server IP> and proto 4 –nn –V
9. SystemTap深度追踪(可选)
如果有复杂的内核问题,可以使用SystemTap追踪内核路径:
#追踪IP接收和处理过程(需安装systemtap)
stap –e 'probe kernel.function("ip_rcv") {printf("=== IP RC V ===\n"); }'
probe kernel.function(“ip_local_deliver”) { … }
probe kernel.function(“tcp_v4_rcv”) { … }
建议按照以下顺序排查: 第3步抓包 → 第2步防火墙 → 第5步应用监听 → 第6步conntrack
最常见的根本原因是:
- iptables规则丢弃了FORWARD链或INPUT链的包 (40%)
- rp_filter严格模式拒绝反向路径不符的包 (25%)
- VIP冲突或错误绑定到Real Server (15%)
内容由零声教学AI助手提供,问题来源于学员提问




