DNS名前解決の可視化

私たちは「infravis.dev」のようなドメイン名でサイトにアクセスしますが、通信に必要なのはIPアドレスです。この変換(名前解決)を担うのがDNSです。「進む」を押して、ドメイン名からIPアドレスを引き当てるまでの流れを1ステップずつ追ってください。

いま何が起きているか

DNSとは

DNS(Domain Name System)は、ドメイン名(infravis.dev)とIPアドレス(104.21.x.x)を対応づける「インターネットの電話帳」です。人間は覚えやすいドメイン名を使い、コンピュータは数字のIPアドレスで通信します。その橋渡しをDNSが行います。

なぜ何段階も問い合わせるの?

世界中のドメインを1台で管理するのは不可能なので、DNSは階層構造で役割を分担しています。ルートDNSサーバーが「.dev / .com / .jp などの担当(TLDサーバー)」を知っていて、TLDサーバーが「そのドメインの担当(権威サーバー)」を知っていて、権威DNSサーバーが「実際のIPアドレス」を持っています。上の階層は「次の行き先を案内するだけ」で、IPそのものを返すのは最後の権威サーバーです。これを順にたどることで、世界中のどんなドメインでも引けるようになっています。

キャッシュ(一度引いたら覚えておく)

毎回ルートから順にたどると時間がかかるため、リゾルバは一度引いた結果を一定時間キャッシュします。次に同じドメインを引くときは、いきなり答えを返せます(②〜⑦を省略)。キャッシュの有効期間はTTL(Time To Live)という値で決まります。ブラウザやOSにも小さなキャッシュがあり、まずそこを確認してから外へ問い合わせます。

登場するサーバーの役割

名前役割
フルサービスリゾルバ利用者の代わりに各サーバーへ順に問い合わせ、答えをまとめて返す(ISPや 8.8.8.8 など)
ルートDNSサーバーTLD(.dev等)の担当サーバーを案内する
TLD DNSサーバーそのドメインの権威サーバーを案内する
権威DNSサーバーそのドメインの実際のIPアドレスを回答する

基本情報技術者試験ではこう出る

「ドメイン名とIPアドレスを対応づけるのは(→DNS)」「ルートDNS/権威DNSの役割」「再帰問い合わせと反復問い合わせの違い」などが問われます。Aレコード(ドメイン→IPv4)、AAAAレコード(→IPv6)、MXレコード(メール)、CNAME(別名)といったレコードの種類も頻出です。ネットワーク全体の流れは、当サイトのOSI参照モデルの可視化ネットワーク境界の可視化と合わせて学ぶと理解が深まります。

よくある質問

Q. 自分でDNSを引いてみるには?
A. コマンドで確認できます。Linux/macは dig infravis.devnslookup infravis.dev、Windowsは nslookup infravis.dev です。応答の速さの違いから、キャッシュが効いているかも分かります。

Q. ドメインを変更したのにすぐ反映されないのはなぜ?
A. 世界中のリゾルバにキャッシュが残っているためです。TTLの時間が経つまで、古い情報が返ることがあります(DNSの「浸透待ち」と呼ばれます)。