2008年7月20日日曜日

FreeBSD でサーバ構築 #5

林檎生活100: FreeBSD でサーバ構築 #4の続き.今回は,ネットワークの設定と時計を自動的にあわせるために,NTP の設定をやっていこう.

今回想定しているネットワークは,次のようなかんじ.うちのネットワーク構成は,林檎生活100: FreeBSD でサーバ構築 #1あたりに書いてあるので,参考にしてほしい.

ホストネーム:lucifer.legna.org
デフォルトゲートウェイ:192.168.1.1
IP アドレス:192.168.1.254
サブネットマスク:255.255.255.0
DNS:192.168.1.1(ルータ.DNS リレーでプロバイダの DNS へ中継してもらう.)

さて,実際の設定に入る前に,FreeBSD でよく使う設定ファイルの説明をしよう.

なんで設定ファイルが出てくるかとというと,前回の設定は,コマンドを1回実行すると変更しない限り,恒久的に効果を発揮するんだけど,今回の設定はそうじゃないからなんだ.たとえば,ネットワークの設定をコマンドで設定しても,再起動したら消えてしまうんだよね.だから,設定ファイルが必要なんだよね.

FreeBSD の設定ファイルというのは,rc.conf というファイルだ.フルパスは /etc/rc.conf になる.また,デフォルトの設定ファイルが,/etc/defaults/rc.conf にある.これを参考に,/etc/rc.conf を設定することになるが,絶対にデフォルトの設定ファイルを変更してはいけない.さらに,/etc/rc.d/ 以下には,たくさんの起動スクリプトが入っている.次のコマンドを打つとよくわかると思う.実際に,その起動スクリプトをひとつひとつ覚える必要はないし,僕も覚えていない.

$ ls /etc/rc.d/


ここで整理しよう.覚えてほしいことは次のことだ.

/etc/rc.conf - 設定ファイル
/etc/defaults/rc.conf - デフォルト設定ファイル
/etc/rc.d/ - 起動スクリプトディレクトリ(たくさんの起動スクリプトが入っている.)


まあ,たいしたことではないと思うので,大丈夫だと思う.気になることがあったら,コメントに書いてもらえれば,僕が答えられる範囲は答えるので.また,FreeBSD 用の日本語マニュアルを作るプロジェクト日本語マニュアル検索を活用しよう♪ rc.conf についてのマニュアルもあるので,ためしに検索してみるといいと思う.もちろん,英語が大丈夫であれば,次のように FreeBSD のマニュアルを直接引いてもらってかまわない.

$ man rc.conf


じゃあ,早速設定ファイルをいじりたいんだけど,もうひとつ説明しておかなければならないことがある.FreeBSD には,だいたい2つくらいのエディタしかないことだ.(ed,cat,リダイレクトなどは除外するってことでw)それは,vi (nvi) と ee だ.前者は知っている人もいるかもしれないが,おそらく後者は FreeBSD だけに存在するエディタなので,知ってたらもう僕の Blog 読む必要ないじゃんってことになってしまうw

vi 使いの僕としては,vi をオススメしたいところだけど,とまどうこと間違いなしなので,ここでは解説しないw参考文献にあげた「入門vi」を読んでみてほしい.入門の解説は,ググってもでてくると思うしw

ということで,ee を使ってみてね.Mac のテキストエディットや Windows のメモ帳が使いこなせれば使えると思うので♪起動するコマンドはこんな感じ.

$ ee ファイル名


/etc/rc.conf を編集するならこう.

$ ee /etc/rc.conf


んーあとは,テキストエディットとかメモ帳とほぼ同じ.終了とか保存は,esc か ctrl+[ で出てくるメニューで選択するかんじ.メニューが出ていない状態から,esc->a->b の順で入力すれば,保存しないで終了できる.esc->a->a の順で入力すれば,保存して終了できる.メニューとかの意味については,日本語マニュアル検索か man コマンドを使おう♪(丸投げw)

ふう,とりあえず,事前準備完了ってとこかなぁ.では,ネットワーク設定と FreeBSD のアップデート, NTP の設定をやろう.

1. ネットワーク設定
1.1. /etc/rc.conf につぎの内容を追記する.おそらく,インストール時に設定したキー配列の情報が自動的に記述されていると思う.US 配列なら keymap="us.iso" となっているし,JIS 配列なら keymap="jp.106" となっているはずだ.また,# から始まる行はコメントなので気にしなくていいし,必要であれば自分でコメントを記述しよう.

hostname="lucifer.legna.org"
ifconfig_em0="inet 192.168.1.254"
defaultrouter="192.168.1.1"


1.2. 再起動する.同じ内容をコマンドで設定してもいいんだけど,設定が正しいことを確認するため再起動しよう.もちろん,再起動が重大な影響を及ぼす環境では,コマンドで設定するんだけどね.

1.3. ping コマンドでネットワークがつながっていることを確認する.c オブションはパケットを送信する回数.指定しないと ctrl+c を入力するまで,ずーっと送り続けることになるので注意.

$ ping -c 1 192.168.1.1(ルータへの ping が通るか.)
.
.
.
1 packets transmitted, 1 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 2.869/2.869/2.869/0.000 ms(時間は環境によって変わるから無視して OK.)
$ ping -c 1 66.249.89.104(www.google.com の IP アドレスへの ping が通るか.)
.
.
.
1 packets transmitted, 1 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 18.071/18.071/18.071/0.000 ms(時間は環境によって変わるから無視して OK.)
$


1.4. DNS を設定する.ここで,/etc/resolv.conf という設定ファイルがでてくる.名前解決のための設定を記述するファイルだ.初期状態では生成されていないので注意.エディタで設定ファイルを記述し, /etc/resolv.conf というファイルを保存すれば OK.記述内容は次のようにする.

nameserver 192.168.1.1


1.5. ping コマンドで名前が解決できていることを確認する.

$ ping -c 1 www.google.com(www.google.com への ping が通るか.)
.
.
.
1 packets transmitted, 1 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 21.473/21.473/21.473/0.000 ms(時間は環境によって変わるから無視して OK.)
$


2. FreeBSD をアップデートする.
2.1. アップデートに必要なファイルをとってくる.
# freebsd-update fetch


2.2. インストールする.
# freebsd-update install


2.3. 再起動する.

3. NTP 設定
3.1. /etc/rc.conf につぎの内容を追記する.

ntpdate_enable="YES"(起動時に時計をあわせる.)
ntpd_enable="YES"(NTP サーバを起動し,定期的に時計をあわせる.)


3.2. ntpd の設定ファイル./etc/ntp.conf に NTP サーバをつぎのように記述する.ここでは,負荷分散のために Ring Server Project の NTP サーバを指定している.

server ntp0.ring.gr.jp
server ntp1.ring.gr.jp
server ntp2.ring.gr.jp


3.3. 再起動する.
3.4. NTP サーバを参照しているかチェックする.実際は,サーバ名と IP アドレスが違っているはずだけど,こんな雰囲気になっていれば OK.

$ ntpq -p
.
.
.
ring.aist.go.jp 202.234.64.222 ...
ring.atr.jp 133.186.254.117 ...
ring.sakura.ad. 113.170.74.161 ...
$


以上で設定完了♪次回は,DNS サーバの立ち上げかなぁ.

追記(2008年7月27日):
コマンドラインからサーバを起動/再起動/停止/ステータスを確認する方法.

・起動
# /etc/rc.d/ntpd start

・再起動
# /etc/rc.d/ntpd restart

・停止
# /etc/rc.d/ntpd stop

・ステータスを確認
# /etc/rc.d/ntpd status

追記(2008年12月27日):
FreeBSD のアップデートについて追記.

参考文献:
FreeBSD 用の日本語マニュアルを作るプロジェクト
Michael Urban, Brian Tiemann.標準FreeBSD リファレンス, インプレス, 2002.
Linda Lamb, Arnold Robbins. 入門vi, オライリー・ジャパン, 2002.

0 件のコメント: