DNSフォワーディング(転送)とは一体何をしているのか?

レンタルサーバーを運用していると必ず出てくる「DNS」。

DNS関連の説明を聞くと、「再帰問い合わせ」や「権威サーバー」や「委譲」など堅苦しい用語が出てきますが、難しく考える必要はありません。

単純に名前を解決しているだけです。

もっと言うと、「www.yahoo.co.jp」を問い合わせたら、IPアドレス「xxx.xxx.xxx.xxx」が返ってくるというだけのシステムです。(結構端折っていますが)

 

$ nslookup www.yahoo.co.jp ← www.yahoo.co.jpのIPアドレスを問い合わせた
Server:         xxx.xxx.xxx.xxx
Address:        xxx.xxx.xxx.xxx#53

Non-authoritative answer:
www.yahoo.co.jp canonical name = edge.g.yimg.jp.
Name:   edge.g.yimg.jp
Address: 183.79.249.124 ← 問い合わせたら、このIPアドレスが返ってきた

$ nslookup google.co.jp ← google.co.jpのIPアドレスを問い合わせた
Server:         xxx.xxx.xxx.xxx
Address:        xxx.xxx.xxx.xxx#53

Non-authoritative answer:
Name:   google.co.jp
Address: 216.58.197.163 ← 問い合わせたら、このIPアドレスが返ってきた

 

 

特に普段からネットワーク関連の業務をしていないといまいちイメージしにくいですが、今回はDNSフォワーディング(DNS転送)について調べました。

DNSの知識があると万が一レンタルサーバーでうまくつながらない時があっても、落ち着いて対処することができるようになります。

自分が名前解決できない時にフォワーディングする

DNSフォワーディングとは、クライアントPC(リゾルバ)からホスト名の名前解決受けたDNSサーバーが対象のゾーン情報(対象のホストとIPアドレスの一覧表)を持っていない場合、他のDNSサーバーに名前解決をしてくださいと、フォワーディングする(転送する)ことを言います。

 

あらかじめフォワーディング設定をしておかなければフォワーディングしない

フォワーディング先のDNSサーバーはあらかじめサーバーに登録しておく必要がある。

そして、転送先のDNSサーバーが問い合わせに対して回答したものを、あたかも自分が名前解決をしたかのように回答する。

もっと詳しくいうと、DNSクエリを転送します。

DNSサーバーがあたかもリゾルバになったかのような動きをする

基本的にDNSサーバーは各ゾーンを個別管理をしています。

「.jp」ゾーンを管理していたり、「.co.jp」ゾーンを管理していたり、「tama.co.jp」ゾーンを管理しています。

しかし、全ゾーンを1台のDNSサーバーが管理しているわけではないので、自分が管理していないゾーンの問い合わせもあります。

その場合、外部のDNSサーバーへ問い合わせをしますが、DNSフォワーディング設定がされている場合は、特定のドメインに対して、あらかじめ登録しているDNSサーバーへ「再帰問い合わせ」をします。

通常のDNSサーバーの名前解決は、のちに図が出てきますが、クライアントPC(リゾルバ)から問い合わせが来たら最後まで責任を持って名前解決をしますが、DNSフォワーディングの場合は「丸投げをする」というところが異なります。

下図を見ると、やまちゃんから問い合わせを受けたネームサーバーが、フォワーディング先のネームサーバーに丸投げしていることが分かります。

注目点は、クライアントPCから「再帰クエリ」を受けたDNSサーバーが「反復クエリ」をするのではなく、あたかも自分がクライアントPC(リゾルバ)になったかのように、フォワーディング設定をしているDNSサーバーへ「再帰クエリ」をするという所です。

※通常「反復問い合わせ」をしているDNSサーバーが、DNSフォワーディングの場合は「再帰問い合わせ」をしています。

「再帰問い合わせ」と「反復問い合わせ」とは?

レンタルサーバーをしっかり管理をしようと思い、DNSについて調べているとよく出てくる「再帰問い合わせ」や「反復問い合わせ」ですが、何をしているのか名前からでは想像もつきませんよね。

図で確認するのが一番イメージしやすいのですが、まずは用語の整理から。

  • 再帰問い合わせ(再帰クエリ)

リゾルバからDNSサーバへ問い合わせ、最終的に回答する問い合わせのこと。

  • 反復問い合わせ(反復クエリ)

DNSサーバーが外部DNSサーバーに「.com」の問い合わせ→「example.com」の問い合わせ→「mail.example.com」というように繰り返し問い合わせて回答を得る問い合わせのこと。

まとめ

リゾルバ → ざっくり言うとクライアントPCに入っているDNSサーバーへ名前解決を問い合わせるプログラム

ネームサーバー → DNSサーバーの別名。ネームサーバー=DNSサーバー。

フォワーディング → 自分で解決せずにフォワード先のDNSサーバーに丸投げすること。

再帰問い合わせ → 再帰クエリ。名前解決の問い合わせ。一回再帰クエリを出せば、あとは回答が返ってくるのを待つだけ。

反復問い合わせ → 反復クエリ。欲しい回答が返ってくるまで次々とDNSサーバーに問い合わせを投げ続けること。

※resolveとは、「決意する、解決する、分解する」という意味です。

 

Posted by 100%レンタルサーバーを使いこなすサイト管理人

コメントを残す

メールアドレスが公開されることはありません。