Labee Dev Toolbox
技術ノートガイド用語解説
無料で試す
  1. ホーム
  2. / 用語解説
  3. / NXDOMAIN(Non-Existent Domain)
DNS

NXDOMAIN(Non-Existent Domain)

2026年4月25日 更新

概要

NXDOMAIN(Non-Existent Domain) は、DNS クエリで問い合わせたドメイン名が存在しないことを示すレスポンスコード(RCODE = 3)です。RFC 1035(1987年)で RCODE として定義され、RFC 2308(1998年)でネガティブキャッシュの対象として扱いが規定されています。

再帰リゾルバーは NXDOMAIN 応答を受け取ると、SOA レコードの MINIMUM フィールドと SOA TTL の小さい方を期間として「このドメインは存在しない」という結果をキャッシュします。同じドメインへの再問い合わせがあれば、権威サーバーに問い合わせずにキャッシュから NXDOMAIN を返します。このネガティブキャッシュが、ドメインを新規作成した直後に「ドメインが見つからない」と報告される原因になります。

一部の ISP やパブリック DNS は NXDOMAIN 応答を独自のページにリダイレクトする(NXDOMAIN Rewriting)挙動があり、DNSSEC 検証で検知可能な仕様違反です。

仕組み

NXDOMAIN は DNS の応答コードの一つで、クエリの対象となるドメイン名がどのレコードタイプでも存在しないことを権威サーバーが通知する仕組みです。

RCODE の一覧

DNS の応答コード(RCODE)は 4 ビットのフィールドで表現され、RFC 1035 で次の値が定義されています。

RCODE名称意味
0NOERROR問い合わせ成功
1FORMERRフォーマットエラー
2SERVFAILサーバー障害
3NXDOMAINドメインが存在しない
5REFUSED問い合わせを拒否

NXDOMAIN(RCODE 3)は「ドメイン名そのものがゾーンに存在しない」ことを意味します。同じドメインの別レコードタイプ(A、MX、TXT など)を問い合わせても同じ NXDOMAIN が返ります。

NXDOMAIN と NODATA の違い

NXDOMAIN と混同されやすい応答に NODATA があります。NODATA は独立した RCODE ではなく、RCODE = 0(NOERROR)かつ ANSWER SECTION が空の応答として表現されます。

NXDOMAIN は「ドメイン自体が存在しない」ことを示します。nonexistent.example.com に A レコードを問い合わせて NXDOMAIN が返った場合、このドメインには MX レコードも TXT レコードも存在しません。

NODATA は「ドメインは存在するが、リクエストされたレコードタイプが存在しない」ことを示します。example.com に AAAA レコードを問い合わせて NODATA が返った場合、このドメインの A レコードや MX レコードは存在する可能性があります。

# NXDOMAIN の例
dig A nonexistent.example.com
# → status: NXDOMAIN
# NODATA の例
dig AAAA example.com
# → status: NOERROR, ANSWER SECTION が空

ネガティブキャッシュとの関係

再帰リゾルバーが NXDOMAIN を受け取ると、そのドメインが存在しないという事実をキャッシュします。キャッシュの保持期間は、NXDOMAIN 応答の AUTHORITY SECTION に含まれる SOA レコードの情報から決定します。

;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 12345

;; AUTHORITY SECTION:
example.com.  300  IN  SOA  ns1.example.com. admin.example.com. (
                           2024010101 3600 900 604800 300 )

RFC 2308 はネガティブキャッシュの TTL を「SOA の MINIMUM フィールドと SOA TTL の小さい方」と定めています。上記の例では SOA TTL が 300 秒、MINIMUM が 300 秒のため、ネガティブキャッシュの保持期間は 300 秒です。

設定例

NXDOMAIN そのものを「設定」する項目ではありませんが、ネガティブキャッシュの期間を制御する SOA レコードの MINIMUM フィールドの設定例を示します。

短いネガティブ TTL(推奨)

; ネガティブ TTL を 300 秒(5 分)に設定
example.com.  3600  IN  SOA  ns1.example.com. admin.example.com. (
                           2024010101 3600 900 604800 300 )

新しいサブドメインを頻繁に追加する環境では 300〜600 秒 が推奨値です。ネガティブキャッシュが短時間で切れるため、新しいレコードの追加後に NXDOMAIN のキャッシュが原因で「反映されない」状態が長引きません。

長いネガティブ TTL

; ネガティブ TTL を 3600 秒(1 時間)に設定
example.com.  3600  IN  SOA  ns1.example.com. admin.example.com. (
                           2024010101 3600 900 604800 3600 )

サブドメインの追加がほぼ発生せず、存在しないドメインへのクエリが大量にある場合は長めに設定します。権威サーバーの負荷を減らす効果がありますが、ネガティブキャッシュが切れるまで最大 1 時間は新しいサブドメインが見つかりません。

確認方法

dig で存在しないドメインを問い合わせると NXDOMAIN 応答を確認できます。

dig A nonexistent.example.com
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 12345

;; QUESTION SECTION:
;nonexistent.example.com.  IN  A

;; AUTHORITY SECTION:
example.com.  300  IN  SOA  ns1.example.com. admin.example.com. (
                           2024010101 3600 900 604800 300 )

status: NXDOMAIN がドメインが存在しないことを示しています。AUTHORITY SECTION の SOA レコードの最後のフィールド(300)が MINIMUM で、ネガティブキャッシュの保持期間の候補です。

SOA レコードのフィールドを直接確認するには次のコマンドを使います。

dig SOA example.com

特定のリゾルバーのキャッシュを確認するには @ でサーバーを指定します。

dig A nonexistent.example.com @8.8.8.8

外部の視点からも確認したい場合は、Labee Dev Toolbox の DNS API を使うと、Cloudflare ネットワーク越しに見た結果を取得できます。

curl "https://labee.dev/api/dns?domain=example.com&type=SOA,A"
{
  "success": true,
  "data": {
    "domain": "example.com",
    "records": {
      "SOA": [
        {
          "mname": "ns1.example.com",
          "rname": "admin.example.com",
          "serial": 2024010101,
          "refresh": 3600,
          "retry": 900,
          "expire": 604800,
          "minimum": 300
        }
      ],
      "A": [
        { "address": "203.0.113.1", "ttl": 300 }
      ]
    }
  },
  "error": null,
  "meta": { "responseTime": 42 }
}

SOA.minimum フィールドの値がネガティブキャッシュ TTL の候補です。存在しないドメインを問い合わせた場合、API 側では A レコードが空となり、SOA レコードの minimum からネガティブキャッシュ期間を推測できます。

よくある問題

NXDOMAIN に関連するトラブルは、ネガティブキャッシュの遅延、ISP によるリダイレクト、ワイルドカードドメインとの干渉に集約されます。

新しいサブドメインを作ったのに見つからない

新しいサブドメインを追加する前にそのドメインを問い合わせてしまうと、NXDOMAIN がネガティブキャッシュに記録されます。SOA の MINIMUM が 3600 秒の場合、最大 1 時間は「存在しない」とキャッシュされ続けます。

OS の DNS キャッシュをフラッシュするか、dig @8.8.8.8 のように別のリゾルバーを使うか、ネガティブキャッシュの TTL が切れるまで待つかのいずれかで解決します。頻繁にサブドメインを追加する環境では、MINIMUM を 300 秒 程度に設定しておくと影響を最小化できます。

ISP が NXDOMAIN をリダイレクトしている

一部の ISP やパブリック DNS は、NXDOMAIN 応答を独自の検索ページや広告ページにリダイレクトします。NXDOMAIN Rewriting と呼ばれるこの挙動は、RFC 1034 と RFC 2308 の仕様に反しています。リダイレクトにより架空の A レコードが返るため、アプリケーションが「ドメインが存在しない」と判定できなくなります。

DNSSEC 検証を有効にしたリゾルバーを使うと、NXDOMAIN の改ざんを検知できます。DNSSEC に対応していないリゾルバーを使っている場合は、Google Public DNS(8.8.8.8)や Cloudflare DNS(1.1.1.1)に変更することで NXDOMAIN Rewriting を回避できます。

ワイルドカードレコードが NXDOMAIN を隠している

*.example.com のようなワイルドカードレコードが設定されていると、存在しないサブドメインへの問い合わせが NXDOMAIN ではなくワイルドカードのレコードを返します。セキュリティ上の理由で存在しないドメインを NXDOMAIN で区別したい場合は、ワイルドカードを使わずに必要なサブドメインだけを個別に設定します。

DNSSEC 検証で NXDOMAIN が SERVFAIL になる

DNSSEC が有効なドメインで NXDOMAIN 応答が正当なものであることを証明するため、権威サーバーは NSEC レコードで「存在しないこと」を署名します。この署名が検証できない場合(ゾーンの鍵更新漏れ等)、再帰リゾルバーは NXDOMAIN の代わりに SERVFAIL を返します。DNSSEC の運用で NSEC レコードの署名が期限切れになると、存在しないドメインへの問い合わせが全て SERVFAIL になります。

実際のドメインで確認してみる

登録不要、無料です。ドメイン名を入れるだけで外部からの見え方を確認できます。

無料で試す

Pro プラン(準備中)

DNS 変更の自動検知・SSL 期限アラート・複数ドメイン管理など、継続して確認し続けるための機能を準備中です。

関連用語

DNS

ネガティブキャッシュ(Negative Caching)

存在しない DNS レコードへの否定応答をリゾルバーがキャッシュする仕組み。新規レコード追加後に「反映されない」原因となる。

DNS

再帰リゾルバー(Recursive Resolver)

クライアントの DNS クエリを受け取り、ルートから権威サーバーまで順に問い合わせて最終回答を返す DNS サーバー。1.1.1.1 や 8.8.8.8 が代表的。

DNS

DNSSEC(Domain Name System Security Extensions)

DNS 応答にデジタル署名を付与し、データの完全性と出自を検証可能にするセキュリティ拡張。キャッシュポイズニング対策として RFC 4033-4035 で標準化。

DNS

DNS レコード

ドメイン名と IP アドレスやサービス情報を紐づける DNS データベースのエントリ。A・MX・TXT など用途別に型が分かれる。

コンテンツ 技術ノート ガイド 用語解説
ツール ツール一覧 API Reference
Labee 日本語トップ Labee LLC
© 2026 Labee LLC . All rights reserved.
ホーム ブログ ガイド 用語集