目次

概要

ESXi 6.0のLLDPサポート状況は以下となっている。

vSwitchCDPのみサポート
dvSwitchLLDP/CDPをサポート
vmnicLLDPをサポート

vmnicのLLDP有効化

概要

GUI画面にはLLDPに関する項目は無く、有効化にはSSHにてリモートログインを行った上でvsishコマンドで手動設定を行う。

設定手順

設定はvSwitch単位で行い、vmnicとの接続性があるポートに対してのみ行う。

ポート番号を確認

  • コマンド書式
    vsish -e ls /net/portsets/[vSwitch Num]/ports 
  • サンプル
    vsish -e ls /net/portsets/vSwitch0/ports 
  • 出力結果
    33554433/
    33554434/
    33554435/
    33554436/
    33554437/
    33554438/

vmnicとの接続ポート確認

  • コマンド書式
    vsish -e get /net/portsets/[vSwitch Num]/ports/[Port Num]/status
  • サンプル
    vsish -e get /net/portsets/vSwitch0/ports/33554434/status 
  • 出力結果
    port {
      port index:2
      portCfg:
      dvPortId:
      clientName:vmnic2
      clientType:port types: 4 -> Physical NIC
      clientSubType:port types: 0 -> NONE
      world leader:0
      flags:port flags: 0x1010c043 -> IN_USE ENABLED UPLINK DISPATCH_STATS_IN DISPATCH_STATS_OUT DISPATCH_STATS CONNECTED LLDP_ENABLED TUNNEL_ENDPOINT
      Impl customized blocked flags:0x00000000
      Passthru status:: 0x1 -> WRONG_VNIC
      fixed Hw Id:00:1f:29:57:70:b0:
      ethFRP:frame routing {
         requested:filter {
            flags:0x00000000
            unicastAddr:00:00:00:00:00:00:
            numMulticastAddresses:0
            multicastAddresses:
            LADRF:[0]: 0x0 
            [1]: 0x0 
         }
         accepted:filter {
            flags:0x00000000
            unicastAddr:00:00:00:00:00:00:
            numMulticastAddresses:0
            multicastAddresses:
            LADRF:[0]: 0x0 
            [1]: 0x0 
         }
      }
      filter supported features:features: 0 -> NONE
      filter properties:properties: 0 -> NONE
      rx mode:properties: 0 -> INLINE
      tune mode:Tuning mode: 0 -> default
    }

clientName:欄にvmnic名が表示されているポートでのみLLDPを有効化することができる。

LLDPの設定確認

  • コマンド
    vsish -e get /net/portsets/[vSwitch Num]/ports/[Port Num]/lldp/enable
  • サンプル
    vsish -e get /net/portsets/vSwitch0/ports/33554434/lldp/enable
  • 出力結果
    0LLDPが無効
    1LLDPが有効

LLDPの有効化

  • コマンド
    vsish -e set /net/portsets/[vSwitch Num]/ports/[Port Num]/lldp/enable 1
  • サンプル
    vsish -e set /net/portsets/vSwitch0/ports/33554434/lldp/enable 1

設定スクリプト

下記サイトにて公開されているスクリプトを使用することでvSwitch単位でLLDPの有効/無効を設定できる。

esxi_lldp_control.sh

使用方法

  • コマンド書式(有効化)
    esxi_lldp_control.sh [vSwitch Num] 1
  • コマンド書式(無効化)
    esxi_lldp_control.sh [vSwitch Num] 0
  • サンプル(有効化)
    # esxi_lldp_control.sh vSwitch0 1
    
     Port: 33554433
      port index:1
      clientName:Management
      clientType:port types: 0 -> NONE
      portCfg:
     Trying to change LLDP state to 1..
     ERROR: changing LLDP state failed
    ------------------------------ 
    
    Port: 33554434
      port index:2
      clientName:vmnic2
      clientType:port types: 4 -> Physical NIC
      portCfg:
     Trying to change LLDP state to 1..
     LLDP state successfully changed
    ------------------------------

ソース

  • esxi_lldp_control.sh
    #!/bin/sh
    # Enable/Disable LLDP on vSwitch ports on VMWare ESXi
    # Tested with ESXi 6.0.0 3620759
    # Doesn't need vCenter, only SSH access to the ESXi machine
    # (c) Pekka "raspi" Jarvinen 2016 http://raspi.fi/
    
    SWITCH=$1
    OPERATION=$2
    
    if [ "$SWITCH" = "" ] || [ "$OPERATION" = "" ]; then
      echo "Enable/disable LLDP on vSwitch"
      echo ""
      echo "USAGE:"
      echo "$0 <vSwitch> <operation>"
      echo "Examples: "
      echo "Enable LLDP: $0 vSwitch0 1"
      echo "Disable LLDP: $0 vSwitch0 0"
    
      exit 1
    fi
    
    case "$OPERATION" in
        0) ;;
        1) ;;
        *) echo "Invalid operation: $OPERATION"; exit 1 ;;
    esac
    
    
    for PORT in `vsish -e ls /net/portsets/$SWITCH/ports | sed 's/\/$//'`
    do
      echo "Port: $PORT"
      DATA=`vsish -e get /net/portsets/$SWITCH/ports/$PORT/status`
      echo "$DATA" | grep -i "port index:"
      echo "$DATA" | grep -i "clientName:"
      echo "$DATA" | grep -i "clientType:"
      echo "$DATA" | grep -i "portCfg:"
    
      echo "  Trying to change LLDP state to $OPERATION.."
      vsish -e set /net/portsets/$SWITCH/ports/$PORT/lldp/enable $OPERATION &> /dev/null
    
      LLDPSTATE=`vsish -e get /net/portsets/$SWITCH/ports/$PORT/lldp/enable`
      if [ "$LLDPSTATE" = "$OPERATION" ]; then 
        echo "  LLDP state successfully changed"
      else
        echo "  ERROR: changing LLDP state failed"
      fi
    
      echo "------------------------------"
      echo ""
      
    done

参考資料

LLDP and Standard Virtual Switches
esxi_lldp_control.sh


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS