シスコサポートコミュニティ
キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 

ASA: Traffic Zone: 冗長WANの 非対称ルーティング環境の設定と動作確認

 



はじめに

以下のような冗長WAN構成で、ISP#1経由のTCPパケットが、ISP#2から戻ってきた場合、以下ログと共にセキュリティドロップします。 これは、入出力Interface、及び TCPステートのチェックを ASAが行っているためです。



%ASA-6-302013: Built outbound TCP connection 179 for outside1:7.7.7.7/80 (7.7.7.7/80) to inside:172.16.0.1/12345 (172.16.0.1/12345)
%ASA-6-106015: Deny TCP (no connection) from 7.7.7.7/80 to 172.16.0.1/12345 flags SYN ACK on interface outside2


この非対称ルーティング構成のサポートは、Traffic Zone機能により可能です。

本ドキュメントでは、Traffic Zoneの設定と動作確認例を紹介します。 本ドキュメントは ASA version 9.4(2)を元に確認、作成しております。

   
     

Traffic Zoneとは

ASAソフトウェアバージョン 9.3(2)からの新機能で、複数Interfaceを Zoneに参加させることで以下を実現できます。

    • 非対称ルーティング (Asymmetric routing)
    • ルート冗長化
    • 等コスト マルチパス ルーティング (ECMP)


Zone毎にコネクションを保持するため、そのZoneに属する どのInterfaceでパケットを受信しても、そのコネクションで継続し処理が可能です。

逆に、ACLや NAT、Routingは、従来通り各Interfaceに適用が必要です。 通常、同じZoneに属する各Interfaceには、同等のACLやNAT設定を行うことを お勧めします。

また、所属するInterface間でのバランシングが可能となるため、非対称性によりVPN通信に悪影響を与える恐れがあるため、Zoneに属するInterfaceに VPN設定はしないでください。



構成と設定例

複数Interfaceを、定義したzoneに参加させます。 設定はシンプルです。

なお、InterfaceをZoneに参加時、そのInterfaceに紐づいていた Static Route設定は消えるため、Static Routeの再設定が必要となります。

zone OUTSIDE
!
interface GigabitEthernet0/0
nameif outside1
security-level 0
zone-member OUTSIDE
ip address 10.10.0.254 255.255.255.0
!
interface GigabitEthernet0/1
nameif outside2
security-level 0
zone-member OUTSIDE
ip address 10.20.0.254 255.255.255.0
!
interface GigabitEthernet0/2
nameif inside
security-level 100
ip address 172.16.0.254 255.255.255.0
!
route outside1 0.0.0.0 0.0.0.0 10.10.0.1 1
route outside2 0.0.0.0 0.0.0.0 10.20.0.1 210

    
     

動作確認

ISP#1~ISP#2 非対称ルーティング時

以下は、Internal Client(172.16.0.1)から Webサーバ(7.7.7.7)へのWEB通信で、ISP#1とISP#2で非対称ルーティング時の、コネクションテーブル変遷と、外部Interfaceの パケットキャプチャ結果です。

コネクションテーブルの変遷

- zone OUTSIDEの outside1を優先利用。 Zone OUTSIDEと inside間でコネクションが生成される事を確認できます

1. ISP#1経由-SYN送信時

ASA(config)# sh conn long | in flag
TCP OUTSIDE:outside1(outside1): 7.7.7.7/80 (7.7.7.7/80) inside: 172.16.0.1/12345 (172.16.0.1/12345), flags saA , idle 2s, uptime 2s, timeout 30s, bytes 0

  
2. ISP#2経由-SYN-ACK受信時

ASA(config)# sh conn long | in flag
TCP OUTSIDE:outside1(outside1): 7.7.7.7/80 (7.7.7.7/80) inside: 172.16.0.1/12345 (172.16.0.1/12345), flags A , idle 2s, uptime 9s, timeout 30s, bytes 0

  
3. ISP#1経由-ACK送信時

ASA(config)# sh conn long | in flag
TCP OUTSIDE:outside1(outside1): 7.7.7.7/80 (7.7.7.7/80) inside: 172.16.0.1/12345 (172.16.0.1/12345), flags U , idle 2s, uptime 21s, timeout 1h0m, bytes 0

   

各Interfaceの処理パケット

- IN(inside)からの 3way handshake パケットが、OUT1(oustide1)を通過し送出され、OUT2(outside2)側で受信、再度 OUT1(outside1)から送付されている事を確認できます

ASA(config)# sh cap IN
3 packets captured
1: 16:04:50.315108 172.16.0.1.12345 > 7.7.7.7.80: S 0:0(0) win 512
2: 16:04:57.863694 7.7.7.7.80 > 172.16.0.1.12345: S 0:0(0) ack 1 win 512
3: 16:05:09.315153 172.16.0.1.12345 > 7.7.7.7.80: . ack 1 win 512
ASA(config)# sh cap OUT1
2 packets captured
1: 16:04:50.315337 172.16.0.1.12345 > 7.7.7.7.80: S 0:0(0) win 512
2: 16:05:09.315215 172.16.0.1.12345 > 7.7.7.7.80: . ack 1 win 512
ASA(config)# sh cap OUT2
1 packet captured
1: 16:04:57.863618 7.7.7.7.80 > 172.16.0.1.12345: S 0:0(0) ack 1 win 512

   
   

ISP#1側 障害時

以下は、Internal Client(172.16.0.1)から Webサーバ(7.7.7.7)へのWEB通信で、ISP#1側リンクダウン時の、コネクションテーブル変遷と、外部Interfaceの パケットキャプチャ結果です。

ISP#1側(Gi0/0)ダウン時 ログ

 - Gi0/0のダウンに伴い、デフォルトゲートウェイが outside2側に切り替わっている事を確認できます

ASA(config)# sh int ip brie
Interface IP-Address OK? Method Status Protocol
GigabitEthernet0/0 10.10.0.254 YES manual down down
GigabitEthernet0/1 10.20.0.254 YES manual up up
GigabitEthernet0/2 172.16.0.254 YES manual up up
GigabitEthernet0/3 unassigned YES unset administratively down up
GigabitEthernet0/4 unassigned YES unset administratively down down
--- snip ---
ASA(config)#
ASA(config)# sh route | in 0.0.0.0
Gateway of last resort is 10.20.0.1 to network 0.0.0.0
S* 0.0.0.0 0.0.0.0 [210/0] via 10.20.0.1, outside2

    

コネクションテーブルの変遷

- zone OUTSIDEの outside2を利用。 Zone OUTSIDEと inside間でコネクションが生成される事を確認できます

1. ISP#2経由-SYN送信時

ASA(config)# sh conn long | in flag
TCP OUTSIDE:outside2(outside2): 7.7.7.7/80 (7.7.7.7/80) inside: 172.16.0.1/12345 (172.16.0.1/12345), flags saA , idle 5s, uptime 5s, timeout 30s, bytes 0


2. ISP#2経由-SYN-ACK受信時

ASA(config)# sh conn long | in flag
TCP OUTSIDE:outside2(outside2): 7.7.7.7/80 (7.7.7.7/80) inside: 172.16.0.1/12345 (172.16.0.1/12345), flags A , idle 2s, uptime 9s, timeout 30s, bytes 0


3. ISP#2経由-ACK送信時

ASA(config)# sh conn long | in flag
TCP OUTSIDE:outside2(outside2): 7.7.7.7/80 (7.7.7.7/80) inside: 172.16.0.1/12345 (172.16.0.1/12345), flags U , idle 2s, uptime 16s, timeout 1h0m, bytes 0

  

各Interfaceの処理パケット

- 外部パケットやり取りが、OUT2(outside2)側に全て寄っている事がわかる

ASA(config)# sh cap IN
3 packets captured
1: 16:18:04.379115 172.16.0.1.12345 > 7.7.7.7.80: S 0:0(0) win 512
2: 16:18:11.494389 7.7.7.7.80 > 172.16.0.1.12345: S 0:0(0) ack 1 win 512
3: 16:18:18.199162 172.16.0.1.12345 > 7.7.7.7.80: . ack 1 win 512
3 packets shown
ASA(config)# sh cap OUT1
0 packet captured
0 packet shown
ASA(config)# sh cap OUT2
3 packets captured
1: 16:18:04.379329 172.16.0.1.12345 > 7.7.7.7.80: S 0:0(0) win 512
2: 16:18:11.494313 7.7.7.7.80 > 172.16.0.1.12345: S 0:0(0) ack 1 win 512
3: 16:18:18.199254 172.16.0.1.12345 > 7.7.7.7.80: . ack 1 win 512

     

既存通信の保護

上記の確認結果は、ISP#1側障害時の "新規通信"のコネクションテーブルですが、ISP#1障害前からある既存コネクションにおいても outside2を用いて通信継続が可能です。

Egress(送出)Interfaceが切り替わると、コネクションの()内のCurrent Interfaceも変わります。

ISP#1 ダウン前 既存通信 (outside1をEgressに利用)

ASA(config)# sh conn long | in flag
TCP OUTSIDE:outside1(outside1): 7.7.7.7/80 (7.7.7.7/80) inside: 172.16.0.1/12345 (172.16.0.1/12345), flags UO , idle 3s, uptime 4m6s, timeout 1h0m, bytes 1000


ISP#1側リンクダウン後 既存通信 (outside2をEgressに利用)

ASA(config)# sh conn long | in flag
TCP OUTSIDE:outside1(outside2): 7.7.7.7/80 (7.7.7.7/80) inside: 172.16.0.1/12345 (172.16.0.1/12345), flags UO , idle 2s, uptime 5m18s, timeout 1h0m, bytes 1596

   
  

参考情報

ASA9.4: Traffic Zones
 - 設定例や機能制限の詳細
http://www.cisco.com/c/en/us/td/docs/security/asa/asa94/config-guides/cli/general/asa-94-general-config/interface-zones.html

ASA: パケットキャプチャ機能の活用(CLI)
 - 動作確認例で紹介したパケットキャプチャ方法の詳細
https://supportforums.cisco.com/ja/document/12437966

バージョン履歴
改訂番号
3/3
最終更新:
‎10-19-2017 01:00 AM
更新者:
 
ラベル(1)
寄稿者:
タグ(1)