DNS 2
ドメインネームシステム委任設定

出席確認として学生証を教室後ろの入り口近くの出席用PCのリーダにタッチせよ. 出席していない回の実験レポートは提出を認めず,0点として計算されるので 注意すること.

動作確認

システム設定→ ネットワーク→ 有線→ オプション→ IPv4設定で,「方式」を「自動」にして授業ページを読める状態にせよ. 接続できない場合は教員に申し出よ.

講義

DNS (Domain Name System) における委任の仕組みを学習し,設定作業を行う.

実習

前までの実習のつづき

前回と同じIPアドレスによる接続の設定を行う.

各 pc の名前を,班番号の 2 桁表記を A とすると 各班の教卓に向かって左側から pcA1, pcA2,...,pcA4 とする.

キーボード左上のシールの番号の下2桁の数字がxx とすると,その計算機の IP アドレスを 172.17.2.xx とする.

他の情報は全てのホストで共通である. サブネットマスクは 255.255.0.0, デフォルトゲートウェイは 172.17.254.254, DNSサーバのアドレスは 172.17.2.60, として設定せよ. ここまでの設定は実習を通して変更しない.

教卓 PC の準備完了のアナウンスがあれば この状態で教卓のホスト pc001:172.17.2.60/16 への接続ができるか ping で調査せよ.また nslookup を使い,pc001.1b202.jt.u-tokai.ac.jp の名前解決ができているかどうかを 確認せよ.

実習 3.

実習 3.1 と実習 3.2 では教卓サーバの設定が変わるので 時間帯を区切って実習 3.1 と実習 3.2 を行う.

実習 3.1

実習 3.1.1 説明

班の番号の 2 桁表記を Aとする. 実習 3.1 で構成するドメインの構造を図 8.1 に示す.

実習 3.1 ドメイン図

図 8.1. 実習3.1 のドメインの構成

まず前回の実験を参考に pcA3 にネームサーバをインストールする. pcA1 と pcA3 でネームサーバを稼働させ, gA.1b202.jt.u-tokai.ac.jp ドメインを pcA1 が担当し, pcA3 が sub.gA.1b202.jt.u-tokai.ac.jp ドメインを 担当する. pcA1 は sub.gA.1b202.jt.u-tokai.ac.jp ドメインを pcA3 に委任する構成である. 1b202.jt.u-tokai.ac.jp ドメイン のサーバ (pc001) から各 pcA1 への委任設定はすでにされている.

実習 3.1.2 pcA1 の A レコード

まず,pcA1 のネームサーバの設定を行う. このネームサーバは gA.1b202.jt.u-tokai.ac.jp ドメイン を担当する.このドメインに属する pcA1, pcA2 の IP アドレスの解決ができるように正引きの設定をしなければならない.

前回同様 named.conf.local に gA.1b202.u-tokai.ac.jp ドメイン の問い合わせが来た場合の設定を追加する.

このドメインに対する 問い合わせの答えを記述するファイルを /etc/bind/db.gA とする. この場合以下の行を named.conf.local の最後に挿入すればよい.

zone "gA.1b202.jt.u-tokai.ac.jp" {
        type master;
        file "/etc/bind/db.gA";
};

図 8.2 named.conf.local

次に gA.1b202.u-tokai.ac.jp ドメイン の問い合わせがあった場合に参照されるファイル, /etc/bind/db.gA の内容を記述する. このファイルの内容は以下のようにすればよい. 172.17.2.XXX を pcA1 の IP アドレス, 172.17.2.YYY を pcA2 の IP アドレスとする.

$TTL    604800
@       IN      SOA pcA1.gA.1b202.jt.u-tokai.ac.jp. root.pcA1.gA.1b202.jt.u-tokai.ac.jp. (
                2014112401  ; Serial
                    604800  ; Refresh
                     86400  ; Retry
                   2419200  ; Expire
                    604800 ); Negative Cache TTL
;
@       IN      NS      pcA1.gA.1b202.jt.u-tokai.ac.jp.
pcA1    IN      A       172.17.2.XXX
pcA2    IN      A       172.17.2.YYY

図 8.3 db.gA 委任前

これで pcA1.gA.1b202.jt.u-tokai.ac.jp, pcA2.gA.1b202.jt.u-tokai.ac.jp の名前解決ができるはずである.pcA2 から nslookup で確認する.

nslookup には再帰解決を行う,最初に呼び出す DNS サーバを指定する機能がある. 例えば 172.17.2.60 を最初に呼び出して pcA1.gA.1b202.jt.u-tokai.ac.jp の名前解決を行うには以下のようにコマンドの最後に DNS サーバを入力する.

nslookup pcA1.gA.1b202.jt.u-tokai.ac.jp 172.17.2.60

上記コマンドの最後の DNS サーバの指定を省略すると PC に設定してある 「優先DNSサーバ」が使用されるのが基本的な仕組みである.しかに実際には 中間にキャッシュサーバーが介入するのでデバッグ中は動作がわかりにくい. デバッグ中は上記のように明示的に DNS サーバの IP アドレスを入力せよ.

明示的に指定する DNS サーバを選択すると効率的にデバッグが行える. 例えば

nslookup pcA1.gA.1b202.jt.u-tokai.ac.jp 172.17.2.60

で名前解決に失敗し,設定が間違っていることがわかった場合,

nslookup pcA1.gA.1b202.jt.u-tokai.ac.jp 172.17.2.XXX(自班のDNSサーバ)

を行うことで問題が自班のサーバにあるのか教卓にあるのかの切り分けができる. これで動作しない場合は自班サーバの設定に間違いがあるといえ, この問い合わせでは動作するのに教卓サーバを指定すると動作しないという場合は 教卓サーバの設定に問題があることが考えられる.

実習 3.1.3 pcA1 でサブドメインを管理

次に pcA1 が自分のサブドメインである sub.gA.1b202.jt.u-tokai.ac.jp ドメイン の情報を自分で管理する場合として設定する. この段階では pcA1 は sub.gA.1b202.jt.u-tokai.ac.jp ドメイン の権限の委任を行わない. これは単に A レコードを追加するだけでできる. /etc/bind/db.gA に以下の 2 行を追加するだけでよい. ホスト名はピリオドで終っていないので完全ドメイン名でないことに 注意せよ.この場合はホスト名の後ろに .gA.1b202.jt.u-tokai.ac.jp が追加される.(172.17.2.VVV はpc A3 の IP アドレス, 172.17.2.WWW は pcA4 の IP アドレス)

pcA3.sub    IN      A       172.17.2.VVV
pcA4.sub    IN      A       172.17.2.WWW

図 8.4 db.gA サブドメイン自前管理追加部分

これで pcA3.sub.gA.1b202.jt.u-tokai.ac.jp, pcA4.sub.gA.1b202.jt.u-tokai.ac.jp の名前解決ができるはずである.pcA2 から nslookup で確認せよ.nslookup は教卓サーバを明示的に指定して実行せよ.例えば pcA3.sub.gA.1b202.jt.u-tokai.ac.jp を教卓の DNS サーバを最初に問い合わせを行う DNS サーバとして検索する場合は,

nslookup pcA3.sub.gA.1b202.jt.u-tokai.ac.jp 172.17.2.60

とコマンドを入力する.失敗する場合は 172.17.2.60 の代わりに pcA1 の IP アドレスを指定して, pcA1 に最初の問い合わせを行う場合の 検索を行い,自班の DNS サーバの設定に問題が ないか確認せよ.

実習 3.1.4 pcA3 にサブドメインを委任

次に委任処理である.委任は NS レコードで行う. pcA1 の /etc/bind/db.gA ファイルの pcA3 の アドレス設定の上の行に以下の内容を追加すればよい.

sub    IN      NS      pcA3.sub.gA.1b202.jt.u-tokai.ac.jp.

図 8.5 db.gA サブドメイン委任

これで pcA1 には sub.gA.1b202.jt.u-tokai.ac.jp. を管理する権限は無くなったので /etc/bind/db.gA 内の記述から sub.gA.1b202.jt.u-tokai.ac.jp. に所属するホストの A レコードを削除する.ただし次のネームサーバに処理を依頼する ために sub.gA.1b202.jt.u-tokai.ac.jp. のネームサーバ の IP アドレスは知っている必要がある.このため pcA3.sub.gA.1b202.jt.u-tokai.ac.jp に関する A レコードだけは残さなければならない.これをグルー(接着剤)レコードと よぶ.

最後に pcA3 のネームサーバを整備すれば終わりである. これは単純な委任なしの設定である.これまでの作業を参考に 設定せよ.

ゾーンファイル名を db.sub とする場合の設定例を以下に示す.

zone "sub.gA.1b202.jt.u-tokai.ac.jp" {
        type master;
        file "/etc/bind/db.sub";
};

図 8.6 named.conf.local への追加行

$TTL    604800
@       IN      SOA pcA3.sub.gA.1b202.jt.u-tokai.ac.jp. root.pcA3.sub.gA.1b202.jt.u-tokai.ac.jp. (
                2014112401  ; Serial
                    604800  ; Refresh
                     86400  ; Retry
                   2419200  ; Expire
                    604800 ); Negative Cache TTL
;
@       IN      NS      pcA3.sub.gA.1b202.jt.u-tokai.ac.jp.
pcA3    IN      A       172.17.2.VVV
pcA4    IN      A       172.17.2.WWW

図 8.7 db.sub の例

これで pcA3.sub.gA.1b202.jt.u-tokai.ac.jp, pcA4.sub.gA.1b202.jt.u-tokai.ac.jp, の名前解決ができるはずである.pcA2 から nslookup でDNSサーバに 171.17.2.60 を指定して確認せよ. 正しく動作しない場合はDNSサーバに pcA3 のIPアドレスを指定したり pcA1 のIPアドレスを指定したりすることで どのサーバに問題があるのか問題の切り分けを行って修正せよ.

教卓の設定(実習 3.1)

参考のため,教卓の named.conf.local, db.1b202, db.17 を以下に示す. db.17 は逆引き設定のためのファイルである.各ホストの IP アドレスと ホスト名の確認に使用できる.

named.conf.local(実習1,2と同じ)

実習 3.1 用 db.1b202

実習 3.1 用 db.17

実習 3.2

実習 3.1 とは逆に図 8.1 の pcA1 と pcA3 サーバの役割を 入れ替えた図 8.2 の設定になるように 同様の実習を行え.IP アドレスの設定は変更しない.

実習 3.2 ドメイン図

図 8.8 実習3.2 のドメインの構成

教卓の設定(実習 3.2)

named.conf.local は実習 3.1 と同じ

実習 3.2 用 db.1b202

実習 3.2 用 db.17

課題

第 7 回課題「DNS委任設定」 を提出せよ.


Updated in November 21, 2014, index.html, Yamamoto Hiroshi