注意: この文書はかなり以前に書かれたものなので、 いまどきの Linux 環境にはあてはまらない箇所があります。 (JF Project)
これは Linux の IPX-HOWTO です。この他に Linux の NET-2-HOWTO も併せて 読む必要があります。
ipxbridge
ncpfs
Linux カーネルは他の Unix ライクなオペレーティングシステムに比べて完全に 新しいネットワークの実装をしています。 カーネルのネットワークソフトの開発に新鮮なアプローチを採用することに よって、TCP/IP 以外のプロトコルをサポートすることが可能になりました。 IPX プロトコルはそういったプロトコルの一つです。
現在のところ、Linux カーネルは IPX プロトコルだけをサポートしています。 このドキュメントの中で触れられている、他のソフトウエアではサポートされている IPX/RIP, SAP, NCP プロトコルは、Linux カーネルではまだサポートされていません。
IPX 機能のオリジナルの開発者は Alan Cox <ialan@iifeak.swan.ac.uk> であり、Greg Page <greg@caldera.com> によって拡張されました。
私は Linux のネットワークソフトウエアの全てに関して知っているわけでは ありませんし、また知ることも不可能です。 このドキュメントが誤りを含んでいる可能性があることを許諾し、念頭に おいてください。より正確で詳細な情報に関しては、このドキュメントに 記されているいろいろなソフトウエアに含まれている README ファイルを 参照してください。私はできる限りこのドキュメントを誤りの無い、 最新のものにし続けるつもりです。また、対象にしているソフトウエアの バージョンは、このドキュメントを書いている時点のものです。
(JF:以下の URL は 2001年10月時点のものに一部変更しています)
このドキュメントではあなたが、正しいネットワークオプションを選択した Linux カーネルの再構築方法、基本的なネットワークツール (ifconfig, route など) の使い方をすでに知っていることを前提にしています。もしこれらについて 十分な知識がない場合には、NET-2-HOWTO を先に読んでください。 このドキュメントは、http://sunsite.unc.edu/mdw/HOWTO/NET-2-HOWTO.html からたどることもできます。
(JF: NET-2-HOWTO は現在 obsolete です。 Net-HOWTO か Linux Networking-HOWTO の日本語訳 をご覧ください)
その他の有益な Linux HOWTOドキュメント:
http://www.linuxdoc.org/HOWTO/Ethernet-HOWTO.html ( 日本語訳) は、イーサネットの設定方法について詳しく書かれたドキュメントです。
http://www.linuxdoc.org/HOWTO/PPP-HOWTO/index.html ( 日本語訳) は、 バージョン 2.2.0d の Linux PPP 機能で利用できる IPX 機能に関して記述されて います。
もしあなたが持っているこのドキュメントが、2ヶ月以上前のバージョン ならば、新しいバージョンを入手することを強くお奨めします。 Linux のネットワークサポートは非常に速い速度で拡張/変化しているため、 このドキュメントも相当頻繁に書き換えられています。このドキュメントの 最新の版は以下の場所から anonymous ftp で入手することができます。
sunsite.unc.edu では /pub/Linux/docs/HOWTO/IPX-HOWTO または: /pub/Linux/docs/HOWTO/other-formats/IPX-HOWTO{-html.tar,ps,dvi}.gz
Linux Document Project の Web サーバから World Wide Web (WWW) でアクセスする 場合には http://www.linuxdoc.org/ のページ: IPX-HOWTO http://www.linuxdoc.org/HOWTO/IPX-HOWTO.html または私のディレクトリ <94004531@postoffice.csu.edu.au>から。
また、次のニュースグループにも時々ポストされています。 newsgroups: comp.os.linux.networking, comp.os.linux.answers and news.answers
このドキュメントに関するコメントや更新や提案を私宛に送ってください。 <94004531@postoffice.csu.edu.au> すばやくフィードバックをもらえれば、すばやくドキュメントを訂正/更新 することができます。私は最近ほとんどニュースを読んでいませんので、 なにか問題を見つけたら直接私宛に電子メイルを送ってください。
このドキュメントの中では「クライアント」と「サーバ」という用語が 頻繁にでてきます。このドキュメントの中ではこれらの用語を通常使われる 特殊な意味ではなく、以下のように、少し一般化した定義をします。
いろいろなサービスやデータを得ることを目的として、アクションや 接続の要求をおこなうマシンやプログラム
複数のリモートマシンからの接続を受け付け、それらに対して サービスやデータを提供するマシンやプログラム
この定義にしてもたいして信頼できるものではないですが、SLIP や PPP など、 真の意味でのクライアント/サーバの区別がない終端同士を区別することが できます。
その他の用語:
Internet Packet eXchange の略。Novell によって、Netware(TM) 製品の インターネットサポートのために提供されている。IPX プロトコルは TCP/IP における IP プロトコルと同様の機能を果たす。
特定の IPX ネットワークをユニークに識別するのに使われる番号。 通常 0x23a91002 のように、16進表記で記述される。
仮想的な IPX ネットワーク。物理的なネットワークに直接対応しないという 意味において仮想的である。 特定の IPX ホストを識別、アドレッシングするために使われる。 一般的には、ファイルサーバのように複数の物理 IPX ネットワークに またがって存在するホストに対して意味がある。 アドレスは物理IPXネットワークと同じ形式。
Routing Information Protocol の略。 IPX ネットワークにおいて、ネットワーク経路情報を自動的に伝搬させる のに使われるプロトコル。TCP/IP における RIP プロトコルと同様の機能を 果たす。
NetWare Core Protocol の略。 NetWare 製品のために Novell によって開発されたネットワークファイル システムプロトコル。TCP/IP における NFS と同様の機能。
Service Advertisement Protocol の略。 Netware 環境において、ネットワークサービスを通知するために Novell が設計したプロトコル。
メディアアクセス層において物理ネットワーク中でホストをユニークに 識別するための番号。イーサネットは一般に ':' で区切られた 6個の16進数で表記される。例) 00:60:8C:C3:3C:0F
パケットが目的地に達するときに通過する経路のこと
/proc ファイルシステムの下には、Linux の IPX 機能に関係するファイル類が たくさん存在します。以下の通り:
このファイルには、そのマシンで設定されている IPX インターフェースに 関する情報がはいっています。コマンドによって手動で設定されたもの と、自動的に検出され設定されたものの両方が含まれます。
このファイルには IPX ルーティングテーブル中に存在するルート情報が はいっています。コマンドによって手動で付加されたものと、 IPX ルーティングデーモンによって自動的に付加されたものの両方が 含まれています。
このファイルにはそのマシン上で使われるためにオープンされている IPX ソケットのリストがはいっています。
Caldera Incorporated の Greg Page <greg@caldera.com> は IPX を設定するためのツール一式を書き、Linux カーネルの IPX 機能を拡張しました。
このカーネルの拡張によって、Linux は完全な形での IPX ブリッジまたは IPX ルーターとしての機能をもつことができます。この IPX サポート拡張 機能はすでに主流のカーネルに反映されていますので、恐らくあなたは すでにこの機能を持ったカーネルを使っているでしょう。
このネットワーク設定ツールにを使って、あなたのネットワーク デバイスで IPX を利用できるように設定したり、IPX ルーティングを制御したり することができます。この Linux IPX ネットワークツールは Greg のサイトから 直接ダウンロードできます。 ftp.caldera.com です。 <ftp://ftp.caldera.com/pub/ipx>.
このコマンドはネットワークデバイスに対して手動で IPX 機能の 付加・削除・チェックをおこなうために使われます。通常、ネットワーク デバイスは eth0 などのイーサネットデバイスでしょう。少なくとも ひとつの IPX インターフェースを -p フラグで primary インターフェース として 指定する必要があります。例えばイーサネットデバイス eth0 で IPX 機能を 使い、IEEE 802.2 フレームタイプで、IPX ネットワークアドレスを 39ab0222 とするならば、以下のような指定になります :
# ipx_interface add -p eth0 802.2 0x39ab0222
このコマンドはインターフェースの設定/プライマリーインターフェース の設定を自動的におこなうかどうかを指定します。 --auto_interface オプションで新しいネットワークデバイスを自動 設定するかどうかを制御します。--auto_primary オプションでIPX ソフトウエアが自動的に primary インターフェースを選択するかどうか を制御します。 両方とも自動でおこなう際の標準的なコマンドラインの例は:
# ipx_configure --auto_interface=on --auto_primary=on
このコマンドはIPXインターナルネットワークアドレスを設定したり、 解除したりするために使われます。インターナルネットワークアドレスは 省略可能ですが、このコマンドで設定されたインターフェースは常に primary インターフェースとなります。IPX ネットワークアドレス ab000000、 IPX ノード 1 に設定するためのコマンドラインの例は :
# ipx_internal_net add 0xab000000 1
このコマンドは IPX ルーティングテーブルを手動で書き換えるために 使われます。例えば IPX ネットワーク 39ab0222 に到達するために IPX ネットワーク 39ab0108 上のノード番号 00608CC33C0F を経由するルート をテーブルに付加するには以下のコマンドを使います:
# ipx_route add 0x39ab0222 0x39ab0108 0x00608CC33C0F
たくさんの IPX セグメントが存在し、それらの間をネットワークで接続 しなければならない場合には、ルータが必要になります。Novell 環境では 二つの情報がネットワーク間で伝搬される必要があります。Novell RIP プロトコルで伝搬されるネットワークルーティング情報と、Novell SAP プロトコルで伝搬されるサービス通知情報です。ほとんどの状況において、 使い物になるためにはすべてのルータはこれら両方のプロトコルをサポート しなければなりません。
Linux はこれら両方のプロトコルをサポートしています。また、Novell に準拠した ルータとして機能させる事もとても簡単です。
Linux カーネルの IPX サポート機能は実際には IPX ルーティングテーブルに 記述されたルールに基づいて IPX パケットをインターフェース間でフォワード することで管理しています。IPX ルーティングテーブルを正しく構成するため、 またネットワークの変更のステータスを反映するための情報を周期的に アップデートするために、Linux にも Novell の RIP に相当するものが必要です。
"NCP Server" の章で述べられている lwared パッケージには、Novell の RIP デーモンと、Novell の SAP デーモンを実現したソフトウエアが含まれています。 ftp.ists.pwr.wroc.pl にも同様のものがあります。
<ftp://ftp.ists.pwr.wroc.pl/pub/linux/ipx/> には便利なデーモンが 存在します。
Linux マシンをルータとして機能させるために設定するのはとても簡単です。 以下の手順です:
次のような単純なネットワークを考えます:
IPX Addr: 0x01000000 802.2
|--------------------------|
|
\_________________________
\ Linux Router
IPX Addr: 0x02000000 802.2 \
|--------------------------| \ eth0/-----------\
| \--====| |
\_________________________ | IPX route |
\ eth1| Table |
IPX Addr: 0x02000000 etherII \----====| ^ |
|--------------------------| | | |
| eth2| IPXd |
\______________________________/====| |
| SAPd |
IPX Addr: 0x02000000 etherII eth3| |
|--------------------------| /====| |
| | \___________/
\______________________________/
上のようなネットワークに対する設定は例えば以下の通りです:
# ipx_interface add eth0 802.2 0x0100000000
# ipx_interface add eth0 802.2 0x0200000000
# ipx_interface add eth0 etherii 0x0300000000
# ipx_interface add eth0 etherii 0x0400000000
# ipxripd
# ipxsapd
しばらく待ってから /proc/net/ipx_route ファイルを見てください。 あなたの設定したネットワーク設定と、 ネットワーク中の他のルータから得られた IPX ルートの情報が入っている はずです。
IP と IPX プロトコルが混在するネットワークや、Linux マシンからネットワーク 上の Novell ファイルサーバのデータをアクセスしたい場合にはどうすれば いいでしょうか。このような目的のために Novell は NFS サーバを提供しています が、小さな会社や、ごく少数の人しかこのような目的に興味を示さない場合など には、この商用パッケージのコストが認められるかどうか、難しいものが あります。
Volker Lendecke <lendecke@namu01.gwdg.de> は Novell NCP のサブセットを サポートしたファイルシステムカーネルを書きました。これによって、 別の製品を購入することなしに、Novell の Volume を Linux からマウントする ことができます。このソフトウエアによって、Linux は Novell workstation のファイルサービスをエミュレートできます。また、このソフトは Novell プリントキューに対してプリントするための簡単なユーティリティを 含んでいます。
Volker はこのパッケージを ncpfs と名付けました。開発に必要だった 情報の主なものは、Manfred Hill and Ralf Zessin の "Netzwerkprogrammierung in C" から派生しています。もっと詳細なことに関しては ncpfs パッケージに 含まれている README ファイルを参照してください。また、Greg Page <greg@caldera.com> の書いた IPX tools も使用されています。
ncpfs パッケージはバージョン 1.2.13 カーネルまたは 1.3.53 以降のカーネル で使用するために設計されました。現在、あなたがこれらに該当するカーネルを 使っていないのであれば、それらのカーネルを使う必要があります。 バージョン 1.3.0〜1.3.52 のカーネルではIPX機能がうまく働かないことが 知られています。
ncpfs パッケージは anonymous ftp を使って Volker のホームページから入手する 事ができます: linux01.gwdg.de <ftp://linux01.gwdg.de/pub/ncpfs/> 叉は sunsite.unc.edu <ftp://sunsite.unc.edu/pub/Linux/system/Filesystems/ncpfs> 叉はそのミラーサイト これを書いている時点での最新バージョンは: ncpfs-0.11.tgz です。
まず最初にあなたのカーネルがIPX機能をイネーブルして構築されている ことを確認する必要があります。バージョン 1.2.13 のカーネルでは、 以下に示すように 'The IPX protocol' の質問に対して 'Y' と答えている ことを確認する必要があるだけです:
...
...
Assume subnets are local (CONFIG_INET_SNARL) [y]
Disable NAGLE algorithm (normally enabled) (CONFIG_TCP_NAGLE_OFF) [n]
The IPX protocol (CONFIG_IPX) [n] y
*
* SCSI support
...
...
あなたの使用するイーサネットカードに対応したドライバを含んでいること を確認する必要もあります。もしこれについてどうやればいいかを知らなければ Ethernet-HOWTO を読んでください。 <http://sunsite.unc.edu/mdw/HOWTOJ/Ethernet-HOWTO.html>.
カーネルを構築する準備は整いました。構築が完了した後には lilo を 走らせて、新しいカーネルをインストールすることを忘れないでください。
# cd /usr/src
# tar xvfz ncpfs-0.9.tgz
特になんの設定もせずにきれいにコンパイルできるはずです。
# make
make が正しく完了したら、すべての必要なツールが ncpfs/bin ディレクトリ にできあがっているはずです。以下のように、これらのツールを /usr/local/sbin ディレクトリにコピーする事をお薦めします:
# cd bin
# for i in ipx* ncp* slist nprint pqlist ; do cp \*(dRi /usr/local/sbin; done
make が正しく完了すれば、ncpfs/bin ディレクトリに ncpfs.o という ファイルもできあがっているはずです。これは ncpfs のカーネルモジュール です。これもどこか都合のよいところにコピーしておきましょう。私の debian システムでは、 /lib/modules/1.2.13/fs ディレクトリに コピーし、ncpfs を /etc/modules ファイルに追加しました。これによって ブート時に ncpfs が自動的に起動されます。 もしあなたが他のパッケージを使っているのならば、どこが適切かを 調べてください。 またはただ単に/etcディレクトリにコピーするするか、です。
手動でモジュールをロードするには次のコマンドを使います:
# insmod ncpfs.o
1.3.53 版のカーネルの ncp 機能はうまく動作しないので、 もしあなたがバージョン 1.3.53 カーネルを使用しようとした場合には 警告を受けます。1.3.54 以降のカーネルを使用してください。
1.3.54 以降のカーネルを使用する場合には、すでにカーネルのソースの中に ncpfs 機能は含まれています。以下の質問に対して、'Y' と答えるだけです:
...
...
The IPX protocol ?
...
...
NCP filesystem support (to mount NetWare volumes) ?
...
...
IPX ツールを構築するためには、 1.2.* カーネルのための指示にも 従う必要があります。Makefile を少しだけ変更する必要があることに注意して ください。変更点はファイルの中にも記述されていますが、簡単に言って、 以下の変更を Makefile に加える必要があります:
# SUBDIRS += kernel-1.2/src
# INCLUDES = -I$(TOPDIR)/kernel-1.2
これは、1.2.* 版のカーネルの場合にのみ必要な変更です。
IPX ネットワークソフトウエアの設定には、二種類の方法があります。 IPX ネットワークの情報について、すべての情報を手動で設定する 方法と、ソフトウエア自身に自動的に適正な情報を決定させる方法です。 ほとんどのインストールの場合、この自動的な方法でうまくいく でしょう。もしこれがうまくいかない場合には、手動設定するために 以下の "IPXツール" の章を読んでください。
# ipx_configure --auto_interface=on --auto_primary=on
IPX ネットワークの設定が終わったら、slist コマンドを使うこと によって、あなたのネットワーク上にあるすべての Novell ファイルサーバ を見ることができるはずです:
# slist
もし slist コマンドが 'ncp_connect: Invalid argument' などのメッセージを 表示した場合には、恐らくカーネルが IPX をサポートしていないの でしょう。ちゃんと正しいカーネルでブートしたかどうかなどを確認して みましょう。もし slist コマンドがすべてのファイルサーバを表示しない 場合には、手動でネットワークの設定をおこなう必要があるかもしれません。
IPX ネットワークソフトウエアがうまく動作していれば、Novell の ファイルサーバボリュームを Linux ファイルシステムにマウントできる はずです。この目的のために ncpmount コマンドが使われますが、 少なくとも以下の情報を指定する必要があります:
以下の例は、ファイルサーバ ACCT_FS01 にユーザ guest で、 パスワード無しで、/mnt/Accounts ディレクトリにマウントログイン する場合の例です:
# ncpmount -S ACCT_FS01 /mnt/Accounts -U guest -n
この例では、-n オプションによってログインにパスワードが不要なことを 指定しています。 同様のログインでパスワード指定が必要な場合には以下のようになります。
# ncpmount -S ACCT_FS01 /mnt/Accounts -U guest -P secret
-n オプションも -P オプションも指定しなかった場合、パスワードの 入力を促されます。
マウントがうまくいけば、マウントポイントの下のディレクトリ として、ログインに使われたユーザ ID でアクセス可能なボリューム が見えるはずです。また、ディレクトリ構造を渡り歩く (traverse) ことが できるはずです。NCP は uid/gid による所有権 (ownership) を提供していない ため、すべてのファイルは、マウントポイントディレクトリの所有権を ひきつぐことになります。Linux ユーザ間でマウントを共有する場合に は、この点について留意してください。
プリント機能がうまく動作しているかどうかをチェックするには nprint コマンドを使います。nprint コマンドを使うと、Nerware プリントキュー に対してファイルをプリントすることができます。pqlist を使うと Netware サーバ上で使用できるプリントキューを見る事ができます。 どちらのコマンドもユーザーネームとパスワードが必要ですので、 簡単にプリントするためには、なにかシェルスクリプトを作るのが よいでしょう。例えば例としては:
# pqlist -S ACCT_FS01 -U guest -n
# nprint -S ACCT_FS01 -q LASER -U guest -n filename.txt
ncpmount コマンドと同様のログオン方法です。上に述べた例は、ACCT_FS01 というファイルサーバにパスワードなしの guest アカウントで、LASER という プリントキューが存在し、それに対して guest がプリントを許されている という場合の例です。
ncp マウントを恒久的に設定する必要がある場合には上で述べたような コマンドを rc ファイルから実行する事によって、ブート時に自動的に おこなうことができます。私のお薦めは /etc/rc.local ファイルにこれら の設定を記述しておくことです。 私は /etc/init.d ディレクトリの下の NetWare というファイルにこれらの 設定を記述しておき、/etc/rc2.d ディレクトリに適切なシンボリックリンク を張っています。 例えば以下のようにするのもいいかもしれません:
#
# Start the ncp filesystem
/sbin/insmod /lib/modules/1.2.13/fs/ncpfs.o
# configure the IPX network
ipx_configure --auto_interface=on --auto_primary=on
# guest login to the Accounting fileserver
ncpmount ACCT_FS01 /mnt/Accounts -U guest -n
#
NCP マウントの設定には、$HOME/.nwclient ファイルを作る、という もうひとつの方法があります。このファイルには一時的または ユーザごとに必要なNCPマウントを記述しておきます。 これにより、毎回マウントの詳細を指定することなく、詳細なマウント 方法を記述しておくことができます。
このファイルの形式は明快です: たとえば次のコマンドを実行すると、ログイン名 TERRY で、/home/terry/docs ディレクトリに DOCS_FS01 をマウントします(ACCT_FS01 ではなく)。DOCS_FS01 が選択されなかったのは、マウントコマンドのオプションにファイルサーバ を指定しなかったからです。
$ ncpmount /home/terry/docs
また、次のコマンドを実行すると、DOCS_FS01 のかわりに ACCT_FS01 を ログイン名 GUEST でマウントします。
$ ncpmount -S ACCT_FS01 /home/terry/docs
注意: この機能がうまく動作するためには、$HOME/.nwclient ファイルの パーミッションが、0600 になっている必要があります。これには、次の コマンドを実行します:
$ chmod 0600 $HOME/.nwclient
ルート以外のユーザにこの機能を使う事を許すのであれば、ncpmount コマンドの Root の Set Userid ビットを立てておくことが必要です。 これには次のコマンドを実行します:
# chmod 4755 ncpmount
Linux を Novell ファイルサーバとして機能させるためのパッケージには二種類 あります。どちらのパッケージを使っても、Linux 上のファイルを Novell NetWare クライアントソフトウエアのユーザと共有する事ができます。 本物の Novell ファイルサーバと同じように、ファイルシステムをマシン上の ローカルドライブにマップすることや、アタッチすることができます。 両方のパッケージを使ってみて、あなたの目的にはどちらのパッケージが 適しているかを判断するのがよいでしょう。
Martin Stover <mstover@freeway.de> が開発したパッケージです。 Netware クライアントに対してファイルとプリントサービスを提供します。
mars_nwe は Martin Stovers Netware Emulator の 略です。
mars_nwe は Novell NCP のサブセットを実現しています。 ファイルサービス、ディスクベースの bindery サービス、プリントサービスが 実現されています。バグを含んでいるようです。(@@)
linux01.gwdg.de <ftp://linux01.gwdg.de/pub/ncpfs/>. から入手できます。 これを書いている時点での最新バージョンは: mars_nwe-0.96.pl2.tgz.
まず最初にあなたのカーネルが IPX 機能をイネーブルして構築されている ことを確認する必要があります。バージョン 1.2.13 のカーネルでは、 以下に示すように 'The IPX protocol' の質問に対して 'Y' と答えている ことを確認する必要があるだけです:
...
...
Assume subnets are local (CONFIG_INET_SNARL) [y]
Disable NAGLE algorithm (normally enabled) (CONFIG_TCP_NAGLE_OFF) [n]
The IPX protocol (CONFIG_IPX) [n] y
*
* SCSI support
...
...
より新しい版のカーネルでは、プロンプトなどが多少異なるかもしれません が、同様の方法で大丈夫です。
あなたの使用するイーサネットカードに対応したドライバを含んでいること を確認する必要もあります。もしこれについてどうやればいいかを知らなければ Ethernet-HOWTO を読んでください。 <http://sunsite.unc.edu/mdw/HOWTOJ/Ethernet-HOWTO.html>.
カーネルを構築する準備は整いました。構築が完了した後には lilo を 走らせて、新しいカーネルをインストールすることを忘れないでください。
# cd /usr/src
# tar xvfz mars_nwe-0.96.pl2.tgz
パッケージを make するのはとても簡単です。まず、config.h を眺めて、 もし必要ならばエディットします。これによって、 インストールディレクトリや、サーバがサポートするセッションやボリューム の最大数などを設定することができます。 次に:
# make
# make install
これによってサーバが構築され、適切なディレクトリにインストールされ ます。また、インストレーションスクリプトは /etc/nwserv.conf という 設定ファイルをインストールします。
設定はとても簡単です。/etc/nwserv.conf ファイルをエディットします。 はじめてこのファイルの内容を見るとそのフォーマットはちょっと謎めいて 見えますが、実はとても明瞭です。それぞれの行にひとつの設定が記述 されています。それぞれの行は、その行の内容を意味する数字で始まり、 空白で区切られています。'#' の後の文字はコメントとみなされ、無視 されます。パッケージの中にもMartinの提供する設定例が含まれています が、別のもっと単純な例をここに挙げておきます。
# VOLUMES (max. 5)
# Only the SYS volume is compulsory. The directory containing the SYS
# volume must contain the directories: LOGIN, PUBLIC, SYSTEM, MAIL.
# The 'k' option converts all filenames in NCP requests to lowercase.
# The default is upper case.
# Syntax:
# 1 <Volumename> <Volumepath> <Options>
1 SYS /home/netware/SYS/ # SYS
1 DATA /home/netware/DATA/ k # DATA
# SERVER NAME
# If not set then the linux hostname will be converted to upper case
# and used.
# Syntax:
# 2 <Servername>
2 LINUX_FS01
# INTERNAL NETWORK NUMBER (not yet implemented)
# Syntax:
# 3 <Internal Network Address> [<Node Number>]
# NETWORK DEVICE(S)
# This entry configures your IPX network. If you already have your
# IPX network configured then you do not need this.
# Syntax:
# 4 <IPX Network Number> <device_name> <frametype> [<ticks>]
# Frame types: ethernet_ii, 802.2, 802.3, SNAP
4 0x39a01010 eth0 802.3 1
# SAVE IPX ROUTES AFTER SERVER IS DOWNED
# Syntax:
# 5 <flag>
# 0 = don't save routes, 1 = do save routes
5 0
# NETWARE VERSION
# Syntax:
# 6 <version>
# 0 = 2.15, 1 = 3.11
6 0
# MINIMAL GID UID rights
# permissions used for attachments with no login.
# Syntax:
# 10 <gid>
# 11 <uid>
# <gid> <uid> are from /etc/passwd, /etc/groups
10 200
11 201
# SUPERVISOR password
# May be removed after the server is started once. The server will
# encrypt this information into the bindery file after it is run.
# Syntax:
# 12 <Supervisor-Login> <Unix username> [<password>]
12 SUPERVISOR root secret
# USER ACCOUNTS
# This associates netware logins with unix accounts. Password are
# optional.
# Syntax:
13 <User Login> <Unix Username> [<password>]
13 TERRY terry
13 MAR mar
# PRINT QUEUES
# This associates Netware printers with unix printers. The queue
# directories must be created manually before printing is attempted.
# Syntax:
# 21 <queue_name> <queue_directory> <unix_print_cmd>
21 EPSON SYS:/PRINTJ/PSON lpr -h
21 LASER SYS:/PRINT/LASER lpr -Plaser
# DEBUG FLAGS
# Syntax:
# <debug_item> <debug_flag>
#
# 100 = IPX KERNEL
# 101 = NWSERV
# 102 = NCPSERV
# 103 = NWCONN
# 104 = use NWCLIENT
# 0 = disable debug, 1 = enable debug
100 0
101 0
102 0
103 0
104 0
# RUN NWSERV IN BACKGROUP AND USE LOGFILE
# Syntax:
# 200 <flag>
# 0 = run NWSEV in foreground and don't use logfile
# 1 = run NWSERV in background and use logfile
200 1
# LOGFILE NAME
# Syntax:
# 201 <logfile>
201 /tmp/nw.log
# APPEND LOG OR OVERWRITE
# Syntax:
# 202 <flag>
# 0 = append to existing logfile
# 1 = overwrite existing logfile
202 1
# SERVER DOWN TIME
# This item sets the time after a SERVER DOWN is issued that the
# server really goes down.
# Syntax:
# 210 <time>
# in seconds. (defaults 10)
210 10
サーバをスタートするには、ただ、次のコマンドを実行するだけです:
# nwserv
サーバをテストするには、まず、ネットワーク上の Netware クライアント から、アタッチ、ログインをやってみます。次にクライアントから CAPTURE を設定し、印刷してみます。両方ともうまくいけば、サーバは 動作しています。
Ales Dryak <A.Dryak@sh.cvut.cz> が開発しました。 Linux を NCP ベースのファイルサーバとして機能させる事ができます。
Ales はこのパッケージを LinWare Daemon の略として、lwared と名付けました。
lwared サーバは Novell NCP のサブセットを提供します。プリントサービスは 含まれていませんが、messaging(@@) を実現しています。現在のところ、 Windown95 や Windows NT クライアントとはあまり相性がよくないようです。 lwared では、IPX ルーティングや SAP テーブルの更新のためには、別のプログラム を使う必要があります。クライアントの誤った動作によってサーバがクラッシュ することもあります。重要なことには、ファイル名変換の機能が実現されて いません。
サーバは NETX や VLM NetWare シェルと共に動作します。(@@)
lwared は 1.2.0 以降のカーネルで動作しますが、カーネルパッチが必要ない という理由で、1.2.13 を使う事をお薦めします。 1.3.* カーネルでは IPX 機能の一部が変更されたため、うまく動作させる ためにはなんらかのパッチが必要なことを意味しています。新しいカーネル のためのパッチが含まれているので、これらα版のカーネルを使う必要があると しても、lwared をうまく動作させる事ができるはずです。
lwared パッケージは anonymous ftp で以下から入手できます: klokan.sh.cvut.cz <ftp://klokan.sh.cvut.cz/pub/linux/linware/> または : sunsite.unc.edu <ftp://sunsite.unc.edu/pub/Linux/system/Network/daemons> またはこの ミラーサイト。
これを書いている時点での最新のバージョンは: lwared-0.95.tar.gz
こんな感じ:
# cd /usr/src
# tar xvpfz lwared-0.95.tar.gz
もしあなたがα版の 1.3.* カーネルを使っている場合には、1.3.17 以降 のバージョンで試してみてください。提供されているパッチは、それらの バージョンに対して作られたものだからです。 1.3.17 よりも古いバージョンでは、手動のパッチをあてる必要が あるでしょう。(これをどうやるかについては、INSTALL ファイルの 中にいくらか情報があります。) 1.3.17 以降のカーネルにパッチをあてるには以下を試してください:
# make patch
パッチをあてたあとには、もし必要ならばカーネルが IPX サポート をイネーブルして構築されていることを確認します。バージョン 1.2.13 カーネルでは、以下に示すように 'The IPX protocol' の質問に対して 'Y' と 答えていることを確認する必要があるだけです:
...
...
Assume subnets are local (CONFIG_INET_SNARL) [y]
Disable NAGLE algorithm (normally enabled) (CONFIG_TCP_NAGLE_OFF) [n]
The IPX protocol (CONFIG_IPX) [n] y
*
* SCSI support
...
...
より新しい版のカーネルでは、プロンプトなどが多少異なるかもしれません が、同様の方法で大丈夫です。
あなたの使用するイーサネットカードに対応したドライバを含んでいること を確認する必要もあります。もしこれについてどうやればいいかを知らなければ Ethernet-HOWTO を読んでください。 <http://sunsite.unc.edu/mdw/HOWTOJ/Ethernet-HOWTO.html>.
カーネルを構築する準備は整いました。構築が完了した後には lilo を 走らせて、新しいカーネルをインストールすることを忘れないでください。
lwared をコンパイルするには、まず最初に server/config.h をチェック して、必要ならエディットします。このファイルはサーバが動作中に どのようにふるまうか、などの設定が含まれています。 デフォールトの設定はリーズナブルなものですが、ログファイルと 設定ファイルの置かれるディレクトリがあなたの環境に あっていることをチェックしておいたほうがいいでしょう。
# make depend
# make
# make install
私の場合には、'make depend' は float.h が無いと文句を言ってきましたが、 うまく動作しました。また、gcc 2.6.3 でコンパイルしたときには、 lib/ipxkern.c の以下の行を修正する必要がありました:
#include <net/route.h>
を
#include <net/if_route.h>
に修正しました。 このファイルは名前が変わったようです。
'make install' を実行する事によって、サーバとルーティングデーモン が /use/sbin ディレクトリに、lwpasswd プログラムが /usr/bin に、IPX ユーティリティが /sbin に、そして最後になるが重要なのは、マニュアル ページが /usr/man ディレクトリ以下にインストールされます。 もしこれらのディレクトリ配置があなたのシステムに適していない場合には、 関連した Makefile をエディットして、目的のディレクトリに書き換えて ください。
まず最初にしなければならないのは、あなたのサーバがサポートしている IPX ネットワークをサポートできるように、イーサネットカードを設定 しなければなりません。 これには、それぞれの LAN セグメントの IPX ネットワークアドレス、 それぞれのセグメントにどのイーサネットデバイス (eth0, eth1 など) が 接続されているのか、それぞれの LAN セグメントがどのフレームタイプ (802.3, EtherIIなど) を使用しているのか、サーバが使用すべき インターナルネットワークアドレス(これは実際には、サーバが複数の LAN セグメントに対してサービスする場合に必要です。) を知る必要があります。
設定の例として、異なるIPXネットワークセグメントのアドレス 23a91300 と 23a91301 の上の、インターナルネットワークアドレス bdefaced というサーバ の場合には次のようになります:
# ipx_internal_net add BDEFACED 1
# ipx_interface add eth0 802.3 23a91300
# ipx_interface add eth1 etherii 23a91301
カーネルは実際のところ、IP に対するのと同様に IPX パケットを フォワードします。しかし、カーネルはルーティングテーブルの 更新を管理するために追加のソフトウエアを必要とします。 IPX の場合には、二つのデーモンが必要であり、両方とも lwaredと共に供給されています。 ipxripd は IPX ルーティング情報を管理し、ipxsapd は SAP 情報を 管理します。 これらのデーモンをスタートするには、そのログメッセージをどこに 出力するかを指定するだけです:
# ipxripd /var/adm/ipxrip
# ipxsapd /var/adm/ipxsap
lwared サーバに対してログインを許すためには、手動で二つのファイルを 設定する必要があります。以下の通り:
LinWare ユーザのアカウント情報を保持するファイルです。 lwpasswd プログラムはそれを最新の状態に保つためのものです。 /etc/lwpasswd ファイルの最もシンプルな形式はこんな感じ:
ales:
terryd:
guest:
ログイン ID の後ろに ':' が付加された単純なリストです。':' の後ろに 暗号化されたパスワードが入ります。 重要なことは、暗号化されたパスワードが存在しない場合にはパスワード なし、と認識されるということです。 LinWare ユーザは Linux アカウントをもっていなければなりません。 すなわち、/etc/lwpasswd の中のすべてのユーザは /etc/passwd の 中にも存在しなければなりません。 また、他の LinWare ユーザのパスワードを変更できるのは root ユーザ のみです。root としてログインすることで、LinWare ユーザの パスワードを以下のように設定・変更することができます:
# lwpasswd rodg
Changing password for RODG
Enter new password:
Re-type new password:
Password changed.
LinWare のボリュームテーブルで、LinWare ユーザに対して どのディレクトリが利用可能かが保持されています。(この ファイルは NFS における、/etc/exports ファイルと同様の機能 です。)シンプルな例は :
SYS /lwfs/sys
DATA /lwfs/data
HOME /home
フォーマットはシンプルです: ボリューム名の後に空白を置き、 その後ろにエクスポートされる Linux のディレクトリ名を書きます。 サーバをスタートするためには、少なくとも SYS ボリュームの エントリーを記述する必要があります。 もし、DOS ベースのユーザが、LinWare サーバをプライマリサーバとして 使える必要がある場合には SYS ボリュームとしてエクスポートしている ディレクトリの下にスタンダード SYS ボリュームディレクトリを インストールする必要があります。 この場合、もちろんこれらのファイルは、 Novell Corporation の著作権が あるので、あなたはこれらについてのライセンスをもっていなければ なりません。 もしユーザがプライマリサーバとして Novell ファイルサーバを 使っているのならば、必要ありません。
じゃんじゃじゃーーーん!
# lwared
なんと簡単なんでしょうね? 恐らくあなたは疑問があるでしょう。 通知 (advertise) されるべきファイルサーバ名はどうやってわかるんでしょう? 上のようにサーバを起動した場合には、Linux の hostname で返される 名前がファイルサーバ名として通知されます。 他の名前をファイルサーバ名として通知したい場合には、例えば:
# lwared -nlinux00
のようにすると、サーバ名は linux00 となります。
まず最初に、ネットワーク上の DOS クライアントから、slist で LinWare サーバが見えるかどうか、のテストをします。slist プログラム は Novell ファイルサーバの SYS ボリュームにあるので、どこかすでに ログインしているマシンからテストする必要があります。 もしこれがうまくいかなかった場合には ipxsapd と lwared の 両方が起動されている事を確認してください。slist がうまくいったら、 次にサーバにアタッチして、ボリュームをマッピングします:
C:> attach linux00/ales
...
...
C:> map l:=linux00/data:
C:> l:
他のマップと同じ様に、これらの新しいマップを扱う事ができるはずです。 ここでのファイルパーミッションは、あなたの LinWare ログインに相当する Linux アカウントに許されたパーミッションに基づいたものになります。
二つの LAN 間に IP 接続しか無い、という状況はよくあるものです。この ような場合に、DOS 上の DOOM でどうやってマルチプレイヤーのデスマッチを したらいいでしょう? Andreas Godzina <ag@agsc.han.de> の ipxtunnel がその答です。
ipxtunnel は IPX パケットを TCP/IP データグラムにカプセル化して TCP/IP 接続を通過させます。これによって、IPX ブリッジのような機能を提供します。 ipxtunnel は IPX パケットを待ち受け (listen)、それを TCP/IP データグラムに 包みこんで、指定されたリモート IP アドレスに配送します。 もちろん、これがうまく動作するためには、指定先のマシンでも同じバージョンの ipxtunnel が動作していることが必要です。
ipxtunnel は sunsite.unc.edu <ftp://sunsite.unc.edu/pub/Linux/system/Network/daemons> または そのミラーサイトから入手することができます。
私の場合、以下のコマンドできれいに構築できました:
# cd /usr/src
# tar xvfz .../ipxtunnel.tgz
# cd ipxtunnel
# make
ipxtunnel の設定はとても簡単です。相手のマシンが gau.somewhere.com で、 あなたのマシンが gim.sw.edu だとしましょう。 ipxtunnel は、/etc/ipxtunnel.conf というファイルを設定ファイルとして 使います。このファイルには、TCP/IP 接続に使われるデフォールトの UDP ポートや、カプセル化されたデータをどこに送るか、どのローカル インターフェースに対してipxtunnel がデータをやりとりするかなどを 指定します。
簡単な設定ファイルの例を以下に示します:
#
# /etc/ipxtunnel.conf for gim.sw.edu
#
# The UDP port to use: (default 7666)
port 7777
#
# The remote machine to send IPX packets to: (no default)
remote gau.somewhere.com
#
# The local interfaces to listen for IPX on: (default eth0)
interface eth0
interface eth1
当然のことですが、相手先のマシンでは、同様の設定で、ただし あなたのマシンをリモートマシンとして設定する必要があります。
d ipxtunnel は、IPX ブリッジのようにふるまいます。ですから、接続している 相互の IPX ネットワークは同じものでなければならないでしょう。Andreas は 実際に Novell ファイルサーバが稼動している環境での ipxtunnel の動作を 確認していないので、もしあなたがこのような環境で使ってみた場合には ぜひ Andreas に対して、動作したかどうかを知らせてあげてください。 ipxtunnel がうまく動作すれば、DOOM をリンク端の両方のマシンで動作させ、 お互いを見ることができるはずです。
Andreas はこのコードを高速の回線の上で使っているため、低速の回線での パフォーマンスに関してはわかりません。 ぜひ、何がうまく動作して、何はうまく動作しないか、を彼に知らせて あげてください。
Caldera 社は完全な Novell Netware クライアント機能を含む、幅広い 拡張をおこなった Linux パッケージを商用に作成/サポートしています。 ベースとなっている版は良く考慮された Red Hat Linux Distribution であり、 Caldera 社は彼らの「ネットワークデスクトップ」製品をこれに付加して います。NetWare 機能は、Novell から技術ライセンス供与を受けて作成された ものであり、完全な NetWare クライアント機能を実現しています。 このクライアント機能は、Novell の 3.x, 4.x ファイルサーバに対する完全な クライアントアクセスを提供し、NerWare のディレクトリサービス (NDS) や RSA暗号化機能なども含んでいます。
もっと詳細な情報や、注文方法については、Caldera 社の Web サーバ <http://www.caldera.com/> を参照してください。 もしあなたが Novell のサポートを必要とする Linux 用のビジネス アプリケーションを使わなければならないのなら、Caldera 社の製品は 注目に値するでしょう。
IPX-HOWTO の著作権は Terry Dawson に属します。 著作権に関する記述とこの許可文書がすべての複製の中に保存されている ことを条件として、そのままの複製を作成し、配布することを許可します。 その文書が修正したものであると明記されており、上で述べたそのままの 文書と同じ条件を満たしていれば、この文書を修正したものの複製/配布を 許可します。
上に述べた修正版のドキュメントに関する条件を守る限り、 このドキュメントを他の言語に翻訳したものを複製/配布することを許可します。 新しいメディアにおいて元の文書への明確な参照が含まれることで 元の文書を承認するための要件が満たされるなら、上に述べた修正版に 関する条件を守る限り、この文書を他のメディアに変換することを許可 します。ここで何を「明確な」と定義するかは疑わしいところではあり ますが、それについても著作権所有者が決定する権利を保有します。
David E. Storey <dave@tamos.gmu.edu> と Volker Lendecke <lendecke@namu01.gwdg.de> の両者はこのドキュメントに対して いろいろな情報提供をしてくれることで非常に支援してくれました。
"NetWare"はNovell社の登録商標<http://www.novell.com/>です。 "Caldera"はCaldera社の登録商標<http://www.caldera.com/>です。
regards Terry Dawson, vk2ktj.
<94004531@postoffice.csu.edu.au>, or <terry@perf.no.itg.telecom.com.au>
日本語訳 : 川島浩 (kei@sm.sony.co.jp) 校正 : 小野さん (ono@epsenewsc.gee.kyoto-u.ac.jp) 杉浦さん (yol@kthree.co.jp)
-- 訳者より --
このドキュメントは単なる翻訳です。思い切った意訳もしています。 お許しください。
(sgml conversion: y.senda, ysenda@pop01.odn.ne.jp, 2001/10/09)