このドキュメントでは、TCP 状態バイパス機能を設定する方法について説明します。この機能を使用すると、発信トラフィックと着信トラフィックが個別の Cisco ASA 5500 シリーズ適応型セキュリティ アプライアンス(ASA)を通過するようになります。
このドキュメントで説明されている設定を続行するには、Cisco ASAに少なくとも基本ライセンスがインストールされている必要があります。
このドキュメントの情報は、ソフトウェアバージョン9.xが稼働するCisco ASA 5500シリーズに基づくものです。
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、初期(デフォルト)設定の状態から起動しています。対象のネットワークが実稼働中である場合には、どのようなコマンドについても、その潜在的な影響について確実に理解しておく必要があります。
ドキュメント表記の詳細については、『シスコ テクニカル ティップスの表記法』を参照してください。
このセクションでは、TCP状態バイパス機能の概要と関連するサポート情報について説明します。
デフォルトでは、ASAを通過するすべてのトラフィックは適応型セキュリティアルゴリズム(ASA)によって検査され、セキュリティポリシーに基づいて通過または廃棄されます。ファイアウォールのパフォーマンスを最大化するため、ASAは各パケットの状態をチェックし(たとえば、新しい接続か確立された接続かをチェックし、セッション管理パス(新しい接続の同期(SYN)パケット)、高速パス(確立された接続)、コントロールプレーンパス(高度な検査)に検査)。
高速パスの現在の接続に一致するTCPパケットは、セキュリティポリシーのすべての側面を再確認することなく、ASAを通過できます。この機能によってパフォーマンスが最大化されます。ただし、高速パス(SYNパケットを使用する)でセッションを確立するために使用される方法と、高速パス(TCPシーケンス番号など)で発生するチェックは、非対称ルーティングソリューションの妨げになります。接続の発信フローと着信フローの両方が同じASAを通過する必要があります。
たとえば、新しい接続がASA 1に送信されます。SYNパケットはセッション管理パスを通過し、接続のエントリが高速パステーブルに追加されます。この接続の後続のパケットがASA 1を通過する場合、そのパケットは高速パスのエントリと一致し、通過します。後に続くパケットが ASA 2 に送信される場合、そこにセッション管理パスを通った SYN パケットがなかったとすると、その接続用に高速パスのエントリが存在しないので、パケットは廃棄されます。
アップストリームルータで非対称ルーティングが設定されており、トラフィックが2つのASA間で交互に送信される場合は、特定のトラフィックに対してTCP状態バイパス機能を設定できます。TCP状態バイパス機能は、高速パスでセッションが確立される方法を変更し、高速パスチェックを無効にします。この機能は、UDP 接続を取り扱うのと同様に TCP トラフィックを取り扱います。指定されたネットワークに一致する非SYNパケットがASAに入り、高速パスエントリがない場合、パケットはセッション管理パスを通過して、高速パスでの接続を確立します。高速パス内に入ると、トラフィックは高速パス チェックをバイパスします。
次の図は、非対称ルーティングの例であり、ここでは、発信トラフィックが着信トラフィックとは異なる ASA を通過しています。
この項では、TCP状態バイパス機能のサポート情報について説明します。
TCP状態バイパス機能を使用する場合、次の機能はサポートされません。
このセクションでは、2つの異なるシナリオでASA 5500シリーズのTCP状態バイパス機能を設定する方法について説明します。
最初のシナリオで使用されるトポロジは次のとおりです。
TCP状態バイパス機能を設定するには、次の手順を実行します。
ASA(config)#class-map tcp_bypass
ASA(config)#class-map tcp_bypass
ASA(config-cmap)#match access-list tcp_bypass
ASA(config-cmap)#policy-map tcp_bypass_policy
ASA(config-cmap)#policy-map tcp_bypass_policy
ASA(config-pmap)#class tcp_bypass
ASA(config-cmap)#policy-map tcp_bypass_policy
ASA(config-pmap)#class tcp_bypass
ASA(config-pmap-c)#set connection advanced-options tcp-state-bypass
ASA(config-pmap-c)#service-policy tcp_bypass_policy outside
ASA1のTCP状態バイパス機能の設定例を次に示します。
!--- Configure the access list to specify the TCP traffic
!--- that needs to by-pass inspection to improve the performance.
ASA1(config)#access-list tcp_bypass extended permit tcp 10.1.1.0 255.255.255.0
172.16.1.0 255.255.255.0
!--- Configure the class map and specify the match parameter for the
!--- class map to match the interesting traffic.
ASA1(config)#class-map tcp_bypass
ASA1(config-cmap)#description "TCP traffic that bypasses stateful firewall"
ASA1(config-cmap)#match access-list tcp_bypass
!--- Configure the policy map and specify the class map
!--- inside this policy map for the class map.
ASA1(config-cmap)#policy-map tcp_bypass_policy
ASA1(config-pmap)#class tcp_bypass
!--- Use the set connection advanced-options tcp-state-bypass
!--- command in order to enable TCP state bypass feature.
ASA1(config-pmap-c)#set connection advanced-options tcp-state-bypass
!--- Use the service-policy policymap_name [ global | interface intf ]
!--- command in global configuration mode in order to activate a policy map
!--- globally on all interfaces or on a targeted interface.
ASA1(config-pmap-c)#service-policy tcp_bypass_policy outside
!--- NAT configuration
ASA1(config)#object network obj-10.1.1.0
ASA1(config-network-object)#subnet 10.1.1.0 255.255.255.0
ASA1(config-network-object)#nat(inside,outside) static 192.168.1.0
ASA2のTCP状態バイパス機能の設定例を次に示します。
!--- Configure the access list to specify the TCP traffic
!--- that needs to by-pass inspection to improve the performance.
ASA2(config)#access-list tcp_bypass extended permit tcp 172.16.1.0 255.255.255.0
10.1.1.0 255.255.255.0
!--- Configure the class map and specify the match parameter for the
!--- class map to match the interesting traffic.
ASA2(config)#class-map tcp_bypass
ASA2(config-cmap)#description "TCP traffic that bypasses stateful firewall"
ASA2(config-cmap)#match access-list tcp_bypass
!--- Configure the policy map and specify the class map
!--- inside this policy map for the class map.
ASA2(config-cmap)#policy-map tcp_bypass_policy
ASA2(config-pmap)#class tcp_bypass
!--- Use the set connection advanced-options tcp-state-bypass
!--- command in order to enable TCP state bypass feature.
ASA2(config-pmap-c)#set connection advanced-options tcp-state-bypass
!--- Use the service-policy policymap_name [ global | interface intf ]
!--- command in global configuration mode in order to activate a policy map
!--- globally on all interfaces or on a targeted interface.
ASA2(config-pmap-c)#service-policy tcp_bypass_policy outside
!--- NAT configuration
ASA2(config)#object network obj-10.1.1.0
ASA2(config-network-object)#subnet 10.1.1.0 255.255.255.0
ASA1(config-network-object)#nat(inside,outside) static 192.168.1.0
このセクションでは、非対称ルーティングを使用するシナリオでASAのTCP状態バイパス機能を設定する方法について説明します。このシナリオでは、トラフィックが同じインターフェイスからASAに出入りする(uターン)場合です。
このシナリオで使用されるトポロジを次に示します。
TCP状態バイパス機能を設定するには、次の手順を実行します。
ASA(config)#access-list tcp_bypass extended permit tcp 192.168.2.0 255.255.255.0
192.168.1.0 255.255.255.0
ASA(config)#class-map tcp_bypass
ASA(config)#class-map tcp_bypass
ASA(config-cmap)#match access-list tcp_bypass
ASA(config-cmap)#policy-map tcp_bypass_policy
ASA(config-cmap)#policy-map tcp_bypass_policy
ASA(config-pmap)#class tcp_bypass
ASA(config-cmap)#policy-map tcp_bypass_policy
ASA(config-pmap)#class tcp_bypass
ASA(config-pmap-c)#set connection advanced-options tcp-state-bypass
ASA(config-pmap-c)#service-policy tcp_bypass_policy inside
ASA(config)#same-security-traffic permit intra-interface
ASAのTCP状態バイパス機能の設定例を次に示します。
!--- Configure the access list to specify the TCP traffic
!--- that needs to bypass inspection to improve the performance.
ASA(config)#access-list tcp_bypass extended permit tcp 192.168.2.0 255.255.255.0
192.168.1.0 255.255.255.0
!--- Configure the class map and specify the match parameter for the
!--- class map to match the interesting traffic.
ASA(config)#class-map tcp_bypass
ASA(config-cmap)#description "TCP traffic that bypasses stateful firewall"
ASA(config-cmap)#match access-list tcp_bypass
!--- Configure the policy map and specify the class map
!--- inside this policy map for the class map.
ASA(config-cmap)#policy-map tcp_bypass_policy
ASA(config-pmap)#class tcp_bypass
!--- Use the set connection advanced-options tcp-state-bypass
!--- command in order to enable TCP state bypass feature.
ASA(config-pmap-c)#set connection advanced-options tcp-state-bypass
!--- Use the service-policy policymap_name [ global | interface intf ]
!--- command in global configuration mode in order to activate a policy map
!--- globally on all interfaces or on a targeted interface.
ASA(config-pmap-c)#service-policy tcp_bypass_policy inside
!--- Permit same security level traffic on the ASA to support U-turning
ASA(config)#same-security-traffic permit intra-interface
Enter the show conn コマンドを発行して、アクティブなTCPおよびUDP接続の数と、さまざまなタイプの接続に関する情報を表示します。指定された接続タイプの接続状態を表示するには、 show conn 特権EXECモードでコマンドを発行します。
次に出力例を示します。
ASA(config)show conn
1 in use, 3 most used
TCP tcp 10.1.1.1:49525 tcp 172.16.1.1:21, idle 0:01:10, bytes 230, flags b
この機能に関する特定のトラブルシューティング情報はありません。一般的な接続のトラブルシューティング情報については、次のドキュメントを参照してください。
TCP状態バイパス機能を有効にしても、ASAは次のエラーメッセージを表示します。
%PIX|ASA-4-313004:Denied ICMP type=icmp_type, from source_address oninterface
interface_name to dest_address:no matching session
Internet Control Message Protocol(ICMP;インターネット制御メッセージプロトコル)パケットは、ステートフルICMP機能によって追加されたセキュリティチェックのために、ASAによってドロップされます。通常は、有効なエコー要求がASAに渡されていないICMPエコー応答か、ASAで現在確立されているTCP、UDP、またはICMPセッションに関連しないICMPエラーメッセージのどちらかです。
ASAは、この機能を無効にできない(つまり、接続テーブルのタイプ3のICMPリターンエントリをチェックする)ため、TCP状態バイパス機能が有効になっている場合でも、このログを表示します。ただし、TCP状態バイパス機能は正常に動作します。
これらのメッセージが表示されないようにするには、次のコマンドを入力します。
hostname(config)#no logging message 313004
改定 | 発行日 | コメント |
---|---|---|
1.0 |
15-Jun-2015 |
初版 |