DNSとは何か
DNS(Domain Name System)は、ドメイン名を、接続先のIPアドレスなどの情報へ対応付けて調べられるようにする分散型の仕組みです。ブラウザへ名前を入力してWebサイトを開ける背景で動いています。
DNSはWebサイトのファイルを配る仕組みではありません。名前から「次にどこへ接続すべきか」を調べる段階を担います。
一文でいうと
DNSとは、人が使うドメイン名から、コンピューターが接続に使う情報を引くための仕組みです。
ICANNはDNSについて、覚えやすい文字のドメイン名とIPアドレスを結び付ける、インターネットのアドレス帳に相当するものと説明しています。ただし、実際には一冊の名簿ではなく、複数のDNSサーバーが役割を分担します。
個人開発のどこで登場するか
独自ドメインをWebサイトへ接続する、メールの送信先を指定する、ドメインの所有確認を行う場面で登場します。ホスティングサービスから「DNSレコードを追加してください」と案内されたときは、ドメインに関する問い合わせへ何を返すか設定します。
代表的なレコードには次があります。
A:名前をIPv4アドレスへ対応付ける
AAAA:名前をIPv6アドレスへ対応付ける
CNAME:ある名前を別の名前へ対応付ける
MX:そのドメイン宛てのメールを扱う接続先を示す
TXT:所有確認やメール関連ポリシーなどの文字情報を置く
必要な種類と値は、接続するサービスの公式手順に合わせます。
ブラウザが接続先を見つける例
ブラウザで example.com を開く流れを簡略化すると、次のようになります。
ブラウザやOSが、以前調べた結果をキャッシュしていないか確認する
分からなければDNSリゾルバーへ問い合わせる
リゾルバーが必要に応じて権威DNSサーバーまでたどる
IPアドレスなどの結果を返す
DNSの結果が正しくても、サーバーや証明書が未設定ならページは開きません。逆にサーバーが正常でも、DNSが古い接続先を返せば到達できません。
ドメイン、URL、HTTPSと区別する
ドメイン:人が使う階層的な名前
DNS:その名前に対応する接続情報などを調べる仕組み
HTTPS:クライアントとサーバー間のHTTP通信をTLSで保護する仕組み
DNSを設定しただけでは、通信は暗号化されません。HTTPSとは何かの証明書とサーバー設定は別に成立させます。
反映待ちに変更を重ねない
DNSの結果は、TTLなどに基づいて途中のサーバーや端末へ一時保存されます。設定を変えても、すべての場所が同時に新しい値へ切り替わるとは限りません。
変更前には、名前、種類、値、TTL、プロキシ設定を記録します。メールを使っている場合は、Web用レコードだけを直すつもりでMXやTXTを消さないようにします。変更後に開けないときは、DNS、サーバーとは何か、HTTPS、アプリの順に分け、原因が分からないまま値を何度も上書きしません。
次に読む記事
名前そのものはドメインとは何か、ブラウザへ入力する全体はURLとは何かで整理します。実際の切り替え手順は独自ドメインとDNSを安全に切り替えるで確認します。