DNS TXTレコード分割ツール

長いTXT値をDNSが求める255バイトの文字列へ切り分け、ゾーンファイルに貼れる形にします。

DNS TXTレコード分割ツールはすべてブラウザ内で動作します。鍵や確認トークンは端末内で分割され、送信されません。

DKIMレコードを作る

DNS TXTレコード分割 について

TXTレコードは一つの長い文字列ではありません。RFC 1035はそれを最大255バイトの文字列の並びとして保持し、リゾルバは間に何も挟まずに連結します。2048ビットのDKIM鍵をゾーンファイルへ引用符付きの複数片で渡す必要があるのはこのためで、切る場所を誤ったり、片をスペースでつないだりすると、原因の追いにくい形で署名が壊れます。このツールはバイト境界で切り分け、文字の途中では決して分割せず、BIND、括弧付き、JSON配列などの形式で出力します。

機能

DNS TXTレコード分割 の使い方

  1. TXT値をそのまま貼り付けます。引用符は自動で付きます
  2. ゾーン行として使うならレコード名とTTLを入力します
  3. DNS事業者が求める出力形式を選びます
  4. レコードをコピーするか、結合タブで分割済みの値を戻します

入力

v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A… (392 bytes)

出力

default._domainkey 3600 IN TXT "v=DKIM1; k=rsa; p=MIIBIja…" "…QIDAQAB"

リゾルバが何も挟まずに連結する、引用符付きの二つの文字列。

よくあるエラーとトラブルシューティング

よくある質問

TXTレコードが255文字までに制限されるのはなぜですか。
レコード内の各文字列には1バイトの長さが前置されるため、1文字列が255バイトに制限されます。レコード全体は複数の文字列を持てるので、実際の上限はDNSメッセージの大きさです。
リゾルバは分割されたTXT文字列をどう戻しますか。
順番どおりに、区切りを一切入れずに連結します。DKIMやSPF、所有権確認トークンはこの挙動に依存しており、だから切る場所は問われません。
DKIM鍵はどこで切ればよいですか。
各片が255バイト以内なら任意の位置でかまいません。検証側にとって鍵は連結後の単一のBase64文字列なので、Base64の途中で切っても問題ありません。
TXTレコード全体はどこまで大きくできますか。
実用上は数キロバイトですが、512バイトを超える応答にはEDNSかTCPでの再試行が要ります。うまく扱えないリゾルバもあるため、抑えておくと不安定な失敗を避けられます。
SPFレコードも同じように分割が必要ですか。
一つの文字列が255バイトを超える場合だけで、includeが多いと起こります。SPFにはDNS参照10回という別の制限もあり、分割では解決しません。

関連ツール

すべての ArrayKit ツール