OpenWrt 21.02.3 on ESXi7 備忘録です.結論だけ知りたい方は後半の「OpenWrt イメージの取得」から見れば十分なことにご注意ください.
ひかり電話を解約した!→問題発生?→OpenWrt
前回,ドコモ光に修理をお願いしたことを記事にしましたが,これに合わせていわゆる「ひかり電話」サービス(固定電話)を解約しました.
これまで長いこと固定電話を契約してきましたが,ここ数年,固定電話に掛かってくるのはほぼセールスとアンケートで,いくら安価とは言え,役に立たないどころかある意味危険な目にあいかねないものをこれ以上放置するのはどうかな……と思ったからです.さすがに「固定電話の番号がない=信用されない」なんてこともなくなってますしね.
さて,これは知っている人は知っているのですが,
ひかり電話を解約すると(少なくともNTT西日本管内の場合はそう)NTTからレンタルしている GV-ONU (GE-ONU) からルーター機能が削除されてしまいます.だからひかり電話解約後は(現実的には)対応するルーターを自分で用意しなきゃいけません.
私の場合は OCN が契約プロバイダーです.そして,OCN の場合,OCNバーチャルコネクトなる方式にルーターが対応していることが望ましいのですが,残念ながら対応ルーターはあまり多くありません.
そして私の自宅ネットワーク,いろいろ事情があって VLAN を使ってます(実際に使用していたのは Ubiquiti の ER-X です).つまり,OCNバーチャルコネクトに対応していて VLAN が使えるルーターじゃないと置き換えにはなりません.もちろん,VLAN が使えるルーターと OCN バーチャルコネクト対応ルーターを別々に設置することもできますが,これは黒々とした機械が居間に1台増なので,奥様から怒られてしまいます.
だからと言って VLAN とOCNバーチャルコネクト両方に対応したルーターは業務用でお値段それなり(Yamaha の RTX830 とか NEC の IX とかですね)です.と言うことで,どうしたものかなぁ……といろいろググってみたところソフトウェアルーターの OpenWRT なら対応してそう……なら,これを現在自宅で稼働中の ESXi 7.0 上で動かしてみよう……と思った訳ですが,実際にやってみると色々ハマりどころがありました.
と言うことで,以下,まずは記事執筆時点で最新の OpenWrt を ESXi7.0 上で動作させる際の注意点を備忘録としてまとめておきます.
OpenWrt イメージの取得
公式ページの情報は
ですが,情報がかなり古いようで,実際には以下の記事の方が参考になります.
ただし上の記事も ver. 19.07 前提で,最新版だといろいろ違ってきている部分があります.以下 ver. 20.02.3 の場合の手順を示しますが,画面イメージ等は適宜上の記事を参考にしてもらえればと思います.
まず OpenWrt のイメージですが,
から最新版をダウンロードします(記事執筆時点だと21.02.3).ESXi の場合は(Raspberry pi とかを使っていない限りは)targets/x86/64 以下を参照することになりますが,執筆時点の最新版 21.02.3 だと,
以下にあるイメージをダウンロードします.実際にダウンロードするファイルは,EFI で起動させるか BIOS で起動させるかに応じてそれぞれ
です(squashfs となっているものは読み取り専用なので(多分)ESXi 運用の場合は適当じゃないと思います.いまさら BIOS で起動させるのもどうかと思いますので,EFI のイメージを使えば良いと思います).
OpenWrt イメージの ESXi イメージへの変換
次に取得したイメージを ESXi のイメージに変換しなければなりません.
Ubuntu の場合の変換手順は 21.02.3 の場合は以下の通りです(Windows の場合は Ubuntu on wsl や StarWind V2V Converter を使えば良い.Mac だと brew で qemu をインストールすれば良い).
$ sudo apt install qemu-utils $ wget https://downloads.openwrt.org/releases/21.02.3/targets/x86/64/openwrt-21.02.3-x86-64-generic-ext4-combined-efi.img.gz $ gunzip openwrt-21.02.3-x86-64-generic-ext4-combined-efi.img.gz $ qemu-img convert -f raw -O vmdk openwrt-21.02.3-x86-64-generic-ext4-combined-efi.img openwrt.vmdk
これで openwrt.vmdk というファイルができるので,これを ESXi のデータストアにアップロードしておきます.
次に,ESXi の SSH を有効化して,
$ cd /vmfs/volumes/datastore1/ $ vmkfstools -i openwrt.vmdk openwrt-cv.vmdk -d thin
のようにアップロードしたイメージを openwrt-cv.vmdk に変換します(これをやらないと,Unsupported or invalid disk type 2 for ‘scsi0:0’ のようなエラーが仮想マシン起動時に出てしまい起動してくれません).
これで ESXi で起動するイメージの完成です.
仮想マシンの作成
仮想マシンの作成は以下の手順で行いました.
- 新規仮想マシンの作成
- ゲストOSファミリ:Linux
- ゲストOSのバージョン:その他の Linux 5.x 以降(64ビット)
- 設定のカスタマイズを適当に設定(USB,CD/DVDドライブの削除等を行う)
作成後,以下の変更を加えました.
- 設定の編集を開き,ハードディスクを削除し,ハードディスクの追加から「既存のハードディスク」を選択して変換した openwrt-cv.vmdk を選んで保存する(もとのHDDイメージは削除して良い).
- 設定の編集をもう一度開き,追加したハードディスクの容量を8もしくは16G位に設定し直して保存する.
- 仮想マシン オプションの「起動オプション」の「UEFI セキュアブートの有効化」のチェックを外す.
これで OpenWrt が起動するはずです.なお,起動後に必要な数だけ Ethernet を追加するなどすることになりますが,
- Ethernet アダプタのタイプは「VMXNET3」で良い(NE1000などに変更する必要なし)
- システムの Software から open-vm-tools を追加できる.
を注意しておきたいと思います.なお,この方法で構築した OpenWrt の場合はリセットして初期状態に戻すことができないのですが,ESXi の場合,スナップショットを取れますので,スナップショットの方がより便利です.
雑感とOCNへの接続について
と言うことで無事 ESXi で OpenWrt を起動させることが無事できたのですが,このあと実際に OpenWrt で OCN バーチャルコネクト接続させるのにもいろいろハマりどころがありました.このハマりどころについては別記事(別備忘録)にしようと思ってはいますが,そもそも論として,
自宅に ESXi 環境を構築しているとか VLAN 構築しているとか,逸般の違家庭でしかあり得ないこと
なので,あんまり参考にならない情報な気もしないではないです(自戒).ただし,逸般の違家庭の定義は,
によると,
- NASが設置されている.
- 業務用ルータがある.(RTX・IXなど)
- ラックマウントサーバーがある.
- サーバールームがある,ラックがある.
だそうで,私の場合は黒々とした機械を設置しないで済むよう(RTX とか IX とか使わない.もちろんサーバーラックなんかとんでもない!)OpenWrt を使った訳ですから,微妙に逸般の違家庭ではない,と言って良いような気がしないでもないです.
以上!