DNS とは†
- IPアドレスとドメイン名(ホスト名)の対応表を管理して、利用者から提示されるドメイン名に対応するIPアドレスを応答する仕組み
DNSの利用†
ゾーン†
ネームサーバ†
DNSの仕様†
通信プロトコル(トランスポート層)†
- UDP
- 一般的なDNSサーバへの接続はUDPが使われている。
- 最大512B
- 1往復
- TCP
- TCPフォールバック
- UDPのサイズ(512B)に収まらない場合に限り、TCP fallbackされる仕様(RFC1123)
- 3往復(3 say handshake)
- EDNS0
- Extension mechanism for DNS version 0
- DNSの拡張機構
- UDPのパケットサイズを最大65,535Bまで拡張することを可能とする
- OPTリソースレコードでUDPパケットサイズを識別する
- 53/UDP ※サイズが512B以下の場合、またはサイズが512Bを超過してEDNS0を使う場合
- 53/TCP ※サイズが512Bを超過してTCPフォールバックを使う場合
DNSリクエストの暗号化方式(クライアントとフルリゾルバ間)†
DNSリクエストの暗号化方式(フルリゾルバと権威リゾルバ間)†
DNSの構成要素†
リゾルバ†
- Resolver
- 名前解決を行う
- ホスト名とIPアドレスを紐づけ、ホスト名をIPアドレスに変換する機能。
- メールアドレスとメールサーバを紐づける機能。
- リゾルバには、スタブリゾルバとフルサービスリゾルバの2種類ある。
スタブリゾルバ†
- Stub Resolver
- 別称
- パソコンやスマホなどの端末上に搭載されている機能
- フルサービスリゾルバに対して名前解決を要求する(再帰的要求)
フルサービスリゾルバ†
- Full-Service Resolver
- 別称
- フルリゾルバ
- キャッシュサーバ、DNSキャッシュサーバ、キャッシュDNSサーバ
- 参照サーバ
- ネームサーバ、DNSサーバ
- スタブリゾルバからの名前解決要求を受けて、権威サーバに対して名前解決の為の問い合わせ(非再帰的要求)を行う
- 権威サーバへの問い合わせはルートサーバから始まり、名前解決するまで権威サーバの階層をたどって問い合わせを行う
- ルートサーバのIPアドレスが記載された一覧(ヒントファイル)を保持する
- 名前解決した内容はキャッシュに保存し、次回の同じ名前解決要求があった場合は、キャッシュに保存されている内容を応答する
- 名前解決の結果、目的のリソースレコードが見つからなかった場合は、見つからなかったことをキャッシュに保存する(ネガティブキャッシュ)
権威サーバ†
- 別称
- 権威DNSサーバ
- ゾーンサーバ
- コンテンツサーバ、DNSコンテンツサーバ
- ネームサーバ、DNSサーバ
- 権威サーバは、ルートサーバを頂点とした階層構造で構成される。
- 自身が委任を受けたゾーンの情報と、自身が委任しているゾーンの委任情報を保持する。
- フルサービスリゾルバからの名前解決要求を受けて(非再帰的要求)、保持している情報を応答する。
- ゾーンの情報(ゾーンデータ)は、リソースレコードという形式で保持する。
ルートサーバ†
- 別称
- ドメイン名空間の頂点(TLS)に位置するサーバ。
- ドメイン名の名前解決において、TLDの名前解決を行う。
プライマリとセカンダリ†
- 権威サーバはプライマリとセカンダリの2台構成で運用する必要がある。
- プライマリサーバ(プライマリDNSサーバ)
- セカンダリサーバ(セカンダリDNSサーバ)
- ゾーンデータを持つ権威サーバ(プライマリサーバ)のゾーンデータは、ゾーンデータを持たない権威サーバ(セカンダリサーバ)にコピーされる(ゾーン転送)
- 一般的に、自社の権威サーバをプライマリサーバ、上位プロバイダの権威サーバをセカンダリサーバにする
- ゾーン転送
- 権威サーバのプライマリとセカンダリが登録情報を同期させるために行う登録情報の転送機能のこと
- ゾーン転送要求は、セカンダリサーバからプライマリサーバに対して行われる。
DNSサーバ†
- DNSサーバには、コンテンツ機能とキャッシュ機能がある。
コンテンツサーバ†
キャッシュサーバ(フルサービスリゾルバ)†
- 個人と企業
- 個人の場合は、契約しているISPが管理しているフルサービスリゾルバを利用する。
- 企業の場合は、情報システム部門が管理しているフルサービスリゾルバを利用する。
- フルリゾルバの設定(Linux)
- /etc/resolv.conf の「nameserver」で指定する。
名前解決について†
名前解決の手順†
- クライアントは自ドメインのDNSサーバに問い合わせをする。
- 自ドメインのDNSサーバは、ルートサーバから下位のDNSサーバに向かって問い合わせを繰り返す。
- 自ドメインのDNSサーバは、目的のホスト名のDNSサーバからIPアドレスを取得し、クライアントに応答する。
再帰的問い合わせと非再帰的問い合わせ†
再帰的問い合わせ†
- スタブリゾルバからフルサービスリゾルバに対して行われる問い合わせ
- 再帰的問い合わせを受けたフルサービスリゾルバは、名前解決が完結するまで権威サーバをたどって問い合わせをした結果を応答する
非再帰的問い合わせ†
- フルサービスリゾルバから権威サーバに対して行われる問い合わせ
- 非再帰的問い合わせを受けたフルサービスリゾルバは、自身が応答できる情報のみを応答する(他のDNSサーバへの問い合わせは行わない)
正引きと逆引き†
リソースレコード†
グルーレコード†
- DNSサーバのドメイン名に対応するIPアドレスを、問い合わせ対象のドメインの上位のDNSサーバに登録することで、上位のDNSサーバから問い合わせ対象のDNSサーバに繋がるようにすることで、名前解決できるようにすること。
DNSのサービス†
DNSサーバソフトウェア†
DNSサーバを使ったセキュリティ上の攻撃手法†
DNSリクエストの暗号化†
暗号化アプリ†
DNS関連のコマンド†
bind-util†
- yum -y install bind-utils
kdig†
mDNS†
関連サイト†
- (緊急)米国国土安全保障省によるDNS設定の改ざんに関する緊急指令の公開について(2019.1.28)
- ハッカーによる「DNSハイジャック」の急増が、インターネットの信頼性を破壊する (2019.4.18)
関連用語†