Linux IPX-HOWTO v1.2 1996/01/14 版 Terry Dawson, 94004531@postoffice.csu.edu.au 著 日本語訳 : 川島浩 (kei@sm.sony.co.jp) 校正 : 小野さん (ono@epsenewsc.gee.kyoto-u.ac.jp) 杉浦さん (yol@kthree.co.jp) -- 訳者より -- このドキュメントは単なる翻訳です。思い切った意訳もしています。 お許しください。 このドキュメントでは、LinuxカーネルのサポートするIPXプロトコルを 使用しているさまざまなツールを、どうやって入手、インストール、設定 するかについて述べます。 1. はじめに これはLinuxのIPX-HOWTOです。この他にLinuXのNET-2-HOWTOも併せて読む必要が あります。 1.1. 前の版からの変更点 追加: ipxbridge 修正/改定: ncpfs 1.2. イントロダクション 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> によって拡張されました。 2. 宣言 私はLinuxのネットワークソフトウエアの全てに関して知っているわけでは ありませんし、また知ることも不可能です。 このドキュメントが誤りを含んでいる可能性があることを許諾し、念頭に おいてください。より正確で詳細な情報に関しては、このドキュメントに 記されているいろいろなソフトウエアに含まれているREADMEファイルを 参照してください。私はできる限りこのドキュメントを誤りの無い、 最新のものにし続けるつもりです。また、対象にしているソフトウエアの バージョンは、このドキュメントを書いている時点のものです。 3. 関連するドキュメント このドキュメントではあなたが、正しいネットワークオプションを選択した Linuxカーネルの再構築方法、基本的なネットワークツール(ifconfig, routeなど) の使い方をすでに知っていることを前提にしています。もしこれらについて 十分な知識がない場合には、NET-2-HOWTOを先に読んでください。 このドキュメントは、 <http://sunsite.unc.edu/mdw/HOWTO/NET-2-HOWTO.html>からたどることも できます。 その他の有益な Linux HOWTOドキュメント: Ethernet-HOWTO <http://sunsite.unc.edu/mdw/HOWTOJ/Ethernet- HOWTO.html>は、イーサネットの設定方法について詳しく書かれたドキュメント です。 PPP-HOWTO <http://sunsite.unc.edu/mdw/HOWTO/PPP-HOWTO.html>は、 バージョン2.2.0dのLinux PPP機能で利用できるIPX機能に関して記述されて います。 3.1. このドキュメントの新しいバージョンについて もしあなたが持っているこのドキュメントが、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://sunsite.unc.edu/mdw/linux.html>, のページ: IPX-HOWTO <http://sunsite.unc.edu/mdw/HOWTO/IPX-HOWTO.html> または私のディレクトリ <94004531@postoffice.csu.edu.au>から。 また、次のニュースグループにも時々ポストされています。 newsgroups: comp.os.linux.networking, comp.os.linux.answers and news.answers 3.2. フィードバック このドキュメントに関するコメントや更新や提案を私宛に送ってください。 <94004531@postoffice.csu.edu.au> すばやくフィードバックをもらえれば、すばやくドキュメントを訂正/更新 することができます。私は最近ほとんどニュースを読んでいませんので、 なにか問題を見つけたら直接私宛に電子メイルを送ってください。 4. このドキュメントで使われている主な用語 このドキュメントの中では「クライアント」と「サーバ」という用語が 頻繁にでてきます。このドキュメントの中ではこれらの用語を通常使われる 特殊な意味ではなく、以下のように、少し一般化した定義をします。 クライアント いろいろなサービスやデータを得ることを目的として、アクションや 接続の要求をおこなうマシンやプログラム サーバ 複数のリモートマシンからの接続を受け付け、それらに対して サービスやデータを提供するマシンやプログラム この定義にしてもたいして信頼できるものではないですが、SLIPやPPPなど、 真の意味でのクライアント/サーバの区別がない終端同士を区別することが できます。 その他の用語: IPX Internet Packet eXchangeの略。Novellによって、Netware(TM)製品の インターネットサポートのために提供されている。IPXプロトコルは TCP/IPにおけるIPプロトコルと同様の機能を果たす。 IPX network address 特定のIPXネットワークをユニークに識別するのに使われる番号。 通常0x23a91002のように、16進表記で記述される。 IPX インターナルネットワーク 仮想的なIPXネットワーク。物理的なネットワークに直接対応しないという 意味において仮想的である。 特定のIPXホストを識別、アドレッシングするために使われる。 一般的には、ファイルサーバのように複数の物理IPXネットワークに またがって存在するホストに対して意味がある。 アドレスは物理IPXネットワークと同じ形式。 RIP Routing Information Protocolの略。 IPXネットワークにおいて、ネットワーク経路情報を自動的に伝搬させる のに使われるプロトコル。TCP/IPにおけるRIPプロトコルと同様の機能を 果たす。 NCP NetWare Core Protocolの略。 NetWare製品のためにNovellによって開発されたネットワークファイル システムプロトコル。TCP/IPにおけるNFSと同様の機能。 SAP Service Advertisement Protocolの略。 Netware環境において、ネットワークサービスを通知するために Novellが設計したプロトコル。 ハードウエアアドレス メディアアクセス層において物理ネットワーク中でホストをユニークに 識別するための番号。イーサネットは一般に':'で区切られた 6個の16進数で表記される。例) 00:60:8C:C3:3C:0F ルート パケットが目的地に達するときに通過する経路のこと 5. /procファイルシステムの下のIPXに関係するファイル /procファイルシステムの下には、LinuxのIPX機能に関係するファイル類が たくさん存在します。以下の通り: /proc/net/ipx_interface このファイルには、そのマシンで設定されているIPXインターフェースに 関する情報がはいっています。コマンドによって手動で設定されたもの と、自動的に検出され設定されたものの両方が含まれます。 /proc/net/ipx_route このファイルにはIPXルーティングテーブル中に存在するルート情報が はいっています。コマンドによって手動で付加されたものと、 IPXルーティングデーモンによって自動的に付加されたものの両方が 含まれています。 /proc/net/ipx このファイルにはそのマシン上で使われるためにオープンされている IPXソケットのリストがはいっています。 6. Greg Pagesの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>. 6.1. IPXツールの詳細 ipx_interface このコマンドはネットワークデバイスに対して手動でIPX機能の 付加・削除・チェックをおこなうために使われます。通常、ネットワーク デバイスはeth0などのイーサネットデバイスでしょう。少なくとも ひとつのIPXインターフェースを-pフラグでprimaryインターフェースとして 指定する必要があります。例えばイーサネットデバイスeth0でIPX機能を 使い、IEEE 802.2フレームタイプで、IPXネットワークアドレスを 39ab0222とするならば、以下のような指定になります : # ipx_interface add -p eth0 802.2 0x39ab0222 ipx_configure このコマンドはインターフェースの設定/プライマリーインターフェース の設定を自動的におこなうかどうかを指定します。 --auto_interfaceオプションで新しいネットワークデバイスを自動 設定するかどうかを制御します。--auto_primaryオプションでIPX ソフトウエアが自動的にprimaryインターフェースを選択するかどうか を制御します。 両方とも自動でおこなう際の標準的なコマンドラインの例は: # ipx_configure --auto_interface=on --auto_primary=on ipx_internal_net このコマンドはIPXインターナルネットワークアドレスを設定したり、 解除したりするために使われます。インターナルネットワークアドレスは 省略可能ですが、このコマンドで設定されたインターフェースは常に primaryインターフェースとなります。IPXネットワークアドレスab000000、 IPXノード1に設定するためのコマンドラインの例は : # ipx_internal_net add 0xab000000 1 ipx_route このコマンドはIPXルーティングテーブルを手動で書き換えるために 使われます。例えばIPXネットワーク39ab0222に到達するために IPXネットワーク39ab0108上のノード番号00608CC33C0Fを経由するルート をテーブルに付加するには以下のコマンドを使います: # ipx_route add 0x39ab0222 0x39ab0108 0x00608CC33C0F 7. LinuxマシンをIPXルータとして設定するには たくさんの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マシンをルータとして機能させるために設定するのはとても簡単です。 以下の手順です: 1. カーネルをIPX・イーサネット・/proc機能をイネーブルして構築します。 2. IPXとSAPデーモンプログラムを入手して、コンパイル・インストール します。 3. 新しいカーネルでブートします。それぞれのイーサネットカードが正しく 認識されていることと、ハードウエアコンフリクトがないことを確認して ください。 4. 上に述べたipx_interfaceコマンドを使って、それぞれのインターフェース でIPXプロトコルをイネーブルします。 5. IPXデーモンとSAPデーモンを起動します。 次のような単純なネットワークを考えます: 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ルートの情報が入っている はずです。 8. LinuxマシンをNCPクライアントとして設定するには 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も使用されています。 8.1. ncpfsを入手するには 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 です。 8.2. カーネル1.2.*でncpfsを構築するには イーサネットとIPX機能をイネーブルしてカーネルを構築する まず最初にあなたのカーネルが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を 走らせて、新しいカーネルをインストールすることを忘れないでください。 ncpfsソフトウエアを解凍するには # cd /usr/src # tar xvfz ncpfs-0.9.tgz ncpfsをmakeする 特になんの設定もせずにきれいにコンパイルできるはずです。 # make IPXツールを都合のよいところにコピーする makeが正しく完了したら、すべての必要なツールがncpfs/binディレクトリ にできあがっているはずです。以下のように、これらのツールを /usr/local/sbinディレクトリにコピーする事をお薦めします: # cd bin # for i in ipx* ncp* slist nprint pqlist ; do cp \*(dRi /usr/local/sbin; done ncpfs.oモジュールを都合のよいところにコピーする makeが正しく完了すれば、ncpfs/binディレクトリにncpfs.oという ファイルもできあがっているはずです。これはncpfsのカーネルモジュール です。これもどこか都合のよいところにコピーしておきましょう。私の debianシステムでは、 /lib/modules/1.2.13/fs ディレクトリに コピーし、ncpfsを/etc/modulesファイルに追加しました。これによって ブート時にncpfsが自動的に起動されます。 もしあなたが他のパッケージを使っているのならば、どこが適切かを 調べてください。 またはただ単に/etcディレクトリにコピーするするか、です。 手動でモジュールをロードするには次のコマンドを使います: # insmod ncpfs.o 8.3. 1.3.54以降のカーネルでncpfsを構築する 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.*版のカーネルの場合にのみ必要な変更です。 8.4. ncpfsの設定と使い方 IPXネットワークソフトウエアの設定 IPXネットワークソフトウエアの設定には、二種類の方法があります。 IPXネットワークの情報について、すべての情報を手動で設定する 方法と、ソフトウエア自身に自動的に適正な情報を決定させる方法です。 ほとんどのインストールの場合、この自動的な方法でうまくいく でしょう。もしこれがうまくいかない場合には、手動設定するために 以下の"IPXツール"の章を読んでください。 # ipx_configure --auto_interface=on --auto_primary=on 設定のテスト IPXネットワークの設定が終わったら、slistコマンドを使うこと によって、あなたのネットワーク上にあるすべてのNovellファイルサーバ を見ることができるはずです: # slist もしslistコマンドが'ncp_connect: Invalid argument'などのメッセージを 表示した場合には、恐らくカーネルがIPXをサポートしていないの でしょう。ちゃんと正しいカーネルでブートしたかどうかなどを確認して みましょう。もしslistコマンドがすべてのファイルサーバを表示しない 場合には、手動でネットワークの設定をおこなう必要があるかもしれません。 Novell(TM)のボリュームをマウントする IPXネットワークソフトウエアがうまく動作していれば、Novellの ファイルサーバボリュームをLinuxファイルシステムにマウントできる はずです。この目的のためにncpmountコマンドが使われますが、 少なくとも以下の情報を指定する必要があります: 1. ファイルサーバの名前。 2. ファイルサーバのログインID。パスワードがついている場合には それも必要。 3. マウントポイント (すなわち、どこにマウントしたいか) 以下の例は、ファイルサーバ 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 9. LinuxマシンをNCPサーバとして設定する LinuxをNovellファイルサーバとして機能させるためのパッケージには二種類 あります。どちらのパッケージを使っても、Linux上のファイルをNovell NetWare クライアントソフトウエアのユーザと共有する事ができます。 本物のNovellファイルサーバと同じように、ファイルシステムをマシン上の ローカルドライブにマップすることや、アタッチすることができます。 両方のパッケージを使ってみて、あなたの目的にはどちらのパッケージが 適しているかを判断するのがよいでしょう。 9.1. mars_nwe パッケージ Martin Stover <mstover@freeway.de> が開発したパッケージです。 Netwareクライアントに対してファイルとプリントサービスを提供します。 mars_nwe は Martin Stovers Netware Emulatorの 略です。 9.1.1. mars_nweのできること mars_nwe はNovell NCPのサブセットを実現しています。 ファイルサービス、ディスクベースのbinderyサービス、プリントサービスが 実現されています。バグを含んでいるようです。(@@) 9.1.2. mars_nweを入手するには linux01.gwdg.de <ftp://linux01.gwdg.de/pub/ncpfs/>. から入手できます。 これを書いている時点での最新バージョンは: mars_nwe-0.96.pl2.tgz. 9.1.3. mars_nweパッケージを構築する イーサネットとIPX機能をイネーブルしてカーネルを構築する まず最初にあなたのカーネルが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を 走らせて、新しいカーネルをインストールすることを忘れないでください。 ncpfsソフトウエアを解凍するには # cd /usr/src # tar xvfz mars_nwe-0.96.pl2.tgz mars_nweをmakeする パッケージを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を設定し、印刷してみます。両方ともうまくいけば、サーバは 動作しています。 9.2. lwared パッケージ Ales Dryak <A.Dryak@sh.cvut.cz> が開発しました。 LinuxをNCPベースのファイルサーバとして機能させる事ができます。 AlesはこのパッケージをLinWare Daemonの略として、lwaredと名付けました。 9.2.1. lwaredのできること lwaredサーバはNovell NCPのサブセットを提供します。プリントサービスは 含まれていませんが、messaging(@@)を実現しています。現在のところ、 Windown95やWindows NTクライアントとはあまり相性がよくないようです。 lwaredでは、IPXルーティングやSAPテーブルの更新のためには、別のプログラム を使う必要があります。クライアントの誤った動作によってサーバがクラッシュ することもあります。重要なことには、ファイル名変換の機能が実現されて いません。 サーバはNETXやVLM NetWareシェルと共に動作します。(@@) 9.2.2. lwaredを入手するには 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 9.2.3. lwaredを構築する lwaredパッケージを解凍する こんな感じ: # cd /usr/src # tar xvpfz lwared-0.95.tar.gz イーサネットとIPX機能をイネーブルしてカーネルを構築する もしあなたがα版の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のコンパイルとインストール 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 をエディットして、目的のディレクトリに書き換えて ください。 9.2.4. lwaredの設定と使い方 IPXネットワークの設定 まず最初にしなければならないのは、あなたのサーバがサポートしている 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サーバの設定 lwaredサーバに対してログインを許すためには、手動で二つのファイルを 設定する必要があります。以下の通り: /etc/lwpasswd 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. /etc/lwvtab LinWareのボリュームテーブルで、LinWareユーザに対して どのディレクトリが利用可能かが保持されています。(この ファイルはNFSにおける、/etc/exportsファイルと同様の機能 です。)シンプルな例は : SYS /lwfs/sys DATA /lwfs/data HOME /home フォーマットはシンプルです:ボリューム名の後に空白を置き、 その後ろにエクスポートされるLinuxのディレクトリ名を書きます。 サーバをスタートするためには、少なくともSYSボリュームの エントリーを記述する必要があります。 もし、DOSベースのユーザが、LinWareサーバをプライマリサーバとして 使える必要がある場合にはSYSボリュームとしてエクスポートしている ディレクトリの下にスタンダードSYSボリュームディレクトリを インストールする必要があります。 この場合、もちろんこれらのファイルは、 Novell Corporationの著作権が あるので、あなたはこれらについてのライセンスをもっていなければ なりません。 もしユーザがプライマリサーバとしてNovellファイルサーバを 使っているのならば、必要ありません。 lwaredサーバをスタートする じゃんじゃじゃーーーん! # lwared なんと簡単なんでしょうね?恐らくあなたは疑問があるでしょう。 通知(advertise)されるべきファイルサーバ名はどうやってわかるんでしょう? 上のようにサーバを起動した場合には、Linuxのhostnameで返される 名前がファイルサーバ名として通知されます。 他の名前をファイルサーバ名として通知したい場合には、例えば: # lwared -nlinux00 のようにすると、サーバ名はlinux00となります。 lwaredをテストする まず最初に、ネットワーク上のDOSクライアントから、slistで LinWareサーバが見えるかどうか、のテストをします。slistプログラム はNovellファイルサーバのSYSボリュームにあるので、どこかすでに ログインしているマシンからテストする必要があります。 もしこれがうまくいかなかった場合にはipxsapdとlwaredの 両方が起動されている事を確認してください。slistがうまくいったら、 次にサーバにアタッチして、ボリュームをマッピングします: C:> attach linux00/ales ... ... C:> map l:=linux00/data: C:> l: 他のマップと同じ様に、これらの新しいマップを扱う事ができるはずです。 ここでのファイルパーミッションは、あなたのLinWareログインに相当する Linuxアカウントに許されたパーミッションに基づいたものになります。 10. IP経由のIPXトンネル 二つの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が動作していることが必要です。 10.1. ipxtunnelを入手する ipxtunnelはsunsite.unc.edu <ftp://sunsite.unc.edu/pub/Linux/system/Network/daemons> または そのミラーサイトから入手することができます。 10.2. ipxtunnelを構築する 私の場合、以下のコマンドできれいに構築できました: # cd /usr/src # tar xvfz .../ipxtunnel.tgz # cd ipxtunnel # make 10.3. ipxtunnelの設定 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 当然のことですが、相手先のマシンでは、同様の設定で、ただし あなたのマシンをリモートマシンとして設定する必要があります。 10.4. ipxtunnelのテストと使い方 ipxtunnelは、IPXブリッジのようにふるまいます。ですから、接続している 相互のIPXネットワークは同じものでなければならないでしょう。Andreasは 実際にNovellファイルサーバが稼動している環境でのipxtunnelの動作を 確認していないので、もしあなたがこのような環境で使ってみた場合には ぜひAndreasに対して、動作したかどうかを知らせてあげてください。 ipxtunnelがうまく動作すれば、DOOMをリンク端の両方のマシンで動作させ、 お互いを見ることができるはずです。 Andreasはこのコードを高速の回線の上で使っているため、低速の回線での パフォーマンスに関してはわかりません。 ぜひ、何がうまく動作して、何はうまく動作しないか、を彼に知らせて あげてください。 11. NovellのLinux商用サポート 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社の製品は 注目に値するでしょう。 12. 著作権に関するメッセージ IPX-HOWTOの著作権は Terry Dawsonに属します。 著作権に関する記述とこの許可文書がすべての複製の中に保存されている ことを条件として、そのままの複製を作成し、配布することを許可します。 その文書が修正したものであると明記されており、上で述べたそのままの 文書と同じ条件を満たしていれば、この文書を修正したものの複製/配布を 許可します。 上に述べた修正版のドキュメントに関する条件を守る限り、 このドキュメントを他の言語に翻訳したものを複製/配布することを許可します。 新しいメディアにおいて元の文書への明確な参照が含まれることで 元の文書を承認するための要件が満たされるなら、上に述べた修正版に 関する条件を守る限り、この文書を他のメディアに変換することを許可 します。ここで何を「明確な」と定義するかは疑わしいところではあり ますが、それについても著作権所有者が決定する権利を保有します。 13. その他 && 謝辞 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>