Meraki

Meraki 第111回 「MXのVPNがNAT越えできる理由とは?」

 こんにちは。Meraki担当のDsasです。
 今回はMerakiのAuto VPNのNAT越えの挙動について、少し深い話をしてみたいと思います。

 MerakiのMXシリーズのAuto VPN機能では、上流にファイアウォールがある環境で利用していても上流のファイアウォールで外側に向けてポートを開放したり、ポートフォワーディングの設定を行ったりする必要なく、MX間でVPNを張ることができます。
 その仕組みがUDPホールパンチングというクラウドならではの面白い仕組みです。

 まず、Meraki MXはそれぞれUDPポート範囲32768-61000の中から動的に使用するポートを選択して、Merakiのクラウド(クラウドレジストリ)に登録します。
 登録すると同時に、他の拠点のグローバルIPアドレスと使用するポート番号を受け取ります。
 続いて、クラウドレジストリから取得した情報を元に片側のMXが対向拠点に接続を行います。…が、当然上流にFWがある場合対向のMXに到達が出来ず通信することはできません。
 そこで、タイミングを合わせて対向のMXからも同じポート情報を使った通信を行います。
 すると、なんということでしょう。
 先ほどの通信で左側拠点のFWではNATテーブルが生成されており、ステートフルファイアウォールによって戻りのトラフィックが許可されているため、通信がMXに到達します。
 更に、再度左側拠点が接続を実施すれば、右側拠点のFWにもNATテーブルとファイアウォールの許可が追加されているため通信は成功します。
 なお、このように、上位のFWにあたかも穴をあけるような挙動のことをUDPホールパンチングと呼びます。
 ちなみにもしうまくいかない場合にはUDPポート範囲32768-61000の中から別のポートを使用して接続を試行し続ける、という挙動を取ります。

 さてこれでMX間で双方向の通信が可能になりましたので、無事VPNが確立します。すごい!
 正直私はこの技術の説明を受けたときにとても衝撃を受けました。まさにクラウドならではのVPN接続ですね。

 ちなみに、UDPホールパンチングについての注意点ですが、上位のファイアウォールが静的に内側から外への通信に対して通信できるポートを制限している場合、必要なポートを開放していただく必要がございます。
この場合、クラウドレジストリとの通信にUDPポート9350/9351番を使用、MX間のVPN接続にUDPポート範囲32768-61000を使用します。

 現状、UDPポート範囲32768-61000についてはヘルプのファイウォール情報にも表示されないため、上流にFWがある環境では忘れずにこちらのポートの開放状況についてもチェックするようにしてください。
 

 今回は以上となります。ここまでお読みいただきありがとうございました。

全44回のMeraki過去記事を掲載中!

製品情報や導入事例を掲載中!

使いやすいと好評!選び方ガイド無料DL!

カタログDL等、iDATEN(韋駄天)ログインが必要なコンテンツがございます。
必要に応じて、ログインしてご利用ください。
iDATEN(韋駄天)のご利用に関してご不明点があるお客様は こちら をお読みください。

Ciscoの記事