インターネット電話やIP電話に関連する技術用語に「ENUM」がある。ENUMとは,DNSのしくみを使って,電話番号からさまざまなアドレス情報を引き出す技術のこと。電話番号をキーにして,メール・アドレスやWebページのURL,IP電話用のアドレスなど,インターネット上で使うさまざまなアドレス情報を検索できるようになる。では,ENUMはどのようにDNSのしくみを使っているのだろうか。

 ENUMはDNSのしくみを拡張して実現した。拡張した要素は二つ。ドメイン名空間と資源レコードである。

 まずはドメイン名空間から。ENUMでは,arpaドメインという特殊なドメイン名空間を使う。arpaドメインは,IPアドレスからドメイン名を検索する「逆引き」に使うドメイン名空間。ENUMでは,arpaドメインの下に新しく「e164.arpa」というドメイン名空間を作り,そこを使う。

 ENUMで情報検索の基になるのは電話番号である。そこで,電話番号をドメイン名に見立てて,DNSで検索できるようにした。

 電話番号をドメイン名にする規則は以下のようになる。まず,電話番号「03-1234-5678」をE.164番号という形式に直す。すると,「+81-3-1234-5678」となる。次に,これらの中にある数字だけを取り出して,それぞれの数字をドットで区切って「8.1.3.1.2.3.4.5.6.7.8」とする。さらに,並びを逆にして,末尾にe164.arpaを付ける。すると「8.7.6.5.4.3.2.1.3.1.8.e164.arpa」となる。これがENUM情報の検索キーワードに使うドメイン名になる。

 次は,拡張された資源レコードについて見ていこう。

 ENUMでは,新しく規定したNAPTRレコードという資源レコード・タイプで資源レコードを記述する。NAPTRレコードのデータ部分には,URI形式でアドレス情報を記述するようになっている。そのため,電子メール・アドレスやIP電話用のSIPアドレスなどさまざまな種類のアドレス情報をドメイン名に対応付けられる。形式は,電子メールなら「mailto:user1@example.jp」,IP電話用のSIPアドレスなら「sip:user1@example.jp」のようになる。

 ENUMによる問い合わせは,通常のドメイン名の場合と同じ。例えば,8.7.6.5.4.3.2.1.3.1.8.e164.arpaというドメイン名に対する情報を要求すると,リゾルバ(DNSのクライアント・ソフト)がルート・サーバーからDNSサーバーをたどり,ルート,arpa,e164.arpa,8.e164. arpa…という順番に要求を出していく。最終的に8.7.6.5.4.3.2.1.3.1.8.e164.arpaを管理するDNSサーバーにたどり着き,そのDNSサーバーから目的のドメイン名に対応したNAPTRレコードを呼び出す。

 このとき,DNSサーバーから複数のNAPTRレコードが送られてくることがある。一つのドメイン名に対して複数のNAPTRレコードをDNSサーバーに登録されているケースでこうなる。さまざまな種類のアドレス情報を一つのドメイン名に対応付けられるようになっている。さらに,それぞれのNAPTRレコードには優先度を設定できる。

 複数のNAPTRレコードを受け取ったクライアントはまず,NAPTRレコードのデータを優先度を調べる。そして,クライアント自身が利用できるアドレス情報を選んで通信処理に移る。こうすることで,例えば,NAPTRレコードとしてSIPアドレスと電子メール・アドレスを受け取ったクライアントは,最初に優先度の高いSIPアドレスを使ってIP電話をかけ,相手が不在なら,メール・クライアントを起動して電子メールを送るといったことが可能になる。

半沢 智