DNSフォワーダ
自分の管理情報やキャッシュで答えられないDNSの問い合わせを、指定した別のDNSサーバへ転送する機能、またはその機能を持つサーバである。外部の名前解決を上位のサーバへ任せたり、名前の範囲ごとに問い合わせ先を分けたりする。
イマシルちゃんの解説
社内の端末が外部のサイト名を調べるとき、まず社内のDNSサーバへ問い合わせる構成があるよ。
社内側だけでは答えが分からない場合、指定した上位のDNSサーバへ転送して調べてもらえるんだ。
この役割を担うのがDNSフォワーダだよ。
上位から答えが戻ると、社内側から端末へ結果を返すの。
外部への問い合わせ先をまとめられるので、通信経路や利用する名前解決サービスを管理しやすくなるよ。
同じ名前を繰り返し調べるときは、保存済みの結果を使って問い合わせを減らすこともできるんだ。
この解説はわかりやすかったですか?
より深い解説
上位のDNSサーバへ名前解決を依頼する
DNSの転送では、あるDNSサーバが別のDNSサーバへ再帰的問い合わせを送る。受け取った上位側が回答を調べ、転送元へ結果を返す。転送元が必要に応じてキャッシュを使うこともできる。
フルサービスリゾルバがルートから権威DNSサーバをたどる処理と、指定した上位へ解決を任せる処理は区別する。一台のDNSサーバが、問い合わせる名前や設定に応じて両方を使い分ける場合もある。
製品の設定画面では、転送する側の機能だけでなく、登録した転送先のDNSサーバを「フォワーダ」と呼ぶこともある。「誰が、どこへ問い合わせる設定か」を確認すると役割を取り違えにくい。
名前の範囲に応じて送り先を分ける
特定のドメイン名に対する問い合わせだけを指定先へ送る機能を条件付きフォワーダという。例えば本社から支店の内部名を調べるとき、支店が管理するDNSへ問い合わせを渡せる。
| 問い合わせる名前 | 処理の例 |
|---|---|
| 本社が管理する内部ゾーンの名前 | 手元の権威データで回答する |
| branch.example配下の名前 | 支店側のDNSへ転送する |
| その他の外部名 | 指定した上位のリゾルバへ転送する |
これにより、外部のリゾルバでは分からない内部名を、情報を持つサーバへ届けられる。転送を設定しても、そのサーバへゾーン転送で全レコードを複製するわけではない。名前解決の依頼と、権威データの複製は目的が異なる。
到達できない場合の動作を決める
転送先から答えを得られない場合、自分で権威サーバをたどるか、転送先だけを使い続けるかは設定による。BINDではforward firstが前者、forward onlyが後者に相当する。外部への通信を転送先経由に限定したい場合は、失敗時の迂回も含めて確認する。
転送元と転送先が互いを送り先にすると、問い合わせが循環して名前解決に失敗することがある。利用を許可する端末の範囲を限定し、転送先への通信と戻りの応答を許可する。従来のDNSではUDPとTCPのポート53番を考慮する。
参考資料
実際の試験ではここに出る!全1問
ネットワークスペシャリスト
- 午後Ⅱ