SRVレコードの形式は次のとおりです。
_service._proto.name. ttl IN SRV優先度ウェイトポートターゲット。 サービス :希望するサービスのシンボル名。proto : 目的のサービスのトランスポートプロトコル。通常はTCP またはUDP です。name : このレコードが有効なドメイン名。末尾はドットで終わる。ttl :標準的なDNSの有効期間 フィールド。IN : 標準 DNS クラス フィールド (これは常にIN です)。SRV :レコードの種類(これは常にSRV です)。優先度 :対象ホストの優先度。値が小さいほど優先度が高い。重み :同じ優先順位のレコードに対する相対的な重み。値が大きいほど選ばれる可能性が高くなります。port :サービスが稼働するTCPまたはUDPポート。target : サービスを提供するマシンの正規ホスト名。末尾はドットで終わる。ゾーンファイル に含まれる可能性のあるテキスト形式のSRVレコードの例は次のとおりです。
_sip._tcp.example.com. 86400 IN SRV 0 5 5060 sipserver.example.com. sipserver.example.comこれは、TCPポート5060でセッション開始プロトコル (SIP)サービスをリッスンしているサーバーを指しています。ここで指定されている優先度は0、重みは5です。
MX レコード と同様に、SRV レコードのターゲットはアドレス レコード ( A レコードまたはAAAA レコード) を持つホスト名を指している必要があります。CNAME レコード を持つホスト名を指すことは有効な構成ではありません。[ 1 ]
高いサービス可用性を確保するための準備 優先度 フィールドは、レコードのデータの使用優先順位を決定します。クライアントは、優先度値が最も低いSRVレコードを優先的に使用し、接続が失敗した場合は優先度値の高いレコードにフォールバックする必要があります。サービスに同じ優先度値のSRVレコードが複数ある場合、クライアントは重み フィールドの値に応じて負荷分散を 行う必要があります。以下の例では、優先度 フィールドと重み フィールドの両方を使用して、負荷分散とバックアップサービスの組み合わせを実現しています。
; _service._proto.name. TTL クラス SRV 優先度 ウェイト ポート ターゲット。 _sip._tcp.example.com. 86400 IN SRV 10 60 5060 bigbox.example.com. _sip._tcp.example.com. 86400 IN SRV 10 20 5060 smallbox1.example.com. _sip._tcp.example.com. 86400 IN SRV 10 20 5060 smallbox2.example.com. _sip._tcp.example.com. 86400 IN SRV 20 0 5060 backupbox.example.com. 最初の 3 つのレコードは優先度 10 を共有しているため、重みフィールドの値は、クライアントがどのサーバー (ホストとポートの組み合わせ) に接続するかを決定するために使用されます。3 つの重み値の合計は 100 なので、bigbox.example.com60% の確率で使用されます。2 つのホストsmallbox1と は、smallbox2合計リクエストの 40% に使用され、そのうちの 半分が にsmallbox1、残りの半分がに送信されますsmallbox2。bigboxが利用できない場合、残りの 2 つのマシンはそれぞれ 50% の確率で選択されるため、負荷を均等に共有します。
優先度10のサーバー3台すべてが利用できない場合、次に優先度の低いレコードが選択されますbackupbox.example.com。これは、別の物理的な場所にあるマシンである可能性があり、最初の3台のホストが利用不能になるような脆弱性がないと考えられます。
SRVレコードによる負荷分散は、情報が基本的に静的であるため、本質的に限界があります。TTL値が十分に低い(1分程度以下)場合を除いて、優先度(または重み)値を迅速に更新できない限り、サーバーの現在の負荷は考慮されません。
参考文献 ↑ Gulbrandsen, A.; Vixie, P.; Esibov, L. ( 2000 年 2 月)。「SRV RR のフォーマット」。 サービスの場所を指定するための DNS RR (DNS SRV) 。IETF。doi : 10.17487/RFC2782。RFC 2782。2021 年 12 月 3 日 取得 。この名前には 1 つ以上のアドレス レコード が存在しなければならず、この名前 はエイリアスであってはなりません (RFC 1034 または RFC 2181 の意味において)。 ↑ 「apt における DNS SRV レコードのサポート」 。Debian。2018 年 5 月 4 日。2019 年 11 月 17 日のオリジナルから アーカイブ済み。2019 年 11 月 17 日 取得 。 ↑ "RFC6764: WebDAV (CalDAV) のカレンダー拡張機能および WebDAV (CardDAV) の vCard 拡張機能のサービスを見つける" 。 ↑ 「DNS を介してモニターを検索する - Ceph ドキュメント」 。Ceph ドキュメント 。2017 年 12 月 5 日のオリジナルから アーカイブ済み。2017 年 12 月 4 日 取得 。 ↑ 「バージョン 1.1.62 - Factorio フォーラム」 。Factorio フォーラム 。2022 年 9 月 16 日のオリジナルから アーカイブ済み。2022 年 9 月 16 日 取得 。 ↑ 「バージョン 1.1.67 - Factorio フォーラム」 。Factorio フォーラム 。2022 年 8 月 20 日のオリジナルから アーカイブ済み。2022 年 9 月 16 日 に取得 。 ↑ 「SRVレコードのサポートを追加 - 4ページ - Factorioフォーラム」 。Factorio フォーラム 。 2022年9月16日のオリジナルから アーカイブ済み。 2022年 9月16日 に取得 。 ↑ 「マルチプレイヤー - Factorio Wiki」 。Factorio Wiki 。 2025年 11月26日 取得 。 ↑ 「マスターKDCとスレーブKDCのホスト名」 。 マサチューセッツ工科大学 。 2012年10月21日のオリジナルから アーカイブ済み。 2012年 5月23日 取得 。 ↑ Zeilenga, K. (2001年4月). OpenLDAPルートサービス - 実験的なLDAPリファラルサービス . IETF . doi : 10.17487/RFC3088 . RFC 3088. 2020年1月16日の オリジナル からアーカイブ済み。 2020年 7月5日 取得 。 ↑ Daboo, C. (2011年3月). 電子メール送信/アクセスサービスを特定するためのSRVレコードの使用 . IETF . doi : 10.17487/RFC6186 . RFC 6186. 2013年4月17日の オリジナル からアーカイブ済み. 2013年 4月17日 に取得 . ↑ 「 フェデレーション API」 。Matrix.org 。 2020年7月5日のオリジナルから アーカイブ済み 。 2018年 1月5日 に取得。 ↑ 「Java Edition 1.3.1」 。Minecraft Wiki 。 2023年 9月24日 取得 。 ↑ 「MongoDB接続文字列URI形式」 。MongoDB 。 2022年12月 10日にオリジナルから アーカイブ済み 。 2022年 12月14日に 取得。 ↑ "DNS SRVレコードのサポートを追加 - mumble-voip/mumble" . GitHub . 2020年7月5日のオリジナルから アーカイブ済み. 2020年 7月5日 に取得 . ↑ 「Baraza - ユーザーガイド」 。 2008年8月22日に オリジナル からアーカイブされました。 ↑ 「Puppet ドキュメント: DNS SRV レコードを使用したコンパイル マスターによる Puppet のスケーリング」 。Puppet Labs。2019 年 10 月 11 日にオリジナルから アーカイブ済み 。2019 年 12 月 17 日 に取得 。 ↑ 「サーバーの DNS レコード」 。Rust Wiki。2024 年 11 月 6 日 取得 。 ↑ "DNS SRV を介してプライマリ STUN サーバーを解決する · Issue #10029 · syncthing/syncthing" 。 ↑ " [ 提案 ] TS DNS" . Teamspeak フォーラム . 2016 年 11 月 14 日にオリジナルから アーカイブ済み . 2013 年 10 月 25 日 に取得. ↑ 「TeamSpeak 3クライアント バージョン3.0.8がリリースされました」 。Teamspeak フォーラム 。 2016年9月27日のオリジナルから アーカイブ済み 。 2020年 7月5日 取得。 ↑ 「XEP-0156: 代替 XMPP 接続方法の発見」 。XMPP.org。2012年 5 月 7 日の オリジナル からアーカイブ済み。2012 年 5 月 23 日 取得 。 ↑ 「Outlook 2007 で DNS サービスロケーション (SRV) レコードを使用して Exchange 自動検出サービスを検索できる新機能が利用可能になりました」 。Microsoft サポート 。2010 年 5 月 13 日。2012年 4 月 20 日の オリジナル からアーカイブ。2012 年 5 月 23 日 取得 。 ↑ Koch, Werner. "OpenPGP Web Key Directory draft-koch-openpgp-webkey-service-06" . IETF Datatracker . Internet Engineering Task Force . 2021年 6月5日 取得 . ↑ Koch, Werner. "OpenPGP Web Key Directory draft-koch-openpgp-webkey-service-12" . IETF Datatracker . Internet Engineering Task Force . 2021年 6月5日 取得 . ↑ Cotton, M.; Eggert, L.; Touch, J.; Westerlund, M.; Cheshire, S. (2011 年 8 月). Internet Assigned Numbers Authority (IANA) Procedures for the Management of the Service Name and Transport Protocol Port Number Registry . IETF . doi : 10.17487/RFC6335 . RFC 6335 . 2020 年 7 月 6 日の オリジナル からアーカイブ済み. 2020 年 7 月 6 日 取得 .