DNSとは

でぃーえぬえす

Domain Name Systemの略。www.example.com のようなドメイン名と、通信に使うIPアドレスを対応づける、世界中のサーバで分散して管理されるしくみ。

「DNS」は、2分野の9問の練習問題に出てきます(ネットワークの基礎, クラウドとコンテナの基礎など)。

この用語の分野: ネットワークの基礎

名前解決の流れ

端末は、プロバイダや社内などにあるフルサービスリゾルバ(キャッシュDNSサーバ)に問い合わせます。リゾルバはキャッシュに答えがなければ、ルートサーバ、.com などのTLDのサーバ、そのドメインの権威DNSサーバの順に問い合わせて答えを得て、端末に返します。各サーバは「次はこのサーバに聞いてください」と教えるだけなので、どのサーバも全体のデータをもつ必要がありません。

キャッシュとTTL

リゾルバは得た答えを、レコードに付いた有効期間(TTL)の間キャッシュし、同じ問い合わせにはすぐに答えます。これで問い合わせの数と待ち時間を減らせますが、DNSの設定を変えても、古い答えのキャッシュが切れるまでは前の値が使われることがあります。サーバの引っ越しの前にTTLを短くしておくのはこのためです。

主なレコードと通信のしかた

レコードには、IPv4アドレスを表すA、IPv6アドレスを表すAAAA、別名を表すCNAME、メールの配送先を表すMX、そのドメインの権威DNSサーバを表すNSなどがあります。問い合わせには主にUDPの53番ポートが使われ、応答が大きいときなどにはTCPも使われます。盗み見や偽の応答への対策として、DNSSECによる署名や、DNS over HTTPS(DoH)などの暗号化も使われています。

DNSの練習問題に挑戦

RTT(往復の時間)が100 msのWebサーバに、HTTPS(TCPの上のTLS 1.3)で新しく接続し、最初のリクエストを送って応答を受け取り始めるまでにかかる時間に最も近いものはどれか。DNSの名前解決は済んでおり、サーバの処理時間とデータの転送時間は無視する。

  1. A約100 ms
  2. B約300 ms
  3. C約200 ms
答えと解説を見る

正解:B. 約300 ms

まずTCPの3ウェイハンドシェイクで1往復かかります(クライアントは最後のACKと一緒にTLSの最初のメッセージを送れます)。次にTLS 1.3のハンドシェイクで1往復、その後にHTTPのリクエストと応答で1往復かかり、合計で3往復、3 × 100 = 300 msです。TLS 1.2では鍵の交換に2往復かかるため、4往復の400 msになります。この待ち時間は距離で決まるRTTの回数で決まるので、回線の帯域を増やしても短くなりません。HTTP/3で使われるQUICは、トランスポートと暗号のハンドシェイクを1往復にまとめ、再接続のときには最初の往復でデータを送る方法(0-RTT)も用意しています。

DNSの主な役割として正しいものはどれか。

  1. AIPアドレスをもとに、同じネットワークにある機器のMACアドレスを調べる
  2. Bwww.example.com のようなドメイン名を、通信に使うIPアドレスに変換する(名前解決)
  3. C通信を暗号化し、接続したWebサイトが本物かどうかを確かめる
答えと解説を見る

正解:B. www.example.com のようなドメイン名を、通信に使うIPアドレスに変換する(名前解決)

人が覚えやすいドメイン名と、通信に使うIPアドレスを対応づけるしくみがDNS(Domain Name System)です。ブラウザでURLを開くと、端末はまずDNSに問い合わせてサーバのIPアドレスを得てから、そのアドレスに接続します。DNSのデータは1台のサーバにまとまっているのではなく、ドメイン名の階層ごとに分けて、世界中のサーバで分散して管理されています。問い合わせには主にUDPの53番ポートが使われ、応答が大きいときなどにはTCPも使われます。

よくある質問

DNSは何番ポートを使いますか?

標準では53番ポートです。通常の問い合わせは主にUDPで行い、応答が大きい場合やサーバの間でゾーンのデータを転送する場合などにはTCPも使います。

DNSの設定を変えたのにすぐ反映されないのはなぜですか?

リゾルバや端末が、前の答えをレコードのTTLの間キャッシュしているためです。キャッシュが切れて新しく問い合わせ直すまでは、古いアドレスが使われることがあります。

解説の中の「DNS」

「DNS」が出てくる問題(9問)

  1. RTT(往復の時間)が100 msのWebサーバに、HTTPS(TCPの上のTLS 1.3)で新しく接続し、最初のリクエストを送って応答を受け取り始めるまでにかかる時間に最も近いものはどれか。DNSの名前解決は済んでおり、サーバの処理時間とデータの転送時間は無視する。
  2. DNSの主な役割として正しいものはどれか。
  3. キャッシュに何も入っていないフルサービスリゾルバ(キャッシュDNSサーバ)が、www.example.com のIPアドレスを調べるときに問い合わせる順序として正しいものはどれか。
  4. TCP/IPの4階層のモデルで、TCPとUDPが属する層はどれか。
  5. ARPの役割として正しいものはどれか。
  6. UDPの特徴として正しいものはどれか。
  7. プロトコルと、そのサーバが標準で使うポート番号の組み合わせとして正しいものはどれか。
  8. DHCPで端末がIPアドレスを得るときの、メッセージの順序として正しいものはどれか。
  9. Kubernetesで、Podは作り直されるたびにIPアドレスが変わる。ほかのアプリケーションから、ラベルで選んだ複数のPodに、変わらない名前とアドレスで接続して負荷を分散できるようにするリソースはどれか。

ネットワークの基礎の参考書を探す PR

Amazonの検索結果へのリンクです。Amazonのアソシエイトとして、半導体教室は適格販売により収入を得ています。

関連する用語

HTTP ポート番号 DHCP TLS 3ウェイハンドシェイク OSI参照モデル ARP MACアドレス SSH サブネットマスク

用語集の一覧へ