VyOS で VRRP を利用する
はじめに
「VyOS ってなに?」
「VRRP って聞いたことあるけどよく分からない」
「どうやって設定するの?」
本記事では VyOS のデプロイから初期設定、VRRP を利用する手順を紹介していきます。
デプロイ
システム要件の要求水準はかなり低いため割り当てるリソースは、vCPU 1、 メモリ 1GB、ディスク 8GB くらいで問題ありません。
検証用で利用する場合は複数のネットワークに足を出すケースが多いと思います。ネットワークアダプタは必要な数だけ追加しておきます(vif を作成して Trunk でまとめる方法もありますが割愛します)

VRRP を利用するので今回は 2台の仮想マシンを準備しています。
初期設定について
初期ユーザ名・パスワードは vyos/vyos
です。
ローカルのディスクからブートするように設定します。
vyos@vyos:~$ install image
当時最新の「vyos-1.4-rolling-202110310317-amd64.iso」で作業を進めていたところ、仮想NIC の MACアドレスが正しく認識されなかったり、MAC アドレスの重複が起こったりでかなりハマりました。(不具合?)
結局今回はたまたまローカルに残してあった古い 1.3 のバージョンでインストールしています。
基本的になにか設定をしたい場合は conf
で設定モードに入ります。
vyos@vyos:~$ configure
[edit]
vyos@vyos#
設定モードからは run show conf
で現在の設定値を確認できます。
ホスト名はデフォルトで vyos
になっているので変更します。
vyos@vyos# set system host-name vyos01
各インターフェースに IP アドレスを設定します。
vyos@vyos01# set interface ethernet eth0 address 192.168.1.1/24
[edit]
vyos@vyos01# commit
[edit]
vyos@vyos01# save
SSH の設定をします。
vyos@vyos01# set service ssh
NTP の設定をします。
vyos@vyos01# set system ntp server 192.168.x.x/24
デフォルトゲートウェイの設定をします。
vyos@vyos01# set protocol static route 0.0.0.0/0 next-hop 192.168.0.1
VRRP の構成
VRRP とは
VRRP(Virtual Router Redundancy Protocol)は、その名の通り、ルータの冗長化を目的としたプロトコルです。
複数のルータを束ねて、論理的に 1つのルータにみせるような仕組みになっています。
ルータ冗長化のためのプロトコルはその他にもありますが、VRRP は IETF が標準化しているプロトコルなのでマルチベンダー環境で利用できるという特性があります。
実際にパケットの処理を行うルータはマスタールータと呼ばれ、それ以外のルータはバックアップルータとして、マスタールータがダウンしたときに処理を引き継ぎます。
基本設定方法
基本設定の流れは、以下の通りです。
- VRRP グループを作成 (VRID という ID でグループを管理します)
- グループにインターフェースを追加
- グループに VIP(仮想IPアドレス) を設定
※ クライアントはここで設定した VIP に接続するイメージとなります。
※ VRID は任意の数値を設定してください。グループ名も下記では「mgmt」としていますが、任意のものを設定してください。
※ VRRP に参加する全ての VyOS で設定が必要です。
vyos@vyos01# set high-availability vrrp group mgmt vrid 10
[edit]
vyos@vyos01# set high-availability vrrp group mgmt interface eth0
[edit]
vyos@vyos01# set high-availability vrrp group mgmt virtual-address 172.xx.x.xx/24
run show vrrp
で VRRP の状態を確認できます。
commit
しないと VRRP のプロセスが開始されないため注意が必要です。
vyos@vyos02# commit
[ high-availability vrrp ]
Starting the VRRP process
[edit]
vyos@vyos02# run sh vrrp
Name Interface VRID State Last Transition
------ ----------- ------ ------- -----------------
mgmt eth0 10 BACKUP 5s
Priority の設定
どのルータをマスタルータとするかはプライオリティの値によって決定されます。
プライオリティ値をそれぞれ適切に定義をすることで、VIP ごとにそれぞれのルータで負荷分散を行うことができます。
vyos@vyos01# set high-availability vrrp group mgmt priority 200
ーーー
vyos@vyos02# set high-availability vrrp group mgmt priority 100
今回は VRID が 10,50,30 の VIP 宛の通信は vyos01 、VRID が 20,40 の通信は vyos02 で処理を分散するよう設定してみました。
vyos@vyos01# run sh vrrp
Name Interface VRID State Last Transition
------- ----------- ------ ------- -----------------
mgmt eth0 10 MASTER 13s
n-mgmt eth1 20 BACKUP 13s
tep eth4 50 MASTER 13s
vmotion eth2 30 MASTER 13s
vsan eth3 40 BACKUP 3s
因みにルータ間のキープアライブはマルチキャストにて行われます。
ユニキャストに変更することも設定次第で可能なようなので、NW環境に合わせて選択することができます。

この記事の内容は以上です。ご覧いただきありがとうございました。