Cisco IOS XR セッション ボーダ コントローラ コンフィギュレーション ガイド Release 3.6
SBC ファイアウォール トラバーサル および NAT の実装
SBC ファイアウォール トラバーサルおよび NAT の実装
発行日;2012/02/03 | ドキュメントご利用ガイド | ダウンロード ; この章pdf , ドキュメント全体pdf (PDF - 5MB) | フィードバック

目次

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

この章の構成

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

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

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

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

その他の関連資料

関連マニュアル

規格

MIB

RFC

技術サポート

関連コマンドのサマリ

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

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

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


) この章で使用されるコマンドの詳細については、『Cisco IOS XR Session Border Controller Command Reference』を参照してください。この章に記載されたその他のコマンドのマニュアルを特定するには、コマンド リファレンスのマスター インデックスを使用するか、またはオンラインで検索してください。


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

 

リリース
変更点

Release 3.3.0

Cisco XR 12000 シリーズ ルータにこの機能が追加されました。

Release 3.4.0

変更なし

Release 3.5.0

変更なし

Release 3.5.1

NAT の実装機能を変更しました。

Release 3.6.0

変更なし

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

次に、SBC ファイアウォール トラバーサルおよび NAT を実装するための前提条件を示します。

ユーザは、使用する SBC コマンドに対応した適切なタスク ID が含まれているタスク グループに関連付けられたユーザ グループに属している必要があります。ユーザ グループおよびタスク ID に関する詳細は、『 Cisco IOS XR System Security Configuration Guide 』の「Configuring AAA Services on Cisco IOS XR Software」モジュールを参照してください。

SBC ソフトウェアの Installation Envelope(PIE)をインストールし、アクティブにする必要があります。

PIE のインストール方法の詳細については、『 Cisco IOS XR Getting Started Guide 』の「 Upgrading and Managing Cisco IOS XR Software 」を参照してください。

インターワーキング DTMF を実装する前に、SBC を作成しておく必要があります。「SBC 設定の前提条件」に記載された手順に従ってください。

隣接は、ファイアウォール トラバーサルおよび NAT を実装してから設定する必要があります。「SBC 隣接の実装」 モジュールを参照してください。

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

SBC では、VoIP シグナリングとメディアを、隣接ネットワークの境界にあるファイアウォールと NAT の背後のデバイスから受信したり、デバイスに誘導することができます。デバイスまたはファイアウォールをアップグレードする必要はありません。つまり、SBC は、コール シグナリング ヘッダー内の IP アドレスとポート、およびこれらのメッセージに添付された SDP ブロックを書き換えることにより、この処理を行います。

ファイアウォールは、基本的なパケット フィルタリングを行うことにより、不要なトラフィックがネットワークを出入りするのを防ぎます。パケットのヘッダーを完全に検査することによりパケットのフィルタリングを行い、パケットのペイロードの解析や認識を行いません。したがって、すべてのタイプの不要なトラフィックをフィルタリングするわけではありません。たとえば、ファイアウォールは Call Admission Control(CAC; コール アドミッション制御)を行いません(SBC アプリケーションが行う)。

しかし、ファイアウォールは、大きなカテゴリの不要なトラフィックを効率的にフィルタリングし、SBC などのアプリケーション アウェアなデバイスに処理をほとんど任せないため、有益です。外部ファイアウォールは、外部ネットワークからのパケットをフィルタリングしますが、内部ネットワークからのすべてのパケットがフィルタリングされずにパススルーします。内部ファイアウォールは、内部ネットワークからのパケットをフィルタリングしますが、外部ネットワークからのすべてのパケットがフィルタリングされずにパススルーします(すでに外部ファイアウォールをパススルーしているため)。

ファイアウォールは、デフォルトではネットワークからのパケットを受け入れませんが、特定のパケットを選択して受け入れるようにするルールが設定されます。したがって、パケットは、デフォルト設定ではなく、明示的な設定に基づいてネットワークへの出入りを許可されます。

SBC アプリケーションには、NAT 機能も組み込まれています。Release 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 Product メニューからプラットフォームを選択します。

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/techsupport

関連コマンドのサマリ

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

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