このページで
SIP ALG
概要 セッション開始プロトコル(SIP)は、インターネット上のマルチメディア セッションを開始、変更、終了するためのシグナリング プロトコルです。SIPは、シングルメディアおよびマルチメディアセッションをサポートします。
SIP ALG について
SIP(セッション開始プロトコル)は、インターネット上のマルチメディア セッションを開始、変更、終了するための IETF(インターネット技術タスク フォース)標準プロトコルです。このようなセッションには、ネットワーク環境におけるインスタント メッセージングやアプリケーション レベルのモビリティーなどの機能を備えた会議、電話、マルチメディアが含まれる場合があります。
Junos OS は、設定したポリシーに基づいて SIP をサービスとして許可および拒否します。SIP は Junos OS で事前定義されたサービスであり、宛先ポートとしてポート 5060 を使用します。
SIP の機能の 1 つはセッション記述情報を配布することです, セッション中に, ネゴシエートし、セッションのパラメーターを変更します。.SIP はまたマルチメディア セッションを終了し、コール確立に信号を送り、障害表示を提供し、エンドポイント登録のための方法を提供するのに使用されます。
セッションの説明情報は、INVITEおよび200-OKメッセージまたは200-OKおよびCKメッセージに含まれ、セッションのマルチメディアタイプを示します。例えば、それが音声かビデオかを問わず。SIP はセッションを記述するために異なる説明プロトコルを使用できますが、ジュニパーネットワークス SIP アプリケーション層ゲートウェイ(ALG)はセッション記述プロトコル(SDP)のみをサポートします。
SDP は、システムがマルチメディア セッションへの参加に使用できる情報を提供します。SDPには、IPアドレス、ポート番号、時間、日付などの情報が含まれる場合があります。SDPヘッダーのIPアドレスとポート番号(それぞれc=とm=フィールド)は、クライアントがメディアストリームを受信したいアドレスとポートであり、SIPリクエストの発信元のIPアドレスとポート番号ではないことに注意してください(ただし、これらは同じことができます)。
SIP メッセージは、クライアントからサーバーへの要求、およびセッションの確立(または呼び出し)を目的としたサーバーからクライアントへの要求への応答で構成されます。ユーザー エージェント(UA)は、呼び出しのエンドポイントで実行されるアプリケーションであり、2 つの部分で構成されています。
ユーザーエージェントクライアント(UAC)は、ユーザーに代わってSIP要求を送信します。
ユーザーエージェントサーバー(UAS)は、応答をリッスンし、到着したときにユーザーに通知します
UAC と UAS は、ネゴシエーションで特定のエージェントが果たす役割に関連して定義されます。
EAの例として、SIPプロキシサーバーと電話があります。
このトピックには、以下のセクションが含まれています。
SIP ALG 動作
SIP トラフィックには、シグナリングとメディア ストリームの 2 種類があります。SIP シグナリング トラフィックは、クライアントとサーバー間の要求および応答メッセージで構成され、UDP や TCP などのトランスポート プロトコルを使用します。メディアストリームは、トランスポートプロトコルを使用してデータ(オーディオデータなど)を伝送します。
Junos OS リリース 12.3X48-D25 および Junos OS リリース 17.3R1 以降、SIP ALG は TCP をサポートしています。SIP ALG を介した TCP サポートにより、頻繁にサーバーを再登録または更新する必要がなくなるため、サーバーへのトラフィックが減少します。
デフォルトでは、Junos OSはポート5060でSIPシグナリングメッセージをサポートしています。SIP サービスを許可するポリシーを作成してポートを設定し、他のタイプのトラフィックと同様にトラフィックをシグナリングして許可または拒否する SIP をソフトウェア フィルタします。ただし、メディア ストリームでは、動的に割り当てられたポート番号を使用します。このポート番号は、通話中に何度も変更される可能性があります。固定ポートがない場合、メディアトラフィックを制御する静的ポリシーを作成するのは安全ではありません。この場合、デバイスは SIP ALG を呼び出します。メディアセッションに使用されるデバイストランスポートポートは、事前に知られていません。ただし、SIP ネゴシエーションに使用されるポートは、よく知られています(または事前に定義されています)。ALG は、制御セッションからのパケットに関心を登録し、他のパケットと容易に区別でき、メディア セッションに使用されるトランスポート情報(IP アドレスとポートの両方)のネゴシエーションを検査します。
SIP ALG は、一致する IP、ポート、トランスポート アドレス、プロトコルを決定するとピンホールを作成します。この情報は、ピンホールを開いたときに知られているあらゆる情報で識別されます。
SIP ALG は SIP トランザクションを監視し、これらのトランザクションから抽出する情報に基づいてピンホールを動的に作成および管理します。ジュニパーネットワークスの SIP ALG は、すべての SIP 方式と応答をサポートしています。SIP サービスを許可する静的ポリシーを作成することで、SIP トランザクションがジュニパーネットワークス ファイアウォールを通過することを許可できます。ポリシーが SIP トラフィックを検査するように設定されている場合(または、より適切に、ポリシーが検査のために SIP ALG にトラフィックを送信する場合)、許可されたアクションはトラフィックを許可するか(適切なピンホールが開かれる場合)、トラフィックを拒否することです。
SIP ALG は、SDP を含む SIP メッセージを傍受し、パーサーを使用してピンホールを作成するために必要な情報を抽出します。SIP ALG はパケットの SDP 部分を調べ、パーザが IP アドレスやポート番号などの情報を抽出し、SIP ALG がピンホール テーブルに記録します。SIP ALG は、ピンホール テーブルに記録された IP アドレスとポート番号を使用してピンホールを開き、メディア ストリームがデバイスを通過できるようにします。
デバイスがNATを実行している場合、UAが採用するトランスポートアドレスは正しくありません。SIP ALG は、ネットワーク アドレスを変換するデバイスによって割り当てられた変換されたポートとアドレスに基づいてトランスポート アドレスを変更します。SDPが暗号化されると、デバイスはメッセージの内容を抽出または変更できないため、トランスポートアドレスを修正できません。回避策を提供するために、STUNプロトコルが導入されました(NATデバイスに何らかのコーンNATを行う必要があります)。これにより、クライアントは変換されたアドレスを決定し、新しく発見されたアドレスをSDPメッセージで使用できます。
NEC SIP製品は条件付きでサポートされています。
SDP セッションの説明
SDP セッションの説明は、マルチメディア セッションを検出して参加するのに十分な情報を伝達するための、適切に定義された形式です。セッションは、1行に1つずつ、一連の属性/値ペアで記述されます。属性名は 1 文字、続いて =、 値です。オプション値は=*で指定します。値は、ASCII文字列、またはスペースで区切られた特定のタイプのシーケンスのいずれかです。属性名は、セッション、時間、メディア内など、関連する構文構成要素内でのみ一意です。
SDPセッションの説明では、メディアレベル情報はm=フィールドで始まります。
SDP の説明の多くのフィールドのうち、2 つがトランスポート レイヤー情報を含んでいるため、SIP ALG に特に有用です。
c=
接続情報用このフィールドは、セッションレベルまたはメディアレベルで表示できます。次の形式で表示されます。
c=<network-type><アドレスタイプ><connection-address>
Junos OSは、ネットワークタイプとして「IN」(インターネット用)、アドレスタイプとして「IPv4」、宛先(接続)IPアドレスとしてユニキャストIPアドレスまたはドメイン名のみをサポートします。Junos OS リリース 15.1X49-D40 および Junos OS リリース 17.3R1 以降では、「IPv6」アドレス タイプもサポートされています。
宛先IPアドレスがユニキャストIPアドレスである場合、SIP ALGは、メディア記述フィールドm=で指定されたIPアドレスとポート番号を使用してピンホールを作成します。
m=
メディア発表用このフィールドはメディアレベルで表示され、メディアの説明が含まれます。次の形式で表示されます。
m=<media><port><トランスポート><fmtリスト>
現在、Junos OS はアプリケーション レイヤー トランスポート プロトコルとして「RTP」をサポートしています。ポート番号は、メディア ストリームの宛先ポートを示します(送信元はリモート UA によって割り当てられます)。フォーマットリスト(fmtリスト)は、メディアが使用するアプリケーション層プロトコルに関する情報を提供します。
ソフトウェアは、RTP および RTCP(リアルタイム制御プロトコル)のポートのみを開きます。RTP セッションごとに、対応する RTCP セッションがあります。そのため、メディア ストリームが RTP を使用するたびに、SIP ALG は RTP および RTCP トラフィックの両方のポートを予約する(ピンホールを作成する)必要があります。デフォルトでは、RTCP のポート番号は RTP ポート番号よりも 1 高くなります。
ピンホールの作成
各ピンホール(RTP トラフィック用と RTCP トラフィック用のピンホール)は、同じ宛先 IP アドレスを共有します。IPアドレスは、SDPセッション記述のc=フィールドから取得されます。c= フィールドは、セッションレベルまたは SDP セッション記述のメディアレベル部分のいずれかに表示されるため、パーザは以下のルール(SDP 規則に従って)に基づいて IP アドレスを決定します。
まず、SIP ALG パーサーは、メディア レベルで IP アドレスを含む c= フィールドを探します。このようなフィールドがある場合、パーサーはその IP アドレスを抽出し、SIP ALG はそのアドレスを使用してメディアのピンホールを作成します。
メディア レベルに c= フィールドがない場合、SIP ALG パーサーはセッション レベルの c= フィールドから IP アドレスを抽出し、SIP ALG はその IP アドレスを使用してメディアのピンホールを作成します。どちらのレベルでもセッション記述にc=フィールドが含まれていない場合、これはプロトコルスタックのエラーを示し、デバイスはパケットをドロップしてイベントをログに記録します。
SIP ALG は、信号トラフィックのピンホールも開きます。これらの信号ピンホールは、前の信号セッションのタイムアウト後に便利です。また、以前の信号セッションと一致しないサードパーティのアドレスに送信される信号トラフィックにも役立ちます。SIP ALG 信号のピンホールは、宛先 IP と宛先ポートのみが指定されている RTP や RTCP ピンホールとは異なり、エージング アウトすることはありません。
SIP ALG は、必要に応じて、以下のヘッダーの信号ピンホールを開きます。
を介して
連絡先
ルート
記録ルート
SIP ALG はピンホールを作成するために次の情報を必要とします。この情報は、SDPセッションの説明またはSIPヘッダー(上記の通り)から得られます。
プロトコル — UDP または TCP。
ソース IP—不明。
送信元ポート—不明。
宛先 IP — パーサーは、メディアまたはセッション・レベルの c= フィールドから宛先 IP アドレスを抽出します。
宛先ポート-パーサーは、メディア レベルの m= フィールドから RTP の宛先ポート番号を抽出し、以下の式を使用して RTCP の宛先ポート番号を計算します。
RTP ポート番号 + 1
ライフタイム—この値は、ピンホールが開いてパケットを通過できる時間(秒単位)を示します。パケットは、ライフタイムの期限が切れる前にピンホールを通過する必要があります。ライフタイムが終了すると、SIP ALG はピンホールを削除します。
パケットがライフタイム期間内にピンホールを通過すると、すぐに SIP ALG はパケットが来る方向のピンホールを削除します。
図 1 は、 2 つの SIP クライアント間のコール設定と、SIP ALG が RTP および RTCP トラフィックを許可するピンホールを作成する方法を示しています。図は、デバイスが SIP を許可するポリシーを持っていることを前提としているため、SIP シグナリング メッセージ用のポート 5060 を開きます。
図 1:SIP ALG コール設定
宛先 IP アドレスが 0.0.0.0 である場合、SIP ALG は、セッションが保留されていることを示す RTP および RTCP トラフィックのピンホールを作成しません。たとえば、電話通信中にセッションを保留にするには、クライアント A が宛先 IP アドレスが 0.0.0.0 である SIP メッセージをクライアント B に送信します。そうすることで、クライアント B に、さらに通知するまでメディアを送信しないことを示します。クライアント B がメディアを送信すると、デバイスはパケットをドロップします。
- SIP ALG の IPv6 サポートについて
- UDP ベースの SIP ALG のビジーランプ フィールド サポートのスケーリングの理解
- SIP ALG 要求方法の理解
- SIP ALG 設定の概要
- SIP ALG DoS 攻撃防御について
- SIP ALG 不明メッセージ タイプの理解
- SIP ALG コールの所要時間とタイムアウトについて
SIP ALG の IPv6 サポートについて
IPv6 は、NAT-PT モードおよび NAT64 アドレス変換とともに SIP ALG でサポートされています。
SIP ALG は、NAT が設定されている場合にペイロードを更新するための IPv4 アドレスを処理するのと同じ方法で IPv6 アドレスを処理し、将来のトラフィックにピンホールを開きます。
以下の形式では、特殊処理が行われます。
IPv6 in SIP URIs—SIP URI は、IPv4 アドレスを持つ URI と同じように見えます。すべてのURIと同様に、IPv6アドレスは角括弧で囲まれています。IPv6 アドレス ブロックは、コロンで区切られています。多くの表記では、コロンはホスト名またはIPアドレスをプロトコルポートから分離します。完全な IPv6 アドレスを解析し、ポートを分離するには、アドレスが角括弧内にカプセル化されます。
IPv6 in SDPセッション記述プロトコル(SDP)の IPv6 アドレスには、IP6 マーカーがあります。
IPv6をサポートするSIP ALGには、以下の制限があります。
永続的 NAT を持つ NAT64 が実装されている場合、NAT が AOR(記録のアドレス)に設定されている場合、SIP ALG は永続的 NAT バインディング テーブルに NAT 変換を追加します。永続的NATは設定されたアドレスを複製できないため、同じアドレスに設定されたNAT66とNAT64の共存はサポートされません。
同じ送信元 IP アドレスに対して作成されるバインディングは 1 つだけです。
UDP ベースの SIP ALG のビジーランプ フィールド サポートのスケーリングの理解
ビジー状態のランプ フィールド(BLF)は、同じプライベート ブランチ交換(PBX)に接続された別の拡張機能がビジー状態かどうかを示す IP 電話のライトです。Web インターフェイスを使用して BLF を手動で設定できます。BLF が構成されると、電話は IP PBX で使用可能なリソースリストにサブスクライブし、他の拡張機能のステータス情報を通知します。BLF は、SIP(セッション開始プロトコル)を介して動作し、SUBSCRIBE メッセージと通知メッセージを使用します。通常、電話は加入者であり、IP PBX は通知機能です。
電話が IP PBX に登録されると、IP PBX はリソースリストの状態を電話に通知します。たとえば、リソースリストが巨大な場合、NOTIFYメッセージの本文も巨大になります。SIP ALG は 3000 バイトの SIP メッセージのみをサポートしているため、巨大な通知メッセージをバイパスします。メッセージ本文に BLF のインスタンスが多すぎると、ペイロードは変更されず、ゲートは開かなくなります。
Junos OS リリース 12.3X48-D15 および Junos OS リリース 17.3R1 以降、SIP ALG は UDP プロトコルで 65,000 バイトの SIP メッセージをサポートします。BLF アプリケーションのスケーリングでは、すべてのインスタンスが約 500 バイトの場合、SIP ALG は 1 つの SIP UDP メッセージで 100 インスタンスをサポートします。
UDP ベースの SIP ALG の BLF サポートには、以下の機能が含まれています。
デバイスは、65,000 バイトの SIP メッセージを送受信できます。
SIP ALG は、65,000 バイトの SIP メッセージを解析し、必要に応じてピンホールを開くことができます。
SIP ALG は、NAT が設定され、ペイロードが変更された場合、新しいジャンボ SIP メッセージを再生します。
SIP ALG 要求方法の理解
セッション開始プロトコル(SIP)トランザクション モデルには、要求および応答メッセージの数が含まれており、それぞれにメッセージの目的を method 示すフィールドが含まれています。
Junos OS は、以下のメソッド タイプと応答コードをサポートしています。
INVITE — ユーザーが INVITE リクエストを送信して、別のユーザーにセッションへの参加を招待します。INVITE リクエストの本文には、セッションの説明を含めることができます。
ACK — INVITE の発信元のユーザーが ACK リクエストを送信して、INVITE リクエストに対する最終応答の受信を確認します。元の INVITE 要求にセッション記述が含まれていない場合、ACK 要求に含める必要があります。
オプション—ユーザーエージェント(UA)は、SIPプロキシの機能に関する情報を取得します。サーバーは、サポートするメソッド、セッション記述プロトコル、およびメッセージエンコーディングに関する情報を返します。
BYE — ユーザーが BYE リクエストを送信してセッションを放棄します。いずれかのユーザーからの BYE リクエストが自動的にセッションを終了します。
CANCEL — ユーザーが CANCEL リクエストを送信して、保留中の INVITE リクエストをキャンセルします。INVITE を処理する SIP サーバーが、キャンセルを受信する前に INVITE の最終応答を送信した場合、キャンセル要求は有効ではありません。
REGISTER —ユーザーが REGISTER リクエストを SIP レジストラ サーバーに送信して、ユーザーの現在の場所を通知します。SIPレジストラサーバーは、登録要求で受信したすべての情報を記録し、この情報をユーザーの探索を試みるすべてのSIPサーバーで利用可能にします。
情報 — 通話のシグナリング パスに沿って中間セッション シグナリング情報を通信するために使用されます。
購読 — リモート ノードから現在の状態と状態の更新を要求するために使用されます。
通知 — 加入者がサブスクリプションを持っている状態の変化を加入者に通知するために送信されます。
参照 — 要求で提供された連絡先情報によって第三者に受信者(Request-URI で識別される)を参照するために使用されます。
例えば、プライベートネットワーク内のユーザーAがパブリックネットワーク内のユーザーBを、プライベートネットワークに存在するユーザーCを指す場合、SIPアプリケーション層ゲートウェイ(ALG)はユーザーCに新しいIPアドレスとポート番号を割り当て、ユーザーCをユーザーBから接続できるようにします。しかし、ユーザーCがレジストラに登録されている場合、そのポートマッピングはALGネットワークアドレス変換(NAT)テーブルに保存され、変換を実行するために再利用されます。
更新—新しいまたは更新されたSDP情報のピンホールを開くために使用されます。Via:、From:、To:、Call-ID:、Contact:、Route:、Record-Route: ヘッダー フィールドが変更されます。
1xx、202、2xx、3xx、4xx、5xx、6xx 応答コード — トランザクションのステータスを示すために使用されます。ヘッダー フィールドが変更されます。
SIP ALG 設定の概要
SRXデバイスでは、セッション開始プロトコルのアプリケーション層ゲートウェイ(SIP ALG)はデフォルトで無効になっています。必要に応じてCLIを使用して有効にする必要があります。他のデバイスでは、デフォルトで有効になっています。SIP ALG 操作を微調整するには、次の手順に従います。
SIP コール アクティビティを制御します。手順については、 例: SIP ALG 呼び出し時間とタイムアウトの設定を参照してください。
サービス拒否(DoS)フラッド攻撃から SIP プロキシ サーバーを保護します。手順については、 例: SIP ALG DoS攻撃防御の設定を参照してください。
セッションがネットワークアドレス変換(NAT)モードとルートモードのときに、未知のメッセージが通過できるようにします。手順については、 例: 未知の SIP ALG メッセージ タイプを許可するを参照してください。
独自の SIP コール フローに対応します。手順については、 SIP ALG 保留リソースの保持(CLI 手順)を参照してください。
SIP ALG DoS 攻撃防御について
呼び出しを処理するセッション開始プロトコル (SIP) プロキシ サーバーの機能は、繰り返し SIP INVITE 要求(最初に拒否された要求)によって影響を受ける可能性があります。サービス拒否(DoS)保護機能により、INVITEリクエストとプロキシサーバーからの返信を監視するようにデバイスを設定できます。実際の障害応答ではない401、407xx、487、および488以外の3xx, 4または5xxの応答コードが応答に含まれている場合、リクエストはブロックしないでください。SIP ALG と NAT についてを参照してください。ALG は、要求の送信元 IP アドレスとプロキシ サーバーの IP アドレスをテーブルに格納します。その後、デバイスはこのテーブルに対してすべての INVITE リクエストをチェックし、設定可能な秒数(デフォルトは 3)のために、テーブル内のエントリーに一致するパケットを破棄します。デバイスを設定して、すべてのプロキシサーバーに対する繰り返しの INVITE リクエストを監視および拒否するか、宛先IPアドレスを指定することで特定のプロキシサーバーを保護できます。SIP 攻撃防御はグローバルに設定されています。
SIP ALG 不明メッセージ タイプの理解
この機能により、識別されていない SIP(セッション開始プロトコル)メッセージをデバイスで処理する方法を指定できます。デフォルトでは、不明(サポートされていない)メッセージをドロップします。
セキュリティを侵害する可能性があるため、未知のメッセージを許可することは推奨しません。ただし、セキュアなテスト環境や実稼働環境では、このコマンドは、異なるベンダーの機器との相互運用性の問題を解決するのに役立ちます。未知のSIPメッセージを許可すると、ネットワークが動作し、後でボイスオーバーIP(VoIP)トラフィックを分析して、一部のメッセージがドロップされた理由を判断することができます。不明な SIP メッセージ タイプ機能により、ネットワーク アドレス変換(NAT)モードとルート モードの両方で、不明なメッセージ タイプを含む SIP トラフィックを受け入れるデバイスを設定できます。
このオプションは、サポートされている VoIP パケットとして識別された受信パケットにのみ適用されます。パケットを識別できない場合、常にドロップされます。パケットがサポートされているプロトコルとして識別され、不明なメッセージタイプを許可するようにデバイスを設定している場合、メッセージは処理されずに転送されます。
SIP ALG コールの所要時間とタイムアウトについて
通話時間とタイムアウト機能は、セッション開始プロトコル(SIP)コールアクティビティを制御し、ネットワークリソースを管理するのに役立ちます。
通常、クライアントの 1 つが BYE または CANCEL 要求を送信すると、呼び出しが終了します。SIP アプリケーション層ゲートウェイ(ALG)は BYE または CANCEL 要求を傍受し、そのコールのすべてのメディア セッションを削除します。通話中のクライアントが、電源障害などの BYE または CANCEL 要求を送信できない理由や問題が考えられます。この場合、通話が無期限に続き、デバイス上のリソースを消費することがあります。
通話に 1 つ以上の音声チャネルを設定できます。各音声チャネルには、2 つのセッション(または 2 つのメディア ストリーム)があり、1 つはリアルタイム トランスポート プロトコル(RTP)トラフィック用、もう 1 つは RTCP(リアルタイム制御プロトコル)シグナリング用です。セッションを管理する場合、デバイスは各音声チャネルのセッションを 1 つのグループとみなします。タイムアウトと通話時間の設定は、各セッションではなくグループに適用されます。
以下のパラメーターは、SIP 呼び出しアクティビティを制御します。
inactive-media-timeout
—このパラメータは、グループ内のメディア(RTP または RTCP)トラフィックなしでコールがアクティブの状態を維持できる最大時間(秒単位)を示します。RTP または RTCP パケットがコール内で発生するたびに、このタイムアウトはリセットされます。非アクティブ期間がこの設定を超えると、SIP ALG がメディア用にオープンしたファイアウォールの一時的な開口部(ピンホール)が閉じられます。デフォルト設定は120秒で、範囲は10~2550秒です。タイムアウト時に、メディアのリソース(セッションとピンホール)が削除され、このコールのすべてのメディア リソースが削除された場合、デバイス上の SIP コールも終了されることに注意してください。maximum-call-duration
—このパラメーターは、呼び出しの絶対最大長を設定します。コールがこのパラメータ設定を超えると、SIP ALG はコールを破棄し、メディア セッションを解放します。デフォルト設定は 720 分で、範囲は 3~720 分です。t1-interval
—このパラメーターは、エンドポイント間のトランザクションの往復時間見積もりを秒単位で指定します。デフォルトは500ミリ秒です。多くの SIP タイマーは t1 間隔(RFC 3261 で説明されているように)で拡張されるため、t1 間隔タイマーの値を変更すると、これらの SIP タイマーも調整されます。t4-interval
—このパラメーターは、メッセージがネットワークに残る最大時間を指定します。デフォルトは5秒で、範囲は5~10秒です。多くの SIP タイマーは t4 間隔(RFC 3261 に記載されているように)で拡張されるため、t4 間隔タイマーの値を変更すると、これらの SIP タイマーも調整されます。c-timeout
—このパラメーターはプロキシでの INVITE トランザクションのタイムアウトを分で指定します。デフォルトは3です。SIP ALG は中央にあるため、INVITE トランザクション タイマー値 B((64 * T1)= 32 秒)を使用する代わりに、SIP ALG はプロキシからタイマー値を取得します。
SIP ALG 保留リソースの理解
ユーザーが通話を保留にすると、SIP ALG(Session Initiation Protocol Application Layer Gateway)は、ピンホールや変換コンテキストなどのSDP(セッション記述プロトコル)メディアリソースを解放します。ユーザーがコールを再開すると、INVITE リクエスト メッセージが新しい SDP オファーと応答をネゴシエートし、SIP ALG がメディア ストリームのリソースを再割り当てします。これにより、メディア記述が前の説明と同じ場合でも、メディア記述の新しい変換された IP アドレスとポート番号が発生する可能性があります。これは、 RFC 3264 An Offer/Answer Model with the Session Description Protocol(SDP)に準拠しています。
一部の独自の SIP 実装では、ユーザー エージェント(UA)モジュールが新しい SDP INVITE オファーを無視し、以前のネゴシエーションの SDP オファーを引き続き使用できるように、コール フローを設計しています。この機能に対応するには、コールが保留されている場合にSDPメディアリソースを保持するようにデバイスを設定し、コール再開時に再利用する必要があります。
SIP ALG 保留リソースの保持(CLI 手順)
独自の SIP コール フローに対応するには、
user@host# set security alg sip retain-hold-resource
SIP ALG と NAT について
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:, and Call-ID:」フィールドをコール テーブルと比較し、メッセージの呼び出しコンテキストを識別します。既存のコールと一致する新しい INVITE メッセージが到着すると、ALG は新しい INVITE メッセージを REINVITE として処理します。
SDP情報を含むメッセージが到着すると、ALGはポートを割り当て、SDPのポートとの間にNATマッピングを作成します。SDPは、リアルタイムトランスポートプロトコル(RTP)およびリアルタイム制御プロトコル(RTCP)チャネルに順次ポートを必要とするため、ALGは連続する偶数奇数のポートを提供します。ポートのペアを見つけることができない場合、SIP メッセージを破棄します。
IPv6 は、NAT-PT モードおよび NAT64 アドレス変換とともに SIP ALG でサポートされています。
このトピックには、以下のセクションが含まれています。
- 発信コール
- 着信コール
- 転送コール
- 通話の終了
- 再招待メッセージを呼び出す
- セッションタイマーの呼び出し
- 通話のキャンセル
- フォーク
- SIP メッセージ
- SIP ヘッダー
- SIP ボディ
- SIP NAT シナリオ
- SIP 応答のクラス
- SIP IPv6 ALG の NAT モード(NAT66 ピュア IPv6 モード)
- NAT-PT
- NAT64
- STUN および SIP ALG
発信コール
内部から外部ネットワークへの SIP 要求メッセージで SIP コールが開始されると、NAT は SDP の IP アドレスとポート番号を置き換え、IP アドレスとポート番号をジュニパーネットワークス ファイアウォールにバインドします。経由で、連絡先、ルート、およびレコード ルート SIP ヘッダー フィールドが存在する場合は、ファイアウォール IP アドレスにバインドされます。ALG は、再送信や SIP 応答メッセージに使用するために、これらのマッピングを保存します。
次に、SIP ALG はファイアウォールのピンホールを開き、SDP と Via、Contact、Record-Route ヘッダー フィールドの情報に基づいてネゴシエートされた動的に割り当てられたポート上のデバイスを介してメディアを許可します。ピンホールにより、受信パケットが連絡先、経由、および記録ルート IP アドレスとポートに到達することもできます。リターン トラフィックを処理する際、ALG は元の Contact、Via、Route、Record-Route SIP フィールドをパケットに挿入します。
着信コール
受信コールは、パブリック ネットワークからパブリック静的 NAT アドレスまたはデバイス上のインターフェイス IP アドレスに開始されます。静的NETは、内部ホストを指す静的設定されたIPアドレスです。インターフェイスIPアドレスは、内部ホストからSIPレジストラに送信された REGISTER メッセージを監視する際に、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 は古いピンホールを削除し、メディアが通過できるように新しいピンホールを作成します。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 は 200 OK の送信時間を 5 秒間遅延させます。
再招待メッセージを呼び出す
再招待メッセージを受信すると、通話に新しいメディア セッションが追加され、既存のメディア セッションが削除されます。コールに新しいメディア セッションが追加されると、ファイアウォールに新しいピンホールが開かれ、新しいアドレス バインディングが作成されます。プロセスは元のコール設定と同じです。通話からすべてのメディア セッションまたはメディア ピンホールが削除されると、BYE メッセージを受信したときにコールが削除されます。
セッションタイマーの呼び出し
注意事項として、SIP ALG はハード タイムアウト値を使用して、コールが存在できる最大時間を設定します。これにより、以下のいずれかのイベントが発生した場合にデバイスが保護されます。
通話中にエンド システムがクラッシュし、BYE メッセージが受信されない。
悪意のあるユーザーは、SIP ALG を攻撃しようとして決して BYE を送信しません。
SIP プロキシの実装が不十分な場合は、Record-Route の処理に失敗し、BYE メッセージを送信することはありません。
ネットワーク障害により BYE メッセージが受信されません。
通話のキャンセル
いずれかの当事者は、CANCEL メッセージを送信して通話をキャンセルできます。キャンセル メッセージを受信すると、SIP ALG はファイアウォール内のピンホールを閉じ(開いている場合)、アドレス バインディングを解放します。リソースを解放する前に、ALGは制御チャネルのエージングアウトを約5秒間遅らせ、最後の200 OKが通過するまでの時間を許します。487応答または200以外の応答が到着しても、5秒のタイムアウトが終了すると、呼び出しは終了します。
フォーク
フォークは、SIP プロキシが複数の宛先に同時に 1 つの INVITE メッセージを送信することを可能にします。複数の 200 OK 応答メッセージが単一コールのために到着すると、SIP ALG は解析しますが、受信した最初の 200 OK メッセージでコール情報を更新します。
SIP メッセージ
SIP メッセージ形式は、SIP ヘッダー セクションと SIP 本体で構成されています。リクエストメッセージでは、ヘッダーセクションの1行目はリクエスト行で、これにはメソッドタイプ、リクエスト URI、プロトコルバージョンが含まれます。応答メッセージでは、1行目はステータスコードを含むステータス行です。SIP ヘッダーには、シグナリングに使用される IP アドレスとポート番号が含まれています。ヘッダーセクションから空白行で分離されたSIP本文は、セッション説明情報用に予約されており、これはオプションです。Junos OSは現在、SDPのみをサポートしています。SIP 本体には、メディアのトランスポートに使用する IP アドレスとポート番号が含まれています。
SIP ヘッダー
以下のサンプル SIP 要求メッセージでは、NAT はヘッダー フィールドの IP アドレスを置き換えて、外部ネットワークから非表示にします。
INVITE bob@10.150.20.5
SIP/2.0 Via: SIP/2.0/UDP10.150.20.3
:5434 From: alice@10.150.20.3
To: bob@10.150.20.5
Call-ID: a12abcde@10.150.20.3
Contact: alice@10.150.20.3
:5434 Route: <sip:netscreen@10.150.20.3
:5060> Record-Route: <sip:netscreen@10.150.20.3
:5060>
IP アドレス変換の実行方法は、メッセージのタイプと方向によって異なります。メッセージは、以下のいずれかです。
インバウンド要求
アウトバウンド応答
アウトバウンド要求
インバウンド応答
表 1 は、これらのケースにおける NAT の実行方法を示しています。いくつかのヘッダー フィールドでは、ALG はメッセージがネットワークの内部と外部のどちらから来ているのかを決定するだけではありません。また、どのクライアントが呼び出しを開始したか、メッセージが要求または応答であるかを決定する必要があります。
インバウンド要求 (パブリックからプライベートへ) |
宛先: |
ドメインをローカル アドレスに置き換える |
差出人: |
なし |
|
Call-ID: |
なし |
|
を介して: |
なし |
|
リクエスト-URI: |
ALG アドレスをローカル アドレスに置き換える |
|
連絡先: |
なし |
|
記録ルート: |
なし |
|
ルート: |
なし |
|
アウトバウンド応答 (プライベートからパブリックまで) |
宛先: |
ALG アドレスをローカル アドレスに置き換える |
差出人: |
なし |
|
Call-ID: |
なし |
|
を介して: |
なし |
|
リクエスト-URI: |
N/a |
|
連絡先: |
ローカル アドレスを ALG アドレスに置き換える |
|
記録ルート: |
ローカル アドレスを ALG アドレスに置き換える |
|
ルート: |
なし |
|
アウトバウンド要求 (プライベートからパブリックまで) |
宛先: |
なし |
差出人: |
ローカル アドレスを ALG アドレスに置き換える |
|
Call-ID: |
なし |
|
を介して: |
ローカル アドレスを ALG アドレスに置き換える |
|
リクエスト-URI: |
なし |
|
連絡先: |
ローカル アドレスを ALG アドレスに置き換える |
|
記録ルート: |
ローカル アドレスを ALG アドレスに置き換える |
|
ルート: |
ローカル アドレスを ALG アドレスに置き換える |
|
アウトバウンド応答 (パブリックからプライベートへ) |
宛先: |
なし |
差出人: |
ALG アドレスをローカル アドレスに置き換える |
|
Call-ID: |
なし |
|
を介して: |
ALG アドレスをローカル アドレスに置き換える |
|
リクエスト-URI: |
N/a |
|
連絡先: |
なし |
|
記録ルート: |
ALG アドレスをローカル アドレスに置き換える |
|
ルート: |
ALG アドレスをローカル アドレスに置き換える |
SIP ボディ
SIP 本体の SDP 情報には、ALG がメディア ストリームのチャネルを作成するために使用する IP アドレスが含まれています。SDP セクションの変換は、メディアを送受信するポート番号もリソースを割り当てます。
サンプル SDP セクションからの以下の抜粋は、リソース割り当てに変換されるフィールドを示しています。
o=user 2344234 55234434 IN IP410.150.20.3
c=IN IP410.150.20.3
m=audio43249
RTP/AVP 0
SIP メッセージには、複数のメディア ストリームを含めることができます。この概念は、複数のファイルを電子メール メッセージに添付するのと同様です。例えば、SIP クライアントから SIP サーバーに送信される INVITE メッセージには、以下のフィールドが含まれている場合があります。
c=IN IP410.123.33.4
m=audio33445
RTP/AVP 0 c=IN IP410.123.33.4
m=audio33447
RTP/AVP 0 c=IN IP410.123.33.4
m=audio33449
RTP/AVP 0
Junos OS は、各方向でネゴシエートされた最大 6 つの SDP チャネルを、呼び出しごとに合計 12 チャネルまでサポートします。詳細については、 SIP ALG についてを参照してください。
SIP NAT シナリオ
図 2 と 図 3 は、SIP コールの INVITE と 200 OK を示しています。 図 2 では、ph1 は SIP INVITE メッセージを ph2 に送信します。ヘッダー フィールドの IP アドレス(太字のフォントで表示)がデバイスによってどのように変換されるかに注意してください。
INVITEメッセージのSDPセクションは、発信者がメディアを受信する意思がある場所を示しています。メディア ピンホールには、RTCP と RTP の 2 つのポート番号 52002 と 52003 が含まれていることに注意してください。Via/Contact Pinhole は SIP シグナリングのためのポート番号 5060 を提供します。
図 3 の 200 OK 応答メッセージでは、INVITE メッセージで実行された翻訳が取り消される方法に従ってください。このメッセージで公開されている IP アドレスは変換されませんが、ゲートは開かれ、メディア ストリームからプライベート ネットワークにアクセスできます。
SIP 応答のクラス
SIP 応答は、SIP トランザクションに関するステータス情報を提供し、応答コードと理由フレーズを含めます。SIP 応答は、次のクラスにグループ化されます。
情報(100~199)— リクエストを受信し、引き続きリクエストを処理します。
成功(200~299)— アクションを正常に受け入れ、理解し、受け入れ。
リダイレクト (300 から 399)— 要求を完了するためにさらにアクションが必要です。
クライアント エラー(400~499)— 要求に不正な構文が含まれているか、このサーバーで満たされていません。
サーバー エラー(500~599)— サーバーが明らかに有効な要求を満たさなかった。
グローバル障害(600~699)—任意のサーバーで要求を満たすことはできません。
表 2 は現在の SIP 応答の完全なリストを提供します。
情報 |
100 件の試用 |
180 リング |
181 コールが転送中 |
182 キュー |
183 セッションの進行状況 |
|
|
成功 |
200 OK |
202 年合格 |
|
リダイレクト |
300 の選択肢 |
301 移転 |
302 一時的な移動 |
305 プロキシを使用する |
380 代替サービス |
|
|
クライアント エラー |
400 悪いリクエスト |
401 未承認 |
402 支払いが必要 |
403 禁断 |
404 見つかりません |
405 方法は許可されません。 |
|
406 受け入れられません。 |
407 プロキシ認証が必要 |
408 リクエストのタイムアウト |
|
409 競合 |
410 ゴーン |
411 必要な長さ |
|
413 リクエストエンティティが大きすぎる |
414 リクエストURLが大きすぎる |
415 非対応メディア タイプ |
|
420 拡張子が悪い |
480 一時的に利用できない |
481 コール レッグ/トランザクションが存在しない |
|
482ループ検知 |
483 ホップが多すぎる |
484 不完全なアドレス |
|
485 不明瞭 |
486 ここで忙しい |
487 リクエストのキャンセル |
|
488 ここでは受け入れられません。 |
|
|
|
サーバー エラー |
500 サーバー内部エラー |
501 未実装 |
502 Bad Gateway |
502 サービス利用不可 |
504 ゲートウェイのタイムアウト |
505 SIP バージョンはサポートされていません |
|
グローバルな障害 |
600 どこでも忙しい |
603 減少 |
604 どこにも存在しない |
606 受け入れられません。 |
|
|
SIP IPv6 ALG の NAT モード(NAT66 ピュア IPv6 モード)
SIP IPv6 ALG は、NAT44 と同様に NAT66 をサポートします。NAT66(IPv6 NAT)は、NAT44(IPv4 NAT)と同様にソース NAT と静的 NAT 機能を提供します。
NAT-PT
ネットワークアドレス変換プロトコル変換(NAT-PT)(RFC 2766)は、IPv4およびIPv6データグラムのプロトコル非依存変換を通じて、IPv6専用ノードとIPv4専用ノード間の通信を可能にするプロトコル変換メカニズムであり、セッションの状態情報を必要としません。
NAT-PT は、IPv6 アドレスから IPv4 アドレスへの通常の NAT で実装され、その逆も同様です。SIP ALG は、通常の NAT でアドレスが処理されるのと同じように、ペイロード内のアドレス変換を処理します。
NAT-PTは、IPv6ネットワーク内のアドレスをIPv4ネットワーク内のアドレスとバインドし、その逆もまた、アドレスレルム間を通過するデータグラムに透過的なルーティングを提供します。
NAT-PT の主な利点は、エンド デバイスとネットワークで IPv4 アドレスまたは IPv6 アドレスのいずれかを実行でき、トラフィックを任意の側から開始できることです。
NAT64
NAT64 は、IPv6 ホストが IPv4 サーバーと通信できるようにするメカニズムです。IPv6 から IPv4 へのアドレス マッピングを維持するには、NAT64 が必要です。このようなアドレスマッピングは、システム管理者によって静的に設定されるか(ステートレス変換)、または頻繁に、IPv6ネットワークからの最初のパケットが変換されるNAT64に到達したときに自動的に作成されます(ステートフル)。
NAT64は、永続的NATを使用してデバイスに実装されます。最初の SIP 要求メッセージ(最初のパケットは IPv6 からのみである)が DUT を横向きにした場合、アドレス バインディングが作成され、パケットは両方向に流れます。
NAT64メカニズムは、IPv6パケットをIPv4パケットに変換し、その逆も可能にします。これにより、IPv6クライアントはユニキャストUDP、TCP、またはICMPを使用してIPv4サーバーに接続できます。NAT-PT と NAT64 の動作は似ていますが、これらのメカニズムは異なる方法で実装されています。
永続的NATを持つNAT64が実装されている場合、NATがレコードのアドレスに設定されている場合、IPv6をサポートするSIP ALGはNAT変換を永続的NATバインディングテーブルに追加します。永続的NATは設定されたアドレスを複製できないため、同じアドレスに設定されたNAT66とNAT64の共存はサポートされません。
同じ送信元 IP アドレスに対して作成されるバインディングは 1 つだけです。
STUN および SIP ALG
STUN(セッショントラバーサルユーティリティ)は、NATとファイアウォールを介してVoIPを動作させるソリューションです。
以前はSTUNはSIP ALGなしで動作していました。これは、永続的 NAT が設定されている場合、SIP ALG が関与しなかったことを意味します。
永続的 NAT が設定されている場合、STUN と SIP ALG と SIP ALG が共存できます。
SIPレジストラとNATを使用した受信SIP ALGコールサポートについて
セッション開始プロトコル(SIP)登録は、SIP プロキシとロケーション サーバーがユーザーがアクセスしたい場所または場所を識別できる検出機能を提供します。ユーザーは、レジストラに REGISTER メッセージを送信して、1 つ以上の連絡先の場所を登録します。REGISTER メッセージの [宛先] フィールドと [連絡先] フィールドには、レコードのアドレス一様リソース識別子(URI)と 1 つ以上の連絡先 URI が含まれています( 図 4 を参照)。登録は、アドレスのレコードを連絡先アドレスまたはアドレスに関連付けるバインディングをロケーション サービスに作成します。
デバイスは、送信 REGISTER メッセージを監視し、これらのアドレスに対して NAT(ネットワーク アドレス変換)を実行し、その情報を受信 NAT テーブルに保存します。次に、ネットワーク外から INVITE メッセージを受信すると、デバイスは受信 NAT テーブルを使用して、INVITE メッセージをルーティングする内部ホストを識別します。SIP プロキシ登録サービスを活用して、デバイスのエグレス インターフェイス上でインターフェイス ソース NAT または NAT プールを設定することで、着信コールを許可できます。インターフェイスソースNATは、小規模オフィスでの着信コールを処理するのに適していますが、大規模なネットワークやエンタープライズ環境向けにソースNATプールを設定することをお勧めします。
インターフェイスソースNATまたはソースNATプールを使用した着信コールサポートは、SIPおよびH.323サービスでのみサポートされています。受信コールの場合、Junos OS は現在 UDP と TCP のみをサポートしています。ドメイン名解決も現在サポートされていません。そのため、URI には IP アドレスが含まれている必要があります( 図 4 を参照)。
例:SIP ALG 呼び出し時間とタイムアウトの設定
この例では、通話時間とメディア非アクティブタイムアウトを設定する方法を示しています。
要件
開始する前に、SIP コール アクティビティを制御するために使用されるコール時間およびタイムアウト機能を確認して下さい。 SIP ALG 呼び出し時間とタイムアウトについてを参照してください。
概要
通話時間と非アクティブメディアタイムアウト機能は、ネットワークリソースを節約し、スループットを最大化するのに役立ちます。
このパラメーターは maximum-call-duration
、呼び出しがアクティブになる最大許容時間を設定します。時間を超えた場合、SIP ALG はコールを破棄し、メディア セッションをリリースします。デフォルト設定は 720 分で、範囲は 3~720 分です。また、この設定により、コールが正しく終了しなかった場合に、帯域幅が解放されます。
このパラメータは inactive-media-timeout
、グループ内のメディア(RTP または RTPC)トラフィックなしでコールがアクティブの状態を維持できる最大時間(秒単位)を示します。RTP または RTCP パケットがコール内で発生するたびに、このタイムアウトはリセットされます。非アクティブ期間がこの設定を超えると、ファイアウォール内のメディアの SIP ALG 一時的な開口部(ピンホール)が閉じられます。デフォルト設定は120秒で、範囲は10~2550秒です。タイムアウト時に、メディア(セッションおよびピンホール)のリソースが削除される間、コールは終了しません。
この例では、呼び出し時間を 36000 秒に設定し、メディア非アクティブタイムアウトを 90 秒に設定します。
構成
手順
GUI クイックコンフィギュレーション
手順
SIP ALGコール時間とメディア非アクティブタイムアウトを設定するには:
[セキュリティ>ALG>設定]を選択します。
[SIP] タブを選択します。
[最大通話時間] フィールドに を入力します
600
。[非アクティブなメディアタイムアウト]フィールドに、 を入力します
90
。[OK] をクリックして構成を確認し、その構成を候補の構成として保存します。
デバイスの設定が完了したら、[ コミット オプション] >Commit をクリックします。
手順
SIP ALGコール時間とメディア非アクティブタイムアウトを設定するには:
SIP ALG コール時間を設定します。
[edit] user@host# set security alg sip maximum-call-duration 600
SIP ALGの非アクティブなメディアタイムアウトを設定します。
[edit] user@host# set security alg sip inactive-media-timeout 90
デバイスの設定が完了したら、設定をコミットします。
[edit] user@host# commit
検証
設定が正常に機能していることを確認するには、 コマンドを show security alg sip
入力します。
例:SIP ALG DoS 攻撃防御の設定
この例では、DoS攻撃防御機能を設定する方法を示しています。
要件
開始する前に、SIP コール アクティビティを制御するために使用される DoS 攻撃防御機能を確認してください。 SIP ALG DoS 攻撃防御についてを参照してください。
概要
SIP プロキシ サーバーの呼び出しを処理する機能は、繰り返し SIP INVITE 要求(サーバーが最初に拒否した要求)によって影響を受ける可能性があります。DoS保護機能を使用すると、INVITEリクエストとプロキシサーバーからの返信を監視するようにデバイスを設定できます。
この例では、デバイスは、すでにサービスが拒否されている繰り返しの INVITE リクエストから単一の SIP プロキシ サーバー(10.1.1.3)を保護するように設定されています。パケットは 5 秒間破棄され、その後、デバイスはこれらのソースからの INVITE リクエストの転送を再開します。
構成
手順
GUI クイックコンフィギュレーション
手順
SIP ALG DoS攻撃防御を設定するには:
-
[ 構成>セキュリティ>ALG] を選択します。
-
[SIP] タブを選択します。
-
[攻撃防御を有効にする] 領域で、[ 選択したサーバー ] オプションをクリックします。
-
[宛先 IP] ボックスで、を入力
10.1.1.3
して [ 追加] をクリックします。 -
[OK] をクリックして構成を確認し、その構成を候補の構成として保存します。
-
デバイスの設定が完了したら、[ Commit Options>Commit をクリックします。
手順
SIP ALG DoS攻撃防御を設定するには:
-
1 つの SIP プロキシ サーバーを保護するデバイスを構成します。
[edit] user@host# set security alg sip application-screen protect deny destination-ip 10.1.1.3
メモ:IPv6 は、ネットワーク アドレス変換プロトコル変換(NAT-PT)モードおよび NAT64 アドレス変換とともに SIP ALG でサポートされています。
<destination-ip-address>の種類をIPv4アドレスからIPプレフィックスに変更してあらゆる種類のIPアドレスをサポートし、それに対応してプレフィックスをサポートして複数のIPアドレスを許可します。
-
拒否タイムアウト期間にデバイスを設定します。
[edit] user@host# set security alg sip application-screen protect deny timeout 5
-
デバイスの設定が完了したら、設定をコミットします。
[edit] user@host# commit
検証
設定が正常に機能していることを確認するには、 コマンドを show security alg sip
入力します。
例:不明な SIP ALG メッセージ タイプの許可
この例では、未知のメッセージタイプを許可する方法を示しています。
要件
開始する前に、識別されていない SIP メッセージがデバイスでどのように処理されるかを確認します。 SIP ALG 不明メッセージ タイプの理解を参照してください。
概要
この例では、NATモードとルートモードの両方で、SIPトラフィックの未知のメッセージタイプを許可するようにデバイスを設定します。デフォルトでは、不明(サポートされていない)メッセージをドロップします。
構成
手順
GUI クイックコンフィギュレーション
手順
未知の SIP ALG メッセージ タイプを許可するには:
[ 構成>セキュリティ>ALG] を選択します。
[SIP] タブを選択します。
[ 許可 NAT 適用を有効にする ] チェック ボックスをオンにします。
[ ルーテッドの許可を有効にする ] チェック ボックスをオンにします。
[OK] をクリックして構成を確認し、その構成を候補の構成として保存します。
デバイスの設定が完了したら、 コミット オプション>Commit をクリックします。
手順
未知の SIP ALG メッセージ タイプを許可するには:
SIP トラフィックの未知のメッセージ タイプを許可するようにデバイスを設定します。
[edit] user@host# set security alg sip application-screen unknown-message permit-nat-applied permit-routed
デバイスの設定が完了したら、設定をコミットします。
[edit] user@host# commit
検証
設定が正常に機能していることを確認するには、 コマンドを show security alg sip
入力します。
例:受信 SIP コールのインターフェイス ソース NAT の設定
この例では、受信 SIP コールに NAT を使用できるように、パブリック ゾーン インターフェイスでソース NAT ルールを設定する方法を示します。
要件
開始する前に、NAT が SIP ALG でどのように動作するかを理解します。 SIP ALG と NAT についてを参照してください。
概要
外部ゾーンに SIP プロキシ サーバーがある 2 ゾーンのシナリオでは、パブリック ゾーンまたは外部ゾーンのインターフェイス上でソース NAT ルールを設定することで、受信コールに NAT を使用できます。
この例( 図 5 を参照)では、phone1 はプライベート ゾーンの ge-0/0/0 インターフェイス上にあり、phone2 とプロキシ サーバーはパブリック ゾーンの ge-0/0/2 インターフェイス上にあります。パブリック インターフェイス ge-0/0/2.0 でソース NAT ルールを設定します。
トポロジ
図 5 は、受信 SIP コールのソース NAT を示しています。
この例では、プライベートとパブリックと呼ばれるゾーンを作成し、インターフェイスに割り当てた後、ソース NAT ルール セットで使用するアドレス ブックを設定します。次に、sip-phone と呼ばれるルール セットと、送信元アドレス 10.1.1.2/32 からの任意のパケットと一致する phone1 というルールを定義して、ソース NAT を設定します。
最後に、プライベート ゾーンとパブリック ゾーン間のすべての SIP トラフィックを許可するセキュリティ ポリシーを作成します。
構成
手順
CLI クイックコンフィギュレーション
この例のセクションを迅速に設定するには、以下のコマンドをコピーしてテキスト ファイルに貼り付け、改行を削除し、ネットワーク設定に合わせて必要な詳細を変更し、コマンドを 階層レベルの [edit]
CLI にコピー アンド ペーストして、設定モードから を入力 commit
します。
set interfaces ge-0/0/0 unit 0 family inet address 10.1.1.1/24 set interfaces ge-0/0/2 unit 0 family inet address 172.16.1.1/24 set security zones security-zone private address-book address phone1 10.1.1.2/32 set security zones security-zone private interfaces ge-0/0/0.0 set security zones security-zone public address-book address proxy 172.16.1.3/32 set security zones security-zone public address-book address phone2 172.16.1.2/32 set security zones security-zone public interfaces ge-0/0/2.0 set security nat source rule-set sip-phones from zone private set security nat source rule-set sip-phones to zone public set security nat source rule-set sip-phones rule phone1 match source-address 10.1.1.2/32 set security nat source rule-set sip-phones rule phone1 then source-nat interface set security policies from-zone private to-zone public policy outgoing match source-address phone1 set security policies from-zone private to-zone public policy outgoing match destination-address phone2 set security policies from-zone private to-zone public policy outgoing match destination-address proxy set security policies from-zone private to-zone public policy outgoing match application junos-sip set security policies from-zone private to-zone public policy outgoing then permit set security policies from-zone public to-zone private policy incoming match source-address phone2 set security policies from-zone public to-zone private policy incoming match destination-address phone1 set security policies from-zone public to-zone private policy incoming match source-address proxy set security policies from-zone public to-zone private policy incoming match application junos-sip set security policies from-zone public to-zone private policy incoming then permit
手順
次の例では、設定階層内のさまざまなレベルに移動する必要があります。その方法の詳細については、 CLIユーザーガイドの設定モードでのCLIエディターの使用を参照してください。
パブリックゾーンインターフェイスでソースNATルールを設定するには:
-
インターフェイスを設定します。
[edit] user@host# set interfaces ge-0/0/0 unit 0 family inet address 10.1.1.1/24 user@host# set interfaces ge-0/0/2 unit 0 family inet address 172.16.1.1/24
-
ゾーンを設定し、インターフェイスに割り当てます。
[edit security zones] user@host# set security-zone private interfaces ge-0/0/0.0 user@host# set security-zone public interfaces ge-0/0/2.0
-
アドレスブックを設定し、アドレスを作成します。
[edit security zones] user@host# set security-zone private address-book address phone1 10.1.1.2/32 user@host# set security-zone public address-book address proxy 172.16.1.3/32 user@host# set security-zone public address-book address phone2 172.16.1.2/32
-
ソース NAT ルール セットを設定します。
[edit security nat source] user@host# set rule-set sip-phones from zone private user@host# set rule-set sip-phones to zone public user@host# set rule-set sip-phones rule phone1 match source-address 10.1.1.2/32 user@host# set rule-set sip-phones rule phone1 then source-nat interface
-
永続的ソース NAT 変換を有効にします。
[edit security nat source] user@host# set address-persistent
-
送信 SIP トラフィックを許可するセキュリティ ポリシーを設定します。
[edit security policies from-zone private to-zone public policy outgoing] user@host# set match source-address phone1 user@host# set match destination-address phone2 user@host# set match destination-address proxy user@host# set match application junos-sip user@host# set then permit
-
受信 SIP トラフィックを許可するセキュリティ ポリシーを設定します。
[edit security policies from-zone public to-zone private policy incoming] user@host# set match source-address phone2 user@host# set match destination-address phone1 user@host# set match source-address proxy user@host# set match application junos-sip user@host# set then permit
結果
設定モードから、 、show security policies
show security zones
および のコマンドをshow interfaces
入力して設定をshow security nat
確認します。出力に意図した設定が表示されない場合は、この例の設定手順を繰り返して修正します。
[edit] user@host# show interfaces ge-0/0/0 { unit 0 { family inet { address 10.1.1.1/24; } } } ge-0/0/2 { unit 0 { family inet { address 172.16.1.1/24; } } }
[edit] user@host# show security zones security-zone private { address-book { address phone1 10.1.1.2/32; } interfaces { ge-0/0/0.0; } } security-zone public { address-book { address proxy 172.16.1.3/32; address phone2 172.16.1.2/32; } interfaces { ge-0/0/2.0; } } [edit] user@host# show security nat source { rule-set sip-phones { from zone private; to zone public; rule phone1 { match { source-address 10.1.1.2/32; } then { source-nat { interface; } } } } } [edit] user@host# show security policies from-zone private to-zone public { policy outgoing { match { source-address phone1; destination-address [ phone2 proxy ]; application junos-sip; } then { permit; } } } from-zone public to-zone private { policy incoming { match { source-address [ phone2 proxy ]; destination-address phone1 ; application junos-sip; } then { permit; } } }
デバイスの設定が完了したら、設定モードから を入力します commit
。
検証
設定が正常に機能していることを確認するには、次のタスクを実行します。
ソース NAT ルールの使用の確認
目的
ソース NAT ルールに一致するトラフィックがあることを確認します。
アクション
動作モードから、 コマンドを show security nat source rule all
入力します。[翻訳がヒット] フィールドを表示して、ルールに一致するトラフィックを確認します。
user@host> show security nat source rule all source NAT rule: phone1 Rule-set: sip-phones Rule-Id : 1 Rule position : 1 From zone : private To zone : public Match Source addresses : 0.0.0.0 - 255.255.255.255 Destination port : 0 - 0 Action : interface Persistent NAT type : N/A Persistent NAT mapping type : address-port-mapping Inactivity timeout : 0 Max session number : 0 Translation hits : 0 Successful sessions : 0 Failed sessions : 0 Number of sessions : 0
意味
フィールドには Translation hits
、ソースNATルールに一致するトラフィックがないことを示しています。
SIP ALG ステータスの検証
目的
システムで SIP ALG が有効になっていることを確認します。
アクション
動作モードから、 コマンドを show security alg status
入力します。
user@host> show security alg status ALG Status : DNS : Enabled FTP : Enabled H323 : Disabled MGCP : Disabled MSRPC : Enabled PPTP : Enabled RSH : Disabled RTSP : Disabled SCCP : Disabled SIP : Enabled SQL : Enabled SUNRPC : Enabled TALK : Enabled TFTP : Enabled IKE-ESP : Disabled
意味
出力は、SIP ALG ステータスを次のように示しています。
-
イネーブル—SIP ALG がイネーブルであることを示します。
-
無効—SIP ALGが無効であることを示しています。
例:受信 SIP コールのソース NAT プールを設定することでネットワークの複雑さを軽減する
この例では、外部インターフェイス上のソース NAT プールを設定して、受信 SIP コールの NAT を有効にすることで、ネットワークの複雑さを軽減する方法を示します。
要件
開始する前に、NAT が SIP ALG でどのように動作するかを理解します。 SIP ALG と NAT についてを参照してください。
概要
外部またはパブリック ゾーンの SIP プロキシ サーバーを使用した 2 ゾーンのシナリオでは、パブリック ゾーンへのインターフェイス上の NAT プールを設定することで、受信コールに NAT を使用できます。
この例( 図 6 を参照)では、phone1 はプライベート ゾーンにあり、phone2 とプロキシ サーバーはパブリック ゾーンにあります。NAT を実行するようにソース NAT プールを設定します。また、プライベートからパブリック ゾーンへの SIP トラフィックを許可するポリシーを作成します。これにより、プライベート ゾーンの phone1 がパブリック ゾーンのプロキシ サーバーに登録できるようになり、また、パブリック ゾーンからプライベート ゾーンへの着信コールも有効になります。
トポロジ
図 6 は、受信コールのソース NAT プールを示しています。
この例では、ソース NAT を以下のように設定します。
-
sip-nat-poolと呼ばれるソースNATプールを定義し、172.16.1.20/32~172.16.1.40/32のIPアドレス範囲を含めます。
-
プライベートゾーンから送信元IPアドレス10.1.1.3/24を持つパブリックゾーンにパケットを一致させるルールsip-r1を使用して、sip-natと呼ばれるソースNATルールセットを作成します。一致するパケットの場合、送信元アドレスは sip-nat-pool 内の IP アドレスの 1 つに変換されます。
-
インターフェイスge-0/0/2.0でアドレス172.16.1.20/32~172.16.1.40/32のプロキシARPを設定します。これにより、システムは、これらのアドレスに対してインターフェイスで受信したARP要求に応答することができます。
構成
手順
CLI クイックコンフィギュレーション
この例のセクションを迅速に設定するには、以下のコマンドをコピーしてテキスト ファイルに貼り付け、改行を削除し、ネットワーク設定に合わせて必要な詳細を変更し、コマンドを 階層レベルの [edit]
CLI にコピー アンド ペーストして、設定モードから を入力 commit
します。
set interfaces ge-0/0/0 unit 0 family inet address 10.1.1.1/24 set interfaces ge-0/0/2 unit 0 family inet address 172.16.1.1/24 set security zones security-zone private address-book address phone1 10.1.1.3/32 set security zones security-zone private interfaces ge-0/0/0.0 set security zones security-zone public address-book address proxy 172.16.1.3/32 set security zones security-zone public address-book address phone2 172.16.1.4/32 set security zones security-zone public interfaces ge-0/0/2.0 set security nat source pool sip-nat-pool address 172.16.1.20/32 to 172.16.1.40/32 set security nat source address-persistent set security nat source rule-set sip-nat from zone private set security nat source rule-set sip-nat to zone public set security nat source rule-set sip-nat rule sip-r1 match source-address 10.1.1.3/24 set security nat source rule-set sip-nat rule sip-r1 then source-nat pool sip-nat-pool set security nat proxy-arp interface ge-0/0/2.0 address 172.16.1.20/32 to 172.16.1.40/32 set security policies from-zone private to-zone public policy outgoing match source-address phone1 set security policies from-zone private to-zone public policy outgoing match destination-address any set security policies from-zone private to-zone public policy outgoing match application junos-sip set security policies from-zone private to-zone public policy outgoing then permit set security policies from-zone public to-zone private policy incoming match source-address phone2 set security policies from-zone public to-zone private policy incoming match destination-address phone1 set security policies from-zone public to-zone private policy incoming match application junos-sip set security policies from-zone public to-zone private policy incoming then permit
手順
次の例では、設定階層内のさまざまなレベルに移動する必要があります。その方法の詳細については、 CLIユーザーガイドの設定モードでのCLIエディターの使用を参照してください。
着信コールのソース NAT プールを設定するには:
-
インターフェイスを設定します。
[edit] user@host# set interfaces ge-0/0/0 unit 0 family inet address 10.1.1.1/24 user@host# set interfaces ge-0/0/2 unit 0 family inet address 172.16.1.1/24
-
ゾーンを設定し、インターフェイスを割り当てます。
[edit security zones] user@host# set security-zone private interfaces ge-0/0/0.0 user@host# set security-zone public interfaces ge-0/0/2.0
-
アドレスブックを設定します。
[edit security zones] user@host# set security-zone private address-book address phone1 10.1.1.3/32 user@host# set security-zone public address-book address proxy 172.16.1.3/32 user@host# set security-zone public address-book address phone2 172.16.1.4/32
-
ソース NAT プールを設定します。
[edit security nat] user@host# set source pool sip-nat-pool address 172.16.1.20/32 to 172.16.1.40/32
-
ソース NAT ルール セットをルールで構成します。
[edit security nat source rule-set sip-nat] user@host# set from zone private user@host# set to zone public user@host# set rule sip-r1 match source-address 10.1.1.3/24 user@host# set rule sip-r1 then source-nat pool sip-nat-pool
-
永続的 NAT を有効にします。
[edit security nat] user@host# set source address-persistent
-
プロキシARPを設定します。
[edit security nat] user@host# set proxy-arp interface ge-0/0/2.0 address 172.16.1.20/32 to 172.16.1.40/32
-
送信 SIP トラフィックを許可するセキュリティ ポリシーを設定します。
[edit security policies from-zone private to-zone public policy outgoing] set match source-address phone1 set match destination-address any set match application junos-sip set then permit
-
受信 SIP トラフィックを許可するセキュリティ ポリシーを設定します。
[edit security policies from-zone public to-zone private policy incoming] set match source-address phone2 set match destination-address phone1 set match application junos-sip set then permit
結果
設定モードから、 、show security nat
show security zones
および のコマンドをshow interfaces
入力して設定をshow security policies
確認します。出力に意図した設定が表示されない場合は、この例の設定手順を繰り返して修正します。
[edit] user@host# show interfaces ge-0/0/0 { unit 0 { family inet { address 10.1.1.1/24; } } } ge-0/0/2 { unit 0 { family inet { address 172.16.1.1/24; } } } [edit] user@host# show security zones security-zone private { address-book { address phone1 10.1.1.3/32; } interfaces { ge-0/0/0.0; } } security-zone public { address-book { address proxy 172.16.1.3/32; address phone2 172.16.1.4/32; } interfaces { ge-0/0/2.0; } } user@host# show security nat source { pool sip-nat-pool { address { 172.16.1.20/32 to 172.16.1.40/32; } } address-persistent; rule-set sip-nat { from zone private; to zone public; rule sip-r1 { match { source-address 10.1.1.3/24; } then { source-nat { pool { sip-nat-pool; } } } } } } proxy-arp { interface ge-0/0/2.0 { address { 172.16.1.20/32 to 172.16.1.40/32; } } } [edit] user@host# show security policies from-zone private to-zone public { policy outgoing { match { source-address phone1; destination-address any; application junos-sip; } then { permit; } } } from-zone public to-zone private { policy incoming { match { source-address phone2; destination-address phone1; application junos-sip; } then { permit; } } }
デバイスの設定が完了したら、設定モードから を入力します commit
。
検証
設定が正常に機能していることを確認するには、次のタスクを実行します。
ソース NAT プールの使用状況の確認
目的
ソースNATプールからのIPアドレスを使用したトラフィックがあることを確認します。
アクション
動作モードから、 コマンドを show security nat source pool all
入力します。
user@host> show security nat source pool all
Total pools: 1 Pool name : sip-nat-pool Pool id : 4 Routing instance : default Host address base : 0.0.0.0 Port : [1024, 63487] port overloading : 1 Total addresses : 21 Translation hits : 0 Address range Single Ports Twin Ports 172.16.1.20 - 172.16.1.40 0 0
意味
フィールドは Translation hits
、ソースNATプールからのIPアドレスが使用するトラフィックがないことを示しています。
ソース NAT ルールの使用の確認
目的
ソース NAT ルールに一致するトラフィックがあることを確認します。
アクション
動作モードから、 コマンドを show security nat source rule all
入力します。
user@host> show security nat source rule all
source NAT rule: sip-r1 Rule-set: sip-nat Rule-Id : 1 Rule position : 1 From zone : private To zone : public Match Source addresses : 0.0.0.0 - 255.255.255.255 Destination port : 0 - 0 Action : interface Persistent NAT type : N/A Persistent NAT mapping type : address-port-mapping Inactivity timeout : 0 Max session number : 0 Translation hits : 0 Successful sessions : 0 Failed sessions : 0 Number of sessions : 0
意味
フィールドには Translation hits
、ソースNATルールに一致するトラフィックがないことを示しています。
SIP ALG ステータスの検証
目的
システムで SIP ALG が有効になっていることを確認します。
アクション
動作モードから、 コマンドを show security alg status
入力します。
user@host> show security alg status
ALG Status : DNS : Enabled FTP : Enabled H323 : Disabled MGCP : Disabled MSRPC : Enabled PPTP : Enabled RSH : Disabled RTSP : Disabled SCCP : Disabled SIP : Enabled SQL : Enabled SUNRPC : Enabled TALK : Enabled TFTP : Enabled IKE-ESP : Disabled
意味
出力は、SIP ALG ステータスを次のように示しています。
-
•Enabled—SIP ALGが有効になっていることを示しています。
-
•無効—SIP ALGが無効であることを示しています。
SIP ALG のセキュリティ ポリシーの検証
目的
パブリック ゾーンとプライベート ゾーンの間のソース NAT が設定されていることを確認します。
アクション
動作モードから、 コマンドを show security policies
入力します。
user@host> show security policies
from-zone private to-zone public { policy outgoing { match { source-address phone1; destination-address any; application junos-sip; } then { permit; } } from-zone public to-zone private { policy incoming { match { source-address phone2; destination-address phone1; application junos-sip; } then { permit; } }
意味
サンプル出力では、パブリック ゾーンとプライベート ゾーンの間のソース NAT が設定されていることを示しています。
例:受信 SIP コールのスタティック NAT の設定
この例では、プライベート ゾーンの呼び出し元がパブリック ゾーンのプロキシ サーバーに登録できるようにする静的 NAT マッピングを構成する方法を示します。
要件
開始する前に、NAT が SIP ALG でどのように動作するかを理解します。 SIP ALG と NAT についてを参照してください。
概要
SIP プロキシ サーバーが外部ゾーンまたはパブリック ゾーンに配置されている場合、パブリック インターフェイス上の静的 NAT を設定して、プライベート ゾーンの発信者がプロキシ サーバーに登録できるようにします。
この例( 図 7 を参照)では、phone1 はプライベート ゾーンの ge-0/0/0 インターフェイス上にあり、phone2 とプロキシ サーバーはパブリック ゾーンの ge-0/0/2 インターフェイス上にあります。宛先アドレス 172.16.1.3/32 を持つパブリック ゾーンからのパケットを一致させる phone1 と呼ばれるルールを使用して、受信 sip と呼ばれる静的 NAT ルール セットを作成します。一致するパケットの場合、宛先 IP アドレスはプライベート アドレス 10.1.1.3/32 に変換されます。また、インターフェイスge-0/0/2.0でアドレス172.16.1.3/32のプロキシARPを作成します。これにより、システムは、これらのアドレスに対してインターフェイスで受信したARP要求に応答することができます。最後に、受信と呼ばれるセキュリティ ポリシーを作成し、パブリック ゾーンからプライベート ゾーンへの SIP トラフィックを許可します。
受信 SIP コールに静的 NAT を設定する場合、プライベート ゾーンの各プライベート アドレスに対して 1 つのパブリック アドレスを必ず設定してください。
構成
手順
CLI クイックコンフィギュレーション
この例のセクションを迅速に設定するには、以下のコマンドをコピーしてテキスト ファイルに貼り付け、改行を削除し、ネットワーク設定に合わせて必要な詳細を変更し、コマンドを 階層レベルの [edit]
CLI にコピー アンド ペーストして、設定モードから を入力 commit
します。
set interfaces ge-0/0/0 unit 0 family inet address 10.1.1.1/24 set interfaces ge-0/0/2 unit 0 family inet address 172.16.1.1/24 set security zones security-zone private interfaces ge-0/0/0.0 set security zones security-zone private address-book address phone1 10.1.1.5/32 set security zones security-zone public interfaces ge-0/0/2.0 set security zones security-zone public address-book address proxy 172.16.1.3/32 set security zones security-zone public address-book address phone2 172.16.1.4/32 set security nat static rule-set incoming-sip from zone public set security nat static rule-set incoming-sip rule phone1 match destination-address 172.16.1.3/32 set security nat static rule-set incoming-sip rule phone1 then static-nat prefix 10.1.1.3/32 set security nat proxy-arp interface ge-0/0/2.0 address 172.16.1.3/32 set security policies from-zone public to-zone private policy incoming match source-address phone2 set security policies from-zone public to-zone private policy incoming match source-address proxy set security policies from-zone public to-zone private policy incoming match destination-address phone1 set security policies from-zone public to-zone private policy incoming match application junos-sip set security policies from-zone public to-zone private policy incoming then permit set security policies from-zone private to-zone public policy outgoing match source-address phone1 set security policies from-zone private to-zone public policy outgoing match destination-address phone2 set security policies from-zone private to-zone public policy outgoing match destination-address proxy set security policies from-zone private to-zone public policy outgoing match application junos-sip set security policies from-zone private to-zone public policy outgoing then permit
手順
次の例では、設定階層内のさまざまなレベルに移動する必要があります。その方法の詳細については、 CLIユーザーガイドの設定モードでのCLIエディターの使用を参照してください。
着信コールに静的 NAT を設定するには:
-
インターフェイスを設定します。
[edit] user@host# set interfaces ge-0/0/0 unit 0 family inet address 10.1.1.1/24 user@host# set interfaces ge-0/0/2 unit 0 family inet address 172.16.1.1/24
-
セキュリティ ゾーンを作成します。
[edit security zones] user@host# set security-zone private interfaces ge-0/0/0.0 user@host# set security-zone public interfaces ge-0/0/2.0
-
セキュリティ ゾーンにアドレスを割り当てます。
[edit security zones] user@host# set security-zone private address-book address phone1 10.1.1.5/32 user@host# set security-zone public address-book address proxy 172.16.1.3/32 user@host# set security-zone public address-book address phone2 172.16.1.4/32
-
ルールを使用して静的 NAT ルール セットを作成します。
[edit security nat static rule-set incoming-sip] user@host# set from zone public user@host# set rule phone1 match destination-address 172.16.1.3/32 user@host# set rule phone1 then static-nat prefix 10.1.1.3/32
-
プロキシARPを設定します。
[edit security nat] user@host# set proxy-arp interface ge-0/0/2.0 address 172.16.1.3/32
-
受信 SIP トラフィックを許可するセキュリティ ポリシーを定義します。
[edit security policies from-zone public to-zone private policy incoming] user@host# set match source-address phone2 user@host# set match source-address proxy user@host# set match destination-address phone1 user@host# set match application junos-sip user@host# set then permit
-
送信 SIP トラフィックを許可するセキュリティ ポリシーを定義します。
[edit security policies from-zone private to-zone public policy outgoing] user@host# set match source-address phone1 user@host# set match destination-address phone2 user@host# set match destination-address proxy user@host# set match application junos-sip user@host# set then permit
結果
設定モードから、 、show security nat
show security zones
および のコマンドをshow interfaces
入力して設定をshow security policies
確認します。出力に意図した設定が表示されない場合は、この例の設定手順を繰り返して修正します。
[edit] user@host# show interfaces ge-0/0/0 { unit 0 { family inet { address 10.1.1.1/24; } } } ge-0/0/2 { unit 0 { family inet { address 172.16.1.1/24; } } }
[edit] user@host# show security zones security-zone private { address-book { address phone1 10.1.1.5/32; } interfaces { ge-0/0/0.0; } } security-zone public { address-book { address proxy 172.16.1.3/32; address phone2 172.16.1.4/32; } interfaces { ge-0/0/2.0; } }
[edit] user@host# show security nat static { rule-set incoming-sip { from zone public; rule phone1 { match { destination-address 172.16.1.3/32; } then { static-nat prefix 10.1.1.3/32; } } } } proxy-arp { interface ge-0/0/2.0 { address { 172.16.1.3/32; } } }
[edit] user@host# show security policies from-zone public to-zone private { policy incoming { match { source-address phone2; destination-address phone1; application junos-sip; } then { permit; } } } from-zone private to-zone public { policy outgoing { match { source-address phone1; destination-address [phone2 proxy]; application junos-sip; } then { permit; } } }
デバイスの設定が完了したら、設定モードから を入力します commit
。
検証
設定が正常に機能していることを確認するには、次のタスクを実行します。
静的 NAT 設定の検証
目的
静的 NAT ルール セットに一致するトラフィックがあることを確認します。
アクション
動作モードから、 コマンドを show security nat static rule all
入力します。
user@host> show security nat static rule all
Static NAT rule: phone1 Rule-set: incoming-sip Rule-Id : 1 Rule position : 1 From zone : public Destination addresses : 172.16.1.3 Host addresses : 172.16.1.4 Netmask : 24 Host routing-instance : N/A Translation hits : 4 Successful sessions : 4 Failed sessions : 0 Number of sessions : 4
意味
フィールドは Translation hits
、静的NATルールセットに一致するトラフィックがあることを示しています。
SIP ALG ステータスの検証
目的
システムで SIP ALG が有効になっていることを確認します。
アクション
動作モードから、 コマンドを show security alg status
入力します。
user@host> show security alg status
ALG Status : DNS : Enabled FTP : Enabled H323 : Disabled MGCP : Disabled MSRPC : Enabled PPTP : Enabled RSH : Disabled RTSP : Disabled SCCP : Disabled SIP : Enabled SQL : Enabled SUNRPC : Enabled TALK : Enabled TFTP : Enabled IKE-ESP : Disabled
意味
出力は、SIP ALG ステータスを次のように示しています。
-
•Enabled—SIP ALGが有効になっていることを示しています。
-
•無効—SIP ALGが無効であることを示しています。
SIP ALG のセキュリティ ポリシーの検証
目的
パブリック ゾーンとプライベート ゾーンの間の静的 NAT が設定されていることを確認します。
アクション
動作モードから、 コマンドを show security policies
入力します。
user@host> show security policies
from-zone public to-zone private { policy incoming { match { source-address [ phone2 proxy ]; destination-address phone1; application junos-sip; } then { permit; } } } from-zone private to-zone public { policy outgoing { match { source-address phone1; destination-address [ phone2 proxy ]; application junos-sip; } then { permit; } } }
意味
サンプル出力では、パブリック ゾーンとプライベート ゾーン間の静的 NAT が設定されていることを示しています。
例:パブリックゾーンのプライベートゾーンとNATでのSIPプロキシの設定
この例では、プライベート ゾーンの SIP プロキシ サーバーとパブリック ゾーンの静的 NAT を構成して、パブリック ゾーンの呼び出し元がプロキシ サーバーに登録できるようにする方法を示します。
要件
開始する前に、NAT が SIP ALG でどのように動作するかを理解します。 SIP ALG と NAT についてを参照してください。
概要
プライベート ゾーンの SIP プロキシ サーバーを使用すると、外部インターフェイスまたはパブリック インターフェイスに静的 NAT を設定し、パブリック ゾーンの発信者がプロキシ サーバーに登録できるようにします。
この例( 図 8 を参照)では、phone1 と SIP プロキシ サーバーはプライベート ゾーンの ge-0/0/0 インターフェイス上にあり、phone2 はパブリック ゾーンの ge-0/0/2 インターフェイス上にあります。プロキシ サーバーの静的 NAT ルールを構成して、phone2 がプロキシ サーバーに登録できるようにし、送信と呼ばれるポリシーを作成します。このポリシーでは、パブリック ゾーンからプライベート ゾーンへの SIP トラフィックを許可して、パブリック ゾーンの発信者がプロキシ サーバーに登録できるようにします。また、プライベートからパブリック ゾーンへの着信と呼ばれるポリシーを設定して、phone1 から発信できるようにします。
トポロジ
図 8 は、プライベート ゾーンでの SIP プロキシとパブリック ゾーンの NAT の設定を示しています。
この例では、NATを以下のように設定します。
-
プロキシ サーバーへの ge-0/0/2 インターフェイス上の静的 NAT を、プロキシと呼ばれるルールで受信 sip と呼ばれるルールで設定し、宛先アドレス 172.16.1.2/32 を持つパブリック ゾーンからのパケットを一致させます。一致するパケットの場合、宛先 IP アドレスはプライベート アドレス 10.1.1.5/32 に変換されます。
-
電話1からphone2への通信のためにインターフェイスNATを有効にするためのphone1と呼ばれるルールを使用して、sip-phoneと呼ばれる2番目のルールセットを設定します。
構成
手順
CLI クイックコンフィギュレーション
この例のセクションを迅速に設定するには、以下のコマンドをコピーしてテキスト ファイルに貼り付け、改行を削除し、ネットワーク設定に合わせて必要な詳細を変更し、コマンドを 階層レベルの [edit]
CLI にコピー アンド ペーストして、設定モードから を入力 commit
します。
set interfaces ge-0/0/0 unit 0 family inet address 10.1.1.1/24 set interfaces ge-0/0/2 unit 0 family inet address 172.16.1.1/24 set interfaces ge-0/0/2 unit 0 proxy-arp set security zones security-zone private address-book address phone1 10.1.1.3/32 set security zones security-zone private address-book address proxy 10.1.1.5/32 set security zones security-zone private interfaces ge-0/0/0.0 set security zones security-zone public address-book address phone2 172.16.1.4/32 set security zones security-zone public interfaces ge-0/0/2.0 set security nat source rule-set sip-phones from zone private set security nat source rule-set sip-phones to zone public set security nat source rule-set sip-phones rule phone1 match source-address 10.1.1.3/32 set security nat source rule-set sip-phones rule phone1 then source-nat interface set security nat static rule-set incoming-sip from zone public set security nat static rule-set incoming-sip rule proxy match destination-address 172.16.1.2/32 set security nat static rule-set incoming-sip rule proxy then static-nat prefix 10.1.1.5/32 set security nat proxy-arp interface ge-0/0/2.0 address 172.16.1.2/32 set security policies from-zone private to-zone public policy outgoing match source-address any set security policies from-zone private to-zone public policy outgoing match destination-address phone2 set security policies from-zone private to-zone public policy outgoing match application junos-sip set security policies from-zone private to-zone public policy outgoing then permit set security policies from-zone public to-zone private policy incoming match source-address phone2 set security policies from-zone public to-zone private policy incoming match destination-address proxy set security policies from-zone public to-zone private policy incoming match application junos-sip set security policies from-zone public to-zone private policy incoming then permit
手順
次の例では、設定階層内のさまざまなレベルに移動する必要があります。その方法の詳細については、 CLIユーザーガイドの設定モードでのCLIエディターの使用を参照してください。
着信コールに静的 NAT を設定するには:
-
インターフェイスを設定します。
[edit] user@host# set interfaces ge-0/0/0 unit 0 family inet address 10.1.1.1/24 user@host# set interfaces ge-0/0/2 unit 0 family inet address 172.16.1.1/24 user@host# set interfaces ge-0/0/2 unit 0 proxy-arp
-
セキュリティ ゾーンを設定します。
[edit security zones] user@host# set security-zone private interfaces ge-0/0/0.0 user@host# set security-zone public interfaces ge-0/0/2.0
-
セキュリティ ゾーンにアドレスを割り当てます。
[edit security zones] user@host# set security-zone private address-book address phone1 10.1.1.3/32 user@host# set security-zone private address-book address proxy 10.1.1.5/32 user@host# set security-zone public address-book address phone2 172.16.1.4/32
-
静的 NAT のルール セットを作成し、それにルールを割り当てます。
[edit security nat static rule-set incoming-sip] user@host# set from zone public user@host# set rule proxy match destination-address 172.16.1.2/32 user@host# set rule proxy then static-nat prefix 10.1.1.5/32
-
172.16.1.2/32アドレスの proxy-arp を設定します。
[edit security nat] user@host# proxy-arp interface ge-0/0/2.0 address 172.16.1.2/32
-
2 番目のルール セットを構成し、それにルールを割り当てます。
[edit security nat source rule-set sip-phones] user@host# set from zone private user@host# set to zone public user@host# set rule phone1 match source-address 10.1.1.3/32 user@host# set rule phone1 then source-nat interface
-
送信トラフィックのセキュリティポリシーを設定します。
[edit security policies from-zone private to-zone public policy outgoing] user@host# set match source-address any user@host# set match destination-address phone2 user@host# set match application junos-sip user@host# set then permit
-
受信トラフィックのセキュリティ ポリシーを設定します。
[edit security policies from-zone public to-zone private policy incoming] user@host# set match source-address phone2 user@host# set match destination-address proxy user@host# set match application junos-sip user@host# set then permit
結果
設定モードから、 、show security nat
show security zones
および のコマンドをshow interfaces
入力して設定をshow security policies
確認します。出力に意図した設定が表示されない場合は、この例の設定手順を繰り返して修正します。
[edit] user@host# show interfaces ge-0/0/0 { unit 0 { family inet { address 10.1.1.1/24; } } } ge-0/0/2 { unit 0 { proxy-arp; family inet { address 172.16.1.1/24; } } } [edit] user@host# show security zones security-zone private { address-book { address phone1 10.1.1.3/32; address proxy 10.1.1.5/32; } interfaces { ge-0/0/0.0; } } security-zone public { address-book { address phone2 172.16.1.4/32; } interfaces { ge-0/0/2.0; } } [edit] user@host# show security nat source { rule-set sip-phones { from zone private; to zone public; rule phone1 { match { source-address 10.1.1.3/32; } then { source-nat { interface; } } } } } static { rule-set incoming-sip { from zone public; rule proxy { match { destination-address 172.16.1.2/32; } then { static-nat prefix 10.1.1.5/32; } } } proxy-arp { interface ge-0/0/2.0 { address { 172.16.1.2/32; } } } } [edit] user@host# show security policies from-zone private to-zone public { policy outgoing { match { source-address any; destination-address phone2; application junos-sip; } then { permit; } } } from-zone public to-zone private { policy incoming { match { source-address phone2; destination-address proxy; application junos-sip; } then { permit; } } }
デバイスの設定が完了したら、設定モードから を入力します commit
。
検証
設定が正常に機能していることを確認するには、次のタスクを実行します。
静的 NAT 設定の検証
目的
静的 NAT ルール セットに一致するトラフィックがあることを確認します。
アクション
動作モードから、 コマンドを show security nat static rule all
入力します。[翻訳がヒット] フィールドを表示して、ルールに一致するトラフィックを確認します。
user@host> show security nat static rule all Total static-nat rules: 1 Total referenced IPv4/IPv6 ip-prefixes: 2/0 Static NAT rule: proxy Rule-set: incoming-sip Rule-Id : 2 Rule position : 1 From zone : public Destination addresses : 172.16.1.2 Host addresses : 10.1.1.5 Netmask : 32 Host routing-instance : N/A Translation hits : 23 Successful sessions : 23 Failed sessions : 0 Number of sessions : 0
意味
フィールドは Translation hits
、静的NATルールに一致する23のトラフィックがあることを示しています。
SIP ALG ステータスの検証
目的
システムで SIP ALG が有効になっていることを確認します。
アクション
動作モードから、 コマンドを show security alg status
入力します。
user@host> show security alg status ALG Status : DNS : Enabled FTP : Enabled H323 : Disabled MGCP : Disabled MSRPC : Enabled PPTP : Enabled RSH : Disabled RTSP : Disabled SCCP : Disabled SIP : Enabled SQL : Enabled SUNRPC : Enabled TALK : Enabled TFTP : Enabled IKE-ESP : Disabled
意味
出力は、SIP ALG ステータスを次のように示しています。
-
イネーブル—SIP ALG がイネーブルであることを示します。
-
無効—SIP ALGが無効であることを示しています。
ソース NAT ルールの検証
目的
ソース NAT ルールの設定を確認します。
アクション
動作モードから、 コマンドを show security nat source rule all
入力します。
user@host> show security nat source rule all Total referenced IPv4/IPv6 ip-prefixes: 1/0 source NAT rule: phone1 Rule-set: sip-phones Rule-Id : 1 Rule position : 1 From zone : private To zone : public Match Source addresses : 10.1.1.3 - 10.1.1.3 Action : interface Persistent NAT type : N/A Persistent NAT mapping type : address-port-mapping Inactivity timeout : 0 Max session number : 0 Translation hits : 88 Successful sessions : 88 Failed sessions : 0 Number of sessions : 0
意味
フィールドは Translation hits
、ソースNATルールに一致する88のトラフィックがあることを示しています。
セキュリティ フロー セッションの検証
目的
NAT 変換 phone1 から phone2 への変換を確認します。
アクション
動作モードから、 コマンドを run show security flow session
入力します。
user@host> run show security flow session Session ID: 169, Policy name: allow-all/4, Timeout: 2, Valid In: 10.1.1.3/4 --> 172.16.1.4/52517;icmp, Conn Tag: 0x0, If: ge-0/0/0.0, Pkts: 1, Bytes: 84, Out: 172.16.1.4/52517 --> 172.16.1.1/25821;icmp, Conn Tag: 0x0, If: ge-0/0/1.0, Pkts: 1, Bytes: 84,
意味
出力には、電話2へのNAT変換電話1が表示されます。
例:3 ゾーン SIP ALG および NAT シナリオの設定
この例では、プライベート ゾーンの SIP プロキシ サーバーとパブリック ゾーンの静的 NAT を構成して、パブリック ゾーンの呼び出し元がプロキシ サーバーに登録できるようにする方法を示します。
要件
開始する前に、NAT が SIP ALG でどのように動作するかを理解します。 SIP ALG と NAT についてを参照してください。
概要
3ゾーンのSIP構成では、SIPプロキシサーバーは通常、呼び出し元および呼び出されたシステムから異なるゾーンにあります。このようなシナリオでは、アドレスとゾーンの設定、およびポリシーを追加して、すべてのシステムが互いにアクセスし、プロキシ サーバーにアクセスできるようにする必要があります。
この例では、phone1はプライベートゾーンのge-0/0/0.0インターフェイス上に、phone2はパブリックゾーンのge-0/0/2.0インターフェイス上に、プロキシサーバーはDMZ内のge-0/0/1.0インターフェイス上にあります。プライベート ゾーンで phone1 の静的 NAT ルールを設定します。次に、プライベート ゾーンから DMZ、DMZ からプライベート ゾーン、パブリック ゾーンから DMZ、DMZ からパブリック ゾーン、プライベート ゾーンからパブリック ゾーンまでを通過するトラフィックのポリシーを作成します。 図 9 の矢印は、パブリック ゾーンの phone2 がプライベート ゾーンで phone1 にコールを発信した場合の SIP シグナリング トラフィックのフローを示しています。セッションが開始されると、データは phone1 と phone2 の間で直接流れます。
この例では、NATを以下のように設定します。
受信 sip と呼ばれる静的 NAT ルール セットを設定し、宛先アドレス 10.1.2.3/32 のパブリック ゾーンからのパケットを一致させるルール phone1 を使用します。一致するパケットの場合、宛先 IP アドレスはプライベート アドレス 10.1.1.3/32 に変換されます。
インターフェイスge-0/0/1.0でアドレス10.1.2.3/32のプロキシARPを設定し、このアドレスのインターフェイスで受信したARP要求にシステムが応答できるようにします。
電話1からプロキシサーバー、および電話1からphone2への通信のためにインターフェイスNATを有効にするルールr1を使用して、sip-phoneと呼ばれる2番目のルールセットを設定します。
構成
手順
CLI クイックコンフィギュレーション
この例のセクションを迅速に設定するには、以下のコマンドをコピーしてテキスト ファイルに貼り付け、改行を削除し、ネットワーク設定に合わせて必要な詳細を変更し、コマンドを 階層レベルの [edit]
CLI にコピー アンド ペーストして、設定モードから を入力 commit
します。
set security nat static rule-set sip-phone from zone private set security nat static rule-set sip-phone from zone public set security nat static rule-set sip-phone rule phone1 match destination-address 10.1.2.3/32 set security nat static rule-set sip-phone rule phone1 then static-nat prefix 10.1.1.3/32 set interfaces ge-0/0/0 unit 0 family inet address 10.1.1.1/24 set interfaces ge-0/0/1 unit 0 family inet address 10.1.2.2/24 set interfaces ge-0/0/2 unit 0 family inet address 172.16.1.1/24 set security zones security-zone private address-book address phone1 10.1.1.3/32 set security zones security-zone private interfaces ge-0/0/0.0 set security zones security-zone public address-book address phone2 172.16.1.4/32 set security zones security-zone public interfaces ge-0/0/2.0 set security zones security-zone dmz address-book address proxy 10.1.2.4/32 set security zones security-zone dmz interfaces ge-0/0/1.0 set security nat source rule-set sip-phones from zone private set security nat source rule-set sip-phones to zone dmz set security nat source rule-set sip-phones rule r1 match source-address 10.1.1.3/32 set security nat source rule-set sip-phones rule r1 then source-nat interface set security policies from-zone private to-zone dmz policy private-to-proxy match source-address phone1 set security policies from-zone private to-zone dmz policy private-to-proxy match destination-address proxy set security policies from-zone private to-zone dmz policy private-to-proxy match application junos-sip set security policies from-zone private to-zone dmz policy private-to-proxy then permit set security policies from-zone public to-zone dmz policy public-to-proxy match source-address phone2 set security policies from-zone public to-zone dmz policy public-to-proxy match destination-address proxy set security policies from-zone public to-zone dmz policy public-to-proxy match application junos-sip set security policies from-zone public to-zone dmz policy public-to-proxy then permit set security policies from-zone public to-zone private policy public-to-private match source-address phone2 set security policies from-zone public to-zone private policy public-to-private match destination-address phone1 set security policies from-zone public to-zone private policy public-to-private match application junos-sip set security policies from-zone public to-zone private policy public-to-private then permit set security policies from-zone private to-zone public policy private-to-public match source-address phone1 set security policies from-zone private to-zone public policy private-to-public match destination-address phone2 set security policies from-zone private to-zone public policy private-to-public match application junos-sip set security policies from-zone private to-zone public policy private-to-public then permit set security policies from-zone dmz to-zone private policy proxy-to-private match source-address proxy set security policies from-zone dmz to-zone private policy proxy-to-private match destination-address phone1 set security policies from-zone dmz to-zone private policy proxy-to-private match application junos-sip set security policies from-zone dmz to-zone private policy proxy-to-private then permit set security policies from-zone dmz to-zone public policy proxy-to-public match source-address proxy set security policies from-zone dmz to-zone public policy proxy-to-public match destination-address phone2 set security policies from-zone dmz to-zone public policy proxy-to-public match application junos-sip set security policies from-zone dmz to-zone public policy proxy-to-public then permit
手順
次の例では、設定階層内のさまざまなレベルに移動する必要があります。その方法の詳細については、 CLIユーザーガイドの設定モードでのCLIエディターの使用を参照してください。
プライベートゾーンのSIPプロキシサーバーとパブリックゾーンの静的NATを設定するには:
静的 NAT のルール セットを作成し、それにルールを割り当てます。
[edit security nat static rule-set] user@host# sip-phone from zone private user@host# sip-phone from zone public user@host# sip-phone rule phone1 match destination-address 10.1.2.3/32 user@host# phone1 then static-nat prefix 10.1.1.3/32
インターフェイスを設定します。
[edit] user@host# set interfaces ge-0/0/0 unit 0 family inet address 10.1.1.1/24 user@host# set interfaces ge-0/0/1 unit 0 family inet address 10.1.2.2/24 user@host# set interfaces ge-0/0/2 unit 0 family inet address 172.16.1.1/24
セキュリティ ゾーンを設定します。
[edit security zones] user@host# set security-zone private interfaces ge-0/0/0.0 user@host# set security-zone public interfaces ge-0/0/2.0 user@host# set security-zone dmz interfaces ge-0/0/1.0
セキュリティ ゾーンにアドレスを割り当てます。
[edit security zones] user@host# set security-zone private address-book address phone1 10.1.1.3/32 user@host# set security-zone public address-book address phone2 172.16.1.4/32 user@host# set security-zone dmz address-book address proxy 10.1.2.4/32
電話1からプロキシへの通信用にインターフェイスNATを設定します。
[edit security nat source rule-set sip-phones] user@host# set from zone private user@host# set to zone dmz user@host# set rule r1 match source-address 10.1.1.3/32 user@host# set rule r1 then source-nat interface
セキュリティポリシーを設定して、ゾーンプライベートからゾーンDMZへのトラフィックを許可します。
[edit security policies from-zone private to-zone dmz policy private-to-proxy] user@host# set match source-address phone1 user@host# set match destination-address proxy user@host# set match application junos-sip user@host# set then permit
ゾーンパブリックからゾーンDMZへのトラフィックを許可するセキュリティポリシーを設定します。
[edit security policies from-zone public to-zone dmz policy public-to-proxy] user@host# set match source-address phone2 user@host# set match destination-address proxy user@host# set match application junos-sip user@host# set then permit
セキュリティポリシーを設定して、ゾーンプライベートからゾーンパブリックへのトラフィックを許可します。
[edit security policies from-zone private to-zone public policy private-to-public] user@host# set match source-address phone1 user@host# set match destination-address phone2 user@host# set match application junos-sip user@host# set then permit
ゾーンパブリックからゾーンプライベートへのトラフィックを許可するセキュリティポリシーを設定します。
[edit security policies from-zone public to-zone private policy public-to-private] user@host# set match source-address phone2 user@host# set match destination-address phone1 user@host# set match application junos-sip user@host# set then permit
セキュリティポリシーを設定して、ゾーンDMZからゾーンプライベートへのトラフィックを許可します。
[edit security policies from-zone dmz to-zone private policy proxy-to-private] user@host# set match source-address proxy user@host# set match destination-address phone1 user@host# set match application junos-sip user@host# set then permit
ゾーンDMZからゾーンパブリックへのトラフィックを許可するセキュリティポリシーを設定します。
[edit security policies from-zone dmz to-zone public policy proxy-to-public] user@host# set match source-address proxy user@host# set match destination-address phone2 user@host# set match application junos-sip user@host# set then permit
結果
設定モードから、 、show security nat
show security zones
および のコマンドをshow interfaces
入力して設定をshow security policies
確認します。出力に意図した設定が表示されない場合は、この例の設定手順を繰り返して修正します。
[edit] user@host# show interfaces ge-0/0/0 { unit 0 { family inet { address 10.1.1.1/24; } } } ge-0/0/1 { unit 0 { family inet { address 10.1.2.2/24; } } } ge-0/0/2 { unit 0 { family inet { address 172.16.1.1/24; } } }
[edit] user@host# show security zones security-zone private { address-book { address phone1 10.1.1.3/32; } interfaces { ge-0/0/0.0; } } security-zone public { address-book { address phone2 172.16.1.4/32; } interfaces { ge-0/0/2.0; } } security-zone dmz { address-book { address proxy 10.1.2.4/32; } interfaces { ge-0/0/1.0; } }
[edit] user@host# show security nat static { rule-set sip-phone { from zone [ private public ]; rule phone1 { match { destination-address 10.1.2.3/32; } then { static-nat { prefix { 10.1.1.3/32; } } } } } } source { rule-set sip-phones { from zone private; to zone dmz; rule r1 { match { source-address 10.1.1.3/32; } then { source-nat { interface; } } } } } proxy-arp { interface ge-0/0/1.0 { address { 10.1.2.3/32; } } }
[edit] user@host# show security policies from-zone private to-zone dmz { policy private-to-proxy { match { source-address phone1; destination-address proxy; application junos-sip; } then { permit; } } } from-zone public to-zone dmz { policy public-to-proxy { match { source-address phone2; destination-address proxy; application junos-sip; } then { permit; } } } from-zone public to-zone private { policy public-to-private { match { source-address phone2; destination-address phone1; } then { permit; } } } from-zone private to-zone public { policy private to-zone public { match { source-address phone1; destination-address phone2; } then { permit; } } } from-zone dmz to-zone private { policy proxy-to-private { match { source-address proxy; destination-address phone2; application junos-sip; } then { permit; } } }
デバイスの設定が完了したら、設定モードから を入力します commit
。
検証
設定が正常に機能していることを確認するには、次のタスクを実行します。
ソース NAT ルールの使用の確認
目的
ソース NAT ルールに一致するトラフィックがあることを確認します。
アクション
動作モードから、 コマンドを show security nat source rule all
入力します。[翻訳がヒット] フィールドを表示して、ルールに一致するトラフィックを確認します。
user@host> show security nat source rule all source NAT rule: r1 Rule-set: sip-phones Rule-Id : 1 Rule position : 1 From zone : private To zone : public Match Source addresses : 0.0.0.0 - 255.255.255.255 Destination port : 0 - 0 Action : interface Persistent NAT type : N/A Persistent NAT mapping type : address-port-mapping Inactivity timeout : 0 Max session number : 0 Translation hits : 0 Successful sessions : 0 Failed sessions : 0 Number of sessions : 0
意味
は Translation hits field
、ソースNATルールに一致するトラフィックがないことを示しています。
静的 NAT ルールの使用の検証
目的
静的 NAT ルールに一致するトラフィックがあることを確認します。
アクション
動作モードから、 コマンドを show security nat static rule all
入力します。[翻訳がヒット] フィールドを表示して、ルールに一致するトラフィックを確認します。
user@host> show security nat static rule all Total static-nat rules: 1 Total referenced IPv4/IPv6 ip-prefixes: 2/0 Static NAT rule: phone1 Rule-set: sip-phone Rule-Id : 1 Rule position : 1 From zone : private : public Destination addresses : 10.1.2.3 Host addresses : 10.1.2.4 Netmask : 32 Host routing-instance : N/A Translation hits : 127 Successful sessions : 127 Failed sessions : 0 Number of sessions : 0
意味
フィールドには Translation hits
、静的NATルールに一致するトラフィックが表示されます。
SIP ALG ステータスの検証
目的
システムで SIP ALG が有効になっていることを確認します。
アクション
動作モードから、 コマンドを show security alg status
入力します。
user@host> show security alg status ALG Status : DNS : Enabled FTP : Enabled H323 : Disabled MGCP : Disabled MSRPC : Enabled PPTP : Enabled RSH : Disabled RTSP : Disabled SCCP : Disabled SIP : Enabled SQL : Enabled SUNRPC : Enabled TALK : Enabled TFTP : Enabled IKE-ESP : Disabled
意味
出力は、SIP ALG ステータスを次のように示しています。
イネーブル—SIP ALG がイネーブルであることを示します。
無効—SIP ALGが無効であることを示しています。