3分間DNS 基礎講座メモ
- 作者: 網野衛二
- 出版社/メーカー: 技術評論社
- 発売日: 2009/06/12
- メディア: 単行本(ソフトカバー)
- 購入: 7人 クリック: 85回
- この商品を含むブログ (23件) を見る
3分間DNSという本を会社の先輩にお借りしていて、ようやく読み終えたのでメモしておきます。
IPアドレスにはネットワーク部とホスト部があり、ホスト部の大きさが大きいほどネットワークの大きさが大きくなる。
例: 172.15.4.1 / 22 <-ネットワーク部のビット数
通信ではTCPないしUDPが利用される。TCPは確実なデータ転送を行う際に利用される。
通信を段階化して考えると、ユーザ->サービス->通信アプリケーション->プロトコル->TCP/IPとなる
- サービス: ユーザにネットワーク機能を提供。Webサイト閲覧、ファイル転送、メール転送など
h3. TCP
- TCPの機能としては大きく分けて5つある
- コネクション、セグメント化、確認応答、ウィンドウ制御、フロー制御
h4. コネクション
スリーウェイハンドシェイクにより、通信の準備を行う
h4. セグメント化
データを一定サイズに分割して送信する。これにより、信頼性の高いデータ通信を行う
h4. 確認応答
TCPヘッダのシーケンス番号と、確認応答番号を利用することにより、受信側が次にほしいセグメントを通知する。
h4. ウィンドウ制御
相手が受け取れるデータ量を教えてもらい、その分だけ一気に送ること
h4. フロー制御
スロースタートアルゴリズムと呼ばれる、通信速度の限界点を探りつつ転送する手法により、転送途中でデータが転送しきれなくなることを防ぐ
h3. UDP
TCPで行っていたような通信制御をUDPでは全く行わない。確実に送るよりも素早く送ることが必要な場面、例としてはIP電話や映像・動画配信などに使われる。
h2. ドメインネーム
- グローバルIPアドレスとドメイン名はICANNが管理している
- レジストラとレジストリ
h2. DNSの構造
h3. リソースレコード
リソースレコードはゾーン情報として保有するデータの単位である。以下の情報を持っている。
- 名前: そのリソースレコードの名前
- タイプ: リソースレコードタイプ。以下に示す6個がある
- クラス: 使用するプロトコルを示す。基本的にはIN。
- TTL: リソースレコードを保持する期間。期間が過ぎるとそのリソースレコードは削除される。
- RDATA: リソースレコードの値
- RDLength: RDATAの長さで、単位はオクテット
h4. A
Address: ホストのアドレスを示す。名前とIPアドレスの対応を通知する。DNSラウンドロビンを行う場合は、同じ名前に対して複数のIPアドレスを設定したAレコードを用意する。
h4. CNAME
Canonical NAME: ホストの別名を示す。同じ危機に対して別の名前を付けたいときに用いる(WebサーバとFTPサーバなど)。他のレコードにCNAMEで指定した名前は入れてはいけない(単独で利用する)。
h4. MX
Mail eXchange: ドメインのメール交換ホスト(メールボックスのサーバへメールを送るためのサーバ)RDATAには優先度(16ビットの値で、値が低いほうが優先される)とメールサーバ名が入る。
h4. NS
Name Server: ドメインのネームサーバ。サブドメインがある場合、そのネームサーバをNSレコードで指定する。
h4. PTR
PoinTeR: 逆引き用ドメイン名で、IPアドレスからドメイン名を問い合わせるときに利用される。
192.168.0.1のドメイン名は1.0.168.192.in-addr.arpa.となる。(TLDがarpa、SLDがin-addr)
逆引き用のゾーン情報と、それを管理するネームサーバを用意することで、PTRレコードの問い合わせにより、逆引きの問い合わせを行うことができる。
h4. SOA
Start Of Authority: オーソリティの起点。ネームサーバを複数持ち、ゾーン情報をコピーするゾーン転送を制御するためのリソースレコードで、ゾーン転送のタイミングを決定するために使われる。RDATA内にある、ゾーン情報の新しさを示すSerialという値でゾーン情報の新しさを見る。Refreshの感覚でゾーン情報の確認を行い、ゾーン情報が新しければゾーン転送を行う。
ゾーン情報を更新した時には、Serialを必ず増加させないと、セカンダリサーバに更新内容がコピーされない。
h4. AAAA
IPv6 Address: IPv6用のホストのアドレス
h2. DNSの動作
- アプリケーションの要求に合わせてネームサーバに問い合わせるソフトウェアをスタブリゾルバと言う
- 問い合わせに対し完全な応答を返すネームサーバをフルサービスリゾルバという。問い合わせたドメイン名のIPアドレスないし対象ドメイン名なしの応答を返す。
- オーソリティを持つゾーン以外の問い合わせに対しては知らないと応答するサーバをコンテンツサーバという。
- ドメイン空間の根に存在するサーバをルートサーバと呼び、世界に13台ある。
h3. DNSメッセージ
h4. DNSヘッダ
h4. 質問セクション
- 質問セクションは可変長で、問い合わせするドメイン名、タイプ、クラスを所持する。タイプにはレコードタイプ(A、MX、AAAAなど)を指定する。
h4. 回答セクション
- 回答セクションは回答、オーソリティ、追加の項目を所持する。
h3. ゾーン転送
- IPアドレスの変更が起きるDHCPやインターネット接続サービスでは、ゾーン情報の動的な書き換えが必要である。DNS Dynamic updateは、IPアドレスの変更が行われると、自動でゾーン情報を書き換える。これを利用する場合は、ネームサーバとクライアント側が両方対応している必要がある。
- DNS Notifyを利用すると、ゾーン情報をすぐにセカンダリサーバに更新させることが可能になる。差分ゾーン転送を行うことで、ゾーン情報の転送量を減らして負荷を軽減できる。
- ゾーン転送が正しく行われないとセキュリティ上の問題が発生し、正しいドメイン名でも悪意を持った不正なサーバに接続してしまう可能性がある。TSIGを利用すると、ゾーン転送の情報が署名され、正しいゾーン転送が行われる。
h3. nslookup
- DNS問い合わせツール。nslookup ドメイン名でスタブリゾルバの問い合わせを行うことができる。
- サーチパスが設定されている場合は、問い合わせるドメインをFQDNにしないと、自動でサーチパスをつけられてしまう。
- setコマンドで設定を変更した問い合わせを行うことも可能になる。
- set d2で詳細デバッグモードになる
h2. TELNET
- また、制御文字の他に、制御コマンドを持つ。制御コマンドには、「制御」と「オプション」の2種類がある。
- エスケープシーケンスのIACをつけてコードを送信することで制御コマンドとして認識される。
- オプションコマンドはNVTでのやりとりの設定変更を行う。どのオプションが使えるかをNVT同士で交渉し、使えるオプションを決定する。この交渉ではWILL、DOをやりとりする。
h2. FTP
- ファイルのやり取りをするプロトコルの一つ。ファイル転送のプロトコルは他にSMBやNFS等がある。FTPは20番・21番ポートを利用する。2つのポートを利用するのは、PIとDTP。
- データコネクションは基本的にはサーバ側から確立され、ファイル単位でのコネクションの確立が行われる。データコネクションは1ファイルごとに確立・切断される。
h3. PI
- PIのやりとりはNVT-ASCIIを使い、TELNETのラインモードでやりとりする。
- USERとPASSでユーザ認証を行う。この送信時は平文で送られるので、盗まれないように注意が必要。
- QUITコマンドで制御コネクションが切断され、データコネクションも切断される。
- ABORコマンドでデータ転送のみ中止を行う。
- PORTコマンドで自身のIPアドレスと待受ポート番号を通知し、データコネクションの確立を行う。
- PASVコマンドは、クライアント側からデータコネクションの確立を行う際に利用する。ファイアウォールの都合でサーバ側から確立ができない場合に行う。
- TYPEコマンドは、データコネクションで使用するデータタイプ(運ぶデータの形式)の指定を行う。データタイプにはASCIIとイメージの2種類がある。ASCIIは文字データを転送するときに使うタイプで、イメージタイプはデータのビット列をそのまま転送するタイプである。
- LIST、NLISTコマンドでサーバのフォルダのファイル一覧を取得できる。
- STORコマンドで、クライアントからサーバへファイルを送ることができる。(保管の意)
- RETRコマンドで、サーバからクライアントへファイルを送ることができる。(取得の意)
- ディレクトリ操作のコマンドには、MKD, RMD, CWD, CDUP, DELE, PWDなどがある。CDUPは上位のディレクトリへ移動できるコマンドだが、ログイン直後のホームディレクトリより上には移動できない。