TXTレコード (テキストレコード) とは何か?
TXT (テキスト)レコードはDNSレコードタイプで、ドメインに関連付けられた任意のテキスト文字列を保存します。元々は人間が読める形式のノート向けに設計されていますが、TXTレコードはメール認証ポリシー、ドメイン所有権検証、およびサービス固有の構成のような機械が読める形式のデータに必須になりました。
TXTレコードの一般的な用途
メール認証
SPF (Sender Policy Framework):example.com. IN TXT "v=spf1 include:_spf.google.com ~all"
ドメイン向けにメール送信できるサーバーを指定します。
DKIM (DomainKeys Identified Mail):google._domainkey.example.com. IN TXT "v=DKIM1; k=rsa; p=MIGfMA0..."
メール署名検証向けの公開鍵が含まれます。
DMARC (Domain-based Message Authentication):_dmarc.example.com. IN TXT "v=DMARC1; p=reject; rua=mailto:dmarc@example.com"
メール認証ポリシーおよびレポーティングを定義します。
ドメイン検証
Google Search Console:example.com. IN TXT "google-site-verification=abc123..."
Microsoft 365:
example.com. IN TXT "MS=ms12345678"
SSL証明書検証:
_dnsauth.example.com. IN TXT "validation-token-from-ca"
その他のアプリケーション
Facebookドメイン検証:example.com. IN TXT "facebook-domain-verification=xyz789"
Keybaseアイデンティティ:
_keybase.example.com. IN TXT "keybase-site-verification=..."
カスタムアプリケーションデータ:
_app.example.com. IN TXT "config=value123"
TXTレコード形式
基本構文
name IN TXT "text content here"
複数のTXTレコード
ドメインは複数のTXTレコードを持つことができます:
example.com. IN TXT "v=spf1 include:_spf.google.com ~all"
example.com. IN TXT "google-site-verification=abc123"
example.com. IN TXT "facebook-domain-verification=xyz789"
長いTXTレコード
TXTレコード文字列は文字当たり255文字に制限されていますが、複数の文字列を連結できます:
selector._domainkey.example.com. IN TXT (
"v=DKIM1; k=rsa; "
"p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA..."
"...long key continues..."
)
DNS クライアントはこれらの文字列を自動的に連結します。
TXTレコードの確認
dig を使用:dig example.com TXT
; ANSWER SECTION:
example.com. 300 IN TXT "v=spf1 include:_spf.google.com ~all"
特定のサブドメインTXTをチェック:
dig _dmarc.example.com TXT
dig selector._domainkey.example.com TXT
DomScanを使用:
curl "https://domscan.net/v1/health?domain=example.com"
# DNS詳細で hasTXT およびメール認証ステータスを返す
TXTレコードベストプラクティス
メール認証向け
1. 常にSPF、DKIM、およびDMARCを構成 一緒に
2. 単一のSPFレコード使用 - 複数のSPFレコードは問題を引き起こす
3. SPFルックアップを10未満に保つ - 超過は失敗を引き起こす
4. デプロイ前テスト - オンライン検証ツールを使用
ドメイン検証向け
1. 検証TXTレコード削除しないでください - サービスは再度検証する可能性
2. 各TXTレコードが何のためかをドキュメント化 - 蓄積される可能性があります
3. 未使用のレコードをクリーンアップ - 使用しなくなったサービス向けレコードを削除
カスタムアプリケーション向け
1. アンダースコアプリフィックスを使用 (_app.example.com) 競合を避けるため
2. 形式をドキュメント化 - 将来のあなたが忘れます
3. TTLを考慮 - 頻繁に変更される構成向けに低いTTL
セキュリティ考慮事項
情報開示
TXTレコードはパブリックです。機密情報を保存しないでください:
# 不適切 - 内部情報を公開
example.com. TXT "internal-api-key=secret123"
SPF脆弱性
許容性が高すぎるSPFレコードはメールスプーフィングを有効にする可能性があります:
# 不適切 - 誰でも送信を許可
example.com. TXT "v=spf1 +all"
# 適切 - 制限的
example.com. TXT "v=spf1 include:_spf.google.com -all"
TXTレコードのトラブルシューティング
複数のSPFレコード: ドメイン当たり1つのSPFレコードのみが有効です。複数のSPFポリシーを1つに統合してください。 Truncatedレコード: TXTレコードが切り取られているように見える場合、適切な文字列引用符および連結を確認してください。 伝播遅延: TXTレコード変更はTTLベースの伝播に従います。検証レコード向けに変更前にTTLを低くします。TXTレコードはDNSのスイスアーミーナイフです - 多目的ですが、使用が増加するにつれて慎重な管理が必要です。