Skip to content

cosicosilife.com

ライフハックについていろいろ書きます

Primary Menu
  • サイトマップ
  • クラウド技術
  • 安全資産投資
  • 旅行
  • ライフハック
  • プライバシーポリシー
  • 運営者情報とご連絡先
  • Home
  • クラウド技術
  • 【初心者向け】DNSのSRVレコードとは?役割・設定・動作を詳しく解説
  • クラウド技術

【初心者向け】DNSのSRVレコードとは?役割・設定・動作を詳しく解説

david 2025年2月10日
DNS

この記事の目次(クリックしたらジャンプ)

Toggle
  • はじめに
  • SRVレコードとは?
  • SRVレコードの構成
    • 各フィールドの説明
    • SRVレコードの具体例
  • SRVレコードの動作と dig コマンドでの確認
    • dig コマンドの基本
    • dig の出力例
  • SRVレコードの使用例
    • 1. Active Directory(AD)での利用
    • 2. SIP(VoIP)サービス
  • SRVレコードの設定方法(BINDの場合)
  • 実際のアウトプット例の解説
    • 1. クエリの内容
    • 2. 出力の解釈
      • ヘッダー情報
      • QUESTION SECTION
      • 優先度の解釈
    • 3. その他の情報
    • 4. 結論
  • まとめ

はじめに

DNS(Domain Name System)は、インターネット上でドメイン名をIPアドレスに変換する重要なシステムです。その中でも、SRV(Service)レコード は、特定のサービスを提供するサーバーの場所を指定するために使用されます。

本記事では、SRVレコードの役割や設定方法、dig コマンドを使った動作確認まで詳しく解説します。初心者の方でも理解できるように説明していきますので、ぜひ最後までお読みください。


SRVレコードとは?

SRVレコード(Service Record)は、特定のサービスを提供するサーバーのホスト名とポート番号を指定するDNSレコードです。

通常のAレコードやCNAMEレコードは、単にドメインをIPアドレスに紐付ける役割を持ちますが、SRVレコードは 「どのサーバーがどのポートでサービスを提供しているか」 を定義する点が異なります。

例えば、MicrosoftのActive Directory(AD)やSIP(Session Initiation Protocol)などの通信サービスでよく使われます。


SRVレコードの構成

SRVレコードは、以下の形式で定義されます。

_service._protocol.example.com.  TTL  IN  SRV  priority weight port target

各フィールドの説明

フィールド名説明
_service提供するサービス名(例: _sip、_ldap)
_protocol使用するプロトコル(_tcp または _udp)
example.com.対象のドメイン名
TTLキャッシュの有効期限(秒単位)
INインターネットクラスの指定(固定値)
SRVレコードの種類(固定値)
priority優先度(小さい値ほど優先される)
weight重み付け(同じ優先度の中で負荷分散するため)
portサーバーがリスニングしているポート番号
target実際のホスト名

SRVレコードの具体例

例えば、SIPサービス(VoIP)で example.com のサーバーを定義する場合、以下のように設定します。

_sip._tcp.example.com. 86400 IN SRV 10 60 5060 sipserver.example.com.

この設定の意味は以下の通りです。

  • _sip: SIP(Session Initiation Protocol)サービス
  • _tcp: TCPプロトコルを使用
  • example.com: 管理するドメイン
  • 86400: キャッシュの有効期限(1日)
  • 10: 優先度(この値が小さい方が優先)
  • 60: 負荷分散の重み
  • 5060: SIPの標準ポート
  • sipserver.example.com: 実際のホスト名

SRVレコードの動作と dig コマンドでの確認

SRVレコードが正しく設定されているかを確認するには、dig コマンドを使用します。

dig コマンドの基本

SRVレコードを問い合わせるには、以下のコマンドを実行します。

dig _sip._tcp.example.com SRV

dig の出力例

;; ANSWER SECTION:
_sip._tcp.example.com. 86400 IN SRV 10 60 5060 sipserver.example.com.

この結果から、example.com の SIP サーバーは sipserver.example.com であり、ポート 5060 でリスニングしていることが分かります。


SRVレコードの使用例

1. Active Directory(AD)での利用

MicrosoftのActive Directory環境では、クライアントPCがドメインコントローラー(DC)を見つけるために SRV レコードが使用されます。

_ldap._tcp.dc._msdcs.example.com.  3600 IN SRV 0 100 389 dc1.example.com.

この設定により、LDAPプロトコルを使用して dc1.example.com で認証が行われます。

2. SIP(VoIP)サービス

SIPプロトコルを使う VoIP サービスでは、SRVレコードを利用して適切なSIPサーバーに接続します。

_sip._tcp.example.com. 86400 IN SRV 10 60 5060 sipserver.example.com.

SRVレコードの設定方法(BINDの場合)

BIND(Berkeley Internet Name Domain)を使用してSRVレコードを設定する場合、ゾーンファイルに以下のように記述します。

$TTL 86400
@   IN  SOA  ns1.example.com. admin.example.com. (
        2024021001 ; Serial
        3600       ; Refresh
        1800       ; Retry
        1209600    ; Expire
        86400      ; Minimum TTL
)

    IN  NS  ns1.example.com.
    IN  NS  ns2.example.com.

_sip._tcp   IN  SRV  10 60 5060 sipserver.example.com.

実際のアウトプット例の解説

それでは

dig srv _sips._tcp.tkosec.incontact.com

; <<>> DiG 9.18.30-0ubuntu0.22.04.2-Ubuntu <<>> srv _sips._tcp.tkosec.incontact.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 51196
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;_sips._tcp.tkosec.incontact.com. IN    SRV

;; ANSWER SECTION:
_sips._tcp.tkosec.incontact.com. 300 IN SRV     20 0 5061 osasec.incontact.com.
_sips._tcp.tkosec.incontact.com. 300 IN SRV     10 0 5061 tkosec.incontact.com.

;; Query time: 151 msec
;; SERVER: 127.0.0.53#53(127.0.0.53) (UDP)
;; WHEN: Mon Feb 10 10:15:07 JST 2025
;; MSG SIZE  rcvd: 140

1. クエリの内容


これは SRVレコード を検索するクエリであり、
_sips._tcp.tkosec.incontact.com というサービスに関するSRVレコードを問い合わせています。

2. 出力の解釈

ヘッダー情報

>>HEADER<<- opcode: QUERY, status: NOERROR, id: 51196

opcode: QUERY → 標準的なDNSクエリ

status: NOERROR → クエリは正常に処理され、エラーはなし

id: 51196 → クエリの識別番号

QUESTION SECTION

;; QUESTION SECTION:
;_sips._tcp.tkosec.incontact.com. IN    SRV

これは、どのレコードを問い合わせたのかを示します。
SRVレコード (IN SRV) を問い合わせたことが分かります。

ANSWER SECTION(重要部分)

yamlコピーする編集する;; ANSWER SECTION:
_sips._tcp.tkosec.incontact.com. 300 IN SRV     20 0 5061 osasec.incontact.com.
_sips._tcp.tkosec.incontact.com. 300 IN SRV     10 0 5061 tkosec.incontact.com.

SRVレコードのフォーマットは以下のようになっています:

<サービス名> <TTL> <クラス> <レコードタイプ> <優先度> <重み> <ポート> <ターゲットホスト>



この場合:

  1. 1つ目のレコード
    • サービス名: _sips._tcp.tkosec.incontact.com
    • TTL: 300秒
    • クラス: IN(インターネット)
    • レコードタイプ: SRV
    • 優先度: 20(値が小さい方が優先される)
    • 重み: 0
    • ポート: 5061(SIP over TLS)
    • ターゲットホスト: osasec.incontact.com
  2. 2つ目のレコード
    • 優先度: 10(こちらの方が優先度が高い)
    • ターゲットホスト: tkosec.incontact.com
    • その他の値: 同じ(重み 0、ポート 5061)

優先度の解釈

  • tkosec.incontact.com の方が 優先度10 なので 先に接続される。
  • osasec.incontact.com は 優先度20 なので、tkosec が利用できない場合に接続される。

3. その他の情報

 Query time: 151 msec
;; SERVER: 127.0.0.53#53(127.0.0.53) (UDP)
;; WHEN: Mon Feb 10 10:15:07 JST 2025
;; MSG SIZE  rcvd: 140

  • Query time: 151 msec → DNSクエリにかかった時間
  • SERVER: 127.0.0.53 → ローカルのDNSリゾルバを使用
  • WHEN: クエリを実行した日時
  • MSG SIZE rcvd: 140バイト → レスポンスのサイズ

4. 結論

この SRV レコードの意味は:

  • SIP over TLS (sips) を使用するクライアントは、まず tkosec.incontact.com:5061 に接続する。
  • もし tkosec.incontact.com が利用できない場合は、代わりに osasec.incontact.com:5061 に接続する。
  • 負荷分散のための「重み」は設定されていない(両方とも 0 )。

このように、SRVレコードを使うことで、特定のサービス(この場合は SIP over TLS)をホスト名だけでなく ポートや優先順位付き で指定できます。

まとめ

  • SRVレコードは、特定のサービスを提供するサーバーを指定するDNSレコード である。
  • 優先度・重み・ポート番号・ホスト名を含む ことで、通常のAレコードより詳細な制御が可能。
  • Active DirectoryやSIPサーバーの動作に重要な役割 を果たす。
  • dig コマンドを使って設定を確認できる。
  • BINDのゾーンファイルで簡単に設定できる。

SRVレコードを理解することで、DNSの仕組みをより深く学ぶことができます。特に、ネットワーク管理やクラウドサービスを扱う人にとって、知っておくべき重要な概念です。

この記事がSRVレコードの理解に役立てば幸いです!

Continue Reading

Previous: LINEとAWSを使った料金確認システムの構築ガイド
Next: ブラウザからDBにたどり着くまで、まとめに自分なりのコメントを書いてみる

Related Stories

A realistic whale with the word Docker in a manga style, without making the eyes too cute
  • クラウド技術

david 2025年6月2日
A realistic whale with the word Docker in a manga style, without making the eyes too cute
  • クラウド技術

Ubuntu上にArgo CDをインストールし、ブラウザアクセスできるようにする手順(k8s.cosicosilife.com対応)

david 2025年6月1日
A realistic whale with the word Docker in a manga style, without making the eyes too cute
  • クラウド技術

【初心者向け】Argo CD に初めてのアプリケーションをデプロイしてみよう!

david 2025年6月1日
  • argocdの導入
  • (タイトルなし)
  • オンプレUbuntuでHelm中心にKubernetes運用・CI/CD構築
  • Ubuntu上にArgo CDをインストールし、ブラウザアクセスできるようにする手順(k8s.cosicosilife.com対応)
  • 【初心者向け】Argo CD に初めてのアプリケーションをデプロイしてみよう!
  • サイトマップ
  • クラウド技術
  • 安全資産投資
  • 旅行
  • ライフハック
  • プライバシーポリシー
  • 運営者情報とご連絡先
  • サイトマップ
  • クラウド技術
  • 安全資産投資
  • 旅行
  • ライフハック
  • プライバシーポリシー
  • 運営者情報とご連絡先
Copyright © Cosicosilife | MoreNews by AF themes.