返回信息流一、
现象:ping虚拟机延迟高,不稳定,丢包,但并非同一台宿主机上所有虚拟机都有这个问题
排查:系统内iptables规则5000条以上,每个虚拟机网卡对应一组iptables规则,怀疑是规则数量过多,不同虚拟机对应的过滤次序不一样导致ping值不一致。
解决方法:添加规则iptables -I FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT并修改代码使其保持为第一条,这样已经合法的session的packets不需要再进入各自虚拟网卡的规则链就可以直接pass。
二、
现象:ping虚拟机延迟高,丢包,同一台宿主机上几乎所有虚拟机都有同样问题
排查:ping环回地址也有同样问题,看dmesg里面有如下输出
[627864.064871] nf_conntrack: nf_conntrack: table full, dropping packet
...
解决办法,sysctl -p应用/etc/sysctl.conf里面的net.netfilter.nf_conntrack_max=6553600,至于这个参数为什么没有在开机启动的时候自动应用的原因还没找到。
三、
现象:
1. 客户报告ping虚拟机延迟高,丢包
2. 客户报告虚拟机内没有业务但是有异常流量
3. 增大虚拟机网卡带宽限制可解决现象1
4. 虚拟机内tcpdump可观察到不属于本机地址的packets
排查:
种种迹象表明,宿主机bridge似乎处于泛洪状态,查看
1. brctl showmacs $br看不到虚拟机的Mac地址
2. ip -d link show $br看到ageing_time为0
解决方法:
bridges=$(cat /proc/net/dev | grep br | awk -F: '{print $1}')
for br in $bridges; do
brctl setageing $br 120
done
进一步检查代码当中的确有brctl setageing $br 0,竟然是当初本人手潮所致,汗!
这是一条镜像帖。来源:北邮人论坛 / linux / #161382同步于 2025/9/27
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Linux机器人发帖
近期网络丢包问题排查(实战篇)
redsand
2025/9/27镜像同步2 回复
订阅后,新回复会通过你的通知中心匿名送达。