トップ > 興味のあること > コンピュータ > ソフトウェア > FreeBSD

2000年以前のFreeBSD

1998年4月26日

サーバーとして使っているFreeBSDにsambaを入れると、

  • LAN上のWindows 95クライアント起動時
  • ネットワークコンピュータのブラウズ時

にiij-pppのダイヤルアップが始まってしまう。 ログを見ると、外部のDNSを参照にいっているようだ。 一応ローカルでDNSサーバーは動かしているし、 そいつを参照しているはずなのだが?

ヤマハのFAQページを見たら原因がわかったような気がする。 ようするに、NetBIOSが名前解決にDNSを使うためということらしい。 lmhostsよりも先にWINSやブロードキャストを使うともある。 したがってlmhostsの記述に#PREを加えて、 NetBIOSの名前キャッシュにロードさせておけばいいようだ。

1998年11月6日

ニュースサーバーを立ち上げる。 使ったソフトはinn 2.1。手順としては、まず

tar zxvf inn-2.1.tar.gz
cd inn-2.1
./configure
make
su
make install

でインストール。ついで

cd site
vi inn.conf
vi nnrp.asccess
su
make install-config

でサーバーの設定と、リーダーに対するアクセス許可を出す。

vi /etc/syslog.conf
cd /usr/local/news/log/
touch news.crit news.err news.notice
kill -HUP [syslog.id]

では、ログファイルの設定を行う。 あとはローカルのニュースグループを、

cd /usr/local/news/db
vi active
/usr/local/news/bin/makehistory -o

で作っておく。場合によっては

vi /etc/inetd.conf
kill -HUP [inetd]

が必要かもしれない。起動は

/usr/local/news/bin/rc.news

で行い、

/usr/local/news/bin/ctlinnd mode
telnet localhost nntp

などで動作を確認する。

1998年11月7日

ISPとニュースをやりとりするため、innを止めてleafnodeにする。 FreeBSD 2.2.7Rのportsに入っていたので、 これをそのまま使おうと思ったら何か変である。 どうも、Makefileの中でPREFIXを定義していないようだ。 そこだけ手を加えて、あとは問題なくインストール。

ドキュメントに従ってfetchを実行しようとしたら、 実は既存のコマンドとぶつかるようだ。 変更された名前を使って、fetch-news -vで確認する。 古いアーティクルを削除するためにtexpireを crontabあたりで実行する必要があるのだが、 購読しているグループが少ないのでとりあえず使わないで様子を見ることにする。

ISPとのやりとりを自動化するため、シェルスクリプトを作ってみた。

#!/bin/sh
if ppp -background hiho
then
  /sbin/ping -c 5 eric.nc.u-tokyo.ac.jp
  /usr/sbin/ntpdate eric.nc.u-tokyo.ac.jp
  /usr/local/sbin/fetch-news -v
  /usr/sbin/pppctl /var/run/internet quit all
else
  echo cannot connect to Hi-Ho.
fi

である。 IIJ-pppで接続した後、タイムサーバーで時刻を合わせる。 pingを打っているのは、念のためだ。 iij-pppでダイヤルアップ接続すると、 最初のパケットがいくつか行方不明になるのだ。 どこか設定を間違えているだろう。 ついでfetch-newsを実行。 で、pppの接続を切断する。 /var/run/internetに関しては、jman pppを参照した。

これを適当な名前で作成した後、 /etc/daily.localの中で実行すればいい。 はず。

2000年2月14日

とある経緯で、小学校の情報教育を手伝うことになった。 まあ、WindowsやATOKの操作を教えるくらいなのだが。

で、そこではケーブルモデムでインターネットに常時接続し、 教師用PCのWindows 98でproxyを動かしている。 児童側のPCからは、教師用PCを経由してWebにアクセスするわけだ。 これでも動いていはいるのだが、 Windows 98にサーバーとしての動作を要求するのは気持ち悪い。 それに、proxyプログラムはキャッシュが効かないようだ。

幸か不幸か、我が家にはFMV-466Dが1台、眠っていた。 そこでこいつにFreeBSDを入れ、 ゲートウェイにしたてあげてproxyサーバーにすることにした。 VLバスにBusLogicのSCSIホストアダプタと、 4年くらい前の3.5インチフルハイト2GB SCSI HDという組み合わせである。 グラフィックはCL-54xxだったような気がするが、 どうせ使わないので無視。 そのへんに落ちていた、NE2000コンパチのLANボードを2枚差す。 いちどMS-DOSをインストールして、 MS-DOSベースのユーティリティでI/OアドレスとIRQを設定。 どのFDがどのボードに付属していたのかわからなくなっているので、 かなり手間を喰うと予想していたのだが、 なんといずれも最初に試したもので正解。幸先よし。

さて、FreeBSD 3.4のインストールである。 このマシンにはCD-ROMドライブがないのだが、 FreeBSDはネットワーク越しにインストールできる。 日本の公開サーバーから、 直接インストールするなんてえのも簡単だ。 正確に測ってはいないが、 3時間もかからずにインストールは終わったような気がする。 こんなときは128kbpsといえども、 繋ぎっぱなしの専用線はありがたい。 おまけにDHCPをサポートしているので、 ほとんど設定らしい設定もいらない。 HDのパーティショニングで悩むくらいだ。 あ、もちろん、自宅のLAN内にはDHCPサーバーがいる。

あとは2枚目のLANボードを、 お決まりの192.168.1.0/255.255.255.0のアドレスに決め打ち。 kernelは必要最小限の機能にしたうえで再コンパイル。 いやーwdデバイスを使わないシステムというのは、久しぶりだ。 ありがたいことにこのPC、 キーボードを抜いておいても表示が出るだけでそのままブートする。 いったんネットワークにつなげてしまえば、 本体だけでディスプレイもキーボードもマウスも不要なのだ。 ついでsquidとdelgateをインストールすれば、 proxyサーバーのできあがりである。 自宅でのテストは、うまくいった。 あとは実際の現場で、 複数クライアントからのリクエストをきちんと処理できるかどうかだ。 あれ、IP Forwardingは止めたっけかなあ……。

2000年2月18日

Proxyサーバーを何日か運用してみた。 20台程度のクライアントが散発的にWebを見る程度なら問題ないようだ。 486DX2/66MHzのPCなのに、がんばっているなあ。

2000年3月19日

何日か運用していると、proxyサーバーが止る。 それだけではなく、外部からのアクセスも不能になる。 どうやら、 OSが動いたままの状態でDHCPによりIPアドレスが切り替わると、 そのままNICが止ってしまうようだ。だいたい30分おきに

Mar 20 17:31:59 xxxxxx dhclient: New Broadcast Address: 210.xxx.xxx.xxx
Mar 20 17:31:59 xxxxxx dhclient: New Subnet Mask for ed0: 255.xxx.xxx.xxx

というメッセージが/var/log/messagesに残っている。 ただ、 これが必ずしもIPアドレスの切り替えを意味しているわけではなさそうだ。 1時間ごとにifconfig -aの結果をメールすると、ある程度は順にメールが届く。

もともとNICは家でほこりをかぶっていたNE2000互換の怪しい代物なので、 無理もない。 ifconfigでdownしてからupすると動くかどうか、なんてものである。 不本意ながら、毎日7:00にリブートすることで対処している。

2000年4月9日

ThinkPad 240に、PAOをインストールした。 最初はお約束通りPCカード関係が動かなかったが、 kernelがPAO用になっていなかったようだ。 原因は不明だが、FAQにあるくらいなので、よくあることなのだろう。 ちゃんとハイバネーションまで動作するのに驚いた。

2000年6月28日

小学校に設置したproxyサーバーだが、 NICを3C509に変えても同じ状況だった。 いくらなんでも毎朝リブートではなさけないので、 一度dhclientのプロセスを止めて再起動するように変更した。 ここのところ、 ISPから提供されるIPアドレスはほとんど変わらないこともあり、 安定した運用が可能になっている。