VPN Gatewayに拠点ルータからIPsecで冗長接続してみる

はじめに

皆さんこんにちは。ご覧いただきありがとうございます!
ソリューションアーキテクトの浜田です。

先日こちらのテックコラムでAlibaba CloudのVPN Gatewayについてご紹介しましたが、障害対策で複数のインターネット回線を拠点オフィスにマルチキャリアで引いている企業様も多いかと思います。

日中間ネットワークについてのテックコラムはコチラ www.sbcloud.co.jp

今回は拠点オフィスからインターネット回線2本を使ってVPN Gatewayと冗長接続させる方法と、後半はVPN Gatewayのヘルスチェックの設定のコツもご紹介していきたいと思います。


構成概要

今回はテストでVPN Gatewayを東京リージョンに立てて、拠点ルータはNEC IX2215を使用します。拠点ルータは2台使ってVRRPで冗長化していますが、ルータ1台で回線2本といった場合も考え方は同じです。ちなみにVPN Gatewayですが、1インスタンスでも內部で冗長構成となっており、切り替わりも自動で行われます。

f:id:sbc_naret:20200916172346p:plain
基本構成


基本設定

事前に、VPC、vSwitchを作成し、VPN Gatewayを購入します。

VPN GatewayのIPsec接続の設定方法や他社ルータのサンプルコンフィグについては、こちらもご参照ください。 jp.alibabacloud.com


VPN Gatewayを1つ購入したら、IPsec接続を1系、2系で2つ設定しそれぞれのステータスを確認していきます。

・VPN Gateway

f:id:sbc_naret:20200916115552p:plain
VPN Gateway(東京リージョン)

・カスタマーゲイトウェイ

f:id:sbc_naret:20200916115831p:plain
カスタマーゲートウェイ (CEP01 master)
f:id:sbc_naret:20200916115852p:plain
カスタマーゲートウェイ (CEP02 backup)

・IPsec 接続の状態

f:id:sbc_naret:20200916120111p:plain
IPsec-VPN接続 1系
f:id:sbc_naret:20200916120148p:plain
IPsec-VPN接続 2系


フェールオーバーの考えかた

【拠点側の構成】拠点ルータ2台にはVRRPを設定し、クライアントのデフォルトゲートウェイはルータの仮想IPであるVIPを指定するようにします。 さらにIP SLA Trackingをルータに設定し、対向のターゲットIP(ECS)にPing疎通が通らなくなったら自動的に1系のVRRPをshutdownさせ、2系にフェールオーバーするように設定します。障害ポイントが回線、機器どちらであった場合も考えかたは同じです。

f:id:sbc_naret:20200916171835p:plain
拠点側の構成

【クラウド側の構成】VPN Gatewayは重み付けによる経路の優先制御が可能です。100が一番大きくより優先されるということになります。今回は1系を100、2系を0の重み付けで設定します。

・VPN Gatewayのインスタンスをクリック > 宛先ベースルーティング > ルートエントリの追加 > 1系と2系の経路を登録しVPCに公開

f:id:sbc_naret:20200916125132p:plain
経路の重み付け設定

さらにそれぞれヘルスチェックを設定し、1系のヘルスチェックが失敗したら2系に切り替わるようにします。

f:id:sbc_naret:20200916171900p:plain
クラウド側の構成

ここで1点注意があります。上記の図を見て頂くとわかるのですが、VPN Gatewayのヘルスチェックの宛先は1系は拠点ルータのCPE01のIPを指定し、2系は拠点ルータのCPE02を指定しています。これはヘルスチェックの仕様上、往路・復路ともに同じIPsecトンネルを経由しないと状態を正しく検知できないからです。ヘルスチェックの送信元はVPN Gatewayが所属するVPCのCIDRから自由にアサイン可能で、ECSなど既にあるリソースとバッティングしても大丈夫です。

こちらの図はヘルスチェックの宛先を拠点オフィス内のサーバに指定していますが、2系のヘルスチェックの往路がMasterルータを通ってしまうためNGになるパターンです。

f:id:sbc_naret:20200916172414p:plain
ヘルスチェック設定の注意事項


動作確認

東京リージョンのVPC内にあるECSから、拠点オフィス内のサーバに対してPingを打ち続けMasterルータの電源を落として切り替わり時間を計測します。

切り替わり前の経路(1系)

[test@tokyo41 ~]# traceroute 10.1.22.1
traceroute to 10.1.22.1 (10.1.22.1), 30 hops max, 60 byte packets
1 172.16.41.72 (172.16.41.72) 0.168 ms 0.235 ms 0.213 ms
2 10.1.22.252 (10.1.22.252) 9.684 ms 14.912 ms 16.093 ms
3 10.1.22.1 (10.1.22.1) 16.148 ms 16.149 ms 18.062 ms

Masterルータの電源を落としたところ、およそ30秒で1系から2系へ経路が切り替わりました。

切り替わり後の経路(2系)

[test@tokyo41 ~]# traceroute 10.1.22.1
traceroute to 10.1.22.1 (10.1.22.1), 30 hops max, 60 byte packets
1 172.16.41.72 (172.16.41.72) 0.147 ms 0.153 ms 0.141 ms
2 10.1.22.253 (10.1.22.253) 14.198 ms 10.981 ms 15.412 ms
3 10.1.22.1 (10.1.22.1) 15.427 ms 15.432 ms 17.385 ms

今回はタイマー等を短めに設定しましたが、実際は運用ポリシーに応じて1系・2系のフラッピングを避けるためにも切り替え時間を調整するのが良いかと思います。


設定サンプル

参考までにVPN GatewayとNEC IXルータの設定サンプルを載せます。

・VPN GatewayのIPsec 接続設定

f:id:sbc_naret:20200916120453p:plain
IPsec接続の設定 1系
f:id:sbc_naret:20200916120513p:plain
IPsec接続の設定 2系

・NEC IXルータの設定

f:id:sbc_naret:20200916124150p:plain
NEC IXルータの設定 Master
f:id:sbc_naret:20200916124242p:plain
NEC IXルータの設定 Backup


おわりに

今回はVPN Gatewayと拠点オフィスをIPsecで冗長接続させるやり方についてご紹介しました。SPOF (Single Point of Failure)を避けるためにもオンプレミスでは回線やルータの冗長構成をとることが多いかと思いますし、クラウドに対する接続も冗長構成をとることでより堅牢なネットワークが構成可能です。