ルートネームサーバーはどのようにしてすべてのDNS要求を処理できますか?


18

私は数日前にDNSについて読んでいて、リクエストがどのように処理されるかを学びました。www.example.comにアクセスすると、リクエストはルートネームサーバーに移動してその.comアドレスの所有者を確認し、別の要求は別のよりローカルなDNSサーバーに移動してexample.comの所有者を確認します。住所など。

13個のルートネームサーバーが、ddos:edを使わずに、世界中の何十億人ものインターネットユーザーによって行われたすべての要求を同時に処理できることは、技術的にどのように可能ですか?


11
ところで、DNSの動作の概要は間違っています。ルートネームサーバーに尋ねられた質問は「誰が.comを所有しているのですか?」ではありません しかし、「www.example.comのIPアドレスは何ですか?」(ルートネームサーバーは、.comの所有者への参照で応答します)。ルートネームサーバーは、クエリ全体を参照します(統計、データマイニングなどに役立ちます)。
ボルツマイヤー

@bortzmeyer名前全体がルートサーバーに送信される主な理由は、名前のすべてのドットが必ずしも権限の境界であるとは限らないことです。実際には、TLDのすぐ下には常に権限の境界があると信じていますが、原則的には保証されていません。したがって、将来のある時点で、ルートサーバーに照会するa.b.c.exampleと、誰が責任を負うc.exampleかではなく、誰が責任を負うかが通知されるように、ルートサーバーによって2番目のレイヤーが処理される特別なTLDを導入することが決定される可能性がありますexample
カスペルド

回答:


51

それらは、単に13台のサーバーではなく、13台の高可用性サーバーのクラスターです。

とりわけ、ルートネームサーバーオペレーターは、通常のトラフィック負荷の3倍を処理するのに十分な容量が必要です(RFC 2870)。これはかなり大きなクラスターにつながります。

しかし、ルートネームサーバは、トップレベルドメインに対する応答そのもの、つまり奉仕com.net.uk.ae.、など、およびルートは、この情報をキャッシュできるクエリのネームサーバー48時間まで劇的ルートネームサーバの負荷を軽減し、。これにより、クラスターが小さくなります。

ルートネームサーバーは、53か国の130以上の物理的な場所にあります。13のサーバー名のみで、これはIPv4エニーキャストの魔法を通して行われます。

ルートネームサーバーには独自のWebサイトもあり、興味深い読み物を見つけることができます。


48 hは、ルートのNSレコードのTTLです。ただし、TLD自体のネームサーバーで上書きできます。たとえば、.jpの場合、24時間のみです。
ボルツマイヤー

まあ、我々はされ、ここでルートネームサーバの話します。:)
マイケル・ハンプトン

RFC 2870は今日ではかなり時代遅れです。dDoS攻撃のため、ルートネームサーバーは通常のトラフィックの3倍をはるかに超える応答を行う準備ができている必要があります。
ボルツマイヤー

8
53か国?それは偶然ですか、それともDNSクエリポートのように選択しましたか?:D
amyassin

10

彼らはしません。ルートネームサーバーは、どのネームサーバーが処理するかを通知するだけですcom。それ以降は、にアクセスしてドメイン内のドメインを処理する必要はありませんcom。ルートネームサーバーには誰が所有しているかわかりませんexample.com。これらはcomネームサーバーではなく、ルートネームサーバーです。

slimsuperheroが言ったことも事実です。大容量のネームサーバーの多くは、エニーキャストを使用して、世界中の多数のサーバーが単一のIPアドレスを提供しています。


しかし、10億人のユーザーが同じ秒に異なる.comアドレスにアクセスしている場合、ルートネームサーバーはすべての要求を処理しますか?
ロクス

3
いいえ。1つには、ユーザーは再帰的なネームサーバー(他のネームサーバーに接続して回答を得る)とのみ対話し、ルートネームサーバーは再帰的ではありません(既に知っているローカル情報のみを提供します)。ユーザーは、自分のネームサーバー(通常はISPによって提供される)と通信します。ネームサーバーは、を処理するサーバーについてルートネームサーバーに1回だけ問い合わせる必要がありますcom
デビッドシュワルツ

1
@DavidSchwartzは正しいです。したがって、10億人のユーザーからの10億のリクエストの代わりに、それぞれが1,000人のユーザーにサービスを提供する100万のISPから約100万のリクエストを受け取ります。
シャドゥール

@Shadur:com一方で、ネームサーバーは、はるかに大きな打撃を受ける必要があります。
デビッドシュワルツ

1
そして、それらが適切にスケーリングおよびクラスター化されていると確信しています。
シャドゥール

6

各ルートサーバーは実際にはサーバーではなく、サーバーの巨大なクラスターです。これに加えて、DNS応答はキャッシュされるため、すべての要求がルートサーバーに到達するわけではありません。


3

ルートサーバーは使用しないことに注意してください。通常、インターネットサービスプロバイダーが提供するDNSサーバーを使用します。通常、必要な情報がローカルキャッシュにある場合、すぐに応答できます。キャッシュされていない場合のみ、それらのアップストリームDNSサーバーが要求され、最終的にはルートサーバーが要求されます(そしてその応答はキャッシュされます)


0

実際には、世界中の多くのサーバーに解決される13個のエニーキャストIPアドレス。必要に応じて、リンクを見てそれらのサーバーを見つけることができます。これらのサーバーはすべて、関係当局によって管理されています。

まだ13個のIPアドレス(および同じIPアドレスを持つサーバーのクラスター)のみを使用しているという事実は、パケットサイズが512バイトを超えないようにするためです。それでなんで?このパケットサイズを超えることができるTCPがあるのに、なぜ使用できないのですか?問題は、TCPにはTCP接続を確立するための複数のステップと手順が含まれているため、オーバーヘッドが非常に高いことです。このため、DNSクエリのプロセス全体が遅くなります。

DNSのようなものは決して遅くなることはないので、同じ古いシステムを使用しています。


クエリに対する回答.は512バイトに収まりません。IPv6が必要になったため、答えは811バイトに増加しました。単一の応答で返すことができるEDNSを使用。ただし、クエリ.はあまり必要とされないため、2、3の往復は見逃せません。主に、ほとんどの場合変更されないルートのIPアドレスに対する最新の変更を学習者が学習する必要があります。
カスペルド

@kasperdわからない。通常のAレコードまたはAAAAレコードのdig + traceをチェックしましたが、すべての応答(ルートレベルサーバー、トップレベルサーバー、またはネームサーバーから)は508〜509バイト未満です。それについてもう少し説明できますか。
ジェイソン

完全な応答を得るには、EDNSまたはTCPを使用する必要があります。EDNSを使用しないUDP要求は、512バイトを超える応答を取得できません。
カスペルド
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.