ポール・モカパトリスとDNS:インターネットが人間にわかる名前を得た経緯
ポール・モカパトリスが扱いにくいホスト一覧を置き換え、拡張可能な命名システムであるDNSを作った経緯を学びます。DNSの仕組み、キャッシュの重要性、基本的なセキュリティについても解説します。

なぜDNSはインターネット利用者全員に関係があるのか
ウェブアドレスを入力したりリンクをクリックしたりメールを送るたびに、次の単純な考えに頼っています:人間は覚えやすい名前を使い、コンピュータが正しい機械を探す作業をする。
DNSは日常的な問題を解決します:コンピュータは 203.0.113.42 のような数値(IPアドレス)で通信しますが、人は数字の羅列を覚えたくありません。あなたは example.com を覚えたいのであって、そのサイトが今日使っているアドレスを覚えたいわけではありません。
一言で言うとDNSとは
ドメインネームシステム(DNS)は、人間に優しいドメイン名をコンピュータが接続に使うIPアドレスに翻訳するインターネットの“住所録”です。
この翻訳は小さなことに思えるかもしれませんが、インターネットを使いやすく感じさせるか、数字だらけの電話帳のように感じさせるかの違いになります。
このガイドで期待すること
このガイドは非専門家向けです。ネットワークの事前知識は不要。次を順に見ていきます:
- DNSの基本的な考え方とその必要性
- 関係する主要な役割(あなたの端末、DNSリゾルバ、権威サーバ)
- ウェブサイトやメールを運用するときに実際に触れる部分
- DNSが提起するセキュリティと信頼の問題(それを助けるツールも含む)
途中で、1980年代初頭にDNSを設計したエンジニア、ポール・モカパトリスに出会います。彼の仕事が重要だったのは、単に新しい名前形式を作ったからではなく、小さな研究ネットワークが数十億の人々に利用される規模へと拡大しても動き続けるシステムを設計したからです。
サイトが「落ちた」経験、ドメインの変更が「伝播」するのを待った経験、メール設定に謎めいたDNSエントリが含まれているのを見た経験があれば、あなたはすでに外側からDNSに触れています。この記事の残りでは、舞台裏で何が起きているのかをわかりやすく、専門用語を抑えて説明します。
DNS以前:一つの共有ファイルがすべての名前を担っていた時代
馴染みのあるウェブアドレスが存在するずっと前、初期のネットワークではもっと単純な問題がありました:特定の機械にどうやって到達するか。コンピュータは IPアドレス(例: 10.0.0.5)で互いに通信できましたが、人は MIT-MC や SRI-NIC のような覚えやすい ホスト名を好みました。
初期の“名前サービス”:HOSTS.TXT
初期のARPANETでは、解決策は HOSTS.TXT という単一の共有ファイルでした。それは実質的にルックアップ表で、ホスト名とIPアドレスの対応一覧です。
各コンピュータはこのファイルのローカルコピーを保持していました。名前で接続したければシステムが HOSTS.TXT を調べ、対応するIPアドレスを見つけていました。
ネットワークが小さく、変更が比較的少なく、更新の入手先が明確だったため、この方式は当初は機能しました。
なぜこれが通用しなくなったのか
組織が増えると次第にこの方法は限界を見せ始めました:
- 更新が常態化した。 新しい機械が現れ、アドレスは変わり、名前は調整を要した。
- 名前の競合が増えた。 別々のグループが同じホスト名を選ぶことがあり得る。
- 配布の遅延が障害を引き起こした。
HOSTS.TXTのコピーが古ければ、ホスト名が誤ったアドレス、またはどこにも向かないことがあった。
核心は調整の難しさでした。HOSTS.TXT は世界共通のアドレス帳のようなものでした。もし誰もが同じ本に頼るなら、修正は世界規模の編集を必要とし、誰もが最新版を素早くダウンロードする必要があります。ネットワークがある規模を超えると、「一つのファイルで全部管理する」モデルは遅すぎ、中央集権的すぎ、そしてミスが起きやすくなりました。
DNSは、名前を数値にマッピングする考え自体を置き換えたのではなく、そのマッピングの保守と配布方法という脆弱な仕組みを置き換えました。
ポール・モカパトリス:スケーラブルな命名アイデアの立役者
1980年代初頭、インターネットは小さな研究ネットワークからより大きく、複雑で広く共有される存在へと移行していました。機械は増え、組織は自律性を求め、人々は数字のアドレスを覚えるよりもサービスに到達する簡単な方法を必要としていました。
その状況で作業していたポール・モカパトリスは、DNSの設計者として広く認められています。彼の貢献は派手な製品ではなく、非常に実利的な問いへの工学的な回答でした:ネットワークが拡大し続けるとき、どうすれば名前を使いやすいまま保てるのか?
コアな洞察:命名はスケールしなければならない
命名システムは単純に思えますが、当時の「単純」が意味していたのは:全員がダウンロードして最新に保たなければならない一つの共有リストでした。その方式は、変更が常態化すると破綻します。新しいホスト、名前の変更、修正のたびに全員が協調する必要が生まれるからです。
モカパトリスの重要な洞察は、名前は単なるデータではなく「共有された合意」であることでした。ネットワークが拡大するなら、その合意を作り配布する仕組みも拡大しなければならない—すべてのコンピュータが常にマスタリストを取得する必要がないように。
一つの大きなファイルではなく分散システム
DNSは「一つの権威あるファイル」の発想を分散設計に置き換えました:
- 責任を分割:異なる組織が名前空間の異なる部分を管理する。
- 答えは世界全体をコピーする代わりに適切なサーバに問い合わせて見つける。
- 結果はキャッシュでき、多くの検索が高速化されつつ、変更は時間をかけて伝播する。
ここにある静かな妙技は、DNSは賢く作ろうとしたわけではなく、実際の制約(帯域の限界、頻繁な変更、多数の独立した管理者、成長し続けるネットワーク)の下でも動き続けるように設計された点です。
DNSを形づくった設計目標
DNSは単なる小手先の発明ではなく、初期インターネットの成長で明らかになった具体的で実用的な問題を解決するために設計されました。モカパトリスのアプローチは、まず明確な目標を設定し、その後で数十年にわたって追従できる命名システムを構築することでした。
分かりやすい言葉での目標
- スケーラブルであること: 数百台だけでなく、何百万(や過去には何十億)の名前にも対応できること。
- 分散されていること: すべてを一つのマスターファイルや一台の中央サーバに頼らないこと。
- 信頼性があること: 一部のサーバがダウンしても応答できること。
- 管理しやすいこと: 組織が自分の名前をグローバル管理者に依頼することなく更新できること。
委任:実はこれが“秘訣”
重要な概念は**委任(delegation)**です:名前ツリーの異なる部分を別々のグループが管理します。
例として、.com 配下の管理はある組織が行い、レジストラが example.com を取得する手助けをし、あなた(あるいはDNSプロバイダ)が www.example.com や mail.example.com のレコードを管理します。責任をきれいに分割することで、成長によるボトルネックを防ぎます。
障害に耐えるために作られている
DNSは問題が起きることを前提に設計されています—サーバは落ちるし、ネットワークは分断され、経路は変わります。だから多くの権威サーバとリゾルバのキャッシュに依存し、短期的な障害が即座に全ての名前解決を壊さないようにしています。
DNSが何で、何でないか
DNSは人間に優しい名前を技術的なデータ(主にIPアドレス)に翻訳するサービスです。それ自体が「インターネットそのもの」ではなく、デバイスがどこに接続すればよいかを見つけるための命名・検索サービスです。
DNSを一枚の図で:名前の階層構造
DNSは名前をツリー状に整理することで管理可能にしています。全ての名前がグローバルに一意である必要がある大きなリストの代わりに、DNSはレベルごとに分けて責任を委譲します。
階層:ルート → TLD → ドメイン → サブドメイン
DNS名は右から左に読まれます:
- ルート:名前の末尾にある見えないドット(省略されることが多い)。
www.example.com.は技術的には末尾に.を持ちます。 - TLD(トップレベルドメイン):
.com、.org、.net、国別コードの.ukなど。 - ドメイン:
example(example.comのexample部分)。 - サブドメイン / ホスト:
www(www.example.comのwww部分)。
つまり www.example.com は次のように分解できます:
com(TLD)example(その.com配下に登録されたドメイン)www(ドメイン所有者が作成・管理するラベル)
階層が助ける理由
この構造により、名前の衝突が減ります。親の範囲内で一意であればよいので、多くの組織が www というサブドメインを持てます(www.example.com と www.another-example.com は衝突しない)。
また作業負荷が分散されます。.com の運営者がすべてのウェブサイトのレコードを管理する必要はなく、example.com の責任者だけに委任するだけです。
「ゾーン」を平易に説明すると
ゾーンとはそのツリーの管理可能な一部分で、誰かが公開する責任を負っているDNSデータのまとまりです。多くのチームにとって「我々のゾーン」は example.com とその下位のサブドメインのDNSレコードを指し、権威サーバに保存されます。
誰が何をするか:リゾルバ、権威サーバ、そしてあなた
ブラウザにウェブサイト名を入力するとき、実際には「インターネットそのもの」に直接尋ねているわけではありません。いくつかの専門的な役割が仕事を分担して、答えが迅速かつ信頼できる方法で見つかるようにしています。
主要な役者たち
**あなた(端末とブラウザ)**は単純な要求を出します:「example.com に対応するIPアドレスは?」あなたの端末は多くの場合まだ答えを知らず、何十ものサーバに自分で問い合わせたくありません。
**再帰的リゾルバ(recursive resolver)**があなたに代わって探します。これは通常あなたの ISP、職場/学校の IT、もしくは パブリックリゾルバ によって提供されます。利点は過去の問い合わせ結果をキャッシュして再利用できることです。
権威DNSサーバはドメインの正確なレコードを保持する最終的な情報源です。これらは「検索」するのではなく、そのゾーンに関する公式の答えを提供します。
高レベルのルックアップ手順
- 端末が設定された 再帰的リゾルバ に
example.comを尋ねる。 - リゾルバが新鮮なキャッシュを持っていれば即座に応答する。
- 無ければリゾルバは名前空間の階層に従ってどのサーバに訊けばよいかを順にたどる(トップから絞り込む)。
- リゾルバがドメインの 権威サーバ に到達し、最終的な答えを取得して端末に返す。
- ブラウザはそのIPアドレスを使ってウェブサイトに接続する。
「再帰的」対「権威ある」を一つの比喩で
再帰的リゾルバを図書館員に例えると、あなたの代わりに調べてくれて人気のある答えを覚えている人です。一方 権威サーバ は出版社の公式カタログで、自分の本に関する事実だけを記載している存在です。
DNSのルックアップを段階的に(専門用語抜きで)
ブラウザに example.com と入力すると、ブラウザは名前そのものを探しているわけではなくIPアドレス(例: 93.184.216.34)を必要としています。DNSは「この名前に対応する番号を教えて」という仕組みです。
1)ブラウザがOSに尋ねる
まずブラウザはコンピュータ/スマホのOSに「example.com のIPをすでに知っているか?」と尋ねます。OSは自身の短期記憶(キャッシュ)をチェックし、新鮮な答えがあればここで終了します。
2)OSがDNSリゾルバに尋ねる
OSに無ければ、設定された DNSリゾルバ に問い合わせを転送します。リゾルバはあなたの「DNSコンシェルジュ」のような存在で、端末が自分で何百もの問い合わせをするのを防ぎます。
3)リゾルバが指示に従う:ルート → TLD → 権威
リゾルバが答えをキャッシュしていない場合、導かれるように検索を始めます:
- ルートサーバ:リゾルバはまずドメインの末尾(たとえば
.com)についてどこに問い合わせればよいかを尋ねます。ルートは最終的なIPを返すわけではなく、次に訊ねるべきサーバ(TLDサーバ)を紹介します。 - TLDサーバ(
.com):次にTLDサーバにexample.comをどのサーバが扱っているかを尋ねます。ここでも最終的なIPは返りませんが、次に問い合わせるべき権威サーバを教えます。 - 権威サーバ:そのドメインの正しいレコードを持つサーバです。実際の
AやAAAAレコード(IPアドレス)を返します。
4)答えが戻り(通常はキャッシュされ)る
リゾルバがIPをOSへ返し、その後ブラウザが接続します。多くのルックアップが瞬時に感じられるのは、リゾルバや端末がTTLで定められた期間だけ答えをキャッシュするからです。
覚えやすい流れのモデル
シンプルな流れは:ブラウザ → OSキャッシュ → リゾルバキャッシュ → ルート(紹介) → TLD(紹介) → 権威(答え) → ブラウザ です。
キャッシュとTTL:DNSが速く、しかし時に変化に遅い理由
毎回最初から複数のサーバに問い合わせるならDNSは非常に遅く感じるでしょう。代わりにDNSはキャッシュ(最近の検索結果の一時記憶)に依存しているので、多くのユーザーはミリ秒単位で答えを得られます。
キャッシュとは何か(そしてなぜあるのか)
端末が example.com をリゾルバに尋ねると、最初はリゾルバがいくらかの作業をする必要があります。答えを学ぶとそれをキャッシュに保存します。次に同じ名前を誰かが尋ねれば、即座に応答できます。
キャッシュの目的は二つです:
- 速度: ネットワーク往復が減りページ読み込みが速くなる。
- 負荷低減: 権威サーバがすべてのリクエストを直接さばかなくて済む。
TTL:この答えをいつまで保持するか
各DNSレコードには TTL(Time To Live) が設定されています。TTLは「この答えをX秒間保持し、その後は再度問い合わせてください」と指示するものです。
TTLが300であれば、リゾルバは最大5分間その応答を再利用するかもしれません。
トレードオフ:変化速度と安定性
TTLはバランスの問題です:
- 短いTTL は変更の反映を速めます(移行時に有用)が、DNSクエリ数が増えます。
- 長いTTL はクエリ負荷を下げ安定性を高めますが、変更が広がるのに時間がかかります。
TTLが重要になる実例
サイトを新しいホストへ移す、CDNを切り替える、あるいはメールの切り替え(MXレコード変更)を行う場合、TTLがユーザーがいつから新しい先へ行くかを決めます。
一般的な方法は、計画的な変更の前にTTLを下げておき、切り替えを行い、安定したらTTLを上げることです。これがDNSが普段は高速で、更新直後に「頑固」に感じられる理由です。
実際に目にするDNSレコード(A、AAAA、CNAME、MX、TXT)
DNSダッシュボードにログインすると、多くの場合いくつかのレコードタイプを編集することになります。各レコードはインターネットに対して小さな指示を出します:人をどこに送るか(ウェブ)、メールをどこに届けるか、あるいは所有確認のための値を示すなど。
よく使うレコード(実務的な例付き)
| レコード | 役割 | 簡単な例 |
|---|---|---|
| A | 名前をIPv4アドレスに向ける | example.com → 203.0.113.10(ウェブサーバ) |
| AAAA | 名前をIPv6アドレスに向ける | example.com → 2001:db8::10(同じ目的、次世代アドレス) |
| CNAME | ある名前を別の名前のエイリアスにする | www.example.com → example.com(両方同じ場所へ) |
| MX | ドメイン宛てのメールをどこへ配信するか指示する | example.com → mail.provider.com (priority 10) |
| TXT | 機械が読む「メモ」を保存(所有確認、メールポリシー) | example.com に v=spf1 include:mailgun.org ~all のようなSPF |
| NS | どの権威サーバがゾーンをホストしているか示す | example.com → ns1.dns-host.com |
| SOA | ゾーンのヘッダ:プライマリNS、管理者連絡先、タイミング値 | example.com のSOAは ns1.dns-host.com とリトライ/失効タイマーを含む |
よくある間違い
いくつかのDNSエラーは繰り返し発生します:
- アペックスにCNAMEを置く(
example.comなど):多くのDNSプロバイダはこれを許可しません。ルート名はNSやSOAを持つ必要があるためです。ルートをホスト名に向けたい場合はA/AAAAレコード、またはプロバイダがサポートする「ALIAS/ANAME」機能を使ってください。 - 競合するレコード:同一ホスト名に
CNAMEとAを同時に設定しないでください(例:同じwwwに両方設定するなど)。片方の方法を選びましょう。 - タイプミスやフォーマットの落とし穴:
mail.provider.comの一文字の誤りでもメールが壊れます。ドットの有無やホストフィールド(例:@とwwwの違い)を間違えるとアウトページが発生します。
チームにDNSガイダンスを共有するなら、上のような小さな表をドキュメントやランブックに置いておくとレビュやトラブルシューティングが格段に速くなります。
DNSを運用する主体:ドメイン、レジストラ、ルートサーバー
DNSが機能するのは多くの組織に責任が分散されているからです。この分散は、プロバイダを切り替えたり設定を変えたりしても、インターネット全体に許可を求める必要なく名前を維持できる理由でもあります。
ドメイン登録とDNSホスティングは別物
ドメインを登録することは、一定期間その名前(例: example.com)を使う権利を買うことです。ラベルを予約するようなイメージ。
DNSホスティングは、その名前がどこに向かうか(ウェブ、メールプロバイダ、検証レコードなど)を指示する設定を公開することです。ドメインをある会社で登録し、別の会社でDNSをホストすることも可能です。
レジストリ、レジストラ、ネームサーバの役割(平易に)
- レジストリ:
.comや.org、.ukなどのTLDを運営する組織。各TLDの公式データベースを保ち、どの名前が誰のものでどのネームサーバが責任を持つかを管理する。 - レジストラ:あなたがドメインを登録・更新するために使う販売業者。レジストリとやり取りしてドメイン設定を編集できる。
- ネームサーバ:ドメインのDNSレコード(A/AAAA、MX、TXT、CNAMEなど)を公開する機械。これらはそのドメインに対する最終的な答えを提供するため、**権威ある(authoritative)**と呼ばれる。
ルートサーバの役割(できること、できないこと)
ルートサーバはDNSの最上位に位置します。彼らはあなたのウェブサイトのIPアドレスを知らないし、あなたのドメインのレコードを保存しているわけでもない。仕事は限定的で、リゾルバに各TLDを扱う権威サーバがどこにあるかを教えることです。
デリゲーション:TLDからあなたのドメインへ制御が移る仕組み
レジストラでドメインの「ネームサーバ」を設定すると、それがデリゲーションを作ります。.com レジストリ(それの権威サーバ)は example.com の問い合わせをあなたが指定したネームサーバに向けます。
その瞬間から、そのネームサーバがインターネットの残りに提供する答えを制御します—あなたがデリゲーションを変更するまで。
セキュリティと信頼:何が起きうるか、DNSはどう対処するか
DNSは信頼の上に成り立っています:名前を入力すると、その答えが本物のサービスに向かうと期待します。多くの場合期待通りですが、DNSは攻撃の定番の場所でもあります。なぜなら「その名前がどこに向かうか」を少し変えるだけで多くの人を誤誘導できるからです。
よくあるDNSリスク(実際の現れ方)
古典的な問題は 偽装(spoofing)やキャッシュポイズニング です。攻撃者がリゾルバを騙して偽の答えを保存させると、正しいドメイン名を入力してもユーザーは誤ったIPに送られます。フィッシングページやマルウェア配布、中間者攻撃の原因になります。
別の問題は レジストラでのドメイン乗っ取り です。誰かがあなたのレジストラアカウントに侵入すれば、ネームサーバやDNSレコードを変更してドメインを実質的に奪うことができます。
そして日常的な危険は 設定ミス です。余計な CNAME、古い TXT、間違った MX はログインフローやメール配信、所有権検証を壊します。こうした障害は「インターネットの障害」に見えることがありますが、実態は小さなDNS設定ミスです。
DNSSECの助け(高レベル)
DNSSEC はDNSデータに暗号的署名を付けます。平たく言えば:DNSの応答が改ざんされておらず、本当にそのドメインの権威あるサーバから来たことを検証できるようにします。DNSSECはDNSの内容を暗号化したり匿名化したりするものではありませんが、多くの種類の偽装応答が受け入れられるのを防げます。
プライバシー:DoHとDoT
従来のDNSクエリはネットワーク上で観察されやすいです。DNS-over-HTTPS(DoH) や DNS-over-TLS(DoT) は端末とリゾルバ間の接続を暗号化し、盗み見や途中改ざんのリスクを減らします。これらはDNSを「匿名化」するものではありませんが、誰がクエリを見たり改ざんしたりできるかを変えます。
チーム向けの実務的な備え
レジストラでMFAを有効化し、ドメイン/トランスファーロックを設定し、DNSを編集できる人を制限してください。DNSの変更を本番デプロイのように扱い、レビューを必須にし、変更ログを残し、レコードやネームサーバーの変更を監視して異変を早く知る仕組みを作りましょう。
ウェブやメールを管理するチームのための実務的アドバイス
DNSは「設定して忘れる」ものに見えがちですが、小さな変更でサイトやメールが落ちることがあります。幸い、いくつかの習慣を守ればDNS運用は予測可能になります—小規模チームでも実行可能です。
小さなチーム向けの簡単チェックリスト
まず繰り返し使える軽量なプロセスを決めましょう:
- 信頼できるDNSプロバイダを選ぶ:使いやすいUI、明確な変更履歴、TXTなどのモダンなレコードサポートを確認。ドメイン登録とDNSホスティングを別にしても問題ありません。
- TTL戦略を決める:安定したサービスには長めのTTL(パフォーマンス向上)、移行予定時は事前に短めのTTL(素早い切り替え)を設定。
- 変更を全て記録する:何を、なぜ、いつ、誰が承認したかを共有ノートに残す。以前の値も含めておけば迅速に元に戻せます。
「謎の障害」を防ぐ信頼性習慣
多くのDNS問題は複雑ではなく、ただ発見が遅れるだけです。
- 複数のネームサーバを使う:DNSプロバイダは少なくとも二つの権威ネームサーバを異なる場所で公開すべきです。単一障害点で落ちるリスクを下げます。
- ネットワーク外から監視する:HTTPだけでなくDNS解決をチェックする基本的なアップタイム監視が早期検知に役立ちます。
- ロールバック計画を持つ:編集前に現在のゾーンレコードをコピーする。何か壊れたら既知の正常値に戻すことで数時間ではなく数分で復旧できます。
頻繁にアプリをデプロイするチームでは、DNSもリリースプロセスの一部になります。たとえば、Koder.ai のようなプラットフォームからカスタムドメインを接続してデプロイする場合でも、同じ基本が必要です:正しい A/AAAA/CNAME ターゲット、切り替え時の妥当なTTL、間違った先を指してしまったときの明確なロールバック経路。
メール到達性(deliverability):重要なDNSレコード
ドメインからメールを送る場合、DNSはメッセージが受信箱に届くかどうかに直接影響します。
- SPF(TXTレコード):どのサーバがあなたのドメインからメールを送ることを許可されているかを列挙します。
- DKIM(TXTレコード):暗号的署名を付けて、受信側がメッセージの改ざんがないことを検証できるようにします。
- DMARC(TXTレコード):SPF/DKIMチェックが失敗した際に受信側にどう処理するかを指示し、レポートを受け取る設定を可能にします。まずはモニタリングポリシー(監視)で始め、十分に自信が持てるようになったら厳格化してください。
人に優しい名前はインターネットを小さな研究コミュニティから大規模な共有インフラへと成長させました。DNSを共有インフラとして扱い、事前に小さな注意を払えばサイトは到達可能なまま、メールは信頼され続けます。
よくある質問
DNSとは平たく言うと何ですか?
DNS(Domain Name System)は、人に覚えやすい名前(例: example.com)をコンピュータが使うIPアドレス(例: 93.184.216.34)に変換する仕組みです。
DNSがなければ、使うすべてのサイトやサービスの数字のアドレスを覚える必要があります。
なぜインターネットはHOSTS.TXTから移行したのですか?
初期のネットワークでは、ホスト名とIPアドレスを対応付ける単一の共有ファイル(HOSTS.TXT)に頼っていました。
しかしネットワークが成長するにつれて、更新が頻繁になり、名前の競合が増え、古いコピーによる障害が発生するようになりました。DNSは「世界共通の一つのファイル」方式を分散型のシステムに置き換えました。
ポール・モカパトリスはインターネットにどんな貢献をしましたか?
ポール・モカパトリスは1980年代初頭にDNSを設計し、急速に成長するネットワーク上での命名のスケーリング問題を解決しました。
彼の重要なアイデアは*委任(delegation)*です:責任を多くの組織に分割して、単一のマスターリストや管理者がボトルネックとならないようにしたことです。
DNSの名前階層(ルート、TLD、ドメイン、サブドメイン)はどう機能しますか?
DNS名は右から左に読まれる階層構造になっています:
- ルート(末尾のドット、通常は表示されない):
www.example.com. - TLD:
.com - ドメイン:
example.com - サブドメイン/ホスト:
www.example.com
この階層構造がデリゲーションと運用管理を実現し、グローバルスケールでの管理を可能にします。
再帰的リゾルバと権威サーバの違いは何ですか?
**再帰的リゾルバ(recursive resolver)**はあなたに代わって答えを探し、結果をキャッシュします(ISP、職場、またはパブリックプロバイダが運用)。
**権威あるDNSサーバ(authoritative DNS server)**はそのドメインの正しいレコードを保持する「最終的な答えの源」です。リゾルバは検索して答えを集め、権威サーバは自分のゾーンに関する正確な情報を返します。
ブラウザにドメインを入力したときに何が起きますか?
典型的な名前解決の流れは次の通りです:
- デバイスがローカルのDNSキャッシュをチェックします。
- 再帰的リゾルバに問い合わせます。
- 必要ならリゾルバが参照をたどります:ルート → TLD(例:
.com)→ ドメインの権威サーバ。 - 権威サーバが
A/AAAAなどのレコードを返します。 - リゾルバが結果をキャッシュしてデバイスに返します。
なぜDNSの変更は“伝播”に時間がかかるのですか?TTLとは何ですか?
TTL(Time To Live)は、リゾルバがDNSの応答をどのくらいの間キャッシュしておくかを決める値です。
- TTLを短くすると変更は速く反映されますがクエリ量が増えます。
- TTLを長くするとクエリ量は減り安定しますが、更新の反映が遅くなります。
「伝播(propagation)」と呼ばれる現象は主に、世界中のキャッシュがそれぞれ異なるタイミングで期限切れになることを指します。
ウェブサイトやメール設定で通常必要なDNSレコードはどれですか?
一般的に扱うレコードは次の通りです:
A/AAAA: 名前をIPv4/IPv6アドレスに向ける(ウェブやサーバー)CNAME: あるホスト名を別のホスト名の別名にする(一般的にwww)MX: ドメインのメール配送先TXT: 所有確認やメール認証(SPF, DKIM, DMARC)NS: そのドメインの権威サーバーを示す
実務上のルール:同じホスト名に CNAME と A を同時に設定しないこと。
ドメイン登録とDNSホスティングの違いは何ですか?
**レジストラ(registrar)**はドメイン名を登録・更新する場所で、あなたがその名前を一定期間占有する権利を管理します。
**DNSホスティング(DNS hosting)**は、そのドメインがどこに向かうかを示すレコードを公開するサービスです。
登録先とDNSホストは別でも構いません。登録側で NS を変更して、別のプロバイダに委任できます。
一般的なDNSのセキュリティリスクにはどんなものがあり、それらを減らすには?
DNSには次のようなリスクがあります:
- キャッシュポイズニング/偽装:不正な回答がリゾルバに保存されるとユーザーは誤ったIPへ誘導される。
- レジストラのアカウント乗っ取り:権限を奪われるとネームサーバやレコードが書き換えられる。
- 設定ミス:間違った
MXや余計なCNAME、タイプミスで機能が壊れる。
防御策としては、レジストラでのMFAやトランスファーロック、DNS変更のレビューとロールバック手順、可能ならDNSSECの導入、そしてクライアントとリゾルバ間の暗号化(DoH/DoT)などがあります。