インストールメディア入手
vyosはvyosプロジェクトが公開しているオープンソースの仮想ルータです。”vyos-1.5-rolling-202503030030”が今現在で一番新しいのでこれをダウンロードします。

ダウンロートしたisoイメージはESXiのデータストアにアップロードします。
ESXiゲートウェイ構築
ESXi内外のゲートウェイとなる最上位の仮想ルータ(ESXiゲートウェイ)を構築します。
ESXiゲートウェイは本番サイトに含まれませんが、ESXi外部(PC)と本番サイトの経路にあるため冗長構成をとります。ESXiゲートウェイの構成は以下の通りです。

設定項目 | 仮想ルータ(MASTER) | 仮想ルータ(BACKUP) |
仮想マシン名(ホスト名) | rt001 | rt002 |
ネットワークアダプタ1 ポートグループ | Global Network | Global Network |
ネットワークインターフェース1(eth0)IPアドレス | 192.168.11.201/24 | 192.168.11.202/24 |
ネットワークインターフェース1(eth0)仮想IPアドレス | 192.168.11.200/24 | 192.168.11.200/24 |
ネットワークアダプタ2 ポートグループ | ESXi Rooting Network | ESXi Rooting Network |
ネットワークインターフェース2(eth1)IPアドレス | 172.16.1.11/24 | 172.16.1.12/24 |
ネットワークインターフェース2(eth1)仮想IPアドレス | 172.16.1.10/24 | 172.16.1.10/24 |
仮想マシン作成
ESXiコンソール画面左の「仮想マシン」をクリック、画面左上部にある「仮想マシンの作成/登録」をクリックして仮想マシンの作成します。仮想マシン作成ウィザード各画面の設定は以下の通りです。
Select a name and guest OS
設定項目 | 設定値 |
名前 | rt001 |
互換性 | ESXi 6.5 仮想マシン |
ゲストOSファミリ | その他 |
ゲストOSのバージョン | FreeBSD(64bit) |
Custmize settings
追加操作:画面上部「ネットワーク・アダプタの追加」を1回クリック
設定項目 | 設定値 |
CPU | 1 |
メモリ | 1024 MB |
ハードディスク 1(SIZE) | 8 GB |
ディスク・プロビジョニング | シン プロビジョニング |
ネットワーク アダプタ 1 | Global Network |
新しいネットワーク アダプタ | ESXi Rooting Network |
CD/DVD Drive 1 | Datastore ISO file |
CD/DVD Media | [データストア・アップロード・ディレクトリ]/vyos-1.5-rolling-202503030030-generic-amd64.iso |
Ready to complete
設定内容の確認を行います。問題がなければ「完了」をクリックして仮想マシンを作成します。
仮想マシン作成ウィザード画面が閉じて仮想マシン管理画面に戻るので最後に一覧にrt001が作成されていることを確認して完了です。
rt001と同じ手順でrt002の仮想マシンも作成します。
vyosインストール
仮想マシンを起動してブラウザコンソールを開きます。しばらくするとインストール開始画面が表示されるのでデフォルトのKVM Consoleを選択したままEnterを押下します。
ログインプロンプトが表示されたらvyosアカウント(初期パスワードvyos)でログインして以下のコマンドでインストールを開始します。
【rt001、rt002で実行】
-----------------------------------------------------------------------------
install image

vyosのインストールは対話形式で進めます。y/nを入力する項目はy(1か所だけY)、デフォルト値の上書きを入力する項目はそのままEnterキーを押下します。3番目と4番目の項目はvyosアカウントの新しいパスワードを入力します。

インストールが終わったらvyosをリブートします。
【rt001、rt002で実行】
-----------------------------------------------------------------------------
sudo reboot

仮想ルータ構成
ESXiゲートウェイ外側インターフェース設定
仮想ルータのOS再起動後、vyosアカウントでログインしてインターフェースの状態を確認します。
【rt001、rt002で実行】
-----------------------------------------------------------------------------
show interfaces

eth0は仮想マシンを作るときにポートグループ”Global Network”を割り当てた1番目のネットワーク・アダプタ、eth1はポートグループ”ESXi Rooting Network”を割り当てた2番目のネットワーク・アダプタです。eth0がESXiゲートウェイ外側インターフェース、eth1がESXiゲートウェイ内側インターフェースになります。
編集モードに移行してeth0のIPアドレスとデフォルトゲートウェイを設定します。デフォルトゲートウェイのIPアドレスはインターネットに接続されている物理ルータのLAN側IPアドレスです。
【rt001で設定】
-----------------------------------------------------------------------------
# 編集モードに遷移
configure
# eth0にIPアドレスとサブネットマスク長を設定
set interfaces ethernet eth0 address 192.168.11.201/24
# デフォルトゲートウェイに物理ルータのLAN側IPアドレスを設定
set protocols static route 0.0.0.0/0 next-hop 192.168.11.1
# 変更を確定
commit
-----------------------------------------------------------------------------
【rt002で設定】
-----------------------------------------------------------------------------
configure
set interfaces ethernet eth0 address 192.168.11.202/24
set protocols static route 0.0.0.0/0 next-hop 192.168.11.1
commit
PCでコマンドプロンプトを立ち上げrt001、rt002にpingが通ることを確認します。
【PCから実行】
-----------------------------------------------------------------------------
ping -n 2 192.168.11.201
ping -n 2 192.168.11.202
sshの有効化とホスト名の設定を行います。
【rt001で設定】
-----------------------------------------------------------------------------
# sshを有効化
set service ssh
# ホスト名を指定
set system host-name rt001
# 設定変更を確定
commit
# 設定を保存
save
-----------------------------------------------------------------------------
【rt002で設定】
-----------------------------------------------------------------------------
set service ssh
set system host-name rt002
commit
save
PCでteratermを立ち上げてvyosアカウントでrt001(192.168.11.201)、rt002(192.168.11.202)にログインします。

ログインに成功したらESXiのブラウザコンソールは不要です。exitコマンドを繰り返し入力してOSからログアウト、右上化の”×”ボタンをクリックしてブラウザコンソールを閉じます。
ここからの作業はteratermで行います。VRRPグループ を作成してESXiゲートウェイ外側の通信を冗長化します。
【rt001で設定】
-----------------------------------------------------------------------------
# 編集モードに遷移
configure
# VRRPグループvlan10(vrid 10)を定義
set high-availability vrrp group vlan10 vrid 10
# vlan10のインターフェースにeth0を設定
set high-availability vrrp group vlan10 interface eth0
# vlan10の仮想IPアドレスを定義
set high-availability vrrp group vlan10 address 192.168.11.200/24
# プライオリティを設定
set high-availability vrrp group vlan10 priority 200
# アドバタイズ間隔(秒単位)を設定
set high-availability vrrp group vlan10 advertise-interval 1
# 設定変更を確定
commit
-----------------------------------------------------------------------------
【rt002で設定】
-----------------------------------------------------------------------------
configure
set high-availability vrrp group vlan10 vrid 10
set high-availability vrrp group vlan10 interface eth0
set high-availability vrrp group vlan10 address 192.168.11.200/24
set high-availability vrrp group vlan10 priority 100
set high-availability vrrp group vlan10 advertise-interval 1
commit
rt001、rt002から仮想IPアドレス(192.168.11.200)へのping疎通を実行し、問題がなければ設定を保存します。
【rt001、rt002で実行】
-----------------------------------------------------------------------------
ping -c 2 192.168.11.200
save
ESXiゲートウェイ内側インターフェース設定
ESXiゲートウェイ内側のインターフェースのIPアドレス設定と通信の冗長化を行います。
【rt001で設定】
-----------------------------------------------------------------------------
set interfaces ethernet eth1 address 172.16.10.11/24
set high-availability vrrp group vlan20 vrid 20
set high-availability vrrp group vlan20 interface eth1
set high-availability vrrp group vlan20 address 172.16.1.10/24
set high-availability vrrp group vlan20 priority 200
set high-availability vrrp group vlan20 advertise-interval 1
commit
-----------------------------------------------------------------------------
【rt002で設定】
-----------------------------------------------------------------------------
set interfaces ethernet eth1 address 172.16.10.12/24
set high-availability vrrp group vlan20 vrid 20
set high-availability vrrp group vlan20 interface eth1
set high-availability vrrp group vlan20 address 172.16.1.10/24
set high-availability vrrp group vlan20 priority 100
set high-availability vrrp group vlan20 advertise-interval 1
commit
rt001、rt002からネットワーク・インターフェースのIPアドレスと仮想IPアドレスにping疎通確認を行い問題がなければ設定を保存、編集モードを終了します。
【rt001、rt002で実行】
-----------------------------------------------------------------------------
ping -c 2 172.16.10.11
ping -c 2 172.16.10.12
ping -c 2 172.16.10.10
save
exit
“show vrrp”コマンドでVRRPの状態を確認します。rt001がMASTER、rt002がBACKUPとなっていればOKです。
【rt001、rt002で実行】
-----------------------------------------------------------------------------
show vrrp
-----------------------------------------------------------------------------
【rt001実行結果】
-----------------------------------------------------------------------------
vyos@rt001:~$ show vrrp
Name Interface VRID State Priority Last Transition
------ ----------- ------ ------- ---------- -----------------
vlan10 eth0 10 MASTER 200 1m23s
vlan20 eth1 20 MASTER 200 1m20s
vyos@rt001:~$
-----------------------------------------------------------------------------
【rt002実行結果】
-----------------------------------------------------------------------------
vyos@rt002:~$ show vrrp
Name Interface VRID State Priority Last Transition
------ ----------- ------ ------- ---------- -----------------
vlan10 eth0 10 BACKUP 100 42s
vlan20 eth1 20 BACKUP 100 42s
vyos@rt002:~$
VRRP同期グループ設定
各インターフェースの冗長化は完了しましたが、eth0、eth1それぞれ個別に冗長化されている状態です。
この状態はどちらかのインターフェースに障害が発生した場合、そのインターフェースのみがBACKUP側に切り替わり、もう片方のインターフェースはMASTER側に残ったままとなってしいます。
同期グループを定義して両方のインターフェースが切り替わるように設定します。
【rt001、rt002で設定】
-----------------------------------------------------------------------------
# 編集モードに遷移
configure
# 高可用性VRRPの編集
edit high-availability vrrp
# 同期グループMAINのメンバーにvlan10を設定
set sync-group MAIN member vlan10
# 同期グループMAINのメンバーにvlan20を設定
set sync-group MAIN member vlan20
# 設定変更を確定
commit
# 設定を保存
save
high-availability構成の内容は”show high-availability”コマンドで確認することができます。
【rt001実行結果】
-----------------------------------------------------------------------------
vyos@rt001# show high-availability
vrrp {
group vlan10 {
address 192.168.11.200/24 {
}
advertise-interval 1
interface eth0
priority 200
vrid 10
}
group vlan20 {
address 172.16.1.10/24 {
}
advertise-interval 1
interface eth1
priority 200
vrid 20
}
sync-group MAIN {
member vlan10
member vlan20
}
}
[edit]
上はrt001の出力ですが、rt002の出力内容もほぼ同じです。ただしrt002のプライオリティにはvlan10、vlan20とも100が設定されています。
DNS設定
仮想ルータにDNSを設定、ESXiゲートウェイ自身をDNSサーバとしてESXi内部からのリクエストを処理できるようにフォワーダーを構成します。
【rt001で設定】
-----------------------------------------------------------------------------
# 仮想ルータのDNSを設定
set system name-server 192.168.11.1
# DNSクエリ転送先に仮想ルータ自身のDNSを設定
set service dns forwarding system
# DNSクエリをリスニングするIPアドレスを設定
set service dns forwarding listen-address 172.16.1.10
set service dns forwarding listen-address 172.16.1.11
# DNSクエリのリクエストを許可するクライアントを指定
set service dns forwarding allow-from 172.16.0.0/16
# 設定変更を確定
commit
-----------------------------------------------------------------------------
【rt002で設定】
-----------------------------------------------------------------------------
set system name-server 192.168.11.1
set service dns forwarding system
set service dns forwarding listen-address 172.16.1.10
set service dns forwarding listen-address 172.16.1.12
set service dns forwarding allow-from 172.16.0.0/16
commit
nslookupコマンドでNICT公開NTPのURLに対する名前解決とping疎通を確認し、問題がなければ設定を保存します。
【rt001、rt002で実行】
-----------------------------------------------------------------------------
nslookup ntp.nict.jp
ping -c 2 ntp.nict.jp
save
NTP設定
時刻同期するタイムサーバをNICT公開NTP、NTPクライアントはESXi内部からのみ許可しするよう仮想ルータのNTPを設定します。
【rt001、rt002で設定】
-----------------------------------------------------------------------------
# NTPの設定を削除
delete service ntp
# 時刻問合せを許可するクライアントのネットワークを指定
set service ntp allow-client address 172.16.0.0/16
# 上位NTPサーバを指定
set service ntp server ntp.nict.jp pool
# 設定変更を確定
commit
NTPの設定内容を確認する場合は”show service ntp”を実行します。
【rt001実行結果】
-----------------------------------------------------------------------------
vyos@rt001# show service ntp
allow-client {
address 172.16.0.0/16
}
server ntp.nict.jp {
pool
}
[edit]
chronyを再起動してNTPの設定を反映します。
【rt001、rt002で実行】
-----------------------------------------------------------------------------
sudo su - -c 'systemctl restart chrony.service'
時刻同期の状況を確認します。
【rt001、rt002で実行】
-----------------------------------------------------------------------------
chronyc sources
【rt001実行結果】
-----------------------------------------------------------------------------
vyos@rt001# chronyc sources
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^* ntp-a3.nict.go.jp 1 6 17 12 -124us[ -176us] +/- 2900us
^+ ntp-b2.nict.go.jp 1 6 17 12 +44us[-3419ns] +/- 2881us
^+ ntp-k1.nict.jp 1 6 17 12 +130us[ +81us] +/- 7594us
^+ ntp-a2.nict.go.jp 1 6 17 12 +19us[ -33us] +/- 2775us
[edit]
vyos@rt001#
ntp.nict.jpとの時刻同期が正常にできていることを確認して設定を保存します。
【rt001、rt002で実行】
-----------------------------------------------------------------------------
save
ESXiゲートウェイの初期設定はこれで終わりです。次は本番サイト・ゲートウェイを構築します。
コメント