マルチリージョンVPN
AWSでは2015/7/27現在、各リージョンのEC2同士を通信する際に、セキュアな接続は提供されていない。
そのため、今回はマルチリージョンでの接続を行う際の構成を考えて構築しました。
尚、同一リージョン内であれば、VPCピアリングが利用可能です。
構成
項目 | 実装 |
---|---|
VPN_OS | VyOS |
冗長性(インターネット) | BGP |
冗長性(AWS内) | Serf |
VPN | IPSEC |
OSはCisco CSR 1000V も検討しましたが、無料で使える最善の選択として、VyOSを選定。
インターネット上の経路はBGPで冗長化する(OSPFでもよい)。
AWS内はSerfで冗長化を図った、これは実装が簡単であることが採用のポイント。
尚、LoopBackのIPの公告にOSPFを使用するが、AWSではインターフェイスが1つしかないため不要と考え実装してない。
VPNはIPSECにて実装、aes256/sha512が対応していることが条件。
構成図
設定項目
こちらの AWSリージョン間接続 BGP冗長構成 を元に作成可能です。
追加項目としては、新しい接続対象を1つ追加することで対応できます。
BGP新しいピアを設定する場合
set protocols bgp [自AS番号] neighbor [VPN用アドレス] remote-as [AS]
set protocols bgp [自AS番号] neighbor [VPN用アドレス] soft-reconfiguration inbound
注意点
3リージョンの注意点としては、BGPの設計を把握している方が推奨になります。
障害ポイントを洗い出し、通信がどのような経路で障害を回避するのかを把握する必要があります。
起こりにくい障害ですが、例えば東京-バージニア-オレゴンをフルメッシュで接続している構成で、
東京-バージニア間で障害が発生した場合、東京→オレゴン→バージニア経由の通信があるということがあり得るということです。
そのような通信を行いたくない場合、該当の経路をフィルタリングする設定を追加する必要があります。
まとめ
AWSでの各リージョン間との接続は、AWS独自の実装としてはSerfのみになります。
その他のIPSEC/BGPはAWS環境以外でも行っているお話ですので、
構築はネットワークを把握している方にお任せするのがよいと思います。