DNS・名前解決 / DNS
SRVレコードとは
Service record。特定サービスの接続先ホストとポートをDNSで示すレコードです。
用語集内のカードを見るDNS・名前解決 / DNS
Service record。特定サービスの接続先ホストとポートをDNSで示すレコードです。
用語集内のカードを見る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の扱いは実装差や運用ルールに左右されるため、サービス提供元の指定値を確認します。
Windowsでは nslookup -type=SRV _service._tcp.example.com、LinuxやmacOSでは dig SRV _service._tcp.example.com のように確認します。管理画面の値だけでなく、権威DNSと利用者が参照する再帰DNSの回答を分けて保存します。
DNS変更直後はTTLやキャッシュで古い回答が残ります。反映待ちと設定ミスを混同しないため、問い合わせ先DNS、確認時刻、回答TTLを一緒に残します。
SRVレコードでは、サービス名の先頭アンダースコア、プロトコル名、ドメイン階層の誤りが起きやすくなります。値は登録できていても、クライアントが期待する名前と違えば参照されません。
priorityやweightを逆に理解すると、意図しない接続先へ偏ります。targetのホストが名前解決できない、ポートがFWで閉じている、旧SRVがキャッシュに残っている場合も、DNSだけ見ると原因を見落とします。
SRVレコードを変更したら、旧値、新値、対象サービス、確認した権威DNS、TTL、targetの到達性、戻し条件を残します。Microsoft 365やSIPのように外部サービスの指定値がある場合は、参照した案内ページや管理画面も証跡にします。
関連語としてDNS、FQDN、TTL、ポート番号、Aレコードを並べると、名前解決と実通信のどちらで失敗しているか切り分けやすくなります。
同じ主要カテゴリの用語をまとめて確認できます。現在の用語を起点に、前後の用語へ進むと文脈を保ったまま読み進められます。