linux 网卡只收到包不发包,【干货分享】Linux虚拟机网卡只能收包不能发包?

【干货分享】Linux虚拟机网卡只能收包不能发包?: U1 d; M2 ~  ]7 Q: J5 M- v# J3 @

* v; Y  P1 Q$ ]: I' T8 z在ovs场景主机与同主机上的虚拟机通信时,由于主机侧服务有问题,可能导致虚拟机网卡只能收包,不能发包,那么为什么会出现这样的问题以及应该如何解决呢?

$ m# @* d3 A& U  _. E- Q0 b注

适用操作系统:Linux

适 用 版 本 :适用UVP&EVS V200R002C00 PublicCloud版本

适用产品线 :FusionSphere

1 s* ]2 y9 ~1 ^- E0 D7 T

背景及现象描述

在ovs场景主机与同主机上的虚拟机通信时,由于主机侧服务有问题(目前发现iperf-2.0.2有此问题),可能导致虚拟机网卡只能收包,不能发包,使用ifconfig查看网卡状态,网卡收包总数RX packets项一直有增加,网卡发包总数TX packets项保持不变,ping虚拟机ip不通。如下图所示:

ee563d00fce3944845d75ae1148b35a0.gif

微信图片_20170927165500 - 副本.jpg (36.57 KB, 下载次数: 3)

【干货分享】Linux虚拟机网卡只能收包不能发包?

2017-9-27 17:12 上传

原因分析

定位发现虚拟机网卡不通是因为在主机与虚拟机之间存在iperf通信。在dom0上部署iperf-2.0.2服务端,在同主机的domU上部署客户端(iperf-c domip -d -t 3600),打流过一会就会发现domU上的网卡对外不能发包,收包正常。

定位发现虚拟机对外不能发包是因为前端环满,domU虚拟网卡对外发包使用的是零拷贝机制,报文在转发时不做数据拷贝,使用domU中的内存,在报文通过协议栈发给iperf服务端处理时,iperf未对报文处理,导致vring环上的buffer无法释放,vring环一直处于满的状态,后续的报文无法发出。

问题出现有2个条件。

1、主机与同主机上虚拟机之间通信。虚拟机与虚拟机之间没有问题,跨主机之间通信也不存在问题。

2、必须是主机上服务端存在问题的软件才会导致问题,如:netperf工具就没有这个问题,目前UVP主机与虚拟机之间有通信的服务(dhcpserver/metadata),不存在有此问题的服务。

解决方法

将对应Linux版本的内核参数添加到Linux系统的“/boot/grub/menu.lst”文件的内核启动参数后面即可。

1、应急解决方法:重启dom0上的与虚拟机有通信的服务端程序,网络可以恢复。

2、排查出问题的服务,解决服务端BUG。ee563d00fce3944845d75ae1148b35a0.gif

微信图片_20170927165416 - 副本.jpg (9.41 KB, 下载次数: 3)

【干货分享】Linux虚拟机网卡只能收包不能发包?

2017-9-27 17:12 上传

+ A, y4 T' C8 l' p; a

: }6 g6 `4 P' X) @0 |

7 B. M' ]  I3 n- j: s  J4 `4 S

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值