2018年12月29日土曜日

ESXi Shellを使って、コマンドでESXiの仮想ネットワークの設定を行う方法

先日、検証用ESXiサーバーが突如不調となり、VMware Host Clientにログインできなくなる事象が発生した。再起動しても治らなかったため、再インストールで復旧させる事態となった。

その際にESXiの仮想スイッチの初期設定をVMware Host ClientのGUI画面でポチポチ実施することがどうにも面倒だったので、次回からESXi Shellを使ってコマンドで簡単に実施できるようにしてみた、という話をする。

設定内容

vSwitchの構成は以下の通り。ESXiは6.7を使用している。


コマンドで確認すると、最終形は以下となる。

# esxcfg-vswitch -l
------------------------------
Switch Name      Num Ports   Used Ports  Configured Ports  MTU     Uplinks
vSwitch0         2560        6           128               1500    vmnic0

  PortGroup Name        VLAN ID  Used Ports  Uplinks
  Network_33            0        2           vmnic0
  Manage_33             0        1           vmnic0

Switch Name      Num Ports   Used Ports  Configured Ports  MTU     Uplinks
vSwitch1         2560        6           128               1500    vmnic1

  PortGroup Name        VLAN ID  Used Ports  Uplinks
  Network_1055          1055     0           vmnic1
  Network_1077          1077     0           vmnic1
  Network_1011          1011     2           vmnic1
  Manage_1011           1011     1           vmnic1
------------------------------

仮想スイッチの作成

まずは仮想スイッチを作成する。vSwitch0はESXiインストール時に作成されているので特に作業は不要となる。

コマンド

esxcfg-vswitchコマンドを使って仮想スイッチ作成を行う。使用する構文とオプションは以下の通り。
  • -a:vSwitch1を追加
    # esxcfg-vswitch -a <仮想スイッチ>
  • -L:vSwitch1に物理NICの割り当て
    # esxcfg-vswitch -L <物理NIC> <仮想スイッチ>

実行例

# esxcfg-vswitch -a vSwitch1
# esxcfg-vswitch -L vmnic1 vSwitch1

ポートグループ作成

コマンド

ポートグループ作成も引き続きesxcfg-vswitchコマンドで実施可能となる。
  • -A:ポートグループを追加
    # esxcfg-vswitch -A <ポートグループ> <仮想スイッチ>

VLAN IDを設定するポートグループは、先にポートグループを作成したのち、VLAN IDの設定を行う。使用する構文とオプションは以下の通り。
  • -A:ポートグループ追加
    # esxcfg-vswitch -A <ポートグループ> <仮想スイッチ>
  • -p、-v:-pで指定したポートグループのVLAN IDを-vの値に設定
    # esxcfg-vswitch -p <ポートグループ> -v <VLAN ID> <仮想スイッチ>

実行例

・VLAN IDなしの場合
# esxcfg-vswitch -A Manage_33 vSwitch0
# esxcfg-vswitch -A Network_33 vSwitch0

・VLAN ID指定の場合
# esxcfg-vswitch -A Manage_1011 vSwitch1
# esxcfg-vswitch -p Manage_1011 -v 1011 vSwitch1
# esxcfg-vswitch -A Network_1011 vSwitch1
# esxcfg-vswitch -p Network_1011 -v 1011 vSwitch1
# esxcfg-vswitch -A Network_1055 vSwitch1
# esxcfg-vswitch -p Network_1055 -v 1055 vSwitch1
# esxcfg-vswitch -A Network_1077 vSwitch1
# esxcfg-vswitch -p Network_1077 -v 1077 vSwitch1

VMkernel NICを作成

コマンド

VMkernel NICはesxcfg-vmknicコマンドで設定することができる。使用する構文とオプションは以下の通り。
  • -a、-i、-n:それぞれVMkernel NICの追加、IPアドレス、サブネットマスク
    # esxcfg-vmknic -a -i <IPアドレス> -n <サブネットマスク> <ポートグループ>
また、デフォルトで使用している「Management Network」というポートグループ名を変更したいので、一度既存のVMkernel NICを削除してからVMkernel NICを再作成する。削除の際に使用する構文とオプションは以下の通り。削除の際はVMkernel NICの名前ではなく所属するポートグループを指定して削除する。
  • -d:VMkernel NICを削除
    # esxcfg-vmknic -d <ポートグループ>

実行例

・VMkernel NICを新規に作成
# esxcfg-vmknic -a -i 192.168.11.11 -n 255.255.255.0 Manage_1011

・VMkernel NICのポートグループ変更 (削除して再度作成)
# esxcfg-vmknic -d "Management Network"
# esxcfg-vmknic -a -i 192.168.33.11 -n 255.255.255.0 Manage_33

不要なポートグループ削除

コマンド

デフォルトで作成されるポートグループ「VM Network」と「Management Network」は不要となるため削除する。使用する構文とオプションは以下の通り。
  • -D:ポートグループを削除
    # esxcfg-vswitch -D <ポートグループ> <仮想スイッチ>

実行例

# esxcfg-vswitch -D "VM Network" vSwitch0
# esxcfg-vswitch -D "Management Network" vSwitch0

無差別モードを許可する

ESXi on ESXiやHyper-V on ESXiをよく検証で使うことがあるので、無差別モード (プロミスキャスモード) を許可しておく。

コマンド

コマンドはesxcliで可能となる。使用する構文とオプションは以下の通り。

# esxcli network vswitch standard policy security set -p <true or false> -v <仮想スイッチ>

実行例

・設定
# esxcli network vswitch standard policy security set -p true -v vSwitch1

・確認
# esxcli network vswitch standard policy security get -v  vSwitch1
------------------------------
   Allow Promiscuous: true
   Allow MAC Address Change: true
   Allow Forged Transmits: true
------------------------------

設定反映

vSwitchに対する設定は、コマンドを実行するだけでは反映されない (VMware Host Clientで表示されない) ので、以下コマンドで反映を行う。

# esxcli network vswitch standard set -v vSwitch0
# esxcli network vswitch standard set -v vSwitch1

反映後、VMware Host Clientにて仮想スイッチやポートグループが表示されればOK。

・vSwitch0

・vSwitch1

すべてのコマンドを並べてみた

上記一連のコマンドを並べると以下の通り。次回からはこのコマンドを流すだけでESXiの仮想ネットワークの設定が完了する。

# esxcfg-vswitch -a vSwitch1
# esxcfg-vswitch -L vmnic1 vSwitch1
# esxcfg-vswitch -A Manage_33 vSwitch0
# esxcfg-vswitch -A Network_33 vSwitch0
# esxcfg-vswitch -A Manage_1011 vSwitch1
# esxcfg-vswitch -p Manage_1011 -v 1011 vSwitch1
# esxcfg-vswitch -A Network_1011 vSwitch1
# esxcfg-vswitch -p Network_1011 -v 1011 vSwitch1
# esxcfg-vswitch -A Network_1055 vSwitch1
# esxcfg-vswitch -p Network_1055 -v 1055 vSwitch1
# esxcfg-vswitch -A Network_1077 vSwitch1
# esxcfg-vswitch -p Network_1077 -v 1077 vSwitch1
# esxcfg-vmknic -a -i 192.168.11.11 -n 255.255.255.0 Manage_1011
# esxcfg-vmknic -d "Management Network"
# esxcfg-vmknic -a -i 192.168.33.11 -n 255.255.255.0 Manage_33
# esxcfg-vswitch -D "VM Network" vSwitch0
# esxcfg-vswitch -D "Management Network" vSwitch0
# esxcli network vswitch standard policy security set -p true -v vSwitch1
# esxcli network vswitch standard set -v vSwitch0
# esxcli network vswitch standard set -v vSwitch1

0 件のコメント:

コメントを投稿

人気の投稿