VMware ESXiのコマンドリファレンス esxcfg-vmknic

VMware ESXiはSSHログインも可能で、独自のコマンドが多く実装されている。 今回は、そのうちの一つであるesxcfg-vmknicコマンドについて記述していく。

まずはヘルプの内容を記載する。

~ # esxcfg-vmknic -h
esxcfg-vmknic <options>
-a|--add Add a VMkernel NIC to the system,
requires IP parameters and
connection point(portgroup/dvs-name & dvport-id).
-d|--del Delete VMkernel NIC on the system
requires connection point(portgroup/dvs-name & dvport-id).
-e|--enable Enable the given NIC if disabled.
-D|--disable Disable the given NIC if enabled.
-p|--portgroup Setting portgroup as connection point.
-s|--dvs-name Setting DVSwitch name of the connection point.
This requires --dvport-id option to
be given in the same command.
-v|--dvport-id Setting DVPort ID of connection point.
This requires --dvs-name option to
be given in the same command.
-l|--list List VMkernel NICs.
-i|--ip <IP Spec> Where <IP Spec> can be one of the following...
<X.X.X.X> - to use static IPv4 address specified
DHCP - to enable IPv4 DHCP for address.
<X:X:X::/X> - to use static IPv6 address
DHCPV6 - to enable IPv6 DHCP for address.
AUTOCONF - to enable IPv6 Router advertised address.
-U|--unset-ip <IP Spec> Where <IP Spec> can be one of the following...
V4 - to unset IPv4 address.
<X:X:X::/X> - to remove the specified IPv6 address
DHCPV6 - to disable IPv6 DHCP address.
AUTOCONF - to disable IPv6 Router advertised flag.
-n|--netmask <X.X.X.X> The IP netmask for this VMkernel NIC.
Setting the IP netmask requires that the --ip
option be given in the same command.
-P|--peerdns Set peer dns. If set the system
will use the HostName, HostIPAddress
Domain returned by DHCP. Valid only for DHCP
-M|--mac-address <address> MAC address for the interface being created.
-m|--mtu MTU MTU for the interface being created.
Valid MTU values are 1280-9000
-6|--enable-ipv6 <true|false> Enable or disable IPv6 for next boot.
-r|--restore Restore VMkernel TCP/IP interfaces from
Configuration file (FOR INTERNAL USE ONLY).
-N|--netstack Netstack Instance
-h|--help Show this message.

Examples:

To add a vmknic to a portgroup
esxcfg-vmknic -a -i DHCP -p pgName
or
esxcfg-vmknic -a -i x.x.x.x -n 255.255.255.0 pgName

To delete a vmknic from a portgroup
esxcfg-vmknic -d -p pgName
or
esxcfg-vmknic -d pgName

これだけ見てもよくわからないと思うので、以下に説明を補足をしていく。

このコマンド「esxcfg-vmknic」は、ESXiの管理NIC(VMkernel Port)に関する情報の取得や管理NICの削除、追加を行えるコマンドだ。 そもそも、ESXiの管理NIC、VMkernel Portって何よ?と言われそうだし、言葉だけだとイメージが付きにくそうなので、以下に補足の図を作成してみた。

このコマンドで管理出来るのは、上の図でいうと「仮想NIC」。 vSphere Clientの構成タブのネットワークでは、「VMkernel Port」にあたる箇所について表示、削除、追加出来るコマンドということになる。

このコマンドについて、基本的な使い方を以下に記述していこうと思う。

管理NICの一覧を表示

オプション「-l」をつける事で、現在保有しているESXiの管理NICの一覧を表示できる。

esxcfg-vmknic -l

上記コマンドの実行例がこちら。実際に手元にインストールしたESXi 5.5上でコマンドを実行してみた。

~ # esxcfg-vmknic -l
Interface  Port Group/DVPort   IP Family IP Address                              Netmask         Broadcast       MAC Address       MTU     TSO MSS   Enabled Type
vmk0       Management Network  IPv4      192.168.0.190                           255.255.255.0   192.168.0.255   00:15:17:16:ad:92 1500    65535     true    STATIC
vmk0       Management Network  IPv6      fe80::215:17ff:fe16:ad92                64                              00:15:17:16:ad:92 1500    65535     true    STATIC, PREFERRED
vmk0       Management Network  IPv6      240f:7:61dc:1:215:17ff:fe16:ad92        64                              00:15:17:16:ad:92 1500    65535     true    AUTOCONF, PREFERRED
vmk1       VMkernel            IPv4      169.254.230.31                          255.255.0.0     169.254.255.255 00:50:56:69:47:90 1500    65535     true    DHCP
vmk1       VMkernel            IPv6      fe80::250:56ff:fe69:4790                64                              00:50:56:69:47:90 1500    65535     true    STATIC, PREFERRED

左からインターフェイス名、ポートグループ名、IPアドレスの種類(IPv4 or IPv6)、IPアドレス、サブネットマスク、ブロードキャストアドレス、MACアドレス、MTUの値、TSO MSS、有効・無効の状態、固定か自動払い出しIPかといったタイプとなっている。

管理NICを追加する

管理NICの追加については、以下のようにコマンドを実行する。

esxcfg-vmknic -a -i IPアドレス -n サブネットマスク -p ポートグループ名

なお、追加の時のみ「-M」オプションを使用する事でMACアドレスの指定が出来る。

esxcfg-vmknic -a -i IPアドレス -n サブネットマスク -M MACアドレス -p ポートグループ名

実際に使用したコマンドを以下に記載する。

esxcfg-vmknic -a -i 192.168.0.30 -n 255.255.255.0 -M 00:15:17:16:ad:93 -p VMkernel

管理NICを削除する

管理NICの削除については、以下のようにコマンドを実行する。

esxcfg-vmknic -d -p ポートグループ名

実際に使用したコマンドを以下に記載する。

esxcfg-vmknic -d -p VMkernel

既存の管理NICのIPアドレスを変更する

オプション「-i」でIPアドレスを変更出来る。その際、ポートグループの指定を行う必要があるため、「-p」オプションでポートグループを設定する。

DHCPで設定させる場合

esxcfg-vmknic -i DHCP -p ポートグループ名

固定IPアドレスで設定させる場合

esxcfg-vmknic -i IPアドレス -n サブネットマスク -p ポートグループ名

実際に設定したコマンドを以下に記載する。

esxcfg-vmknic -i 192.168.0.30 -n 255.255.255.0 -p VMkernel

以上が簡単な使用方法およびその実例となる。