PC-9801BXを、ダイヤルアップルータとして使う



PC-9801BXを自宅LANからインターネットへ接続するためのダイヤルアップルータ(リモートアクセスルータという言い方が正しい???)として甦らせました。

しかし、PC-9801BXは古いパソコンです。FreeBSD を載せて遊ぶにしても色々な問題があります。
例えば・・・
メモリが最大14.6MBまでしか拡張出来ません。これはもう諦めるしかありません。しかも、専用のSIMMが2MBあたり1万円くらいします。(^^;貧乏な私は、11.6MBまで拡張するのがやっとでした。
MELCOあたりから、搭載可能最大メモリ容量をアップさせるためのボードが出ているという話しも聞きますが、私はよく知りません。
また、これも大きな問題ですが、シリアルポート(RS-232C)のチップが16550互換ではなく、しょぼい8251であるために、最高速度が9600bpsしか出ません(今時9.6Kでインターネットに接続するのはかなりきついでしょう(^^;)。この通信速度の問題は、高速シリアルボードを取り付けることでなんとかなります。但し、出費痛し(^^;

というわけで・・・

以下のような処置を行いました。

(1) FreeBSD 2.2.1(98)-ALPHAから2.2.1(98)-RELEASEへのバージョンアップ
  (ここでは特に説明しません。FreeBSD(98)徹底入門(翔泳社発行)等を参考にして下さい)
(2) 高速シリアルボード(RSA-98III/S)の取り付けと、kernel再構築(patch充て)
(3) IIJ-PPPへのNAT機能の搭載(patch充て)
(4) DNS(ドメインネームサーバ)の立ち上げ
(5) client側の設定 Windows95,FreeBSD2.2.1-R

*** 参考 ***

[自宅のLAN構成] [マシン・スペック] [インストール済みパッケージ] [現在発生している問題点]



・1997年12月16日現在の自宅のLAN構成

FreeBSD(98)を載せたPC-9801BXと、Windows95を載せた自作AT互換機をEthernetのLANで接続(現在は、10BASE-Tのクロスケーブルで直結。HUBが欲しいのお。ネットワーク図は格好良いので10BASE5ライクに書いてあります(^^;)。
FreeBSD(98)のIIJ-PPPにNATパッチを充て、外のネットへのゲートウェイとしています。

ネットワーク図


・マシン・スペック

[PC-9801BX] ホスト名:ringo.shinoda.hiroshima.jp

CPU      : Intel 486SX-20MHz (NEC PC-9801BX/U2)
ODP      : I-O DATA PK-586x4(Cyrix 5x86-80MHz)
RAM      : 11.6MB(1.6MB+10MB(PC-9821A-B01))
SCSI I/F : ELECOM EIF-98SW
HDD(1)   : 270MB TEXA STATION PRO ST-260P(SCSI-2)
HDD(2)   : 202MB ELECOM EHD-200S (SCSI-1)
CD-ROM   : Panasonic LK-RC504
NIC      : ELECOM Laneed LD-98PT
COM2     : I-O DATA RSA98III/S * COM1はPC98BX標準の内蔵COMポート
CRT      : NEC PC-KD1521
OS       : FreeBSD 2.2.1(98)-RELEASE (PC98版FreeBSD徹底入門添付CDより)
         * 非常用に、NEC製MS-DOS 6.2もインストールしてあります。

[自作PC/AT互換機] ホスト名:momo.shinoda.hiroshima.jp

CPU      : Intel Pentium MMX 200MHz
M/B      : SOYO SY-5EAS (ETEQ 6618 Pentium PCI Chipset)
RAM      : 64MB (32MB X 2)
FDD      : 1.44M/720KB 2mode
SCSI I/F : Adaptec AHA-1520B
HDD(1)   : 1.2GB SCSI HDD Quantum Fireball 1280S
HDD(2)   : 1.0GB SCSI HDD Quantum Fireball 1080S
CD-ROM   : Mitsumi CRMC-FX001D
NIC      : ELECOM Laneed LD-NE20/T
SVGA     : I-O DATA GA-PG3DVX 4MB VRAM (S3 ViRGE/VX)
CRT      : SAMTRON 15" display
CASE     : Mini Tower
OS       : Windows95


・サーバ(PC98BX)へのインストール済みパッケージ

apache-1.2b7        The extremely popular Apache http server.  Very fast, very c
unzip-5.2           List, test and extract compressed files in a ZIP archive.
lynx-2.7            An alphanumeric display oriented World-Wide Web Client.
jp-perl-5.003       Pattern Extraction and Recognition Language + Japanese patch
jp-Canna-3.2.2      Kana-Kanji conversion system
jp-elvis-1.8.4      A clone of vi/ex, the standard UNIX editor, with Japanese pa
* 1997年12月16日現在、たったこれだけです。
 Cannaとelvisは、HTMLファイルを直接サーバ上で修正する時に使用しています。



・現在発生しているいろいろな問題点

・何故だか、いきなりリブートしてしまいます。これは洒落になりません

/etc/dailyが走る時や、packageのインストールをした後にいきなりリブートしてしまいます。(毎回ではありませんが)
で、運が悪いとfsckのお世話になって、いくつかファイルが行方不明になってしまいます。悲しいです。で、今は/etc/crontabのdaily処理のところをコメントアウトしてしまっています。
正確な原因はわかりませんが、多分 SCSI 関係の問題じゃないかと思います。意外にケーブル交換しただけで直ったりして・・・と思っているのですが、お金が無いので試せません。とほほ・・・

・silo overflows が発生する。

これも大体/etc/dailyが走る時なのですが、COM1(RSA-98III/S)でsilo overflowsが発生します。
その他の時にはまず発生しません。/etc/dailyはけっこうHDDにガリガリ書き込みをする重い処理のようなので、CPUがモデムのデータ受信についていけなくなってるんでしょうか?
原因はよくわかりませんが、インターネット接続の時には発生したことがないので、取りあえず原因追及はせずにほってあります。(ま、何せロースペックなマシンですから(^^;)

・iij-ppp起動後、ダイヤルを始めるまで時間がかかる。

これも原因不明です。
私の設定ミスの可能性も大ですが、natパッチを充ててからというもの、pppを起動してから、ダイヤルアップが始まるまでに2〜3分もかかるようになってしまいました。
単純に、PC98BXがとろいだけかもしれません。
ちなみに、AUTOモードで起動して待機中、外のネットワークへの接続要求が来た場合のダイヤルはすぐに行われます。つまり、ゲートウェイとして利用している分には特に問題が無いので、特に原因を調べることなくほってあります。(^^;

・NetscapeNavigatorを終了させる時、何故かダイヤルアップをしてしまう。

これは多分既知の問題なのでしょう。NOROPさんのホームページに以下のような記述があります。(私の場合は正常にデータ送受信が行われている場合でもダイヤルしてしまうので、ちょっと状況は違うのですが・・・)
WWWブラウザを終了させると、なぜかPPP接続に行ってしまう、 ということはありませんか。 TCPのコネクションは確立しているのになぜかデータを送ってこないような 場合がよくあります。しばらく通信がないのですから、回線は切断されます。 こういった状況で、WWWブラウザを終了させる(kill(1)しても同様) と、TCPコネクションをクローズさせるために、FINフラグを立てて、パケット (以下FINパケット)を送るのです。これが、回線を接続にいってしまう原因です。 このFINパケットは相手からの返事を待ちます。ところが、 新たなPPPリンクの自側アドレスは、先ほどのものとは違っているために いつまで立っても返事がきません。そこでさらにFINパケットを投げるわけです。 こうなると、FINパケットの送出が終るまで、回線は切れません。FreeBSD-2.1.5R では約10分もパケットを出し続けます。

単にアプリケーションを終了させたいだけなのに、10分も回線が接続されて しまうなんて、納得できません。そこで、フィルタのオプションを二つ足す ことにしました。synとfinrstです。 TCPコネクションはSYNパケットで始まり、FINパケット(あるいはRSTパケット) で終了します。synやfinrstをppp.conf のset dfilterやset afilterに書くことにより、 不要なダイアルや回線維持を行なわなくなります。

ということで、syn、finrstオプションの設定でどうにか出来るのかもしれませんが、よく分かりません。
一応、一旦ローカルなHTMLファイル(自分のPCのHDD上のHTMLファイル)を表示させてから終了すれば、ダイヤルアップはしないようなので、そうしています。


・NetscapeNavigatorで、Shockwaveを使ったページを表示していると、いつまでたっても自動切断してくれない。

これは多分、Shockwave表示中は、なにがしかのパケットがサーバに飛んでいるのでしょう・・・と思うのですがいかがなもんでしょう。対処の仕方は分かりません。

* 上記の問題点の解決策をご存じの方は、ぜひご連絡ください


FreeBSDで遊ぶ Powered by FreeBSD by SHINODA Masanori