2026年10月14日

2026年10月14日

SRVレコードの設定方法と活用例|書式の読み方、DNS管理画面での入力、digでの確認まで

SRVレコードは、「このドメインの〇〇サービスは、どのサーバーの何番ポートで提供しているか」をDNSで知らせるためのレコードです。書式は _サービス名._プロトコル.ドメイン という名前に、優先度・重み・ポート番号・接続先ホスト名の4つの値を組み合わせます。この記事では、書式の意味、代表的な活用例、DNS管理画面での入力のコツ、設定後の確認方法と、よくある失敗の直し方までを説明します。

TTLの決め方やIPv6との併用など、個別のテーマは別記事で扱っています。この記事はSRVレコード全体の基本と使いどころをまとめたものです。

SRVレコードの書式

ゾーンファイルの形式で書くと、SRVレコードは次のようになります。

_sip._tcp.example.com.  3600  IN  SRV  10  60  5060  sip1.example.com.
_sip._tcp.example.com.  3600  IN  SRV  10  40  5060  sip2.example.com.
_sip._tcp.example.com.  3600  IN  SRV  20  0   5060  sip-backup.example.com.

各項目の意味は次のとおりです。

  • **名前(_sip._tcp.example.com.)**: 先頭にサービス名、次にプロトコル(_tcp または _udp など)を、どちらもアンダースコア付きで書きます。
  • **TTL(3600)**: キャッシュされる秒数です。
  • 優先度(priority): 数字が小さいほど優先されます。上の例では、優先度10の2台が通常の接続先で、20のサーバーは予備です。
  • 重み(weight): 優先度が同じサーバー同士で、接続を振り分ける比率です。上の例では sip1 と sip2 におおよそ 60:40 で振り分けられます。サーバーが1台だけなら 0 で構いません。
  • ポート(port): サービスが待ち受けているポート番号です。
  • ターゲット(target): 接続先のホスト名です。IPアドレスは書けません。

SRVレコードの仕様はRFC 2782で定められています。ターゲットにはCNAMEではなく、AレコードやAAAAレコードを持つホスト名を指定することになっています。また、ターゲットに .(ドット1つ)を書くと、「このサービスはこのドメインでは提供していない」という意味になります。

SRVレコードの主な活用例

SRVレコードは、それを読む仕組みを持ったクライアントがあって初めて意味を持ちます。代表的な使われ方は次のとおりです。

  • SIP(IP電話): _sip._udp、_sip._tcp、_sips._tcp などで、SIPサーバーの場所を知らせます。
  • XMPP(チャット): クライアント接続用の _xmpp-client._tcp(一般的にポート5222)と、サーバー間接続用の _xmpp-server._tcp(一般的にポート5269)が使われます。
  • メールクライアントの自動設定: RFC 6186 では、_submission._tcp、_imaps._tcp、_pop3s._tcp などで送受信サーバーを知らせる方法が定義されています。対応しているメールソフトでは、アドレスを入力するだけでサーバー情報が埋まります。
  • CalDAV / CardDAV: RFC 6764 で _caldavs._tcp、_carddavs._tcp が定義されており、カレンダーや連絡先サーバーの自動検出に使われます。
  • Active Directory: ドメインコントローラーの検出に _ldap._tcp や _kerberos._udp などのSRVレコードが使われます。通常はWindowsサーバー側が自動で登録します。
  • ゲームサーバー: Minecraft(Java版)は _minecraft._tcp のSRVレコードに対応しており、標準以外のポートで動かしているサーバーにも、ポート番号を入力せずに接続できます。
  • Microsoft 365 など外部サービス: ドメインを接続する際に、管理画面でSRVレコードの追加を求められることがあります。必要なレコードはサービス側の構成変更で変わります(2026年10月現在)。作業の時点で管理画面に表示される値をそのまま使ってください。

一方、一般的なWebブラウザは、Webサイトへの接続にSRVレコードを使いません。WordPressサイトの表示先を変えたい場合は、これまでどおりAレコードやCNAMEを設定します。

DNS管理画面での入力のコツ

多くのDNS管理画面では、ゾーンファイルの1行をそのまま入力するのではなく、項目ごとの入力欄に分かれています。欄の名前はサービスによって異なりますが、入力する内容は次の対応で考えると迷いません。

  • ホスト名(名前): _sip._tcp のように、ドメイン名を除いた部分だけを入力する画面が多いです。ドメイン名まで入れると、_sip._tcp.example.com.example.com のように二重になることがあります。
  • サービス・プロトコル: 別々の欄がある画面では、_sip と _tcp を分けて入力します。アンダースコアが自動で付くかどうかは画面の説明を確認してください。
  • 優先度・重み・ポート: 数値をそれぞれの欄に入れます。重みの欄がなく、値の欄に「重み ポート ターゲット」をまとめて書く形式の画面もあります。
  • ターゲット(値): ホスト名を入力します。末尾のドットの要否は画面によって異なり、ドットなしで入力するとドメイン名が自動的に付け足される画面もあります。

作業の前に、既存のレコードの一覧を控えておくと、誤って上書きしたときに戻せます。移行に合わせて変更する場合は、事前にTTLを短くしておきます。

設定後に確認する方法

登録できたかどうかは、dig で確認します。

# SRVレコードを問い合わせる
dig _sip._tcp.example.com SRV +short

# 権威DNSに直接問い合わせて、キャッシュの影響を除く
dig @ns1.example-dns.net _sip._tcp.example.com SRV

# ターゲットのホスト名が解決できるか
dig sip1.example.com A +short
dig sip1.example.com AAAA +short

+short の出力は「優先度 重み ポート ターゲット」の順に並びます。Windowsでは次のように確認できます。

Resolve-DnsName -Name _sip._tcp.example.com -Type SRV
nslookup -type=SRV _sip._tcp.example.com

DNS上で正しく見えていても、ターゲットのサーバーでそのポートが開いていなければ接続できません。ポートの疎通も合わせて確認します。

nc -vz sip1.example.com 5060

うまくいかないときの原因と対処

起きやすい順に並べます。

  1. 名前の二重付加やアンダースコア抜け: dig で何も返らない場合、まず管理画面の一覧で名前がどう表示されているかを見ます。_sip._tcp.example.com.example.com のようになっていれば、ホスト名欄からドメイン名を外します。
  2. ターゲットが解決できない: ターゲットのホスト名にAまたはAAAAレコードがない、あるいはCNAMEになっていると、クライアントが接続できないことがあります。ターゲットを直接解決できるホスト名に変えます。
  3. ポート番号やプロトコルの取り違え: _tcp と _udp を間違えると、クライアントは別のレコードを探すため見つかりません。サービスの公式ドキュメントで、求められている名前とポートを照合します。
  4. キャッシュが残っている: 権威DNSでは新しい値が返るのに手元では古い場合は、TTLの経過を待つか、端末のDNSキャッシュをクリアします。
  5. クライアントがSRVに対応していない: そもそもSRVを参照しないソフトでは、レコードを正しく設定しても効果がありません。対応状況をソフトの仕様で確認します。

まとめ

  • SRVレコードは「サービスの提供場所」を、優先度・重み・ポート・ターゲットの4つの値で知らせるレコードです。
  • 名前は _サービス._プロトコル の形で、ターゲットにはAまたはAAAAレコードを持つホスト名を指定します。
  • SIP、XMPP、メールの自動設定、CalDAV/CardDAV、Active Directory、ゲームサーバーなど、SRVを読むクライアントがある場面で使います。Webブラウザの接続先には影響しません。
  • 設定後は dig ... SRV とポートの疎通確認をセットで行い、うまくいかなければ名前の書き方とターゲットから順に確認します。

お気軽にご相談ください

お見積りへ お問い合わせへ
▲