Amazon Web Service (AWS) 上の Virtual Private Cloud (VPC) を MX と接続するためには、Virutal MX (vMX) と仮想プライベートネットワークの方法がありますが、仮想プライベートネットワークの方法を選んだ場合は各 MX を VPC に接続する必要があります。なぜならば、MX は「Meraki 以外の VPN ピア」で設定したサブネットは Auto Virtual Private Network (VPN) 経由で他の MX にルートを通知することができません。なので、「Meraki 以外の VPN ピア」を全ネットワークで設定する必要があります。AWS のみの場合は vMX と 複数の VPC が存在した場合は VPC Peering を駆使した方がいいと思いますが、第三の選択肢も存在するということは知っておいて損はないと思います。その第三の選択肢というのは余分に MX を購入することです。
ネットワーク構成
今回は本社 (Head Quarter)、データセンター (Data Center)、AWS の三拠点で実現方法を考えたいと思います。下図にもあるように、Data Center には 2 つの MX が存在します。ゲートウェイと Auto VPN 用として利用している HQ MX (192.168.128.254) と、AWS 仮想プライベートネットワーク専用の AWS MX (192.168.128.1) です。
設定方法
設定は、Meraki vMX100 を使用して MX を AWS VPC へ接続と AWS 仮想プライベートネットワークを使用して Meraki MX を VPC へ接続で記載した内容を統合した感じです。それに Data Center 側のゲートウェイの MX とコアスイッチの MS でスタティックルートの設定を付け加えただけです。複数拠点が存在する場合は、基本的に HQ MX の設定と変わりません。具体的に何を設定すればいいのか Head Quarter から AWS までのトラフィックの流れを分析し、観察してみましょう。
まず、Head Quarter のクライアント (192.168.20.100) から Elastic Computer Cloud (EC2) に存在するインスタンス (10.0.0.132) へアクセスした時を下図を用いながら説明したいと思います。
クライアントは 10.0.0.132 宛にパケットを送信します。クライアントが送信したパケットはまず HQ MX に到達し、Auto VPN で確立された VPN トンネルを通り DC MX へ転送されます。DC MX には 10.0.0.0/23 のネクストホップは 192.168.128.1 というスタティックルートが設定されているので、パケットは AWS MX へ転送され、AWS MX では「Meraki 以外の VPN ピア」で確立された VPN トンネルを通り EC2 インスタンスへ到達します。
なぜ、HQ MX は 10.0.0.132 宛のパケットを DC MX に送信するのでしょうか。それは DC MX に 10.0.0.0/23 のネクストホップは 192.168.128.1 というスタティックルートが設定され、スタティックルートで登録されたサブネットを他の MX へ通知しているからです。これが AWS 仮想プライベートネットワークと Meraki Auto VPN を連携するにあたっての最大の鍵となります。
なお、AWS MX の設定は注意が必要です。AWS MX は「パススルーまたは VPN コンセントレータ」というモードを使用し、「サイト間 VPN」の「ローカルネットワーク」では HQ MX に登録されているサブネットを設定しなければいけません。192.168.128.0/24 を「ローカルネットワーク」で設定しようとすると、同一サブネットが DC MX で登録されているのでダッシュボードが設定を受け付けません。
なので、「ローカルネットワーク」で登録するサブネットが他のネットワークで使用されているサブネットと被る場合は、AWS MX 用のオーガナイゼーションを作成する必要があります。
さて、次はリターントラフィックを考察したいと思います。
リターントラフィックの仕組みは変わりません。ただし、AWS MX と MS はデフォルトルートを使用し上流にパケットを送信します。上記をまとめると下記の設定が必要だと言えます。
- AWS の VPC
- DC MX と MS のスタティックルート
- HQ MX と DC MX の拠点間 VPN
- AWS MX 用のオーガナイゼーション
- AWS MX で Meraki 以外の VPN ピア
1. AWS の VPC
AWS の VPC はAWS 仮想プライベートネットワークを使用して Meraki MX を VPC へ接続で記載した方法に沿って設定してください。異なるところといえば、VPC にアタッチされている「ルートテーブル」と「サイト間の VPN 接続」>「静的ルート」になります。
いちいち「ルートテーブル」にサブネットを追加するのもめんどくさいので、「Route Propagation」で使用している「仮想プライベートゲートウェイ」を「Yes」にします。「Route Propagation」を有効にすると「サイト間の VPN 接続」>「静的ルート」で追加したルートを自動的に「ルートテーブル」に反映してくれるようです。
2. DC MX と MS のスタティックルート
DC MX と MX では 10.0.0.0/23 のネクストホップは 192.168.100.1 というスタティックルートを設定します。MX では「セキュリティ & SD-WAN」>「アドレスと VLAN」のスタティックルートから設定できます。
MS も「スイッチ」>「ルーティングと DHCP」からインタフェース (192.168.200.1) を作成し、「スタティックルート」から同様に AWS 宛のスタティックルートを設定します。
構成図ではこのスタティックルートに意味はありませんが、MS にその他の機器が接続している場合には、このスタティックルートが必要になります。
3. HQ MX と DC MX の拠点間 VPN
HQ MX と DC MX の Auto VPN の設定は、「セキュリティ & SD-WAN」>「サイト間 VPN 」から実施できます。今回は両方とも「ハブ」にします。HQ MX では 192.168.20.0/24 のサブネットを「ローカルネットワーク」で「VPN の利用」を「Yes」、DC MX ではスタティックルートとして設定した 10.0.0.0/23 を「Yes」として設定します。
4. AWS MX 用のオーガナイゼーション
新しいオーガナイゼーションは dashboard.meraki.com から作成できます。現在使用されているアカウントのメールアドレスを入力すると、Managed Service Provider (MSP) 仕様のダッシュボードに変わります。変わると言っても、左側でオーガナイゼーションのネットワークを選択できる箇所の上にオーガナイゼーションを選択するメニューが現れるくらいです。
5. AWS MX で Meraki 以外の VPN ピア
「セキュリティ & SD-WAN」>「サイト間 VPN」より「Meraki 以外の VPN ピア」が設定可能です。
さらに、「ローカルネットワーク」に Head Quarter のサブネット 192.168.128.0/24 を設定します。
これで設定は完了です。Head Quarter のクライアントは EC2 インスタンスにアクセスできるようになります。