NAT でのアプリケーション レベル ゲートウェイの設定方法
ここでは、次の手順について説明します。
• 「NAT を通じた IPsec の設定」(必須)
• 「IP Phone と Cisco CallManager の間での NAT の設定」(必須)
NAT ALG 設定の利点
• SIP の NAT サポートによって、SIP ベースの VoIP ソリューション間に Cisco IOS NAT を導入できるようになりました。
• お客様は自分の IP アドレス方式を制御し、H.323 v2 ゲートキーパー設定のサポートをすべて取り込むことができます。
• NAT により、お客様は自分のネットワークにプライベート IP アドレスを導入し、インターネットへの接続、または別の企業ネットワークとの内部接続を行うときに、パブリック IP アドレスに変換することができるようになります。
• 通常、変換テーブルの ESP エントリの送信は、宛先から応答が届くまで、延期されます。予想可能な Security Parameter Index(SPI; セキュリティ パラメータ インデックス)と SPI マッチングにより、SPI エントリが照合されるため、この延期を回避することができます。一部サードパーティのコンセントレータでは、送信元ポートと受信ポートの両方でポート 500 を使用する必要があります。 ip nat service コマンドで preserve-port キーワードを使用することにより、ポートを変更するのではなく、標準 NAT で必要とされるポートを保持することができます。
IP セキュリティ
IPsec は、オープン標準のフレームワークに含まれる IP プロトコル ファミリへの拡張セットで、インターネット上でプライベートな会話をセキュアに行えるようにするためにあります。IETF により開発された標準に基づいて、IPsec はパブリック ネットワーク上でのデータ通信の機密性、整合性、および信頼性を保証し、暗号化によるセキュリティ サービスを提供します。
2 台のルータなど、2 つのピアの間にセキュリティ トンネルが提供され、どのパケットの機密性が高く、これらのセキュアなトンネル経由で送信されるべきと見なされるか、また、これらのトンネルの特徴を指定して、このような機密性の高いパケットを保護するにはどのパラメータを使用すべきかが判断されます。IPsec ピアは機密性の高いパケットを受信すると、適切でセキュアなトンネルを設定し、このトンネルを通じてパケットをリモート ピアに送信します。
ESP を使用する IPsec は、Network Address Port Translation(NAPT)、またはアドレス オーバーロードが設定されていない限り、特別なサポートなしに、NAT を実行しているルータを通過することができます。
複数のプライベート内部 IP アドレスを 1 つのパブリック外部 IP アドレスとして表した NAPT デバイスを通過する IPsec VPN 接続を行うときに、考慮しなければならない要因がいくつかあります。このような要因には、VPN サーバおよびクライアントの能力、NAPT デバイスの能力、NAPT デバイス上で同時に複数の接続が行われているかどうかが含まれます。
ルータに NAPT を使用する IPsec を設定する方法には、次の 2 通りがあります。
• TCP や UDP のようなレイヤ 4 プロトコルに IPsec をカプセル化する。この場合、IPsec は NAT を 忍び出る ことができます。NAT デバイスはカプセル化に気づきません。
• IPsec 固有のサポートを NAPT に追加します。この場合、IPsec は、NAT を 忍び出る のとは逆の働きをします。IPSec ESP の NAT サポート:フェーズ II 機能は、Internet Key Exchange(IKE; インターネット キー エクスチェンジ)および ESP をサポートします。NAPT で設定された Cisco IOS ルータを通じたトンネル モードでカプセル化する必要は必要ありません。
NAPT デバイスを通過する IPsec セッションを実行するときに使用するプロトコルには、TCP と UDP が推奨されますが、すべての VPN サーバやクライアントが TCP または UDP をサポートしているわけではありません。
SPI マッチング
Security Parameter Index(SPI; セキュリティ パラメータ インデックス)マッチングは、複数の宛先ペアの間に VPN 接続を確立するために使用されます。NAT エントリはただちに設定済みのアクセス リストとマッチするエンドポイントの変換テーブルに配置されます。SPI マッチングは、Cisco IOS Release 12.2(15)T に実装されている予測アルゴリズムに従って SPI を選択するエンドポイントでのみ使用できます。
IP ネットワークを経由する音声およびマルチメディア
SIP は、IETF Multiparty Multimedia Session Control(MMUSIC)Working Group により開発されたプロトコルです。Cisco SIP 機能は Cisco ルータが IP ネットワーク経由した音声通話およびマルチメディア通話のセットアップを通知できるようにします。SIP は、VoIP インターネットワーキング ソフトウェアの H.323 に代わるものです。
Session Description Protocol(SDP; セッション記述プロトコル)は、マルチメディア セッションを記述するためのプロトコルです。SDP は、SIP メッセージの本文で、複数のユーザが参加するマルチメディア セッションの作成および制御のために使用されるマルチメディア セッションを記述するために使用できます。
SIP に対する NAT サポート機能により、NAT を使って設定されたルータを通過する SIP 埋め込みメッセージは、変換後、パケットに暗号化されます。SIP または SDP メッセージの変換には、NAT とともに ALG が使用されます。
(注) デフォルトでは、SIP のサポートはポート 5060 でイネーブルになっています。したがって、NAT 対応デバイスはこのポートのパケットをすべて、SIP コール メッセージと解釈します。同じシステムにある別のアプリケーションがポート 5060 を使用してパケットを送信している場合、NAT サービスはこのパケットを SIP コール メッセージとして解釈しようとするため、このパケットが破損する可能性があります。
H.323 v2 RAS に対する NAT サポート
Cisco IOS NAT は、Registration, Admission, and Status(RAS)プロトコルで送信されたものを含め、H.225 および H.245 メッセージ タイプをすべてサポートしています。RAS は、ソフトウェア クライアントや VoIP デバイスにより、場所の登録、通話のセットアップ サポートの要求、および帯域幅の制御に使用される多数のメッセージを提供します。RAS メッセージは、H.323 ゲートキーパーに向けて送信されます。
一部の RAS メッセージには、ペイロードに IP アドレス情報が含まれていますが、これは通常、ゲートキーパーへのユーザの登録、または別の登録済みユーザに関する情報の取得を意図したものです。このようなメッセージが NAT に認識されない場合、誰にでも確認できる IP アドレスには変換されません。
Cisco IOS Release 12.2(2)T 以降のリリースでは、埋め込み IP アドレスがアドレス変換される可能性があるかどうかを検査できるようになりました。Cisco IOS Release 12.2(2)T 以前では、NAT で H.323 v2 RAS メッセージはサポートされていませんでした。
v2 互換モードでの H.323 v3 および v4 に対する NAT サポート
H.323 は、パケット ネットワーク経由でのオーディオ、ビデオ、およびデータ送信に関する ITU-T 仕様です。NAT は、4 バージョンの H.323 プロトコル、v1、v2、v3、および v4 をサポートします。v2 互換モードでの H.323 v3 および v4 に対する NAT サポート機能により、Cisco NAT ルータは H.323 v3 および v4 でコーディングされたメッセージに H.323 v2 互換のフィールドが含まれている場合に、これらのメッセージをサポートできるようになります。この機能により、アドレス変換を必要とする新しいメッセージ タイプや新しいフィールドなど、v3 および v4 で導入された H.323 機能のサポートが追加されるわけではありません。
NAT H.245 トンネリングのサポート
NAT H.245 トンネリングにより、H.323 ALG で H.245 トンネリングができるようになります。NAT H.245 トンネリングは、メディア チャネル セットアップを作成するために必要な H.245 トンネル メッセージをサポートするためのメカニズムを提供します。
H.323 コールを行うには、TCP ポート 1720 で H.225 接続を開く必要があります。H.225 接続が開かれると、H.245 セッションが開始され、確立されます。この接続は H.225 とは異なるチャネルで行うことができます。また、H.245 メッセージを H.225 メッセージに埋め込み、以前に確立された H.225 チャネルに送信することにより、同じ H.225 チャンネル上で H.245 トンネリングを使用して行うこともできます。
H.245 トンネリングされたメッセージが認識されない場合、メディア アドレスまたはポートは Cisco IOS NAT によって変換されずに残され、この結果、メディア トラフィックでエラーが発生します。H.245 FastConnect プロシージャは、H.245 トンネリングされたメッセージが送信されると同時に終了するので役に立ちません。
制約事項
NAT により変換されるのは、埋め込み IP バージョン 4 アドレスのみです。
NAT を通じた IPsec ESP の設定
NAT を通じた IPsec ESP により、オーバーロード モード、または PAT モードで設定された Cisco IOS NAT デバイス経由で、複数の同時 ESP トンネルまたは接続をサポートできるようになります。
NAT を通じた IPsec ESP を設定するには、次の作業を実行します。
(注) IPsec はスタティック NAT 設定のみならず、どのような NAT 設定についても設定できます。
手順の概要
1. enable
2. configure terminal
3. ip nat [ inside | outside ] source static local-ip global-ip [ vrf vrf-name ]
4. exit
5. show ip nat translations
手順の詳細
|
|
|
ステップ 1 |
enable
Router> enable |
特権 EXEC モードをイネーブルにします。 • プロンプトが表示されたら、パスワードを入力します。 |
ステップ 2 |
configure terminal
Router# configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 3 |
ip nat [ inside | outside ] source static local-ip global-ip [ vrf vrf-name ]
Router(config)# ip nat inside source static 10.10.10.10 192.168.30.30 |
スタティック NAT をイネーブルにします。 |
ステップ 4 |
exit
Router(config)# exit |
特権 EXEC モードに戻ります。 |
ステップ 5 |
show ip nat translations
Router# show ip nat translations |
(任意)アクティブな NAT を表示します。 |
保持ポートのイネーブル化
この作業は、送信元ポートにポート 500 を使用している IPsec トラフィックに対して使用します。送信元ポートとしてポート 500 を保持できるようにするには、このタスクを実行します。
制約事項
これは、ある特定の VPN コンセントレータで必要とされる作業です。Cisco VPN デバイスでは、通常、この機能は使用されません。
手順の概要
1. enable
2. configure terminal
3. ip nat service list access-list-number IKE preserve-port
手順の詳細
|
|
|
ステップ 1 |
enable
Router> enable |
特権 EXEC モードをイネーブルにします。 • プロンプトが表示されたら、パスワードを入力します。 |
ステップ 2 |
configure terminal
Router# configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 3 |
ip nat service list access-list-number IKE preserve-port
Router(config)# ip nat service list 10 IKE preserve-port |
ポートを保持するために、アクセス リストと一致する IPsec トラフィックを指定します。 |
NAT デバイスでの SPI マッチングのイネーブル化
(注) SPI マッチングはデフォルトでディセーブルにされています。
Security Parameter Index(SPI; セキュリティ パラメータ インデックス)マッチングは、複数の宛先ペアの間に VPN 接続を確立するために使用されます。NAT エントリはただちに設定済みのアクセス リストとマッチするエンドポイントの変換テーブルに配置されます。SPI マッチングは、Cisco IOS Release 12.2(15)T に実装されている予測アルゴリズムに従って SPI を選択するエンドポイントでのみ使用できます。
予測可能で対称的な SPI の生成がイネーブル化されます。NAT デバイス全体で複数の ESP 接続が望ましい場合は、NAT デバイスとともに SPI マッチングを使用する必要があります。
前提条件
送信元ルータと、並列処理をイネーブル化するリモート ゲートウェイの両方で、Cisco IOS ソフトウェアを実行する必要があります。
制約事項
SPI マッチングは、NAT デバイス、および両方のエンドポイント デバイスで設定する必要があります。
手順の概要
1. enable
2. configure terminal
3. ip nat service list access-list-number ESP spi-match
手順の詳細
|
|
|
ステップ 1 |
enable
Router> enable |
特権 EXEC モードをイネーブルにします。 • プロンプトが表示されたら、パスワードを入力します。 |
ステップ 2 |
configure terminal
Router# configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 3 |
ip nat service list access-list-number ESP spi-match
Router(config)# ip nat service list 10 ESP spi-match |
SPI マッチングをイネーブル化するアクセス リストを指定します。 • 次の例では、デバイスが両方ともシスコ デバイスで、マッチング可能な SPI を提供するように設定されていると仮定して、ESP トラフィック マッチング リスト 10 を NAT テーブルに入力します。 |
エンドポイントでの SPI マッチングのイネーブル化
この作業は、両方のエンドポイントで SPI マッチングをイネーブルにするために実行します。
前提条件
送信元ルータと、並列処理をイネーブル化するリモート ゲートウェイの両方で、Cisco IOS ソフトウェアを実行する必要があります。
制約事項
SPI マッチングは、NAT デバイス、および両方のエンドポイント デバイスで設定する必要があります。
手順の概要
1. enable
2. configure terminal
3. crypto ipsec nat-transparency spi-matching
手順の詳細
|
|
|
ステップ 1 |
enable
Router> enable |
特権 EXEC モードをイネーブルにします。 • プロンプトが表示されたら、パスワードを入力します。 |
ステップ 2 |
configure terminal
Router# configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 3 |
crypto ipsec nat-transparency spi-matching
Router(config)# crypto ipsec nat-transparency spi-matching |
両方のエンドポイントで SPI マッチングをイネーブル化します。 |
NAT に対する MultiPart SDP サポートのイネーブル化
NAT に対する MultiPart SDP サポート機能は、NAT の拡張ポートフォリオに対する SIP ALG で MultiPart SDP のサポートを提供します。NAT に対する MultiPart SDP サポートはデフォルトでディセーブルです。
NAT に対する MultiPart SDP サポートをイネーブルにするには、次のタスクを実行します。
制約事項
NAT により変換されるのは、埋め込み IP バージョン 4 アドレスのみです。
手順の概要
1. enable
2. configure terminal
3. ip nat service allow-multipart
4. exit
5. show ip nat translations
手順の詳細
|
|
|
ステップ 1 |
enable
Router> enable |
特権 EXEC モードをイネーブルにします。 • プロンプトが表示されたら、パスワードを入力します。 |
ステップ 2 |
configure terminal
Router# configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 3 |
ip nat service allow-multipart
Router(config)# ip nat service allow-multipart |
Multipart SDP をイネーブルにします。 |
ステップ 4 |
exit
Router(config)# exit |
特権 EXEC モードに戻ります。 |
ステップ 5 |
show ip nat translations
Router# show ip nat translations |
(任意)アクティブな NAT を表示します。 |
IP Phone と Cisco CallManager の間での NAT の設定
ここでは、Cisco IP Phone における Cisco CallManager 通信のための Cisco Skinny Client Control Protocol(SCCP)の設定について説明します。このセクションで説明する作業では、IP Phone と Cisco CallManager の間に NAT を設定します。
Skinny Client Control Protocol に対する NAT サポート
Cisco IP Phone は、Cisco CallManager との接続、および登録に SCCP を使用します。
スケーラブルな環境で、IP Phone と Cisco CallManager の間に Cisco IOS NAT を設定できるようにするには、NAT は SCCP を検出し、メッセージで渡される情報を理解できなければなりません。電話での通話が可能な他の IP Phone ユーザの識別に使用される IP アドレスやポート情報を含むメッセージは両方向に行き来します。
Cisco CallManager 通信を行う SCCP クライアントは通常、内部から外部へ向かって進みます。Cisco CallManager が内部(NAT デバイスの背後)にある場合、Cisco CallManager IP アドレス接続を解決するには、Domain Name System(DNS; ドメイン ネーム システム)を使用する必要があります。それ以外の場合は、内部にある Cisco CallManager にアクセスするようにスタティック NAT を設定する必要があります。
Cisco CallManager への接続を試みた IP Phone が設定済み NAT 規則と一致する場合、NAT はもともとの送信元 IP アドレスを変換して、設定済みプールにある IP アドレスで置き換えます。この新しいアドレスは Cisco CallManager に反映され、他の IP Phone ユーザから確認できるようになります。
SCCP フラグメンテーションの NAT サポート
スキニー制御メッセージは TCP 上でやりとりされます。IP Phone、または Cisco CallManager のいずれかの TCP Maximum Segment Size(MSS; 最大セグメント サイズ)がスキニー制御メッセージのペイロードを下回るように設定されている場合、スキニー制御メッセージは、複数の TCP セグメントに分割されます。この機能以前、スキニー制御メッセージのやりとりは、NAT スキニー ALG はスキニー制御メッセージを組み立てなおすことができなかったため、TCP セグメンテーション シナリオでエラーとなっていました。NAT SCCP フラグメンテーション サポートは、NAT スキニー ALG の TCP セグメントに対するサポートを追加する機能です。IP やポートの変換を必要とする、分割されたペイロードはドロップされなくなります。
また、スキニー制御メッセージを IP 分割することもできますが、このようなメッセージのサポートには、Virtual Fragmentation Reassembly(VFR)が使用されます。
Cisco IOS Release 15.1(3)T またはそれ以降のリリースでは、NAT はバージョン 17 以降の SCCP 電話で機能します。
レイヤ 4 フォワーディングを使った NAT セグメンテーション
レイヤ 4 フォワーディングを使った NAT セグメンテーションは、H.323、SCCP、および TCP DNS プロトコル用に実装された機能です。NAT は、複数のパケットに分割された H.323、SCCP、または TCP DNS メッセージの処理をサポートします。
レイヤ 4 フォワーディング、または TCP プロキシは、シーケンス番号の並べ替え、パケット内の番号の確認、MSS を超える変換後パケットの再分割、パケット損失の場合の再送信などのセッションを処理します。また、レイヤ 4 フォワーディングは順番に並んでいないパケットの処理も行います。このようなパケットはバッファされます。ドロップされることはありません。
レイヤ 4 フォワーディングは受信したパケットをバッファし、順番に並んだパケットが使用できるようになったときに、NAT ALG に知らせます。また、受信したパケットについて、エンド ホストに確認応答を送信します。レイヤ 4 フォワーディングは NAT ALG から受信した変換後パケットを、出力パケット パスへ送信する作業も行います。
制約事項
レイヤ 4 フォワーディングを使った NAT セグメンテーションは、次の場合には機能しません。
• ip inspect name コマンドを使用するように Cisco IOS ファイアウォールが設定されている (ゾーンベースのファイアウォールがサポートされています)。
• H.323、SCCP、または TCP DNS メッセージのサイズが 18 KB を超える。
• Multiprotocol Label Switching(MPLS; マルチプロトコル ラベル スイッチング)が設定されている。
• NAT と Cisco CallManager が同一のデバイス上に設定されている。この場合、Call Manager Express(CME)のコロケーション ソリューションが使用されます。
• NAT Virtual Interface(NVI; NAT 仮想インターフェイス)が設定されている。
• Stateful Network Address Translation(SNAT; ステートフル ネットワーク アドレス変換)がイネーブル化されている。
• パケット変換のため、 match-in-vrf キーワードが ip nat inside source コマンドとともに設定されている。
• パケットが IPv6 パケットである。
手順の概要
1. enable
2. configure terminal
3. ip nat service skinny tcp port number
手順の詳細
|
|
|
ステップ 1 |
enable
Router> enable |
特権 EXEC モードをイネーブルにします。 • プロンプトが表示されたら、パスワードを入力します。 |
ステップ 2 |
configure terminal
Router# configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 3 |
ip nat service skinny tcp port number
Router(config)# ip nat service skinny tcp port 20002 |
指定された TCP ポートにスキニー プロトコルを設定します。 |