NAPTRリソースレコードって何ですか?

藤原和典(JPRS)
2003/6/9

 NAPTR(The Naming Authority Pointer)リソースレコードは、DDDS(Dynamic Delegation Discovery System)という体系の中で定義されたDNSのリソースレコードです。これらの詳細は、RFC 3401340234033404で定義されており、概ね以下の2つの機能があります。

 ドメイン名にURIを登録する機能と、SRVリソースレコードと組み合わせ、電子メールの配送に用いるMXリソースレコードの考え方を一般化し、多くのアプリケーションのロケーションをドメイン名を用いて指定できるようにする機能であると考えると分かりやすいでしょう。

図 従来のリソースレコードとNAPTRリソースコードの違い(画像をクリックすると拡大表示します)

 DNSのリソースレコードのほとんどは、比較的単純な構文によりドメイン名やIPアドレスなどの関係を定義するものです。しかし、この方法だけではDNSで記述できる内容に拡張性を持たせることができません。

 NAPTRリソースレコードは、この課題を解決するための方法として生み出されたもので、指定されたドメイン名に対してさまざまな情報を定義し記述することができるようになっています。

 NAPTRリソースレコードのフォーマットは次のようになっています。

表 NAPTRリソースレコードフォーマット(概要)
Label IN NAPTR Order Preference Flags Services Regexp Replacement
Label ドメイン名
Order ・ 16bit符合なし整数
・ 複数のNAPTRリソースレコードの処理順序指定
・ 小さいものを優先
Preference ・ 16bit符合なし整数
・ 同一Order値の中での処理順序指定
・ 小さいものを優先
Flags NAPTRリソースレコードの動作を指定
“u” URIを出力
“s” ReplacementフィールドのラベルをSRV検索したものが最終結果
“a” ReplacementフィールドのラベルをA,AAAA検索したものが最終結果
“p” アプリケーション依存の動作を行う(未定義)
“” DDDSの反復処理
Services ・ リソースレコードが対象としているサービスを指定
・ ENUMの場合はE2U+enumservices
・ SIPの場合は SIP+D2Uなど
Regexp ・ 正規表現を用いた置換規則
・ 区切り文字として!などを用いて、パターン部、置換文字列を記述
・ パターン部はPOSIX拡張正規表現
・ 置換文字列中に \1 などを用いて、パターンマッチ結果を参照可能
Replacement ドメイン名を出力すればよいときにRegexpフィールドの代わりに使用、Regexpと排他で、使用しないときは“.”

例1:ENUMでの使用例

+81352972571に sip:info@jprs.co.jp を対応付ける場合、RFC3761RFC3764にて以下のようにDNS登録することが提案されています(本来、2〜3行目は1行で改行なし)。

$ORIGIN 1.8.e164.arpa.
1.7.5.2.7.9.2.5.3 IN NAPTR 0 0 "u" "E2U+sip" "!^.*$!sip:info@jprs.co.jp!" .

Flags “u” 最終結果としてURIを出力
Services E2U: ENUMを指定
E2U+sip: ENUMサービスとしてのSIPを指定

ENUMで
SIPを用いる
Regexpフィールド "!^.*$!sip:info@jprs.co.jp!"
・ 区切り文字  !
・ パターン部   ^.*$ 任意の入力にマッチ
・ 置換部       sip:info@jprs.co.jp

例2:SIPでの使用例

jprs.co.jpのSIPサーバが sip0.jprs.co.jpのUDP ポート5060で動作している場合、以下のようにDNSに記述することがRFC3263で定義されています。

jprs.co.jp. IN NAPTR 0 0 "s" "SIP+D2U" "" _sip._udp.jprs.co.jp.
_sip._udp.jprs.co.jp. IN SRV 0 0 5060 sip0.jprs.co.jp.

サービスフィールドのD2UはUDPのサービスを意味し、“s” により最終結果は_sip._udp.jprs.co.jpのSRVリソースレコードを検索すれば得られることを示しています。


関連記事 ENUMとは何ですか?
ENUMはどのようにしてDNSのデータベースに登録されるの?
SIPとは何ですか?
SIP URIによるロケーションの解決はどのように行われるの?
SRVリソースレコードって何ですか?
ゾーンファイルの書き方を教えてください

DNS Tips Index

「Master of IP Network総合インデックス」


Master of IP Network フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Master of IP Network 記事ランキング

本日 月間