Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

ALG アプリケーション

アプリケーションのプロパティの構成

アプリケーションのプロパティを設定するには、 階層レベルで ステートメントを含め application ます [edit applications]

ステートメントを設定する application-set ことで、アプリケーションオブジェクトをグループ化できます。詳細については、 アプリケーションセットの設定を参照してください。

このセクションには、アプリケーションの構成に関する次のタスクが含まれています。

アプリケーション プロトコルの設定

ステートメントを使用すると application-protocol 、サポートされているALG(アプリケーションプロトコル)のどれを設定し、サービス処理用のアプリケーションセットに含めるかを指定できます。アプリケーション プロトコルを設定するには、 階層レベルで ステートメントを含め application-protocol ます [edit applications application application-name]

表 1 に、サポートされているプロトコルのリストを示します。特定のプロトコルの詳細については、「 ALG の説明」を参照してください

表 1: サービス インターフェイスでサポートされるアプリケーション プロトコル

プロトコル名

CLI値

コメント

ブートストラップ プロトコル (BOOTP)

bootp

BOOTP および DHCP(Dynamic Host Configuration Protocol)をサポートします。

分散コンピューティング環境 (DCE) リモート プロシージャ コール (RPC)

dce-rpc

ステートメントにはprotocol、 または udp tcpの値が必要です。値が必要ですuuid。または source-port 値は指定destination-portできません。

DCE RPC ポートマップ

dce-rpc-portmap

ステートメントには protocol 、 または udp tcpの値が必要です。値が必要です destination-port

Domain Name System(DNS)

dns

ステートメントに protocol という値 udpが必要です。このアプリケーション プロトコルは、DNS 応答を受信するとすぐに DNS フローを閉じます。

Exec

exec

ステートメントに protocoltcp があるか、指定されていない必要があります。値が必要です destination-port

Ftp

ftp

ステートメントに protocoltcp があるか、指定されていない必要があります。値が必要です destination-port

H.323

h323

IKE ALG

ike-esp-nat

ステートメントには protocoludp が必要であり、 destination-port 値は 500 である必要があります。

Internet Control Message Protocol(ICMP)

icmp

ステートメントに protocolicmp があるか、指定されていない必要があります。

インターネットORB間プロトコル

iiop

Ip

ip

ログイン

login

Netbios

netbios

ステートメントに protocoludp があるか、指定されていない必要があります。値が必要です destination-port

ネットショー

netshow

ステートメントに protocoltcp があるか、指定されていない必要があります。値が必要です destination-port

ポイントツーポイントトンネリングプロトコル

pptp

リアルオーディオ

realaudio

リアルタイム ストリーミング プロトコル(RTSP)

rtsp

ステートメントに protocoltcp があるか、指定されていない必要があります。値が必要です destination-port

RPC ユーザー データグラム プロトコル(UDP)または TCP

rpc

ステートメントにはprotocol、 または udp tcpの値が必要です。値が必要ですrpc-program-number。または source-port 値は指定destination-portできません。

RPC ポート マッピング

rpc-portmap

ステートメントには protocol 、 または udp tcpの値が必要です。値が必要です destination-port

シェル

shell

ステートメントに protocoltcp があるか、指定されていない必要があります。値が必要です destination-port

セッション開始プロトコル

sip

Snmp

snmp

ステートメントに protocoludp があるか、指定されていない必要があります。値が必要です destination-port

SQLNet

sqlnet

ステートメントにprotocoltcpがあるか、指定されていない必要があります。または source-port 値が必要ですdestination-port

トークプログラム

talk

トレース ルート

traceroute

ステートメントに protocoludp があるか、指定されていない必要があります。値が必要です destination-port

Trivial FTP(TFTP)

tftp

ステートメントに protocoludp があるか、指定されていない必要があります。値が必要です destination-port

ウィンフレーム

winframe

メモ:

同じサービス セットで 2 NAT が設定されている場合、ステートフル ファイアウォール、NAT、または CoS ルールの下で、ICMP およびトレース ルート用にアプリケーション レベル ゲートウェイ(ALG)を設定できます。これらの ALG は、パケット ゲートウェイ コントローラ プロトコル(PGCP)によって作成されたフローには適用できません。Twice NAT は他の ALG をサポートしていません。NAT は、IP アドレスと TCP または UDP ヘッダーのみを適用し、ペイロードには適用されません。

Twice NAT の設定の詳細については、 Junos Address Aware ネットワーク アドレス指定の概要を参照してください。

ネットワーク プロトコルの設定

ステートメント protocol を使用すると、サポートされているネットワーク プロトコルのどれをアプリケーション定義で一致させるかを指定できます。ネットワーク プロトコルを設定するには、 階層レベルで ステートメントを含め protocol ます [edit applications application application-name]

プロトコルの種類は数値で指定します。より一般的に使用されるプロトコルでは、テキスト名もコマンドラインインターフェイス(CLI)でサポートされています。 表 2 に、サポートされているプロトコルの一覧を示します。

表 2: サービス インターフェイスでサポートされるネットワーク プロトコル

ネットワーク プロトコルの種類

CLI値

コメント

IP セキュリティ(IPsec)認証ヘッダー(AH)

ah

外部ゲートウェイプロトコル(EGP)

egp

IPsec ESP(カプセル化セキュリティ ペイロード)

esp

一般的なルーティングカプセル化(GR)

gre

Icmp

icmp

application-protocol icmpが必要です。

ICMPv6

icmp6

application-protocol icmpが必要です。

インターネットグループ管理プロトコル(IGMP)

igmp

IP in IP

ipip

Ospf

ospf

プロトコル独立マルチキャスト(PIM)

pim

リソース予約プロトコル(RSVP)

rsvp

Tcp

tcp

または dce-rcpを指定しない限りapplication-protocol rcp、 または destination-port source-port の値が必要です。

Udp

udp

または dce-rcpを指定しない限りapplication-protocol rcp、 または destination-port source-port の値が必要です。

使用可能な数値の完全なリストについては、RFC 1700 、 割り当てられた番号(インターネットプロトコルスイート用)を参照してください。

メモ:

IP バージョン 6 (IPv6) は、アプリケーション定義でネットワーク プロトコルとしてサポートされていません。

デフォルトでは、twice NAT 機能は、ICMP エラー メッセージのペイロードに埋め込まれた IP、TCP、および UDP ヘッダーに影響を与える可能性があります。twice NAT 設定の場合、アプリケーション ステートメントに および protocol udp ステートメントを含めることができますprotocol tcp。Twice NAT の設定の詳細については、 Junos Address Aware ネットワーク アドレス指定の概要を参照してください。

ICMP コードとタイプの設定

ICMP コードと型は、アプリケーション定義でのパケット照合のために、ネットワーク プロトコルと組み合わせて追加の仕様を提供します。ICMP設定を構成するには、 および ステートメントを [edit applications application application-name] 階層レベルで記述します。icmp-code icmp-type

ICMP コードとタイプ値は 1 つだけ含めることができます。ステートメントには application-protocol という値 icmpが必要です。 表 3 に、サポートされている ICMP 値のリストを示します。

表3:サービスインターフェイスでサポートされているICMPコードとタイプ

CLIステートメント

説明

icmp-code

この値またはキーワードは、 よりもicmp-type具体的な情報を提供します。値の意味は関連するicmp-type値に依存するため、 とicmp-code一緒 に を指定する必要がありますicmp-type。詳細については、「 ルーティングポリシー、ファイアウォールフィルター、およびトラフィックポリサーユーザーガイド」を参照してください。

数値の代わりに、以下のテキストシノニム(フィールド値も記載されています)のいずれかを指定します。キーワードは、それらが関連するICMPタイプによってグループ化されます。

パラメータ問題: ip-header-bad (0), required-option-missing (1)

リダイレクト: redirect-for-host (1), (0), (3), redirect-for-network redirect-for-tos-and-host redirect-for-tos-and-net (2)

超過時間: ttl-eq-zero-during-reassembly (1), ttl-eq-zero-during-transit (0)

到達不能: communication-prohibited-by-filtering (13)、 (10)、 (7)、 (9)、 (6)、 (4)、 (14)、 (1)、 (12)、 (0)、 (11)、 host-unreachable-for-TOS port-unreachable host-unreachable (3)、 (15)、 (2)、 (8)、 network-unreachable-for-TOS precedence-cutoff-in-effect network-unreachable protocol-unreachable source-host-isolated destination-host-prohibited destination-network-prohibited source-route-failed destination-host-unknown destination-network-unknown fragmentation-needed host-precedence-violation (5)

icmp-type

通常、 一致ステートメントと protocol 合わせてこの一致を指定して、ポートで使用されているプロトコルを決定します。詳細については 、「 ルーティングポリシー、ファイアウォールフィルター、およびトラフィックポリサーユーザーガイド」を参照してください。

数値の代わりに、(0)、(8)、(16)、(15)、(17)、(18)、(12)、(5)、(9)、(10)、(4)、(11)、 info-request redirect router-advertisement source-quench time-exceeded router-solicit mask-request mask-reply parameter-problem (13)、(14)、 echo-request info-reply timestamp timestamp-reply (3)のいずれか echo-reply unreachable を指定します。

メモ:

拒否アクションを含む入力ファイアウォールフィルターと、ステートフルファイアウォールルールを含むサービスセットを使用してインターフェイスを設定した場合、ルーターはステートフルファイアウォールルールがパケットに対して実行される前に入力ファイアウォールフィルターを実行します。その結果、パケット転送エンジンがインターフェイスを介してICMPエラーメッセージを送信すると、入力方向に表示されないため、ステートフルファイアウォールルールによってパケットが破棄される可能性があります。

考えられる回避策は、このタイプのフィルターが入力方向のステートフルファイアウォールの後に実行されるため、拒否アクションを実行するための転送テーブルフィルターを含めるか、ローカルで生成されたICMPパケットがステートフルファイアウォールサービスに送信されないようにする出力サービスフィルターを含めることです。

送信元ポートと宛先ポートの設定

TCP または UDP の送信元ポートと宛先ポートは、ネットワーク プロトコルと組み合わせて、アプリケーション定義でのパケット照合の追加仕様を提供します。ポートを設定するには、 階層レベルで および source-port のステートメントを含めdestination-portます[edit applications application application-name]

送信元ポートまたは宛先ポートを 1 つ定義する必要があります。通常、この一致を match ステートメントと protocol 合わせて指定して、ポートで使用されているプロトコルを決定します。制約については、 表 1 を参照してください。

数値、または 表 4 にリストされているテキスト同義語の 1 つを指定できます。

表 4: サービス インターフェイスでサポートされているポート名

ポート名

対応するポート番号

afs

1483

bgp

179

biff

512

bootpc

68

bootps

67

cmd

514

cvspserver

2401

dhcp

67

domain

53

eklogin

2105

ekshell

2106

exec

512

finger

79

ftp

21

ftp-data

20

http

80

https

443

ident

113

imap

143

kerberos-sec

88

klogin

543

kpasswd

761

krb-prop

754

krbupdate

760

kshell

544

ldap

389

login

513

mobileip-agent

434

mobilip-mn

435

msdp

639

netbios-dgm

138

netbios-ns

137

netbios-ssn

139

nfsd

2049

nntp

119

ntalk

518

ntp

123

pop3

110

pptp

1723

printer

515

radacct

1813

radius

1812

rip

520

rkinit

2108

smtp

25

snmp

161

snmptrap

162

snpp

444

socks

1080

ssh

22

sunrpc

111

syslog

514

tacacs-ds

65

talk

517

telnet

23

tftp

69

timed

525

who

513

xdmcp

177

zephyr-clt

2103

zephyr-hm

2104

一致条件の詳細については 、「 ルーティングポリシー、ファイアウォールフィルター、およびトラフィックポリサーユーザーガイド」を参照してください。

非アクティブタイムアウト期間の設定

アプリケーションの非アクティブのタイムアウト期間を指定できます。期間中にソフトウェアがアクティビティを検出しなかった場合、タイマーが期限切れになるとフローは無効になります。タイムアウト期間を設定するには、 階層レベルで ステートメントを含め inactivity-timeout ます [edit applications application application-name]

デフォルト値は30秒です。アプリケーションに対して設定した値は、 階層レベルで設定された [edit interfaces interface-name service-options] グローバル値を上書きします。詳細については、 サービスインターフェイスのデフォルトタイムアウト設定の構成を参照してください。

IKE ALG アプリケーションの設定

Junos OS リリース 17.4R1 以前は、MX シリーズ ルーターの Junos VPN Site Secure IPsec 機能スイートでは、ネットワーク アドレス変換トラバーサル(NAT-T)はサポートされていません。IKE ALG を使用すると、NAT-T に準拠していない IPsec ピア間で、IKEv1 および IPsec パケットを NAPT-44 および NAT64 フィルターを介して渡すことができます。この ALG は、ESP トンネル モードのみをサポートします。宛先ポート(500)、非アクティブ タイムアウト(30 秒)、ゲート タイムアウト(120 秒)、ESP セッション アイドル タイムアウト(800 秒)の値が事前に定義されている、定義済みの IKE ALG アプリケーション junos-ikeを使用できます。事前定義された junos-ike アプリケーションとは異なる値でIKE ALGを使用する場合は、新しいIKE ALGアプリケーションを設定する必要があります。

IKE ALG アプリケーションを設定するには、次の手順に従います。

  1. アプリケーションの名前を指定します。

  2. IKE ALGを指定します。

  3. UDP プロトコルを指定します。

  4. 宛先ポートとして 500 を指定します。

  5. IKEセッションが削除されるまで非アクティブになる秒数を指定します。デフォルトは30秒です。

  6. IKEがIPsecクライアントとサーバー間のセキュリティアソシエーションを確立してから、ESPトラフィックが両方向に開始するまでに経過できる秒数を指定します。このタイムアウト値より前に ESP トラフィックが開始されていない場合、ESP ゲートは削除され、ESP トラフィックはブロックされます。デフォルトは 120 秒です。

  7. ESP セッション(IPsec データ トラフィック)のアイドル タイムアウトを秒単位で指定します。この時間内に ESP セッションで IPsec データ トラフィックが渡されなかった場合、セッションは削除されます。デフォルトは 800 秒です。

SIP の設定

セッション開始プロトコル(SIP)は、テレフォニー、FAX、ビデオ会議、インスタントメッセージング、ファイル交換などのインターネットサービスに関与するエンドポイント間の通信のための汎用プロトコルです。

Junos OSは、RFC 3261、 SIP:セッション開始プロトコルに記載されている標準に従ってALGサービスを提供します。Junos OSでのSIPフローは、RFC 3665、 セッション開始プロトコル(SIP)基本コールフローの例に記載されています。

メモ:

Junos OS SIP ALG を実装する前に、「Junos OS SIP ALG の制限」で説明されている特定の制限事項について理解しておく必要があります

NAT を SIP ALG と組み合わせて使用すると、アドレス変換により SIP ヘッダー フィールドが変更されます。これらの変換の説明については、 『SIP ALG とネットワーク アドレス変換の相互作用』を参照してください。

適応サービスインターフェースにSIPを実装するには、 階層レベルで ステートメント[edit applications application application-name]を 値sipで設定しますapplication-protocol。このステートメントの詳細については、「アプリケーション プロトコルの設定」を参照してください。さらに、SIP の実装方法を変更するために設定できる他の 2 つのステートメントがあります。

  • ルーターが、NATファイアウォールの背後にあるエンドポイントデバイスへの着信SIPコールを受け入れるようにすることができます。ファイアウォールの内側にあるデバイスがファイアウォールの外側にあるプロキシに登録されると、ASまたはマルチサービスPICは登録状態を維持します。 learn-sip-register ステートメントが有効になっている場合、ルーターはこの情報を使用してインバウンドコールを受け入れることができます。このステートメントが設定されていない場合、着信コールは受け付けられません。ファイアウォールの背後のデバイスのみが、ファイアウォールの外側のデバイスを呼び出すことができます。

    SIP登録を設定するには、 階層レベルで ステートメントを含め learn-sip-register ます [edit applications application application-name]

    メモ:

    この learn-sip-register ステートメントは、次世代サービスMX-SPC3には適用されません。

    コマンドを発行 show services stateful-firewall sip-register して、SIPレジスタを手動で検査することもできます。詳細については、 Junos OSシステムの基本とサービスコマンドリファレンスを参照してください。このコマンドは show services stateful-firewall sip-register 、次世代サービスではサポートされていません。

  • 保留になっている SIP 通話のタイムアウト期間を指定できます。コールが保留になると、アクティビティはなく、設定された inactivity-timeout 期間が経過するとフローがタイムアウトし、コール状態が破棄される可能性があります。これを回避するために、コールが保留になると、フロータイマーがサイクルに sip-call-hold-timeout リセットされ、コール状態が保持され、期間よりも inactivity-timeout 長く流れます。

    メモ:

    この sip-call-hold-timeout ステートメントは、次世代サービスMX-SPC3には適用されません。

    タイムアウト期間を設定するには、 階層レベルで ステートメントを含め sip-call-hold-timeout ます [edit applications application application-name]

    デフォルト値は 7200 秒で、範囲は 0 から 36,000 秒 (10 時間) からです。

SIP ALGとネットワークアドレス変換の相互作用

ネットワークアドレス変換(NAT)プロトコルを使用すると、プライベートサブネット内の複数のホストが単一のパブリックIPアドレスを共有してインターネットにアクセスできます。送信トラフィックの場合、NAT はプライベートサブネット内のホストのプライベート IP アドレスをパブリック IP アドレスに置き換えます。受信トラフィックの場合、パブリック IP アドレスはプライベート アドレスに変換され、メッセージはプライベート サブネット内の適切なホストにルーティングされます。

SIP メッセージには SIP ヘッダーと SIP 本文に IP アドレスが含まれているため、セッション開始プロトコル (SIP) サービスで NAT を使用すると、より複雑になります。SIP サービスで NAT を使用する場合、SIP ヘッダーには発信者と受信者に関する情報が含まれており、デバイスはこの情報を変換して外部ネットワークから隠します。SIP 本文には、メディアを送信するための IP アドレスとポート番号を含むセッション記述プロトコル (SDP) 情報が含まれています。デバイスは、メディアを送受信するためのリソースを割り当てるために、SDP 情報を変換します。

SIP メッセージ内の IP アドレスとポート番号がどのように置き換えられるかは、メッセージの方向によって異なります。送信メッセージの場合、クライアントのプライベート IP アドレスとポート番号は、ジュニパーネットワークス ファイアウォールのパブリック IP アドレスとポート番号に置き換えられます。受信メッセージの場合、ファイアウォールのパブリック アドレスはクライアントのプライベート アドレスに置き換えられます。

INVITE メッセージがファイアウォールを越えて送信されると、SIP アプリケーション層ゲートウェイ (ALG) は、メッセージ ヘッダーから呼び出しテーブルに情報を収集し、後続のメッセージを正しいエンドポイントに転送するために使用します。ACK や 200 OK などの新しいメッセージが到着すると、ALG は "From:、To:、および Call-ID:" フィールドを呼び出しテーブルと比較して、メッセージの呼び出しコンテキストを識別します。既存の呼び出しに一致する新しい INVITE メッセージが到着した場合、ALG はそれを REINVITE として処理します。

SDP 情報を含むメッセージが到着すると、ALG はポートを割り当て、ポートと SDP 内のポートとの間に NAT マッピングを作成します。SDP は、リアルタイム トランスポート プロトコル(RTP)チャネルとリアルタイム制御プロトコル(RTCP)チャネル用のシーケンシャル ポートを必要とするため、ALG は連続する偶数奇数のポートを提供します。ポートのペアが見つからない場合は、SIP メッセージを破棄します。

このトピックは、以下のセクションで構成されています。

発信コール

内部ネットワークから外部ネットワークへの SIP リクエスト メッセージを使用して SIP コールが開始されると、NAT によって SDP の IP アドレスとポート番号が置き換えられ、IP アドレスとポート番号がジュニパーネットワークス ファイアウォールにバインドされます。Via、Contact Route、Record-Route SIPヘッダーフィールドが存在する場合も、ファイアウォールIPアドレスにバインドされます。ALG は、再送信および SIP 応答メッセージで使用するために、これらのマッピングを保存します。

SIP ALG は次にファイアウォールにピンホールを開き、SDP ヘッダー フィールドと Via、Contact、Record-Route ヘッダー フィールドの情報に基づいてネゴシエートされた動的に割り当てられたポート上のデバイスを介してメディアを許可します。また、ピンホールにより、着信パケットがコンタクト、ビア、およびレコードルートのIPアドレスとポートに到達できるようになります。リターントラフィックを処理する場合、ALGは元の連絡先、経由、ルート、および記録ルートSIPフィールドをパケットに挿入し直します。

着信コール

着信コールは、パブリック ネットワークからデバイス上のパブリック スタティック NAT アドレスまたはインターフェイス IP アドレスに対して開始されます。静的 NAT は、内部ホストを指す静的に構成された IP アドレスです。インターフェイス IP アドレスは、内部ホストから SIP レジストラーに送信される REGISTER メッセージを ALG が監視する際に、ALG によって動的に記録されます。デバイスは、着信する SIP パケットを受信すると、セッションを設定し、パケットのペイロードを SIP ALG に転送します。

ALG は SIP 要求メッセージ (最初は INVITE) を調べ、SDP の情報に基づいて送信メディアのゲートを開きます。200 OK 応答メッセージが到着すると、SIP ALG は IP アドレスとポートに対して NAT を実行し、送信方向にピンホールを開きます。(開かれたゲートの有効期間は短く、200 OK 応答メッセージがすぐに受信されない場合はタイムアウトします)。

200 OK 応答が到着すると、SIP プロキシは SDP 情報を調べ、各メディア セッションの IP アドレスとポート番号を読み取ります。デバイス上の SIP ALG は、アドレスとポート番号に対して NAT を実行し、アウトバウンド トラフィック用のピンホールを開き、インバウンド方向のゲートのタイムアウトを更新します。

ACK が 200 OK に到着すると、SIP ALG も通過します。メッセージに SDP 情報が含まれている場合、SIP ALG は、IP アドレスとポート番号が前回の INVITE から変更されないようにします。変更されている場合は、古いピンホールを削除し、メディアを通過できるように新しいピンホールを作成します。また、ALG は Via、Contact 、および Record-Route SIP フィールドを監視し、これらのフィールドが変更されたと判断した場合は新しいピンホールを開きます。

転送された通話

転送されたコールとは、たとえば、ネットワーク外のユーザ A がネットワーク内部のユーザ B を呼び出し、ユーザ B がネットワーク外のユーザ C にコールを転送する場合です。SIP ALG は、ユーザー A からの INVITE を通常の着信コールとして処理します。しかし、ALG がネットワーク外の B から C に転送されたコールを調べ、B と C に同じインターフェイスを使用して到達したことに気付いた場合、メディアはユーザー A とユーザー C の間を直接流れるため、ファイアウォールにピンホールは開きません。

通話の終了

BYE メッセージはコールを終了します。デバイスは、BYE メッセージを受信すると、他のメッセージの場合と同様にヘッダー フィールドを変換します。ただし、BYE メッセージは受信者によって 200 OK で確認される必要があるため、ALG はコールの破棄を 5 秒間遅らせて、200 OK の送信時間を確保します。

コール再招待メッセージ

ReINVITE メッセージは、新しいメディア セッションを通話に追加し、既存のメディア セッションを削除します。新しいメディア セッションが通話に追加されると、ファイアウォールで新しいピンホールが開かれ、新しいアドレス バインドが作成されます。このプロセスは、元のコール設定と同じです。通話から 1 つ以上のメディア セッションが削除されると、BYE メッセージと同様にピンホールが閉じられ、バインディングが解放されます。

通話セッションタイマー

SIP ALG は、Re-INVITE または UPDATE メッセージが受信されない場合、Session-Expires 値を使用してセッションをタイムアウトします。ALG は、INVITE に対する 200 OK 応答から Session-Expires 値 (存在する場合) を取得し、この値をシグナリング タイムアウトに使用します。セッションがタイムアウトする前にALGが別のINVITEを受信すると、ALGはすべてのタイムアウト値をこの新しいINVITEまたはデフォルト値にリセットし、プロセスが繰り返されます。

予防措置として、SIP ALG はハード タイムアウト値を使用して、コールが存在することができる最大時間を設定します。これにより、次のいずれかのイベントが発生した場合にデバイスが保護されます。

  • 通話中にエンドシステムがクラッシュし、BYE メッセージが受信されない。

  • 悪意のあるユーザーが SIP ALG を攻撃しようとして BYE を送信することはありません。

  • SIPプロキシの実装が不十分な場合、レコードルートの処理に失敗し、BYEメッセージを送信することはありません。

  • ネットワーク障害により、BYE メッセージを受信できない。

通話キャンセル

どちらのパーティも、CANCEL メッセージを送信して呼び出しを取り消すことができます。CANCEL メッセージを受信すると、SIP ALG はファイアウォールを介してピンホールを閉じ (開いている場合)、アドレス バインドを解放します。リソースを解放する前に、ALG は制御チャネルのエージアウトを約 5 秒間遅らせて、最後の 200 OK が通過する時間を確保します。呼び出しは、487 応答または非 200 応答が到着したかどうかに関係なく、5 秒のタイムアウトが経過すると終了します。

フォーク

フォークを使用すると、SIP プロキシーは 1 つの INVITE メッセージを複数の宛先に同時に送信できます。1 つのコールに対して複数の 200 OK 応答メッセージが到着すると、SIP ALG は受信した最初の 200 OK メッセージでコール情報を解析しますが、更新します。

SIPメッセージ

SIP メッセージ形式は、SIP ヘッダー セクションと SIP 本文で構成されます。要求メッセージでは、ヘッダー セクションの最初の行は要求行であり、メソッドの種類、要求 URI、およびプロトコルのバージョンが含まれます。応答メッセージでは、最初の行は状態コードを含む状態行です。SIP ヘッダーには、シグナリングに使用される IP アドレスとポート番号が含まれています。ヘッダー・セクションからブランク行で区切られた SIP 本体は、セッション記述情報用に予約されており、オプションです。現在 Junos OS は SDP のみをサポートしています。SIP 本文には、メディアの転送に使用される IP アドレスとポート番号が含まれています。

SIP ヘッダー

次のサンプル SIP リクエスト メッセージでは、NAT がヘッダー フィールドの IP アドレスを置き換えて、外部ネットワークから非表示にします。

IP アドレス変換の実行方法は、メッセージの種類と方向によって異なります。メッセージは以下のいずれかになります。

  • インバウンド要求

  • アウトバウンド応答

  • アウトバウンド要求

  • 受信応答

表 5 に、これらの各ケースで NAT がどのように実行されるかを示します。いくつかのヘッダー フィールドについて、ALG はメッセージがネットワークの内部から送信されたか外部から送信されたかだけでは不十分であることに注意してください。また、呼び出しを開始したクライアントと、メッセージが要求か応答かを判断する必要もあります。

表 5: NAT テーブルを使用したメッセージの要求

インバウンド要求

(パブリックからプライベートへ)

宛先:

ドメインをローカルアドレスに置き換える

差出人:

なし

コールID:

なし

を介して:

なし

Request-URI:

ALGアドレスをローカルアドレスに置換

連絡先:

なし

レコードルート:

なし

ルート:

なし

アウトバウンド応答

(プライベートからパブリックへ)

宛先:

ALGアドレスをローカルアドレスに置換

差出人:

なし

コールID:

なし

を介して:

なし

Request-URI:

N/a

連絡先:

ローカルアドレスをALGアドレスに置換

レコードルート:

ローカルアドレスをALGアドレスに置換

ルート:

なし

アウトバウンド要求

(プライベートからパブリックへ)

宛先:

なし

差出人:

ローカルアドレスをALGアドレスに置換

コールID:

なし

を介して:

ローカルアドレスをALGアドレスに置換

Request-URI:

なし

連絡先:

ローカルアドレスをALGアドレスに置換

レコードルート:

ローカルアドレスをALGアドレスに置換

ルート:

ALGアドレスをローカルアドレスに置換

アウトバウンド応答

(パブリックからプライベートへ)

宛先:

なし

差出人:

ALGアドレスをローカルアドレスに置換

コールID:

なし

を介して:

ALGアドレスをローカルアドレスに置換

Request-URI:

N/a

連絡先:

なし

レコードルート:

ALGアドレスをローカルアドレスに置換

ルート:

ALGアドレスをローカルアドレスに置換

SIPボディ

SIP 本文の SDP 情報には、ALG がメディア ストリームのチャネルを作成するために使用する IP アドレスが含まれています。SDP セクションの変換では、メディアを送受信するためのリソース、つまりポート番号も割り当てられます。

サンプル SDP セクションからの次の抜粋は、リソース割り当てのために変換されるフィールドを示しています。

SIP メッセージには、複数のメディア ストリームを含めることができます。この概念は、電子メール メッセージに複数のファイルを添付するのと似ています。例えば、SIP クライアントから SIP サーバーに送信される INVITE メッセージには、以下のフィールドがあります。

Junos OS は、各方向にネゴシエートされた最大 6 つの SDP チャネルをサポートし、通話ごとに合計 12 チャネルをサポートします。

Junos OS SIP ALG の制限

SIP ALG の設定には、次の制限が適用されます。

  • RFC 3261 で説明されているメソッドのみがサポートされています。

  • SIP バージョン 2 のみがサポートされています。

  • TCP は、MS-MPC のシグナリング メッセージのトランスポート メカニズムとしてはサポートされていませんが、次世代サービスではサポートされています。

  • STUNを使用する場合は、SIP ALGを設定しないでください。 クライアントが STUN/TURN を使用して発信者とレスポンダまたはプロキシ間のファイアウォールまたは NAT デバイスを検出する場合、クライアントは NAT デバイスの動作を推測し、それに応じてコールを発信しようとします。

  • MS-MPC では、エンドポイント非依存マッピング NAT プール オプションを SIP ALG と組み合わせて使用しないでください。 エラーが発生します。これは、次世代サービスには適用されません。

  • IPv6 シグナリング データは、MS-MPC ではサポートされていませんが、次世代サービスではサポートされています。

  • 認証はサポートされていません。

  • 暗号化されたメッセージはサポートされていません。

  • SIP フラグメント化は、MS-MPC ではサポートされていませんが、次世代サービスではサポートされています。

  • SIP メッセージを含む最大 UDP パケット サイズは 9 KB と想定されます。これより大きいSIPメッセージはサポートされていません。

  • SIP メッセージ内のメディア チャネルの最大数は 6 であると想定されます。

  • 完全修飾ドメイン名 (FQDN) は、重要なフィールドではサポートされていません。

  • QoSはサポートされていません。SIP は DSCP 書き換えをサポートしています。

  • 高可用性は、ウォーム スタンバイを除き、サポートされていません。

  • タイムアウト設定 never は、SIP または NAT ではサポートされていません。

  • マルチキャスト(フォーク プロキシ)はサポートされていません。

パケット照合のための SNMP コマンドの設定

パケット照合にSNMPコマンド設定を指定できます。SNMP を構成するには、 ステートメントを snmp-command [edit applications application application-name] 階層レベルで記述します。

サポートされている値はget、 、 setget-nexttrapです。照合に設定できる値は 1 つだけです。階層レベルのステートメント[edit applications application application-name]application-protocol、 の値snmpを持つ必要があります。アプリケーション プロトコルの指定については、「アプリケーション プロトコルの設定」を参照してください。

RPC プログラム番号の設定

パケット照合に RPC プログラム番号を指定できます。RPC プログラム番号を構成するには、 rpc-program-number ステートメントを [edit applications application application-name] 階層レベルで記述します。

DCE または RPC に使用される値の範囲は、100,000 から 400,000 です。階層レベルのステートメント[edit applications application application-name]application-protocol、 の値rpcを持つ必要があります。アプリケーション プロトコルの指定については、「アプリケーション プロトコルの設定」を参照してください。

TTLしきい値の設定

トレース・ルートのTTL(Time-to-live)しきい値を指定して、トレース・ルーティングの許容可能なネットワーク浸透レベルを制御できます。TTL値を設定するには、 階層レベルで ステートメントを含め ttl-threshold ます [edit applications application application-name]

階層レベルのステートメント[edit applications application application-name]application-protocol、 の値tracerouteを持つ必要があります。アプリケーション プロトコルの指定については、「アプリケーション プロトコルの設定」を参照してください。

ユニバーサル一意識別子の設定

DCE RPC オブジェクトのユニバーサル一意識別子 (UUID) を指定できます。UUID値を設定するには、 階層レベルで ステートメントを含め uuid ます [edit applications application application-name]

uuid値は 16 進表記です。階層レベルのステートメント[edit applications application application-nameapplication-protocol、 の値dce-rpcを持つ必要があります。アプリケーション プロトコルの指定については、「アプリケーション プロトコルの設定」を参照してください。UUID 番号の詳細については、を参照してくださいhttp://www.opengroup.org/onlinepubs/9629399/apdxa.htm

アプリケーション セットの構成

階層レベルの ステートメントと各アプリケーションのステートメント[edit applications]を含めるapplication-setapplicationことにより、定義したアプリケーションを名前付きオブジェクトにグループ化できます。

一般的なアプリケーション セットの例については、 例: アプリケーション プロトコルの設定を参照してください。

例:アプリケーション プロトコルの設定

次の例は、ポート 78 で実行されている特殊な FTP アプリケーションを記述するアプリケーション プロトコル定義を示しています。

次に、タイプ 8(ICMP エコー)の特殊な ICMP プロトコル(application-protocol icmp)の例を示します。

以下の例は、可能なアプリケーションセットを示しています。

ソフトウェアは、よく知られているアプリケーション プロトコルの定義済みのセットが含まれています。このセットには、TCP および UDP 宛先ポートがステートレス ファイアウォール フィルターによって既に認識されているアプリケーションが含まれます。

ALG セッションの出力の検証

このセクションでは、ALG セッションから正常に出力された例と、システム ログの構成に関する情報を示します。セッションの結果を比較して、設定が正しく機能しているかどうかを確認できます。

FTP の例

この例では、アクティブな FTP セッション中の出力を分析します。それは4つの異なるフローで構成されています。2 つは制御フローで、2 つはデータ フローです。この例は、次の部分で構成されています。

サンプル出力

MS-MPCカード

MS-MPCの場合、以下は動作 show services stateful-firewall conversations application-protocol ftp モードコマンドからの完全なサンプル出力です。

各フローの最初の行には、プロトコル(TCP)、送信元アドレス、送信元ポート、宛先アドレス、宛先ポート、フロー状態、方向、フレーム数などのフロー情報が表示されます。

  • フローの状態は、 、 、 ForwardDropのいずれかですWatch

    • フロー状態は 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 サンプル出力を次に示します。

各セッションについて:

  • 最初の行には、セッション ID、サービス セット名、ポリシー名、セッション タイムアウト、論理システム名、およびその状態などのフロー情報が表示されます。

  • 2 行目の は、 Resource informationALG 名 (FTP ALG) と ASL グループ ID (1) と ASL リソース ID (制御セッションの場合は 0、データ セッションの場合は 1) を含めて、セッションが ALG によって作成されたことを示します。

  • 3行目 In は順方向フローで、4行 Out 目は逆方向フローで、送信元アドレス、送信元ポート、宛先アドレス、宛先ポート、プロトコル(TCP)、セッション接続タグ、インターフェイスの In着信と発信 Out 、受信フレーム数、バイトが含まれます。NAT は、必要に応じてヘッダーに対して実行されます。

FTP システム ログ メッセージ

システム ログ メッセージは、FTP セッション中に生成されます。システム ログの詳細については、 システム ログ メッセージを参照してください。

MS-MPCカード

FTP 制御フローの作成時に、次のシステム ログ メッセージが生成されます。

  • ルール システムログを受け入れる:

  • 受け入れフローシステムログの作成:

  • データフロー作成用のシステムログ:

MX-SPC3カードカード

FTP 制御フローの作成時に、次のシステム ログ メッセージが生成されます。

  • FTP制御セッション作成のシステムログ:

  • FTPデータセッション作成のシステムログ:

  • FTPデータセッション破棄のシステムログ:

  • FTP制御セッション破棄のシステムログ:

分析

制御フロー
MS-MPCカード

制御フローは、3 ウェイ ハンドシェイクが完了した後に確立されます。

  • FTP クライアントから FTP サーバーへの制御フロー。TCP 宛先ポートは 21 です。

  • FTP サーバーから FTP クライアントへの制御フロー。TCP 送信元ポートは 21 です。

MX-SPC3カード

制御フローは、3 ウェイ ハンドシェイクが完了した後に確立されます。

  • FTPクライアントからFTPサーバーへの制御セッション、TCP宛先ポートは21です。

  • FTPクライアントからFTPサーバーへのデータセッション、それはFTPパッシブモード用です。

  • FTPサーバーからFTPクライアントへのデータセッション、それはFTPアクティブモード用です:

データフロー

データポート20は、FTP制御プロトコルの過程でデータ転送のためにネゴシエートされます。これら 2 つのフローは、FTP クライアントと FTP サーバー間のデータ フローです。

トラブルシューティングの質問

  1. FTP ALGがアクティブかどうかはどうすればわかりますか?

    • カンバセーションの ALG プロトコル フィールドに が表示されます ftp

    • 制御フローに有効なフレーム数(Frm count)があるはずです。

    • データ・フロー内の有効なフレーム・カウントは、データ転送が行われたことを示します。

  2. FTP接続が確立されているのにデータ転送が行われない場合、何を確認する必要がありますか?

    • ほとんどの場合、制御接続はアップしていますが、データ接続はダウンしています。

    • 会話の出力をチェックして、制御フローとデータ フローの両方が存在するかどうかを判断します。

  3. 各フローをどのように解釈しますか?それぞれのフローはどういう意味ですか?

    • FTP 制御フロー イニシエータ フロー:宛先ポート 21 のフロー

    • FTP 制御フローレスポンダフロー—送信元ポートを使用したフロー。21

    • FTP データ フロー開始フロー:宛先ポート 20 のフロー

    • FTP データ フロー レスポンダ フロー:送信元ポート 20 のフロー

RTSP ALG の例

RTSP カンバセーションの例を次に示します。アプリケーションは、制御接続に RTSP プロトコルを使用します。接続が設定されると、メディアはUDPプロトコル(RTP)を使用して送信されます。

この例は、次の要素で構成されています。

MS-MPC のサンプル出力

動作モードコマンドの出力 show services stateful-firewall conversations は次のとおりです。

MX-SPC3サービスカードのサンプル出力

動作モードコマンドの出力 show services sessions application-protocol rtsp は次のとおりです。

分析

RTSP カンバセーションは、RTSP 制御接続に対応する TCP フローで構成されている必要があります。クライアントからサーバーへ、およびサーバーからクライアントへ、各方向に 1 つずつ、合計 2 つのフローが必要です。

  • イニシエータ フローの RTSP 制御接続は、宛先ポート 554 から送信されます。

  • レスポンダ フローの RTSP 制御接続は、送信元ポート 554 から送信されます。

UDP フローは、RTSP 接続を介して送信される RTP メディアに対応します。

トラブルシューティングの質問

  1. RTSP ALG が設定されている場合、メディアは機能しません。どうしようか。

    • RTSP カンバセーションをチェックして、TCP フローと UDP フローの両方が存在するかどうかを確認します。

    • ALG プロトコルは と表示されます rtsp

    メモ:

    ALG 処理が実行されており、クライアントが基本的にアプリケーションに対応するペイロードを「監視」または処理しているため、フローの状態は と表示されます Watch。FTP および RTSP ALG フローの場合、制御接続は常に Watch フローです。

  2. ALGエラーを確認するにはどうすればよいですか?

    • 次のコマンドを発行すると、エラーをチェックできます。各 ALG には、ALG パケット エラー用の個別のフィールドがあります。

システム ログ メッセージ

システム ログの生成を有効にし、システム ログを確認することも、ALG フロー分析に役立ちます。ここでは、次の内容について説明します。

システムログ設定

Junos OS CLI では、さまざまなレベルでシステム ログ メッセージの有効化を設定できます。次の構成例に示すように、レベルの選択は、イベント ログをどの程度具体的にするか、および含めるオプションによって異なります。設定オプションの詳細については、 ルーティングデバイス用 Junos OS 運用管理ライブラリ (システムレベル)または ルーティングデバイス用 Junos OS サービスインターフェイスライブラリ (その他のすべてのレベル)を参照してください。

  1. 最上位のグローバルレベル:

  2. サービス セット レベル:

  3. サービス・ルール・レベルでは、以下のようにします。

システムログ出力

システム ログ メッセージは、次の例に示すように、フローの作成時に生成されます。

次のシステム ログ メッセージは、ASP が受け入れ規則に一致したことを示します。

システムログメッセージの完全なリストについては、 システムログエクスプローラを参照してください。