- 追加された行はこの色です。
- 削除された行はこの色です。
目次~
#contents
*概要 [#w4b56e82]
ESXi 6.0のLLDPサポート状況は以下となっている。
|vSwitch|不可|
|dvSwitch|可|
|VMNIC|可|
|vSwitch|CDPのみサポート|
|dvSwitch|LLDP/CDPをサポート|
|vmnic|LLDPをサポート|
*vmnicのLLDP有効化 [#u8284e4c]
**概要 [#k774ee77]
GUI画面にはLLDPに関する項目は無く、有効化にはSSHにてリモートログインを行った上でvsishコマンドで手動設定を行う。
**設定手順 [#vb23c431]
設定はvSwitch単位で行い、vmnicとの接続性があるポートに対してのみ行う。
***ポート番号を確認 [#wfabd045]
-コマンド書式
vsish -e ls /net/portsets/[vSwitch Num]/ports
-サンプル
vsish -e ls /net/portsets/vSwitch0/ports
-出力結果
33554433/
33554434/
33554435/
33554436/
33554437/
33554438/
***vmnicとの接続ポート確認 [#f002ddc3]
-コマンド書式
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の設定確認 [#o70df31b]
-コマンド
vsish -e get /net/portsets/[vSwitch Num]/ports/[Port Num]/lldp/enable
-サンプル
vsish -e get /net/portsets/vSwitch0/ports/33554434/lldp/enable
-出力結果
|0|LLDPが無効|
|1|LLDPが有効|
***LLDPの有効化 [#hda09a27]
-コマンド
vsish -e set /net/portsets/[vSwitch Num]/ports/[Port Num]/lldp/enable 1
-サンプル
vsish -e set /net/portsets/vSwitch0/ports/33554434/lldp/enable 1
**設定スクリプト [#b4be8686]
下記サイトにて公開されているスクリプトを使用することでvSwitch単位でLLDPの有効/無効を設定できる。
[[esxi_lldp_control.sh:https://gist.github.com/raspi/21f75fbf400bd63041fdbe0efdbb521e]]
***使用方法 [#lcd20e63]
-コマンド書式(有効化)
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
------------------------------
***ソース [#u9b72e90]
-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
*ESXi起動時のLLDP自動有効化 [#d83c4937]
** 概要[#jdfb23c8]
ESXiの再起動によりLLDPの設定は初期化(無効化)されてしまう。このため、常時LLDPを有効にするためにはESXiの起動時に自動的に設定を有効化する対処が必要となる。~
~
/etc/rc.local.d/local.shに記入することで、ESXiの起動時にコマンドを実行させることができる。~
** 設定 [#y89ea477]
起動時にアクセスが可能な場所に前述のesxi_lldp_control.shを配置し、起動時にこれを使用してLLDPの有効化を行う。~
-/etc/rc.local.d/local.sh
(任意の箇所に記入)
## enable LLDP
/vmfs/volumes/〜PATH〜/esxi_lldp_control.sh vSwitch0 1 > /dev/null 2>&1
/vmfs/volumes/〜PATH〜/esxi_lldp_control.sh vSwitch1 1 > /dev/null 2>&1
・・・必要数を記述する
*参考資料 [#sf0b61b7]
[[LLDP and Standard Virtual Switches :http://blog.shanonolsson.com/2014/01/03/lldp-and-standard-virtual-switches/]]
~
[[esxi_lldp_control.sh:https://gist.github.com/raspi/21f75fbf400bd63041fdbe0efdbb521e]]