Cisco IOS XR セッション ボーダー コントローラ コンフィギュレーション ガイド Cisco IOS XR Software Release 3.5
SBC ファイアウォール トラバーサルおよび NAT の実装
SBC ファイアウォール トラバーサルおよび NAT の実装
発行日;2013/09/18 | 英語版ドキュメント(2013/05/14 版) | ドキュメントご利用ガイド | ダウンロード ; この章pdf , ドキュメント全体pdf (PDF - 6MB) | フィードバック

目次

SBC ファイアウォール トラバーサルおよび NAT の実装

内容

ファイアウォールトラバーサルおよび NAT の実装の前提条件

ファイアウォール トラバーサルおよび NAT に関する情報

ファイアウォール トラバーサルおよび NAT の実装

ファイアウォール トラバーサルおよび NAT の実装の設定例

その他の関連資料

関連資料

標準

MIB

RFC

シスコのテクニカル サポート

関連コマンドのまとめ

SBC ファイアウォール トラバーサルおよび NAT の実装

SBC を利用すると、隣接ネットワークの境界上のファイアウォールおよび NAT(ネットワーク アドレス変換)の背後にあるデバイスとの間で VoIP シグナリングとメディアを受信および転送できます。デバイスまたはファイアウォールをアップグレードする必要はありません。つまり、SBC は、コール シグナリング ヘッダー内の IP アドレスとポート、およびこれらのメッセージに添付された SDP ブロックを書き換えることにより、この処理を行います。SBC は、ピンホールをオープン状態に保つオプションをサポートしていません。その代わりに、SBC は、シグナリング ピンホール メンテナンスのメッセージとメディアの RTP パケットを登録します。

SBC は、対称応答ルーティングのための SIP 拡張(RFC 3581)をサポートしています。(現在、H.323 はサポートしていません)。


) この章で使用するコマンドの詳細な説明については、『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 の実装の前提条件

次に、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} へのマッピングおよびその逆のマッピングのテーブルを維持します。このテーブルはデュアル インデックス テーブルであるため、特定のマッピングは、内部または外部のアドレス指定情報により検索できます。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 のサポートのためのデータ パスを示します。

図 14 ファイアウォール トラバーサルおよび NAT

 

ファイアウォール トラバーサルおよび 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

手順の詳細

 

コマンドまたはアクション
目的

ステップ 1

configure

 

RP/0/0/CPU0:router# configure

グローバル コンフィギュレーション モードをイネーブルにします。

ステップ 2

sbc service-name

 

RP/0/0/CPU0:router(config)# sbc mysbc

SBC サービスのモードを開始します。

service-name 引数を使用して、サービスの名前を定義します。

ステップ 3

sbe

 

RP/0/0/CPU0:router(config-sbc)# sbe

SBC サービス内で SBE エンティティのモードを開始します。

ステップ 4

adjacency sip adjacency-name

 

RP/0/0/CPU0:router(config-sbc-sbe)# adjacency sip SIP_7301_1

SBE SIP 隣接のモードを開始します。

adjacency-name 引数を使用して、サービスの名前を定義します。

ステップ 5

nat force-on

 

RP/0/0/CPU0:router(config-sbc-sbe-adj-sip)# nat force-on

すべてのエンドポイントが NAT デバイスの背後にあるものとして SBC を設定します。エンドポイントはどれも NAT デバイスの背後にはないものとして SBC を設定するには、 nat force-off コマンドを使用します。

ステップ 6

signaling-address ipv4 ipv4_IP_address

 

RP/0/0/CPU0:router(config-sbc-sbe-adj-sip)# signaling-address ipv4 10.1.0.2

SIP 隣接のローカル IPv4 シグナリング アドレスを指定します。

ステップ 7

signaling-port port_num

 

RP/0/0/CPU0:router(config-sbc-sbe-adj-sip)# signaling-port 5000

SIP 隣接のローカル シグナリング ポートを指定します。

ステップ 8

remote-address ipv4 ipv4_IP_address/prefix

 

RP/0/0/CPU0:router(config-sbc-sbe--adj-sip)# remote-address ipv4 1.2.3.0/24

隣接を通じてコンタクトされる一連のリモート シグナリング ピアを、特定の IP アドレス プレフィックスを持つものに限定します。

ステップ 9

signaling-peer [ gk ] peer_name

 

RP/0/0/CPU0:router(config-sbc-sbe-adj-sip)# signaling-peer athene

SIP 隣接が使用するリモート シグナリング ピアを指定します。

ステップ 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

 

RP/0/0/CPU0:router(config-sbc-sbe-adj-sip)# commit

設定変更を保存します。実行コンフィギュレーション ファイルに変更を保存し、コンフィギュレーション セッションを継続するには、 commit コマンドを使用します。

ステップ 13

attach

 

RP/0/0/CPU0:router(config-sbc-sbe-adj-sip)# attach

隣接をアタッチします。

ステップ 14

commit

 

RP/0/0/CPU0:router(config-sbc-sbe-adj-sip)# commit

設定変更を保存します。実行コンフィギュレーション ファイルに変更を保存し、コンフィギュレーション セッションを継続するには、 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 マスター コマンド リファレンス

『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』

シスコのテクニカル サポート

 

説明
リンク

シスコのテクニカル サポート Web サイトでは、製品、テクノロジー、ソリューション、技術的なヒント、およびツールへのリンクなどの、数千ページに及ぶ技術情報が検索可能です。Cisco.com に登録済みのユーザは、このページから詳細情報にアクセスできます。

http://www.cisco.com/en/US/support/index.html

関連コマンドのまとめ

ここでは、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

使用する隣接にリモート シグナリング ピア ポートを指定します。