グローバルアドレスとプライベートアドレス,ドメイン,DNS
グローバルアドレスとプライベートアドレス
IPアドレスには,グローバルアドレスとプライベートアドレスの2種類が存在する.インターネットに直接接続されるホストには,世界で一意のグローバルアドレスが割り当てられる.グローバルアドレスは,インターネットの管理組織によって重複が防止されている.一方,組織内のLANでは,システム管理者が規定された範囲内でプライベートアドレスを割り当てることができる.プライベートアドレスとして利用可能な範囲は以下の通りである.
(プライベートアドレスの範囲)
10.0.0.0∼10.255.255.255
172.16.0.0∼172.31.255.255
192.168.0.0∼192.168.255.255
例えば,3階の内部ホストには192.168.0.?,4階の内部ホストには192.168.33.?をプライベートアドレスとして割り当てることができる.また,server1,server2,server3,ns1,ns2などのインターネット接続ホストには,グローバルアドレスとして203.0.113.?が割り当てられている.プライベートアドレスは組織内ネットワークでのみ有効であるため,インターネット通信にはNAT(Network Address Translation:プライベートアドレスとグローバルアドレスを相互変換する技術)によるアドレス変換が必要である.
ドメイン
インターネット上のホストへのアクセスには,本来IPアドレスによる指定が必要である.しかし,実際にはユーザの利便性を考慮して,www.dept.example.ac.jpのような名前でアクセスできる.この例では,wwwがホスト名であり,dept,example,ac,jpの4つがドメイン名のラベルを構成する.以下の4つのドメインが形成される.
dept.example.ac.jp
example.ac.jp
ac.jp
jp
これらのドメインは階層的な木構造を形成しており,最上位にルートドメインが配置される.ドメイン名は,ルートに向かって順に記述し,ラベル間を"."で区切る.
DNS(Domain Name System)
ホスト名とドメイン名の組み合わせにより,ネットワーク上のホストを一意に特定できる.しかし,コンピュータによる通信処理には,ホスト名とIPアドレスの相互変換が必要である.小規模なLANでは,各ホストの/etc/hostsファイル(ホスト名とIPアドレスの対応表)にテーブルを作成して管理することも可能であるが,ホストの更新時に全ホストのテーブル更新が必要となり,運用管理が煩雑になる.また,特定のホストにテーブルを集中管理させる方式も考えられるが,インターネットのような大規模ネットワークでは,サーバ負荷と情報管理の観点から現実的ではない.この課題を解決するために設計されたのがDNSである.DNSは各ドメインで分散的にホスト名を管理することで,サーバ負荷を分散できる.
ネームサーバ
DNSのサービスを提供するサーバをネームサーバと呼び,各ドメインに設置される.ネームサーバは,自身が管理するゾーンの情報のみを保持する.ゾーン(zone)とは,ドメイン名空間においてネームサーバが管理権限を持つ範囲であり,その範囲内のホスト名とIPアドレスの対応関係を含む.
ネームサーバのサービスを利用するクライアントをリゾルバという.リゾルバからの変換要求に対し,ネームサーバはまず自身のゾーン情報を検索する.該当情報が存在する場合はそれを返し,存在しない場合は他のネームサーバに問い合わせを行う.ネームサーバには,プライマリサーバとセカンダリサーバの2種類が存在する.
プライマリサーバ
ドメインのゾーン情報を保持し管理する主サーバ.自身の管理情報に関する他のネームサーバからの問い合わせに応答する.通常,ドメインには1つのプライマリサーバが設置される.セカンダリサーバ
プライマリサーバの障害発生時やアクセス集中時のバックアップとして機能する.プライマリサーバと定期的に通信を行い,ネットワーク経由でゾーン情報を同期する.
DNS関連設定ファイル
DNSサービスの代表的なソフトウェアBIND(Berkeley Internet Name Domain)の設定ファイルは,通常/etc以下に配置される.
ネームサーバ(ns1,ns2)の設定ファイル
コンフィギュレーションファイル(/etc/named.conf)
ネームサーバ起動時に最初に読み込まれ,データファイルの配置場所とファイル名を指定する.データファイル
ホスト名とIPアドレスの対応関係を記述するファイルで,ゾーンデータファイルと逆引きデータファイルが存在する.ゾーンデータファイル
ネームサーバが管理するホストについて,ホスト名からIPアドレスへの変換(正引き)を定義する.各行の先頭にホスト名,末尾に対応するIPアドレスを記述する.主なレコードタイプとして,Aレコード(ホスト名とIPアドレスの対応)とCNAMEレコード(別名の定義)がある.
host1 IN A 192.168.33.1 # host1のIPアドレスは192.168.33.1 host2 IN A 192.168.33.17 # host2のIPアドレスは192.168.33.17 ns1 IN CNAME host1 # ns1はhost1の別名逆引きデータファイル
ネームサーバが管理するホストについて,IPアドレスからホスト名への変換(逆引き)を定義する.各行の先頭にIPアドレス(ネットワーク番号は省略可能),末尾にホスト名を記述する.PTRレコードを使用する.
1 IN PTR host1.4f.dept.example.ac.jp. # 192.168.33.1の逆引き 17 IN PTR host2.4f.dept.example.ac.jp. # 192.168.33.17の逆引き
ルートキャッシュファイル(/etc/namedb/named.root)
ネームサーバが管理外ドメインの問い合わせを受信した場合,このファイルを参照して適切なサーバに問い合わせを転送する.ルートサーバ(DNSの階層構造の最上位に位置し,各トップレベルドメインのネームサーバ情報を管理するサーバ群)のIPアドレスとホスト名が記述されている.
リゾルバ(各ホスト)の設定ファイル(/etc/resolv.conf)
クライアントであるリゾルバの設定を管理する.所属するドメイン名と問い合わせ先ネームサーバのIPアドレスを指定する.複数のネームサーバを指定することが可能である.domain 4f.dept.example.ac.jp # 所属ドメイン search 4f.dept.example.ac.jp dept.example.ac.jp # ホスト名検索時に補完するドメイン nameserver 192.168.33.1 # 問い合わせ先(ns1/host1) nameserver 203.0.113.160 # 問い合わせ先(server1)