ファイアウォールを通過できる IP 電話の提案と実装
伊藤将志 渡邊晃 名城大学理工学研究科
IP 電話はインターネットのブロードバンド化による“低価格料金”,“常時接続環境”,
“通信帯域の確保”によって著しい普及を遂げてきた.しかし,ファイアウォール・
NA(P)T・プロキシサーバなどにより外部との通信に制限のある企業ネットワークでは外 部の端末と通話を行うことはできない.この課題を解決すべく我々は SIP から音声通話 までを HTTP トンネルを用いて,外部と内部の IP 電話通信を可能とするシステム SoFW
(SIP over FireWall)を提案してきた.本稿では SoFW の機能と実装方式について報告 する.
A Proposal and an Implementation of Voice over IP System Passing Through FireWall
Masashi Ito Akira Watanabe
Graduated School of Information and Science, Meijo University
In recent years, IP telephone has achieved remarkable progress on the Internet through "low priced charge", "continuous connection environment", and "high-speed communication band". However, it is not easy to use IP telephone over firewall and NA(P)T because of their restrictions of the communication. We have proposed the system called SoFW that suppresses the problem. In this paper, detailed functions and its implementation method of SoFW are described.
1 . は じ め に
ブロードバンドの普及や ISP 間のバックボー ンの整備により,ネットワークの伝送容量が大幅 に増加されたことで,これまでIP電話の課題の 一つであった実用レベルの品質保証が可能とな った.また,2002 年秋から IP 電話専用番号
“050-”の事業者受付が開始となり,公衆回線網 の電話機からのダイヤルを受信することが可能 になった結果,多くのISPがIP電話サービスを 提供するようになった.
しかし,VoIP(Voice over Internet Protocol)
[1]の利用範囲を制限してしまうファイアウォー ル(以下FWと記述)[2]やNA(P)T[3]の介在に より,VoIP による外部ネットワークとの通信が できない企業ネットワークがほとんどである[4].
IP 電話の普及を進めるには,企業ネットワーク への浸透が不可欠であり,これらの装置が介在し ても安全に通話できることが必要である.
VoIP に関連するプロトコルとしては,早い時
期にITU-T (International Telecommunication Union ‒ Telecommunication)によって標準化 された H.323[5]という既存の電話仕様をベース にしたシグナリングプロトコルがあるが,現在で はIETF (Internet Engineering Task Force)
によって標準化されたSIP (Session Initiation Protocol)[6]が実装も容易で拡張性に優れている として様々なマルチメディア通信で注目されて いる.現在はISPが提供しているIP電話の多く がSIPを採用している[7] [8].
しかし,SIP はダイヤル開始時に相手端末の IP アドレスが特定できるか,相手端末の属する SIPサーバのIPアドレスが特定できることが必 須である.そのため,NA(P)Tが介在するような 環境ではプライベートアドレス側のIPアドレス が特定できず,ダイヤルできない.また,企業な どの FW は多くの場合,メールや内部から外部 へのWebサーバへのアクセスなどに通信を限定 しており,それ以外の通信を遮断してしまう.こ のような制限を受けたネットワークに SIP を適 用したIP電話を導入しようとすると,FW再設
定のために企業のセキュリティポリシーの変更 が必要になる上,それに伴うセキュリティ低下の 恐れが発生する.
そこで,FW /NA(P)TなどによってIP電話 としての機能を制限されることのないシステム がいくつか提案されている.代表的なシステムと してHCAP[9],Skype[10]などがあり,VoIPに 限らずプロトコルフリーで FW の通過を可能に する方式としてSoftEther[11]がある.HCAPは 端末とグローバルアドレス環境に置かれた中継 サーバとの間でHTTPトンネルを作りFWを越 えることができる.しかし,端末に特殊な機能が 要求されたり,FW上には無駄なトラヒックが流 れるという課題がある.SkypeはIP電話機能を 80番ポート上で実行することによりFWを越え るが,独自アプリケーションであるため HTTP プロキシサーバ[12]などが介在すると中継でき ない. SoftEther は端末と中継装置の間をイー サネット・フレームごとHTTPSに埋め込んで中 継することで FW をまたがって仮想的なイーサ ネットを作ることができる.しかし,この方式で は本来 FW に守られているはずのネットワーク を危険にさらしてしまう可能性がある.また,仮 想ネットワーク内のアドレスを統一的に管理す る必要があるという課題がある.
そこで著者らは,FWの内部と外部にリレーエ ージェントを配置し,端末からの SIP メッセー ジと音声データをHTTPでトンネルすることで,
既存ネットワークに影響を与えないIP電話シス テム,SoFW(SIP over FireWall)を提案してき た[13].本稿ではSoFWの機能を整理し,かつ実 装方式について検討したので報告する.
以下,2章で既存のファイアウォール通過技術 とその問題点について述べる.3章では提案シス テムSoFWの概要を,4章では実装方法を説明し,
5章でまとめとする.
2 . 既 存 の 技 術 と そ の 課 題
FW を 通 過 す る 既 存 の シ ス テ ム と し て SoftEther とHCAPをとりあげ,その方式と課 題について簡単に説明する.なお SoftEther は IP 電話に限らず全てのアプリケーションで FW
/NA(P)T を 通 過 で き る シ ス テ ム の た め , SoftEtherを導入したネットワーク上でIP 電話 を利用する場合を想定した.
2 . 1 . S o f t E t h e r
SoftEtherはFW内部の端末に仮想LANカー
ドと呼ばれる機能を,外部の端末に仮想HUBと 呼ばれる機能を組み込む.仮想LANカードと仮 想HUBはHTTPSなどのFWを越えられるプロ トコルでトンネルを作っておく.アプリケーショ ンはこのトンネルを使って外部とのやり取りを 行う.この仮想ネットワーク上にIP電話を導入 するには端末接続型とネットワーク接続型の 2 通りの方法が考えられる.
端末接続型の構成を図 2.1に示す.仮想 LAN カードを導入した端末それぞれから仮想 HUB に接続して仮想ネットワークを形成する.仮想ネ ットワーク上の端末はあたかも同一のLAN上に あるように見える.仮想ネットワーク上で SIP サーバと電話端末を導入すればFWを越えたIP 電話が構築できる.
ネットワーク接続型の構成を図2.2に示す.仮 想LANカードを導入したゲートウェイにより仮 想ネットワークと実際のLANをブリッジ接続す る.これにより,二つのLANを仮想的ネットワ ークで繋げ,一つのLANにすることができ,仮 想 LAN カードを導入していない端末からでも FWを越えた通信が可能となる.
しかし,SoftEtherを用いた方法は電話端末の IP アドレスを全て同じアドレス空間上で管理す ることを必要とする.端末接続型では仮想アドレ スを,ネットワーク接続型では異なるLAN同士 で実アドレス空間を統一する必要がある.また,
全てのアプリケーションにFWの通過を許して 図2.2ネットワーク接続型の構成
図2.1端末接続型の構成
中継サーバ FW
HTTP
無駄なトラフィック が流れる
プライベート ネットワーク
外部へ
予めHTTPで中継サーバへ 接続し,その後は常時接続
DMZ
FW
しまうことから,セキュリティ的にも問題が発生 する.
2 . 2 . H C A P
HCAPでは図2.3のようにFWのDMZ上に中 継サーバが設置され,内部にはHCAP 対応機能 を内蔵した端末が設置される.端末立ち上げ時に 端末から中継サーバへ HTTP で接続して,トン ネルを作り,以後は接続を維持する.ダイヤルや 音声データはHTTPのGETメソッドに対するレ スポンスと POST メソッドに埋め込んで中継す る.HCAPは外部のWebサイトを閲覧できる環 境であれば,FW/NA(P)T を通過できる.しか し,音声端末側にそれぞれ専用のプロトコルをイ ンストールする必要がある.また,中継サーバに FW 内の複数の専用端末から常時 HTTPによる 接続を行うため,FW上に不要なトラヒック流れ る.
3 . 提 案 方 式 の 概 要
図 3.1 に SoFW ネットワーク構成を示す.
SoFWの構成要素にはHRACとHRASがあり,
企業ネットワーク内部の端末は既存のものを利 用する.外部には通常のSIPを用いたIP電話の 環境があることを想定する.企業ネットワークの プライベートアドレス環境には HRAC,外部の グローバルアドレス環境に HRASを設置する.
この2つの装置の間に HTTP トンネルを張り,
内部に対してプライベートアドレス,外部に対し てグローバルアドレスのインターフェースを持 った2つで1つの仮想的な SIP サーバとしての 役割を持たせる.また音声通話時もこの HTTP トンネルを利用して,音声ストリームを中継する.
HRACは主にHTTPへの埋め込み・解除を担 当するのみで,HRASがHTTPへの埋め込み・
解除やSIPサーバ・RAT管理・SDP修正(後に 説明)などの主要な機能を担う.
以下ではHRACとHRASの機能をシステム立 ち上げから通話終了まで過程に沿って説明する.
(1) HTTPトンネル生成
HTTP トンネルの生成は既存技術と同様の方 式を利用する.SoFWではシステム立ち上げ時に HRACとHRASの間でHTTPトンネルを生成し,
以後の通信は全てこのトンネルを通す.このシー ケンスを図3.2に示す.
SoFWではHRACにHTTPクライアントとし て,HRASにHTTPサーバとしての機能を持た せる.まず,HRACからHRASへ接続し,GET リクエストを送信し待機する.待機中は接続維持 のためHRASからHRACへ定期的通信を行う.
端末間の通信が始まると,外部から内部へのSIP メッセージ・音声ストリームはGETレスポンス に,内部から外部への SIP メッセージ・音声ス トリームは POST リクエストに埋め込み,中継 する.
(2) 端末情報の登録
ダイヤルに先立ち,あらかじめ SIP の端末情 報をHRASに登録しておく必要がある.ユーザ
HRAC FW/NAT HRAS UA2 GETリクエスト
GETレスポンス
POSTリクエスト SIPメッセージ音声データ SIPメッセージ
音声データ
トンネル 生成
トンネル の利用 定期的な通信
図3.2 HTTPトンネル生成 図3.1 SoFWの構成 図2.3 HCAPの構成
識別子:UA1,IPアドレス:10.10.10.10の端 末が登録を行うシーケンスの例を図 3.3に示す.
従来のSIPでは,端末はSIPサーバが管理する ロケーションサーバへ自身のIPアドレス・ユー ザ識別子などの情報を登録する.ロケーションサ ーバは SIP サーバにユーザ情報を提供するデー タベースであり,SIPサーバと同一の装置に組み 込まれている場合が多い.本システムの HRAS の持つ SIP サーバ機能もロケーションサーバを SIPサーバ内に組み込んでいる.SoFWでは端末 はSIPサーバの代わりにHRACのIPアドレス またはホストを指定し,REGISTERメッセージ を 送 信 す る .HRAC は ト ン ネ ル を 用 い て REGISTERメッセージをHRASへ中継する.メ ッセージを受け取った HRASはロケーションサ ーバに端末情報を登録し,登録が完了するとトン ネルを用いて200OKメッセージを端末に返す.
(3) ダイヤル
外部端末 UA2から内部端末 UA1へダイヤル を行う場合のシーケンスの例を図3.4に示す.
UA2はINVITEメッセージをHRASへ送信す る.HRASのSIPサーバ機能はINVITEメッセ ージの宛先(UA1)のユーザ識別子からロケーシ ョンサーバにUA1のIPアドレスを問合せ,そ
表 3.1 RATの内容
同一装置内 UA1
10.10.10.10 HRAC HRAS UA2
200 OK REGISTER
200 OK REGISTER
FW/NAT ロケーション
登録 レスポンス
内容 説明
To ダイヤルを識別するためのダイアロ
グIDの一つ
From 同上
Call-ID 同上
IIP 内部ネットワーク端末のIPアドレス
IPort 内部ネットワーク端末のポート番号
OIP 外部ネットワーク端末のIPアドレス
OPort 外部ネットワーク端末のポート番号
の IP アドレスと INVITE メッセージを HTTP トンネルに通してHRACへ送信する.HRACは UA1へINVITEメッセージを送信する.以後の SIPメッセージも同様に HTTPトンネルを用い て中継する.
HRASではSIPメッセージを中継しながら,
RAT生成とSDP修正処理を行う.内部端末から 通信が始まるRAT生成とSDP修正の例を図3.5 に示す.RAT生成では,後に音声データをHTTP トンネルで中継するのに必要なユーザ情報を集 めRAT(Relay Agent Table)と呼ぶテーブルを 生成する.このユーザ情報は SIP メッセージボ デ ィ 部 に 含 ま れ る SDP(Session Description Protocol)[14]から参照される.SDPは端末が音 声通信に利用するIPアドレス・ポート番号など の情報を記述するためのプロトコルである.RAT の内容を表3.1に示す.RATではダイアログID と呼ばれるSIPのパラメータであるTo,From,
Call-IDの3つを格納するフィールドとそのダイ アログ ID に対応した内部端末・外部端末の IP アドレス・ポート番号を格納するフィールドを持 つ.HRASは内部端末のUA1からSIPメッセー ジを受け取ると,ダイアログIDとUA1のIPア ドレス・ポート番号をRATに登録する.そして,
外部端末のUA2からSIPメッセージを受信する 図3.4ダイヤルのシーケンス
図3.3登録処理
図3.5 RAT生成とSDP修正
と,ダイアログIDに対応するレコードを検索し,
UA2のIPアドレス・ポート番号を追加する.
次にSDP修正の機能を説明する.通常のSIP 手順ではダイヤルが完了すると音声端末は相手 端末とP2Pで通信を行う.しかし,SoFWでは 図3.5のように,音声通信の際,端末に音声スト リームをトンネル中継させるため,内部端末には 通信相手端末をHRACであるように,外部端末 には通信相手端末を HRASであるように認識さ せる処理を行う.HRAS は内部端末 UA1 から SIP メッセージを受信すると,SDP の解析を行 い,相手端末が音声通信に利用するIPアドレス を記したパラメータをHRASのIPアドレスに書 き換える.また,HRAS が外部端末 UA2 から SIPメッセージを受信した場合は,上記パラメー タをHRACのIPアドレスに書き換える.
(4) 音声通信
ダイヤルが完了すると音声データのやり取り が可能となる.音声データのやり取りのシーケン スを図3.6に示す.
音声データにはユーザ情報が含まれていない ため,データ部にRA(Relay Agent)ヘッダを 定義する.この一連の流れを図3.7に,RAヘッ ダの構成を図3.8に示す.
内部端末 UA1から外部端末 UA2へ音声デー タを送信する場合,まずUA1は修正されたSDP に従って,音声データを HRAC へ送信する.
HRACでは受信した音声データの送信元IPアド レスとポート番号を元に RA ヘッダを生成して 音声データに付加し,それを HTTPトンネルに 埋め込みHRASへ中継する.HRASはRAヘッ ダから取り出した IP アドレス・ポート番号を IIP・IPortとしてRATを参照し,対応するOIP・ OPortを宛先とし,UA2へ送信する.
逆に外部端末UA2から音声データが送信され る場合,まずUA2はHRASへ音声データを送信 する.HRASでは送信元のIPアドレス・ポート 番号をOIP・OPortとしてRATを参照する.
HRASは対応するUA1のIPアドレス・ポート 番号であるIIP・IPortを元にRAヘッダとして 音声データに付加し,HRACへ送信する.HRAC はRAヘッダから宛先のIPアドレスとポート番 号を取り出し,送信する.
(5) 切断
通話を切断すると端末はBYEメッセージを相 手端末に向けて送信する.本システムではこのメ ッセージを HRASが受信すると,その通信に関 する端末情報をRATから削除する.
4 . 実 装
本システムを LinuxRedhat9.0 上のアプリケ ーションに実装中である. HRASのSIPサーバ はフリーソフトであるSER[15]を利用する.SER はシステムが立ち上がると SIP 端末に対してソ ケットの生成を行い,端末から SIP メッセージ が届くまで待機する.SIPメッセージを受信する とそれを解析し,メッセージのタイプに応じて RFC3261に準じた登録・中継などの処理を行う.
ここで,HRASのSIPサーバ機能を担うSERに 図3.8 RAヘッダの構成
音声データ
Address IPアドレス Port
ポート番号 Data Type データタイプ
データ Data
0 15 16 31
Length パケット長
Reserved 予約 IPヘッダ TCPヘッダ HTTPヘッダ SIPメッセージ ダイヤル時
音声通信時
IPヘッダ TCPヘッダ HTTPヘッダ
図3.7 RATを利用した音声データの中継 図3.6 音声データのシーケンス
対してそれ以外の機能を担うプログラムをリレ ーモジュールと呼ぶ.
SER とリレーモジュールを連携させるため,
SERの外部端末に対するSIPメッセージの出力 部分にメッセージの宛先が外部宛か内部宛かに より,以後のプロセスを分岐するための変更を施 す. HRASのリレーモジュールと SER はソケ ットを介して接続する.SER の主処理の部分は 修正を施さず,そのまま利用する.
HRASとSERの間のデータと処理の流れの関 係を図4.1に示す.HRASのリレーモジュールは SER と1つの装置上で互いに送受信用のソケッ トを生成する. SERが外部端末からSIPメッセ ージを受信すると,SERの主処理が実行される.
この SIP メッセージは内部宛であるため,リレ ーモジュール宛てのソケットへ送信される.リレ ーモジュールがSERに対して開いていたソケッ トから受信した上記SIPメッセージは,RAT管 理・SDP 修正・HTTP 化などの処理を経て,
HRAC へ送信される.逆にリレーモジュールが HRACから受信したSIPメッセージはHTTPの デカプセル・RAT管理・SDP修正の処理を経て,
SER宛のソケットへ送信される. SERではSIP メッセージを受信後,主処理が実行されて上記で 追加された分岐処理によって外部へ向けて送信 される.
5 . お わ り に
本稿では SoFW の機能の詳細と実装方法を報 告した.今後は実装を完了させ,動作検証と評価 を行う予定である.
また,本稿では SIP で扱うマルチメディア・
データを音声データに限定して説明したが,SIP
は様々な用途に対して,その将来性が注目されて おり,IP電話以外への応用もして行く.
HTTPTo HRAC HTTPFrom HRAC
UDPTo SER UDPFrom SER UDPTo HRAS UDPTo 外部 UDP
OS メッセージが
外部宛or内部宛 主処理
内部 外部
HRAC 外部
HTTP解除 MIT管理 SDP修正
HTTP化
MIT管理
SDP修正 参 考 文 献
[1] 星 徹:VoIP の最新動向,情報処理学会誌, Vol.42 No.02 - 008
[2] N.Freed : Behavior of and Requirements for Internet Firewalls , IETF RFC 2979 (2000.10).
[3] K. Egevang, P. Francis:The IP Network Address Translator (NAT),IETF RFC 1631(1994.5).
[4] 大田 昌孝:Colum 本当のインターネットを めざして,Vol.6,インターネットと電話(2), 情報処理学会誌,Vol.40,No9,pp922 923
[5] H.323,Packe Based Multimedia Communications Systems, ITU-T Recommendation,1998.
[6] J. Rosenberg,et all”SIP: Session Initiation Protocol”IETF RFC3261(2002.6)
[7] Petri Koskelainen,Henning
Schulzrinne,Xiaotao Wu:VoIP:A SIP-based conference control framework,ACM press 53-61(2002.5).
[8] Stefan Berger,Henning
Schulzrinne,Stylianos Sidiroglou,Xiaotao Wu:Conferencing:Ubiquitous computing using SIP,ACM press 82-89(2003.6) [9] 情報処理学会論文誌,Vol.44,No.3,宮内
信二“多様な環境で利用できるインターネ ットプロトコル”
[10] Skype: ”
http://www.skype.com/home.html”Kazaa [11] 登大遊“SoftEtherによるEthernetの仮想
トンネリング通信”
[12] Berners-Lee,T.,Fielding,R.T.and Nielsen,H.:Hyper-TextTransfer
Protocol-HTTP/1.0, IETF RFC (1994.11).
[13] 情報処理学会研究報告,2004-DPS-120,
Vol2004,No107
[14] Handley,M. and Jacobson, V.:SDP:Session
Description Protocol,IETF RFC2327(1998)
[15] SER:“http://www.iptel.org/ser/”
図4.1 HRASとSERの関係
ファイアウォールを通過できる ファイアウォールを通過できる IPIP電話の提案と実装電話の提案と実装
伊藤伊藤 将志将志 渡邊渡邊 晃晃
名城大学大学院理工学研究科 名城大学大学院理工学研究科
A Proposal and an Implementation of Voice over IP System Passing Through FireWall 2
はじめにはじめに
■ インターネットのブロードバンド化
■ IP電話専用番号”050-”の事業者受付の開始
多くのISPがIP電話を提供
しかし、IP電話の実用性を更に高めるには・・・
FW/NA(P)T 企業ネットワーク
The Internet
企業ネットワークとグローバル なネットワークで自由な通話の 実現が必須
自由な通信
グローバルなアドレス環境
Global
Global Private
A Proposal and an Implementation of Voice over IP System Passing Through FireWall 3
SIP SIP
ととFW FW
//NAT NAT
の問題の問題拡張性・導入の容易さから、現在ISPのIP電話でも 最も利用されているセッション開始プロトコル FW/NA(P)Tがあると・・・
The Internet
端末A
端末B DNS
SIPサーバB
SIPサーバA ダイアル
問合せ SIPサーバB?
音声通信 パケットパケット 遮断遮断 内部アドレス
内部アドレス 不明不明
SIP ( Session Initiation Protocol )
Global
Private Global
A Proposal and an Implementation of Voice over IP System Passing Through FireWall 4
既存の既存の
FW FW
通過技術通過技術ファイアウォールを制御するシステム
UP n P などポートやアドレス管理を動的に 行えるようにルータに実装するシステム
ファイアウォールを越えるシステム
Skype HCAP
SoftEther (プロトコルフリー)
FWを比較的安全に開くことができるが、企業のセキュFWを比較的安全に開くことができるが、企業のセキュ リティポリシーを変更することになり導入が困難
リティポリシーを変更することになり導入が困難
HTTPプロキシなど通過できないことが多い
A Proposal and an Implementation of Voice over IP System Passing Through FireWall 5
The Internet
HCAP HCAP
中継サーバ
HCAP端末
HCAP端末
HCAP端末
HCAP端末
専用端末とHTTP中継サーバ間でトンネルを生成し、ダイ アル・音声ストリームを中継する
複数の端末からの常時接続
FW上の無駄なトラヒック
専用端末を導入する必要がある
HTTP
UDP HTTP
企業ネットワーク UDP
グローバルな環境
又は企業のDMZ 独自のプロトコル 端末から接続 によるダイヤル
Global
Private Global
A Proposal and an Implementation of Voice over IP System Passing Through FireWall 6
SoftEther SoftEther
端末に実装した仮想LANカードから仮想HUBと呼ばれる 中継サーバにHTTPSで接続し、仮想ネットワークを作る
The Internet
端末
SIPサーバ
仮想HUB
端末
端末
端末
アドレス環境の統一的管理の必要性 通信相手と同じアドレス環境に置か れるためセキュリティ的に問題
仮想イーサフレーム ごとトンネルに通す
仮想LANカード 仮想イーサフレームを中継
Global
Private Global
端末には仮想MAC・IP
アドレスが割り当てられる
FW/NATを意識せずに自由に 通信のできる仮想イーサネット
A Proposal and an Implementation of Voice over IP System Passing Through FireWall 7
提案システム 提案システム
導入の容易さ
FW上の無駄なトラフィックの削減 アドレス管理に影響を与えない
外部ネットワークに対する安全性
システムの目的
SIP・音声をアプリケーション層でHTTPに埋め込み、
中継テーブルを利用して音声データの経路決定を行う SoFW(SoFW(SIPSIP over Fire Wall)over Fire Wall)
A Proposal and an Implementation of Voice over IP System Passing Through FireWall 8
SoFW SoFW
の構成の構成The Internet
SIP端末
SIPサーバ SIP端末
HRAS HRAC
1つのSIPサーバ HTTP
DNS
トンネルの集束
既存SIP端末の利用 異なるアドレス空間
SoFWの特徴
Global
Private Global
HRAC:Half Relay Agent Client HRAS:Half Relay Agent Server ダイアル
問合せ HRAS?
A Proposal and an Implementation of Voice over IP System Passing Through FireWall 9
SoFW SoFW
の実現方法の実現方法HTTPトンネルの集束 既存のSIP端末の利用
異なるアドレス空間での通信 アプリケーション層での実装
SoFW の特徴
実現方法
FW上のトラヒック削減 導入の簡単化
外部に対する安全性 アドレス管理の分立 実装の容易性
トンネルへの音声ストリーム誘導
中継テーブルによる音声ストリームの経路決定
A Proposal and an Implementation of Voice over IP System Passing Through FireWall 10
トンネル中継の基本的な流れ トンネル中継の基本的な流れ
GETリクエスト
GETレスポンス
POSTリクエスト
HRAC HRAS
IP UDP TCP HTTP
SIP・音声等 HTTPトンネルを生成、その後は内部・外部から受信する通常の
形のSIPメッセージ・音声データをトンネルに埋め込み中継する
通信に先立ちGET
リクエストを送信 HRACに対して定期
的メッセージを送信
GETレスポンスに ダイヤル・音声スト リーム等を埋め込む
POSTリクエストに ダイヤル・音声スト リーム等を埋め込む
A Proposal and an Implementation of Voice over IP System Passing Through FireWall 11
トンネルへの音声ストリーム誘導の実現 トンネルへの音声ストリーム誘導の実現
通常SIP端末を利用してトンネルへパケットを通すには端末を だまし、HRAC・HRASを通信相手と認識させる必要がある
SIP SDP SIP SDP
通信情報のすり替え
HRAC HRAS 外部端末 INVITE
200 OK
外部端末
→HRAC 内部端末
→HRAS 内部端末
修正
通信先を HRASと認識
通常のSIP端末は音声データを直接相手端末に送信する
通信先を HRACと認識
音声通信に利用するセッ ション情報(IPアドレス、
ポート番号等)が記述される SDP
通常SIP端末のまま
トンネル集束が実現可能
(ダイヤル時)
通信相手 通信相手
A Proposal and an Implementation of Voice over IP System Passing Through FireWall 12
RAT
中継テーブルによる経路決定の実現 中継テーブルによる経路決定の実現
HRASにRAT(Relay Agent Table)を設置し、宛先を変 換して中継することで経路決定を行う
To From Call-ID IIP OIP IPort OPort SIP SDP
SIP SDP
RATの生成 To
From Call-ID
IIP OIP IPort OPort
通信を識別する ダイアログID
内部端末IPアドレス 外部端末IPアドレス 内部端末ポート番号 外部端末ポート番号 HRAC 外部端末
HRAS INVITE
200 OK ダイアログ
IDの追加 外部端末
情報の追加
ダイアログIDから 一致するレコードに 内部端末情報を追加
送信元・宛先の 通信識別情報の 対応表ができる
(ダイヤル時)
A Proposal and an Implementation of Voice over IP System Passing Through FireWall 13
トンネル中、変換前・
変換後のIPアドレス・
ポート番号を保管する 独自ヘッダ
中継テーブルによる経路決定の実現 中継テーブルによる経路決定の実現
RATの検索
RAT
To From Call-ID IIP OIP IPort OPort
HRAC HRAS
IP UDP TCP HTTP
音声データ
中継テーブルで、送信元情報から宛先情報を検索すること で相手とIPアドレス空間を共有することなく中継できる
RAT
To From Call-ID IIP OIP IPort OPort
RAヘッダ
RA(Relay Agent)ヘッダ 送信元情報か
ら宛先を検索
(音声ストリーム時)
A Proposal and an Implementation of Voice over IP System Passing Through FireWall 14
実装について 実装について
RedhatLinux9.0 のアプリケーションとして実装 HRAS の SIP サーバ機能はフリーの SIP サーバ SER と連携することで実現する
HRAS に主処理、 HRAC には中継に必要最小限
な機能のみを実装する
A Proposal and an Implementation of Voice over IP System Passing Through FireWall 15
実装について 実装について
リレーモジュール・SERで互いにソケットを開き、メッセージ のやり取りを行う
SERのメッセージ送信部にメッセージが内部・外部宛かでリ レーモジュール・外部端末へ送信させる分岐を加える
UDPToHRAS
HTTPTo HRAC UDPTo SER HTTPFrom HRAC UDPFromSER UDPTo 外部 UDP
HRAS
主処理 メッセージが
外部宛or内部宛 RAT生成
SDP修正 HTTP エンカプセル RAT生成
HTTP デカプセル
SDP修正
リレーモジュール SER
HRAC 外部
OS ソケット 内部 外部
A Proposal and an Implementation of Voice over IP System Passing Through FireWall 16
おわりにおわりに
まとめ
ファイアウォール通過システムSoFWの提案 HRAC・HRASの詳細
外部に対する安全性 アドレス管理の分立
ファイアウォール上のトラヒックの改善 導入の簡単化
今後
実装
ファイアウォール上のトラヒックの評価 エンドトゥエンドのディレイの評価
トンネルへの音声ストリーム誘導 中継テーブルを利用した経路決定
おわり
A Proposal and an Implementation of Voice over IP System Passing Through FireWall 18
補足資料1.既存技術との比較 補足資料1.既存技術との比較
○○
○○
○○
○○
○○
××
×× Linphone
Linphone
○○
○○
△△
SIPとのSIPとの 互換性互換性
△△
△△
△△
ディレディレ イイ
○○
××
○○
セキュリセキュリ ティティ
○○
○○
○○
○○ VoFWVoFW
××
○○
○○
○○ SoftEther
SoftEther
○○
△△
○○
○○ HCAPHCAP
アドレスアドレス 管理管理 導入の容導入の容
易性易性 NA(NA(P)TP)T
通過通過 FWFW
通過通過
A Proposal and an Implementation of Voice over IP System Passing Through FireWall 19
補足資料2.内部同士の通話 補足資料2.内部同士の通話
HRAC HRAS
端末A
端末B
INVITE(接続要求)
200 OK(応答)
200 OK後の ダイアル・音声
データは全て 端末同士
以降は端末同 士で通信を行う ACK(確認応答)
BYE(切断要求)
内部端末同士の通話は端末同士で直接やりとりする
一度端末情報 を持つHRAS
へ中継する
A Proposal and an Implementation of Voice over IP System Passing Through FireWall 20
補足資料3
補足資料3
Skype Skype
TCP の接続
80番で動く アプリケーション
端末からSkypeのサーバへ接続する際のパケットのキャプチャ
TCP接続後、GETなどのメソッドが使われていない
80番ポートで独自のアプリケーションを利用
A Proposal and an Implementation of Voice over IP System Passing Through FireWall 21
補足資料4
補足資料4 内部同士の通信内部同士の通信
HRAC HRAS
端末A
端末B
端末情報を持たせる 確立要求と
そのレスポン ス以外は全 て端末同士
HRACに端末情報を持たせて、全てのパケットがファイ アウォールより外部に出ないようにすることも検討中