VMware ESXi 8.0に仮想ネットワークを作りOpenWRT仮想ルータ経由でアクセス

公開 | 更新 
図9.Home Lab仮想ネットワーク構成

VMware ESXi ホストに構築した OpenWRT 仮想ルータへの 仮想ネットワーク を構築して、他の仮想マシンやESXiホストが仮想ルータを通じてネットワークアクセスできるようにします。

ESXiホストの4つのI225ポート

VMware ESXi 8.0ホストを構築したJ4125ミニPCには4口のIntel I225 2.5GbEポートがあり、前回構築したOpenWRT仮想ルータへ提供しているのはいずれも、PCIデバイスパススルーとしてのI225ポート。

  • vmnic0 : OpenWRTへPCIデバイスパススルー (WAN)
  • vmnic1 : OpenWRTへPCIデバイスパススルー (LAN)
  • vmnic2 : 〜空き〜
  • vmnic3 : デフォルト管理ポート (vmk0)

ESXiホスト上のデフォルトの仮想スイッチ vSwitch0 は、ホスト管理用途のみ。

図1.仮想スイッチvSwitch0は管理用

図1.仮想スイッチvSwitch0は管理用

仮想マシン用仮想スイッチを追加

ESXiホスト内に今後増やす予定の仮想マシンがネットワークアクセスに使う、次のような仮想スイッチ vSwitch1 を追加しました。

図2.新規仮想スイッチvSwitch1

図2.新規仮想スイッチvSwitch1

そして物理ポートを設けないこのスイッチに、仮想マシン用 Home LAN 、ホスト管理用 Home Mgmt の2つのポートグループを作り、

図3.新規ポートグループの作成

図3.新規ポートグループの作成

管理用ポートグループに引き当てるvmkernel NIC vmk1 を作りました。

図4.新規vmkernel NICの作成

図4.新規vmkernel NICの作成

新規ポートグループをOpenWRT仮想ルータへアタッチ

作成したポートグループ Home LAN を前回作成したOpenWRT仮想ルータへ追加することで、仮想スイッチ vSwitch1 へのネットワークアクセスをOpenWRT仮想ルータに担ってもらいます。

図5.OpenWRT仮想ルータへアタッチ

図5.OpenWRT仮想ルータへアタッチ

先ほど設置した vSwitch1 に仮想ルータが現れました。

図6.vSwitch1に仮想マシン繋がる

図6.vSwitch1に仮想マシン繋がる

ところがここで仮想ルータを起動すると、困った現象に遭遇しました。

追加したNICに命名順を割り込まれ、パススルーモードの2つの既存NIC名が変わってしまったのです。

 

OpenWRT起動時に自動NICリネーム

おそらく今後仮想NICを追加する度に、パススルーデバイスの前に割り込まれてしまうのは明らかなので、OpenWRT公式ユーザガイドに提示されていた例を元に、2つのパススルーデバイスをそれぞれ、 pth0 , pth1 へと起動時にリネームするような仕組みを構築します。

まず、 /etc/config/network にリネームしたいデバイスのMACアドレスをリネーム後のNIC名と共に登録します。また、 br-lanwan の中にあるNIC名を書き換えることも忘れずに。

次に、起動時の自動実行スクリプト、 /etc/rc.local を開いて末尾の exit 0 よりも上にリネームスクリプトを以下の要領で加えます(公式ユーザガイドそのままではうまく動かなかったので、多少改変しています)。

このスクリプトの動作はおおよそ次の通りです。

  1. OpenWRTの起動直後は、 eth0 , eth1 , eth2 が存在。
  2. /sys/class/net/*/device/uevent でOSの持つデバイス一覧を取得。
  3. uci でOpenWRTのネットワークデバイス定義を取得。
  4. ループを回して両者のMACアドレスを照合しマッチする場合は、インターフェイスダウンしてリネーム。
  5. 最後にネットワークサービスをリロードしてアップ。
  6. リネーム後、 eth0 , pth0 , pth1  という構成に。

再起動後、ブートログを確認してリネーム作業の痕跡を見つけました。

LuCI上にもリネーム後のデバイス名が一覧に表示されています。

図7.リネーム後のネットワークデバイス一覧

図7.リネーム後のネットワークデバイス一覧

問題無く動作するのを確認したら、アップグレードの際などに /etc/rc.local が上書きされてしまう恐れに備えて、バックアップするなどしておきましょう。

ESXiホストのデフォルトゲートウェイ変更

最後にESXiホストのルーティングを確認し、OpenWRT仮想ルータをデフォルトゲートウェイに変更します。

デフォルトゲートウェイは、デフォルトのTCP/IPスタックの中にあります。本当は、割り当てているVMKernel NICもvmk1へ変えたいところなのですが、それはエラーになります。

図8.デフォルトのTCPIPスタック編集

図8.デフォルトのTCPIPスタック編集

変更後、ルーティングテーブルは以下のようになりました。ちなみにゲートウェイの変更程度であればESXi Host Clientから編集可能なのですが、これ以上のルーティング操作は esxcli に頼らざるを得ないのだそう。

その後、 vmk0 をリンクダウンの状態にしてしまうと、これが何故か次のような状態になり、 192.168.51.0/24 以外の疎通が途絶えてしまいました。

仕方がないので esxcli でデフォルトゲートウェイを設定することに。

なんだかだんだんと歪なルーティングになってきましたが、しばらくこれで運用することにします。

 

Home Lab仮想ネットワークの完成

今回までにJ4125産業用ミニPCを使って構築した、VMware ESXi 8.0ホストとその中のOpenWRT仮想ルータの論理的な構成を図示するとこのようになりました(関連記事はこちら)。

図9.Home Lab仮想ネットワーク構成

図9.Home Lab仮想ネットワーク構成

 

リソースは未だあるので、今後DNSサーバを立てたり、外からリモート操作可能なデスクトップ仮想マシンを作成するつもりです。

 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA