VTVジャパン テレビ会議教科書

テレビ会議教科書 VTVジャパン株式会社

ホーム / 9. 通信ネットワークと端末の関わり / 9.7 SIPシステムのNAT/Firewall越え

9.7 SIPシステムのNAT/Firewall越え

 この節では,3種類のソリューション(SBC,対称RTP,STUN/TURN/ICE)について,概説します.

1) SBC (Session Border Controller)による方法

 SBCは一般に企業内ネットワークの端,サービスプロバイダのネットワークとの接点に置かれ,次の機能を持ちます[9-52][9-53].

  • セキュリティ -- 内部ネットワークの保護
  • 接続性の確保 -- NAT/FW越え,IPv4/v6相互通信,SIP/H.323相互通信
  • QoSの実現 -- トラフィック制御,リソース割り当て,ビットレート制限,呼制御
  • 法規制への対応 -- 緊急通話の優先,lawful interception(法の要請による傍受)
  • メディア処理 -- DTMFトーンの扱い,メディアのtranscoding,音声/映像通信のサポート

 SBCの役割は,H.323ゲートキーパ,SIP Proxyのそれと類似していますが,通常メディアストリームの転送も行う点が異なります.SBCは受信した呼制御信号を終端し,宛先のネットワークに適合するよう変換します.SIPシステムの場合,Back-to-Back User Agent (B2BUA)の位置づけです.またSBCは通常プロトコル変換の機能を有し,SIPとH.323の相互接続,あるいは異なる種類のSIP間相互接続を提供します.
 SBCは専用ハードウェアを必要としますので高価なソリューションとなります.SBCメーカにはAcme Packet,Alcatel-Lucent,Cisco Systems,Edgewater Networks,Juniperなどがあります.

2) Symmetric RTPの利用

 Symmetric RTPとは,RTPストリームをポート番号A,IPアドレスaで受信すれば,RTPストリームの送信を同じくポート番号A,IPアドレスaで行うことです.RFC 4961[9-54]に記述されています.
 これを使ったNAT/FW越えは,パブリックInternet側に置かれた装置とNAT/FWの後ろに置かれたエンドポイント間で,実際にはどのポートにメディアを送るか知らないままSIPシグナリングにより双方向のメディアフローを確立します.エンドポイント側からメディアが届き次第,パブリックInternet側に置かれた装置はメディアを送るべきポート番号を知ることができ,そこに向けてメディアのRTPパケットを送ります.
 SIPのSDPやH.323のH.245メッセージに書かれているメディアを送るべきアドレス情報は,実質的に無用となります.
 Vonage[9-55]などのIP電話のサービスプロバイダがこの方法を採用しています.
 このソリューションは,メディアが双方向に流れる場合に限られます.なお,テレビ会議システムでは通常双方向にメディアが流れますが,H.239利用の場合は片方向です.

3) STUN/TURN/ICEの使用

① STUN -- Session Traversal Utilities for NAT, RFC 5389[9-56]

 STUNは,エンドポイントが自身のプライベート側トランスポート・アドレス(IPアドレスとポート番号の組み合わせ)に対応するNAT割り当てのパブリック側トランスポート・アドレスを知る手段を提供するプロトコルです.STUNはまたエンドポイントがNATバインディング(紐付け)を保つkeep aliveの方法を提供します.
 STUNの初版RFC 3489[9-51]はNAT越えのソリューションを定義していたのに対し,現行RFC 5389はNAT越えソリューション(ICEなど)に対するツールの位置づけです.

② TURN -- Traversal Using Relays around NAT, RFC 5766[9-57]

 NATの内側に位置するエンドポイントが別のそのようなエンドポイント(ピア)と通信するためには,パブリック・ネットワークに中継サーバが必要です.TURNは,そのような環境でNATの内側エンドポイント(TURNクライアント)が外側のサーバ(TURNサーバ)に中継サーバとして動作することを要求し,中継サーバを制御してピアとのパケット送受信を実現するプロトコルです.クライアントがサーバのピア側トランスポート・アドレス(relayed transport address,図9-20参照)を獲得することでこれが可能となります.

図9-20 TURNの通信モデル
図9-20 TURNの通信モデル

NATの内側に位置するTURNクライアントがパブリック側のピアA(NATの内側)あるいはピアB(NATなし)と通信します.クライアントはサーバの(何らかの方法で既知の)トランスポート・アドレスにTURNコマンドを送りサーバの外側に見えるトランスポート・アドレス(Relayed Transpot Address)とのマッピングを確立します.クライアントからのパケットはTURNメッセージとしてサーバに届きUDPに戻されて宛先のピアに届きます.ピアからのパケットはサーバのRelayed Transpot Addressに届き,サーバでTURNメッセージに包まれてクライアントに届きます.

 ピアから中継トランスポート・アドレスに送られたパケットは,サーバによりクライアントに届けられます.逆にクライアントから送られたパケットは,サーバにより中継トランスポート・アドレスを送信元としてピアに届けられます.
 この中継トランスポート・アドレスをクライアントとピアで共有する方法は,TURNプロトコルの規程範囲外で,TURNとICEを用いたSIPシステムでは,SIPメッセージがこれを支援します.
 TURNはもともとSIPによるマルチメディア通信のために考え出されました.SIPは1対1通信のみでなく,forkingと呼ばれる1対多の双方向通信を提供しますので,TURNも1対多の通信をサポートしています.ただし,TURNはメディアを中継するserverを用いるため広い帯域幅を要し高価になるので,可能な限りエンドポイント間の直接通信を用いるべきです.
 TURNはICEの一部として設計されたプロトコルではありますがICEなしの場合にも適用可能です.また,TURNはSTUNの拡張として定義されました.具体的には,TURNメッセージのほとんどはSTUNフォーマットになっています.

③ ICE -- Interactive Connectivity Establishment, RFC 5245[9-58]

 ICEはUDPによるSIPのようなSDPオファ・アンサ・モデルにより確立されるマルチメディア通信のNAT越えプロトコルです.このようなマルチメディア通信では,SDPオファ・アンサ・メッセージにメディアを送るべきトランスポート・アドレス(IPアドレス + ポート番号)を記しますが,NATを経由する間に実際のアドレスが変わるため,NAT越えが困難になります(注:H.323システムにおいてもH.245メッセージにメディアのトランスポート・アドレスを記すので同様の問題を生じます).ICEはこの問題を解決することを目的とし,STUNプロトコルとその拡張であるTURNプロトコルを使用します.
 ICEによるNAT越えシステムのモデルを図9-21に示します.NATとSIPサーバに加えメディアを中継するSTUN/TURNサーバが必要になります.各SIPエンドポイント(図9-21ではAgent L, R)はNATの後ろにいるか否か,NATが多重になっているか否か,あるいはNATの種類を含め,ネットワークトポロジーの知識は持ち合わせないことを前提とします.

図9-21 ICEによるNAT越えのシステム構成
図9-21 ICEによるNAT越えのシステム構成

ICEが動作するには,エンドポイント(この図ではLとR)が外部のSTUN, TURNサーバを利用できることが必要です.LとRの間で接続可能な方法の候補情報を獲得し,優先順位に応じて各候補を試験することにより接続可能なアドレス対を見つけて,メディア・パケットを送ります.

 ICEの基本的考え方は,各エンドポイントには通信相手と通信するための多様なトランスポート・アドレスが付随していることを前提とすることです.例えば,

  • エンドポイントのネットワークインタフェースに付随するトランスポート・アドレス
  • NATのパブリック側トランスポート・アドレス(図9-20の"Server-Reflexive"アドレス)
  • TURNサーバが付与するトランスポート・アドレス(図9-20の"Relayed"アドレス)

です.エンドポイントLとRのこれらアドレスの組み合わせは,両者間の通信を確立させる可能性を持っていますが,実際には多くの場合が成功しません.例えば,エンドポイントがNATの後ろに置かれていればネットワークインタフェースに付随するトランスポート・アドレスは役に立ちません.
 そこで,ICEはどのアドレスの組み合わせが有効かを組織的に順次試して,動作するアドレスの組み合わせを見つけます.結果として,エンドポイント間で直接メディアが送受信されることもありますし,TURNのメディア中継を利用しなければならない場合もあります.
 ITU-T H.323システムでは,NAT/FW越えソリューションとしてH.460.18(シグナリング用),H.460.19(メディア用で中継が行われる)が定義されています.さらにNATの種類によっては直接メディアをNAT/FW越しに送受信できる場合があり,そのためのH.460.23(NAT/FW特性の獲得),H.460.24(H.460.23の結果によりメディアをH.460.19の中継に頼ることなくエンドポイント間で直接送受信)が定義されています.
 SIPシステムにおけるICEは,H.323システムにおけるH.460.18/19 + H.460.23/24に相当します.