DNSを使ってアドレスを検索

 IP電話用の電話番号が決まっても,実際に運用するには解決すべき点が多い。

 IP電話では最終的に通話先の端末に割り振られているIPアドレスを割り出すことで相手と通話する。例えば,H.323では電話番号管理サーバ(ゲートキーパ)がこのアドレス解決を行っている。

 実装方法に関して標準が規定されているわけではないが,電話番号をキーにデータベースを検索する方法が一般的である。ただ,この方法で世界中のIP電話端末を接続するような大規模ネットワークを構築しようとすると,膨大な量のデータベースを管理する必要がある。

 そこで,IP電話やインターネットの技術者はDNSの仕組みに着目した。DNSはドメイン名からIPアドレスを見つけ出す。実際に稼働している大規模な分散システムである。

 ITU-TとIETFは,このDNSを使って電話番号と通信先の端末のIPアドレスの対応を取ることに取り組んでいる。仕様の名称は「ENUM(Telephone Number Mapping)」。共同で策定作業を進めている。

手段とアドレスを表現するURI

図5●IP電話で利用するURI(Uniform Resource Identifiers)の記述例

 ENUMでは,IP電話の電話番号と端末に接続するための情報を記述したURI(Uniform Resource Locator)を対応付ける。IP電話端末のIPアドレスではないことに注意してほしい。

 URIはインターネット上のリソースへのアクセス手段とリソースを表す文字列を組み合わせて記述する(図5[拡大表示])。Webページを指定するのに使うURLはURIのサブセットである。例えば,「http://nikkeibyte.com/」は「nikkeibyte.com」ドメインに「http」プロトコルを使ってアクセスすることを意味する。

 IP電話では,「sip:taro@nikkeibyte.com」のように記述することが提案されている(図5)。nikkeibyte.comドメインにあるtaroのIP電話端末はSIPでアクセスできることを意味している。

 URIを取得できれば,アクセス手段のほかにユーザの属しているドメイン名がわかる。その後は前述のSIPを使い,SIP Proxyサーバを通じて通話先の端末を呼び出すことになる。

逆引きで端末のURIを探す

図6●ENUM(Telephone Number Mapping)を使って相手のIP電話端末を呼び出す手順

 ここまで説明したENUMとURIの仕組みを実装した例が図6[拡大表示]である。

 まず,一般電話から「050」で始まるIP電話の電話番号をダイヤルする(1)。電話局にある交換機は「050」で始まる番号を受け取ると,IP電話への通話と判断し,IP電話のゲートウェイに接続する(2)。そして,ゲートウェイはENUMのサーバに電話番号の情報を渡す。

 次にENUMサーバは電話番号「050-1234-5678」を「8.7.6.5.4.3.2.1.0.5.0.e164.arpa」というドメイン名に変換する(3)。電話番号を逆さにして各数字をドットで区切り,「e164.arpa」という文字列を加えている。そして,DNSサーバに問い合わせる(4)。

 これはインターネットにおける逆引きと同じ仕組みである。例えば,nikkeibyte.comドメインのWebサーバに「202.26.186.154」というIPアドレスが割り当てられているとする。この場合,DNSサーバに「154.186.26.202.in-addr.arpa」のドメイン名を問い合わせるとWebサーバのマシン名を得ることができる。

 IP電話では末尾から二つ目の文字が「e164」となっている。このe164はITU-Tが策定した電話番号体系に関する国際標準「E.164」に準拠した番号であることを意味している。現在我々が使っている電話番号はこのE.164に準拠している。ちなみに,海外からでも国内で使っている電話番号に国番号を付加するだけで通話できるのはE.164のおかげである。

URIでアクセス方法がわかる

 ENUMでは電話番号で問い合わせると,それに対応したURIが返って来る。図6の場合は,「sip:taro@nikkeibyte.com」である(5)。この時点で「nikkeibyte.com」ドメインにいるtaroというユーザでSIPを使って呼び出せばいいということが判明する。

 次にENUMサーバはnikkeibyte.comドメインを管理しているSIPサーバのIPアドレスを調べる(6),(7)。これは通常のWebアクセスと同様の正引きである。ENUMサーバからURIやSIPサーバのIPアドレスの情報を受け取ったゲートウェイは通話のパケットを転送する(8)。そして,nikkeibyte.comのSIPサーバはtaroをSIPの手順で呼び出す(9)。

 このようにして,一般の電話から世界中のIP電話端末を呼び出すことが可能になる。特筆すべきはENUMのDNSサーバにはIPアドレスではなく,URIを登録しておくこと。このように実装すれば,URIを複数返して,発信元のユーザが接続方法を選択することができる。例えば,図5のようにIP電話だけでなく,電子メールや個人のWebページなどを指定することも可能である。

 ただ,現時点でITU-TやIETFで決まっているのは,ENUMでやり取りする電話番号やURI情報の形式だけである。図6で説明したようなENUMを使ったシステム構成や手順が標準化されているわけではない。あくまでも実装例である。

 IP電話で使う逆引きドメイン名やURIの記述方法,各DNSサーバへのURIの格納方法などを正式に決める必要がある。

セキュリティも考慮が必要

 ENUMの仕組みが構築できたとしても,運用面でいくつか課題はある。まずは安定性やセキュリティへの対策である。

表1●H.323を拡張するフレームワーク仕様の概要

 悪意を持つ者がENUMのDNSサーバになりすますことをどうやって見つけるのか。また,ENUMのDNSサーバを攻撃することで,IP電話が利用できなくなるといった事態も起こりかねない。

 運用面でも十分な配慮が求められる。IP電話に割り当てた番号やURIをENUMのDNSサーバにきちんと反映させなければならない。

 IP電話が普及すれば,現在使っている電話番号をIP電話にそのまま移行するナンバー・ポータビリティのニーズも多く出てくるだろう。IP電話の間でも事業者を変更するなどで起こり得る。ナンバー・ポータビリティに関しては,H.323の拡張仕様「H.460.2」で策定が済んでいる(表1[拡大表示])。ENUMのDNSサーバもナンバー・ポータビリティに対応する必要がある。

 まだ,IP電話にはいくつかの課題はあるものの,これらの課題が解決されることにより従来の電話ネットワークを越えたシームレスで,新しいコミュニケーションを創造することが可能となるだろう。

(千村 保文)

千村 保文

沖電気工業 ネットワークシステム本部 副本部長。ITU-TでVoIP/IP電話関連の標準化に携わる。通信事業者のIP電話サービス構築などシステム開発に従事している。