平成 25 年度 修 士 論 文
邦文題目
NTMobile における SIP 通信方式の提案
英文題目
Proposal of a SIP Communication Method using NTMobile
情報工学専攻
(
学籍番号: 123430041)
吉岡 正裕
提出日
:
平成26
年1
月31
日名城大学大学院理工学研究科
内容要旨
近年頻繁に使用されるマルチメディア通信用プロトコルの
SIP
(Session Initiation Protocol
) がセッション制御技術として注目され始めている.SIP
はIP
ペイロード部分にIP
アドレス が記載されているプロトコルであり,単なるNAT
越え技術のみでは対応できない.これら の課題を解決するため,NAT
に改造を加えることなくNAT
越え問題の解決と移動透過性を 同時に実現するNTMobile
(Network Traversal with Mobility
)と呼ぶ技術を提案している.NTMobile
は,端末に対して仮想IP
アドレスを割り当て,実際の通信を実IP
アドレスによる
UDP
トンネルを用いることで実現する.しかし,NTMobile
においてもSIP
のようなIP
ペイロード部分にIP
アドレスが含まれているアプリケーションに対しては工夫が必要であ る.NTMobile
をSIP
通信で利用すると,SIP
サーバが仮想IP
アドレスを認識できないため,基本的なしくみの見直しが必要である.そこで本論文では,
SIP
サーバにもNTMobile
を導 入することで,NTM
端末として扱い仮想IP
アドレスを認識可能にする手法を提案する.ま た,提案手法の実装を行い,動作検証および評価を行った.この結果,NTMobile
を用いてSIP
通信を実現することが可能となった.さらに,既存のSIP
アプリケーションをそのまま 流用できることを動作検証にて確認した.目 次
第
1
章 はじめに1
第
2
章 既存技術とその課題3
2.1 SIP . . . . 3 2.2 SIP
におけるアドレス不整合問題. . . . 3 2.3
既存技術. . . . 5
第
3
章NTMobile 7
3.1
概要. . . . 7 3.2
通信シーケンス. . . . 8
第
4
章 提案方式11
4.1
提案方式の方針. . . . 11 4.2
構成. . . . 11 4.3
提案方式の通信シーケンス. . . . 12
第
5
章 動作検証16
5.1
実装. . . . 16 5.2
動作確認. . . . 17
第
6
章 評価19
6.1
既存技術との比較. . . . 19 6.2
処理時間の予測. . . . 20
第
7
章 まとめ21
謝辞
22
参考文献
23
研究業績
25
第 1 章 はじめに
IPv4
ネットワークではIP
アドレスの枯渇を回避するため,家庭内や企業のネットワーク はプライベートアドレスで構築するのが一般的である.それらのネットワークとインター ネットの間にはNAT
(Network Address Translator
)が導入されている.このような環境では インターネット側からはNAT
しか見えなくなるため,NAT
外側の端末から内側の端末へ通 信を開始することができないという制約がある.これはNAT
越え問題と呼ばれている.こ れまでのインターネットの利用形態はWWW
の閲覧やメールの利用など,一般にグローバ ルアドレス空間に設置されたサーバに対してプライベートアドレス空間に存在する端末側か ら通信を開始していた.ファイアウォールでもこのような通信形態のみを許可するのが一般 的であったため,NAT
の制約が表面化することはなかった.しかし,家庭にもネットワー クが導入され始めており,外出先から家庭内の端末に自由にアクセスしたいというニーズが 増加していくものと考えられる.また,CGN
(Career Grade NAT
)[1, 2]
のようにインター ネットプロバイダ自身のネットワークをプライベートアドレスで実現するような状況も想定 される.このためIPv4
ネットワークにおいてNAT
越え問題を解決することは有益である.NAT
越え問題を解決する技術としては,現存するNAT
をそのまま使えることを目的とし たアプリケーションレベル改造方式(UPnP [3]
),既存のアプリケーションをそのまま使用 することを目的としたネットワークレイヤ改造方式(4+4 [4]
,NAT-f [5]
,MIPNAT [6]
),端 末の改造を不要とすることを目的とした端末非依存方式(AVES [7]
,NTSS [8]
)がある.一方,近年頻繁に使用されるマルチメディア通信用プロトコルの
SIP
(Session Initiation Protocol
)[9]
がセッション制御技術として注目され始めている.SIP
をNAT
が存在する環境 で使用する場合,以下の2
つの課題がある.1
つは,通常のNAT
越え問題に関わるもので,NAT
の外側から内側方向に向けてシグナリングを開始することができない問題がある.も う1
つは,SIP
のIP
ペイロード内にIP
アドレス/
ポート番号が埋め込まれるため,NAT
を通 過するとIP
ヘッダ内のIP
アドレスとの間でIP
アドレスの不整合が生じる問題である.本 論文では,この問題をアドレス不整合問題と呼ぶ.SIP
はIP
ペイロード部分にIP
アドレス が記載されているプロトコルであり,単なるNAT
越え技術のみでは対応できない.SIP
で は,SIP URI
(Uniform Resource Identifier
)と呼ばれる識別子を持っており,メールアドレ スのように用いてSIP
通信を行っている.SIP URI
だけではIP
アドレスがわからないため,SIP
端末のSIP URI
とIP
アドレスを対応付けて管理するSIP
サーバがある.SIP
サーバはグ ローバルネットワークに設置しているため,登録するIP
アドレスがプライベートアドレス である場合,プライベートアドレスを認識できず通信を行うことができない.SIP
がNAT
を通過できる手段としては,
NAT
においてSIP
メッセージ中のIP
アドレス/
ポート番号を書き 換えるSIP-ALG
(Application Level Gateway
)[10]
が挙げられる.これにより、SIP
がNAT
を通過することは可能であるが,NAT
に改造が必要であるため,端末が一般のNAT
配下に 移動できないという課題がある.また,NAT
を改造せずアプリケーションレベルで対応す るSTUN [11]
,TURN [12]
も同様に利用されている.これらは,SIP
通信を行う前にNAT
の 外側IP
アドレスもしくは中継サーバのIP
アドレスを取得し,SIP
メッセージに取得したIP
アドレスを記載する方法である.あらかじめIP
アドレスを取得することで,SIP
パケットを 書き換えることなく通信を行うことができるが、SIP
アプリケーションがこれらの技術を実 装する必要がある.これらの課題を解決するため,
NAT
に改造を加えることなくNAT
越え問題の解決と移動 透過性を同時に実現するNTMobile
(Network Traversal with Mobility
)と呼ぶ技術を提案し ている[13–16]
.NTMobile
は,端末に対して仮想IP
アドレスを割り当て,実際の通信を実IP
アドレスによるUDP
トンネルを用いることで実現する.しかし,NTMobile
においてもSIP
のようなIP
ペイロード部分にIP
アドレスが含まれているアプリケーションに対しては 工夫が必要である.NTMobile
上で動作するアプリケーションは,仮想IP
アドレスを自身のIP
アドレスとして認識する.そのため,IP
ペイロード部分に含まれるIP
アドレスは仮想IP
アドレスとなる.NTMobile
をSIP
通信で利用すると,SIP
サーバが仮想IP
アドレスを認識 できないため,基本的なしくみの見直しが必要である.そこで,本論文では
SIP
サーバにもNTMobile
を導入し,NTMobile
の機能だけの拡張を行 うことにより,既存のSIP
アプリケーションおよび既存のNAT
に一切の手を加えることな くSIP
プロトコルを使用することができる手法を提案する.この手法により,既存のSIP
ク ライアントやSIP
サーバのアプリケーションをそのまま流用することが可能になる.また,NTMobile
により移動通信にも対応できるようになる.提案方式の実装を行い,既存のSIP
アプリケーションを用いて動作検証を行った.
以下,
2
章でSIP
について説明し,3
章でNTMobile
とNTMobile
を用いた場合のSIP
通信 の課題について述べる.4
章で提案方式について説明し,5
章で提案方式の動作検証を行い,6
章で評価,7
章でまとめる.第 2 章 既存技術とその課題
SIP
の概要およびNAT
を跨るSIP
通信時に発生するアドレス不整合問題と,それを解決 する既存技術について説明する.2.1 SIP
SIP
はセッション制御プロトコルとして開発されており,セッションの開始・変更・終了 のみを行う.主な用途としてIP
電話やインターネット上のweb
会議などの制御で使用され ている.本章では,SIP
のセッション確立方法と,SIP
とNAT
の関係について述べる.2.1.1
セッション確立図
2.1
にSIP
の基本シーケンスを示す.UA
(User Agent
)1
とUA2
は,それぞれSIP Server A
とB
に対して,REGISTER
により自身のURI
(Uniform Resource Identifier
)と自身のIP
アドレスG1
およびG2
を登録しておく.通信開始時,
UA1
はINVITE
によりUA2
とのセッションの確立を要求する.INVITE
には,UA1
が使用するIP
アドレスG1
とポート番号s1
が記載されている.SIP Server A
はURI2
に対応するSIP
サーバの名前解決を行い,SIP Server B
に転送する.SIP Server B
は,URI2
の名前解決を行い,INVITE
をUA2
へ転送する.INVITE
を受信したUA2
は,200 OK
を返 答する.200 OK
には,UA2
が使用するIP
アドレスG2
とポート番号d2
が記載されており,INVITE
と同様の経路を通りUA1
まで転送される.UA1
はACK
を返答した後,交換したIP
アドレスとポート番号を用いて,UA2
と直接メディアセッションを確立する.以後の通信 は,RTP
(Real-time Transport Protocol
)などにより,UA1
とUA2
間で直接実行される.2.2 SIP
におけるアドレス不整合問題図
2.2
にアドレス不整合問題の例を示す.図2.2
では,UA2
がNAT
配下にあり,プライ ベートアドレスを持っている.プライベートネットワークにあるUA2
からグローバルネッ トワークにあるUA1
に通信を開始したとする.SIP
メッセージに基づき,UA1
は受信したINVITE
に記載されているIP
アドレスとポート番号に基づき,セッションを確立しようとする.しかし,記載されている
IP
アドレスがプライベートIP
アドレスであるため,宛先不明 でパケットがUA2
に届かず,セッションを確立することはできない.UA1
SIP INVITE
UA2
SIP URI:URI1 IP:G1
SIP URI:URI2 IP:G2
SIP 200 OK
ACK ACK ACK
RTP Dst(IP:G2,Port:20000)
RTP SIP REGISTER
SIP 200 OK
REGISTER:URI2,G2
SIP 200 OK
RegistrationSession Conection
URI1
SIP Server1 SIP Server2
G1 URI2 G2
SIP INVITE SIP INVITE
SIP 200 OK SIP 200 OK
URI2 G1 Port:10000
URI1 G2 Port:20000
Dst(IP:G1,Port:10000)
図
2.1 SIP
のセッション確立NAT
宛先不明 RTP
UA1
SIP INVITE
UA2
SIP URI:URI1 IP:G1
SIP URI:URI2 IP:P2
SIP 200 OK
ACK ACK ACK
Dst(IP:P2,Port:20000)
RTP SIP Server1 SIP Server2
SIP INVITE SIP INVITE
SIP 200 OK SIP 200 OK
URI2 G1 Port:10000
URI1 P2 Port:20000
Dst(IP:G1,Port:10000)
SIP INVITE
SIP 200 OK
ACK IP:P1 IP:G2
図
2.2 SIP
通信で発生するアドレス不整合問題2.3
既存技術2.2
項で示した課題を解決する技術として,アプリケーションレベルで対応するSTUN
(
Session Traversal Utilities for NAT
)とTURN
(Traversal Using Relays around NAT
)を挙げ る.ここでは,SIP
クライアントを使用するエンド端末をUA
(User Agent
)と呼称する.2.3.1 STUN
図
2.3
にSTUN
の動作概要を示す.UA
に機能の実装が必要であるとともに,第3
の端末 としてSTUN
サーバが必要となる.SIP
メッセージの送信に先立ち,UA
はSIP
メッセージを送信する際に使用するのと同じ ポート番号を使用し,STUN
サーバに対してBinding Request
を送信する.これにより,NAT
上にNAT
テーブルを生成する.STUN
サーバは,STUN
サーバ側から見た送信元のIP
ア ドレスとポート番号をBinding Response
としてUA
に返答する.そして,UA
は,Binding Response
に記載されているIP
アドレスおよびポート番号をSIP
メッセージに埋め込み送信 する.STUN
は,いくつかの制約がある.1
つは,通信がUDP
に限定されることである.もう1
つは,Symmetric NAT
には使用できないことである.Symmetric NAT
は通信相手毎にポー ト番号が変わる.そのため,宛先がSIP
サーバからUA
に切り替わる際,NAT
でポート番号 の不一致が発生する.UA NAT STUN Server SIP Server
Binding Request
Binding Response
SIP Message
SIP Message IP:G1 Port:A1
IP:G2 Port:B2
IP:P1 IP:P2 IP:G1 IP:G2
図
2.3 STUN
の動作概要2.3.2 TURN
図
2.4
にTURN
の動作概要を示す.UA
に機能の実装が必要でありかつ第3
の端末としてTURN
サーバが必要になる.UA
は通信開始に先立ち,TURN
サーバに対してAllocate Request
を行う.これに対して,TURN
サーバは,自身のポートを割り当て,Allocate Response
によりUA
に通知する.この 後,UA
はTURN
サーバとの間でセッションを維持し続ける.UA
は,TURN
サーバ上に割 り当てられたIP
アドレスとポート番号をSIP
メッセージに埋め込み,パケットをカプセル 化してTURN
サーバに送信する.TURN
サーバが受信したSIP
メッセージについては,カ プセル化を行い,UA
まで転送する.TURN
はNAT
の種類に依存せず,アドレス不整合問題が解決可能である.しかし,TURN
サーバは全ての通信を中継するため,TURN
サーバに対する負荷が大きいことと,セッショ ンのスループットが低下するという課題がある.UA NAT TURN Server SIP Server
Allocate Request
Allocate Response
SIP Message
SIP Message IP:G2 Port:A1
IP:P1 IP:P2 IP:G1 IP:G2 IP:G3
[Dst:IP:G2,Port:A1]
Registration Infomation UA:(IP:G2)
図
2.4 TURN
の動作概要第 3 章 NTMobile
3.1
概要図
3.1
に,本提案方式の基礎となるNTMobile
の構成を示す.NTMobile
の構成要素とし て,NTMobile
の機能を実装した端末(以下NTM
端末)の他に,NTM
端末のアドレス情報 を管理するDC
(Direction Coordinator
),エンドエンドの通信が行えない場合にパケットを 中継するRS
(Relay Server
)が存在する.DC
は,NTM
端末に仮想IP
アドレスを配布する 他,NTM
端末に対してトンネル経路を指示する装置であり,NTM
端末の情報をデータベー スで管理している.NTM
端末は,DC
から端末を一意に識別できる仮想IP
アドレスを与え られ,NTM
端末同士の通信の識別に使用する.アプリケーションは,割り当てられた仮想IP
アドレスを自分のアドレスとして認識する.実際の通信は,仮想
IP
アドレスのパケットを実IP
アドレスによるUDP
でカプセル化を することにより実現する.DC
はエンド端末が存在するネットワーク上の位置から適切な通 信経路を決定し,NTM
端末にトンネル経路を指示する.NAT
が存在する場合は,NAT
の内RS
NTM Node
RS
NTM Node NAT Router NAT Router
Wi-Fi
General Server
DC Direction CoordinatorRS Relay Server
Private Network Private Network General Communication
Encrypted Communication through UDP Tunnel
NTM Node NTM Node
DC
図
3.1 NTMobile
の概要側からトンネルを構築するように指示するため,
NAT
越え問題を回避することができる.両 エンド端末が異なるNAT
配下に存在するなど,エンドエンド通信が行えない場合にはRS
を 経由したトンネル経路を構築する.この手法によって,アプリケーションに対して,NAT
の 存在や移動に伴う実IP
アドレスの変化を隠蔽することができる.DC
どうし,DC
とRS
,DC
とNTM
端末間には信頼関係があることを前提としており,NTMobilie
で使用される制御メッセージは,全て暗号化される.また,NTM
端末間やNTM
端末と
RS
の間で行われるトンネル通信は,トンネル構築時にDC
より配布される共通鍵とNTM
端末が一時的に構築する共通鍵を合成した鍵を用いて暗号化される.3.2
通信シーケンス以後の説明では,通信開始側の
NTM
端末をMN
(Mobile Node
),受信側のNTM
端末をCN
(Correspondent Node
)として説明する,また,端末N
のFQDN
をFQDN
N,Node ID
をNID
N,実IPv4
アドレスをRIP4
N,仮想IPv4
アドレスをV IP4
N,端末N
がNAT
配下に接続 している場合のNAT
の実IP
アドレスをRIP
NATNとし,アドレス情報を管理しているDC
をDC
N,その実IPv4
アドレスをRIP
DCNとする.N1
とN2
がトンネル通信時に用いるPath ID
をPID
N1−N2と表す.Path ID
はNTM
端末間の通信を一意に識別するための識別子である.3.2.1
登録処理図
3.2
に登録処理シーケンスを示す.DC
はNTM
端末の情報をデーターベースで管理す る.データベースにはDC
に登録を行っているNTM
端末の情報を記録し,NTMobile
にお ける経路判断およびトンネル構築に利用する.NTM
端末は通信接続性の確保のために,端末起動時にDC
に対して実IP
アドレスなどの 端末情報を登録する.MN
は,FQDN
MN,NID
MN,RIP
MNなどを記載したNTM Registration Request
をDC
MNに送信する.DC
MNはNTM Registration Request
をによって受け取った端末 情報をデータベースに登録しておく.3.2.2
名前解決処理図
3.3
にNTMobile
の通信シーケンスを示す.MN
は,アプリケーションからのDNS
問 い合わせを検出すると,そのパケットからFQDN
CNを抽出して独自のネゴシエーションを 開始する.トリガーとなったDNS
問い合わせのパケットはそのままDNS
サーバに向けて 送出させ,その応答パケットは待避しておく.MN
は,NTM Direction Request
にFQDN
MN とFQDN
CN を記載してDC
MNへ送り,名前 解決およびトンネル構築指示を依頼する.DC
MNはNTM Direction Request
に記載しているFQDN
MNでデータベースを検索することによりMN
の端末情報を取得する.さらに.DC
MNMN DC
MNNTM Registration Request
DC DataBase
・FQDN
MN・NID
MN・RIP
MN・VIP
MN・RIP
NATMNNTM Registration Response
MN Info
図
3.2 NTMobile
の名前解決処理シーケンスは
FQDN
CNのNS
レコードをDNS
クエリにより問い合わせる.DNS
からのNS
レコードの 応答にはDNS
サーバの名前だけが含まれ,IP
アドレスが含まれていない場合がある.その 場合には,DNS
サーバの名前からDNS
クエリにより再度IP
アドレスを問い合わせる.特定した
DNS
サーバがDC
であった場合,DC
MNはNTM Infomation Request/Response
に よりNTM
端末情報の収集を行う.NTM Infomation Request
にFQDN
CNを載せ,DC
CNの端 末情報を要求する.DC
CNは,FQDN
CNが示すCN
の端末情報をデータベースから検索し,Node Infomation Response
に載せてDC
MNへ送り返す.これによりDC
MNはCN
の端末情報 の取得を完了する.3.2.3
トンネル構築処理DC
MNは,3.2.2
によって得た両端末の情報から最適なトンネル経路を判断する.DC
MNは,経路判断を元にトンネル構築に必要な情報を載せた
NTM Route Direction
をMN
とCN
に送 信する.NTM
端末がNAT
配下にいる場合,NTM Tunnel Request
をNAT
配下のNTM
端末 から送信することによってトンネル通信の経路を確保する.アプリケーションは通信相手として仮想
IP
アドレスを認識しているため,アプリケーショ ンが生成したパケットは仮想IP
アドレスが記載される.これをカプセル化し,CN
へ転送す る.CN
はカプセル化されたパケットをデカプセル化し,抽出したアプリケーションパケッ トを上位アプリケーションへ渡す.NTM Information Request
NTM Information Response CN Info
MN info CN info
NTM Tunnel Response FQDNCN
FQDNCN DNS Name Resolution
DCMN DNS DCCN
NTM Route Direction MN NAT
NTM Direction Request
NTM Route Direction
NTM Tunnel Request
CN
DNS Request
DNS Response
図
3.3 NTMobile
のトンネル構築シーケンス第 4 章 提案方式
4.1
提案方式の方針仮想
IP
アドレスを使用するためには,SIP
サーバが仮想IP
アドレスを認識できなければ ならない.NTMobile
で用いる仮想IP
アドレスは,NTMobile
に関連する機器以外では認識 することができない.また,SIP
通信ではグローバル上に存在するSIP
サーバを必ず経由す る必要があり,この課題を解決しなければならない.SIP
サーバのアプリケーションに手を 加える手法も考えられるが,SIP
アプリケーションが限定されるため望ましくない.次に,仮想
IP
アドレスを実IP
アドレスに変換し,SIP
サーバに登録を行う手法も考えられるが,変 換を行う装置をグローバルネットワーク上に設置する必要があり,経路が冗長化する.そこ で,SIP
サーバのアプリケーションに手を加えず,NTMobile
をSIP
サーバに導入する方式 を採用する.この方法により,SIP
サーバをNTM
端末として扱うことができるため,仮想IP
アドレスの認識が可能になる.NTM
端末間にてメディアセッションの直接通信を行うためには,SIP
通信中にトンネル構 築を行う必要がある.SIP
通信前にトンネル構築を行う方法も考えられるが,通信相手が応 答しないという場合も考えられる.そのため,通信相手が応答したことが確定した後にトン ネル構築を行うことが望ましい.SIP
通信において,メディアセッションに応じることが確 認できるタイミングは,通信相手のSIP 200 OK
の送信である.そこで,通信開始側のNTM
端末は,SIP 200 OK
を受信をトリガとして,NTMobile
ネゴシエーションを開始し,NTM
端末間でトンネル構築を行う.トンネル構築が完了するまでは,SIP 200 OK
をアプリケー ションに返さず保持する.これにより,メディアセッションをトンネル経路にて直接通信す ることができる.4.2
構成提案方式のネットワーク構成を図
4.1
に示す.本提案のネットワーク構成として,DC
(
DC
MN,DC
CN)とSIP
サーバ(SIP
MN,SIP
MN)をグローバル上に設置する.NTM
端末のMN
はNAT
配下に,CN
はグローバル上に存在する.SIP
サーバには,NTMobile
を導入する.SIP
サーバのアプリケーションとSIP
クライアント,NAT
には一切の変更を加えない.MN
とCN
は,それぞれSIP
MNとSIP
CNへユーザ認証が完了し,SIP URI
と認証パスワードが発 行されているもとのする.MN
とCN
は互いのSIP URI
を保持しているものとする.MN NAT
Private Network
DCMN DCCN
SIPCN
SIPMN
CN
図
4.1
提案方式のネットワーク構成提案方式では,
NTM
端末が異なるNAT
配下に存在したネットワーク構成においても,NTMobile
の仕組みによりRS
を介してSIP
通信は実現できるが,本論文では簡単のためMN
のみがNAT
配下に存在するものとする.4.3
提案方式の通信シーケンス4.3.1 SIP
登録処理図
4.2
にSIP
登録処理シーケンスを示す.MN
とSIP
MNはDC
MNへのNTMobile
の登録処 理が完了しているものとする.SIP
クライアントは,起動時にSIP
サーバへ登録処理を行う.MN
はSIP
サーバに自身の位置情報であるV IP
MN を登録するため,SIPU RI
MN の名前解決 を行う.名前解決により,NTMobile
のネゴシエーションが開始される.今回は,NTMobile
が導入されたSIP
サーバが通信相手であるため,MN
とSIP
MNの間でトンネルが構築され る.トンネル構築後,MN
はSIP
MNにSIP
登録メッセージであるSIP REGISTER
を送信す る.SIP REGISTER
にはIP
アドレスが含まれており,今回はV IP
MN となる.SIP
MNはMN
からのSIP REGISTER
を受信後,認証を行うためSIP 401 Unauthorized
をMN
に返す.MN
は,SIP REGISTER
に認証パスワードのハッシュを付与し,再度SIP
MNにSIP REGISTER
を 送信する.SIP
MNは認証パスワードのハッシュを参照し,正しいものであればV IP
MNを登録 する.正常に登録処理が完了すると,SIP
MNはMN
にSIP 200 OK
返しリクエストが成功し たことを通知する.SIP
クライアントは起動中,SIP
サーバに対して定期的にパケットを送 信し経路確保を行う.このため,SIP
クライアントが起動している間はMN
とSIP
MNで構築 されたトンネルは維持される.Application NTMobile
DNS Request
NTM Direction Request
NTM Route Direction NTM Route Direction
NTM Tunnel Request FQDNSIPMN
FQDNSIPMN
NTM Tunnel Response DNS Response
SIP REGISTER SIP URIMN
SIP 401 Unauthorized VIPMN
MN Info SIPMNInfo
SIP REGISTER SIP URIMN VIPMN
SIP 200 OK Hash
MN NAT DCMN SIPMN
図
4.2
提案方式のSIP
登録シーケンス4.3.2 SIP
通信処理提案方式の
SIP
通信シーケンスを図4.3
に示す.MN
がCN
に対してSIP
通信を開始する.MN
は,CN
のSIP URI
を用いて通信を始める.SIP URI
は,SIP
のみで使われる識別子であ り,メールアドレスのように扱われる.MN
は宛先の情報であるSIPU RI
CNと自身の仮想IP
アドレスV IP
MNを記載したSIP INVITE
を,すでに生成済みのトンネルを介してSIP
MNに送 信する.SIP
MNとSIP
CNはNTM
端末として動作しているため,両者の間にトンネルが構築 される.その後,SIP INVITE
はSIP
CNを経由しCN
に送信される.SIP INVITE
を受信したCN
は,SIP INVITE
と同様の経路で自身の仮想IP
アドレスV IP
CN とSIPU RI
CN をSIP 200 OK
に記載し,MN
に送信する.ここまではトンネル通信であることを除き,通常のSIP
通 信と同様である.図中の
A
からD
は提案方式固有の動作である.A
において,MN
はSIP 200 OK
を受信すると,NTMobile
の機能によりパケットをフッ クする.このパケットは,D
までの間保持する.NTMobile
はSIP 200 OK
に含まれているV IP
CNを取得する.取得したV IPCN
をNTM Direction Request
に記載し,DC
MNに送信する.NTM Direction Request
SIP INVITE
SIP 200 OK VIPMN
Media session
Registration Infomation MN:SIP URIMN、VIPMN
Registration Infomation CN:SIP URICN、VIPCN
Application NTMobile NTMobile Application
SIP INVITE
NTM Information Request
NTM Information Response CN Info
MN info NTM Route Direction
CN info
NTM Tunnel Request
NTM Tunnel Response
SIP 200 OK
SIP ACK
Tunnel Construction SIP URICN
VIPCN
SIP URIMN
VIPCN
VIPCN
DNS Name Resolution
A
SIPMN SIPCN
NAT
MN CN
DCMN DNS DCCN
NTM Route Direction
SIPMN SIPCN
Proposed method part
B
C
D
図
4.3
提案方式のSIP
シーケンスNTMobile
では通常,通信相手のFQDN
から端末を管理しているDC
のIP
アドレスを取 得を行う.しかし,SIP
メッセージにはFQDN
が含まれていないため,上記の処理を行うこ とができない.本提案では,仮想IP
アドレスからDC
の位置情報を取得するようDC
の拡 張を行う.図中B
においてDNS
逆引きの仕組みを利用し,V IP
CNからDC
DCのFQDN
を取 得する.続けてDNS
正引きを行い,DC
CNのIP
アドレスを取得する.NTM Infomation Request
を受信したDC
CNは,C
においてメッセージに記載されている情 報をキーとしてデータベースを検索する.通常のNTMobile
では,FQDN
をキーとしてデー タベースの検索を行っている.本提案では,仮想IP
アドレスから端末情報を取得できるようDC
の拡張を行う.V IP
CNをキーとしてCN
の端末情報を取得する.その後,NTM Infomation Response
に取得した情報を記載しDC
MNへ応答する.C
からD
までの間は通常のNTMobile
の動作と同様である.トンネルに必要な情報を交換 し,トンネルを構築する.D
において,トンネル構築が正常に動作したかどうか確認を行う.構築できていたなら ば,NTMobile
で保持していたSIP 200 OK
をアプリケーションに返す.以降は
SIP
通信の処理に戻る.MN
はSIP ACK
をSIP INVITE
と同様の経路でCN
に送 信する.以後は,NTMobile
のトンネルによりエンドエンドのメディアセッションが可能に なる.第 5 章 動作検証
5.1
実装提案方式を
Linux
に実装を行った.ディストリビュージョンはUbuntu10.04
,カーネルバー ジョン2.6.32-24-generic
を使用した.実装はNTM
端末とDC
について行った.図
5.1
にNTM
端末のモジュール構成を示す.提案方式を実現するため,NTMobile
独自 のデーモンにSIP
通信のみで使用するモジュールの追加を行った.SIP
通信はUDP
上で動 作し,デフォルトポートは5060
番となっている.そこで,カーネルモジュールに受信した パケットのUDP
ポートが5060
番の時にフックする処理を追加した.カーネルモジュール でフックしたSIP
パケットを新規に作成したSIP
通信専用のモジュールに渡す.ここで,解 析を行いパケットがSIP 200 OK
かつメディアセッションの情報が含まれていた場合,メッ セージに含まれている仮想IP
アドレスを抽出する.抽出した通信相手の仮想IP
アドレス をNTM Direction Request
の拡張ヘッダに記載する.NTM Direction Request
には通信開始側 と受信側のFQDN
が記載されているが,これに仮想IP
アドレスの情報を付加できるようにNTMobile
独自のヘッダに追加した.図
5.2
にDC
のモジュール構成を示す.これまでのDC
では,NTM Direction Request
に 含まれている通信相手のFQDN
から,トンネルに必要な情報の取得に使用していた.提案 方式では,FQDN
を取り扱わないため,DC
のNTMobile
デーモンにSIP
通信のみで使用す るモジュールを新規に作成し追加した.NTM Direction Request
にSIP
専用のフラグを立て ることで処理を分岐し,仮想IP
アドレスをFQDN
の代わりに用いることでトンネル構築に 必要な情報を取得する.また,NTM Infomation Request
の宛て先を見つけるため,仮想IP
アドレスをDNS
逆引きおよび正引きする処理を追加した.これにより,仮想IP
アドレスを 管理しているDC
のIP
アドレスを取得できる.Real I/F Real I/F
Tunnel Establishment
User Space Kernel Space DNS
NTM Query
DNS Resolver
Netfilter
Real I/F
Packet Manipulation
Netfilter Tunnel Table
Application
Virtual I/F NTM deamon
(ⅵ)TCP/UDP Packet (Src/Dst = RIP)
(ⅴ)
(ⅳ)
TCP/UDP Packet
(Src/Dst = VIP)
Netlink Socket
(ⅱ)DNS NTM Query Msg
Received DNS Query Response
Peer’s VIP
Modified DNS A Query Response
SIP Module
Received SIP Packet
Responder VIP
(ⅰ) (ⅲ)
Direction Request Route Direction Tunnel Request Tunnel Response
Operation Flow Packet Flow
Added or modified module for proposal method
図
5.1 NTM
端末のモジュール構成Real I/F Real I/F Real I/F
User Space Kernel Space
DNS SIP
Module Negotiation
Management Database
NTM deamon
Node Infomation
SIP flag
NTM Negotiation Message DNS Message
Operation Flow Packet Flow
Added or modified module for proposal method Responder VIP
図
5.2 DC
のモジュール構成5.2
動作確認提案方式がアドレス不整合問題を解決できていることを確認するため,既存の
SIP
アプ リケーションを用いてNAT
を含めたネットワークを構築し動作検証を行った.図5.3
に試 験ネットワークの構成を示す.1
台の実機PC
上にインストールしたVMware6.0
を利用し て,NTM
端末3
台およびDC2
台,NAT
を仮想マシンとして構築した.NTM
端末1
台にSIP
サーバアプリケーションをインストールし,SIP
サーバとして扱う.NTM
端末1
台とDC2
台,SIP
サーバとNAT
を同一ネットワークに接続し,NTM
端末1
台をNAT
配下へ接続した.MN
とCN
は同じSIP
サーバを使用する.NTM
端末のMN
からNAT
配下に存在するNTM
SIP Server DC MN DC CN
MN
NAT CN 1000BASE-T
Virtual Machines
図
5.3
試験ネットワークの構成端末
CN
へ通信を開始する.SIP
クライアントはLinux
で動作するフリーソフトJitsi [21]
を使用した.SIP
サーバアプ リケーションには一般に使用されているフリーソフトのAsterisk [22]
を選択した.上記の環 境にて,SIP
で開始するIP
電話を実行した.Wireshark [20]
を用いてパケットをキャプチャ し,IP
電話がNAT
を越えて通信できたことを確認した.また,マイクおよびヘッドホンを 用いて正常に音声通話が開始できることを確認した.第 6 章 評価
6.1
既存技術との比較STUN
とTURN
を既存技術の代表としてとりあげ,提案方式との比較を行った結果を表6.1
に示す.•
アドレス不整合問題の解決STUN
は,NAT
がSymmetric NAT
の場合は使用することができない.TURN
は中継装 置を用い,提案方式は仮想IP
アドレスを使用することで,それぞれNAT
の種類に依 存せず通信を行うことができる.• SIP
アプリケーションの改造STUN
およびTURN
は,SIP
クライアントを改造する必要がある.また,ユーザは使 用するSTUN
やTURN
のサーバを各々設定する必要があり,ユーザがこれらの技術を 意識しなければならない.提案方式では,SIP
クライアントはNTMobile
を意識する 必要がなく,既存のものをそのまま流用することができる.•
移動通信への対応STUN
およびTURN
は,端末の移動を想定していないため,端末のIP
アドレスが変 化すると再度IP
アドレスを取得しなければならず,メディアセッションを継続するこ とができない.提案方式では,NTMobile
の移動透過性をそのまま活かすことができ,端末の
IP
アドレスが変化した場合は再度トンネル構築処理を行い,通信を継続させる ことができる.• SIP
サーバの改造STUN
およびTURN
は,既存のSIP
サーバをそのまま使用できる.提案方式では,NTMobile
を導入する必要がある.しかし,SIP
サーバのアプリケーションは手を加える必要がないため,
NTMobile
の導入のみで実現できる.表
6.1
既存技術と提案方式の比較STUN TURN
提案方式 アドレス不整合問題の解決 △ 〇 ○SIP
アプリケーションの改造 × × ○移動通信への対応 × × ○
SIP
サーバの改造 ○ ○ △6.2
処理時間の予測提案方式では,通常の
SIP
通信の合間をぬってNTMobile
のネゴシエーションをNTM
端 末間とSIP
サーバ間で2
回行う.NTMobile
のネゴシエーション時間合計は文献[18]
と[19]
より,
3G
とWi-Fi
ネットワーク間において約650ms
と推測されている.しかし,SIP
サー バは有線によりグローバルネットワーク上に設置することを想定しているため,SIP
サーバ間の
NTMobile
のネゴシエーションは上記の値よ大幅に短いことが推測される.以上のことから,提案方式によるオーバヘッドは実用上問題ないと言える.
第 7 章 まとめ
本論文では,
NAT
に改造を加えることなく通信接続性と移動透過性を同時に実現するNTMobile
において,NTMobile
で拡張を行うことにより,既存のSIP
アプリケーションやNAT
に一切の手を加えずにSIP
通信を行う方式について提案を行った.提案方式では,NTMobile
でSIP
通信を行う際に起きる課題をNTMobile
の拡張により解決を行った.SIP
サーバにNTMobile
を導入し,仮想IP
アドレスを識別可能とした.加えて,メディアセッションをNTM
端末間で行うためにSIP
パケットをフックする処理をNTMobile
に追加を行い,SIP
通信中に
NTMobile
のネゴシエーションを行うよう拡張した.また,提案方式を実装し,現在使われている
SIP
アプリケーションを用いて動作確認を行った.今後は,実ネットワーク上環境において実装したシステムの詳細な性能評価を行う.
NTM
端末が異なるNAT
配下に存在する場合および,ハンドオーバ時の動作検証も進めていく.また,
NTMobile
非対応端末とのSIP
通信について検討を進めていく予定である.謝辞
本研究に関して,研究の方向や進め方など終始御熱心な御指導とご教示を賜りました,名 城大学大学院理工学研究科情報工学専攻 渡邊晃教授に心より厚く御礼申し上げます.
本論文を作成するにあたり,快く査読を引き受けてくださり,熱心にご指導を頂きました,
名城大学大学院理工学研究科情報工学専攻 柳田康幸教授に心より厚く御礼申し上げます.
本論文を作成するにあたり,快く査読を引き受けてくださり,熱心にご指導を頂きまし た,名城大学大学院理工学研究科情報工学専攻 宇佐見庄五准教授に心より厚く御礼申し上 げます.
本論文を作成するにあたり,快く査読を引き受けてくださり,熱心にご指導を頂きました,
名城大学大学院理工学研究科情報工学専攻 鈴木秀和助教に心より厚く御礼申し上げます.
また,本研究を進めるにあたり,常日頃から御意見ならびに御助言を受け賜りました,三 重大学大学院工学研究科 内藤克浩助教に深謝いたします.
最後に,本研究を行うにあたり,適切な御意見および御助言を頂いた,名城大学名城大学 大学院理工学研究科情報工学専攻渡邊研究室並びに鈴木研究室の皆様に心より感謝いたし ます.