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
うまくいかないときの原因と対処
起きやすい順に並べます。
- 名前の二重付加やアンダースコア抜け:
digで何も返らない場合、まず管理画面の一覧で名前がどう表示されているかを見ます。_sip._tcp.example.com.example.comのようになっていれば、ホスト名欄からドメイン名を外します。 - ターゲットが解決できない: ターゲットのホスト名にAまたはAAAAレコードがない、あるいはCNAMEになっていると、クライアントが接続できないことがあります。ターゲットを直接解決できるホスト名に変えます。
- ポート番号やプロトコルの取り違え:
_tcpと_udpを間違えると、クライアントは別のレコードを探すため見つかりません。サービスの公式ドキュメントで、求められている名前とポートを照合します。 - キャッシュが残っている: 権威DNSでは新しい値が返るのに手元では古い場合は、TTLの経過を待つか、端末のDNSキャッシュをクリアします。
- クライアントがSRVに対応していない: そもそもSRVを参照しないソフトでは、レコードを正しく設定しても効果がありません。対応状況をソフトの仕様で確認します。
まとめ
- SRVレコードは「サービスの提供場所」を、優先度・重み・ポート・ターゲットの4つの値で知らせるレコードです。
- 名前は
_サービス._プロトコルの形で、ターゲットにはAまたはAAAAレコードを持つホスト名を指定します。 - SIP、XMPP、メールの自動設定、CalDAV/CardDAV、Active Directory、ゲームサーバーなど、SRVを読むクライアントがある場面で使います。Webブラウザの接続先には影響しません。
- 設定後は
dig ... SRVとポートの疎通確認をセットで行い、うまくいかなければ名前の書き方とターゲットから順に確認します。