  Linux IPX-HOWTO
  Terry Dawson, <94004531@postoffice.csu.edu.au>
  v1.2, 14 January 1996
  川島浩, <kei@sm.sony.co.jp>
  v1.2j, 27 March 1996

  このドキュメントでは、Linux カーネルのサポートする IPX プロトコルを使
  用しているさまざまなツールを、どうやって入手、インストール、設定するか
  について述べます。

  注意: この文書はかなり以前に書かれたものなので、いまどきの Linux 環境
  にはあてはまらない箇所があります。 (JF Project)

  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.  関連するドキュメント

  (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ドキュメント:

     Ethernet-HOWTO
        <http://www.linuxdoc.org/HOWTO/Ethernet-HOWTO.html> (日本語訳)
        は、イーサネットの設定方法について詳しく書かれたドキュメントで
        す。

     PPP-HOWTO
        <http://www.linuxdoc.org/HOWTO/PPP-HOWTO/index.html> (日本語訳)
        は、バージョン 2.2.0d の Linux PPP 機能で利用できる IPX 機能に関
        して記述されています。

  3.1.  このドキュメントの新しいバージョンについて

  もしあなたが持っているこのドキュメントが、２ヶ月以上前のバージョンなら
  ば、新しいバージョンを入手することを強くお奨めします。 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

  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 のように、１６進表記で記述される。

     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 が設計したプロトコル。

     ハードウエアアドレス
        メディアアクセス層において物理ネットワーク中でホストをユニークに
        識別するための番号。イーサネットは一般に ':' で区切られた６個の
        １６進数で表記される。例) 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>

     に修正しました。このファイルは名前が変わったようです。

     が /use/sbin ディレクトリに、lwpasswd プログラムが /usr/bin に、IPX
     ユーティリティが /sbin に、そして最後になるが重要なのは、マニュアル
     ページが /usr/man ディレクトリ以下にインストールされます。もしこれ
     らのディレクトリ配置があなたのシステムに適していない場合には、関連
     した Makefile をエディットして、目的のディレクトリに書き換えてくだ
     さい。

  9.2.4.  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のテストと使い方

  d 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>

  14.  日本語訳について

  日本語訳 : 川島浩 (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)

