Comments
Description
Transcript
SBC ファイアウォール トラバーサルおよび NAT の実装
SBC ファイアウォール トラバーサルおよび NAT の実装 SBC を利用すると、隣接ネットワークの境界上のファイアウォールおよび NAT(ネットワーク アドレ ス変換)の背後にあるデバイスとの間で VoIP シグナリングとメディアを受信および転送できます。デ バイスまたはファイアウォールをアップグレードする必要はありません。つまり、SBC は、コール シ グナリング ヘッダー内の IP アドレスとポート、およびこれらのメッセージに添付された SDP ブロッ クを書き換えることにより、この処理を行います。SBC は、ピンホールをオープン状態に保つオプ ションをサポートしていません。その代わりに、SBC は、シグナリング ピンホール メンテナンスの メッセージとメディアの RTP パケットを登録します。 (現在、H.323 SBC は、対称応答ルーティングのための SIP 拡張(RFC 3581)をサポートしています。 はサポートしていません)。 (注) この章で使用するコマンドの詳細な説明については、『Cisco IOS XR Session Border Controller Command Reference』を参照してください。この章で言及する他のコマンドについては、コマンド リ ファレンス マスター インデックス(オンライン検索)を使用して、該当するマニュアルを参照してく ださい。 SBC ファイアウォール トラバーサルおよび NAT の実装機能の履歴 リリース 変更内容 リリース 3.3.0 この機能は、Cisco XR 12000 シリーズ ルータで導入されました。 リリース 3.4.0 変更なし。 リリース 3.5.0 変更なし。 リリース 3.5.1 NAT 実装機能を変更しました。 内容 • 「ファイアウォールトラバーサルおよび NAT の実装の前提条件」(P.182) • 「ファイアウォール トラバーサルおよび NAT に関する情報」(P.182) • 「ファイアウォール トラバーサルおよび NAT の実装」(P.184) • 「ファイアウォール トラバーサルおよび NAT の実装の設定例」(P.186) • 「その他の関連資料」(P.186) • 「関連コマンドのまとめ」(P.188) Cisco IOS XR セッション ボーダー コントローラ コンフィギュレーション ガイド OL-12289-02-J SBC-181 SBC ファイアウォール トラバーサルおよび NAT の実装 ファイアウォールトラバーサルおよび NAT の実装の前提条件 ファイアウォールトラバーサルおよび NAT の実装の前提条 件 次に、SBC ファイアウォール トラバーサルおよび NAT を実装するための前提条件を示します。 • 使用される SBC コマンドの適切なタスク ID を含むタスク グループに関連付けられているユーザ グループに属している必要があります。ユーザ グループおよびタスク ID の詳細については、 『Cisco IOS XR System Security Configuration Guide 』の「Configuring AAA Services on Cisco IOS XR Software」モジュールを参照してください。 • SBC ソフトウェアのパッケージ インストレーション エンベロープ(PIE)をインストールしてア クティブにする必要があります。 PIE のインストールに関する詳細については、『Cisco IOS XR Getting Started Guide』の 「Upgrading and Managing Cisco IOS XR Software 」モジュールを参照してください。 • インターワーキング DTMF を実装する前に、SBC を作成しておく必要があります。手順について は、「SBC 設定の前提条件」モジュールを参照してください。 • 隣接は、ファイアウォール トラバーサルおよび NAT を実装してから設定する必要があります。手 順については、「SBC 隣接の実装」モジュールを参照してください。 ファイアウォール トラバーサルおよび NAT に関する情報 SBC を利用すると、隣接ネットワークの境界上のファイアウォールおよび NAT(ネットワーク アドレ ス変換)の背後にあるデバイスとの間で VoIP シグナリングとメディアを受信および転送できます。デ バイスまたはファイアウォールをアップグレードする必要はありません。つまり、SBC は、コール シ グナリング ヘッダー内の IP アドレスとポート、およびこれらのメッセージに添付された SDP ブロッ クを書き換えることにより、この処理を行います。 ファイアウォールは、基本的なパケット フィルタリングを行うことにより、不要なトラフィックが ネットワークに出入りするのを防ぎます。主にパケットのヘッダーを検査することによってパケットの フィルタリングを行い、パケットのペイロードの解析や認識を行いません。したがって、すべてのタイ プの不要なトラフィックをフィルタリングするわけではありません。たとえば、ファイアウォールは Call Admission Control(CAC; コール アドミッション制御)を行いません(SBC アプリケーションが 行う)。 しかし、ファイアウォールは、大きなカテゴリの不要なトラフィックを効率的にフィルタリングし、 SBC などのアプリケーション認識デバイスに処理をほとんど任せないため、有益です。外部ファイア ウォールは、外部ネットワークからのパケットをフィルタリングしますが、内部ネットワークからのす べてのパケットがフィルタリングされずにパススルーします。内部ファイアウォールは、内部ネット ワークからのパケットをフィルタリングしますが、外部ネットワークからのすべてのパケットがフィル タリングされずにパススルーします(すでに外部ファイアウォールでパススルーしているため)。 ファイアウォールは、デフォルトではネットワークからのパケットを受け入れませんが、特定のパケッ トを選択して受け入れるようにするルールが設定されます。したがって、パケットは、デフォルト設定 ではなく、明示的な設定に基づいてネットワークへの出入りを許可されます。 SBC アプリケーションには、NAT 機能も組み込まれています。リリース 3.5.1 の機能拡張によって、 SBC はエンドポイントが NAT デバイスの背後にあるかどうかを自動的に検出できるようになりまし た。NAT はネットワークを異なるアドレス空間に分離します。SBC の NAT コンポーネントは、内部 ネットワークのアドレス空間を外部ネットワークのアドレス空間から分離します。NAT は、{external address, port} から {internal address, port} へのマッピングおよびその逆のマッピングのテーブルを維 Cisco IOS XR セッション ボーダー コントローラ コンフィギュレーション ガイド SBC-182 OL-12289-02-J SBC ファイアウォール トラバーサルおよび NAT の実装 ファイアウォール トラバーサルおよび NAT に関する情報 持します。このテーブルはデュアル インデックス テーブルであるため、特定のマッピングは、内部ま たは外部のアドレス指定情報により検索できます。NAT はこのテーブルを使用して、転送する IP パ ケットのヘッダーを書き換えます。 NAT は、外部ネットワークから IP パケットを受信すると、テーブル内でパケットの宛先アドレスと ポート(外部アドレス空間からのアドレスになる)を検索します。マッピングが検出された場合、IP パケットの宛先アドレス ヘッダーは、テーブルからの対応する内部アドレスおよびポートを含むよう に変更され、パケットは内部ネットワークに転送されます。マッピングが検出されない場合、パケット は廃棄されます。 NAT は、内部ネットワークから IP パケットを受信すると、テーブル内でパケットの送信元アドレスと ポート(内部アドレス空間からのアドレスになる)を検索します。マッピングが検出された場合、IP パケットの送信元アドレス ヘッダーは、テーブルからの対応する外部アドレスおよびポートを含むよ うに変更され、パケットは外部ネットワークに転送されます。マッピングが検出されない場合、新しい マッピングが作成されます。NAT は、外部アドレス空間からの新しい外部アドレスおよびポートを、 パケット(およびこの送信元アドレスおよびポート タプルからのすべての将来のパケット)に動的に 割り当てます。 SBC は、ピンホールをオープン状態に保つオプションをサポートしていません。その代わりに、SBC は、シグナリング ピンホール メンテナンスのメッセージとメディアの RTP パケットを登録します。こ の問題を解決するには、カスタマーの NAT がピンホールを開き、IP Phone がシグナリング パケットお よびメディア パケットをパブリック ネットワークに送信できるようにし、カスタマーのファイア ウォールがこれらのパケットを通過させる必要があります。 したがって、パブリック ネットワークからのインバウンド シグナリングおよびメディアは、カスタ マーの NAT のパブリック ネットワーク側にあるピンホールのアドレスとポートに誘導することによ り、カスタマーのファイアウォールと NAT をトラバースすることができます。シグナリングとメディ アでは、ピンホールのライフタイムが異なります。 • シグナリング ピンホールは、いったん作成されると、すべてのコール シグナリングで再利用され ます。 • メディア ピンホールは、各メディア ストリームに対して新しく作成されます。メディア ストリー ムの送信元および宛先のポートは、コール単位で動的に割り当てられるからです。 シグナリング ピンホールは、IP Phone が最初にオンラインになったときに完全に作成され、IP Phone が再びオフラインになるまで開いています。メディア ピンホールは、確立された各メディア セッショ ンで IP Phone が最初にメディア パケットを送信したときに作成されます。 図 14 に、SBC によるファイアウォール トラバーサルと NAT のサポートのためのデータ パスを示しま す。 Cisco IOS XR セッション ボーダー コントローラ コンフィギュレーション ガイド OL-12289-02-J SBC-183 SBC ファイアウォール トラバーサルおよび NAT の実装 ファイアウォール トラバーサルおよび NAT の実装 図 14 ファイアウォール トラバーサルおよび NAT SIP ࡊࡠࠠࠪ B2BUA IP2㧦30.3.3.3 SIP UA B㧦IP3㧦20.2.2.2 SIP UA A㧦IP1㧦10.1.1.1 REGISTER IP ̒ ࠪࠣ࠽ࡦࠣ ࠬࠢࡆࡦࠣ INVITE㧦࡙ࠩ B 㧔via1ޔcontact1ޔ SDP1㧕 ̒ ࠻ࡐࡠࠫ 㕖␜ NAT/FW 200 OK IP INVITE㧦࡙ࠩ B 㧔via1ޔcontact1ޔ SDP2㧕 SBE 200 OK SDP4 㧔IP4 ߩ rx㧕 NAT/FW 200 OK SDP3 㧔IP3 ߩ rx㧕 RTP 158013 DBE RTP ファイアウォール トラバーサルおよび NAT の実装 次のタスクでは、ファイアウォール トラバーサルを実装し、隣接のすべてのエンドポイントが NAT デ バイスの背後にあることを想定するように SBC を設定します。 手順の概要 1. configure 2. sbc service-name 3. sbe 4. adjacency sip adjacency-name 5. nat force-on 6. signaling-address ipv4 ipv4_IP_address 7. signaling-port port_num 8. remote-address ipv4 ipv4_IP_address/prefix 9. signaling-peer [gk] peer_name 10. signaling-peer-port port_num 11. show 12. commit 13. attach 14. commit Cisco IOS XR セッション ボーダー コントローラ コンフィギュレーション ガイド SBC-184 OL-12289-02-J SBC ファイアウォール トラバーサルおよび NAT の実装 ファイアウォール トラバーサルおよび NAT の実装 手順の詳細 ステップ 1 コマンドまたはアクション 目的 configure グローバル コンフィギュレーション モードをイネーブル にします。 例: RP/0/0/CPU0:router# configure ステップ 2 sbc service-name SBC サービスのモードを開始します。 例: す。 service-name 引数を使用して、サービスの名前を定義しま RP/0/0/CPU0:router(config)# sbc mysbc ステップ 3 SBC サービス内で SBE エンティティのモードを開始しま sbe す。 例: RP/0/0/CPU0:router(config-sbc)# sbe ステップ 4 SBE SIP 隣接のモードを開始します。 adjacency sip adjacency-name • adjacency-name 引数を使用して、サービスの名前を定 例: 義します。 RP/0/0/CPU0:router(config-sbc-sbe)# adjacency sip SIP_7301_1 ステップ 5 nat force-on 例: RP/0/0/CPU0:router(config-sbc-sbe-adj-sip)# nat force-on ステップ 6 signaling-address ipv4 ipv4_IP_address すべてのエンドポイントが NAT デバイスの背後にあるも のとして SBC を設定します。エンドポイントはどれも NAT デバイスの背後にはないものとして SBC を設定する には、nat force-off コマンドを使用します。 SIP 隣接のローカル IPv4 シグナリング アドレスを指定し ます。 例: RP/0/0/CPU0:router(config-sbc-sbe-adj-sip)# signaling-address ipv4 10.1.0.2 ステップ 7 SIP 隣接のローカル シグナリング ポートを指定します。 signaling-port port_num 例: RP/0/0/CPU0:router(config-sbc-sbe-adj-sip)# signaling-port 5000 ステップ 8 remote-address ipv4 ipv4_IP_address/prefix 例: 隣接を通じてコンタクトされる一連のリモート シグナリン グ ピアを、特定の IP アドレス プレフィックスを持つもの に限定します。 RP/0/0/CPU0:router(config-sbc-sbe--adj-sip)# remote-address ipv4 1.2.3.0/24 ステップ 9 SIP 隣接が使用するリモート シグナリング ピアを指定しま signaling-peer [gk] peer_name す。 例: RP/0/0/CPU0:router(config-sbc-sbe-adj-sip)# signaling-peer athene Cisco IOS XR セッション ボーダー コントローラ コンフィギュレーション ガイド OL-12289-02-J SBC-185 SBC ファイアウォール トラバーサルおよび NAT の実装 ファイアウォール トラバーサルおよび NAT の実装の設定例 コマンドまたはアクション ステップ 10 signaling-peer-port port_num 目的 使用する隣接にリモート シグナリング ピア ポートを指定 します。 例: RP/0/0/CPU0:router(config-sbc-sbe--adj-sip)# signaling-peer-port 123 ステップ 11 show 現在のコンフィギュレーションを表示します。 例: RP/0/0/CPU0:router(config-sbc-sbe--adj-sip)# show ステップ 12 commit 設定変更を保存します。実行コンフィギュレーション ファ イルに変更を保存し、コンフィギュレーション セッション を継続するには、commit コマンドを使用します。 例: RP/0/0/CPU0:router(config-sbc-sbe-adj-sip)# commit ステップ 13 attach 隣接をアタッチします。 例: RP/0/0/CPU0:router(config-sbc-sbe-adj-sip)# attach ステップ 14 commit 設定変更を保存します。実行コンフィギュレーション ファ イルに変更を保存し、コンフィギュレーション セッション を継続するには、commit コマンドを使用します。 例: RP/0/0/CPU0:router(config-sbc-sbe-adj-sip)# commit ファイアウォール トラバーサルおよび NAT の実装の設定例 次の例では、ファイアウォール トラバーサルと NAT を実装します。 configure sbc mysbc sbe adjacency sip SIP_7301_1 nat force-on signaling-address ipv4 88.88.121.102 signaling-port 5060 remote-address ipv4 10.10.111.0/24 signaling-peer 10.10.111.41 signaling-peer-port 5060 commit attach commit その他の関連資料 次の各項では、SBC ファイアウォール トラバーサルおよび NAT の実装に関連する参考資料を示しま す。 Cisco IOS XR セッション ボーダー コントローラ コンフィギュレーション ガイド SBC-186 OL-12289-02-J SBC ファイアウォール トラバーサルおよび NAT の実装 その他の関連資料 関連資料 関連項目 マニュアル タイトル Cisco IOS XR マスター コマンド リファレンス 『Cisco IOS XR Master Commands List』 Cisco IOS XR SBC インターフェイス コンフィギュレーショ 『Cisco IOS XR Session Border Controller Command Reference』 ン コマンド Cisco IOS XR ソフトウェアを使用するルータを初回に起動 『Cisco IOS XR Getting Started Guide』 し設定するための情報 Cisco IOS XR コマンド モード 『Cisco IOS XR Command Mode Reference』 標準 標準 タイトル この機能でサポートされる新規の標準または変更された標準 — はありません。また、既存の標準のサポートは変更されてい ません。 MIB MIB MIB のリンク — Cisco IOS XR ソフトウェアを使用して MIB の場所を特定し てダウンロードするには、次の URL にある Cisco MIB Locator を使用して、[Cisco Access Products] メニューから プラットフォームを選択します。 http://cisco.com/public/sw-center/netmgmt/cmtk/mibs.shtml RFC RFC RFC 3581 タイトル 『An Extension to the Session Initiation Protocol (SIP) for Symmetric Response Routing』 Cisco IOS XR セッション ボーダー コントローラ コンフィギュレーション ガイド OL-12289-02-J SBC-187 SBC ファイアウォール トラバーサルおよび NAT の実装 関連コマンドのまとめ シスコのテクニカル サポート 説明 リンク シスコのテクニカル サポート Web サイトでは、製品、テク http://www.cisco.com/en/US/support/index.html ノロジー、ソリューション、技術的なヒント、およびツール へのリンクなどの、数千ページに及ぶ技術情報が検索可能で す。Cisco.com に登録済みのユーザは、このページから詳細 情報にアクセスできます。 関連コマンドのまとめ ここでは、Cisco XR 12000 シリーズ ルータでのファイアウォール トラバーサルおよび NAT の設定に 関連するコマンドをアルファベット順に示します。コマンドの詳細については、『Cisco IOS XR Session Border Controller Command Reference』を参照してください。 コマンド 目的 adjacency sip adjacency-name SBE SIP 隣接のモードを開始します。 nat-enable SIP 隣接での NAT サポートをイネーブルにします。 signaling-address ipv4 ipv4_IP_address SIP 隣接のローカル IPv4 シグナリング アドレスを指定しま す。 signaling-port port_num SIP 隣接のローカル シグナリング ポートを指定します。 remote-address ipv4 ipv4_IP_address/prefix 隣接を通じてコンタクトされる一連のリモート シグナリン グ ピアを、特定の IP アドレス プレフィックスを持つものに 限定します。 signaling-peer [gk] peer_name SIP 隣接が使用するリモート シグナリング ピアを指定しま す。 signaling-peer-port port_num 使用する隣接にリモート シグナリング ピア ポートを指定し ます。 Cisco IOS XR セッション ボーダー コントローラ コンフィギュレーション ガイド SBC-188 OL-12289-02-J