DOSでのTCP/IP環境
Packet Driver
アプリケーション紹介
NCSA Telnet, gn, D-Mail, DOS Lynx, Caldera DR-WebSpyder, telnetd
DOS自体はTCP/IPをサポートしていませんので、WinSockのような共通的なインターフェイスなど当然提供されていません。そのため、何らかの手段でプロトコルを実装する必要があります。
その方法として、PC/AT互換機でもっとも広く持ちられているのがFTP Software社が提唱したPacket Driverによるデータリンク層のインターフェイスの上で各々のアプリケーションが自前でTCP/IPを実装するという手法で、多くのフリーウェア・シェアウェアで採用されています。
3層以上をそれぞれのアプリケーションが独自に実装するというはかなり非効率的な作業のように思えますが、Waterloo
TCPというPacket Driver上でTCP/IPを使用するためのライブラリがあり、多くのソフトウェアがこのライブラリを使用しているようです。
ここでも、Packet Driverを使用したアプリケーションを中心に紹介します。
DOS上で様々なTCP/IPアプリケーションを動かすためのPacket Driverは、通常はネットワークアダプタに添付されています。ただ、最近はIntelのEther
Express Pro 100BなどPCIバス用のものを中心に添付されていないことも少なくないようです。
しかし、Packet Driverがなくても、先に紹介したLAN Manager、Network Client for DOS、あるいはWorkgroup Connectionのいずれかがインストールされていれば、DIS_PKTというNDISドライバ上でPacket
Driverのインターフェイスを提供するドライバが使用できます。これによってLAN Manager等とTCP/IPアプリケーションが共存できるようになりますので、コンベンショナルメモリの消費量などに目をつむれば、通常のPacket
Driverを使うよりもむしろこちらのほうが都合がいいこともあります。私もWorkgroup ConnectionにDIS_PKTを組み合わせてNCSAを使っています。別立てでDIS_PKTの設定例を示しましたので参考にしてください。なお、これと同じようなドライバにODIドライバ上でPacket
Driverインターフェイスを提供するODIPKTもあります。ただし、性能はやはり純粋なPacket Driverよりも劣ります。
さて、Packet DriverもDIS_PKTもいずれもLAN環境で使用するものです。ISDNルーターなどが導入されていれば話は別ですが、通常のダイヤルアップ環境でインターネットに接続する時にはEtherPPP、DOSPPPなどを用います。これは、シリアルポートに接続されたモデムをネットワークアダプタと見立ててPacket
Driverインターフェイスを提供するPPPドライバです。これで、原理上はすべてのアプリケーションでPPPによる接続が行えるようになります。
このように、一口にPacket Driverといっても様々なものがあります。目的に適ったものを選択し、より快適な環境を構築してください。
3層以上 |
Packet Driverインターフェイスを利用するアプリケーション |
|||
データリンク |
Packet |
DIS_PKT |
ODIPKT |
EtherPPP, |
NDIS |
ODI |
|||
データリンク層 |
ethernet |
シリアルポート(モデム) |
NCSA Telnetとりあえずtelnetさえ動けば、UNIXのシェルアカウントを持っている人はそれだけで結構いろいろなことができるようになりますね。そもそもtelnet程度でしたらDOSでも十分使い物になります。
ここで紹介するのは、webブラウザのMosaicで名をはせたNCSAによるtelnetクライアントです。名前はTelnetですが、telnet実行中に同時にftpサーバーにもなることができます。またftp、finger、whois、lprなどのクライアントもパッケージに含まれており、Telnetをインストールするだけで一通りのサービスを利用できるようになりますので非常に重宝します。DOSでインターネット環境を構築する際には必須といえるでしょう。
telnetクライアントについては、大阪大学の金島氏による日本語化パッチがありますのでこれを使用しましょう。その他のクライアントはオリジナルのパッケージに添付されているものをそのまま使用します。gn
日本語対応ニュースリーダー。UNIX版もあります。添付のgnspoolと併用することによってオフラインでも使用できます。 Packet Driverの他、PC/TCPなどのプロトコルスタックにも対応しています。
D-Mail
日本語対応DOS用メールクライアント。ドキュメントは実際の設定例を交えてわかりやすく記述されています。
DOS Lynx
いわずと知れたキャラクタベースのWWWブラウザ。軽さが受けてUNIXから様々なOS用に移植されていますが、DOS版もその一つです。
残念ながら、DOS版には日本語版は存在せず、現時点では日本語版Lynxが導入されたUNIXのマシンにTelnetでログインするという方法しかないようです。Caldera DR-WebSpyder
Caldera DR-DOS(OpenDOS)用として開発されたDOSベースのWWWブラウザですが、もちろんDR-DOS以外のDOSでも使えます。特筆すべきは、Lynxと異なりグラフィックもサポートしています。
いままで紹介してきたソフトウェアと異なり、Web-SpyderはPacket Driverのインターフェイスは使用しません。ダイヤラー、TCP/IPスタック等すべて自前で持っていますので、これだけでインターネットプロバイダを経由したPPP接続ができます。LAN環境で使う場合はODIドライバを使用しますが、ほとんどのネットワークアダプタにNetWare用ドライバとして添付されていますので、よほどのことがない限りドライバに困ることはないでしょう。
日本語が使用できないという難点があるものの、インストールも簡単ですので、ぜひ一度試してみることをお勧めします。telnetd
DOS用のtelnetd。Packet Driver上で動作。他のマシンからDOSマシンに接続して、キャラクタベースのアプリケーションを実行させたりすることができるようになります。ただし、接続先のDOSマシンは英語モードでなければtelnetのクライアントには何も表示されません。
Windowsのtelnetの画面にDOSのコマンドプロンプトというのはなかなかシュールな眺めです。なんとなく怪しげで面白いのですが、私としては今一つ実用性が見出せずにいます。
何か活用法があるといいのですが。
本稿で紹介したソフトウェアの入手先一覧
ソフトウェア
概要
URL
dis_pkt NDIS上でpacket driverインターフェイスを提供 ftp://ftp.iij.ad.jp/pub/simtelnet/msdos/pktdrvr/dis_pkt9.zip DosLynx キャラクタベースのブラウザ ftp://ftp2.cc.ukans.edu/pub/WWW/DosLynx/DLX0_8A.EXE DOSPPP EtherPPPより設定が簡単 ftp://ftp.iij.ad.jp/pub/simtelnet/msdos/pktdrvr/dosppp05.zip DR-WebSpyder WWWブラウザ http://www.caldera.com/dos/html/webspy.html EtherPPP PPPドライバ(Packet Driver) ftp://ftp.iij.ad.jp/pub/network/ppp/pc/etherppp.zip gn ニュースリーダー http://nishiki.omronsoft.co.jp/%7Eyamasita/gn/ MREP メモリマップ、割り込みベクタ表示 ftp://ftp.vector.co.jp/pack/dos/hardware/mem/status/mrep103.lzh NCSA Telnet 2.3.06 NCSA Telnet(英語版・日本語化のベース) ftp://ftp.iij.ad.jp/pub/msdos-j/network/NCSAtelnet/tel2306b.zip NCSA Telnet 2.3.08 NCSA Telnet(英語版・最新バージョン) ftp://ftp.iij.ad.jp/pub/simtelnet/msdos/ncsatlnt/tel2308b.zip NCSA Telnet FAQ NCSA TelnetのFAQ ftp://ftp.iij.ad.jp/pub/simtelnet/msdos/ncsatlnt/tel-faq.txt NCSA Telnet-J NCSA Telnet日本語化パッチ ftp://ftp.ee.es.osaka-u.ac.jp/pub/DOSV/tel23bj7.lzh telnetd DOS用telnetd ftp://ftp.iij.ad.jp/pub/simtelnet/msdos/pktdrvr/telnetd.zip
Windows95などと比較すると、DOS環境での設定はやや複雑です。ここでは、LAN ManagerとNCSA Telnetを併用することを想定して、DIS_PKTとNCSA
Telnetの設定方法を紹介します。
NCSA Telnetの設定
NCSA Telnetの設定はconfig.telをエディタなどで編集して行います。設定項目は多岐に渡りますが実際に設定すべき個所はそれほど多くありません。ここではNCSA Telnetを動かすための必要最小限の設定について説明します。
なお、config.telの設定はTelnetだけでなく同梱されているすべてのクライアントに影響します。
myip=
NCSA Telnetを動かすマシンのIPアドレスを指定します。DHCPサーバーが利用できる場合やEtherPPP、DOSPPPを使用する場合はこの行を#でコメントアウトし、次のbootp=onを有効にします。
bootp=on
TCP/IPのパラメータをネットワーク上のBOOTPサーバー、もしくはDHCPサーバーから取得します。PPPドライバを使う場合もこの指定を行います。bootp=onに設定した場合は、myip、netmask、gateway、nameserverは設定する必要がなくなります。
keyfile=
キーのマッピング情報を収めたファイルの場所を指定します。NCSA Telnetをc:\ncsaにインストールした場合は、デフォルトのままでかまいません。
●DNSの設定
例えばプライマリDNSのIPアドレスが203.140.129.3、セカンダリDNSが203.140.129.4の場合はconfig.telの末尾に以下のような行を追加します。name=dns01 ; hostip=203.140.129.3
nameserver=1
name=dns02 ; hostip=203.140.129.4
nameserver=2name=で指定したdns01、dns02は便宜上つけた名前で、config.telの中で一意であればなんでもかまいません。hostipにDNSサーバーのIPアドレスを、そしてnameserver=の行を指定するとそれがDNSの設定となります。
●デフォルトゲートウェイの指定
例えば192.168.0.1をデフォルトゲートウェイとする場合は、name=gw ; hostip=192.168.0.1 ; gateway=1
のように指定します。ここでもname=で指定する名前は何でもかまいません。
●日本語版特有の設定
video=vgaに設定します。
bios=noに設定します。
kanji=name=defaultの行以降に追加します。指定できるパラメータはsjis、jis、eucです。
●セッションの設定
NCSA Telnetでは、各々の接続先ごとにリモートホストのIPアドレス、接続時のパラメータなどを設定しておくことができます。
name= でセッション名を指定し、その後に各種パラメータを指定します。パラメータは、name=defaultの行以降に記述されているすべてのパラメータを設定できます。name=sfkms1
hostip=172.16.50.11
kanji=euc上のようにconfig.telに記述しておけば、接続先の入力のところで「sfkms1」と入力するだけで漢字コードをEUCに設定し172.16.50.11のIPアドレスを持つホストに接続できます。
セッション名はNCSA Telnetの内部で各々の接続先を管理するための名前ですので、実際のホスト名とは関係ありません。config.telの中で一意であれば任意の名前を指定できます。
config.telの末尾にも例がありますので参考にしてください。
DIS_PKTの設定
DIS_PKTのドキュメントに詳細な説明がありますが、ここでも簡単にLAN Managerの場合の手順を解説しておきます。他のマイクロソフトのクライアントでもほぼ同様です。
まずはCONFIG.SYSの変更です。PROTOMAN.DOSというドライバを組み込んでいる行を探します。その直後に、NE2000.DOSのような、「いかにも」な名前のドライバを組み込んでいる行があると思いますが、それがNDISドライバです。DIS_PKTはNDISドライバ上で動作しますので、DIS_PKT9はその後にロードされるようにしなければなりません。私のLAN Manager環境では次のようになります。DEVICE=C:\LANMAN.DOS\DRIVERS\PROTMAN\PROTMAN.DOS /i:C:\LANMAN.DOS
DEVICE=C:\LANMAN.DOS\Drivers\Ethernet\XIRCOM\PE3NDIS.EXE
DEVICE=C:\LANMAN.DOS\DIS_PKT9.DOS
次にLANMAN.DOSディレクトリにあるPROTOCOL.INIを変更します。
[PROTMAN]というエントリがありますが、その次に[PKTDRV]というエントリを作成します。セクションの内容は、次のとおりです。drivername=pktdrv$ (固定)
bindings=
使用するNDISドライバ。protocol.ini中のセクション名と同じものを記述。
intvec=
割り込みベクタ。0x60〜0x7fの間で他のドライバ等と競合しないものを指定。使用されていない割り込みベクタはMREPを/Vオプションを付けて実行するなどして調べる。
これらの変更を加えた後にリブートすればPacket Driverを要求するアプリケーションが使用できるようになります。
以下、私のPROTOCOL.INIです。[PROTMAN]
DRIVERNAME = PROTMAN$
DYNAMIC = YES
PRIORITY = NETBEUI
[PKTDRV]
drivername=pktdrv$
bindings=PE3DOS_NIF ←NDISドライバのセクション名"PE3DOS_NIF"を記述
intvec=0x62
[NETBEUI_XIF]
Drivername = netbeui$
SESSIONS = 6
NCBS = 12
BINDINGS = "PE3DOS_NIF"
LANABASE = 0
[PE3DOS_NIF] ←NDISドライバのセクション名"PE3DOS_NIF"
DRIVERNAME=XIRCOM$