キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 

ASA: TCP pingを用いたトラブルシューティング

 

 

はじめに

TCP pingを用いる事で、ASA自身から、もしくは 任意の送信元IP・ポート・インターフェイスから、任意宛先のTCPポートへの疎通確認を行う事ができます。

TCP pingは、ICMPの通過が許可されていない環境での、疎通確認の代替方法としても活用できます。

TCP pingは、ASAバージョン 8.4(1)からの新機能です。 CLI、もしくはASDMより実行可能です。 本ドキュメントは、ASA Software バージョン 9.4(1) を用いて確認、作成しております。 


   Caution:

TCP pingと Translate NAT(送信元アドレスの変換)を組み合わせて利用する事が可能です。 TCP pingと Untranslate NAT(宛先アドレスの変換)の組み合わせての利用は、version 9.5(2)から可能です。


      
      

TCP ping 動作概要

以下は、Webクライアントから WebサーバのTCP80番ポートにアクセス時の処理フロー概要です。


以下は、ASAのTCP ping機能を用い、Webクライアントと同じ送信元IPから、WebサーバのTCP80番ポート宛に、TCP pingを実行した時の処理フロー概要です。



TCP pingを利用時、ASAは指定されたIP・ポートの TCP SYNパケットを、送信元インターフェイスに注入します。 ASAは通常のTCP通信と同様に、当パケットの各種処理(ACLチェックやRouting、NAT、Securityチェックなど)を行った後、Egressインターフェイスより送出します。

対向機器が指定TCPポートをオープンしている場合、通常 SYN+ACK応答を行いますので、ASAが当応答を受信した場合は、TCP pingが成功したと みなし、速やかに対向機器に TCP Resetを送付し、コネクションをクローズします。

      
     

TCP ping コマンドライン

[書式]
ping tcp <if_name> <dst_host> <dst_port> [source <src_host> <src_port>] [repeat <count>] [timeout <seconds>]

 <if_name>  SYNパケットの送信元となるインターフェイス名
 <dst_host>  宛先IPアドレス、もしくは ホスト名
 <dst_port>  0-65535から、任意ポートを選択。0を選択時は、http(TCP=80)を利用
 [source]  未指定時はASAの実インターフェイスを利用
 <src_host>  送信元IPアドレスを指定
 <src_port>  0-65535から、任意ポートを選択。0を選択時は、ランダムポートを利用
 <count>  リピート回数。デフォルト5回
 <seconds>  タイムアウト間隔を秒で指定。デフォルト2秒

 

[コマンド例]    
 ASAインターフェイスから、WEBサーバ(1.0.0.101)のTCP80番ポート宛のTCP ping

 ping tcp 1.0.0.101 80


InsideのWebクライアント(172.16.0.1)のランダムポートから、HTTPSサーバ(1.0.0.101)のTCP443番ポート宛のTCP ping

 ping tcp inside 1.0.0.101 443 source 172.16.0.1 0


[コマンド実行例]
 指定のTCPポートと疎通性がある場合

ASA01# ping tcp inside 1.0.0.101 80 source 172.16.0.1 0
Type escape sequence to abort.
Sending 5 TCP SYN requests to 1.0.0.101 port 80
from 172.16.0.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/2/6 ms


 対向から TCP RESETを受信した場合 (例:TCPポートが開いていない時、など)

ASA01# ping tcp inside 1.0.0.101 25 source 172.16.0.1 0
Type escape sequence to abort.
Sending 5 TCP SYN requests to 1.0.0.101 port 25
from 172.16.0.1, timeout is 2 seconds:
RRRRR
Success rate is 0 percent (0/5)


 対向から 応答が無い場合 (例:対向が存在しない、経路でドロップ、など)

ASA01# ping tcp inside 1.0.0.102 80 source 172.16.0.1 0
Type escape sequence to abort.
Sending 5 TCP SYN requests to 1.0.0.102 port 80
from 172.16.0.1, timeout is 2 seconds:
?????
Success rate is 0 percent (0/5)


 Ciscoサイト (http://www.cisco.com) への疎通確認

ASA01(config)# ping tcp www.cisco.com 0
Type escape sequence to abort.
No source specified. Pinging from identity interface.
Sending 5 TCP SYN requests to 23.36.102.149 port 80
from 192.168.26.11, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 8/10/14 ms


[対話モード]

ASA01# ping tcp
Interface: inside
Target IP address: 1.0.0.101
Destination port: [80] 443
Specify source? [n]: y
Source IP address: 172.16.0.2
Source port: [0] 65001
Repeat count: [5]
Timeout in seconds: [2]
Type escape sequence to abort.
Sending 5 TCP SYN requests to 1.0.0.101 port 443
from 172.16.0.2 starting port 65001, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/1 ms

        
       

TCP ping using ASDM

1. Tools > Ping を選択

2. Pingパネルが表示されるので、Packet Type: より TCPを選択し、任意値を入力

ASDM-02

         
           

ケース紹介

Case1: 社内端末から、インターネット上のWEBサーバへのアクセス確認

[要件]
以下構成において、Webクライアント(172.16.0.1)から、想定のACLでの許可と、Dynamic NAT(PAT)を行った後、WEBサーバ(1.0.0.101)のTCP80番ポートにアクセスすることが可能か、簡易試験と確認を行いたい。 

なお、WebクライアントとASA間は、疎通性がある事を 既に確認しているが、本試験ではWebクライアントは利用できないものとする。

Case01-01


[確認手順]
ASAにてTCP pingを実行し、insideインターフェイス側のWebクライアントのIPから、WEBサーバのTCP80番ポートにアクセスが可能である事を確認

ASA01(config)# ping tcp inside 1.0.0.101 80 source 172.16.0.1 0 repeat 1
Type escape sequence to abort.
Sending 1 TCP SYN requests to 1.0.0.101 port 80
from 172.16.0.1, timeout is 2 seconds:
!
Success rate is 100 percent (1/1), round-trip min/avg/max = 1/1/1 ms


show logより、想定のACLにHITした後、想定の送信元IPに PATされている事を確認

ASA01(config)# show log
Apr 05 2015 21:59:38: %ASA-6-106100: access-list IN permitted tcp inside/172.16.0.1(15641) -> outside/1.0.0.101(80) hit-cnt 1 first hit [0xa5a49d63, 0x0]
Apr 05 2015 21:59:38: %ASA-6-305011: Built dynamic TCP translation from inside:172.16.0.1/15641 to outside:1.0.0.7/15641
Apr 05 2015 21:59:38: %ASA-6-302013: Built outbound TCP connection 2600 for outside:1.0.0.101/80 (1.0.0.101/80) to inside:172.16.0.1/15641 (1.0.0.7/15641)
Apr 05 2015 21:59:38: %ASA-6-302014: Teardown TCP connection 2600 for outside:1.0.0.101/80 to inside:172.16.0.1/15641 duration 0:00:00 bytes 0 Flow closed by inspection


show access-listより、想定のlineに HITしている事を確認

ASA01(config)# show access-list IN
access-list IN; 5 elements; name hash: 0x9f2434aa
access-list IN line 1 extended permit tcp 172.16.0.0 255.255.255.0 any eq www log informational interval 300 (hitcnt=1) 0xa5a49d63
access-list IN line 2 extended permit tcp 172.16.0.0 255.255.255.0 any eq https log informational interval 300 (hitcnt=0) 0xbccfa150
access-list IN line 3 extended permit tcp 172.16.0.0 255.255.255.0 any eq smtp log informational interval 300 (hitcnt=0) 0x4a7eb67d


show nat detailより、想定のNATエントリに HITしている事を確認

ASA01(config)# show nat detail
                  --- snip ---
Auto NAT Policies (Section 2)
1 (inside) to (outside) source dynamic IN-172.16.0.0 interface
    translate_hits = 1, untranslate_hits = 0
    Source - Origin: 172.16.0.0/24, Translated: 1.0.0.7/24

              
              

参考情報

Cisco ASA Series Command Reference, I - R Commands
http://www.cisco.com/c/en/us/td/docs/security/asa/asa-command-reference/I-R/cmdref2/p1.html#pgfId-2133619

ファイアウォール トラブルシューティング
https://supportforums.cisco.com/ja/document/12725841

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