主机tljyj上有一台linux虚拟机”linux test”,地址172.16.12.249,另外一台主机tljyj-2上有一台虚拟机”windows 2008R2 test”,地址172.16.12.254。
两台虚拟机测试ping发现丢包。
查看虚拟机所在vswitch为专门的业务vswitch“yw”。管理网CVM和CVK之间走的管理网尝试ping不丢包。主机和虚拟机状态都是正常的。
尝试从虚拟机”windows 2008R2 test”(172.16.12.254)向虚拟机”linux test”(172.16.12.249)持续ping,然后在对应CVK和vnet口进行抓包。涉及4个端口抓包详细说明见下:
1、在主机tljyj-2的虚拟机”windows 2008R2 test”对应的vnet口抓包
root@tljyj-2:~# tcpdump -lni vnet1 host 172.16.12.249
2、在主机tljyj-2的虚拟机”windows 2008R2 test”所在vswitch口对应eth口上进行抓包
root@tljyj-2:~# tcpdump -lni eth5 host 172.16.12.249
3、在主机tljyj的虚拟机”linux test”(172.16.12.249)对应的vnet口抓包
root@tljyj:~# tcpdump -lni vnet2 host 172.16.12.254
4、在主机tljyj的虚拟机”linux test”(172.16.12.249)对应的vnet口抓包
root@tljyj:~# tcpdump -lni eth5 host 172.16.12.254
抓包分析说明:
在主机tljyj-2的虚拟机”windows 2008R2 test”对应的vnet口抓包。正常ping包应该是1个request包,1个reply包,对应seq相同。发现seq13001和13002只有request包,没有reply包。
14:42:48.223030 IP 172.16.12.254 > 172.16.12.249: ICMP echo request, id 1, seq 13000, length 40
14:42:48.223168 IP 172.16.12.249 > 172.16.12.254: ICMP echo reply, id 1, seq 13000, length 40
14:42:49.223043 IP 172.16.12.254 > 172.16.12.249: ICMP echo request, id 1, seq 13001, length 40
14:42:54.223121 IP 172.16.12.254 > 172.16.12.249: ICMP echo request, id 1, seq 13002, length 40
14:42:59.223099 IP 172.16.12.254 > 172.16.12.249: ICMP echo request, id 1, seq 13003, length 40
14:42:59.223744 IP 172.16.12.249 > 172.16.12.254: ICMP echo reply, id 1, seq 13003, length 40
对应主机tljyj-2的eth5物理口查看也是如此,说明虚拟机”windows 2008R2 test”把ping request包从主机上发出去了,但是没有收到reply报文。
14:42:48.223042 IP 172.16.12.254 > 172.16.12.249: ICMP echo request, id 1, seq 13000, length 40
14:42:48.223163 IP 172.16.12.249 > 172.16.12.254: ICMP echo reply, id 1, seq 13000, length 40
14:42:49.223051 IP 172.16.12.254 > 172.16.12.249: ICMP echo request, id 1, seq 13001, length 40
14:42:54.223133 IP 172.16.12.254 > 172.16.12.249: ICMP echo request, id 1, seq 13002, length 40
14:42:59.223112 IP 172.16.12.254 > 172.16.12.249: ICMP echo request, id 1, seq 13003, length 40
14:42:59.223605 IP 172.16.12.249 > 172.16.12.254: ICMP echo reply, id 1, seq 13003, length 40
查看对端CVM主机的虚拟机”linux test”对应vnet2收发情况:对应seq13001和13002的request报文并没有收到。说明虚拟机没有收到ping request报文
14:42:55.528810 IP 172.16.12.254 > 172.16.12.249: ICMP echo request, id 1, seq 13000, length 40
14:42:55.528905 IP 172.16.12.249 > 172.16.12.254: ICMP echo reply, id 1, seq 13000, length 40
14:43:06.528993 IP 172.16.12.254 > 172.16.12.249: ICMP echo request, id 1, seq 13003, length 40
14:43:06.529425 IP 172.16.12.249 > 172.16.12.254: ICMP echo reply, id 1, seq 13003, length 40
对应CVM主机的eth5收发情况:对应seq13001和13002的request报文也没有收到,说明CVM主机物理端口并没有收到ping request报文,即交换机没有转发虚拟机”windows 2008R2 test”的ping request包给CVM主机,即报文丢在物理网络上。
14:42:55.528816 IP 172.16.12.254 > 172.16.12.249: ICMP echo request, id 1, seq 13000, length 40
14:42:55.528895 IP 172.16.12.249 > 172.16.12.254: ICMP echo reply, id 1, seq 13000, length 40
14:43:06.529162 IP 172.16.12.254 > 172.16.12.249: ICMP echo request, id 1, seq 13003, length 40
14:43:06.529362 IP 172.16.12.249 > 172.16.12.254: ICMP echo reply, id 1, seq 13003, length 40
同样的方法查看到seq12931、seq12976等等都是相同情况,说明报文都是丢在物理网络上,请排查。
问题定位在虚拟机发出的ping request报文物理网络并没有正常转发,建议物理交换机上去抓包看看,通过ping包对应连续序列号查看看看报文丢在哪里了。
附上:查看vnet口和虚拟机对应关系的命令ovs_dbg_listports
root@tljyj-2:~# ovs_dbg_listports
root@tljyj:~# ovs_dbg_listports
该案例暂时没有网友评论
✖
案例意见反馈
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作