技術解説 第4回 『音声コミュニケーションを支える技術(4)』

2014 年 6 月
IP電 話 普 及 推 進 センタ
技 術 解 説 第 4回
『音 声 コミュニケーションを支 える技 術 (4)』
IP ネットワークは WAN、LAN といった異 なるネットワークの集 合 体 として構 成 されて
い ます 。 異 なる ネッ トワ ーク を 接 続 して 通 信 す る 場 合 には 互 い のネッ トワ ー クで のア ド レ
ス情 報 を変 換 する必 要 があります。今 回 はそのようなネットワークでの IP 電 話 の通 信 の
課 題 とそれを解 決 する技 術 について解 説 します。
NATとNAPT
イントラネットや家 庭 内 ネットワークなどの LANと、インターネットなどのWANなど管 理
主 体 の 異 な るIP ネッ ト ワ ー ク を 接 続 す る 場 合 に は 、 ネッ ト ワ ー ク 間 で 自 由 に 通 信 を さ せ
るのではなく、ファイアウォールなどのセキュリティ装 置 により必 要 な通 信 に限 定 します。
ファイアウォールではセキュリティ面 からWAN側 にはLAN側 のデバイスのIPアドレスを見
せず、ファイアウォールのIPアドレスを利 用 させます。ファイアウォールとLAN側 デバイス
との 対 応 付 けには NAT 1 や NAPT 2 な どの ア ドレ ス 変 換 技 術 が 用 い られ ます 。 まず 、 こ
れら 2 つのアドレス変 換 方 法 について説 明 します。
NAT は IP アドレスの対 応 付 けと変 換 を行 う方 式 です。LAN 内 のデバイスから WAN
にあるサーバに接 続 を行 う場 合 のアドレス変 換 を図 1 に示 します。
LAN
WAN
192.168.0.100
192.168.0.1
203.0.113.100
デバイス
NAT
IPアドレスの対応関係を生成
発信元 192.168.0.1: 1111
接続先 203.0.113.1 :80
発信元 203.0.113.1
:80
接続先 192.168.0.1 :1111
LAN 側
IPアドレス
192.168.0.1
203.0.113.1
IPアドレス
書き換え
WAN側
IPアドレス
203.0.113.100
サーバ
発信元 203.0.113.100: 1111
接続先 203.0.113.1 :80
発信元 203.0.113.1
:80
接続先 203.0.113.100 :1111
IPアドレス
書き換え
図 1: NAT
NAT は LAN 側 のデバイスからの通 信 を契 機 に、LAN 側 IP アドレスと NAT で管 理
する WAN 側 IP アドレスの対 応 関 係 を生 成 します。この対 応 関 係 に従 って、LAN 側 の
IP ヘッダ内 の発 信 元 を WAN 側 IP アドレスに書 き換 えてサーバに転 送 します。逆 に
WAN 側 のサーバからのパケット受 信 時 、接 続 先 を LAN 側 IP アドレスに書 き換 えて
LAN 側 のデバイスに転 送 します。
NAT では LAN 側 のデバイスの IP アドレスと WAN 側 の IP アドレスが 1 対 1 で対 応
1
2
Ne t w o rk A d d r e s s Tra n s l a ti o n
Ne t w o rk A d d r e s s P o r t Tr a n s l a t i o n
します。そのため LAN 側 の複 数 のデバイスが WAN 側 に同 時 に通 信 する場 合 、複 数 の
WAN 側 IP アドレスが必 要 です。WAN 側 の IP アドレスは通 常 はグローバル IP アドレス
となりますが、複 数 のグローバル IP アドレスの確 保 が困 難 な場 合 があります。
その場 合 は、一 つの WAN 側 IP アドレスと複 数 の LAN 側 デバイスの対 応 付 けが可
能 な NAPT が利 用 されます。NAPT は「IP マスカレード」とも呼 ばれ、家 庭 等 で利 用 され
るブロードバンドルータにも実 装 されています。図 2 に NAPT の動 作 の説 明 を記 しま
す。
WAN
LAN
192.168.0.1
192.168.0.100
203.0.113.100
デバイス
192.168.0.2
デバイス
発信元 192.168.0.2: 1111
接続先 203.0.113.1 :80
発信元 203.0.113.1
:80
接続先 192.168.0.2:1111
IPアドレス
書き換え
ポート番号
書き換え
NAPT
発信元 192.168.0.1: 1111
接続先 203.0.113.1 :80
発信元 203.0.113.1
:80
接続先 192.168.0.1:1111
IPアドレス
書き換え
IPアドレスとポート番号の対
応関係を生成
発信元 203.0.113.100: 2323
接続先 203.0.113.1 :80
発信元 203.0.113.1
:80
接続先 203.0.113.100: 2323
LAN
WAN
192.168.0.1:1111
203.0.113.100:2323
192.168.0.2:1111
203.0.113.100:2525
発信元 203.0.113.100: 2525
接続先 203.0.113.1 :80
同一のIPアドレス
を利用
発信元 203.0.113.1
:80
接続先 203.0.113.100: 2525
サーバ
203.0.113.1
ポート番号
書き換え
図 2: NAPT
NAPT では LAN 側 デバイスと WAN 側 のアドレスとを対 応 させるために、IP アドレス
に加 えポート番 号 を利 用 します。LAN 側 デバイスの IP アドレスとポート番 号 に対 して、
NAPT の WAN 側 の IP アドレスとポート番 号 の対 応 関 係 を生 成 します。これに基 づき IP
ヘッダ内 の発 信 元 を書 き換 えサーバに転 送 します。 NAPT の IP アドレスが 1 つであっ
ても、ポート番 号 を組 み合 わせることで、複 数 の LAN 側 のデバイスの通 信 が行 えます。
ネットワークをまたがる構 成 でのIP電 話 利 用 の課 題 と対 策
●企 業 ネットワーク内 で SIP を利 用 する場 合
SIP ではパケットのヘッダ部 だけでなくデータ部 にもアドレス情 報 を格 納 し、相 手 側 で
はデ ータ 部 に記 載 さ れ たア ドレ スを 利 用 して い ます 。 これ は、 接 続 の リクエ ス トを 出 す デ
バイスと通 話 を行 うデバイスが別 であるケースを考 慮 しているためです。
この場 合 NAT や NAPT を利 用 したネットワークにおいて問 題 が発 生 します。LAN 内
のデバイスが、WAN 側 のサーバに接 続 する時 、NAT/NAPT においてヘッダ部 の発 信 先
が書 き換 え られますが、データ部 の値 は 書 き変 わりません。そのためサーバ側 では、デ
ータ部 に埋 め込 まれたアドレス情 報 を読 み出 しそのアドレス宛 に送 信 しようとするものの、
WAN 側 か らは到 達 が できない LAN 側 の ア ドレスであるため、接 続 に失 敗 しま す( 図
3)。
LAN
WAN
②ヘッダの発信元をPからNに書き換え
①データ部に発信元(P)を埋め込む
データ部
ヘッダ部
P
返信先
P
P
データ部
NAT/NAPT
G
接続先アドレス
発信元アドレス
デバイス
P
返信先
ヘッダ部
N
VoIP
アプリ
G
G
N
サーバ
③データ部のアドレスに送信→
LAN側のアドレスなので送信できない!
P: 発信元IPアドレス
N: 書き換えた発信元IPアドレス(=NAT/NAPTのWAN側IPアドレス)
G:サーバのIPアドレス
図 3: IP 電 話 の NAT/NAPT 越 え問 題
この問 題 を発 生 させないためには、「LAN側 のデバイスでデータ部 にWAN側 のアドレ
スを埋 め込 んでおく」「途 中 の装 置 でデータ部 のアドレス情 報 を書 き換 える」という 2 通 り
の対 応 策 があります。前 者 の方 式 で実 現 する技 術 として「UPnP 3 NATトラバーサル」、
後 者 の方 式 として「ALG 4 」「プロキシ方 式 」 を紹 介 します。
[UPnP NAT トラバーサル方 式 ]
UPnP とは、LAN 側 のデバイスが WAN 側 から自 装 置 への接 続 を行 えるように WAN
と LAN の境 界 に設 置 した装 置 でアドレスの対 応 付 けの設 定 を行 うためのプロトコルです。
LAN 側 のデバイスは UPnP によって NAT/NAPT にサーバからの待 ち受 けをするアドレ
ス情 報 を登 録 し、対 応 する WAN 側 のアドレス情 報 を取 得 します。そしてこの値 をサーバ
に送 信 するパケットのデータ部 に埋 め込 みます。NAT/NAPT にお いてデータ部 の情 報
は書 き変 わりませんが、WAN 側 から接 続 可 能 なアドレスとなっているので、サーバはこ
のアドレスに対 して送 信 することが可 能 です。
記法(各図共通)
IPアドレス: ポート番号
発信元IPアドレス:ポート番号 → 接続先IPアドレス:ポート番号
LAN
デバイス側で
WAN側のアド
レスに変換
デバイス
データ部
N:n2
UPnP対応NAT/NAPT
ヘッダ部
P
ヘッダ部
データ部
G:g2→ P:p2
UPnP プロトコル
P: 発信元IPアドレス
データ部
N:n2
P:p1→ G:g1
② データ部に①の
情報埋め込む
① WAN側IPアドレ
スとポート番号を
取得
N
WAN
対応関係
[P:p2]⇔[N:n2]
G
ヘッダ部
4
Universal Plug and Play
Application Level Gateway
データ部
サーバ
G:g2→ N:n2
③データ部のアドレス情報を送信先とする
N: NAT/NAPTのWAN側IPアドレス G:サーバのIPアドレス
図 4: UPnP NAT トラバーサル方 式
3
ヘッダ部
N:n1→ G:g1
[ALG 方 式 ]
ALG とはプロトコルを解 釈 し、データ部 の情 報 を書 き換 える機 能 を持 った装 置 です。
ALG ではアプリケーション(プロトコル)ごとに変 換 機 能 が実 装 されており、SIP プロトコ
ル の 変 換 を 行 う ALG を 「 SIP ALG 」 と も 呼 び ま す 。 SIP ALG で は デ ー タ 部 か ら
「Contact」「Via」といった、SIP プロトコルで返 信 先 アドレスを意 味 するキーワードを探 し、
そのキーワードと紐 づくアドレス情 報 を WAN 側 のアドレス情 報 に書 き換 えるとともに、サ
ーバからの通 信 の NAT/NAPT の対 応 関 係 も生 成 します。ALG はデータ部 を解 釈 する
ために処 理 速 度 が出 づらいという課 題 はありますが、一 方 、きめの細 かいアクセス制 御
が行 えることもあり SIP-ALG 機 能 に加 えてファイアウォール機 能 も加 えた「セッションボ
ーダーコントローラー」は大 規 模 な拠 点 を中 心 に導 入 されています。
ALG
LAN
WAN
① 自アドレスをデータ部に埋込み
データ部
ヘッダ部
P:p2
P:p1→ G:g1
P
デバイス
ヘッダ部
N
② パケットを解析し
データ部のアドレス情
報を書き換えて転送
データ部
ヘッダ部
N:n2
N:n1→ G:g1
G
ヘッダ部
データ部
G:g2→ N:n2
G:g2→ P:p2
装置でWAN側
アドレスに変換
データ部
対応関係
[P:p2]⇔[N:n2]
サーバ
③VoIPアプリはデータ部の
アドレスを送信先として発信
P: 発信元IPアドレス N: NAT/NAPTのWAN側IPアドレス
G:サーバのIPアドレス
図 5: ALG 方 式
[プロキシ方 式 ]
プロキシ方 式 では NAT/NAPT に代 わって WAN と LAN の境 界 にプロトコルを終 端 し
て中 継 するプロキシサーバを設 置 します。SIP プロトコルの場 合 、SIP プロキシサーバが
これに該 当 します。
デバイスの接 続 先 はプロキシサーバ宛 てとなります。デバイス側 ではデータ部 に返 信
先 情 報 に加 え、接 続 先 となるサーバのアドレスを埋 め込 みます。プロキシサーバではデ
ータ部 を解 析 しこの接 続 先 情 報 に基 づいて、サーバに中 継 します。この時 プロキシサー
バはデータ部 の返 信 先 情 報 に、自 分 自 身 を経 由 するような記 載 を埋 め込 みます。サー
バでは到 着 したパケットのデータ部 の返 信 先 情 報 をデバイスに送 信 するパケットのデー
タ部 の接 続 先 情 報 として埋 め込 みます。プロキシではこの情 報 に基 づいてデバイスへの
通 信 を中 継 します。
LAN
データ部
接続先
G
P:p2
返信先
P
デバイス
ヘッダ部
WAN
プロキシ
M
N
G
N:n2経由P:p2
P:p1→ M:m1
① アプリは自アド
レスをデータ部の
返信先に埋込み
接続先
②ここで終端し、新し
いリクエストをサーバ
あてに送出。データ部
に自身を「経由先」と
して記載
M:m2→ P:p2
N:n1→ M:m1
G
返信先
③データ部のアドレス情報
の返信先を送信先に設定。
サーバ
G:g2→N:n2
N:n2経由P:p2
装置でWAN側ア
ドレスに変換
P: 発信元IPアドレス
M: NAT/NAPTのLAN側IPアドレス
N: NAT/NAPTのWAN側IPアドレス G:サーバのIPアドレス
図 6: プロキシ方 式
●インターネット電 話 を利 用 する場 合
企 業 の 音 声 ネットワークでの適 用 例 は多 くありませんが、インターネット 電 話 な どで 、
別 の LAN にあるデバイス同 士 が直 接 通 話 をする場 合 、接 続 されるデバイスから見 ると、
WAN 側 から LAN 側 に接 続 されることになります。
NAT や NAPT は LAN 側 か ら の 通 信 が 行 わ れ て 、 は じ め て WAN 側 と LAN 側 の 対 応 関
係 が生 成 されるため、そのままではWAN側 デバイスからの着 信 を受 けることができませ
ん。そのため双 方 のデバイスがNATやNAPTを介 してWAN(インターネット)に接 続 してい
る場 合 には着 信 ができないという問 題 が生 じます。この問 題 を解 決 するための「STUN 5
方 式 」について説 明 します。
[STUN 方 式 ]
STUN 方 式 では、LAN 内 のデバイスの発 信 元 アドレス情 報 が WAN 側 からどう見 える
かをデバイスに教 えるという機 能 を持 つ STUN サーバを WAN 側 に設 置 します。STUN
サーバを利 用 した例 を図 7 で紹 介 します。
通 信 を行 うデバイスがそれぞれ STUN サーバに接 続 して、その通 信 の発 信 先 アドレ
スに対 応 する WAN 側 の IP アドレス、ポート番 号 を取 得 します。STUN サーバから通 知
されたアドレスを WAN 側 に設 置 されている接 続 管 理 サーバに通 知 して、互 いの WAN
側 のアドレスを取 得 します。発 信 側 のデバイスは取 得 した着 信 側 デバイスの WAN 側 ア
ドレスに発 信 します。
デバイスが STUN サーバに接 続 した際 、NAT/NAPT には LAN 側 と WAN 側 のアドレ
スの対 応 関 係 ができています。そのため WAN 側 からの通 信 が LAN 内 のデバイスに到
達 できます。
5
Simple Traversal of UDP through NATs
STUNサーバ
接続管理サーバ
⑤LAN側からSTUN
サーバに接続した
ので、既に対応関
係がある。そのため
WAN側からLAN側
への接続ができる
②WAN側アドレス
情報を取得
③ 接続相手の
WAN側アドレス情
報を取得
M:m2→N:n2
M
N
NAT/NAPT
LAN
対応関係
[P:p2]⇔[N:n2]
①STUNサーバに
UDPパケット送出
NAT/NAPT
LAN
対応関係
[Q:q2]⇔[M:m2]
P:p2→N:n2
M:m2→Q:q2
④接続相手のWAN
側アドレスに送信
P
デバイスA
Q
デバイスB
P: デバイスA IPアドレス Q: デバイスB IPアドレス
M、N: NAT/NAPTのWAN側アドレス
図 7 STUN 方 式
STUN 方 式 は UPnP 方 式 と 違 い 、 NAT に 特 別 な 機 能 追 加 が 不 要 で す 。 た だ し 、 NAT
がWAN側 の接 続 先 毎 に異 なるポート番 号 を割 り当 てるような実 装 であると、STUNサー
バから通 知 されたアドレス情 報 では相 手 からの通 信 がNATを通 過 することができません。
このようなタイプのNATにも対 応 できるように、クライアント間 の通 信 を中 継 するサーバを
WAN側 に設 置 するTURN 6 という方 式 や、NATのアドレス対 応 付 けの実 装 を自 動 判 別
しSTUNとTURNのうち適 切 な方 式 を選 択 するICE 7 という包 括 的 な方 式 も普 及 してきて
います。
まとめ
音 声 コミュニケーションは、いつでも必 ずつながり、リアルタイム性 などの音 声 品 質 が
保 たれていることが当 然 のこととして求 められます。そのため、音 声 コミュニケーションを
支 える技 術 を理 解 して、安 定 したシステムを構 築 、運 用 することが必 要 です。
音 声 コミュニケーションは相 手 のニュアンスが分 かる、即 時 性 があるなどの特 徴 から、
指 示 ・相 談 ・交 渉 といったビジネスの重 要 な局 面 で今 後 も不 可 欠 な通 信 手 段 です。また
音 声 コミュニケーションの安 定 した基 盤 を発 展 させることで、ユニファイドコミュニケーショ
ン(UC)の導 入 につなげることもできます。
6
7
Tr a ve r s al U s i n g R e l a y N AT
I n t e ra c t i ve Co n n e c ti v i t y Es t a b li s h m e n t