目次
【CCNP ENARSI勉強メモ】DMVPN
DMVPNはシスコ独自のVPNソリューションです。複数拠点が存在する環境でVPNを効率よく設定できます。
DMVPNには、暗号化や認証機能はないので、IPSecと組み合わせて使います。
サイト間VPNの問題点
サイト間VPNで複数拠点をVPN接続するにはハブ&スポークまたはフルメッシュトポロジーを使用しますが、以下のような問題点が発生します。
ハブ&スポークの弱点
スポークからスポークに通信したい場合にもハブを経由しなければならないので、遅延が発生する。
ハブルータに負荷がかかる
フルメッシュの問題点
フルメッシュ構成の場合、各ルータで対向サイトの数だけ設定する。
DMVPNを使うメリット
DMVPNの設定するを行うことで、動的にスポーク(ブランチ、拠点)間でVPNを張ることができます。DMVPNでは、NHRPを使って、VPNゲートウェイのグローバルIPアドレスを解決してくれます。スポーク間でVPNを張って通信するときは、ハブに相手先のIPアドレスを尋ねて解決し、スポーク間でVPNを張ります。
これにより、上記のハブを経由しないといけない問題や、対向の数だけコンフィグを打ったりする必要がなくなります。
DMVPNで使う技術など
DMVPNでは、mGREとNHRPを使って構築します。
mGRE(マルチポイントGRE)
mGREは、複数の対向ルータと接続ができるトンネルインターフェースです。
インターフェースをmGREとして動作させるには、「tunnel mode gre multipoint」コマンドを使用します。
(config)#interface tunnel 1
(config-if)#ip address 192.168.10.1 255.255.255.0 (ここはトンネルのIPアドレスなので、プライベートアドレス)
(config-if)#tunnel source 198.3.56.3(ここはインターネット側のIPなのでグローバルIPが多い)
(config-if)#tunnel mode gre multipoint
以上です。通常のGREは、トンネルのあて先にtunnel destinationを使いますが、mGREではNHRPプロトコルを使って、自動的にあて先を取得します。
NHRP(Next Hop Resolution Protocol)
NHRPはmGREを使っている場合にトンネルのあて先IPアドレスを受動的に認識させるためのプロトコルです。
用語
- トンネルIPアドレス・・・トンネルインターフェースに設定したIPアドレスをトンネルIPアドレスと呼ぶ。
- NBMAアドレス(Non-Broadcast Multiple Address)・・-他の物理インターフェースを設定したIPアドレスをNBMAアドレスという。
- NHS(Next Hop Server)・・・NHRP上の管理ルータ。本社のルータであることが多い。
- NHC(Next Hop Client)・・・NHS以外のルータ
NHCにはNHSのトンネルIPアドレスとNBMAアドレスのマッピング情報を手動で設定します。この情報を使って、NHCはNHSにNHRPメッセージを送信し、自分の情報をNHSに登録します。
NHSはNHCからのメッセージを基にして、すべてのルータのトンネルIPアドレスとNBMAアドレスを管理するNHRPデータベースを作成します。NHC動詞の通信が必要になった場合、NHSがNHCに相手側のNHCのIPアドレスを通知します。
DMVPN設定
上記の構成で、IPSecなしで作成します。
R1(config)#int tunnel 0
R1(config-if)#ip address 172.16.0.1 255.255.255.0
R1(config-if)#tunnel source 1.1.1.1
R1(config-if)#tunnel mode gre multipoint
R1(config-if)#ip nhrp network-id 100
R1(config-if)#ip nhrp map multicast dynamic
R1(config-if)#ip ospf network broardcast
R1(config-if)#exit
R1(config)#router ospf 1
R1(config-router)#network 172.16.0.1 0.0.0.0 area 0
R1(config-router)#network 192.168.1.254 0.0.0.0 area 0
R2(config)#int tunnel 0
R2(config-if)#ip address 172.16.0.2 255.255.255.0
R2(config-if)#tunnel source 2.2.2.2
R2(config-if)#tunnel mode gre multipoint
R2(config-if)#ip nhrp network-id 100
R2(config-if)#ip nhrp nhs 172.16.0.1
R2(config-if)#ip nhrp map 172.16.0.1 1.1.1.1
R2(config-if)#ip nhrp multicast 1.1.1.1
R2(config-if)#ip ospf primary 0
R2(config-if)#ip ospf network broadcast
R2(config-if)#exit
R2(config)#router ospf 1
R2(config-router)#network 172.16.0.2 0.0.0.0 area 0
R2(config-router)#network 192.168.2.254 0.0.0.0 area 0
R3(config)#int tunnel 0
R3(config-if)#ip address 172.16.0.3 255.255.255.0
R3(config-if)#tunnel source 3.3.3.3
R3(config-if)#tunnel mode gre multipoint
R3(config-if)#ip nhrp network-id 1
R3(config-if)#ip nhrp nhs 172.16.0.1
R3(config-if)#ip nhrp map 172.16.0.1 1.1.1.1
R3(config-if)#ip nhrp map multicast 1.1.1.1
R3(config-if)#ip ospf primary 0
R3(config-if)#ip ospf network broardcast
R3(config-if)#exit
R3(config)#router ospf 1
R3(config-router)#network 172.16.0.3 0.0.0.0 area 0
R3(config-router)#network 192.168.3.254 area 0
確認コマンド
R1#sh ip nhrp briefで、NHC(R2とR3)を動的にデータベースに登録していることがわかります。テーブルが表示され、ModeがDynamicになっていればオッケー
R2#sh ip nhrp briefで、NHSが手動で設定されていることがわかります。
Targetが172.16.0.1になっていて、ModeがStaticになっています。
R2#sh ip routeで、NHC同士の情報は好感していないにもかかわらず、NHS経由で情報が好感されていてルーティングテーブルに表示されます。
この場合、OSPFで172.16.0.3 via 172.16.0.1 tunnel 0と表示されます。
NHC同士のセグメントからトレースルートすると、直接接続されているように見えます。
まとめ
以上です。少し複雑ですが、DMVPNは複数拠点間のVPNソリューションとまず覚え、mGREとNHRPを使って設定することをまず理解しましょう。
参考に他のCCNPの記事も書いてます。
コメント