Labee Dev Toolbox
技術ノートガイド用語解説
無料で試す
  1. ホーム
  2. / 用語解説
  3. / DNS フォワーダー(DNS Forwarder)
DNS

DNS フォワーダー(DNS Forwarder)

2026年4月30日 更新

概要

DNS フォワーダー(DNS Forwarder) は、クライアントから受け取った DNS クエリを別の再帰リゾルバーに転送し、その応答をクライアントに返す DNS サーバーです。自身ではルートネームサーバーから権威ネームサーバーまでの再帰的な名前解決を行いません。RFC 5625(2009年)で DNS プロキシの動作要件が規定されています。

フォワーダーは企業ネットワーク、家庭のルーター、VPN 環境で広く使われています。企業では社内の DNS サーバーがフォワーダーとして動作し、社内ドメインは自身の権威データから応答し、外部ドメインは ISP やパブリック DNS(8.8.8.8、1.1.1.1)に転送する構成が一般的です。

家庭のブロードバンドルーターも DNS フォワーダーとして動作します。PC やスマートフォンの DNS 設定がルーターの IP(例: 192.168.1.1)を指し、ルーターが ISP の DNS サーバーにクエリを転送します。

仕組み

フォワーダーの処理フロー、再帰リゾルバーとの違い、条件付きフォワーディングの活用パターンを解説します。

フォワーダーの動作

フォワーダーの処理フローは再帰リゾルバーと比べてシンプルです。

  1. クライアントが DNS クエリをフォワーダーに送信する
  2. フォワーダーは自身のキャッシュを確認する
  3. キャッシュにヒットすればクライアントに返す
  4. キャッシュになければ、設定された転送先リゾルバーにクエリを転送する
  5. 転送先から応答を受け取り、キャッシュに保存してクライアントに返す

再帰リゾルバーとの違いは、ステップ 4 です。再帰リゾルバーはルートネームサーバーから順に反復クエリを行いますが、フォワーダーは設定された転送先に再帰クエリをそのまま送信します。

再帰リゾルバーとの比較

項目DNS フォワーダー再帰リゾルバー
再帰解決行わない(転送先に依存)行う(ルートから権威サーバーまで巡回)
クエリの送信先設定された転送先リゾルバールート → TLD → 権威サーバー
キャッシュ持つ(転送先から得た結果)持つ(再帰解決した結果)
必要なネットワーク接続転送先への到達性のみインターネット全体への到達性
用途社内 DNS、ルーター、DNS フィルタリングISP、パブリック DNS

フォワーダーは転送先リゾルバーへの到達性さえあれば動作するため、ファイアウォールの制約が厳しい環境でも導入しやすい利点があります。

条件付きフォワーディング(Conditional Forwarding)

フォワーダーの中でも、ドメインごとに転送先を分ける「条件付きフォワーディング」が実務で広く使われています。

社内ドメイン(internal.corp.) → 社内 DNS サーバー(10.0.0.53)
外部ドメイン(その他)         → パブリック DNS(8.8.8.8)

VPN 環境でもよく利用されます。VPN 接続先の社内ドメインだけを VPN 側の DNS に転送し、それ以外のクエリは通常のリゾルバーに送る「スプリット DNS」は、条件付きフォワーディングの一形態です。

フォワーダーを使う場面

企業ネットワーク: Active Directory 環境では、ドメインコントローラーが DNS サーバーとフォワーダーの両方の役割を担います。AD のドメインは自身の権威データから応答し、外部ドメインは社外の DNS に転送します。

DNS フィルタリング: Pi-hole や AdGuard Home は DNS フォワーダーとして動作し、広告やマルウェアのドメインをブロックします。ブロック対象でないクエリは上位の DNS サーバーに転送されます。

DNS 暗号化のプロキシ: ローカルに DoH / DoT 対応のフォワーダーを配置し、クライアントからは平文 DNS でクエリを受け、上流への転送を暗号化する構成があります。cloudflared(Cloudflare のツール)や dnscrypt-proxy がこの用途で使われています。

設定例

BIND、Unbound、dnsmasq の 3 つの DNS ソフトウェアでのフォワーダー設定例を示します。

BIND でのフォワーダー設定

// /etc/named.conf
options {
    directory "/var/named";
    forwarders {
        8.8.8.8;
        8.8.4.4;
    };
    forward only;  // 転送先に到達できない場合は SERVFAIL を返す
    // forward first;  // 転送先に到達できない場合は自分で再帰解決する
};

forward only は転送先が応答しない場合に SERVFAIL を返します。forward first は転送先が応答しない場合に自身で再帰解決を試みます。

Unbound でのフォワーダー設定

# /etc/unbound/unbound.conf
server:
    interface: 0.0.0.0
    access-control: 192.168.1.0/24 allow

forward-zone:
    name: "."
    forward-addr: 1.1.1.1
    forward-addr: 8.8.8.8

# 条件付きフォワーディング
forward-zone:
    name: "internal.corp."
    forward-addr: 10.0.0.53

dnsmasq でのフォワーダー設定

# /etc/dnsmasq.conf
server=8.8.8.8
server=1.1.1.1

# 特定ドメインの転送先を指定
server=/internal.corp/10.0.0.53

dnsmasq は軽量なフォワーダーとして Linux ルーターや組み込み機器でよく使われています。

確認方法

自分が使っている DNS サーバーがフォワーダーかどうかを確認するには、DNS クエリの応答ヘッダーを見ます。

# DNS サーバーの応答ヘッダーを確認
dig A example.com @192.168.1.1
;; flags: qr rd ra; QUERY: 1, ANSWER: 1

ra(Recursion Available)フラグが立っていれば、再帰クエリに対応しています。ただしフォワーダーも ra フラグを返すため、このフラグだけではフォワーダーか再帰リゾルバーかを区別できません。

フォワーダーの転送先を推測するには、応答の TTL を手がかりにします。

# 同じクエリを短い間隔で 2 回実行し、TTL の減少量を比較
dig A example.com @192.168.1.1

フォワーダーは転送先のキャッシュ TTL をそのまま転送するため、TTL の減少パターンが転送先リゾルバーの挙動に依存します。

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

curl "https://labee.dev/api/dns?domain=example.com&type=A"
{
  "success": true,
  "data": {
    "domain": "example.com",
    "records": {
      "A": [
        { "address": "93.184.216.34", "ttl": 3600 }
      ]
    }
  },
  "error": null,
  "meta": { "responseTime": 45 }
}

手元のフォワーダー経由の dig と Labee API で異なる結果が返る場合、フォワーダーまたは転送先リゾルバーのキャッシュに古い結果が残っています。

よくある問題

フォワーダーの運用では転送先の障害、キャッシュの二重構造、ルーターの TTL 無視が代表的なトラブル原因です。

フォワーダーの転送先が応答しない

転送先リゾルバー(ISP の DNS やパブリック DNS)がダウンしている場合、forward only 設定のフォワーダーは全クエリに SERVFAIL を返します。転送先を複数設定し、1 台目が応答しない場合に 2 台目にフォールバックする構成にしてください。forward first 設定であれば、転送先が応答しない場合に自身で再帰解決を試みますが、ファイアウォールの制約で外部の DNS サーバーに到達できない環境ではこのフォールバックも失敗します。

キャッシュの二重構造による遅延

フォワーダーと転送先リゾルバーの両方がキャッシュを持つため、DNS 変更後に二重のキャッシュが問題になることがあります。転送先リゾルバーのキャッシュが更新されても、フォワーダーのキャッシュに古い結果が残っていれば古い応答が返り続けます。フォワーダーのキャッシュをフラッシュするには、フォワーダーソフトウェアの再起動や rndc flush(BIND)などのコマンドを使います。

ルーターのフォワーダーが TTL を無視する

一部のブロードバンドルーターは DNS フォワーダーとして動作する際、レコードの TTL を無視して独自の長い期間キャッシュします。TTL を短く設定しても効果がないケースがあります。PC やスマートフォンの DNS 設定をルーター経由ではなく、パブリック DNS(8.8.8.8 や 1.1.1.1)に直接向けることで回避できます。

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

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

無料で試す

関連用語

DNS

再帰リゾルバー(Recursive Resolver)

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

DNS

DNS キャッシュ

DNS リゾルバーが問い合わせ結果を一時保存し、応答を高速化する仕組み。TTL の設定がキャッシュ期間を左右する。

DNS

DNS over HTTPS(DoH)

DNS クエリを HTTPS 経由で暗号化して送信し、通信の傍受や改ざんを防ぐプロトコル。Chrome・Firefox が標準対応。

DNS

権威ネームサーバー(Authoritative Name Server)

ドメインの DNS レコードを直接管理し、最終的な回答を返す DNS サーバー。DNS の信頼の起点。

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