オープンソースのルータであるVyOSをESXiに構築する手順のメモ
環境
ホスト:ESXi7.0 Update 3
VM :vyos-1.4
VyOSの特徴
VyOSは、オープンソースのネットワークオペレーティングシステムであり、ルーティング、ファイアウォール、VPN、およびその他のネットワーキング機能を提供することができます。
オープンソースであるため、ライセンス登録をVMでする必要はなく、無償・無期限に使用することができます。
(※参考に、A10のvThunderなどでは、ライセンスをVM毎に登録をする必要があったりします)
以下では、VyOSの主な特徴をわかりやすく解説します。
-
ルーティング機能
VyOSは、高度なルーティング機能を提供します。静的ルーティング、ダイナミックルーティング(OSPF、BGP、RIPなど)、VRF(仮想ルーティングとフォワーディング)など、さまざまなタイプのルーティングをサポートしています。これにより、大規模なネットワーク環境での柔軟なネットワーク設計が可能です。 -
セキュリティ機能
VyOSは、強力なファイアウォール機能を備えており、ネットワークのセキュリティを確保するために使用することができます。パケットフィルタリング、アプリケーションレベルゲートウェイ(ALG)、IDS/IPS(侵入検知/侵入防止システム)など、多くのセキュリティ機能が組み込まれています。 -
VPNサポート
VyOSは、仮想プライベートネットワーク(VPN)の設定を容易にするためのさまざまなプロトコルをサポートしています。OpenVPN、IPsec、L2TPなどのプロトコルを使用して、セキュアなリモートアクセスやサイト間接続を確立することができます。 -
クラウド対応
VyOSは、クラウド環境での展開にも適しています。AWS、Azure、Google Cloud Platformなど、さまざまなクラウドプロバイダーで動作することができます。これにより、クラウドネットワーキングの要件に対応できます。 -
パフォーマンスと拡張性
VyOSは、高いパフォーマンスと拡張性を備えています。ネットワークインターフェースの数、ルーティングテーブルのエントリ数、VPNトンネルの数など、大規模なネットワーク環境でもスケーラブルに動作します。 -
コマンドラインインターフェース(CLI)
VyOSは、コマンドラインインターフェース(CLI)を使用して操作することができます。このCLIは、ネットワークエンジニアやシステム管理者にとってなじみやすく、柔軟性があります。また、コマンドの履歴や自動補完など、便利な機能も提供されています。 -
カスタマイズ可能性
VyOSはオープンソースプロジェクトであり、ソースコードが公開されています。これにより、ユーザーは自身のニーズに合わせてカスタマイズや拡張が可能です。また、コミュニティや開発者との交流を通じて、問題の解決や新機能の提案が行われています。 -
ドキュメントとサポート
VyOSには、詳細なドキュメントとサポートが用意されています。公式のドキュメンテーション、フォーラム、チャットルーム、メーリングリストなど、さまざまなリソースが提供されています。これにより、初心者から上級者まで、ユーザーは必要な情報や支援を得ることができます。
インストール手順
VyOSのVMをするためには、VyOSのダウンロードページから、インストールイメージファイルをダウンロードします。
その後、ESXi上で仮想マシンを作成します。
準備
-
VyOSイメージファイルダウンロード
VyOS nightly buildsページから、VyOSイメージファイルをダウンロードする。本記事では、執筆時に最新である「vyos-1.4-rolling-202306020317-amd64.iso」を使用します。
-
データストアへアップロード
ダウンロードしたファイルをESXiのデータストアにアップロードしておきます。
これでISOイメージファイルの準備は完了です。
仮想マシン作成
-
作成タイプの選択
作成タイプの選択で[新規仮想マシンの作成] を選択します。 -
名前とゲストOSの選択
[名前]に任意の名前を入力します。OSは以下を選択します。
- 互換性:ESXi 7.0 U2 仮想マシン(※環境に合わせてください)
- ゲストOSファミリ:その他
- ゲストOSのバージョン:FreeBSD 13以降のバージョン(64ビット)
[次へ]を押下。
-
ストレージの選択
ストレージを選択して、[次へ]を押下。 -
設定のカスタマイズ
[設定のカスタマイズ]で、[CD/DVDドライブ1]から[データストアISOファイル]を選択する。[データストアブラウザ]が表示されるので、先ほどアップロードしたISOイメージファイルを選択する。
[CD/DVDドライブ1] > [CD/DVDメディア]にISOイメージファイルが選択されていることを確認して、[次へ]を押下。
-
設定の確認
[設定の確認]を確認して、[完了]を押下。 -
VMのパワーオン
作成したVMへ移動して、コンソール画面を押下。 -
ログイン確認
問題なくVM作成が終わった場合、下記画像のようにログイン(login:)が表示されます。
めちゃくちゃ初期起動も早いです。10secくらい笑ユーザ名:[vyos]、パスワード:[vyos]でログインをする。
vyos login: vyos << ユーザ名を入力 Password: vyos << パスワードを入力 ※入力値は表示されない Welcom to VyOS! ・・・ vyos@vyos:~$ << ログイン成功後、プロンプトが確認できるようになる
イメージ書き込み
イメージ書き込み設定をすることで、コンフィグが再起動しても消えないようにすることができます。
書き込みコマンドは以下です。
vyos@vyos:~$ install image
実行後、質問が表示されるので、要件等なければ以下のように答えていってください。
vyos@vyos:~$ install image
Would you like to continue? (Yes/No) [Yes]: Yes or Enter を実行
・・・
Partition (Auto/Parted/Skip) [Auto]: Auto or Enter を実行
・・・
Install the image on? [sda]:Enter を実行
・・・
This will destroy all data on /dev/sda.
Continue? (Yes/No) [No]: Yes を実行
・・・
How big of a root partition should I create?(2000MB - 8589MB)[8589MB]: Enter を実行
・・・
What would you like to name this image? [1.4-rolling-202306020317]: Enter を実行
・・・
I found the following configuration files:
/opt/vyatta/etc/config/config.boot
/opt/vyatta/etc/config.boot.default
Which one should I copy to sda? [/opt/vyatta/etc/config/config.boot]: Enter を実行
・・・
Enter password for administrator account
Enter password for user 'vyos': vyos を実行
Retype password for user 'vyos': vyos を実行
・・・
Which drive should GRUB modify the boot partition on? [sda]: Enter を実行
・・・
Done!Please reboot now
vyos@vyos:~$ poweroff を実行
Are you sure you want to poweroff this system?[y/N] y を実行
isoファイルアンマウント
仮想マシンを停止した状態で、下記画像のように「CD/DVDドライブ 1」を削除してください。
削除後、[保存]を押下。
保存後、再度起動できれば完了です。
SSH設定
SSHをして設定を変更いていきたいので、まずSSHの設定のみをコンソール画面から行います。
vyos@vyos:~$ configure
vyos@vyos# set interfaces ethernet eth0 address XX.XX.XX.XX/XX <--IPアドレス設定
vyos@vyos# set service ssh <--SSHの有効化
vyos@vyos# commit <-- コミット
vyos@vyos# save <--保存
EX IPアドレスを192.168.1.1/24として設定します。
vyos@vyos:~$ configure
[edit]
vyos@vyos# set interfaces ethernet eth0 address 192.168.1.1/24
vyos@vyos# set service ssh
vyos@vyos# commit
vyos@vyos# save
Done
基本操作
モード
一般モードと、設定変更をするコンフィグモードがあります。
一般モードはログイン時のモードで、主にshowコマンド等を使用し設定確認等をすることができます。
プロンプトは「$」です。
一般モード時において、「$ configure」を実行することで、コンフィグモードに入ります。
コンフィグモードのプロンプトは「#」です。
コンフィグモードから、一般モードへ戻る際は「# exit」を実行することで可能です。
vyos@vyos:~$ << 一般モード
vyos@vyos:~$ configure << コンフィグモードに入る
[edit]
vyos@vyos# <<コンフィグモード
[edit]
vyos@vyos# exit <<コンフィグモードから出る
[edit]
vyos@vyos:~$ << 一般モード
設定変更
設定変更は、コンフィグモードで行います。
設定追加
設定を入れる際は「# set ~~~ 」で行います。
vyos@vyos:~$ configure << コンフィグモードに入る
[edit]
vyos@vyos# set system host-name VyOS01
設定削除
設定削除をする場合は「# delete ~~~~ 」で行います。
vyos@vyos:~$ configure << コンフィグモードに入る
[edit]
vyos@vyos# delete system host-name VyOS01
設定反映
設定を反映させるためには、コミットと保存をする必要があります。
また、compareコマンドを使用することで、コミットする内容の差分を確認することができます。
# 変更設定の確認
vyos@vyos# compare
login {
+ user admin {
+ authentication {
+ plaintext-password "TEST"
+ }
+ }
user vyos {
# コミット実行
vyos@vyos# commit
# 保存をする
vyos@vyos# save
Saving configuration to '/config/config.boot'...
Done
showコマンド
showコマンドは一般モードでもコンフィグモードでも使用できますが、少しコマンドに差異があるので注意してください。
また、コンフィグモードで頭に「run」と付けることで、一般モードのコマンドを実行できます。
# 全コンフィグ確認
vyos@vyos# show
vyos@vyos:~$ show configuration
# コンフィグを入力方式で表示する
vyos@vyos:~$ show configuration commands
他のよく使用するshowコマンド一覧を書きます。
# ルーティングテーブル
show ip route (vrf all)
# ARPテーブル
show arp
# インターフェース
show interfaces
# OSPFネイバー
show ip ospf neighbor
# ログ
show log
# VRF
show vrf
# バージョン
show version