【FQDN】DNSの基礎を整理した【ICANN】

| 0件のコメント

DNSの基礎について頭の整理。

名前解決の歴史

元々, ARPANET時代にはhostsファイルに IPアドレス 名前 を書いていた。
しかし, ホストが増えると各ホストがhostsファイルの更新時に同期するコストが膨大になるためDNSの仕組みが生まれた。

DNSは分散DBで,必要な時に必要な分(差分)だけ更新することが可能になり効率的になった。
2011年にはgTLD(Generic Top Level Domain)の自由化が始まった。

ドメイン名前空間

すべての名前を持つホストが存在する空間。
ドメインは組織 -> 国 -> 世界と小さい範囲から大きい範囲に展開される。一方で,IPアドレスはネットワーク -> サブネットと展開されていく。
重複を回避するためのドメインツリーという仕組みがある。

ドメインツリー

  • Fully Qualified Domain Name (FQDN), 最上位層のTLDまで完全に指定されたホスト名のこと。
  • ドメインツリーは名前の通り木構造になっている。これにより重複が発生しない。
  • ドメインツリーは根(root), 節(node), 葉(leaf)から成る
  • 木のルートには名前がない(又はドット)

ルートサーバは世界中に論理上は13台しか存在しない。
ドメインツリーの頂上である根は . (period)である。

グローバルIPアドレス, ドメイン名はICANNが管理を行っている。
ルートの直下を管理しているのが,レジストリである。jpドメインの管理はJPRSが管理している。

ネームサーバとゾーン

ネームサーバ(DNS Server)は自分の直下のホストと名前のみを管理する。
この管理範囲をゾーンと呼ぶ。従って,自分のゾーン内の情報を管理しているという意味で分散的に権限を持っている, つまりオーソリティを持つという。

外部に繋げたいときは内部ネームサーバを立てる。
レジストリが持つネームサーバにドメインのオーソリティを明示するNSレコードとアドレス情報のAレコードを登録してもらう必要がある。

リソースレコード

ネームサーバが管理しているDBの中身のこと。主要なレコードに以下がある。

Aレコード : 正引き,ホストのアドレス(ドメイン名に対応するIPアドレス名)
AAAAレコード : ホストのアドレス(Quad-A record)
CNAMEレコード : ホストの別名
NSレコード : ドメインのネームサーバ(FQDN)
MXレコード : ドメインのメール交換ホスト
SOAレコード : ゾーン転送の制御
PTRレコード : 逆引き(IPアドレスに対応するドメイン名)

サブドメイン

サブドメインのネームサーバを構築しこのサーバに権限委譲をする。そして、親ドメインのネームサーバにサブドメインのNSレコードを登録する。

DNS問い合わせ

C -> S方向にStub Resolver が53番ポートを使ってドメイン名を問い合わせる。
そして,Full-Service Resolverやcontent server がS -> C方向にリソースレコードを応答する。

通常, 問い合わせるネームサーバを複数持っている。

  • preferred name server (優先)
  • alternate name servers (代替)

また,障害対策のためprimary serverのゾーン情報をコピーするためのゾーン転送を行う secondary serverを用意する。

ゾーン転送はSOAレコードのRefleshで指定した間隔で行うが DNS Notify を用いる事でサーバpushのような通知を行える。
正確には, Refleshをゼロに指定にして通常のゾーン転送を行う。通常はコネクションレス型のUDPを使うが, 512Byteを超えるとデータ損失リスクを回避するために,UDPからTCPに切り替える。

DNS Packet

DNS Packetとは以下で構成される

IP Header + UDP/TCP Header + DNS Message

DNS Message

DNS Messagesは以下から構成される

  • Message Header : 識別IDや質問数を記述する。OperationCodeが重要。opcodeは 0: 正引き, 1:逆引き。
  • Question Section : 問い合わせるドメイン名、クラス、タイプを記述する。
  • Answer Section : 回答、オーソリティ、追加がある。リソースレコードをそのまま返す。

DNSのセキュリティ

DNSキャッシュポイズニング

Full-Service ResolverのDNSキャッシュを偽のレコードで汚染すること。正しいドメイン名でアクセスしても偽のサーバに誘導されてしまう。

DNS Amp

Full-Service Resolverに不正なレコードを持たせる。ターゲットに成り済ましてTXTレコードを送りつけサイズの大きい応答をさせる攻撃。

まとめきれていない所は追記予定。

コメントを残す

必須欄は * がついています