Search the VMware Knowledge Base (KB)
View by Article ID

Cisco 发现协议 (CDP) 网络信息 (2062283)

  • 0 Ratings

Purpose

免责声明:本文为 Cisco Discovery Protocol (CDP) network information (1007069) 的翻译版本。尽管我们会不断努力为本文提供最佳翻译版本,但本地化的内容可能会过时。有关最新内容,请参见英文版本。
 

本文提供查看 Cisco 发现协议 (CDP) 信息的步骤。

Resolution

CDP 用于共享有关其他直连 Cisco 网络设备(如上游物理交换机)的信息。使用 CDP,ESX 和 ESXi 管理员可确定连接到给定 vSwitch 的 Cisco 交换机端口。为特定 vSwitch 启用 CDP 后,可从 vSphere Client 查看 Cisco 交换机的属性(如设备 ID、软件版本和超时)。在对虚拟和物理端口设置上与 VLAN 标记方法相关的网络连接问题进行故障排除时,此信息很有用。

注意:要获取 CDP 信息,必须将 ESX 主机配置为侦听 CDP 信息,且已连接设备必须播发 CDP 信息。如果未提供 CDP 信息,请确认是否在 ESX 虚拟交换机和物理交换机上启用了 CDP。有关详细信息,请参见在 ESX 中配置 Cisco 发现协议 (1003885) (Configuring the Cisco Discovery Protocol (CDP) with ESX (1003885))

vSphere/VI Client 中的 CDP 信息

要使用 vSphere/VI Client 查看 CDP 信息,请执行以下操作:

  1. 使用 vSphere/VI Client 连接到 vCenter Server/Virtual Center 或 ESX 主机。
  2. 在清单中选择 ESX 主机。
  3. 单击配置选项卡。
  4. 单击网络
  5. 在 vSwitch 的右侧,单击属性下方的“信息”图标。例如:


  6. 工具提示将打开,并显示所选物理网络接口的 Cisco 发现协议信息。例如:

 
 

通过 PowerCLI 获取 CDP 信息

要使用 PowerCLI 来显示 CDP 信息,请执行以下操作:

  1. 使用 PowerCLI 来连接 ESX 主机或 vCenter Server:

    # Connect-VIServer esx-or-vc-hostname

  2. 在 PowerCLI 中运行以下脚本:

    Get-VMHost | Where-Object {$_.State -eq "Connected"} |
    %{Get-View $_.ID} |
    %{$esxname = $_.Name; Get-View $_.ConfigManager.NetworkSystem} |
    %{ foreach($physnic in $_.NetworkInfo.Pnic){
        $pnicInfo = $_.QueryNetworkHint($physnic.Device)
        foreach($hint in $pnicInfo){
          Write-Host $esxname $physnic.Device
          if( $hint.ConnectedSwitchPort ) {
            $hint.ConnectedSwitchPort
        }
        else {
          Write-Host "No CDP information available."; Write-Host
        }
      }
     }
    }

    此时会显示连接的每台 ESX 主机上每个物理网络接口的 CDP 信息。

    例如:

    esxhostname vmnic0
    CdpVersion       : 2
    Timeout          : 0
    Ttl              : 177
    Samples          : 54732
    DevId            : example-lab-b2-c02
    Address          : 10.11.12.254
    PortId           : GigabitEthernet1/0/7 <<< Switch Port ID >>>
    DeviceCapability : VMware.Vim.PhysicalNicCdpDeviceCapability
    SoftwareVersion  : Cisco IOS Software, C3750 Softw
    HardwarePlatform : cisco WS-C3750G-24TS-1U
    IpPrefix         : 0.0.0.0
    IpPrefixLen      : 0
    Vlan             : 1 <<< VLan ID >>>
    FullDuplex       : True
    Mtu              : 0
    SystemName       :
    SystemOID        :
    MgmtAddr         : 10.11.12.254
    Location         :

  3. 要获取有关上行链路 Cisco 交换机以及为 CDP 配置的相关物理交换机端口的信息,请在 PowerCLI 中运行以下脚本:

    param($VMHost)
    $vmh = Get-VMHost $VMHost
    If ($vmh.State -ne "Connected") {
      Write-Output "Host $($vmh) state is not connected, skipping."
      }
    Else {
      Get-View $vmh.ID | `
      % { $esxname = $_.Name; Get-View $_.ConfigManager.NetworkSystem} | `
      % { foreach ($physnic in $_.NetworkInfo.Pnic) {
        $pnicInfo = $_.QueryNetworkHint($physnic.Device)
        foreach( $hint in $pnicInfo ){
          # Write-Host $esxname $physnic.Device
          if ( $hint.ConnectedSwitchPort ) {
             $hint.ConnectedSwitchPort | select @{n="VMHost"
    e={$esxname}},@{n="VMNic";
    e={$physnic.Device}},DevId,Address,PortId,HardwarePlatform
             }
           else {
             Write-Host "No CDP information available."
            }
          }
        }
      }
    }

    例如,如果此脚本另存为 Get-mVMHostCDPInfo.ps1

    # Get-mVMHostCDPInfo.ps1 -VMHost esxhostname | ft -a

    VMHost VMNic DevId Address PortId HardwarePlatform
    ------ ----- ----- ------- ------ ----------------
    esxhostname vmnic0 esx1.mon.com 1.1.1.1 GigabitEthernet1/0/9 cisco WS-C3750G-24TS-1U
    esxhostname vmnic1 esx1.mon.com 1.1.1.1 GigabitEthernet2/0/21 cisco WS-C3750G-24TS-1U
    esxhostname vmnic2 esx1.mon.com 1.1.1.1 GigabitEthernet1/0/10 cisco WS-C3750G-24TS-1U
    esxhostname vmnic3 esx1.mon.com 1.1.1.1 GigabitEthernet2/0/10 cisco WS-C3750G-24TS-1U
    esxhostname vmnic4 esx1.mon.com 1.1.1.1 GigabitEthernet1/0/11 cisco WS-C3750G-24TS-1U
    esxhostname vmnic5 esx1.mon.com 1.1.1.1 GigabitEthernet2/0/11 cisco WS-C3750G-24TS-1U
    esxhostname vmnic6 esx2.mon.com 1.1.1.2 GigabitEthernet1/0/6 cisco WS-C3750G-24TS-1U
    esxhostname vmnic7 esx2.mon.com 1.1.1.2 GigabitEthernet1/0/8 cisco WS-C3750G-24TS-1U

通过 ESX/ESXi 命令行获取 CDP 信息

要使用 ESX/ESXi 命令行查看 CDP 信息,请执行以下操作:

  1. 以 root 身份通过 SSH 或控制台登录到 ESX/ESXi。
  2. 运行以下命令来查看 CDP 信息:

    对于 ESX 4.x:

        # vmware-vim-cmd hostsvc/net/query_networkhint

    对于 ESXi 4.x 和 5.x:

        # vim-cmd hostsvc/net/query_networkhint

    对于 ESXi 4.x 和 5.x,如果您希望仅指定一个物理网卡进行查询,请运行:

        # vim-cmd hostsvc/net/query_networkhint --pnic-name=vmnic[xx]

    注意:从控制台登录到 ESXi 主机。有关详细信息,请参见用来获得紧急支持的技术支持模式 (1003677) (Tech Support Mode for Emergency Support (1003677))

    此时会显示连接的每台 ESX 主机上每个物理网络接口的 CDP 信息。

    例如:

    (vim.host.PhysicalNic.NetworkHint) [
      (vim.host.PhysicalNic.NetworkHint) {
        dynamicType = <unset>,
        device = "vmnic3",
        subnet = (vim.host.PhysicalNic.NetworkHint.IpNetwork) [
          (vim.host.PhysicalNic.NetworkHint.IpNetwork) {
            dynamicType = <unset>,
            vlanId = 0,
            ipSubnet = "10.21.4.1-10.21.7.254",
         }
       ],
     connectedSwitchPort = (vim.host.PhysicalNic.CdpInfo) null,
    },
    (vim.host.PhysicalNic.NetworkHint) {
      dynamicType = <unset>,
      device = "vmnic1",
      subnet = (vim.host.PhysicalNic.NetworkHint.IpNetwork) [
        (vim.host.PhysicalNic.NetworkHint.IpNetwork) {
        dynamicType = <unset>,
        vlanId = 0,
        ipSubnet = "10.21.3.1-10.21.3.15",
      }
    ],
    connectedSwitchPort = (vim.host.PhysicalNic.CdpInfo) {
      dynamicType = <unset>,
      cdpVersion = 0,
      timeout = 0,
      ttl = 169,
      samples = 2982,
      devId = "PA-3210-2-R15-SW1",
      address = "10.21.10.115",
      portId = "GigabitEthernet1/0/7", <<< Switch Port ID >>>
      deviceCapability = (vim.host.PhysicalNic.CdpDeviceCapability) {
         dynamicType = <unset>,
          router = false,
          transparentBridge = false,
         sourceRouteBridge = false,
         networkSwitch = true,
         host = false,
         igmpEnabled = true,
         repeater = false,
      },
         softwareVersion = "Cisco IOS Software, C3750 Softw",
         hardwarePlatform = "cisco WS-C3750G-48TS",
         ipPrefix = "0.0.0.0",
         ipPrefixLen = 0,
         vlan = 3, <<< VLan ID >>>
         fullDuplex = true,
         mtu = 0,
         systemName = "",
         systemOID = "",
         mgmtAddr = "10.21.10.115",
         location = "",
        },
      },
    ]
  3. 也可以通过运行以下命令来找到相同的 CDP 信息:

    # esxcfg-info | less

    搜索特定的 vmnic#(在本示例中为 vmnic0)来查找 CDP 信息。

    示例输出:

    |----Name........................................vmnic0
    |----PCI Bus.....................................3
    |----PCI Slot....................................0
    |----PCI function................................0
    |----MAC Address.................................xx:xx:xx:xx:xx:xx
    |----Virtual MAC Address.........................xx:xx:xx:xx:xx:xy
    |----Driver......................................bnx2
    |----Network Hint................................0 10.112.100.0/255.255.252.0
    |----MTU.........................................1500
    |----Configured Speed............................1000
    |----Actual Speed................................1000
    |----Configured Duplex...........................1
    |----Actual Duplex...............................1
    |----Link Up.....................................true
    |----enabled.....................................true
    |----Wake on LAN supported ......................true
    |----Wake on LAN enabled ........................true
    |----Resource scheduler allowed ................true
    |----Resource scheduler supported ...............true
    |----CDP Network.................................true
    \==+CDP Summary :
    |----Cdp Version.............................2
    |----Timeout.................................0
    |----Time-to-live............................177
    |----Samples.................................20131
    |----Device Id...............................c2960G-lab-c18
    |----Ip Address..............................10.112.106.86
    |----Ip Prefix...............................0.0.0.0/0
    |----Port Id.................................GigabitEthernet0/35
    |----Capabilities............................40
    |----Version.................................Cisco IOS Software, C2960 Software
    |----Platform................................cisco WS-C2960G-48TC-L
    |----Vlan....................................1032
    |----Duplex..................................true
    |----MTU.....................................0
    |----System Name.............................
    |----System OID..............................
    |----Mgmt Ip Address.........................10.112.106.86

使用 PowerCLI 设置 CDP 信息

$esxcli = Get-EsxCli -VMHost $myhost
$esxcli.network.vswitch.standard.set("both","1500","vSwitch0")

使用 esxcli 命令在 ESXi 5.x 上设置 CDP 信息

# esxcli network vswitch standard set –c both –v vSwitch#

注意:请使用 vSwitch 编号来替换 #

使用 esxcli 设置链路层发现协议 (LLDP) 信息

# esxcli network vswitch standard list -v vSwitch#

Tags

Mandarin

See Also

Request a Product Feature

To request a new product feature or to provide feedback on a VMware product, please visit the Request a Product Feature page.

Feedback

  • 0 Ratings

Did this article help you?
This article resolved my issue.
This article did not resolve my issue.
This article helped but additional information was required to resolve my issue.

What can we do to improve this information? (4000 or fewer characters)




Please enter the Captcha code before clicking Submit.
  • 0 Ratings
Actions
KB: