このページで
ALG セッションの出力の検証
このセクションでは、ALG セッションからの正常な出力例とシステム ログ設定に関する情報について説明します。セッションの結果を比較して、設定が正しく機能しているかどうかを確認できます。
FTP の例
この例では、アクティブな FTP セッション中の出力を分析します。これは、4つの異なるフローで構成されています。2つが制御フロー、2つがデータフローです。この例は、以下の部分で構成されています。
サンプル出力
MS-MPCカード
MS-MPC の場合、動作モード コマンドからの完全なサンプル出力を次に show services stateful-firewall conversations application-protocol ftp
示します。
user@host>show services stateful-firewall conversations application-protocol ftp Interface: ms-1/3/0, Service set: CLBJI1-AAF001 Conversation: ALG protocol: ftp Number of initiators: 2, Number of responders: 2 Flow State Dir Frm count TCP 1.1.79.2:14083 -> 2.2.2.2:21 Watch I 13 NAT source 1.1.79.2:14083 -> 194.250.1.237:50118 TCP 1.1.79.2:14104 -> 2.2.2.2:20 Forward I 3 NAT source 1.1.79.2:14104 -> 194.250.1.237:50119 TCP 2.2.2.2:21 -> 194.250.1.237:50118 Watch O 12 NAT dest 194.250.1.237:50118 -> 1.1.79.2:14083 TCP 2.2.2.2:20 -> 194.250.1.237:50119 Forward O 5 NAT dest 194.250.1.237:50119 -> 1.1.79.2:14104
各フローについて、1 行目は、プロトコル(TCP)、送信元アドレス、送信元ポート、宛先アドレス、宛先ポート、フロー状態、方向、フレーム カウントなどのフロー情報を示しています。
フロー
Watch
の状態は、 、Forward
またはDrop
: です。フロー状態は
Watch
、ペイロード内の情報について制御フローが ALG によって監視されていることを示します。NAT 処理は、必要に応じてヘッダーとペイロードで実行されます。フローは
Forward
、ペイロードを監視せずにパケットを転送します。NAT は、必要に応じてヘッダーで実行されます。フローは
Drop
、5 タプルに一致するパケットをドロップします。
フレーム カウント(
Frm count
)は、そのフローで処理されたパケットの数を示しています。
2行目はNAT情報を示しています。
source
はソースNATを示しています。dest
は、宛先 NAT を示します。NAT ラインの最初のアドレスとポートは、そのフローに変換される元のアドレスとポートです。
NATラインの2番目のアドレスとポートは、そのフローの変換されたアドレスとポートです。
MX-SPC3カード
MX-SPC3サービスカードでは、動作モードコマンドからの完全なサンプル出力を以下に show services sessions application-protocol ftp
示します。
user@host>show services sessions application-protocol ftp Session ID: 536870917, Service-set: ss1, Policy name: p1/131085, Timeout: 1, Valid Logical system: root-logical-system Resource information : FTP ALG, 1, 1 In: 12.10.10.10/35281 --> 22.20.20.3/8204;tcp, Conn Tag: 0x0, If: vms-2/0/0.100, Pkts: 6, Bytes: 320, Out: 22.20.20.3/8204 --> 60.1.1.2/48747;tcp, Conn Tag: 0x0, If: vms-2/0/0.200, Pkts: 9, Bytes: 8239, Session ID: 536870919, Service-set: ss1, Policy name: p1/131085, Timeout: 29, Valid Logical system: root-logical-system Resource information : FTP ALG, 1, 0 In: 12.10.10.10/44194 --> 22.20.20.3/21;tcp, Conn Tag: 0x0, If: vms-2/0/0.100, Pkts: 13, Bytes: 585, Out: 22.20.20.3/21 --> 60.1.1.2/48660;tcp, Conn Tag: 0x0, If: vms-2/0/0.200, Pkts: 11, Bytes: 650, Total sessions: 2
各セッションについて:
1 行目には、セッション ID、サービスセット名、ポリシー名、セッション タイムアウト、論理システム名、およびその状態などのフロー情報が表示されます。
2行目の、 は、
Resource information
ALGによってセッションが作成されたことを示しています。これには、ALG名(FTP ALG)とASLグループID(1)とASLリソースID(制御セッション用に0、データセッション用に1)が含まれます。3行
In
目はフォワードフローで、4行Out
目はリバースフローで、これには送信元アドレス、送信元ポート、宛先アドレス、宛先ポート、プロトコル(TCP)、セッション conn-tag、インターフェイスのIn
Out
送受信、受信フレーム数、バイトが含まれます。NAT は、必要に応じてヘッダーで実行されます。
FTP システム ログ メッセージ
システムログメッセージは、FTPセッション中に生成されます。システム ログの詳細については、「 システム ログ メッセージ」を参照してください。
MS-MPCカード
FTP 制御フローの作成時に、以下のシステム ログ メッセージが生成されます。
ルール受け入れシステム ログ:
Oct 27 11:42:54 (FPC Slot 1, PIC Slot 1) {ss_ftp}[FWNAT]: ASP_SFW_RULE_ACCEPT: proto 6 (TCP) application: ftp, fe-3/3/3.0:1.1.1.2:4450 -> 2.2.2.2:21, Match SFW accept rule-set:, rule: ftp, term: 1
Accept Flow システム ログの作成:
Oct 27 11:42:54 (FPC Slot 1, PIC Slot 1) {ss_ftp}[FWNAT]: ASP_SFW_CREATE_ACCEPT_FLOW: proto 6 (TCP) application: ftp, fe-3/3/3.0:1.1.1.2:4450 -> 2.2.2.2:21, creating forward or watch flow
データ フロー作成用のシステム ログ:
Oct 27 11:43:30 (FPC Slot 1, PIC Slot 1) {ss_ftp}[FWNAT]: ASP_SFW_FTP_ACTIVE_ACCEPT: proto 6 (TCP) application: ftp, so-2/1/2.0:2.2.2.2:20 -> 1.1.1.2:50726, Creating FTP active mode forward flow
MX-SPC3カードカード
FTP 制御フローの作成時に、以下のシステム ログ メッセージが生成されます。
FTP 制御セッション作成用のシステム ログ:
Mar 23 23:58:54 esst480r RT_FLOW: RT_FLOW_SESSION_CREATE_USF: Tag svc-set-name ss1: session created 20.1.1.2/52877->30.1.1.2/21 0x0 junos-ftp 20.1.1.2/52877->30.1.1.2/21 0x0 N/A N/A N/A N/A 6 p1 ss1-ZoneIn ss1-ZoneOut 818413576 N/A(N/A) ge-1/0/2.0 UNKNOWN UNKNOWN UNKNOWN N/A N/A -1 N/A Mar 23 23:59:00 esst480r junos-alg: RT_ALG_FTP_ACTIVE_ACCEPT: application:ftp data, vms-3/0/0.0 30.1.1.2:20 -> 20.1.1.2:33947 (TCP)
FTP データ セッション作成用のシステム ログ:
Mar 23 23:59:00 esst480r RT_FLOW: RT_FLOW_SESSION_CREATE_USF: Tag svc-set-name ss1: session created 30.1.1.2/20->20.1.1.2/33947 0x0 junos-ftp-data 30.1.1.2/20->20.1.1.2/33947 0x0 N/A N/A N/A N/A 6 p1 ss1-ZoneOut ss1-ZoneIn 818413577 N/A(N/A) ge-1/1/6.0 FTP-DATA UNKNOWN UNKNOWN Infrastructure File-Servers 2 N/A
FTP データ セッション用のシステム ログは破棄されます。
Mar 23 23:59:02 esst480r RT_FLOW: RT_FLOW_SESSION_CLOSE_USF: Tag svc-set-name ss1: session closed TCP FIN: 30.1.1.2/20->20.1.1.2/33947 0x0 junos-ftp-data 30.1.1.2/20->20.1.1.2/33947 0x0 N/A N/A N/A N/A 6 p1 ss1-ZoneOut ss1-ZoneIn 818413577 2954(4423509) 281(14620) 2 FTP-DATA UNKNOWN N/A(N/A) ge-1/1/6.0 No Infrastructure File-Servers 2 N/A
FTP 制御セッションのシステム ログの破棄:
Mar 23 23:59:39 esst480r RT_FLOW: RT_FLOW_SESSION_CLOSE_USF: Tag svc-set-name ss1: session closed Closed by junos-tcp-clt-emul: 20.1.1.2/52877->30.1.1.2/21 0x0 junos-ftp 20.1.1.2/52877->30.1.1.2/21 0x0 N/A N/A N/A N/A 6 p1 ss1-ZoneIn ss1-ZoneOut 818413576 23(1082) 18(1176) 45 UNKNOWN UNKNOWN N/A(N/A) ge-1/0/2.0 No N/A N/A -1 N/A
分析
制御フロー
MS-MPCカード
制御フローは、スリーウェイ ハンドシェイクが完了した後に確立されます。
FTP クライアントから FTP サーバーへのフローを制御します。TCP 宛先ポートは 21 です。
TCP 1.1.79.2:14083 -> 2.2.2.2:21 Watch I 13 NAT source 1.1.79.2:14083 -> 194.250.1.237:50118
FTP サーバーから FTP クライアントへの制御フロー。TCP 送信元ポートは 21 です。
TCP 2.2.2.2:21 -> 194.250.1.237:50118 Watch O 12 NAT dest 194.250.1.237:50118 -> 1.1.79.2:14083
MX-SPC3カード
制御フローは、スリーウェイ ハンドシェイクが完了した後に確立されます。
FTP クライアントから FTP サーバーへの制御セッション、TCP 宛先ポートは 21 です。
Session ID: 536870919, Service-set: ss1, Policy name: p1/131085, Timeout: 29, Valid Logical system: root-logical-system Resource information : FTP ALG, 1, 0 In: 12.10.10.10/44194 --> 22.20.20.3/21;tcp, Conn Tag: 0x0, If: vms-2/0/0.100, Pkts: 13, Bytes: 585, Out: 22.20.20.3/21 --> 60.1.1.2/48660;tcp, Conn Tag: 0x0, If: vms-2/0/0.200, Pkts: 11, Bytes: 650,
FTPクライアントからFTPサーバーへのデータセッションは、FTPパッシブモード用です。
Session ID: 536870917, Service-set: ss1, Policy name: p1/131085, Timeout: 1, Valid Logical system: root-logical-system Resource information : FTP ALG, 1, 1 In: 12.10.10.10/35281 --> 22.20.20.3/8204;tcp, Conn Tag: 0x0, If: vms-2/0/0.100, Pkts: 6, Bytes: 320, Out: 22.20.20.3/8204 --> 60.1.1.2/48747;tcp, Conn Tag: 0x0, If: vms-2/0/0.200, Pkts: 9, Bytes: 8239,
FTPサーバーからFTPクライアントへのデータセッションは、FTPアクティブモード用です。
Session ID: 549978117, Service-set: ss1, Policy name: p1/131085, Timeout: 1, Valid Logical system: root-logical-system Resource information : FTP ALG, 1, 1 In: 22.20.20.3/20 --> 60.1.1.3/6049;tcp, Conn Tag: 0x0, If: vms-2/0/0.200, Pkts: 10, Bytes: 8291, Out: 12.10.10.10/33203 --> 22.20.20.3/20;tcp, Conn Tag: 0x0, If: vms-2/0/0.100, Pkts: 5, Bytes: 268,
データ フロー
FTP 制御プロトコルの期間中は、データ転送用に 20 のデータ ポートがネゴシエートされます。これらの 2 つのフローは、FTP クライアントと FTP サーバー間のデータ フローです。
TCP 1.1.79.2:14104 -> 2.2.2.2:20 Forward I 3 NAT source 1.1.79.2:14104 -> 194.250.1.237:50119 TCP 2.2.2.2:20 -> 194.250.1.237:50119 Forward O 5 NAT dest 194.250.1.237:50119 -> 1.1.79.2:14104
トラブルシューティングに関する質問
FTP ALGがアクティブかどうかを確認するにはどうすればよいですか?
会話内の ALG プロトコル フィールドに が表示されるはずです
ftp
。制御フローには有効なフレーム カウント(
Frm count
)が必要です。データ フロー内の有効なフレーム カウントは、データ転送が行われたことを示します。
FTP 接続が確立されていても、データ転送が行われるかどうかを確認する必要がありますか。
おそらく、制御接続は稼働していますが、データ接続はダウンしています。
会話の出力を確認して、制御フローとデータ フローの両方が存在するかどうかを確認します。
各フローの解釈方法を知りたい。各フローは何を意味するのでしょうか?
FTP 制御フロー イニシエーター フロー— 宛先ポート 21 を使用したフロー
FTP 制御フロー レスポンダー フロー — ソース ポートを使用したフロー ;21
FTP データ フロー イニシエーター フロー — 宛先ポート 20 を使用したフロー
FTP データ フロー レスポンダー フロー-ソース ポート 20 を使用したフロー
RTSP ALG の例
以下に、RTSP 会話の例を示します。アプリケーションは、制御接続に RTSP プロトコルを使用します。接続が設定されると、UDP プロトコル(RTP)を使用してメディアが送信されます。
この例は、以下で構成されています。
MS-MPC の出力例
動作モード コマンドからの出力は show services stateful-firewall conversations
次のとおりです。
user@host# show services stateful-firewall conversations Interface: ms-3/2/0, Service set: svc_set Conversation: ALG protocol: rtsp Number of initiators: 5, Number of responders: 5 Flow State Dir Frm count TCP 1.1.1.3:58795 -> 2.2.2.2:554 Watch I 7 UDP 1.1.1.3:1028 -> 2.2.2.2:1028 Forward I 0 UDP 1.1.1.3:1029 -> 2.2.2.2:1029 Forward I 0 UDP 1.1.1.3:1030 -> 2.2.2.2:1030 Forward I 0 UDP 1.1.1.3:1031 -> 2.2.2.2:1031 Forward I 0 TCP 2.2.2.2:554 -> 1.1.1.3:58795 Watch O 5 UDP 2.2.2.2:1028 -> 1.1.1.3:1028 Forward O 6 UDP 2.2.2.2:1029 -> 1.1.1.3:1029 Forward O 0 UDP 2.2.2.2:1030 -> 1.1.1.3:1030 Forward O 3 UDP 2.2.2.2:1031 -> 1.1.1.3:1031 Forward O 0
MX-SPC3サービスカードの出力例
動作モード コマンドからの出力は show services sessions application-protocol rtsp
次のとおりです。
user@host# run show services sessions application-protocol rtsp Session ID: 1073741828, Service-set: sset1, Policy name: p1/131081, Timeout: 116, Valid Logical system: root-logical-system Resource information : RTSP ALG, 1, 0 In: 31.0.0.2/33575 --> 41.0.0.2/554;tcp, Conn Tag: 0x0, If: vms-4/0/0.1, Pkts: 8, Bytes: 948, Out: 41.0.0.2/554 --> 131.10.0.1/7777;tcp, Conn Tag: 0x0, If: vms-4/0/0.2, Pkts: 6, Bytes: 1117, Session ID: 1073741829, Service-set: sset1, Policy name: p1/131081, Timeout: 120, Valid Logical system: root-logical-system Resource information : RTSP ALG, 1, 1 In: 41.0.0.2/35004 --> 131.10.0.1/7780;udp, Conn Tag: 0x0, If: vms-4/0/0.2, Pkts: 220, Bytes: 79200, Out: 31.0.0.2/30004 --> 41.0.0.2/35004;udp, Conn Tag: 0x0, If: vms-4/0/0.1, Pkts: 0, Bytes: 0, Session ID: 1073741830, Service-set: sset1, Policy name: p1/131081, Timeout: 120, Valid Logical system: root-logical-system Resource information : RTSP ALG, 1, 4 In: 41.0.0.2/35006 --> 131.10.0.1/7781;udp, Conn Tag: 0x0, If: vms-4/0/0.2, Pkts: 220, Bytes: 174240, Out: 31.0.0.2/30006 --> 41.0.0.2/35006;udp, Conn Tag: 0x0, If: vms-4/0/0.1, Pkts: 0, Bytes: 0, Total sessions: 3
分析
RTSP 会話は、RTSP 制御接続に対応する TCP フローで構成されている必要があります。クライアントからサーバー、サーバー間、クライアント間の各方向に 1 つずつ、2 つのフローが必要です。
TCP 1.1.1.3:58795 -> 2.2.2.2:554 Watch I 7 TCP 2.2.2.2:554 -> 1.1.1.3:58795 Watch O 5
イニシエーターフローのRTSP制御接続は、宛先ポート554から送信されます。
レスポンダ フローの RTSP 制御接続は、送信元ポート 554 から送信されます。
UDP フローは、RTSP 接続を介して送信された RTP メディアに対応します。
トラブルシューティングに関する質問
RTSP ALG が設定されている場合、メディアは機能しません。どうしようか。
RTSPの会話をチェックして、TCPとUDPの両方のフローが存在するかどうかを確認します。
ALG プロトコルは、 と
rtsp
表示する必要があります。
メモ:ALG 処理が行われ、クライアントがアプリケーションに対応する基本的に「監視」または処理ペイロードであるため、フローの状態は 、 と
Watch
表示されます。FTP および RTSP ALG フローの場合、制御接続は常にWatch
フローです。ALGエラーの確認方法を知りたい。
次のコマンドを発行すると、エラーを確認できます。各 ALG には、ALG パケット エラー用の個別のフィールドがあります。
user@host# show services stateful-firewall statistics extensive Interface: ms-3/2/0 Service set: svc_set New flows: Accepts: 1347, Discards: 0, Rejects: 0 Existing flows: Accepts: 144187, Discards: 0, Rejects: 0 Drops: IP option: 0, TCP SYN defense: 0 NAT ports exhausted: 0 Errors: IP: 0, TCP: 276 UDP: 0, ICMP: 0 Non-IP packets: 0, ALG: 0 IP errors: IP packet length inconsistencies: 0 Minimum IP header length check failures: 0 Reassembled packet exceeds maximum IP length: 0 Illegal source address: 0 Illegal destination address: 0 TTL zero errors: 0, Illegal IP protocol number (0 or 255): 0 Land attack: 0 Non-IPv4 packets: 0, Bad checksum: 0 Illegal IP fragment length: 0 IP fragment overlap: 0 IP fragment reassembly timeout: 0 Unknown: 0 TCP errors: TCP header length inconsistencies: 0 Source or destination port number is zero: 0 Illegal sequence number and flags combinations: 0 SYN attack (multiple SYN messages seen for the same flow): 276 First packet not a SYN message: 0 TCP port scan (TCP handshake, RST seen from server for SYN): 0 Bad SYN cookie response: 0 UDP errors: IP data length less than minimum UDP header length (8 bytes): 0 Source or destination port number is zero: 0 UDP port scan (ICMP error seen for UDP flow): 0 ICMP errors: IP data length less than minimum ICMP header length (8 bytes): 0 ICMP error length inconsistencies: 0 Duplicate ping sequence number: 0 Mismatched ping sequence number: 0 ALG errors: BOOTP: 0, DCE-RPC: 0, DCE-RPC portmap: 0 DNS: 0, Exec: 0, FTP: 0 ICMP: 0 Login: 0, NetBIOS: 0, NetShow: 0 RPC: 0, RPC portmap: 0 RTSP: 0, Shell: 0 SNMP: 0, SQLNet: 0, TFTP: 0 Traceroute: 0
システム ログ メッセージ
また、ALG フロー分析では、システム ログの生成とシステム ログの確認も役立ちます。このセクションには、以下の内容が含まれています。
システム ログの設定
Junos OS CLIでは、さまざまなレベルでシステムログメッセージの有効化を設定できます。以下の構成例に示すように、レベルの選択は、イベント ロギングの具体的な内容と含めるオプションによって異なります。設定オプションの詳細については、 ルーティングデバイス用Junos OS管理ライブラリ (システムレベル)または ルーティングデバイス用Junos OSサービスインターフェイスライブラリ (その他すべてのレベル)を参照してください。
最上位のグローバルレベル:
user@host# show system syslog file messages { any any; }
サービスセットレベル:
user@host# show services service-set svc_set syslog { host local { services any; } } stateful-firewall-rules allow_rtsp; interface-service { service-interface ms-3/2/0; }
サービスルールレベル:
user@host# show services stateful-firewall rule allow_rtsp match-direction input-output; term 0 { from { applications junos-rtsp; } then { accept; syslog; } }
システム ログ出力
次の例に示すように、システムログメッセージはフロー作成時に生成されます。
次のシステム ログ メッセージは、ASP が受け入れルールに一致したことを示しています。
Oct 25 16:11:37 (FPC Slot 3, PIC Slot 2) {svc_set}[FWNAT]: ASP_SFW_RULE_ACCEPT: proto 6 (TCP) application: rtsp, ge-2/0/1.0:1.1.1.2:35595 -> 2.2.2.2:554, Match SFW accept rule-set: , rule: allow_rtsp, term: 0
システムログメッセージの完全な一覧については、 システムログエクスプローラを参照してください。