1. DNS/キャッシュサーバ/Deadwood 動作

DNS/キャッシュサーバ/Deadwood

http://maradns.samiam.org/deadwood/doc/Recursive-algorithm.html の Google 翻訳

CNAMEについては特別なことをしているとは書いてないので、のんびりやります。

2. 概要

名前解決のためにDeadwoodは他の多くのDNSサーバーとは異なる 独自の方法を使用しており、多くのDNSスプーフィング攻撃に耐性がある。 より複雑でときに少し遅いが、より安全になることで十分補償される。

ここの情報はDNSの知識を前提としているので、それらは以下に簡単にまとめておく。

3. DNSの仕組み

DNSサーバからの返答には複数のDNS answerが含まれています。

DNS 問い合わせ(query)に対する答である answer section をひとつ含んでいる。

例: www.example.com [1] のA レコード(IPv4のIPアドレス)を問い合わせた場合、

DNS返答には複数のDNSレコードを含めることができる。それらは、以下のみっつのsection の どれか含まれている。


  1. DNS query に答えている返答節(answer section)
  2. ネームサーバ紹介用の権威節(authority section)
  3. 関連するDNSレコード付加節(additional section); glue など

以下は先の "www.example.com"を問い合わせたときに得られる典型的な回答例です。 (訳注; これら以外の扱いは記述されていない。)

Note that NS referrals are done by name, not IP. DNS gives out a name like "www.example.net" for an answer instead of an IP like "10.4.2.1". [4] A DNS answer may, or may not, have the IPs for the NS referrals in the "additional records" section of the answer. If if does have the corresponding IPs for the NS records, it is called a "glued NS referral". If it does not have the corresponding IPs, it is a "glueless NS referral".


NS紹介は名前であり、IPアドレスではないことに注意。 DNSは "10.4.2.1" のような IPアドレスではなく、 "www.example.net"のような名前を返します。 [ 4 ] DNS返答はNS紹介に付随するIPアドレスを付加節にもつかもしれません。

もしNSレコードのIPアドレスを持つ場合、それは "グルーつきNS紹介"と呼ばれます。 IPアドレスを持たない場合、それは "グルーレスNS紹介"です。

(訳注;この部分のグルーの説明は広すぎて、あいまいと言える)

4. Deadwood の名前解決法

A simplified version of the method Deadwood uses to resolve a domain via recursion is as follows:

  1. Deadwood gets a request to resolve a given domain from a stub resolver
  2. Deadwood requests a domain from a root server.
  3. Deadwood gets an answer from that server.
  4. Deadwood looks at the answer.
  5. There are three types of answers Deadwood can get:
    1. A complete answer that answers the DNS question.
    2. An incomplete NS referral, which can either have glue or be glueless.
    3. An incomplete CNAME referral
  6. If the answer is a complete answer, Deadwood sends the answer back to the stub resolver.
  7. If the answer is an incomplete answer, Deadwood must send more queries to get a complete answer.
    • I will detail this process below.

(訳注) "complete answer" とあるものが、なにを示すかは推測しかできない。

complete CNAME というものが存在するのか。存在しそうだ。

5. Deadwoodブラインドスプーフィング攻撃を停止する方法を

Deadwoodの再帰リゾルバは、以下の理念に書かれています: 名前の解決中Deadwoodがキャッシュに配置することを唯一の答えは不完全NSの紹介へのポインタ、またはもともとDeadwoodに与えられた質問への直接の答えのいずれかです。

誰かが "www.paypal.comのIPとは何か "Deadwoodを要求され​​た場合www.paypal.comを解決しながら、 例えば、Deadwoodだけキャッシュに次のレコードを追加します:

そうしないとネームサーバを持っていない "。com"を終了何のためのネームサーバのIPアドレス。 これらのIPは唯一のルートサーバーのIPアドレス(どちらかの組み込みのDeadwoodにまたはものdwood3rcファイルで指定されているデフォルトICANNルートサーバーである)によって設定することができます。

ネームサーバが指定されたドメインの使用するかについての情報は、 "example.com"と言うだけで次の二つのいずれかのソースから来ることができる:

example.com自身のネームサーバによって与えられた情報は、 "example.com"で終わる名前に影響を与え、 彼らはexample.comの[ネームサーバには影響しません5 ]を。

6. 不完全返答の取り扱い

Deadwood does not store name server referrals as NS records nor incomplete CNAME referrals as CNAME records. Deadwood uses special records for storing these incomplete records.

Deadwoodはこれらの不完全レコードを格納するための特別レコードを使用します。

In the case of either a glueness NS referral or an incomplete CNAME answer, Deadwood will create a sub-query to answer the query in question. This query is a new query that starts at the root to resolve a given name.


glueness(glueless ?)NS参照や不完全CNAME返答の場合には Deadwoodは当該照会の返答用にサブクエリを作成します。 このクエリではあらたにルートから必要な名前解決を行います。

7. キャッシュするためにどのような選択

他のDNSリゾルバとは違って、Deadwoodは無差別に"得意分野で"答えがある場合でも、

これには、誰かが試してみて、 "0000002.paypal.com" "0000001.paypal.com"のようなクエリを送信することにより、 フィッシングページを指すように "www.paypal.com"を得ることができます

Kaminsky氏のDNS攻撃からDeadwoodを保護し、 受け入れられているの非常に小さなチャンスがある偽装された答えと一緒に。 クエリに偽装された答えは、追加レコードのセクションで、DNSレコード "www.paypal.comは、IP 10.6.6.6を持っている"と、 フィッシング詐欺ページに "10.6.6.6"指しています。 誰かがDeadwoodでこの攻撃をしようとした場合、 成功したパロディーは、唯一の "62f8ec94.paypal.com"のような無意味な記録に影響します。

8. IPアドレスへのリンクの名前

不完全NSの紹介を取得するとき無差別に "追加レコード"セクションで、 Deadwoodにレコードを格納する必要が回避するために、 典拠レコードのセクション内の名前のいずれかが追加で名に対応するIPアドレスを持っているかどうかを見ていきます レコードのセクション。 彼らが行う場合には、名前がIPア​​ドレスなどのDeadwoodのキャッシュに変換され、保存されていると述べた。 そうでない場合、それらはグルーレス名として格納されている。

例えば、私たちはwww.example.comを求めるとき、我々はこのような答えを持っていると仮定しましょう​​:

Deadwoodはこのように見えるようにこの答えを変換します。

でdwx_make_ns_refer()を参照DwRecurse.cの詳細について。

9. 結論

より複雑なものの、Deadwoodの再帰アルゴリズムは、DNSSECの短い、最高のDNSスプーフィング保護を提供します。

10. 脚注

[1] "example.com"がいつも例に使用されており、例はDNSの文書に必要なときに予約されていることに注意してください。

[2]これらは、現実世界の数値ではありません。

[3] DNSクエリの形式は若干異なります、私は英語にそれらを翻訳しています。 それは英語にスペイン語から会話を翻訳するようなものだ。 バイナリ形式はで説明されてRFC 1035 。

[4]私は同意するDJB 名の代わりにIPによって行わNS紹介を持つことはDNSの設計ミスであったこと。

[5] example.comのネームサーバ他のネームサーバへサブデリゲートドメイン名をすることもできます。

10.3.2.1でネームサーバによって処理されているすべての名前"と言うことができます