2009年1月26日月曜日

Mac OS X でシリアルコンソール #2

林檎生活100: Mac OS X でシリアルコンソール #1の続き.さて,Mac OS X をシリアル端末としてつかう方法についてやっていく.(僕は,FreeBSD のインストール作業で,シリアルコンソールにつなぐための端末として使用した.)そのためには,screen というコマンドをつかうことになる.screen というコマンドは結構多機能なので,そのうちのごくごく基本的な部分について説明しようと思う.(いずれ,僕もきちんと調べて,便利なところとかを説明できたらなぁと思っている.)

接続手順はこんなかんじ.

1. シリアルケーブルで対象機器と Mac をつなぐ.

2. 次のコマンドで,シリアルポートのデバイスを調べる.(僕の場合は,/dev/tty.usbserial-A5002wiq だった.)
$ ls /dev/tty.*

3. 次のコマンドを入力して,シリアルコンソールへ接続する.(○○○の部分は,自分のシリアルポートのデバイスを入力すること.-h オプションは,スクロールバックバッファの行数で,デフォルトが100行と短いので多めにとっておいた方がいい.)
$ screen -h 65536 /dev/tty.○○○

これで,シリアルコンソールに接続される.以下,簡単な screen の使い方を説明する.

○コマンド
ctrl+a [: スクロールバックモードに入る(画面に表示された履歴を参照.vi キーバインド.esc などを押すことで終了.)
ctrl+a ctrl+\: 終了

僕は,これくらいしか使いこなせていないwwwほかにもいろいろな機能があるみたいなんだけどねぇ.まっ,これでシリアル端末として Mac を活用できると思うので,ぜひ使ってみてほしい.

2009年1月21日水曜日

FreeBSD でサーバ構築 #8

林檎生活100: FreeBSD でサーバ構築 #7の続き.今回はセカンダリ DNS サーバについての話.また,無償で使える DNS サービスである EveryDNS をセカンダリ DNS サーバとして使う方法についても説明する.

セカンダリ DNS サーバ(スレーブネームサーバとも.)というのは,バックアップや負荷分散のために設置する DNS サーバである.ドメインに対して権威を持つ DNS サーバ(プライマリ DNS サーバという.マスターネームサーバとも.)のクローンとして動作すると考えればいい.この仕組みによって,プライマリ DNS サーバに障害が発生しても,セカンダリ DNS サーバが使用されることで,名前解決ができないという状態を回避することができるようになるのだ.

じゃ,2台目の DNS サーバを構築して解決だね♪ということなのだが,実際にはプロバイダから貰っている固定 IP アドレスがひとつしかないってことがざらなので,2台も DNS サーバは立てれない.じゃー,どうするのか?友達も自宅サーバ立てていて,友達の DNS サーバにセカンダリ DNS サーバになってもらおうという方法もある.しかし,そんな友達は稀有だと思うので,林檎生活100としては,無償で使える DNS サービス EveryDNS を利用することをオススメすることにする.

さて,その利用手順は次のとおりだ.

1. ユーザ名とメールアドレス,パスワードを入力し,アカウントを作成する.



2. 独自ドメイン名(僕の場合は,legna.org になる.)で,プライマリ DNS サーバのホスト名(僕の場合は,lucifer.legna.org になる.)入力し,セカンダリ DNS サーバを作成する.



たったこれだけだねw現段階での準備はここまでで OK.実際には,プライマリ DNS サーバを構築して,そのプライマリ DNS サーバが持つゾーン情報をセカンダリ DNS サーバに転送しないことには機能しないんだけど,セカンダリ DNS サーバを作ってしまえば,プライマリ DNS サーバをいじるだけで,セカンダリ DNS サーバをいじることはなくなるので,先に紹介させていただいた.

蛇足だが,プライマリ DNS サーバが死んだら,そのサーバで動いてる Web サーバも死んでるし,ぶっちゃけセカンダリ DNS サーバなくてもいいんですけどという意見があると思う.僕もそう思う.だけど,セカンダリ DNS サーバがひとつでもないと,レジストラでドメインにDNS サーバを設定できなかったのだ.(正確には,レジストラ上では設定できたが,org ドメインの DNS サーバに反映されなかった.)ということで,セカンダリ DNS サーバが必要なのだ.

次回はやっと BIND の設定に入れそうだ♪次回にこうご期待w

2009年1月20日火曜日

FreeBSD でサーバ構築 #7

林檎生活100: FreeBSD でサーバ構築 #6の続き.今回は,独自ドメインについて.取得方法ではなくて,それがどのようにして名前解決されるのかってことについての読み物だね.

ここでは,独自ドメインを取得済みとして話を進めていく.取得していない場合は,適当なレジストラでドメインを取得してほしい.取得方法については省略.レジストラに詳しく書いてあるからね♪

さて,僕は legna.org という独自ドメインを持っていて,DNS サーバには lucifer.legna.org というホスト名をつける.DNS サーバには,www.legna.org を登録し,そのホスト名で Web サーバにアクセスできるようにする予定だとしよう.これが完成したときに,www.legna.org はどのようにして名前解決されるのだろうか?

林檎生活100: DNS の仕組みの図を参考にして考えてみてほしい.実は,図でいうところの com のネームサーバ(今回は legna.org なので org のネームサーバになるが.)のところで,追えなくなるはずだ.legna.org の DNS サーバのことを org の DNS サーバが知っていなければならないからね.

ということで,独自ドメインを取得した後に,そのドメインと DNS サーバを結びつける作業をしなきゃなんない.僕の場合は,lucifer.legna.org という DNS サーバを登録した.くわえて,ns1.everydns.net という無償のセカンダリ DNS として登録した.このセカンダリ DNS については,次回のエントリで説明する.(次回のエントリでその DNS サーバの設定方法を教えるので,とりあえずセカンダリ DNS サーバには,ns1.everydns.net を登録しておけばいいと思う.)

僕が契約しているドメインは,このような画面でネームサーバを設定する.


これで,名前解決できるようになるだろうか?実は,まだ足りないものがあるwlucifer.legna.org を引けないので,legna.org の DNS サーバの IP アドレスがわからないのだ.lucifer.legna.org というホストは,legna.org というドメインに含まれている.legna.org の DNS サーバは lucifer.legna.org である.lucifer.legna.org というホストは……,というような「鶏と卵」の問題だ.ということで,org の DNS サーバには,グルーレコードと言われる lucifer.legna.org と IP アドレスを結びつけるレコードが DNS サーバが登録されるときに一緒に登録される.(まあ,普通の A レコードだけどね.)

これで,図と同じように名前解決できるようになるはずだよね♪DNS サーバをちゃんと立ち上げればだけどwww

さて,独自ドメインがどうやって名前解決できるようになっているかわかっていただけただろうか.まあ,実際にはドメインの委譲って作業で,それをレジストラを介してやっているにすぎないんだけどね〜.次回は,今回ちょろっと出てきたセカンダリ DNS について説明しようと思う.無償のセカンダリ DNS の利用方法についても書くので,お楽しみに〜.

追記(2009年6月15日):
Interlink のドメインマネージャの画像を追加.

2009年1月19日月曜日

FreeBSD インストール用 USB メモリの作成 #3

林檎生活100: FreeBSD インストール用 USB メモリの作成 #1で作ったやつでは,それをインストールメディアとして使うことができず,ネットワークインストール用になってしまったのでその対策.

問題点は,インストール中のメディアを選択するところで,USB メモリを選択する方法がないこと.(当然なんだけどなw)ということで,USB メモリに DOS パーティションを作成し,インストールに必要なデータはそこから取得することにする.

以下,作業手順.

1. MBR を書き込む.
# fdisk -BIv /dev/da0

2. sysinstall を起動する.
# sysinstall

3. Configure>Fdisk を実行し,パーティションを64MBの FreeBSD パーティション(パーティションタイプ:165)と残容量の FAT32X パーティション(パーティションタイプ:12)の2つに分割する.さらに,W を入力し,ブートマネージャとして None を選択し,パーティション設定を反映させる.



4. FreeBSD パーティションをブート用パーティションにする.
# bsdlabel -w -B /dev/da0s1
# newfs /dev/da0s1a
# ftp ftp://ftp3.jp.FreeBSD.org/pub/FreeBSD/releases/i386/ISO-IMAGES/7.0/7.0-RELEASE-i386-bootonly.iso
# mdconfig -a -t vnode -f 7.0-RELEASE-i386-bootonly.iso -u 0
# mount_cd9660 /dev/md0 /cdrom
# mount /dev/da0s1a /mnt
# cp -Rpv /cdrom/* /mnt
# echo 'console=comconsole' >> /mnt/boot/loader.conf(注意:シリアルコンソールでインストールする場合に限る.)
# umount /mnt
# umount /cdrom
# mdconfig -d -u 0

5. FAT32X パーティションをインストールメディア用パーティションにする.
# newfs_msdos /dev/da0s2
# ftp ftp://ftp3.jp.FreeBSD.org/pub/FreeBSD/releases/i386/ISO-IMAGES/7.0/7.0-RELEASE-i386-disc1.iso
# mdconfig -a -t vnode -f 7.0-RELEASE-i386-disc1.iso -u 0
# mount_cd9660 /dev/md0 /cdrom
# mount_msdosfs /dev/da0s2 /mnt
# cp -Rpv /cdrom/* /mnt
# umount /mnt
# umount /cdrom
# mdconfig -d -u 0

以上で完成♪もしかしたら,MBR を書き込む fdisk はいらなくて,sysinstall の fdisk でブートマネージャを Standard にするだけでもいいのかもしれない.未確認なので,試してみた方はそれで動作するか教えてください.

注意することは,起動時に接続しているシリアルコンソールの種類を聞かれるので,VT100 or compatible terminal. にあたる2を入力すること.



あとは,普通のインストールと同じ.インストールメディアは,前述の通り DOS を選択すること.

これでインストールが完了すれば,シリアルコンソールから FreeBSD を操作できる環境に♪と思ったら,そう甘くはなかった.ログインプロンプトが,シリアルコンソールに表示されないのだ.実は,loader.conf に設定しているのだけでは足りない.(ブートのときに,前半と後半があるような感覚.詳細は失念した.ブートについて調べれば,出てくる情報だと思う.)/etc/ttys を編集する必要があるのだ.

その作業手順はこちら.

1. 起動時の画面で,4を入力しシングルユーザモードに入る.



2. シェルの選択画面で enter を入力する.
Enter full pathname of shell or RETURN for /bin/sh: [enter]

3. ファイルシステムをチェックする.ファイルシステムに修復が必要なときに対話的に実行しない (-p).
# fsck -p

4. fstab に記述された (-a) UFS ファイルシステムだけ (-t ufs) をマウントする.
# mount -a -t ufs

5. /etc/ttys を vi などで,該当する行を次のように編集する.

ttyd0 "/usr/libexec/getty std.9600" dialup off secure

ttyd0 "/usr/libexec/getty std.9600" vt100 on secure

6. 再起動する.
# shutdown -r now

以上.これで,シリアルコンソールからログインできるようになる.あー,大変だった.このエントリ書いて,日曜日がなくなった気がするwww

2009年1月18日日曜日

FreeBSD のデフォルト named.conf の邦訳

今回は,FreeBSD 7.0-RELEASE にデフォルトで入っている named.conf を読んでみようと思う.調べても直接的な情報がすくない気がするし,結局 ARM で確認をとることになったから,ここに書く意味はあるのかなぁと思った♪

では,上からサクサクといこ〜.手元に,named.conf を表示しながら読み進めるといいと思う.コメントの邦訳の語調が変なのは仕様wこの語調で書いてたら楽しくなってきたので,そのままにしてるwww

まず,最初のコメントブロック.最初の行が,バージョンなどなど(バージョン管理ツールで入力された内容だね.)が表記されている.今回の named.conf は,1.26.4.1 というバージョンだった.その次の行からのコメントの内容は,次のような感じ.

\named.conf(5) と named(8) の man ページを参照してね.あと詳細なドキュメントが /usr/share/doc/bind9 にあるよ.

もし,権威あるサーバをセットアップしようとしてるなら,DNS がどう動いてるのか細かいとこまできちんと理解してからやってね.ちょっとした失敗でも,グループに影響して接続を壊したり,無駄な大量のトラフィックを発生させちゃうかも.


さて,次は options ステートメント部分だ.directory オプションは作業ディレクトリを示す.pid-file オプションはプロセス ID を記述したファイルへのパス.dump-file オプションは,サーバの内部データベースのダンプをとるときの保存先.(/var/dump/named_dump.db と設定されていて,rndc dumpdb というコマンドでダンプをとると,/var/named/var/dump/named_dump.db に保存される.謎仕様な気がするのは僕だけ?w)statistics-file オプションは,サーバの統計情報をとるときの保存先.

listen-on サブステートメントは,問い合わせを待ち受けるネットワークインタフェースを指定するためのステートメントだ.デフォルトでは,ループバックアドレスの 127.0.0.1 だけが設定されているので,自分自身からの問い合わせしか受け付けないようになっている.このサブステートメントにくっついてるコメントの意味はこんなかんじ.

ローカルリゾルバとしてしか named を使わないんだったら,これは安全なデフォルト設定だよ.named をネットワークからアクセス可能にするなら,コメントするか,適当なアドレスを設定するか,このオプションを削除してね.

listen-on-v6 サブステートメントは,IPv6 用のやつ.コメントになってる.

システム上で IPv6 を有効にしてるんだったら,ローカルリゾルバとして使うためにコメントを外してね.ネットワークからアクセス可能にするなら,適当な IPv6 アドレスか,any ってキーワードを設定してね.

disable-empty-zone オプションってのが,最近(9.4.x からだったと思う.)追加されたオプションだ.ARM 読むまで知らなかったんだけど,BIND は,Built-in Empty Zones ってのを持っていて,それらのゾーンが自動的に設定される.その自動的に設定されるのを無効にするのがこのオプション.Empty Zone てのは,NXDOMAIN(ドメインが存在しないという確認応答.)を返すような問い合わせがルートネームサーバに行かないようにするために,SOA レコードと NS レコードだけを設定した空のゾーンのことだ.つまり,Built-in Empty Zones は,NXDOMAIN を返すような問い合わせのゾーン一覧で,自動的に BIND によって設定されるようになっている.

設定ファイルでは,disable-empty-zone オプションが3つ設定されている.なぜこの3つが設定されているかは,コメントに書いてある.

これらのゾーンは,下の方で指定している empty zone でカバー済みだよ.関連する empty zone を削除したりしたら,これらの行をコメントしてね.

forward オプションは,回想の設定のためのオプション.つまり,自分で解決せずに指定した DNS サーバに解決を依頼する設定をするためのオプション.forwarders サブステートメントは,回送先の DNS サーバの IP アドレスを設定するためのステートメント.

fowarders サブステートメントに追加した際に,次の行を有効にすることで,fowarders に指定した回送先だけに問い合わせて,自分自身からの問い合わせをしないように強制できるよ.

上位プロバイダに DNS サーバを持っているなら,ここにその IP アドレスを入力して,下の行を有効にしてね.キャッシュによって得するし,インターネットの DNS トラフィックを減らすことができるよ.

query-source サブステートメントは,問い合わせで使うインタフェースとポートを指定することができる.コメントされているデフォルト設定がなぜそうなっているかについては,コメントに書いてある.

ファイアウォールがホストとその問い合わせ先のネームサーバの間にある場合,下の query-source サブステートメントのコメントを外す必要があるかもね.以前のバージョンの BIND だといつも53番ポートから問い合わせてたんだけど,バージョン8以降はランダムな非特権 UDP ポートをデフォルトで使っちゃうからね.

ここまでで,option ステートメントは終わり♪終わった直後に書いてあるコメントの意味は次のような感じ.

ローカルネームサーバとして有効にしたいなら,このサーバに問い合わせられるように /etc/resolv.conf の最初にに 127.0.0.1 を入力することを忘れないようにね./etc/rc.conf でネームサーバを有効にすることも必ずやってよね.

さて,やっと zone ステートメントの記述が出てきた.一番最初は,ルートネームサーバへのヒントファイルの設定だね.

伝統的なルートヒント機能だよ.これを使うか,下の方のスレーブゾーンを使ってね.

で,スレーブゾーンの方法がなんでいいのかがコメントで書いてあって,その後にコメントされた設定が書いてある.

ルートネームサーバのゾーンをスレーブすることはとってもいいことなんだよ.ひとつ目は,高速にローカルで名前解決できるようになるんだよ.ふたつ目は,見せかけのトラフィックをルートに送ることがなくなるんだよ.みっつ目は,ルートサーバが DDoS によって停止したりすることにたいして回復力があるんだよ.

他方では,この方法は予期しない不全状態がサーバを無能にしないように,ヒントファイルによる方法よりも監視することが必要なんだよね.多くのクライアントに供給するネームサーバは,このアプローチによって個々のホストより有益だろうね.用心して使えばね.

この方法を使うには,下のエントリのコメントを外して,上のヒントゾーンをコメントしてね.


さらに,zone の設定が続く.それぞれの意味を適当に書いといた.コメントの意味は次のとおり.

ローカルに供給される下記のゾーンは,これらのゾーンへのあらゆる問い合わせが,ネットワークから出ることやルートネームサーバにとんでいくことを防いでくれるんだよ.これにはふたつ利点がある.ひとつ目は,高速にローカルで名前解決できるようになるんだよ.ふたつ目は,見せかけのトラフィックをルートに送ることがなくなるんだよ.

localhost は,localhost.
127.in-addr.arpa は,localhost の逆引き.
255.in-addr.arpa はブロードキャストアドレスの逆引き.
0.ip6.arpa は,IPv6 の localhost の逆引き.
0.in-addr.arpa はローカルアドレスの逆引き.
10.in-addr.arpa〜168.192.in-addr.arpa は,プライベートネットワークの逆引き.
254.169.in-addr.arpa は,リンクローカルアドレスの逆引き.
2.0.192.in-addr.arpa は,TEST-NET っていう例として使う IP アドレス空間の逆引き.
18.198.in-addr.arpa と 19.198.in-addr.arpa は,ルータのベンチマークテストにつかう IP アドレス空間(知らなかった〜w)の逆引き.
240.in-addr.arpa〜254.in-addr.arpa は,IANA が予約している古い Class E の IP アドレス空間の逆引き.
1.ip6.arpa〜7.e.f.ip6.arpa は,IPv6 の未割り当てアドレス空間の逆引き.
c.f.ip6.arpa と d.f.ip6.arpa は,IPv6 のユニークローカルアドレス空間の逆引き.
8.e.f.ip6.arpa〜b.e.f.ip6.arpa は,IPv6 のリンクローカルアドレス空間の逆引き.
c.e.f.ip6.arpa〜f.e.f.ip6.arpa は,IPv6 の廃止されたサイトローカルアドレス空間の逆引き.
ip6.int は,廃止された IPv6 の逆引き.

これに続くのは,自分でゾーンを記述するときの例となるゾーン.動的更新されるゾーンと逆引き用のスレーブゾーンの設定例が書いてある.コメントはこんなかんじ.

注意:下に書いてある IP アドレスは,デモやドキュメントのための偽ものだから使っちゃダメだよ.

スレーブゾーン設定情報の例.これはスレーブになるときに便利だと思うよ.少なくとも,君のドメインのスレーブになるゾーンをつくるときにはね.君のネットワーク管理者に,返事してくれるマスターネームサーバの IP アドレスを聞いてみたら.

逆引きゾーンを含めることを忘れないようにねっ!これは,IP アドレスのバイトごとに逆順にしたものに,.INADDR.ARPA をつないだものだよ.IPv6 の場合は .IP6.ARPA だけどね.

マスターゾーンの設定を始める前に,必ず DNS と BIND がどう働くか完全に理解してよね.そこにはわかり辛い落とし穴があるかもしれないんだから.スレーブゾーンの方がたいていは簡単に設定できるよ.

注意:やみくもに下の例を有効にしちゃだめなんだからね.代わりになる現実の名前とアドレスを使ってよね.


以上.長かったなぁ.デフォルトの設定ファイルはこうなってるってことがわかっていただけたと思う.なので,FreeBSD で DNS サーバを立てるときには,このデフォルト設定ファイルを有効に使ったらいいんじゃないかな.関連ファイルとして,普通の語調で邦訳した named.conf をあげておく.

関連ファイル:
http://idisk.mac.com/takuya0301/Public/FreeBSD/named_ja.conf

参考文献:
BIND 9 Administrator Reference Manual
Paul Albitz, Cricket Liu. 第4版 DNS & BIND, オライリー・ジャパン, 2002.

2009年1月16日金曜日

kinput2.macim が Leopard で動かないわけ

kinput2.macim が Mac OS X Leopard で動かないのなんでだろうって調べてたら,至極当然の理由がわかったw

Leopard から Input Method を Carbon の Text Service Manager API から叩けなくなり,その代わりに Cocoa の Input Method Kit から叩くように変更になったからだ.kinput2.macim では Text Service Manager API を利用しているため,Leopard では動作しないというわけだ.

ソースをなんとなく眺めてみたが,僕には手を出せそうにないので諦めることにした.

参考文献:
http://homepage1.nifty.com/daemon/MachTen/sonoda/
http://www.sol.dti.ne.jp/~kikuyan/macosx/x11kotoeri.html
http://ult.riise.hiroshima-u.ac.jp/~nagato/hiki/hiki.cgi?MacOSX%CD%D1%A4%CEkterm%A4%C8kinput2

2009年1月14日水曜日

iAntiVirus をインストールしてみた

今回は,Mac OS X 用のウイルススキャンソフトウェアの iAntiVirus をインストールしてみたことについて.なんといっても,個人利用なら無償で利用できるということが嬉しい♪以前,林檎生活100: ClamXav をインストールした.で,ClamXav というウイルススキャンソフトウェアを紹介したけど,今回のが断然使い勝手がいいと思う.インタフェースがシンプルだしね.

インストール手順は次のとおり.

1. 次のサイトにアクセス.
http://www.iantivirus.com/

2. Start Free Download Now! と書かれた緑色のボタンをクリックしてダウンロード.


3. パッケージ形式のインストーラなので普通にインストール.

使い方は,画面を見て察してくださいwwwこれでもかっていうくらいシンプルなのでwわからないなぁっていう人は,参考文献にあげた Blog を参考にしてみてください.


あまりにシンプルすぎて,疑問に残ったのがスケジュールで自動スキャンを Daily 指定した場合,何時に実行されるのかということ.調べてもわからなかったので,誰かわかる人教えてください(*- -)(*_ _)一応,Daily に設定して使ってみてわかったら,ここに追記する予定.

参考文献:
Macはじめました。: Macのセキュリティ対策アプリケーション - iAntiVirus (Free Edition)

2009年1月13日火曜日

Windows 7 on VMware Fusion

え〜,Windows 7 をインストールしてた途中で熱が出て,後日インフルエンザだったことが発覚し,寝込んでた.そんで,その日に書く予定だった日記を書けなかったので,完全に乗り遅れてしまったのだwww

とりあえず,VMware Fusion の仮想マシンへのインストールについて.

実行環境は次のとおり.

MacBook (Late 2006)
OS: Mac OS X 10.5.4
CPU: 2 GHz Intel Core 2 Duo
RAM: 2 GB 667 MHz DDR2 SDRAM

VMware Fusion
Version: 2.0.1

仮想マシンは次のような設定にした.

・ディスクイメージファイルを使用してインストール
・簡易インストールを使用しない
・RAM を512MBに設定

RAM が512MBという点については,僕の環境によるものなのでご了承いただきたい.Windows Vista の推奨が1GBなので,1GBはメモリを割いた方がいいと思う.

実際に仮想マシンを起動し,インストール開始する.インストール手順などは割愛させてもらう.ウィザードに従ってインストールするだけであるし,Vista とほとんどそのウィザードは変わっていないので.

インストール時間は,30分ほど.内蔵 HDD にディスクイメージを置き,外付け HDD(FireWire 接続)に仮想マシンを作成したので,高速にインストールできたのかもしれない.

使ってみた感じは,Vista よりは軽いんじゃね?ってかんじ.XP よりは重いんじゃね?ってかんじwもうちょっとハイスペックな Mac だったら,仮想マシン上でも Windows 7 で行ける気がする.Vista に移行しないなら Windows 7 に移行することになりそうだから,それを考えると Windows 7 はいいんじゃないかなぁと思う.それに,Windows 7 が良くないと困るしwUMPC がバカ売れしてる背景からも,Windows 7 は軽くなるか,軽いバージョンを出すでしょ♪

2009年1月9日金曜日

ドライブの書き込み能力を調べる方法

システムプロファイラを起動し,ハードウェアの中のディスク作成をクリックする.-R DL に書き込めるかなどの情報を取得できる.MacBook (Late 2006) は,-R DL に書き込めないのだorzこうやって調べる方法を最近まで知らなかったので,ここに書いとく.

2009年1月8日木曜日

FreeBSD でサーバ構築 #6

林檎生活100: FreeBSD でサーバ構築 #5の続き.前回から半年くらい時間が空いてしまって申し訳ない.今回は DNS サーバについてやっていこう♪

とは言ったものの,DNS についてはいろいろと説明することが多すぎる.仕組みをすべて説明しないにしても,独自ドメインをきちんと引けるようにするには,DNS サーバの設定にはじまり,レジストラでのドメインネームのネームサーバの設定,セカンダリ DNS の設定などがある.それらの設定だけでも大変だし,それらの設定が正しいかを確認する方法なども説明しなきゃならない.また,設定の反映に時間がかかるので,正しいか間違っているかの判断をするのに時間がかかるのだ.(レジストラでの設定の反映には,数時間から数日かかるといわれている.また,セカンダリ DNS として無料のサービスを使うとなると,そのセカンダリ DNS へレコードが転送されるまでの時間もかかる.)

ということなので,今回は DNS サーバを起動することだけに焦点をしぼってやって行く.つまり,ゾーン(ドメイン名空間の一部についての完全な情報)を持たない DNS サーバを構築することになる.この DNS サーバによって名前解決を行うことができるようになる.さらに,これに独自ドメインのゾーンを追加することで,独自ドメインを引けるようになるので,そのための準備にもなる.

林檎生活100: DNS の仕組みの図の真ん中のネームサーバが,今回構築する DNS サーバに相当する.実際に,図のような名前解決を行うサーバとして稼働するはずである.

さて,前置きが長くなったが,さっそくその方法を書いていこう.

1. rc.conf に次の行を追加.これで,再起動すると自動的に named (BIND) が起動する.
named_enable="YES"

2. 再起動しない場合は,次のコマンドを打つことで,named (BIND) が起動する.
# /etc/rc.d/named start

これだけwFreeBSD の場合は,設定ファイルがある程度記述されているので,名前解決を行うサーバとして稼働させるだけなら,これだけでいい.あまりに簡単すぎて,きちんと動作しているか不安なので動作チェックをしてみよう.nslookup というコマンドを用いた動作チェックの方法は次のとおり.

1. 0.0.0.0(ゼロアドレスといい「自分のホスト」の意味になる.)の DNS サーバに google.com の名前解決をさせ,名前が解決できていることを確認する.
# nslookup google.com 0.0.0.0

2. named (BIND) を停止する.
# /etc/rc.d/named stop

3. 0.0.0.0の DNS サーバに google.com の名前解決をさせ,名前が解決できていないことを確認する.
# nslookup google.com 0.0.0.0

というかんじだ.次回は,独自ドメインがどのような仕組みで引かれるようになるかについて説明する.また,機会があれば,FreeBSD のデフォルトの設定ファイルの解説をしようかと思う.設定ファイルの説明をするためには,Empty Zone についての説明もしないとなぁ.