目次
概要
DMVPN(Dynamic Multipoint VPN)のインターネットVPNにおいて、FVRFでアンダーレイネットワークとオーバーレイネットワークを分離するための設定について考えます。
関連記事
オーバレイネットワークとアンダーレイネットワークについて、以下の記事もあわせてご覧ください。
FVRFについて、以下の記事もあわせてご覧ください。
DMVPN(Dynamic Multipoint VPN)の概要
デフォルトのGREトンネルまたはIPSec VTIは、ポイントツーポイント接続です。インターネットVPNで通信する拠点が複数あると、ポイントツーポイント接続では効率がよくありません。トンネルインタフェースの設定が煩雑になってしまいます。
そこで、DMVPNを利用します。DMVPNは、マルチポイントGRE(以下、mGRE)トンネルに基づいています。mGREトンネルによって、マルチアクセスのオーバーレイネットワークを構築できます。つまり、同一ネットワークに2台以上のルータを接続できるオーバーレイネットワークです。mGREトンネル上で、ルーティングプロトコルを動作させることができ、オーバーレイネットワーク経由のルート情報をダイナミックに学習できます。ただし、mGREトンネルは、イーサネットのようなブロードキャストマルチアクセスネットワークではありません。フレームリレーのようなノンブロードキャストマルチアクセスネットワークです。そのため、OSPF/EIGRPといったルーティングプロトコルを動作させるには、ちょっとした追加の設定が必要です。
そして、mGREトンネル経由で通信するデータは、IPSecで暗号化してアンダーレイネットワーク上を転送します。適切なルータ間で自動的にISAKMP/IPSec SAを確立した上で、データの暗号化を行い、適切なヘッダでカプセル化してインターネット(アンダーレイネットワーク)上に転送します。ポイントツーポイントGREトンネルのときには、カプセル化する新しいIPヘッダの宛先IPアドレスは事前設定しています。mGREトンネルでは、NHRPによって新しいIPヘッダの宛先IPアドレスをダイナミックに解決します。
ポイントツーポイントGREトンネルと同様に、DMVPNのmGREトンネル(オーバーレイネットワーク)とインターネット(アンダーレイネットワーク)をVRFで論理的に分離できます。
オーバーレイネットワークのVRF : FVRF
アンダーレイネットワークのVRF : IVRF
以下の図で、A社拠点1のルータのみVRFでオーバーレイネットワークとアンダーレイネットワークを分離している様子を表しています。
DMVPN(VRF-aware)の設定のポイント
mGREトンネルインタフェース
mGREトンネルインタフェースで大事なことは、NHRPについての設定です。NHRPでオーバーレイネットワークのIPアドレスとアンダーレイネットワークのIPアドレスの対応をダイナミックに解決できるようにします。NHRP自体はVRFとはあまり関係ありませんが、NHRPのコマンドについて振り返っておきましょう。なお、ここで解説しているのは、NHRP Phase2です。
NHS NHRPの設定
オーバーレイとアンダーレイのIPアドレスの対応を管理するNHS(Next Hop Server)のmGREの設定コマンドは、以下のようになります。
NHS NHRPの設定
(config)#interface tunnel <interface-number>
(config-if)#tunnel mode gre multipoint
(config-if)#tunnel source {<source-address>|<source-interface>}
(config-if)#ip nhrp network-id <network-id>
(config-if)#ip nhrp map multicast dynamic
<interface-number> : インタフェース番号
<source-address>|<source-interface> : 新しく付加するIPヘッダの送信元IPアドレス|インタフェース
<network-id> : ネットワークID
tunnel mode gre multipointコマンドで、mGREインタフェースとします。mGREでは、tunnel destinationの設定は行いません。アンダーレイネットワークの宛先IPアドレスはNHRPで解決します。
tunnel sourceコマンドで、アンダーレイで転送するときに新しく付加するIPヘッダの送信元IPアドレスを決めます。tunnel sourceはアンダーレイのIPアドレスです。
ip nhrp network-idコマンドで、任意のネットワークIDを指定します。ローカルで意味があるので他の機器と合わせなくてもいいのですが、通常はmGREトンネル上の機器で共通したネットワークIDを指定します。
そして、ip nhrp map multicast dynamicコマンドで、マルチキャスト(ブロードキャスト)パケットをダイナミックに学習したNHC宛てのユニキャスト(アンダーレイ)で転送できるようにします。mGREはノンブロードキャストマルチアクセスネットワークなので、疑似ブロードキャストできるようにするための設定です。
NHC NHRPの設定
NHCは、自身のオーバーレイアドレスとアンダーレイアドレスの情報をNHSへ登録します。そして、mGRE上でパケットを転送するときにアンダーレイネットワークのアドレスが必要です。そのために、NHSへ必要なアンダーレイアドレスを問い合わせます。
NHC(Next Hop Client)のmGRE設定コマンドは以下のようになります。
NHC NHRPの設定
(config)#interface tunnel <interface-number>
(config-if)#tunnel mode gre multipoint
(config-if)#tunnel source {<source-address>|<source-interface>}
(config-if)#ip nhrp network-id <network-id>
(config-if)#ip nhrp map <nhs-overlay-address> <nhs-underlay-address>
(config-if)#ip nhrp nhs <nhs-overlay-address>
(config-if)#ip nhrp map multicast <nhs-underlay-address>
<interface-name> : インタフェース番号
<source-address>|<source-interface> : 新しく付加するIPヘッダの送信元IPアドレス|インタフェース
<network-id> : ネットワークID
<nhs-overlay-address> : NHSのオーバーレイアドレス
<nhs-underlay-address> : NHSのアンダーレイアドレス
NHCは、自身のオーバーレイアドレスとアンダーレイアドレスの対応をNHSに登録します。登録先のNHSのオーバーレイアドレスをip nhrp nhsコマンドで設定してください。そして、NHSのオーバーレイアドレスに対応するアンダーレイアドレスをip nhrp mapコマンドで設定します。
ip nhrp map multicastコマンドでmGREトンネル上のマルチキャスト(ブロードキャスト)を転送するときにカプセル化するアンダーレイアドレスを設定してください。たいていは、NHSのアンダーレイアドレスを指定します。つまり、マルチキャスト(ブロードキャスト)はNHSだけに転送するように設定していることがほとんどです。
CiscoオフィシャルのNHRPのコマンド構文から、このページではオプション名について少し表現を変えています。
トンネルアドレス → オーバーレイアドレス
NBMAアドレス → アンダーレイアドレス
「オーバーレイ」「アンダーレイ」という言葉の方がわかりやすいと考えているからです。
IOSバージョンによっては、3つのコマンドをまとめて設定できます。
(config-if)#ip nhrp map <nhs-overlay-address> <nhs-underlay-address>
(config-if)#ip nhrp nhs <nhs-overlay-address>
(config-if)#ip nhrp map multicast <nhs-underlay-address>
↓
(config)#ip nhrp nhs <nhs-overlay-address> nbma <nhs-underlay-address> multicast
以下の図は、ここまでのNHS/NHSのコマンドの簡単な例です。シンプルにするためにNHCを1つだけにしています。NHCを追加するときにも同様に考えてください。
この例では、アンダーレイアドレスとして、FVRFのLo0のIPアドレスを利用しています。アンダーレイアドレスは、必ずしも物理インタフェースのIPアドレスである必要はありません。アンダーレイネットワークを通じて接続性があればOKです。
NHS/NHC VRFおよびIPSec関連の設定
NHS/NHC共通して、mGREトンネルの設定を以下のように行います。mGREトンネルとアンダーレイをVRFで分割して、mGREトンネルのデータをIPSecで暗号化するための設定です。
NHS/NHC VRFおよびIPSec関連の設定
(config)#interface tunnel <interface-number>
(config-if)#ip vrf forwarding <IVRF>
(config-if)#ip address <address> <subnetmask>
(config-if)#tunnel vrf <FVRF>
(config-if)#tunnel protection ipsec profile <IPSec-profile>
<IVRF> : IVRF名
<address> <subnetmask> : オーバーレイネットワークのIPアドレス
<FVRF> : FVRF名
<IPSec-profile> : IPSecプロファイル名
VRF自体の定義やIPSecプロファイルなどの設定コマンドは省略しています。
mGREトンネル自体は、ポイントツーポイントGREトンネルと同様にオーバーレイネットワークのインタフェースです。そのため、ip vrf forwardingでオーバーレイネットワークのIVRFに割り当ててください。適切なオーバーレイネットワークのIPアドレスの設定も必要です。
mGRE経由のパケットは、実際には、アンダーレイネットワークのFVRFで転送することになるので、tunnel vrfコマンドでFVRFに対応づけます。そして、Tunnel上のパケットをすべてIPSecで暗号化するためにtunnel protectionコマンドでIPSecプロファイルを関連付けます。
crypto keyring
IPSec VTIと同様に、DMVPNのIPSecの通信はアンダーレイネットワークを通じて行います。そのため、FVRFのルーティングテーブルに基づいて設定します。crypto keyringでVRFを指定します。
crypto keyring
(config)#crypto keyring <name> vrf <vrf-name>
(config-keyring)#pre-shared-key address 0.0.0.0 0.0.0.0 key <key>
<name> : キーリング名
<vrf-name> : VRF名
<ip-address> [<mask>] : 対向のIPSecピア
<key> : 事前共有鍵
DMVPNのときは、IPSecのピアはダイナミックに確立するので、ピアのIPアドレスを明示的に指定しません。ピアのアドレスとマスクとしてともに「0.0.0.0」を指定します。
まとめ
ポイント
- DMVPNは、マルチポイントGRE(mGRE)トンネルに基づいています。
- mGREインタフェースは、2台以上のルータを接続できるノンブロードキャストマルチアクセスネットワークを構築できます。
- VRFでmGREトンネルのオーバーレイネットワークとアンダーレイネットワークを分離できます。
関連記事
DMVPN(VRF-aware)の設定例を以下の記事にまとめています。
IPルーティング応用
- DNSラウンドロビン方式の負荷分散
- 負荷分散装置(ロードバランサ)の仕組み
- ルーティングプロセス ~実行中のルーティングプロトコル用のプログラム~
- 複数のルーティングプロトコルの利用
- 再配送(再配布) ~ルーティングドメイン境界で必須の設定~
- Cisco再配送(再配布)の設定 ~redistributeコマンド~
- Cisco 再配送の設定例 ~OSPFとRIPの双方向再配送~
- 再配送 設定ミスの切り分けと修正 Part1
- 再配送 設定ミスの切り分けと修正 Part2
- 再配送 設定ミスの切り分けと修正 Part3
- 再配送 設定ミスの切り分けと修正 Part4
- 再配送 設定ミスの切り分けと修正 Part5
- 再配送 設定ミスの切り分けと修正 Part6
- オフセットリスト(offset-list) ~ルート情報のメトリックを加算~
- オフセットリストの設定例 RIP
- オフセットリストの設定例 EIGRP
- ルートフィルタの概要
- ルートフィルタのポイント
- ディストリビュートリストによるルートフィルタの設定
- Ciscoディストリビュートリストによるルートフィルタの設定例
- プレフィクスリスト(prefix-list)によるルートフィルタの設定
- Ciscoプレフィクスリストによるルートフィルタの設定例
- Ciscoルートマップ(route-map)の概要 ~何をどう処理するか~
- Ciscoルートマップの設定
- Ciscoルートマップ(route-map)設定のポイント
- Ciscoルートマップによる再配送時のルート制御の設定例
- ポリシーベースルーティングの設定例
- GREトンネルインタフェース ~仮想的なポイントツーポイント接続~
- GREトンネルインタフェースの設定例
- GREトンネルの注意点 ~フラッピングしないように~
- オーバーレイネットワークとアンダーレイネットワーク
- ルート制御 ケーススタディ Part1
- ルート制御 ケーススタディ Part2
- ルート制御 ケーススタディ Part3
- VRF/VRF-Liteの概要 ~仮想的にルータを分割する~
- VRFの設定と確認コマンド [Cisco]
- VRF-Liteによるレイヤ3VPNの設定例 [Cisco]
- VRFルートリーク(スタティックルート)
- VRFルートリーク(スタティックルート)の設定例
- VRFルートリーク(MP-BGP)
- VRFルートリーク(MP-BGP)の設定例
- [FVRFの仕組み] FVRF(Front door VRF)とは
- [FVRFの仕組み] ポイントツーポイントGREトンネル:FVRFなし
- [FVRFの仕組み] ポイントツーポイントGREトンネル : FVRFあり(tunnel vrfコマンド)
- [FVRFの仕組み] IPSec VTI : FRVRFあり
- [FVRFの仕組み] IPSec VTI : FVRFあり 設定例
- [FVRFの仕組み] DMVPN : FVRFあり
- [FVRFの仕組み] DMVPN : FVRFあり 設定例 Part1
- [FVRFの仕組み] DMVPN : FVRFあり 設定例 Part2
- tunnel vrfコマンド
- tunnel vrfコマンドの設定例
- [演習] ルーティングループの防止
- [演習] 企業ネットワーク構築演習 Part1:拠点1の構築
- [演習] 企業ネットワーク構築演習 Part2:拠点2/拠点3の構築
- [演習] 企業ネットワーク構築演習 Part3:広域イーサネットの接続
- [演習] 企業ネットワーク構築演習 Part4:インターネット(AS1/AS2)の構築
- [演習] 企業ネットワーク構築演習 Part5:インターネットへの接続
- [演習] 企業ネットワーク構築演習 Part6:インターネットVPNの構築