虚拟化网络故障排查-常用命令

网络故障排查命令

一些用于网络故障排查的常用命令包括:net-dvs,Esxcli network,vicfg-route,vicfg-vmknic,vicfg-dns,vicfg-nics,和vicfg-vswitch

您可以使用net-dvs命令对VMware分布式dvSwitch进行故障排除。该命令显示有关VMware分布式dvSwtich配置的所有信息。net-dvs命令从/etc/vmware/dvsdata.db文件中读取信息并显示控制台中的所有数据。vSphere主机每五分钟更新一次dvsdata.db文件。

使用PuTTY连接到vSphere主机。出现提示时输入您的用户名和密码。在CLI中键入以下命令:net-dvs

在上面的屏幕截图中,您可以看到第一行代表VMware Distributed Switch的UUID。第二行显示分布式交换机可以拥有的最大端口数。com.vmware.common.alias = dvswitch-Network-Pools代表分布式交换机的名称。com.vmware.common.uplinkPorts: dvUplink1到dvUplinkn表示一个分布式交换机具有多少上行链路端口。分布式交换机MTU设置为1,600,可以在其下方看到有关CDP的信息。CDP信息可用于解决连接问题。

您可以看到com.vmware.common.respools.list列出网络资源池,同时com.vmware.common.host.uplinkPorts显示分配给上行链路端口的端口号。关于这些上行链路端口的更多细节通过其端口号针对每个上行链路端口解释如下。您还可以查看以下屏幕截图中显示的端口统计信息。执行故障排除时,这些统计信息可以帮助您检查Distributed Switch和端口的行为。从这些统计信息中,您可以诊断数据是否存在数据包进出。正如您在下面的屏幕截图中看到的,有关数据包丢弃的所有指标均为零。如果您在故障排除中发现数据包被丢弃,您可以轻松地找到问题的根本原因:

但是net-dvs命令记录很少,通常很难找到有用的参考资料。此外,VMware不支持它。但是,您可以将其与–h一起使用以显示更多选项。

修复dvsdata.db文件

有时,vSphere 主机的dvsdata.db文件损坏,您遇到不同类型的分布式交换机错误,例如,无法创建代理DVS. 在这种情况下,当您尝试在vSphere主机上运行net-dvs命令时,它也会失败并出现错误。正如我之前提到的,该net-dvs命令是从/etc/vmware/dvsdata.db文件读取数据。dvsdata.db文件损坏的可能原因可能是网络中断; 或者当vSphere主机与vCenter断开连接并被删除时,它可能在其缓存中包含该信息。

您可以通过以下步骤还原dvsdata.db文件来解决此问题:

通过PuTTY,连接到正常运行的vSphere主机。从vSphere主机复制dvsdata.db文件。该文件可以在/etc/vmware/dvsdata.db中找到。将复制的dvsdata.db文件传输到损坏的vSphere主机并覆盖它。重新启动vSphere主机。vSphere主机启动并运行后,使用PuTTY连接到它。运行net-dvs命令。这次命令应该成功执行没有任何错误。

ESXCLI网络

该esxcli network命令是系统管理员经常用到的工具,用于排除网络相关问题。该esxcli network命令将用于检查不同的网络配置并解决问题。您可以键入esxcli network以快速查看帮助参考以及可与命令一起使用的不同选项。

让我们来看看一些有用的esxcli网络故障排除命令。在vSphere CLI中键入以下命令,以列出所有虚拟机及其所在的网络。您可以看到返回的命令World ID,虚拟机名称,端口数和网络:

esxcli network vm list

World ID Name Num Ports Networks

-------- --------------------------------------------------- --------- ---------------

14323012 cluster08_(5fa21117-18f7-427c-84d1-c63922199e05) 1 dvportgroup-372

现在使用World ID来列出虚拟机当前使用的所有端口。您可以看到虚拟交换机名称,NIC的MAC地址,IP地址和上行链路端口ID:

esxcli network vm port list -w 14323012

Port ID: 50331662

vSwitch: dvSwitch-Network-Pools

Portgroup: dvportgroup-372

DVPort ID: 1063

MAC Address: 00:50:56:01:00:7e

IP Address: 0.0.0.0

Team Uplink: all(2)

Uplink Port ID: 0

Active Filters:

在CLI中键入以下命令以列出虚拟交换机的统计信息 - 您需要替换–p标志后最后一个命令返回的端口ID :

esxcli network port stats get -p 50331662

Packet statistics for port 50331662

Packets received: 10787391024

Packets sent: 7661812086

Bytes received: 3048720170788

Bytes sent: 154147668506

Broadcast packets received: 17831672

Broadcast packets sent: 309404

Multicast packets received: 656

Multicast packets sent: 52

Unicast packets received: 10769558696

Unicast packets sent: 7661502630

Receive packets dropped: 92865923

Transmit packets dropped: 0

键入以下内容 命令列出有关虚拟机网卡的完整信息:

esxcli network nic stats get -n vmnic0

NIC statistics for vmnic0

Packets received: 2969343419

Packets sent: 155331621

Bytes received: 2264469102098

Bytes sent: 46007679331

Receive packets dropped: 0

Transmit packets dropped: 0

Total receive errors: 78507

Receive length errors: 0

Receive over errors: 22

Receive CRC errors: 0

Receive frame errors: 0

Receive FIFO errors: 78485

Receive missed errors: 0

Total transmit errors: 0

Transmit aborted errors: 0

Transmit carrier errors: 0

Transmit FIFO errors: 0

Transmit heartbeat errors: 0

Transmit window errors: 0

所有的vicfg-*命令都是非常有用且易于使用。以下是vicfg-*与网络故障排除相关的一些命令:

vicfg-route: 添加或删除IP路由,以及如何创建和删除默认IP网关。vicfg-vmknic:对vSphere主机的VMkernel NIC执行不同的操作。vicfg-dns:用于操纵DNS信息。vicfg-nics:用于操作vSphere物理网卡。vicfg-vswitch:用于创建,删除和修改vswitch信息。

上行链路故障排除

我们将使用vicfg-nics命令进行管理vSphere主机的物理网络适配器。vicfg-nics命令还可用于设置上行链路适配器的速度,VMkernel名称,双工设置,驱动程序信息以及NIC的链路状态信息。

连接到vMA设备控制台并设置目标vSphere主机:

vifptarget --set crimv3esx001.linxsol.com

列出vSphere主机中可用的所有网卡。有关输出,请参阅以下屏幕截图:

vicfg-nics -l

你可以看到,我的vSphere主机有五种网卡的vmnic0到vmnic5。您可以看到PCI和驱动程序信息。所有网卡的链路状态都已启动。您还可以看到两种类型的网卡速度:1000 Mbs和9000 Mbs。Description字段中还有一个卡名称,MTU和网卡的Mac地址。您可以设置网卡进行自动协商,如下所示:

vicfg-nics --auto vimnic0

现在让我们设置vmnic0的速度为1000和全双工设置:

vicfg-nics --duplex full --speed 1000 vmnic0

排除虚拟交换机

最后一个命令将讨论的是vicfg-vswitch。vicfg-vswitch命令是一个非常强大的命令,可用于操纵虚拟交换机的日常操作。我将向您展示如何创建和配置端口组和虚拟交换机。

在vMA设备中设置vSphere主机,您可以在其中获取有关虚拟交换机的信息:

vifptarget --set crimv3esx001.linxsol.com

键入以下命令以列出有关vSphere主机具有的交换机的所有信息。您可以在以下屏幕截图中看到命令输出:

vicfg-vswitch -l

您可以看到vSphere主机有一个虚拟交换机和两个虚拟NIC,用于管理网络和vMotion的流量。虚拟交换机有128个端口,其中7个处于使用状态。交换机有两个上行链路,MTU设置为1500,而正在使用两个VLAN:一个用于管理网络,另一个用于vMotion流量。您还可以看到三个名为分布式交换机OpenStack,dvSwitch-External-Networks和dvSwitch-Network-Pools。

添加新的虚拟交换机:

vicfg-vswitch --add vSwitch002

这将创建一个具有128个端口且MTU为1500的虚拟交换机。您可以使用该--mtu标志指定不同的MTU。现在将上行链路适配器添加vnic02到新创建的虚拟交换机vSwitch002:

vicfg-vswitch --link vmnic0 vSwitch002

要将端口组添加到虚拟交换机,请使用以下命令:

vicfg-vswitch --add-pg portgroup002 vSwitch002

现在将上行链路适配器添加到端口组:

vicfg-vswitch --add-pg-uplink vmnic0 --pg portgroup002 vSwitch002

我们已经讨论了创建虚拟交换机及其端口组以及添加上行链路的所有命令。现在我们将看到如何删除和编辑虚拟交换机的配置。可以使用–N标志删除端口组中的上行链路NIC 。vmnic0从portgroup002:删除:

vicfg-vswitch --del-pg-uplink vmnic0 --pg portgroup002 vSwitch002

您可以删除刚刚创建的端口组,如下所示:

vicfg-vswitch --del-pg portgroup002 vSwitch002

要删除交换机,首先需要从虚拟交换机中删除上行链路适配器。您需要使用–U参数,该参数将取消上行链路与交换机的链接:

vicfg-vswitch --unlink vmnic0 vSwitch002

您可以使用–d参数删除虚拟交换机。

vicfg-vswitch --delete vSwitch002

您可以通过使用vicfg-vswitch --get-cdp来检查Cisco发现协议CDP)的配置。以下命令导致CDP处于Listen状态,这表示vSphere主机已配置为从物理交换机接收CDP信息。

vi-admin @vma:〜[crimv3esx001.linxsol.com]> vicfg-vswitch --get-cdp vSwitch0

listen

您可以将vSphere主机的CDP选项配置为关闭,侦听或通告。在Listen模式下,vSphere主机尝试发现并发布从Cisco交换机端口收到的此信息,但Cisco设备无法看到vSwitch的信息。在Advertise模式下,vSphere主机不会发现和发布有关Cisco交换机的信息; 相反,它会将有关其vSwitch的信息发布到Cisco交换机设备。

vicfg-vswitch --set-cdp both vSwitch0

原文地址:https://www.toutiao.com/article/6687094095246000654/

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


学习编程是顺着互联网的发展潮流,是一件好事。新手如何学习编程?其实不难,不过在学习编程之前你得先了解你的目的是什么?这个很重要,因为目的决定你的发展方向、决定你的发展速度。
IT行业是什么工作做什么?IT行业的工作有:产品策划类、页面设计类、前端与移动、开发与测试、营销推广类、数据运营类、运营维护类、游戏相关类等,根据不同的分类下面有细分了不同的岗位。
女生学Java好就业吗?女生适合学Java编程吗?目前有不少女生学习Java开发,但要结合自身的情况,先了解自己适不适合去学习Java,不要盲目的选择不适合自己的Java培训班进行学习。只要肯下功夫钻研,多看、多想、多练
Can’t connect to local MySQL server through socket \'/var/lib/mysql/mysql.sock问题 1.进入mysql路径
oracle基本命令 一、登录操作 1.管理员登录 # 管理员登录 sqlplus / as sysdba 2.普通用户登录
一、背景 因为项目中需要通北京网络,所以需要连vpn,但是服务器有时候会断掉,所以写个shell脚本每五分钟去判断是否连接,于是就有下面的shell脚本。
BETWEEN 操作符选取介于两个值之间的数据范围内的值。这些值可以是数值、文本或者日期。
假如你已经使用过苹果开发者中心上架app,你肯定知道在苹果开发者中心的web界面,无法直接提交ipa文件,而是需要使用第三方工具,将ipa文件上传到构建版本,开...
下面的 SQL 语句指定了两个别名,一个是 name 列的别名,一个是 country 列的别名。**提示:**如果列名称包含空格,要求使用双引号或方括号:
在使用H5混合开发的app打包后,需要将ipa文件上传到appstore进行发布,就需要去苹果开发者中心进行发布。​
+----+--------------+---------------------------+-------+---------+
数组的声明并不是声明一个个单独的变量,比如 number0、number1、...、number99,而是声明一个数组变量,比如 numbers,然后使用 nu...
第一步:到appuploader官网下载辅助工具和iCloud驱动,使用前面创建的AppID登录。
如需删除表中的列,请使用下面的语法(请注意,某些数据库系统不允许这种在数据库表中删除列的方式):
前不久在制作win11pe,制作了一版,1.26GB,太大了,不满意,想再裁剪下,发现这次dism mount正常,commit或discard巨慢,以前都很快...
赛门铁克各个版本概览:https://knowledge.broadcom.com/external/article?legacyId=tech163829
实测Python 3.6.6用pip 21.3.1,再高就报错了,Python 3.10.7用pip 22.3.1是可以的
Broadcom Corporation (博通公司,股票代号AVGO)是全球领先的有线和无线通信半导体公司。其产品实现向家庭、 办公室和移动环境以及在这些环境...
发现个问题,server2016上安装了c4d这些版本,低版本的正常显示窗格,但红色圈出的高版本c4d打开后不显示窗格,
TAT:https://cloud.tencent.com/document/product/1340