web-dev-qa-db-ja.com

ゾーンファイルまたはDNS設定のネームサーバーレコードまたはAレコードを変更するとどうなりますか?

インターネットとDNSの仕組みがよくわかりません。ウィキペディアでそれについて読み込もうとすると、理解できない用語が殺到します。コンピュータサイエンスの経験はありません。

ネームサーバーのレコードをns1.oldserver.comからns1.newserver.comに変更すると、実際には何が起こっていますか?つまり、ユーザーのurlクエリをns1.oldserver.comからns1.newserver.comに転送する責任があるのはどの「マシン」ですか。ユーザーは、ns1.oldserver.comに再びアクセスしないことをどのようにして知るのでしょうか?

同様に、ドメインのAレコードを古いIPアドレスから新しいIPアドレスにポイントするように変更すると、実際にはどうなりますか?ネームサーバーレコードを変更することと同じですか?

ありがとう

11
John

レコードは親ネームサーバーから委任されます-これはチェーンのようなものです(通常は逆ツリーとして記述されます)。すべてのDNSクライアントはルートサーバーのIPアドレスを知っています-これらはサーバーのセットです(13だと思います)。レジストリのサーバーのIPアドレス-.ukのNominet、.euのeurIDなど.

次に、ドメインは、ネームサーバー(例ではns1.oldserver.com)のアドレスを持つレジストリに登録されます。最後に、ドメインのネームサーバー(または最低2つのネームサーバー)が実際のリクエストを処理します。

たとえば、クライアントがwww.domain.comにアクセスしたいとします。

これは3つのコンポーネントに分割できます。この例では、クライアントがルートサーバーに対してクエリを実行する、いわゆるトップレベルドメイン(TLD)です。これを処理するネームサーバーの1つはa.gtld-servers.netです。ルートサーバーはa.gtld-servers.netのIPアドレスをクライアントに提供します。これらはNSおよび接着剤レコード。

次は実際のドメインです-この例ではdomain.com。クライアントはa.gtld-servers.comにdomain.comを照会します。これにより、関連するIPアドレスがNSおよびグルーレコードとして、ns1.domain.comおよびns2.domain.comに返されます。

最後に、ホスト名-この例ではwww。したがって、クライアントはns1.domain.comまたはns2.domain.comにドメインwww.domain.comを照会し、Webサイトの実際のIPアドレス(Aレコード)を取得します。

これはすべてミリ秒単位で行われます。 DNSリゾルバーの一般的なタイムアウトは2秒です。

元の質問に戻るには、ネームサーバーを変更すると、NSレコードをレジストリレベル(Nominet、eurIDなど)で変更します。変更後、クライアントがルートサーバーにdomain.comを照会すると、ns1.oldserver.comではなくns1.newserver.comのIPアドレスが与えられます。

ドメインレコードで指定された期間、すべての結果をキャッシュするため、世界中のすべてのクライアントが変更に気付くまでに最大で72時間かかります。 NSレコードは通常72時間または最大1週間キャッシュされます。そのため、変更後少なくとも数日間は古いネームサーバーをオフラインにしないでください。

Aレコードを変更することは、NSレコードを変更することとほぼ同じです。データベースレコードを変更するなど、コンテンツを変更するだけです。次回誰かがレコードをクエリしたときに、新しい値(ここでもキャッシュを考慮していますが、Aレコードの場合ははるかに低く、通常は1/2〜1日です。)

Linuxボックスにアクセスできる場合は、Dig + trace www.google.comを実行すると、より適切なアイデアが得られる可能性があるクエリのチェーン全体が表示されます。

19
Andy Shellam