こんにちは、ソリューションアーキテクトの松永です。
SORACOMではIoTのデバイスからお客様システムへ閉域網で通信するため、お客様のシステム環境とSORACOMをサイト間(Site-to-Site)VPNで接続するサービス「SORACOM Door」を提供しています。ご申請から利用開始までオンラインで手続きいただくことができ、その例としてAzure VPN Gatewayと接続する手順を紹介しています。
SORACOMでは、SORACOM Doorを用いたAzureとのVPNによる閉域接続において、2つの構築パターンを推奨しております。本ブログでは、「#1.1つのVPNでstaticルーティングでの構築」にて動的ルーティングではなく、静的ルーティングを推奨している理由を解説します。
# | 構築パターン | 概要 | 構築手順 |
1 | 1つのVPNでstaticルーティングでの構築 | VPN1つ、内部にトンネルを2つで構築します。 必要最小限の構成です。 | 新タイプの VPG で Azure Virtual Machine とプライベートネットワークを構成する |
2 | 2つのVPNで動的(BGP)ルーティングによるActive-Active構成構築 | VPNを2つ、それぞれの内部にトンネルを2つ 合計4つのトンネルを構築します。 より高い可用性が必要な場合の採用を推奨致します。 | How to connect AWS and Azure using a BGP-enabled VPN gateway *ガイド内部AzureのConnection設定でConnection Mode=ResponderOnlyではなくDefault推奨 |
お客様とのシステムとSORACOM間で閉域網を構築できるサービスにはSORACOM Doorの他に、Amazon VPC ピアリングもしくはAWS Transit Gatewayが利用できる「SORACOM Canal」、専用線やオンデマンドプライベート接続が利用できる「SORACOM Direct」があります。接続先システムに応じてお選びください。
ルーティングとは?
サイト間VPNによって、2つの異なるネットワーク空間(セグメント)セキュアに接続できます。この時、相互に通信できるようにするために、ルーティング(パケット送信経路)の設定が不可欠です。
ルーティングの設定方法は2つ存在します。
- 静的ルーティング
- 動的ルーティング
静的ルーティングは、相手側のネットワークのアドレスを手動設定する方法です。
動的ルーティングは、BGP(Border Gateway Protocol)といったルーティング情報の交換プロトコルを利用して互いの構成情報を交換し、自動的にルーティング情報を設定していく方法です。
静的ルーティングは簡単に設定・導入できる反面、複雑もしくは拡張されうるネットワークでは設定の手間が増えてしまう課題があります。動的ルーティングは導入や設計の手間はありますが静的ルーティングの課題を解決できることもあり、ネットワークの規模や将来性に加えて、運用の手間を勘案して使い分けます。
VPN利用時に2つのVPNトンネル (Active-Active構成) を推奨しているAWS
SORACOMはAWS上にIoTプラットフォームを構築しており、AWSの仕様やプラクティスに沿うことで堅牢かつ柔軟なネットワーク構成を実現・提供しています。そこでVPNについて確認してみると、以下のように障害やメンテナンスに備えて2つのトンネルを接続(Active-Active構成)しておくことが推奨されています。
AWS でデバイス障害が発生した場合、VPN 接続は自動的に 2 番目のトンネルにフェイルオーバーして、アクセスが中断されないようにします。ときどき、AWS は、VPN 接続の定期メンテナンスも実行します。これにより、VPN 接続の 2 つのトンネルの 1 つが短時間無効になる場合があります。詳細については、Site-to-Site VPN トンネルエンドポイントの置換を参照してください。したがって、カスタマーゲートウェイデバイスを設定するときは、両方のトンネルを設定することが重要です。
https://docs.aws.amazon.com/ja_jp/vpn/latest/s2svpn/your-cgw.html より
また、AWSではルーティングの設定情報にはBGPを利用した動的ルーティングを推奨しています。
SORACOM DoorとAzureのVPN接続で、静的ルーティングを推奨する理由
IoTデバイスとお客様システムを閉域で接続するにあたって、安定的なIoTシステムを構築・運用するにはネットワークの可用性は重要です。そこで、AWS(SORACOM)とAzure間において、可用性を向上するために2つのActiveなVPNトンネルを作るには、以下に述べる理由から静的ルーティング設定が必要です。詳しく解説していきましょう。
AWS、Azure それぞれの仕様から導き出される静的ルーティングの理由
AWS側の仕様では、動的ルーティングの際に、1つのPublic IPアドレスに対して内部に2つのトンネルを構築するために2のBGP IPアドレスを用意することが接続先のゲートウェイの要件となっています。
一方、Azure側の仕様では、AzureのBGPの設定要件として、How to configure BGP on Azure VPN Gatewayには以下のように記載されており、経路交換の内部IPアドレスには、169.254.21.0
〜 169.254.22.255
に所属するIPアドレスをAzure APIPA BGP IPアドレスとして指定する必要があります。
The Azure APIPA BGP IP address field is optional. If your on-premises VPN devices use APIPA address for BGP, you must select an address from the Azure-reserved APIPA address range for VPN, which is from 169.254.21.0 to 169.254.22.255. This example uses 169.254.21.11.
https://docs.microsoft.com/en-us/azure/vpn-gateway/bgp-howto より
実際やってみると、2つ目のAPIPA BGP IPアドレスを指定するには、Public IPアドレスも2つ作成する必要があります。つまり、1つのPublic IPアドレスに1つのBGPトンネルしか作れないことを意味します。この結果、2つ目のトンネルは常にDownした状態となり、冗長性が失われます。
これを回避するために、SORACOMではAzureとのサイト間VPN接続にて冗長化を確保したい場合は、静的ルーティングを推奨しているわけです。
設定方法のご案内
SORACOM Door(AWS)とAzure間の閉域接続において、可用性を向上させる方法としてのVPNトンネルの “Active-Active 構成” と静的ルーティングの利用について解説してきました。もちろん1つのVPNトンネルでも閉域接続は可能ではありますが、本格利用にあたって可用性は無視できない要素です。本ブログを参考に、是非設定を行ってください。
冒頭でもご紹介致しましたが、SORACOMのVPGとAzureの静的ルーティングによるサイト間VPNの設定方法は、新タイプの VPG で Azure Virtual Machine とプライベートネットワークを構成するに記載されています。より高い可用性が必要なお客様は、2つ目の構築パターンである「2つのVPNで動的(BGP)ルーティングによるActive-Active構成構築」の利用をご検討ください。
今回ご紹介したSORACOM Doorのみならず、Azureとの接続は、専用線接続サービス「SORACOM Direct」と、クラウド間ネットワーキングサービス MCR クラウド接続 を用いても実現できます(方法はこちらのブログで紹介しています)。
用途や目的、そして可用性と費用対効果でお選びください。
― ソラコム松永 (taketo)