セキュリティ : Cisco FlexVPN

FlexVPN は FlexVPN クライアント ブロック設定例と冗長 な ハブ 設計で話しました

2016 年 10 月 28 日 - 機械翻訳について
その他のバージョン: PDFpdf | 英語版 (2015 年 8 月 22 日) | フィードバック

概要

このドキュメントでは、複数のハブを使用できるシナリオで、FlexVPN クライアント設定ブロックを使用して、FlexVPN ネットワーク内にスポークを設定する方法について説明します。

著者:Cisco TAC エンジニア、Marcin Latosiewicz

前提条件

要件

次の項目に関する知識があることが推奨されます。

  • FlexVPN
  • Cisco のルーティング プロトコル

使用するコンポーネント

このドキュメントの情報は、次のソフトウェアとハードウェアのバージョンに基づくものです。

  • Cisco G2 シリーズのサービス統合型ルータ(ISR)
  • Cisco IOS® バージョン 15.2M

このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されたものです。 このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。 ネットワークが稼働中の場合は、コマンドが及ぼす潜在的な影響を十分に理解しておく必要があります。

背景説明

冗長性のために、スポークを複数のハブに接続することが必要になる場合があります。 スポーク側の冗長性によって、ハブ側でのシングル ポイント障害の発生しない継続的な運用が可能になります。

スポークの設定を使用する最も一般的な 2 つの FlexVPN 冗長ハブ設計は、次のとおりです。

  • 2 つのクラウド アプローチ:スポークに、両方のハブに常にアクティブな 2 つの別のトンネルがある。
  • フェールオーバー アプローチ:スポークに、任意の時点で 1 つのハブを持つアクティブなトンネルがある。

両方のアプローチに特有の長所と短所がいくつかあります。

アプローチ長所短所
2 つのクラウド
  • 障害時の迅速なリカバリ(ルーティング プロトコル タイマーに基づく)
  • ハブ間のトラフィックを配信する可能性がより高い(両方のハブへの接続がアクティブであるため)
  • スポークで両方のハブに対するセッションを同時に維持するため、両方のハブのリソースが消費される
フェールオーバー
  • 設定が容易(FlexVPN に組み込まれる)
  • 障害時にルーティング プロトコルに依存しない
  • リカバリ時間がより長くなる(Dead Peer Detection(DPD; デッドピア検出)または オブジェクト トラッキング(任意)に基づく
  • すべてのトラフィックを一度に 1 つのハブに送信せざるを得ない

このドキュメントでは、2 番目のアプローチについて説明します。

設定

: このセクションで使用されているコマンドの詳細を調べるには、Command Lookup Tool登録ユーザ専用)を使用してください。

ネットワーク図

次の各図には、トランスポートとオーバーレイのトポロジ図の両方が示されています。

転送ネットワーク

次の図は、FlexVPN ネットワークで通常使用される基本のトランスポート ネットワークを示しています。

オーバーレイ ネットワーク

次の図は、フェールオーバーの動作方法を示す論理的な接続を使用してオーバーレイ ネットワークを示しています。 通常の動作中は、Spoke 1 と Spoke 2 は 1 つのハブとだけの関係を維持しています。

: 図では、緑の実線はプライマリ インターネット キー エクスチェンジ バージョン 2(IKEv2)/Flex セッションの接続と方向を示し、青の点線はプライマリ ハブへのインターネット キー エクスチェンジ(IKE )のセッションで万一障害が発生した場合のバックアップ接続を示しています。

/24 のアドレス指定は、実際のインターフェイスのアドレス指定ではなく、このクラウドに割り当てられているアドレスの プールを表しています。 これは、FlexVPN ハブでは、通常スポークのインターフェイスにダイナミック IP アドレスを割り当て、FlexVPN の許可ブロックに route コマンドで動的に挿入されたルートに依存するためです。

スポークとハブの基本設定

ハブ アンド スポークの基本設定は、Dynamic Multipoint VPN(DMVPN)から FlexVPN への移行のドキュメントに基づいています。 この設定は、「FlexVPN の移行: 同じデバイスでの DMVPN から FlexVPN への完全移行」という記事で説明されています。

スポークの設定の調整

スポークの設定:クライアント設定ブロック

スポークの設定は、クライアント設定ブロックによって拡張する必要があります。

基本設定では、複数のピアを指定します。 最も高いプリファレンス(最も低い数値)のピアが他のものよりも優先されます。

crypto ikev2 client flexvpn Flex_Client
peer 1 172.25.1.1
peer 2 172.25.2.1
client connect Tunnel1

トンネル設定は、トンネルの宛先を FlexVPN のクライアント設定ブロックに基づいて動的に選択できるように、変更される必要があります。

interface Tunnel1
 tunnel destination dynamic

FlexVPN のクライアント設定ブロックは、インターフェイスに結び付けられ、IKEv2 にも IPSec(Internet Protocol Security)のプロファイルにも結び付けられないことを覚えておくことが重要です。

クライアント設定ブロックには、フェールオーバー時間と動作を調整するための複数のオプションが用意されており、オブジェクトのトラッキングの使用、ダイヤル バックアップ、バックアップ グループなどの機能があります。

基本設定によって、スポークでは、DPD を使用してスポークが応答しなくなっていないかどうかを検出し、ピアがデッドと宣言された場合に、変更をトリガーします。 DPD を使用するオプションは、DPD の動作方法のせいで、即効性のあるオプションではありません。 管理者は、オブジェクト トラッキングまたは同様の拡張を使用して設定を拡張することができます。

詳細については、このドキュメントの最後の「関連情報」の項にリンクが記載されている Cisco IOS の構成ガイドの「FlexVPN クライアント設定」の章を参照してください。

完全なスポークの設定:参照用

crypto logging session

crypto ikev2 keyring Flex_key
 peer Spokes
  address 0.0.0.0 0.0.0.0
  pre-shared-key local cisco
  pre-shared-key remote cisco

crypto ikev2 profile Flex_IKEv2
 match identity remote address 0.0.0.0
 authentication remote pre-share
 authentication local pre-share
 keyring local Flex_key
 aaa authorization group psk list default default
 virtual-template 1

crypto ikev2 dpd 30 5 on-demand

crypto ikev2 client flexvpn Flex_Client
  peer 1 172.25.1.1
  peer 2 172.25.2.1
  client connect Tunnel1

crypto ipsec transform-set IKEv2 esp-gcm
 mode transport

crypto ipsec profile default
 set ikev2-profile Flex_IKEv2

interface Tunnel1
 description FlexVPN tunnel
 ip address negotiated
 ip mtu 1400
 ip nhrp network-id 2
 ip nhrp shortcut virtual-template 1
 ip nhrp redirect
 ip tcp adjust-mss 1360
 delay 2000
 tunnel source Ethernet0/0
 tunnel destination dynamic
 tunnel path-mtu-discovery
 tunnel protection ipsec profile default

ハブの設定

ハブの設定も大部分は同じですが、いくつかの設定を行う必要があります。 行う設定のほとんどは、1 つ以上のスポークが 1 つのハブに接続されているが、他のスポークは別のハブと関係しているような状況に関連しています。

スポークのアドレス

スポークでは IP アドレスをハブから取得するため、ハブで、別個のサブネットのアドレス、または 1 つのサブネットの異なる部分を割り当てることが通常望ましいです。

次に、例を示します。

ハブ 1

ip local pool FlexSpokes 10.1.1.100 10.1.1.175

ハブ 2

ip local pool FlexSpokes 10.1.1.176 10.1.1.254

これにより、トラブルシューティングを妨げることがある、アドレスが FlexVPN クラウドの外部にルーティングされない場合でも、アドレスの重複生成が発生しなくなります。

ハブのオーバーレイ アドレス

両方のハブで、仮想テンプレート インターフェイスに同じ IP アドレスを保持できます。 ただし、この設定はトラブルシューティングに影響を与える可能性があります。 この設計の選択により、スポークには Border Gateway Protocol(BGP)のピアのアドレスを 1 つだけ保持する必要があるため、導入と計画が行いやすくなります。

場合によっては、オーバーレイ アドレスが望ましくないか、または不要なことがあります。

ルーティング

各ハブでは、接続されているスポークに関する情報を交換する必要があります。

各ハブでは、接続されたデバイスの特定のルートを交換でき、またスポークに集約も提供できる必要があります。

FlexVPN および DMVPN による iBGP を使用することを推奨しているため、そのルーティング プロトコルだけが示されています。

bgp log-neighbor-changes
bgp listen range 10.1.1.0/24 peer-group Spokes
network 192.168.0.0
neighbor Spokes peer-group
neighbor Spokes remote-as 65001
neighbor 192.168.0.2 remote-as 65001
neighbor 192.168.0.2 route-reflector-client
neighbor 192.168.0.2 next-hop-self all
neighbor 192.168.0.2 unsuppress-map ALL
access-list 1 permit any

route-map ALL permit 10
match ip address 1

この設定によって、次のことが可能になります。

  • スポークに割り当てられたアドレスからのダイナミック リスナー
  • 192.168.0.0/24 のネットワークのアドバタイジング
  • すべてのスポークへの 192.168.0.0/16 という集約ルートのアドバタイジング。 集約アドレスの設定が、null0 インターフェイスを介したそのプレフィックスのスタティック ルートを作成します。このルートは、ルーティング ループを防ぐために使用される廃棄ルートです。
  • もう一方のハブへの特定のプレフィックスの転送
  • 各ハブが相互の間で、スポークから取得した情報を交換するようにするためのルート リフレクタ クライアント

次の図は、ハブの 1 つから見た場合の、この設定での BGP のプレフィックス交換を表しています。

: この図では、緑の線はスポークによってハブに提供される情報を表し、赤い線は各ハブによってスポークに提供される情報(集約のみ)を表し、青い線はハブ間で交換されるプレフィックスを表しています。

ネットワーク集約の使用

集約は、シナリオによっては適切でないか、または望ましくない場合があります。 iBGP ではネクスト ホップがデフォルトではオーバーライドされないため、プレフィックスで宛先 IP を指定する場合は注意してください。

集約は、状態が頻繁に変更されるネットワークで推奨されます。 たとえば、状態が変更されやすいインターネット接続では、 プレフィックスの削除と追加の回避、更新回数の制限、ほとんどの設定の適切なスケーリングの可能化を行うために集約が必要になる場合があります。

スポーク間トンネル

前の項で説明したシナリオと設定では、異なるハブのスポークは直接のスポーク間トンネルを確立できません。 異なるハブに接続されたスポーク間のトラフィックは、中央の各デバイスを超えてフローします。

この問題には簡単な回避策があります。 ただし、同じネットワーク ID の Next Hop Resolution Protocol(NHRP)をハブ間で有効にする必要があります。 これは、たとえばハブ間でポイントツーポイントの Generic Routing Encapsulation(GRE)トンネルを作成した場合に実現できます。 こうすれば、IPsec は不要になります。

確認

特定の show コマンドがアウトプット インタープリタ ツール登録ユーザ専用)でサポートされています。 show コマンド出力の分析を表示するには、アウトプット インタープリタ ツールを使用します。

show crypto ikev2 saコマンドでは、スポークが現在接続されている場所について報告します。

show crypto ikev2 client flexvpn コマンドを使用すれば、管理者は FlexVPN クライアントの動作の現在の状態が分かります。

Spoke2# show crypto ikev2 client flexvpn
Profile : Flex_Client
Current state:ACTIVE
Peer : 172.25.1.1
Source : Ethernet0/0
ivrf : IP DEFAULT
fvrf : IP DEFAULT
Backup group: Default
Tunnel interface : Tunnel1
Assigned IP address: 10.1.1.111

show logging の設定を使用したフェールオーバーが正常に終了すると、スポーク デバイスに関する次の出力がログに記録されます。

%CRYPTO-5-IKEV2_SESSION_STATUS: Crypto tunnel v2 is DOWN.  Peer 172.25.1.1:500
Id: 172.25.1.1
%FLEXVPN-6-FLEXVPN_CONNECTION_DOWN: FlexVPN(Flex_Client) Client_public_addr =
172.16.2.2 Server_public_addr = 172.25.1.1
%LINEPROTO-5-UPDOWN: Line protocol on Interface Tunnel1, changed state to down
%LINEPROTO-5-UPDOWN: Line protocol on Interface Tunnel1, changed state to up
%CRYPTO-5-IKEV2_SESSION_STATUS: Crypto tunnel v2 is UP.  Peer 172.25.2.1:500
Id: 172.25.2.1
%FLEXVPN-6-FLEXVPN_CONNECTION_UP: FlexVPN(Flex_Client) Client_public_addr =
172.16.2.2 Server_public_addr = 172.25.2.1 Assigned_Tunnel_v4_addr = 10.1.1.177

この出力では、スポークがハブの 172.25.1.1 から切断され、Flex_Client のクライアント設定ブロックによって障害が検出され、トンネルがアップする 172.25.2.1 に強制的に接続され、スポークに 10.1.1.177 の IP が割り当てられます。

トラブルシューティング

特定の show コマンドがアウトプット インタープリタ ツール登録ユーザ専用)でサポートされています。 show コマンド出力の分析を表示するには、アウトプット インタープリタ ツールを使用します。

: debug コマンドを使用する前に、『debug コマンドの重要な情報』を参照してください。

関連する debug コマンドを下に示します。

  • debug crypto ikev2
  • debug radius

関連情報



Document ID: 116413