ZBLOG

异常的服务器能收到LVS负载ipip的包,但是应用层没有收到流量,请问如何分析检查

这是一个典型的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助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:http://sdn.0voice.com/?id=8504

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?