Closed7
CCNP-ENARSI_DMVPN
DMVPN(Dynamic Multipoint VPN)
複数の拠点を接続するVPNの設定作業を簡略化する、Cisco独自のVPN設計
下記の「旧来のIPsec VPN」より、旧来の手法の欠点を克服して、大規模な構築が簡単にできるようにしている
旧来のIPsec VPN
旧来のIPsec VPNではハブ・アンド・スポーク構成
(ハブとなる拠点と各スポーク側の拠点を1対1のIPsecトンネルで接続)
→ 複数の拠点を繋ぐ大規模構築では様々なデメリットが存在する
①ハブとなるルータが、スポーク拠点増に伴うトンネル数増加によって負荷が増大する
拠点ごとにトンネルの暗号処理などが必要。ハブルータの負荷が増大する
②スポーク拠点追加のたびに、ハブルータへの設定追加が必要となる
ネットワーク管理者がそれぞれルータを設定しないといけないので、管理者に負荷がかかる
③動的ルーティングが利用できない
IPsecトンネルにはマルチキャスト、ブロードキャストを流すことが出来ないため、動的ルーティングが使用できない
DMVPNの構成要素
mGRE・NHRP・IPsecから成立する
mGRE(Multipoint GRE)
mGREは1対多で接続可能なGREトンネル
NHRP(Next Hop Resolution Protocol:ネクストホップ解決プロトコル)
ある通信のネクストホップとなる宛先IPアドレスを解決するためのプロトコル
IPsec
IPパケットの改ざん防止、暗号化を提供するプロトコル
旧来のIPsec VPNのデメリットを解消
- mGREによって、スポーク拠点追加のたびにハブルータの設定を追加する必要がなくなる(ゼロタッチプロビジョニング)
- NHRPによって、ハブ・スポーク拠点およびスポーク・スポーク拠点間の通信時に必要なトンネルの宛先アドレスを動的に取得できる
- 上記2点と組み合わせて、スポーク拠点間の通信時はスポーク拠点同士で動的にGRE over IPsecトンネルを作成することができ、ハブルータの処理負荷を減らすことが出来る
- GRE over IPsecを利用しているため、動的ルーティングが使える
コマンド:DMVPNの設定で使用する主なコマンド:mGRE
# トンネルインターフェースの作成とmGREモードの指定(ハブとスポーク両方に必要な設定)
(config)#interface Tunnel {任意の番号}
(config-if)#ip address {アドレス} {サブネットマスク}
(config-if)#tunnel source {NBMAアドレス | インターフェース}
(config-if)#tunnel mode gre multipoint
(config-if)#tunnel key {キーID}
コマンド:DMVPNの設定で使用する主なコマンド:NHRP
# NHRPの有効化(ハブとスポーク両方に必要な設定)
(config)#interface Tunnel {任意の番号}
(config-if)#ip nhrp network-id {任意の番号}
# NHSのマルチキャストマッピングの設定(ハブに必要な設定)
(config-if)#ip nhrp map multicast dynamic
※OSPFやEIGRPなどのマルチキャストに対応するための設定
※スポークのIPアドレスは固定ではないため「dynamic」を指定
# NHCのマルチキャストマッピングの設定(スポークに必要な設定)
(config-if)#ip nhrp map multicast {NBMAアドレス}
※OSPFやEIGRPなどのマルチキャストに対応するための設定
※ハブの物理インターフェース(WAN側)のIPアドレスを指定
# NHCが問い合わせを行うNHSアドレスの設定(スポークに必要な設定)
(config-if)#ip nhrp nhs {NHSのトンネルインターフェースのIPアドレス}
(config-if)#ip nhrp map {NHSのトンネルインターフェースのIPアドレス} {NBMAアドレス}
※ハブのトンネルインターフェースのIPアドレスと、ハブの物理インターフェースのIPアドレスを指定
# NHRPの認証設定(ハブとスポーク両方に必要な設定)
(config-if)#ip nhrp authentication {認証用の文字列}
※ハブとスポークで同一の文字列を入力
# NBMAアドレスのホールドタイムの設定(任意で行う設定)
(config)#interface Tunnel {任意の番号}
(config-if)#ip nhrp holdtime {ホールドタイム(秒)}
※デフォルトは7200秒
# NHRP登録タイムの設定(任意で行う設定)
(config)#interface Tunnel {任意の番号}
(config-if)#ip nhrp registration timeout {NHRP登録タイム(秒)}
※設定していない場合はホールドタイムの3分の1の秒数が使われるため、デフォルト値は2400秒
コマンド:DMVPNの設定で使用する主なコマンド:IPsec
# ISAKMPポリシーの作成(ハブとスポーク両方に設定)
(config)#crypto isakmp policy {1~10000}
(config-isakmp)#encryption {3des | aes 192 | aes 256}
(config-isakmp)#hash {md5 | sha | sha256}
(config-isakmp)#authentication pre-share
(config-isakmp)#group 5
(config-isakmp)#lifetime {60~86400(秒)}
※セキュリティ上、現在のCiscoでは「3des」「md5」は非推奨となっています
# IPsecトランスフォームセットの設定(ハブとスポーク両方に設定)
(config)#crypto ipsec transform-set {トランスフォーム名} {トランスフォーム(暗号化や認証アルゴリズムを指定)}
(cfg-crypto-trans)#mode transport
※DMVPNではGREでトンネリングが行われ、IPsecではトンネリングを行う必要がないため、IPsec通信モードを「transport」モードにすることが推奨
※デフォルトの「tunnel」モードではGREとIPsecの両方でトンネリングが行われるため、オーバーヘッドが多くなる。
# IKEフェーズ1 事前共有鍵の設定(ハブとスポーク両方に設定)
## 動的にIPアドレスを指定する方法
(config)#crypto isakmp key {事前共有鍵} address 0.0.0.0
基本的にmGREでは対向ルータが1つに固定されないため、全てのIPアドレスを示す「0.0.0.0」を指定
## 静的にIPアドレスを指定する方法
(config)#crypto isakmp key {事前共有鍵} address {対向ルータのIPアドレス}
スポーク間の通信を行わない場合は、スポーク側でハブルータのIPアドレスを固定で指定してもよい
(ハブ側では複数のスポークの通信を行うので動的にIPアドレスを指定する必要がある)
# IKEフェーズ2 IPsecプロファイルの作成とインターフェースへの適用(ハブとスポーク両方に設定)
(config)#crypto ipsec profile {プロファイル名}
(ipsec-profile)#set transform-set {トランスフォーム名}
(config)#interface Tunnel {任意の番号}
(config-if)#tunnel protection ipsec profile {プロファイル名} [shared]
※「shared」キーワードは、トンネル送信元インターフェースが同一である複数のトンネルにおいて同じIPsecプロファイルを使用する場合に指定します。
IPsecの設定確認で使用する主なコマンド
-
show crypto isakmp policy
:ISAKMPポリシーの設定を確認する -
show crypto ipsec transform-set
:IPsecトランスフォームセットの設定を確認する -
show crypto isakmp key
:事前共有鍵の設定を確認する -
show crypto ipsec profile
:IPsecプロファイルの設定を確認する
このスクラップは2024/03/11にクローズされました