「DNSって聞いたことはあるけど仕組みがよくわからない」という方は多いです。この記事ではDNSの名前解決の仕組み、主要なDNSレコードの種類、Linuxでの確認コマンドを実践的に解説します。
DNSとは何か?
DNS(Domain Name System)は、ドメイン名(hobbyshift.com)をIPアドレス(203.0.113.1)に変換する仕組みです。人間が覚えやすい名前と、コンピューターが使うIPアドレスを橋渡しする「電話帳」のようなシステムです。
名前解決の流れ
ブラウザで「https://hobbyshift.com」と入力したとき、裏側では以下の流れでIPアドレスが取得されます。
- ブラウザキャッシュ確認:以前に解決済みならキャッシュを使う
- OSのhostsファイル確認:/etc/hostsに登録があればそれを使う
- リゾルバー(フルサービスリゾルバー)に問い合わせ:プロバイダや8.8.8.8などのDNSサーバー
- ルートDNSサーバーへ問い合わせ:「.com」を管理しているDNSサーバーを教えてもらう
- TLDサーバーへ問い合わせ:「hobbyshift.com」の権威DNSサーバーを教えてもらう
- 権威DNSサーバーへ問い合わせ:hobbyshift.comのAレコード(IPアドレス)を取得
- ブラウザにIPアドレスを返す
主要なDNSレコードの種類
| レコード種別 | 役割 | 例 |
|---|---|---|
| A | ドメイン→IPv4アドレスの変換 | hobbyshift.com → 203.0.113.1 |
| AAAA | ドメイン→IPv6アドレスの変換 | hobbyshift.com → 2001:db8::1 |
| CNAME | ドメイン→別ドメインへのエイリアス | www → hobbyshift.com |
| MX | メールサーバーの指定 | hobbyshift.com → mail.hobbyshift.com |
| NS | 権威DNSサーバーの指定 | hobbyshift.com → ns1.example.com |
| TXT | テキスト情報(SPF・DKIM・ドメイン所有確認など) | v=spf1 include:… ~all |
| PTR | IPアドレス→ドメイン名への逆引き | 203.0.113.1 → hobbyshift.com |
| SOA | ゾーンの管理情報(シリアル番号・TTL等) |
LinuxでDNSを確認するコマンド
# nslookup:最も基本的なDNS確認ツール
nslookup hobbyshift.com
nslookup hobbyshift.com 8.8.8.8 # DNSサーバーを指定
# dig:詳細な情報が得られる(推奨)
dig hobbyshift.com
dig hobbyshift.com A # Aレコードのみ
dig hobbyshift.com MX # MXレコードのみ
dig -x 8.8.8.8 # 逆引き(PTRレコード)
dig hobbyshift.com @8.8.8.8 # DNSサーバーを指定
+shortオプションで結果を簡潔に
dig hobbyshift.com +short
# TTL(キャッシュ有効期限)の確認
dig hobbyshift.com | grep "ANSWER SECTION" -A 5
# /etc/resolv.conf:使用するDNSサーバーの設定
cat /etc/resolv.confhostsファイルによるローカルDNS
# /etc/hostsに追記すると、DNSより優先される
sudo nano /etc/hosts
# 追記例
127.0.0.1 myapp.local
192.168.1.10 dev-server.local
# 確認
ping myapp.local # → 127.0.0.1に到達開発環境を構築するとき、/etc/hostsにローカルドメインを登録するのは非常に便利です。「http://myapp.local」でアクセスできるようにしておくと、本番環境と同じURLパスでテストができます。ただし本番環境のIPを間違えてhostsに書いてしまうと「なぜかそのサイトにアクセスできない」という混乱が起きるので注意が必要です。
hobbyshift管理人
まとめ
- DNSはドメイン名をIPアドレスに変換する仕組みで、階層的なサーバーが連携して名前解決を行う
- AレコードはIPv4、AAAAはIPv6、CNAMEはエイリアス、MXはメールサーバーを指定する
- digコマンドで詳細なDNS情報を確認でき、@でDNSサーバーを指定できる
- /etc/hostsに書いたエントリはDNSより優先される(開発環境でよく使う)


コメント