インターネットに接続している計算機を識別するのはIPアドレスであるが、 人間がこれを暗記するのは困難である。実際には可読性の高い ホスト名を付与し、ホスト名をIPアドレスに変換する仕組みを用いる。 ホスト名/ドメイン名 をIPアドレスに変換する、あるいは逆に IPアドレスをホスト名に変換する機構をDNS(Domain Name System) という。
djbで固めるインターネットサービスPart3/Part4を参照し進める。
先に我々がインストールしたWebサーバを独自ドメイン名で運用することを 目指す。
cvs -d :pserver:anonymous@yatex.org:/djbdns co -r extension djbdns
cd djbdns
vi conf-home
conf-home を /var/djbdns に変える
vi conf-cc
gcc を cc に変える
vi conf-ld
gcc を cc に変える
sudo make setup check
sudo pw groupadd dns
sudo pw useradd tinydns -d /var/dns -g dns
sudo pw useradd dnslog -d /var/dns -g dns
sudo /var/djbdns/bin/tinydns-conf tinydns dnslog /var/tinydns 172.19.5.xxx
以下のように作業する。
sudo mkdir /var/service sudo vi /etc/rc.local
追加する。
if [ -x /usr/local/bin/svscanboot ]; then sh -cf '/usr/local/bin/svscanboot &'; echo -n ' svscan' fi
ESC ZZで保存・終了後作業続行。rc.local
ファイルは次回ブート以後の起動設定。今回起動するには直接
コマンドラインから呼び出す。
sudo sh -cf '/usr/local/bin/svscanboot &'
その名前のIPv4レコードを記録する
その名前のIPv6レコードを記録する
IPアドレスの逆引き名に対応するIPアドレスを記録する
そのドメインのネームサーバを記録する
その名前を別名として登録し、本名を記録する
任意の値を記録する
qm200.is.koeki-u.ac.jp
というホスト名を考える。
この名前はis.koeki-u.ac.jp
ドメインに属している(例外あり)。
is.koeki-u.ac.jp
ドメインに qm200 というエントリを作り
そのIPアドレス 172.19.5.200 をAレコードとして登録する。
逆引きのレコードは
200.5.19.172.in-addr.arpa
ドメインのPTRレコードとして参照される。 したがって、172.19.5.200 の逆引き登録をするためには 5.19.172.in-addr.arpa というDNSドメインを作成しなければならない。ドメイン/ホスト名に登録されたレコードが参照できるかを調べるために hostコマンドを利用する。たんにホスト名からIPアドレスを引くために主に 利用する。
host qm200.is.koeki-u.ac.jp qm200.is.koeki-u.ac.jp has address 172.19.5.200 host 172.19.5.200 200.5.19.172.in-addr.arpa domain name pointer qm200.is.koeki-u.ac.jp.
hostコマンドはデフォルトでは、ホスト名を指定するとAレコード、 IPアドレスを指定すると逆引きドメインのPTRレコードを引きその 結果を出力する。
Aレコード、PTRレコード以外のレコードを引きたいときは、-t
オプションでレコード名を指定する
たとえば、foo.is.koeki-u.ac.jp という新規ドメインを立ち上げたいときは 以下のとおりに作業を進める。
cd /var/tinydns sudo -Hs (スーパーユーザになる) ln -s /var/tinydns /service (tinydnsの起動) svstat /service/tinydns (確認) /service/tinydns: up (pid 75179) 42 seconds cd root (DNSデータベースディレクトリへ) ./add-ns foo.is.koeki-u.ac.jp 172.19.5.x make (データ追加の反映) host -t ns foo.is.koeki-u.ac.jp 172.19.5.x (確認) Using domain server: Name: 172.19.5.x Address: 172.19.5.x#53 Aliases: foo.is.koeki-u.ac.jp name server a.ns.foo.is.koeki-u.ac.jp. host -t a a.ns.foo.is.koeki-u.ac.jp 172.19.5.x (確認) Using domain server: Name: 172.19.5.x Address: 172.19.5.x#53 Aliases: a.ns.foo.is.koeki-u.ac.jp has address 172.19.5.x
親ドメインに含まれるサブドメイン名のネームサーバを、別の (つまりこれから自分が管理する)サーバに行なわせることを ドメインの権限委譲という。権限委譲が正常に行なわれたあとは 自分のサブドメイン内に任意のホスト名を登録できる。
tinydnsでホスト名(に対するAレコード)を追加するには
add-host
または add-alias
コマンドを利用する。
add-host fqdn IP.add.re.ss
fqdnホスト名のAレコードに IP.add.re.ss を登録すると同時に ss.re.add.IP.in-addr.arpa. の PTRレコード(逆引きレコード)に fqdn を登録する。
add-host
は、あるIPアドレスに対応する本名となるホスト名を
登録するときに用いる
add-alias fqdn IP.add.re.ss
fqdnホスト名のAレコードに IP.add.re.ss を登録する。逆引きレコードは登録しない。
add-alias
は、あるIPアドレスに対応する
別名となるホスト名を登録するときに用いる
自分の管理するWebサーバに別名を付けよう。ここでは
www.自分のドメイン.is.koeki-u.ac.jp
という名前を付ける(本名は既に
qm2xx.is.koeki-u.ac.jp
という名前が付いている)。
./add-alias www.foo.is.koeki-u.ac.jp 172.19.5.x make (追加データの反映)
simeで確認してみよう。
sime% host www.foo.is.koeki-u.ac.jp
www.foo.is.koeki-u.ac.jp has address 172.19.5.x