はじめに
このドキュメントでは、FMCによって管理されるFTDのIP SLAトラック機能を使用して、バックアップISPリンクでクリプトマップベースのフェールオーバーを設定する方法について説明します。
前提条件
要件
次の項目に関する知識があることが推奨されます。
- バーチャルプライベートネットワーク(VPN)の基本的な知識
- FTDの使用経験
- FMCの経験
- 適応型セキュリティアプライアンス(ASA)コマンドラインの経験
使用するコンポーネント
このドキュメントの情報は、次のソフトウェアのバージョンに基づいています。
- FMCバージョン6.6.0
- FTDバージョン6.6.0
- ASA バージョン 9.14.1
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。
背景説明
このドキュメントでは、Firepower Management Center(FMC)によって管理されるFirepower Threat Defense(FTD)のインターネットプロトコルサービスレベル契約(IP SLA)トラック機能を使用して、バックアップのインターネットサービスプロバイダー(ISP)リンクのクリプトマップベースのフェールオーバーを設定する方法について説明します。 また、2つのISPがあり、シームレスなフェールオーバーが必要な場合に、VPNトラフィックに対してネットワークアドレス変換(NAT)除外を設定する方法についても説明します。
このシナリオでは、ISPインターフェイスが1つだけのVPNピアとして、FTDからASAに向けてVPNが確立されます。FTDは、その時点で1つのISPリンクを使用してVPNを確立します。プライマリISPリンクがダウンすると、FTDがSLAモニタを介してセカンダリISPリンクを引き継ぎ、VPNが確立されます。
設定
ネットワーク図
このドキュメント全体の例で使用するトポロジを次に示します。

FTDの設定
ステップ 1:プライマリおよびセカンダリISPインターフェイスの定義
1. 図に示すように、Devices > Device Management > Interfacesの順に移動します。

ステップ 2:プライマリISPインターフェイスのVPNトポロジの定義
1. Devices > VPN > Site To Siteの順に移動します。 Add VPNで、Firepower Threat Defense Deviceをクリックし、VPNを作成してOutsideインターフェイスを選択します。
注:このドキュメントでは、S2S VPNを最初から設定する方法については説明していません。FTDでのS2S VPN設定の詳細については、https://www.cisco.com/c/en/us/support/docs/security-vpn/ipsec-negotiation-ike-protocols/215470-site-to-site-vpn-configuration-on-ftd-ma.htmlを参照してください。

ステップ 3:セカンダリISPインターフェイスのVPNトポロジを定義する
1. Devices > VPN > Site To Siteの順に移動します。 Add VPNで、Firepower Threat Defense Deviceをクリックし、VPNを作成してOutside2インターフェイスを選択します。
注:Outside2インターフェイスを使用するVPN設定は、VPNインターフェイスを除き、Outside VPNのトポロジとまったく同じでなければなりません。

VPNトポロジは、図に示すように設定する必要があります。

ステップ 4:SLAモニタの設定
1. 「オブジェクト」>「SLAモニター」>「SLAモニターの追加」に移動します。 Add VPNで、Firepower Threat Defense Deviceをクリックし、図に示すようにSLAモニタを設定します。

2. SLA Monitor ID*フィールドの値は、1 ~ 2147483647の範囲で指定できます
3. Monitor Address*フィールドには、OutsideネクストホップIPアドレスを使用します。

ステップ 5:SLAモニタでスタティックルートを設定する
1. Devices > Routing > Static Routeの順に選択します。Add Routeを選択し、Route trackingフィールドの(ステップ4で作成した)SLA Monitor情報を使用して、Outside(プライマリ)インターフェイスのデフォルトルートを設定します。

2. Outside2(セカンダリ)インターフェイスのデフォルトルートを設定します。メトリック値は、プライマリデフォルトルートよりも大きい必要があります。このセクションでは、ルートトラッキングフィールドは不要です。

ルートは、図に示すように設定する必要があります。

手順 6:NAT免除の設定
1. Devices > NAT > NAT Policyの順に移動し、FTDデバイスを対象とするポリシーを選択します。Add Ruleを選択し、ISPインターフェイス(OutsideおよびOutside2)ごとにNAT免除を設定します。 NATルールは、宛先インターフェイスを除いて同じである必要があります。

注:このシナリオでは、両方のNATルールでRoute-lookupを有効にする必要があります。そうしないと、トラフィックは最初のルールに到達し、フェールオーバールートを維持できません。ルートルックアップがイネーブルになっていない場合、トラフィックは常に(最初のNATルール)外部インターフェイスを使用して送信されます。Route-lookupが有効な場合、トラフィックは常に、SLAモニタを通じて制御されるルーティングテーブルに留まります。
手順 7:対象トラフィックのアクセスコントロールポリシーの設定
1. [ポリシー] > [アクセスコントロール] > [アクセス制御ポリシーの選択]に移動します。 ルールを追加するには、次の図に示すように、Add Ruleをクリックします。
InsideゾーンからOutsideゾーン(Outside1とOutside2)にルールを1つ設定します。これにより、10.10.10.0/24から192.168.100/24への対象トラフィックが許可されます。
Outsideゾーン(Outside1およびOutside 2)からInsideに別のルールを設定し、192.168.100/24から10.10.10.0/24への対象トラフィックを許可します。

ASA の設定
注:この特定のシナリオでは、バックアップピアがIKEv2暗号マップに設定されます。この機能を使用するには、ASAが9.14.1以降のバージョン上にある必要があります。ASAが古いバージョンを実行している場合は、回避策としてIKEv1を使用します。詳細については、Cisco Bug ID CSCud22276を参照してください。
-
ASAの外部インターフェイスでIKEv2を有効にします。
Crypto ikev2 enable Outside
2. FTDで設定されているのと同じパラメータを定義するIKEv2ポリシーを作成します。
crypto ikev2 policy 1
encryption aes-256
integrity sha256
group 14
prf sha256
lifetime seconds 86400
3. ikev2プロトコルを許可するグループポリシーを作成します。
group-policy IKEV2 internal
group-policy IKEV2 attributes
vpn-tunnel-protocol ikev2
4. 各Outside FTD IPアドレス(Outside1およびOutside2)のトンネルグループを作成します。 グループポリシーを参照し、事前共有キーを指定します。
tunnel-group 10.200.1.5 type ipsec-l2l
tunnel-group 10.200.1.5 general-attributes
default-group-policy IKEV2
tunnel-group 10.200.1.5 ipsec-attributes
ikev2 remote-authentication pre-shared-key Cisco123
ikev2 local-authentication pre-shared-key Cisco123
tunnel-group 10.201.1.5 type ipsec-l2l
tunnel-group 10.201.1.5 general-attributes
default-group-policy IKEV2
tunnel-group 10.201.1.5 ipsec-attributes
ikev2 remote-authentication pre-shared-key Cisco123
ikev2 local-authentication pre-shared-key Cisco123
5. 暗号化するトラフィックを定義するアクセスリストを作成します(FTD-Subnet 10.10.10.0/24)(ASA-Subnet 192.168.100.0/24)。
Object network FTD-Subnet
Subnet 10.10.10.0 255.255.255.0
Object network ASA-Subnet
Subnet 192.168.100.0 255.255.255.0
access-list VPN_1 extended permit ip 192.168.100.0 255.255.255.0 10.10.10.0 255.255.255.0
6. FTDで指定されたアルゴリズムを参照するikev2 ipsec-proposalを作成します。
crypto ipsec ikev2 ipsec-proposal CSM_IP_1
protocol esp encryption aes-256
protocol esp integrity sha-256
7. 設定を結び付ける暗号マップエントリを作成して、Outside1とOutside2のFTD IPアドレスを追加します。
crypto map CSM_Outside_map 1 match address VPN_1
crypto map CSM_Outside_map 1 set peer 10.200.1.5 10.201.1.5
crypto map CSM_Outside_map 1 set ikev2 ipsec-proposal CSM_IP_1
crypto map CSM_Outside_map 1 set reverse-route
crypto map CSM_Outside_map interface Outside
8. VPNトラフィックがファイアウォールによってNATされることを防ぐNAT免除ステートメントを作成します。
Nat (inside,Outside) 1 source static ASA-Subnet ASA-Subnet destination static FTD-Subnet FTD-Subnet no-proxy-arp route-lookup
確認
このセクションでは、設定が正常に動作していることを確認します。
FTD
コマンドラインでshow crypto ikev2 saコマンドを使用し、VPNステータスを確認します。
注:VPNは、Outside1のIPアドレス(10.200.1.5)をローカルとして確立されます。
firepower# sh crypto ikev2 sa
IKEv2 SAs:
Session-id:24, Status:UP-ACTIVE, IKE count:1, CHILD count:1
Tunnel-id Local Remote Status Role
373101057 10.200.1.5/500 10.100.1.1/500 READY RESPONDER
Encr: AES-CBC, keysize: 256, Hash: SHA256, DH Grp:14, Auth sign: PSK, Auth verify: PSK
Life/Active Time: 86400/37 sec
Child sa: local selector 10.10.10.0/0 - 10.10.10.255/65535
remote selector 192.168.100.0/0 - 192.168.100.255/65535
ESP spi in/out: 0x829ed58d/0x2051ccc9
ルート
デフォルトルートは、Outside1のネクストホップIPアドレスを示しています。
firepower# sh route
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2, V - VPN
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route, + - replicated route
SI - Static InterVRF
Gateway of last resort is 10.200.1.1 to network 0.0.0.0
S* 0.0.0.0 0.0.0.0 [1/0] via 10.200.1.1, Outside1
C 10.10.10.0 255.255.255.0 is directly connected, Inside
L 10.10.10.5 255.255.255.255 is directly connected, Inside
C 10.200.1.0 255.255.255.0 is directly connected, Outside1
L 10.200.1.5 255.255.255.255 is directly connected, Outside1
C 10.201.1.0 255.255.255.0 is directly connected, Outside2
L 10.201.1.5 255.255.255.255 is directly connected, Outside2
トラック
show track 1の出力に見られるように、「Reachability is Up」です。
firepower# sh track 1
Track 1
Response Time Reporter 10 reachability
Reachability is Up <-----
36 changes, last change 00:00:04
Latest operation return code: OK
Latest RTT (millisecs) 1
Tracked by:
STATIC-IP-ROUTING 0
NAT
対象トラフィックがOutside1インターフェイスのNAT免除ルールにヒットすることを確認する必要があります。
「packet-tracer input Inside icmp 10.10.10.1 8 0 192.168.100.10 detail」コマンドを使用して、対象トラフィックに適用されたNATルールを確認します。
firepower# packet-tracer input inside icmp 10.10.10.1 8 0 192.168.100.1 det
---------------OMITTED OUTPUT -----------------
Phase: 4
Type: UN-NAT
Subtype: static
Result: ALLOW
Config:
nat (Inside,Outside1) source static 10.10.10.0 10.10.10.0 destination static 192.168.100.1 192.168.100.1 no-proxy-arp route-lookup description NAT EXEMPTION OUTSIDE _VPN
Additional Information:
NAT divert to egress interface Outside1(vrfid:0)
Untranslate 192.168.100.1/0 to 192.168.100.1/0
---------------OMITTED OUTPUT -----------------
Phase: 7
Type: NAT
Subtype:
Result: ALLOW
Config:
nat (Inside,Outside1) source static 10.10.10.0 10.10.10.0 destination static 192.168.100.1 192.168.100.1 no-proxy-arp route-lookup description NAT EXEMPTION OUTSIDE _VPN
Additional Information:
Static translate 10.10.10.1/0 to 10.10.10.1/0
Forward Flow based lookup yields rule:
in id=0x2b3e09576290, priority=6, domain=nat, deny=false
hits=19, user_data=0x2b3e0c341370, cs_id=0x0, flags=0x0, protocol=0
src ip/id=10.10.10.0, mask=255.255.255.0, port=0, tag=any
dst ip/id=192.168.100.0, mask=255.255.255.0, port=0, tag=any, dscp=0x0
input_ifc=Inside(vrfid:0), output_ifc=Outside1(vrfid:0)
Phase: 8
Type: NAT
Subtype: per-session
Result: ALLOW
Config:
Additional Information:
Forward Flow based lookup yields rule:
in id=0x2b3e0a482330, priority=0, domain=nat-per-session, deny=true
hits=3596, user_data=0x0, cs_id=0x0, reverse, use_real_addr, flags=0x0, protocol=0
src ip/id=0.0.0.0, mask=0.0.0.0, port=0, tag=any
dst ip/id=0.0.0.0, mask=0.0.0.0, port=0, tag=any, dscp=0x0
input_ifc=any, output_ifc=any
---------------OMITTED OUTPUT -----------------
Phase: 12
Type: VPN
Subtype: encrypt
Result: ALLOW
Config:
Additional Information:
Forward Flow based lookup yields rule:
out id=0x2b3e0c8d0250, priority=70, domain=encrypt, deny=false
hits=5, user_data=0x16794, cs_id=0x2b3e0b633c60, reverse, flags=0x0, protocol=0
src ip/id=10.10.10.0, mask=255.255.255.0, port=0, tag=any
dst ip/id=192.168.100.0, mask=255.255.255.0, port=0, tag=any, dscp=0x0
input_ifc=any(vrfid:65535), output_ifc=Outside1
Phase: 13
Type: NAT
Subtype: rpf-check
Result: ALLOW
Config:
nat (Inside,Outside1) source static 10.10.10.0 10.10.10.0 destination static 192.168.100.1 192.168.100.1 no-proxy-arp route-lookup description NAT EXEMPTION OUTSIDE _VPN
Additional Information:
Forward Flow based lookup yields rule:
out id=0x2b3e095d49a0, priority=6, domain=nat-reverse, deny=false
hits=1, user_data=0x2b3e0c3544f0, cs_id=0x0, use_real_addr, flags=0x0, protocol=0
src ip/id=10.10.10.0, mask=255.255.255.0, port=0, tag=any
dst ip/id=192.168.100.0, mask=255.255.255.0, port=0, tag=any, dscp=0x0
input_ifc=Inside(vrfid:0), output_ifc=Outside1(vrfid:0)
Phase: 14
Type: VPN
Subtype: ipsec-tunnel-flow
Result: ALLOW
Config:
Additional Information:
Reverse Flow based lookup yields rule:
in id=0x2b3e0c8ad890, priority=70, domain=ipsec-tunnel-flow, deny=false
hits=5, user_data=0x192ec, cs_id=0x2b3e0b633c60, reverse, flags=0x0, protocol=0
src ip/id=192.168.100.0, mask=255.255.255.0, port=0, tag=any
dst ip/id=10.10.10.0, mask=255.255.255.0, port=0, tag=any, dscp=0x0
input_ifc=Outside1(vrfid:0), output_ifc=any
Phase: 15
Type: NAT
Subtype: per-session
Result: ALLOW
Config:
Additional Information:
Reverse Flow based lookup yields rule:
in id=0x2b3e0a482330, priority=0, domain=nat-per-session, deny=true
hits=3598, user_data=0x0, cs_id=0x0, reverse, use_real_addr, flags=0x0, protocol=0
src ip/id=0.0.0.0, mask=0.0.0.0, port=0, tag=any
dst ip/id=0.0.0.0, mask=0.0.0.0, port=0, tag=any, dscp=0x0
input_ifc=any, output_ifc=any
---------------OMITTED OUTPUT -----------------
Result:
input-interface: Inside(vrfid:0)
input-status: up
input-line-status: up
output-interface: Outside1(vrfid:0)
output-status: up
output-line-status: up
Action: allow
フェールオーバーの実行
この例では、IP SLAモニタ設定で使用されているOutside1のネクストホップをシャットダウンすることで、フェールオーバーが実行されます。
firepower# sh sla monitor configuration 10
IP SLA Monitor, Infrastructure Engine-II.
Entry number: 10
Owner:
Tag:
Type of operation to perform: echo
Target address: 10.200.1.1
Interface: Outside1
Number of packets: 1
Request size (ARR data portion): 28
Operation timeout (milliseconds): 5000
Type Of Service parameters: 0x0
Verify data: No
Operation frequency (seconds): 60
Next Scheduled Start Time: Start Time already passed
Group Scheduled : FALSE
Life (seconds): Forever
Entry Ageout (seconds): never
Recurring (Starting Everyday): FALSE
Status of entry (SNMP RowStatus): Active
Enhanced History:
ルート
デフォルトルートはOutside2のネクストホップIPアドレスを使用し、到達可能性はダウンしています。
firepower# sh route
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2, V - VPN
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route, + - replicated route
SI - Static InterVRF
Gateway of last resort is 10.201.1.1 to network 0.0.0.0
S* 0.0.0.0 0.0.0.0 [2/0] via 10.201.1.1, Outside2
C 10.10.10.0 255.255.255.0 is directly connected, Inside
L 10.10.10.5 255.255.255.255 is directly connected, Inside
C 10.200.1.0 255.255.255.0 is directly connected, Outside1
L 10.200.1.5 255.255.255.255 is directly connected, Outside1
C 10.201.1.0 255.255.255.0 is directly connected, Outside2
L 10.201.1.5 255.255.255.255 is directly connected, Outside2
トラック
show track 1の出力からわかるように、この時点で「Reachability is Down」です。
firepower# sh track 1
Track 1
Response Time Reporter 10 reachability
Reachability is Down <----
37 changes, last change 00:17:02
Latest operation return code: Timeout
Tracked by:
STATIC-IP-ROUTING 0
NAT
firepower# packet-tracer input inside icmp 10.10.10.1 8 0 192.168.100.1 det
---------------OMITTED OUTPUT -----------------
Phase: 4
Type: NAT
Subtype:
Result: ALLOW
Config:
nat (Inside,Outside2) source static 10.10.10.0 10.10.10.0 destination static 192.168.100.1 192.168.100.1 no-proxy-arp route-lookup description NAT EXEMPTION OUTSIDE _VPN
Additional Information:
Static translate 10.10.10.1/0 to 10.10.10.1/0
Forward Flow based lookup yields rule:
in id=0x2b3e0c67d470, priority=6, domain=nat, deny=false
hits=44, user_data=0x2b3e0c3170e0, cs_id=0x0, flags=0x0, protocol=0
src ip/id=10.10.10.0, mask=255.255.255.0, port=0, tag=any
dst ip/id=192.168.100.0, mask=255.255.255.0, port=0, tag=any, dscp=0x0
input_ifc=Inside(vrfid:0), output_ifc=Outside2(vrfid:0)
---------------OMITTED OUTPUT -----------------
Phase: 9
Type: VPN
Subtype: encrypt
Result: ALLOW
Config:
Additional Information:
Forward Flow based lookup yields rule:
out id=0x2b3e0c67bdb0, priority=70, domain=encrypt, deny=false
hits=1, user_data=0x1d4cfb24, cs_id=0x2b3e0c273db0, reverse, flags=0x0, protocol=0
src ip/id=10.10.10.0, mask=255.255.255.0, port=0, tag=any
dst ip/id=192.168.100.0, mask=255.255.255.0, port=0, tag=any, dscp=0x0
input_ifc=any(vrfid:65535), output_ifc=Outside2
Phase: 10
Type: NAT
Subtype: rpf-check
Result: ALLOW
Config:
nat (Inside,Outside2) source static 10.10.10.0 10.10.10.0 destination static 192.168.100.1 192.168.100.1 no-proxy-arp route-lookup description NAT EXEMPTION OUTSIDE _VPN
Additional Information:
Forward Flow based lookup yields rule:
out id=0x2b3e0c6d5bb0, priority=6, domain=nat-reverse, deny=false
hits=1, user_data=0x2b3e0b81bc00, cs_id=0x0, use_real_addr, flags=0x0, protocol=0
src ip/id=10.10.10.0, mask=255.255.255.0, port=0, tag=any
dst ip/id=192.168.100.0, mask=255.255.255.0, port=0, tag=any, dscp=0x0
input_ifc=Inside(vrfid:0), output_ifc=Outside2(vrfid:0)
Phase: 11
Type: VPN
Subtype: ipsec-tunnel-flow
Result: ALLOW
Config:
Additional Information:
Reverse Flow based lookup yields rule:
in id=0x2b3e0c8a14f0, priority=70, domain=ipsec-tunnel-flow, deny=false
hits=1, user_data=0x1d4d073c, cs_id=0x2b3e0c273db0, reverse, flags=0x0, protocol=0
src ip/id=192.168.100.0, mask=255.255.255.0, port=0, tag=any
dst ip/id=10.10.10.0, mask=255.255.255.0, port=0, tag=any, dscp=0x0
input_ifc=Outside2(vrfid:0), output_ifc=any
Phase: 12
Type: NAT
Subtype: per-session
Result: ALLOW
Config:
Additional Information:
Reverse Flow based lookup yields rule:
in id=0x2b3e0a482330, priority=0, domain=nat-per-session, deny=true
hits=3669, user_data=0x0, cs_id=0x0, reverse, use_real_addr, flags=0x0, protocol=0
src ip/id=0.0.0.0, mask=0.0.0.0, port=0, tag=any
dst ip/id=0.0.0.0, mask=0.0.0.0, port=0, tag=any, dscp=0x0
input_ifc=any, output_ifc=any
---------------OMITTED OUTPUT -----------------
Result:
input-interface: Inside(vrfid:0)
input-status: up
input-line-status: up
output-interface: Outside2(vrfid:0)
output-status: up
output-line-status: up
Action: allow
トラブルシュート
現在、この設定に関する特定のトラブルシューティング情報はありません。