DNS(Domain Name System)
ドメイン名と IP アドレスの名前解決を提供
ルートゾーンKSKロールオーバー
ダイナミック DNS
- IP アドレスが変わってしまったときに DNS サーバへ通知して、ホスト名と IP アドレスの対応を動的に変更する仕組み
仕組み
レコード
SOAコード(Start Of Authority)
このゾーンの権威サーバであることを示す
確認
$ host -t soa renoretriever.net. renoretriever.net has SOA record 01.dnsv.jp. hostmaster.dnsv.jp. 1390534911 3600 900 604800 300
項目 説明 01.dnsv.jp. このゾーンのプライマリー DNS サーバ hostmaster.dnsv.jp. ゾーン管理者のメールアドレス
. を @ に変えたもの1390534911 シリアル値
ゾーンファイルを修正した時には値の大きい物をつけるようにする
スレーブは自分がもっているシリアル値より大きい値であることを確認したら、新規にゾーンを取得する動作となる3600 スレーブがマスターの情報が更新されていないかをチェックする間隔
シリアル値を確認し、値が大きくなっていれば転送依頼をかける900 上記チェックにて失敗した時のリトライ間隔 604800 期限切れの時間
スレーブがマスターに最後に接続してから、この時間が過ぎるとスレーブは自分が持っている情報を全部無効とする300 ネガティブキャッシュ
存在しない情報だった場合、その情報をどれくらいキャッシュするかの時間
A レコード(アドレス)
名前と IP アドレスのヒモ付を行うもの
確認
$ host -t a renoretriever.net. renoretriever.net has address 158.199.143.102
MX レコード(mail exchange)
メール配送に利用されるレコード
確認
$ host -t mx renoretriever.net. renoretriever.net mail is handled by 20 mail02.renoretriever.net. renoretriever.net mail is handled by 10 mail01.renoretriever.net.
- 数字は優先度(0〜65535 の間)
- 低い値が優先度が高く、先に利用される
NS レコード(mail exchange)
ネームサーバの指定
確認
$ host -t ns renoretriever.net. renoretriever.net name server 01.dnsv.jp. renoretriever.net name server 02.dnsv.jp. renoretriever.net name server 03.dnsv.jp. renoretriever.net name server 04.dnsv.jp.
- TXT レコード(text)
- ドメインに関する情報の記載。SPF や DKMI など
CAA(Certification Authority Authorization)
ドメインに関する証明書を発行できる認証局の指定
例
example1.jp. IN CAA 0 issue "letsencrypt.org"
PTR
- IP アドレスに対応するホスト名
BIND
- メッセージ判断
- DNS では、DNS メッセージ中に ID という 16 ビットの識別子が用意されている
- 応答メッセージを受信したときに、それがどの問い合わせメッセージに対するものかを判断するために使用
- キャッシュサーバは、問い合わせメッセージ中に ID を指定して送信し、あとで DNS メッセージを受信したときにそのメッセージ中の ID を調べ、問い合わせたときの ID と一致するものを、対応する応答メッセージとして処理
- 問い合わせのときに指定した ID と、応答パケットに含まれる ID が一致しない場合は、不正なDNSメッセージとして破棄
- DNS では、DNS メッセージ中に ID という 16 ビットの識別子が用意されている
バージョンの調べ方
$ dig @nameserver chaos txt version.bind
Google Public DNS
Word
- ドメイン
ゾーン
- DNS サーバが管理する範囲のこと
- DNS サーバに登録されているリソースレコードの集まり
オープンリゾルバ
- 組織内部だけでなく外部からも利用できるキャッシュサーバ
ネガティブキャッシュ
- 検索対象が存在しない結果のキャッシュ
逆引き
- 必須ではないが、メールサーバで正引き・逆引きの整合性がチェックされるケースがある
- 設定しておくメリット
- telnetやらsshd などが接続処理の中で逆引きを調べるプログラムが存在する
- どの組織にIPブロックが割り当てられているか調べられる
- メールサーバでは逆引きできないとメールの配送を受け付けない設定をしているのがある。
- こんなのがあるとき、待ち時間が発生して、処理遅延が起きる
名前解決フロー
www.example.com
をブラウザから閲覧したことを想定して以下フローとなる
- クライアント => キャッシュ DNS サーバ
- 自分の PC に設定してある DNS サーバに問い合わせを行う
- 通常はプロバイダの
キャッシュ DNS サーバ
を設定している
- キャッシュ DNS サーバ => ルート DNS サーバ
- キャッシュ DNS サーバが知らないホスト名のリクエストを受けた場合、
ルート DNS サーバ
に問い合わせを行う - キャッシュがあればその情報をクライアントに返す
- キャッシュ DNS サーバが知らないホスト名のリクエストを受けた場合、
- ルート DNS サーバ => キャッシュ DNS サーバ
.com
の DNS サーバに問い合わせするように指示
- キャッシュ DNS サーバ => .com の DNS サーバ
example.com
の DNS サーバの情報を返す
- キャッシュ DNS サーバ => example.com の DNS サーバ
www.example.com
の情報を保持しているので、その IP アドレスを返す
- キャッシュ DNS サーバ => クライアント
www.example.com
の IP アドレスを返す
攻撃
DNS スプーフィング
- hosts ファイルの書き換えなど、DNS サーバに偽の応答を行わせる方法
- DNS キャッシュポイズニング