DMVPN(ダイナミックマルチポイントVPN)は、複数のサイト間接続ですべての接続先ルータを静的に構成する必要なく、VPNネットワークを構築するために使用する技術です。「ハブアンドスポーク」構成で、フルメッシュのトンネルを設定することなくスポークはハブを経由せずに相互に直接通信できます。
DMVPNを使用するには、以下2つの仕組みが必要です。
- マルチポイントGRE(mGRE)
- NHRP(ネクストホップ解決プロトコル)
マルチポイントGRE(mGRE)
GREトンネルは、ポイントツーポイントが基本ですが、マルチポイントGREでは、1つのTunnelインタフェースで複数の宛先へトンネルすることができます。GREトンネルのトンネル先アドレスを取得するのに、NHRP(ネクストホップ解決プロトコル)を使用します。
NHRP(ネクストホップ解決プロトコル)
ネクストホップサーバー(NHS)として構成されるハブとスポーク(NHRPクライアント)で構成されます。アンダーレイで使用するインターネット等のパブリックネットワークで使用するアドレスをパブリックアドレスもしくはNBMA(Non-Broadcast Multi-Access)アドレスと呼びます。

スポークでは、ハブのパブリックアドレス(NBMAアドレス)とトンネルインタフェースのプライベートアドレスを静的マッピングし、ハブへ報告(NHRP登録)することで、スポークを動的に学習します。
基本動作
まず、NHRPクライアントは、自分自身のNBMAアドレスをNHRP Registration Requestとして、NHRPサーバーに登録します。ハブであるNHRPサーバーは、スポークのパブリックIPアドレス(NBMAアドレス)とトンネルインターフェースのIPアドレス間のマッピング(キャッシュテーブル)を作成します。

スポーク1からスポーク2へ通信をしたいとします。その際にスポーク1からHUBに対して、NHRP Resolution Requestを送信し、スポーク2のNBMAアドレスを解決しようとします。

HUBはキャッシュテーブルを参照して、NHRP Resolution Replyとして、スポーク2のNBMAアドレスを返信します。

これでスポーク1は、スポーク2の宛先NBMAアドレスを認識し、直接トンネル接続します。

これが、ざっくりとしたDMVPNの概要です。
この構成例におけるオーバレイとアンダーレイネットワークも整理しておきます。

最後までお読み頂きありがとうございました。
コメント