1年くらい前に同じような記事が話題になっていましたが、PC9801FA2が復活したので試してみました。
PC-9801のMS-DOS上のIPスタックTEENというものがありました。現在でもページはありダウンロードできます。これをダウンロードして試してみます。
TEENはシリアル(PPP)とEthernetのサポートがあり、シリアルの方を使ってみます。TEENは90年代後半にパソコン通信などでPPPを使ったIP接続を提供するようになって、それを使うために作られたようです。当時の接続は電話回線でモデムを使って行われていました。TEENではモデムを使った接続のほかにサーバーに直結で使うこともできます。
PPP以前にもシリアルを使ったIP接続はありSLIPと呼ばれていました。これは認証などの仕組みがなく非常に原始的なものでした。PPPはそれを改良したものといわれていますが、PPPで考えられた仕組みはWiFiやPPPoEなどにも引き継がれていて重要な成果だったと思います。
TEENのソースは公開されていて、中身を見るとCとアセンブラで作られています。
シリアルの接続先はVALUESTARにインストールしたFreeBSD/i386 12.2Rです。クロスケーブルで接続してあります。
PC-9801で直接ダウンロードはできないので、ダウンロードしたファイルをFreeBSDからYMODEMでPC-9801に転送して解凍しておきます。
FreeBSDでは以下のように設定します。
default:
set device /dev/cuau0
set speed 9600
in:
set ifaddr 192.168.0.200 192.168.0.201
enable proxy
enable dns
set dns 192.168.0.1
set timeout 0
パケットがEther側に転送されるように設定します。(ここ大事)
% sudo sysctl net.inet.ip.forwarding=1
TEEN.DEFの[DIAL] 100を3にします。
これでPC-9801側でTEENとTOPENを起動します。
その後にFreeBSDでpppを起動します。
% sudo /usr/sbin/ppp -auto in
DNSがうまく引けないようなのですが、www.yahoo.co.jpにpingが通りました。
TEENでは9600以上のボーレートも設定できるようですが、正式なボーレートではないため、FreeBSDで設定不可能なので使えません。
追記:
DNSサーバはpppで渡されるアドレスではなくTEEN.DEFの中の設定されているアドレスが使われているようです。
netgraph編
FreeBSDにはnetgraphというネットワークのフレームワークがあり、これでもpppサーバが作れます。netgraph自体は標準のインストールで入りますが、mpd5というpkgが必要になるのでインストールします。設定は以下のとおりです。
in:
create bundle static B1
set iface enable proxy-arp
set ipcp ranges 192.168.0.200/32 192.168.0.201/32
create link static L1 modem
# Set bundle to use
set link action bundle B1
set link no pap chap eap chap-md5
set link enable pap
# Configure modem
set modem device /dev/cuau0
set modem speed 9600
set modem watch -cd
set modem idle-script Direct
# Permit incoming calls using this link
set link enable incoming
Direct:
set $IdleResult "answer"
success
mpd.secretの中にUSERNAME/PASSWORDを入れて、mpd5を実行します。
% sudo /usr/local/sbin/mpd5 in
netgraphはたくさんのカーネルモジュールにより構成されておりmpd5を起動すると必要なカーネルモジュールがロードされます。
mpd5のpppの設定はネットを検索してもほとんど出てこなかったので、マニュアルを読むのが良さそうです。
pppコマンドはtunインターフェースを使って、netgraphはngインターフェースを使います。FreeBSD 8以前はpppdというコマンドもあったようですが、pppコマンドにマージされたようです。
TEENに対応したSNTPのクライアントがあったので試してみました。
B>SET TZ=JST-9
B>SNTPGET ntp.nict.jp
以下のページでTEEN対応のアプリケーションをまとめられてます。
PC-9801のMS-DOSでインターネット接続はTEENの他にWATTCP98というものもあったようです。WATTCP98はWATTCPを98に移植したもののようですが、すでにサイトもなくなっていて詳細は不明です。