次のページ 前のページ 目次へ

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>

次のページ 前のページ 目次へ