はじめに
こんにちは。ネットワークエンジニアの「だいまる」です。
今回は、LPIC・Linuxシリーズの一環として、ドメイン(URL)とIPアドレスを紐づける「DNS」についてまとめていきたいと思います。
DNSとは?
DNSとは、「URLとIPアドレスの紐付けを行う機能・サービス」になり、ポート番号 53のUDPで利用されます。
インターネットを利用する際、このDNSは重要な役割を担っています。
具体的にはURLによるアクセスを行った際にIPアドレスを検索し、Webサイト等が運営されているサーバにアクセスしにいきます。

このDNSには、「権威サーバ(コンテンツサーバ)」と「キャッシュサーバ」の2種類があります。
「権威サーバ(コンテンツサーバ)」は、「自身が管理するドメインに対する検索要求への回答を行うサーバ」です。
この自身が管理するドメインの情報を「ゾーン情報」と呼び、ドメイン名とIPアドレスの紐付けを管理しています。
また、この権威サーバはツリー構造となっており、世界に数台しかない「ルートサーバ」を最上位とし、各層のサーバがそれぞれの情報を保持することで管理・運用が行われています。
「キャッシュサーバ」は、「以前の検索履歴が残っている場合、その結果をそのまま返すサーバ」です。
この利点は、「サーバ負荷の削減」や「検索時間の短縮」といった点が挙げられます。


ゾーンファイルとは?
ゾーンファイルとは、「ドメイン情報を管理しているファイル」になります。
ファイルに記載する各用語は、以下の表にまとめてみました。
項目 | 書式 | 詳細 |
ORIGIN | $ORIGIN (ドメイン名) | ドメイン名の補完を行う |
TTL | $TTL (秒数) | キャッシュする時間の指定 |
SoA | (ドメイン名)IN SOA(DNSサーバ名) (各種情報) | DNSサーバの各種管理情報 |
NS | (ドメイン名)[TTL] IN NS (DNSサーバ名) | ドメイン名とDNSサーバの紐付け |
MX | (ドメイン名)[TTL] IN MX (優先度)(DNSサーバ名) | メールサーバの指定 |
A | (ドメイン名) IN A (IPv4アドレス) | ホストのIPv4アドレスを指定 |
AAAA | (ドメイン名) IN AAAA (IPv6アドレス) | ホストのIPv6アドレスを指定 |
CNAME | (ドメイン名別名) [TTL] IN CNAME (元のドメイン名) | ドメイン名の別名を指定 |
PTR | (IPアドレス) IN PTR (ドメイン名) | IPアドレスに対応するホスト名指定 |
これらの実際の使い方は、別でまとめる「BIND」、「PowerDNS」に関する記事で詳細を触れていきたいと思います。
最後に
DNSの勉強として、概要を簡潔にまとめてみました。
次回以降はセキュリティ周りやBINDの実装についてもまとめていきたいと思います。