本文へ移動
QKQuickKitEN
DNSLOCALブラウザ内で処理

SRV レコード作成

サービス、プロトコル、優先度、重み、ポート、ターゲットから DNS SRV レコードを生成・検証します。

入力と主要な処理をブラウザ内で行い、その入力内容をQuickKitサーバーへ送信しない設計です。

SRV レコード

仕組みと使い方

SRV レコードのプレゼンテーション形式を作成します。クライアントは到達可能な最小の優先度を先に使い、同じ優先度内では重みが相対的な選択確率を表します。そのため、このツールは実際の選択をシミュレーションしません。3つの数値はすべて符号なし16ビット値です。ターゲット `.` はサービスが利用不可であることを表します。優先度・重み・ポートを 0 にするとレコードを人間が読みやすくできます(RFC 2782)。サービスとプロトコルは別々の規則で検証します。サービスは RFC 6335 §5.1 のサービス名構文(§5.2 が SRV の Service ラベルに必須としているもの)に従います。1〜15 文字の英数字とハイフンで、少なくとも1文字の英字を含み、先頭・末尾・連続のハイフンは不可です。プロトコルは RFC 8553 §3.1 で更新された RFC 2782 に従います。`_` を前置したプロトコルのシンボル名で、大文字小文字を区別せず、IANA Underscored and Globally Scoped DNS Node Names registry への登録は SHOULD です。RFC はこれ以上の構文規則を定めていません。QuickKit の入力ポリシーとして、プロトコルは `_` を付けて DNS ラベルに収まるよう 1〜62 文字の LDH ラベル(英数字と、先頭末尾以外のハイフン)に制限しています。この制限は RFC の要求ではありません。両フィールドとも先頭の `_` は省略でき、レコードは小文字で出力し、どちらのレジストリも登録は推奨であって必須ではないため未登録の名前も受け付けます。RFC 2782 が最も有用としているのは `_tcp` と `_udp` で、レジストリの SRV エントリのうち RFC 2782 を参照するのは `_tcp`・`_udp`・`_sctp`・`_dccp` です。レジストリには `_sip` や `_xmpp` など他の SRV 用グローバル underscore 名もあります。名前は絶対名として扱います。ドメインは `_Service._Proto.Name` 所有者名(RFC 2782)の Name サフィックスで、RFC 1035 §5.1 プレゼンテーション構文で入力します。ラベルには任意のオクテットが使えるため `-`・`_`・`\.`・`\032` などの `\DDD` エスケープを受け付け、正規形に再エンコードします。`*.example.com` のようなアスタリスクラベルもサフィックスとして使えます。生成される所有者名 `_sip._tcp.*.example.com.` は、RFC 4592 がワイルドカードを左端ラベルで判定し、その左端が `_sip` であるためワイルドカードドメイン名ではありません(RFC 4592 §4.5 はまさにこの SRV の例を示しています)。アスタリスクラベルが左端に来る CAA 所有者名 `*.example.com` がワイルドカードになるのとは異なります。`_service._proto` ラベルを含めた完成形の所有者名が 255 オクテットに収まる必要があります。ターゲットはエスケープなしのホスト名のみで、単一ラベルには末尾ドットが必要です。`xn--` ラベルは IDNA 検証なしに通します。TTL は 0〜2147483647 です(RFC 2181)。