SIP URIによるロケーションの解決はどのように行われるのですか?

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

 SIP(参照:DNS Tips:SIPとは何ですか?)とは、一まとまりの通信を開始、変更、完了するアプリケーション層のシグナリングプロトコルで、電話やインスタントメッセンジャーのような、1対1あるいは複数の参加者間のやりとりに使われます。そのSIPで、相手を指定する方法の1つがSIP URIです。SIP URIのロケーション解決はRFC 3263に定義されています。

 SIP URIは多くの場合、sip:info@jprs.co.jpのように、ドメイン名部分とローカル部分から構成されますが、ドメイン名部分の解釈を説明します。ローカル部については、SIPサーバに静的、あるいは動的に対応表を持ちます。補足ですが、SIP URIとしては、sip:ドメイン名、sip:IPアドレス という書き方も許されています。

0. ドメイン名部分がIPアドレスの場合はそのまま使用します。

1. ドメイン名に対する NAPTR リソースレコードを検索します。SIPが対象とするサービスフィールドは、SIP+D2U SIP+D2T SIP+D2S SIPS+D2U SIPS+D2T SIPS+D2S、flagは“s” で、replacementフィールドに書かれたドメイン名に対してSRV検索を行なったものがSIP URIの指すロケーションとなります。

例: NAPTR検索

 jprs.co.jpへのSIP呼び出しを考えます。まず、jprs.co.jpのNAPTR検索を行ない、以下の結果を得たとします。

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

 SIP+D2Uは、トランスポートとしてUDPを用いるSIPサービスを示します。
 次に _sip._udp.jprs.co.jp. のSRVを検索するとサービスロケーションを得ることができます。 以下の結果を得たとします。

_sip._udp.jprs.co.jp. IN SRV 0 0 5060 sip0.jprs.co.jp.

 sip0.jprs.co.jpのポート5060がサービスロケーションです。
 次にsip0.jprs.co.jpのAを検索し、以下の結果を得たとします。

sip0.jprs.co.jp. IN A 203.178.129.36

 以上の結果として、jprs.co.jpのSIPサービスは、203.178.133.20のUDP 5060 ポートであることが分かりました。

2. 1でNAPTRリソースレコードが定義されていない場合、過去の標準との互換性のために、対応しているSIPプロトコル・トランスポートに従い、ドメイン名に _sip._udp や_sips._tcp などのプロトコル・トランスポート識別子をつけ、SRV問い合わせを行ないます。その結果、1の後半と同様にロケーションを得ることができます。

例: TCPトランスポートを使用するSIPSに対応しているクライアントの場合

 jprs.co.jpというドメイン名のロケーションを解決するには_sips._tcp.jprs.co.jp.に対し、SRV問い合わせを行ないます。


例: UDPトランスポートを使用するSIPに対応しているクライアントの場合

 jprs.co.jpというドメイン名のロケーションを解決するには_sip._udp.jprs.co.jp.に対し、SRV問い合わせを行ないます。

3. 12での問い合わせが失敗した場合、そのドメイン名のA, AAAAを検索し、IPアドレスを得ます。

 

関連記事 ENUMとは何ですか?
ENUMはどのようにしてDNSのデータベースに登録されるの?
SIPとは何ですか?
NAPTRリソースレコードって何ですか?
SRVリソースレコードって何ですか?

 

DNS Tips Index

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


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

注目のテーマ

Master of IP Network 記事ランキング

本日 月間