インフラ用語集へ戻る

DNS・名前解決 / DNS

SRVレコードとは

Service record。特定サービスの接続先ホストとポートをDNSで示すレコードです。

用語集内のカードを見る

この記事で学べること

SRVレコードを、定義だけで終わらせず、現場で出てくる場面、確認材料、見落としやすい点、関連語とのつながりまで順に確認できます。

  1. SRVレコードとは何か
  2. 値の読み方
  3. 確認コマンドと証跡
  4. よくある失敗
  5. 変更記録への残し方

SRVレコードとは何か

SRVレコード(Service record)は、特定サービスの接続先ホスト、ポート、優先度、重みをDNSで示すレコードです。Aレコードが名前からIPアドレスを返すのに対し、SRVレコードはサービスの入り口を返します。

名前は _service._proto.name の形で表します。たとえば _sip._tcp.example.com のように、サービス名、プロトコル、対象ドメインを分けて問い合わせます。

利用者が直接SRVレコードを見る場面は多くありません。SIP、LDAP、Kerberos、Microsoft 365、XMPPなどのクライアントやサービスが、自動検出のために参照します。

値の読み方

SRVレコードの代表的な値は、priority、weight、port、targetです。priorityは小さい値ほど優先されます。weightは同じpriorityの中で分散比率を示します。portは接続先ポート、targetは実際に接続するFQDNです。

targetには通常、A/AAAAで名前解決できるホスト名を指定します。CNAMEの扱いは実装差や運用ルールに左右されるため、サービス提供元の指定値を確認します。

  • _serviceと_protoの綴りを確認する。
  • priority、weight、port、targetを分けて読む。
  • targetのA/AAAA解決と到達性を確認する。

確認コマンドと証跡

Windowsでは nslookup -type=SRV _service._tcp.example.com、LinuxやmacOSでは dig SRV _service._tcp.example.com のように確認します。管理画面の値だけでなく、権威DNSと利用者が参照する再帰DNSの回答を分けて保存します。

DNS変更直後はTTLやキャッシュで古い回答が残ります。反映待ちと設定ミスを混同しないため、問い合わせ先DNS、確認時刻、回答TTLを一緒に残します。

  • 権威DNSと社内/外部リゾルバの回答を比較する。
  • TTL、確認元、確認時刻を記録する。
  • targetの名前解決と対象ポートへの接続確認を残す。

よくある失敗

SRVレコードでは、サービス名の先頭アンダースコア、プロトコル名、ドメイン階層の誤りが起きやすくなります。値は登録できていても、クライアントが期待する名前と違えば参照されません。

priorityやweightを逆に理解すると、意図しない接続先へ偏ります。targetのホストが名前解決できない、ポートがFWで閉じている、旧SRVがキャッシュに残っている場合も、DNSだけ見ると原因を見落とします。

  • サービス提供元の指定名と完全に一致するか見る。
  • 複数targetの優先順位と分散比率を確認する。
  • DNS回答、疎通、アプリログを同じ時刻帯で突合する。

変更記録への残し方

SRVレコードを変更したら、旧値、新値、対象サービス、確認した権威DNS、TTL、targetの到達性、戻し条件を残します。Microsoft 365やSIPのように外部サービスの指定値がある場合は、参照した案内ページや管理画面も証跡にします。

関連語としてDNS、FQDN、TTL、ポート番号、Aレコードを並べると、名前解決と実通信のどちらで失敗しているか切り分けやすくなります。

  • SRV回答とtargetのA/AAAA回答をセットで保存する。
  • 反映確認は複数リゾルバで実施する。
  • 旧レコード削除のタイミングと影響範囲を記録する。

関連語

同じ主要カテゴリの用語

DNS・名前解決の学習順

同じ主要カテゴリの用語をまとめて確認できます。現在の用語を起点に、前後の用語へ進むと文脈を保ったまま読み進められます。

InfraEngKit内の関連機能