本站点使用Cookies,继续浏览表示您同意我们使用Cookies。Cookies和隐私政策>
发布时间: 2020-08-18 | 浏览次数: 1379 | 下载次数: 2 | 作者: c00504987 | 文档编号: EKB1100053879
XXX云平台使用P2V/V2V工具迁移一批物理机/Hyper-V虚拟机到FusionCompute平台,部分虚拟机运行1~2周后发现IE浏览器无法上网,但是能ping通外部IP地址。
软件配置:
软件名称 | 版本号 | 备注 |
FusionSphere | V100R005C10SPC700 |
|
GuestOS | Windows 2008 R2 64位 | 虚拟机安装有360安全卫士 |
1、 在问题虚拟机里执行ping命令,可以正常ping通外部IP地址,说明虚拟机网络没有问题。
2、 在复现IE浏览器访问www.baidu.com无法打开时,通过wireshark网络抓包工具抓包,发现wireshark没有抓到任何IE发出的报文。说明没有报文请求发送到网卡上。
3、 执行“telnet 127.0.0.1 3389”命令访问虚拟机自身的3389端口,无法连接。访问其他IP的3389端口同样无法连接。
4、 执行“nslookup www.baidu.com”可以正常解析域名。由于nslookup使用的UDP端口,说明只有TCP出现问题。
5、 执行“netstat -ano”命令,发现使用的端口号不多。
6、 通过禁用网卡/启用网卡,卸载之前物理机/Hyper-V上的网卡驱动无法解决问题。
7、 以上问题分析说明Windows 2008操作系统的TCP/IP层出现问题,任何业务软件都无法对外建立TCP请求,但是UDP连接正常。需要向微软开启高级紧急付费case进行分析。
8、 微软工程师根据问题现象判断:Windows操作系统的未知资源被耗尽(泄露),导致无法建立TCP连接请求,一般是端口、句柄等资源。需要分析是什么资源被耗尽。
1)、咨询 “netstat -ano”命令回显中使用端口为什么很少,微软工程师答复这就是问题分析的难点, netstat不是万能的,特殊状态的端口在netstat里无法显示。
2)、需要使用特殊网络抓包工具进行分析(TCP/IP上层抓包工具)。
9、 在问题虚拟机上执行” netsh trace start scenario=netconnection capture=yes persistent=yes maxsize=4094 tracefile=c:\99.etl”,开启网络应用抓包。
10、 在网络应用抓包期间,使用IE浏览器打开网页、telnet等操作复现问题。
11、 在问题虚拟机上执行“netsh trace stop”,停止抓包。
12、 将99.etl文件发给微软分析,使用微软Network Monitor工具分析发现如下报错:
根据微软工程师说明,STATUS_TOO_MANY_ADDRESSES表示端口号被耗尽,无法发起新的tcp端口bind。
13、 接下来需要查出是什么软件进程消耗尽了端口资源。
首先下载微软process explorer分析工具:https://technet.microsoft.com/en-us/sysinternals/bb896653.aspx
14、 运行process explorer工具,点击“View”,勾选“Show Lower Pane”,工具下方出现一个信息显示框。
15、 运行process explorer工具,点击“View”,点击“Select Columns…”,在对话框里选择“Process Performance”,勾选“Handle count”。
16、 根据问题虚拟机的监控信息,发现360EntClient.exe进程占用句柄数达49580个。在信息框下面,显示出该进程占用了4926个\device\afd资源,微软工程师说明\device\afd句柄就是端口资源,也就是socket资源。说明360EntClient.exe存在socket端口资源泄露。
附录问题虚拟机的抓取信息:
17、 尝试禁用360EntClient.exe服务或者杀掉进程,报“没有权限执行”,后经用户确认允许,将360安全卫士软件直接卸载掉,虚拟机的IE恢复正常,可以打开网页。
18、 经过了解,在前期做P2V/V2V迁移时遇到一些端口无法访问的问题,后重启物理服务器或者Hyper-V虚拟机后可以正常迁移,说明做虚拟机迁移之前就存在类似问题。
Windows Socket端口资源是操作系统的资源,和Windows运行在什么介质上没有关系。
360EntClient.exe进程存在Windows Socket端口资源泄露问题,耗尽了TCP可用端,导致其他应用无法发起tcp应用bind。
1、 卸载360软件。
2、 不卸载360软件,出现问题后重启Windows 2008系统即可恢复。
1、 由360公司解决Socket端口资源泄露问题,可以咨询是否有解决版本。
2、 建议尽快安装付费专业“有代理”防病毒软件,有专业服务保证。