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
© Copyright 2024 Paperzz