1.

DNS設定の方法|A・CNAME・MX・TXTレコードとTTL・dig確認

編集
この記事の要点
  • DNS の設定はレジストラまたは DNS ホスティング(Cloudflare / Route53 等)の管理画面で行う
  • 主要レコードは A(ホスト→IPv4)/ AAAA(IPv6)/ CNAME(別名)/ MX(メール)/ TXT(SPF/DKIM 等)/ NS(権威サーバ委任)
  • TTL はキャッシュ有効期限。本番切り替え前は事前に短く(例 300 秒)して、終わったら戻す
  • 反映は通常数分〜数時間、最大 24〜48 時間。確認は dig / nslookup / whatsmydns.net を併用
  • DNSSEC は応答の改ざん検知。ホスティング側で有効化+親ゾーンに DS レコード登録の 2 段階

DNS設定の全体像

DNS(Domain Name System)は「ドメイン名 ⇔ IPアドレス」を相互変換する仕組みです。サイトを公開する際は、取得したドメインに対して どのサーバを向けるか をレコードで宣言する必要があります。設定は通常、以下のどちらかの管理画面で行います。

  • ドメインレジストラ(お名前.com / ムームー / Google Domains 廃止後の Squarespace / GoDaddy など)の DNS タブ
  • 外部 DNS ホスティング(Cloudflare / Amazon Route 53 / Google Cloud DNS など)。レジストラ側で NS レコードを外部ホスティングに委任する

自前で BIND / Unbound / NSD を立てて権威サーバを運用する選択肢もありますが、可用性・DDoS 耐性・運用工数の観点から、よほどの理由がない限りクラウド DNS ホスティングを使うのが現代的です。

主要なレコード種別

種別用途値の例
Aホスト名 → IPv4 アドレス203.0.113.10
AAAAホスト名 → IPv6 アドレス2001:db8::1
CNAME別名(エイリアス)。別ホスト名を参照example.cloudfront.net.
MXメールサーバの宛先と優先度10 mail.example.com.
TXTSPF / DKIM / 所有権確認 / 任意テキスト"v=spf1 include:_spf.google.com ~all"
NSサブドメインを別の権威サーバに委任ns-123.awsdns-15.com.
SOAゾーンの管理情報(自動生成が普通)シリアル / TTL 群
CAA許可する証明書発行 CA を宣言0 issue "letsencrypt.org"

CNAME を使うときの注意

RFC 上、ゾーン頂点(ルート / Apex)に CNAME は置けませんexample.com(@)に CNAME を入れたい場合は、Route 53 の Alias、Cloudflare の CNAME Flattening、その他「ANAME / ALIAS」と呼ばれる擬似機能を使います。サブドメイン www.example.com なら通常の CNAME で問題ありません。

設定手順(一般的なホスティング管理画面)

  1. レジストラまたは DNS ホスティングの管理画面にログインし、対象ドメインのゾーン編集を開く
  2. レコード一覧で「追加」を選び、種別(A / CNAME / MX など)を選択
  3. 名前(ホスト名)と値を入力。@ はゾーン頂点、* はワイルドカード
  4. TTL を指定(通常は 3600 秒。切り替え前は 300 秒など短めに)
  5. 保存し、伝播を dig や Web ツールで確認

dig / nslookup での確認

# A レコードを引く
dig example.com A +short

# 特定の権威 DNS に直接問い合わせる(キャッシュ無視)
dig @ns1.example.com example.com A

# MX レコード
dig example.com MX +short

# TXT(SPF / DKIM)
dig example.com TXT +short
dig default._domainkey.example.com TXT

# Windows / クロス OS なら nslookup
nslookup -type=A example.com 8.8.8.8

TTL の考え方

TTL(Time To Live)はキャッシュサーバが応答を保持する秒数です。長くするほど権威 DNS への問い合わせが減り表示が速くなる反面、変更の反映が遅くなります。

シーン推奨 TTL
通常運用3600 秒(1 時間)
サーバ移行直前300 秒(5 分)に下げる(24 時間前から)
移行完了後3600 秒以上に戻す
滅多に変えないレコード(NS / CAA)86400 秒(24 時間)

メール関連(MX + SPF + DKIM + DMARC)

「メールが届かない / 迷惑メール扱いされる」原因の多くは DNS です。最低限以下 4 つを揃えます。

; MX: メール受信先
example.com.        IN  MX   10 mail.example.com.

; SPF: 送信元 IP を宣言(TXT として)
example.com.        IN  TXT  "v=spf1 include:_spf.google.com ~all"

; DKIM: 公開鍵(DKIM プロバイダから発行される)
selector._domainkey.example.com.  IN  TXT  "v=DKIM1; k=rsa; p=MIGfMA0..."

; DMARC: 認証失敗時の挙動を宣言
_dmarc.example.com.  IN  TXT  "v=DMARC1; p=quarantine; rua=mailto:dmarc@example.com"

DNSSEC

DNSSEC は応答に署名を付け、改ざんを検知する仕組みです。中間者攻撃や DNS キャッシュポイズニングを防ぎます。

  1. DNS ホスティング側で DNSSEC を有効化(鍵が自動生成される)
  2. 表示される DS レコード(Delegation Signer)をレジストラの管理画面で登録
  3. dig +dnssec example.comad フラグが付くか確認

DS レコード登録を忘れると DNSSEC が「鍵だけある」状態になり、検証が機能しません。逆に DS を消し忘れたままゾーンを引っ越すと、検証エラーで全断する事故が起きます。

反映までの時間と確認の流れ

段階所要時間の目安
権威 DNS に反映数秒〜数分(保存と同時)
キャッシュ DNS(ISP / 8.8.8.8 など)TTL ぶん(通常 5 分〜1 時間)
世界中の DNS リゾルバへ伝播最大 24〜48 時間
ブラウザの内部 DNS キャッシュ数分(再起動またはフラッシュで即時)

確認には whatsmydns.netdnschecker.org など、世界中の地点から同時に解決して見せるサービスが便利です。

よくあるエラーと対処

症状原因 / 対処
ブラウザだけ古い IP を引くOS / ブラウザの DNS キャッシュ。ipconfig /flushdns(Win)/ dscacheutil -flushcache(mac)
NXDOMAIN(ドメインが見つからない)NS 委任ミス / レジストラでネームサーバ未設定。レジストラ側の NS 設定を確認
CNAME を入れたら他のレコードが効かないRFC 上、CNAME を置いたホストには他レコードを共存させられない。Apex なら ALIAS / Route 53 Alias を使う
メールが SPF で reject されるSPF レコードに送信元(SaaS のサーバ)を含めていない。include: を追加
DNSSEC 検証エラー(SERVFAIL)引っ越し時に DS の更新漏れ。レジストラの DS を新ホスティング側の鍵に合わせる

関連

編集
Post Share
子ページ

子ページはありません

同階層のページ

同階層のページはありません

最近更新/作成されたページ