NSX 虚拟网络故障分析经验分享

今天的题目是关于NSX的虚拟网络故障分析,问题排查定位的经验分享,严格地说,不属于终端用户计算的范畴,但是终端用户计算以及软件定义的网络已经结合得越来越密不可分,有越来越多的用户开始使用NSX搭建EUC产品的专有网络环境,例如给VDI的计算资源池分配专有的网络空间,参见之前的博客利用NSX搭建专有子网

笔者最近也搭建了一套基于NSX虚拟网络的EUC实验环境,通过使用NSX提供的logical network的能力,可以随心所欲的构建自己的网络,互联互通,网络微分段,分布式防火墙,完全不必麻烦公司的网络管理员,真的是我的地盘我做主。既然是自己的地盘自己做主,当然出了问题也要自己搞定,不能麻烦网管了。在这里我就和大家分享一个我最近碰到的一个网络故障,问题排查的过程还是蛮有趣的,希望给大家提供一点碰到虚拟网络问题后的解决思路,可以举一反三。

首先的我的实验环境的网络架构类似如下图

图一

该实验环境由5台服务器构成,包含3个集群,每个集群上分别放置EUC相关的产品组件。

因为是实验环境,有两个集群managementcluster, Network Cluster只包含一台服务器。当然在生产环境中,一个集群至少要包含两台服务器才能保证高可用。

图二

那么说一下我碰到的问题,某天下午我还在自己的实验环境中正常工作,比如可以从位于内网192.168.100.0/24上的vm1正常地访问外网192.168.99.0/24,到了晚上的时候,却发现所有的位于内网192.168.100.0/24上的虚拟机都不能访问外网了。

事出突然,必有妖孽。第一反应是南北方向的网络通道上的路由可能被损坏了,因为该环境还有别的同事正在做别的实验,先让别的同事停止在该环境中的操作,排除其它因素的干扰。然后我梳理了一遍Distributed Logical Router以及Edge Gateway上的各项设置,没有发现任何异常的地方。

没有任何头绪,我索性按照http://www.virtualizationblog.com/nsx-step-by-step-part-16-configuring-static-route/ 在相同的硬件环境上又重新搭建了一个类似的网络环境,在这个新的网络环境中,虚机依然不能访问外网资源。

利用ping,tracert等工具,发现在内网的每一个虚机都能够访问内网网关192.168.100.1,也能够访问transition 网络上的下行端口10.10.10.2,但是transition 网络上的上行端口10.10.10.1就访问不到了。这种现象让我依然认为是南北向的路由出了问题,我试着定位路由在那里断掉了,依然没任何头绪。

浪费了大半天时间,我又试着看一下东西向的网络通讯。我发现同在一个内网192.168.100.0/24上的虚拟机之间有的彼此能够互相通讯,有的却彼此不能通讯,这让我怀疑可能是NSX构建的虚拟网络出问题了,例如VXLAN Tunnel End Point所用的IP被别人占用了之类的,查了一下也排除了这个可能。又开始读官方的问题解决手册https://pubs.vmware.com/NSX-62/topic/com.vmware.ICbase/PDF/nsx_62_troubleshooting.pdf ,块头太大,没有完全读完,也没能按照其中的步骤去定位问题。事后想想这个文档还是蛮有用的,按照其中的办法挨个子系统分别排查,自底向上,应该能够找到故障原因的。

回过头来,又开始看东向西的通讯,想从某些虚机彼此能够互相通讯,某些虚机彼此不能互相通讯的现象中找出一些规律出来。结果真找出来一个规律来: Management Cluster和Workload Cluster里面位于内网192.168.100.0/24上的虚机彼此可以相互通讯,但是都不能和Network Cluster里面位于内网192.168.100.0/24上的虚机通讯。如图一中所示,vm1,vm3,vm4,vm5可以互相通讯,但是不能和vm2通讯。因为南北向所有的网络节点组件也都是位于vm2所在的物理服务器上,貌似是所有位于ESXi服务器192.168.99.12上的虚机都变成了网络的孤岛。从这个现象,开始合理地怀疑该机器上网络接口出现了问题。

在我的实验环境中的每一台服务器都有四个网卡接口,其中第一块网口都用作ESXi的vmkernel接口,这一块网卡肯定没有坏,否则我根本不能通过vCenter来访问vm2。

图三

NSX的虚拟网络都是架构在vSphere的分布式网络交换机基础之上的,分布式网络交换机可以给加入其中的每一个物理主机分配不同的物理网卡作为上行接口。虚拟网络192.168.100.0/24在Vm2所在的物理主机上使用第二个物理网口NIC2作为上行接口。

图四

合理怀疑以后,就需要实事求证了。和Luke同学商量了一个反向求证的办法:配置vm2所在的物理主机上的ESXi管理网络的物理网络接口,缺省的配置是NIC1,依次将网络接口改成NIC2,NIC3,NIC4,然后观察vCenter中ESXi主机的连接情况,如果该物理主机在vCenter显示失去连接了,这就表明该物理网口出问题了。

图五

一番求证工作做下来,果然证明该服务器上的NIC2,NIC3,NIC4三块网卡都出问题了。三块网卡硬件都出问题,这么邪门的事情都让我碰上了,看来我可以去买彩票了。不过不得不说,vmware的软件还是靠谱的,一台服务器上的硬件坏了,分布在其余服务器上的虚拟网络依然正常工作。

剩下的工作就简单了,抄起电话找IT工程师更换网卡,问题搞定,我又开始在我的地盘里折腾了。

希望我这次故障分析,排查,解决的思考过程能够对大家有所帮助。

关于作者:Sam Zhao,EUC解决方案部门经理。在软件开发,测试,项目管理,客户项目实施,Technical marketing方面有15年IT从业经历,发表过七个专利以及合著书一部。

时间: 2024-07-29 09:44:50

NSX 虚拟网络故障分析经验分享的相关文章

【转载】千万级规模高性能、高并发的网络架构经验分享

在开始谈我对架构本质的理解之前,先谈谈对今天技术沙龙主题的个人见解,千万级规模的网站感觉数量级是非常大的,对这个数量级我们战略上 要重视它,战术上又要藐视它.先举个例子感受一下千万级到底是什么数量级?现在很流行的优步(Uber),从媒体公布的信息看,它每天接单量平均在百万左右, 假如每天有10个小时的服务时间,平均QPS只有30左右.对于一个后台服务器,单机的平均QPS可以到达800-1000,单独看写的业务量很简单 .为什么我们又不能说轻视它?第一,我们看它的数据存储,每天一百万的话,一年数据

【并发与负载】千万级规模高性能、高并发的网络架构经验分享

架构以及我理解中架构的本质 在开始谈我对架构本质的理解之前,先谈谈对今天技术沙龙主题的个人见解,千万级规模的网站感觉数量级是非常大的,对这个数量级我们战略上 要重 视 它 , 战术上又 要 藐 视 它.先举个例子感受一下千万级到底是什么数量级?现在很流行的优步(Uber),从媒体公布的信息看,它每天接单量平均在百万左右, 假如每天有10个小时的服务时间,平均QPS只有30左右.对于一个后台服务器,单机的平均QPS可以到达800-1000,单独看写的业务量很简单 .为什么我们又不能说轻视它?第一,

通过Microsoft Azure服务设计网络架构的经验分享(转)

原文:http://www.infoq.com/cn/articles/azure-networking-tips 本文从产品设计和架构角度分享了 Microsoft Azure 网络服务方面的使用经验,希望你在阅读本文之后能够了解这些服务之间,从而更好地设计你的架构. Microsoft Azure 的网络架构特别针对企业私有云和混合云进行了设计,其中包含三个常用的服务: 虚拟网络(Virtual Network):连接本地网络与云端基础设施 流量管理器(Traffic Manager):将用

VMware Workstation之虚拟网络的三种连接模式浅析

刚开始接触VMware Workstation做实验时常常为选择哪种网络连接模式而苦恼. 有时候老师说选择NAT,有时候建议桥接,还有时会要求仅主机. 唉,真是老师说什么就是什么. 既然不懂那就乖乖跟着老师屁股后面,老师怎么要求我们就怎么做,一点自己发挥的余地都不能有. 机械的跟着老师做了这么多实验,吃了这么多的苦楚,大家有没有想过,我们搭建实验环境为什么要选择不同的网络连接模式,为什么我们实验的其他部署都对了,但就是因为忽略了连接模式这个小差错而导致各种报错,为什么老师一直说实验前的ping通

企业使用VMware vSphere进行服务器虚拟化的经验分享

企业使用VMware vSphere进行服务器虚拟化的经验分享 对于很多中小企业来说,虚拟化已经成为节省IT开支的一种重要手段,下面就根据公司Vmware虚拟化产品部署案例,同大家来详细分享一下在使用vSphere产品组建虚拟化数据中心的一些小小经验,希望对企业虚拟化产品以及服务器.存储选择有所帮助. 一.虚拟化产品的选择 在组建虚拟化数据中心时,虚拟化产品选择至关重要,诚恺科技作为专业的虚拟化解决方案提供商,一直以来都选择的是VMware vSphere:其实,在此期间,我们也选择过其它产品,

沉淀,再出发——在Ubuntu Kylin15.04中配置Hadoop单机/伪分布式系统经验分享

在Ubuntu Kylin15.04中配置Hadoop单机/伪分布式系统经验分享 一.工作准备 首先,明确工作的重心,在Ubuntu Kylin15.04中配置Hadoop集群,这里我是用的双系统中的Ubuntu来配制的,不是虚拟机.在网上有很多配置的方案,我看了一下Ubuntu的版本有14.x,16.x等等,唯独缺少15.x,后来我也了解到,15.x出来一段时间就被下一个版本所替代了,可能有一定的问题吧,可是我还是觉得这个版本的用起来很舒服,但是当我安装了Ubuntu kylin15.04之后

应用交付工程师Troubleshooting经验分享

应用交付工程师Troubleshooting经验分享 应用交付设备在网络中的作用比较特殊,一边跟客户端通信,需要支持二三层交换机的功能,另一边跟后面的服务器或者其他应用设备相连,需要支持Layer 4的协议转换,但是这只是基本功能,应用交付设备作为具体应用的代理或者中转器,需要支持Layer7的功能,根据不同的应用协议,做出不同的分析处理或者优化. 以上特点决定了一个应用交付工程师不是简单地学习一下手册或者接受一下培训,再加上一定的知识基础就立刻能够胜任,必须不断地丰富知识范围,并且对各方面精研

MySQL 性能优化的最佳20多条经验分享

今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显.关于数据库的性能,这并不只是DBA才需要担心的                    事,而这更是我们程序员需要去关注的事情. 当我们去设计数据库表结构,对操作数据库时(尤其是查表时的SQL语句),我们都需要注意数据操作的性能.这里,我们不会讲过多的SQL语                句的优化,而只是针对MySQL这一Web应用最多的数据库.希望下面的这些优化技巧对你有用. 1. 为查询缓存优化你的查询 大多数的M

20多条MySQL 性能优化经验分享

当我们去设计数据库表结构,对操作数据库时(尤其是查表时的SQL语句),我们都需要注意数据操作的性能.这里,我们不会讲过多的SQL语句的优化,而只是针对MySQL这一Web应用最多的数据库.希望下面的这些优化技巧对你有用. 1. 为查询缓存优化你的查询 大多数的MySQL服务器都开启了查询缓存.这是提高性最有效的方法之一,而且这是被MySQL的数据库引擎处理的.当有很多相同的查询被执行了多次的时候,这些查询结果会被放到一个缓存中,这样,后续的相同的查询就不用操作表而直接访问缓存结果了. 这里最主要