背景・概要
VPNは、ハンズオンの機会が少ないため、Black Beltから知識をインプットする。
内容
オンプレからAWSに接続する種類
以下の3種類がある。
- Client VPN
- Site-to-Site VPN
- VGW(Virtual Private Gateway)に接続する。
- VGWは、冗長化済み
- オンプレから特定のVPCイン接続する。
- ユーザ側はCGW(Customer Private Gate)に接続する。
- VGW(Virtual Private Gateway)に接続する。
- Direct Connect
- TGW(Transit Gateway)に接続する。
- TGWは、冗長化
- 複数のVPCに接続できる。
- TGW(Transit Gateway)に接続する。
Site-to-Site VPNとは?
- CGWとTGW or VGW間は、インターネット接続でIPsecにより暗号化
- IPSec対応ルーターと固定Public IPで用意に構築可能(事前共有キーによる認証方式)
- TGWとVGWの使い所
- 用途により使い分ける。
- VGWは一つのVPCとつなぐ
- TGWは複数のVPCとつなぐ
- VPNの料金の他にTGWの料金が発生
- 用途により使い分ける。
VPNの設定
- CGWの準備
- CGW
- インターネットルーティングが可能な固定のIPアドレスにリソース名を定義する。AWSに登録する
- 証明書による認証の場合、固定IPは不要
- インターネットルーティングが可能な固定のIPアドレスにリソース名を定義する。AWSに登録する
- ルーティングのタイプ
- 静的or動的が選択可能。デバイスが対応しているのであれば、動的(BGP)を推奨
- BGPの設計時に拠点ごとにユニークなASNを用意すること。
- ターゲットゲートウェイ
- AWS側の仮想ゲートウェイを指す。
- VGW or TGWを予め作成し、VPCと関連付けしておくこと。
- ASNはCGWとは異なる値を設定すること
ルーティングタイプについて
- 基本的に動的を選ぶ。CGWデバイスが非対応な場合のみ、静的を利用する。
- VPCのサブネットのルートテーブルのルート伝搬を有効化する。
- 動的(BGP)にするメリット
- 2つのトンネル間で冗長性が高まる。片方利用できな場合、スムーズな切り替えが可能になる。
- オンプレミスとVPCのCIDR増減時に、自動的に対応できる。
認証タイプについて
- 固定パブリックIPアドレスを用意する。事前共有キー(Pre-shared keys)を方式を推奨。
- 非固定のパブリックIPアドレスが用意できない場合、プライベート証明書による認証を検討する。
- CGW側で対応を確認する。
- 事前共有キーは多くのベンダーが対応している。
- プライベート証明書は予め確認が必要。
- CGW側で対応を確認する。
- 拠点の移転などで固定パブリックIPが変更になる場合、VPN接続の作り直しは不要。
- ただし、ユーザ側のルーターの設定は必要
MTUについて
- 最大送信単位を指す。
- Site-to-Site VPNでは、*パスMTG検出(Path MTU Discovery)*に対応してない。予めEnd-to-Endでパケットサイズが1399以下になるように、ホストとNW機器のMTU設定を行うこと。
VGWとTGWについて
- どちらが良いか?
- 主に通信対象のVPCの数で判断だが、利用機能などで総合的に検討する。
ターゲットゲートウェイ | 構成 | 柔軟さ | 備考 |
---|---|---|---|
VGW | シンプル 関連リソースが少なく設定が容易。 VPC毎に個別の環境を用意する場合に向いている。 |
1つのVPCに接続し、選択肢が少ない。 | |
TGW | 大規模 | 複数のルーティングテーブルを使いわけ、柔軟なルーティング設計が可能。 |
TGWのメリット
-
複数のVPCに接続可能
- VPC内のTGW ENIにアタッチメントすることで複数のVPCに接続ポイントを設けることができる。
-
柔軟なルート設計
- VPCごとに参照するルートテーブルを変える事が可能。
- 例)
- IGWを含むVPCを用意することでFW機能を集約できる。
-
複数のVPNによるAct-Act通信
- 複数のVPN接続を束ねることが可能。
- *Equal Cost Multi Path(ECMP)*を利用して帯域を増やすことが可能。
- 1つのIPsecトンネルあたり、最大1.25Gbpsまで使える。。
- 更にVPN接続を追加し、最大で50Gbpsまでのバーストを検証済み。
-
Acceleratedサイト間VPNオプション
- 通常のVPN接続であれば、インターネットの接続影響を受けやすい。
- Route53やCloudFrontで利用しているAWS Edge LocationにVPN接続Endpointを配置可能。
- Edge LocationからRegionまではAWSのグローバルNWを利用でき、安定的な通信が可能になる。
VPN接続の冗長化
VGWの場合
- 1つのSite-to-Site VPNを作成すると、2つのIPsecトンネルが利用可能。
- 両方のトンネルをUp状態に保つことが重要。
- VGWは内部的に、冗長化してある。
- VPC側もマルチAZ構成にしておくことが重要。
- CGW(ユーザ側のルーター)も冗長化しSPOFを解消する。
- 2IPsec * 2VPN接続で合計4つのIPsecトンネルで冗長化
- 冗長化した場合には、どちらのVPN接続が優先されるのか。
- AWS→オンプレミス方向
- AWSアルゴリズムでどちらかが選択される。(Active-Standby)優先度を設定することはできない。
- ユーザ側のルータで、AS Path Prepend、MEDを設定することで、どの経路を利用するか制御が可能になる。
- オンプレミス→AWS方向
- CGWのMEDによる制御に対応している場合、MED値により各接続ごとに優先させるIPsecトンネルが決定される。
- MED値が等価の場合に、Act-Actになる。
- AWS→オンプレミス方向
TGWの場合
- 1つのVPN接続=2つのIPsecトンネル。(VGWと同じ)
- TGWから、VPCとのアタッチはAZごとに推奨。
- ECMPにより複数のVPN接続に分散し高い帯域することが可能
- TGWでECMPを有効化することで、同じTGWに接続する全てのVPN接続にECMPが有効となる。
- オンプレ→AWS方向への通信はユーザルータへ適切な設定を行うことで分散される。
- 非対称ルーティング(行きと帰りのトラフィックが異なる)になる可能性がある。設定によりパケットがドロップする可能性があるため、ルーターの非対称ルーティングの設定が必要。
Direct ConnectとVPNの併用
- Direct Connect(Dx)のバックアップとしてVPNを利用する場合に使う。2本Dxを用意することが困難な場合に使われることが多い。
- VPN接続はBGPを利用することが推奨される。
- AWS→クライアント方向は必ずDxが使割れる。
TGW接続のDx/VPN接続
- TGWに終端&静的経路を設定した場合は、TGWのルートテーブルにVPN側にも静的経路を設定する必要がある。そのためVPNが優先される。
- Direct Connectの場合、DxGW→TGW
- VPNの場合、VPN→TGW
CloudHub
- 同一のVGW/TGWに接続された動的AWS VPN間でASNをユニークにすることで、折返し通信が可能。
- オンプレ1→AWS→オンプレ2のように
- 折り返したくない場合、AS番号(ASN)を同一にするとBGPの特性上、同じAS番号がついているものはルートテーブルに追加しない。
運用
- VPC>サイト間のVPN接続でトンネルのステータスがアップになっている事がわかる。
- ステータスの最終変更日や詳細でエラーがいつ、何が起きたかわかる。
- VPC Reachability Analyzerで到達性が確認できる
- VPCフローログにより情報をキャプチャできる。
- ユーザのルーターのログ
- 時刻同期は設定しておくこと。
用語の整理
- BGP
- ASN(AS番号)
- 事前共有キー
- MTU
- ECMP
考察
TBD