レンタルサーバ + Webシステム開発 = E-business

■レンタルサーバご利用参考資料
サーバご利用の参考にJF Project によるJF (Japanese FAQ)を掲載しています。

Linux JF(Japanese FAQ)Project.
JF は, Linux に関する解説文書・FAQ などを作成・収集・配布するプロジェクトです.

グリーンネット・トップページへ戻る


一覧に戻る
ATM on Linux HOWTO

Paul B Schroeder

IBM Corporation

paulsch@us.ibm.com

芳賀靖史 - 日本語訳

yasufumi.haga@nifty.com

Linux 用の ATM サポートは、現在プレアルファ段階ですが、実験用にリリース
したものがあります。このリリースでは、素の ATM コネクション(つまり PVC
と SVC)や IP over ATM、LAN エミュレーション、マルチプロトコル・オーバ
ー・ATM(MPOA)、それに Arequipa を始め、他にもいくつか魅力的な機能をサポ
ートしています。

2001年 10月 18日

Revision History                                                       
Revision 2.4.0        2001年 10月 18日          Revised by: PBS        
いくつか追加、変更を行なうと共に、 LaTeX から DocBook に変換。         

本文書では、Linux で ATM ネットワーク接続をサポートするのに必要な、ドラ
イバやツールのインストールや構成、および設定の方法を解説します。

最新情報については、ぜひ ATM on Linux home page  をご覧になって下さい。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Table of Contents
1. はじめに
   
    1.1. 謝辞
    1.2. 著作権
    1.3. メーリングリストについて
    1.4. CVS へのアクセスについて
   
2. インストール
   
    2.1. バイナリの RPM ファイルを使う
    2.2. ソースツリーを使う
    2.3. カーネルの設定
    2.4. ドライバのメッセージ
    2.5. メモリのデバッグ
    2.6. ATM ツール
    2.7. 追加パッケージ
   
3. デバイスの設定
   
    3.1. ATM Over TCP の設定
    3.2. ZN1221/ZN1225 の調整
    3.3. /proc/net/atm/にあるファイル
    3.4. ATM の診断
    3.5. SONET の診断
   
4. ネイティブ ATM PVC
   
    4.1. トラフィックツール
    4.2. ダイレクトセルアクセス
   
5. シグナル処理
   
    5.1. ATM の Hosts ファイル
    5.2. ANS
    5.3. シグナル処理デーモン
    5.4. ILMI デーモン
    5.5. アドレスの手動設定
    5.6. 2 枚の ATM NIC を、直接接続して動かす
    5.7. Q.2931 メッセージダンパー
   
6. IP Over ATM
   
    6.1. CLIP
    6.2. LAN エミュレーション
    6.3. MPOA
   
7. 日本語版謝辞
図書目録

1. はじめに

1.1. 謝辞

本文書は、主に Usage Instructions という文書が元になっています。この文
書は、バージョン 0.79 までの ATM on Linux というディストリビューション
で、一緒に配布していたもので、 Werner Almesberger 
が Institute for computer Communications and Applications (ICA)  に勤務しているときに著しました。

2 枚の ATM NIC を、直接接続して動かすの節は、主に Richard Jones
 が担当しました。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

1.2. 著作権

Copyright 2001 IBM Corporation

この部分の邦訳は参考です。正式なものは英文をお読み下さい。

Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License , Version 1.1 or any later version
published by the Free Software Foundation; with no Invariant Sections,
with no Front-Cover Texts, and with no Back-Cover Texts. A copy of the
license can be found at http://www.gnu.org/copyleft/fdl.html.

本文書の複製、配布、ないし変更は、 Free Software Foundationが公開してい
る、フリー文書利用許諾契約書( GNU Free Documentation License )  のバージョン 1.1 ないしはそれ以降の条
件下で許可する。ただし、変更不可能部分が無いこと、表表紙が無いこと、お
よび裏表紙が無いこと。当該ライセンスの複製は http://www.gnu.org/
copyleft/fdl.html にある。

本文書の大部分は、バージョン 0.79 までの ATM on Linux ディストリビュー
ションと共に配布している、 Usage Instructions を元にしている。当該ディ
ストリビューションは、 BSD License, GNU General Public License (GPL),
および GNU Lesser General Public License (LGPL) の条件下でリリースした
ものである。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

1.3. メーリングリストについて

ATM on Linux の議論はメーリングリストでも行なっています。ご意見やご質問
、ご助言など、あるいは実際開発に参加なさりたい場合などは、ぜひ当リスト
にご参加下さい。

当メーリングリストに投稿していただいたメールは、 http://
www.geocrawler.com/lists/3/SourceForge/6487/0/ にアーカイブしてあります
。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

1.4. CVS へのアクセスについて

CVS にある最新バージョンは至急使わなくては、などと勝手に思い込まず、リ
リースしたものを使い続けていただきたいのですが、最先端のものがお好みな
ら、以下にその方法を載せておきます。

まず、匿名でログインします。

┌─────────────────────────────────────────┐
│% cvs -d:pserver:anonymous@cvs.linux-atm.sourceforge.net.:/cvsroot/linux-atm login│
└─────────────────────────────────────────┘

パスワードのプロンプトが出たら、リターンキーを押すだけにして下さい。そ
れから、リポジトリをチェックアウトします。

┌────────────────────────────────────────────────┐
│% cvs -z6 -d:pserver:anonymous@cvs.linux-atm.sourceforge.net.:/cvsroot/linux-atm co -P linux-atm│
└────────────────────────────────────────────────┘

ブランチを指定してチェックアウトしてもかまいません。具体的には以下のよ
うにします。

┌────────────────────────────────────────────────────┐
│% cvs -z6 -d:pserver:anonymous@cvs.linux-atm.sourceforge.net.:/cvsroot/linux-atm co -r V2_5_0 linux-atm │
└────────────────────────────────────────────────────┘

いずれも場合も、"linux-atm" というディレクトリができ、そこに最新のソー
スが入ります。当該ディレクトリ内で作業する場合は、 CVS に '-d' オプショ
ンを付ける必要はありません。具体的には、次のようにして、

┌──────────────────────────────────┐
│% cvs -z6 up -d                                                     │
└──────────────────────────────────┘

リポジトリにある変更内容を、いずれも持ってくればいいのです(上記の例で
使用している '-d' オプションは、 "up" サブコマンドに対するもので、 CVS
ルートディレクトリを指定するために用いた '-d' とは違います)。

ソースツリーをチェックアウトしたら、当該ツリーのトップレベルディレクト
リで autotools スクリプトを実行する必要があります。そうしないと、ソース
ツリーの構成や構築、それにインストールはできません。

┌──────────────────────────────────┐
│# ./autotools                                                       │
│Running aclocal...                                                  │
│Running autoconf...                                                 │
│Running autoheader...                                               │
│Running automake...                                                 │
│automake: configure.in: installing `./install-sh'                   │
│automake: configure.in: installing `./mkinstalldirs'                │
│automake: configure.in: installing `./missing'                      │
│configure.in: 26: required file `./ltconfig' not found              │
│automake: Makefile.am: installing `./INSTALL'                       │
│automake: configure.in: installing `src/lane/ylwrap'                │
│Finished...  Now run './configure' and 'make'...                    │
└──────────────────────────────────┘

 

 tar+gzip したり RPM でまとめた、配布用ファイルを作りたい場合は、各々 
make dist か make rpm を実行して下さい。 tar+gzip したファイルはソース
ツリーのトップレベルディレクトリにできますし、 RPM ファイルは src/extra
/RPMS ディレクトリにできます。

CVS のアーカイブは http://cvs.linux-atm.sourceforge.net/cgi-bin/
viewcvs.cgi/linux-atm/linux-atm/ にあるので、ウェブで閲覧していただいて
もかまいません。

最後に、ソースをリポジトリにコミットするたびに、その diff をすべて電子
メールで受け取りたい場合ですが、 "linux-atm-commits": http://
lists.sourceforge.net/lists/listinfo/linux-atm-commits というメーリング
リストがありますのでご利用下さい。

このメーリングリストは、ユーザーの受信専用とします。(内容が、当リスト
を通じて送るパッチに関することだとしても)議論や質問は許可しません。議
論はすべて linux-atm-general メーリングリストで続けて下さい。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

2. インストール

本パッケージをインストールするには、以下のものが必要になります。

 ・ パッケージ自体。 http://linux-atm.sourceforge.net/dist.php  から入手できます。
   
 ・ Linux カーネルのバージョン 2.4.x。例えば、 ftp://ftp.kernel.org/pub
    /linux/kernel/v2.4/ 
    から入手できます。
   
 ・ Perl のバージョン 4、ないしは 5
   
 ・ メモリのデバッグをしたい場合は MPRも必要。例えば、 ftp://
    ibiblio.org/pub/Linux/devel/lang/c/  から入手できます。
   
 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

2.1. バイナリの RPM ファイルを使う

自分でソースの展開や構築をするのは時間と労力の浪費だ、と思っている場合
は、 RPM 形式でも ATM ツールを配布していますから、それを使って下さい。
これは、次のようにすればインストールできます。

┌──────────────────────────────────┐
│rpm -ivh linux-atm-x.x.x-x.rpm                                      │
└──────────────────────────────────┘

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

2.2. ソースツリーを使う

この場合は、まず ATM on Linux ディストリビューションを展開します。

┌──────────────────────────────────┐
│tar xzvf linux-atm-x.x.x.tar.gz                                     │
└──────────────────────────────────┘

ディストリビューションを展開すると、 linux-atm-x.x.x/ ディレクトリがで
き、その下にサブディレクトリがいくつかできます。中でも重要なのは、次の
ディレクトリです。

doc/
   
    (この HOWTO を含む)SGML DocBook 形式の文書があります。
   
src/sigd/
   
    UNI 3.0 と UNI 3.1、および UNI 4.0 のシグナル処理デーモン atmsigd
    があります。
   
src/saal/
   
    シグナル処理用 AAL ライブラリ (SSCOP と SSCF、および SAAL) がありま
    す。
   
src/qgen/
   
    Q.2931 形式のメッセージ処理があります。
   
src/ilmid/
   
    ILMI アドレス登録デーモン ilmid があります。
   
src/maint/
   
    次の ATM 保守プログラムがあります。:atmaddr, atmdiag, atmdump,
    atmloop, atmtcp, enitune, esi, sonetdiag, saaldump, および zntune
   
src/test/
   
    次のテストプログラムがあります。:align, aping, aread, awrite, br,
    bw, isp, ttcp_atm, window
   
src/arpd/
   
    ATMARP 用のツールとデーモン atmarp と atmarpd があります。
   
src/led/
   
    LAN エミュレーションデーモン zeppelin があります。
   
src/lane/
   
    LAN エミュレーションサーバー bus と lecs、および les があります。
   
src/mpoad/
   
    マルチプロトコル・オーバー・ATM デーモン mpcd があります。
   
src/debug/
   
    次のデバッグツールがあります。:delay, ed, encopy, endump, svctor,
    zndump, および znth
   
src/lib/
   
    アプリケーション、およびデーモン用ライブラリがあります。
   
src/man/
   
    種々雑多なマニュアルページがあります。
   
src/extra/
   
    追加パッケージと RPM の spec ファイルがあります。
   
src/config/
   
    設定と rc ファイルのサンプルがあります。
   
src/switch/
   
    スイッチ・ファブリック・コントロールがあります(開発中)。
   
 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

2.3. カーネルの設定

    注意: 新しいカーネルの構築やインストールに不慣れな場合は、ぜひ The
    Linux Kernel HOWTO  を参照して下さい。
   
カーネルのディストリビューションを展開後、 Linux カーネルのソースツリー
のトップレベルで、いつもの、 make config か make menuconfig、あるいは 
make xconfig を行なって下さい。まず、以下のオプションを有効にします。
┌──────────────────────────────────┐
│Prompt for development and/or incomplete code/drivers               │
│  (CONFIG_EXPERIMENTAL)                                             │
└──────────────────────────────────┘
それから、次のオプションを見つけて、有効にして下さい。
┌───────────────────────────────────┐
│Asynchronous Transfer Mode (ATM, EXPERIMENTAL) (CONFIG_ATM)           │
│  Use "new" skb structure (CONFIG_ATM_SKB)                            │
│  Classical IP over ATM (CONFIG_ATM_CLIP)                             │
│    Do NOT send ICMP if no neighbour (CONFIG_ATM_CLIP_NO_ICMP)        │
│  LAN Emulation (LANE) support (CONFIG_ATM_LANE)                      │
│    Multi-Protocol Over ATM (MPOA) support (CONFIG_ATM_MPOA)          │
│ATM over TCP (CONFIG_ATM_TCP)                                         │
│Efficient Networks ENI155P (CONFIG_ATM_ENI)                           │
│  Enable extended debugging (CONFIG_ATM_ENI_DEBUG)                    │
│  Fine-tune burst settings (CONFIG_ATM_ENI_TUNE_BURST)                │
│    Enable 16W TX bursts (discouraged) (CONFIG_ATM_ENI_BURST_TX_16W)  │
│    Enable 8W TX bursts (recommended) (CONFIG_ATM_ENI_BURST_TX_8W)    │
│    Enable 4W TX bursts (optional) (CONFIG_ATM_ENI_BURST_TX_4W)       │
│    Enable 2W TX bursts (optional) (CONFIG_ATM_ENI_BURST_TX_2W)       │
│    Enable 16W RX bursts (discouraged) (CONFIG_ATM_ENI_BURST_RX_16W)  │
│    Enable 8W RX bursts (discouraged) (CONFIG_ATM_ENI_BURST_RX_8W)    │
│    Enable 4W RX bursts (recommended) (CONFIG_ATM_ENI_BURST_RX_4W)    │
│    Enable 2W RX bursts (optional) (CONFIG_ATM_ENI_BURST_RX_2W)       │
│ZeitNet ZN1221/ZN1225 (CONFIG_ATM_ZATM)                               │
│  Enable extended debugging (CONFIG_ATM_ZATM_DEBUG)                   │
│  Enable usec resolution timestamps (CONFIG_ATM_ZATM_EXACT_TS)        │
│IDT 77201 (NICStAR) (CONFIG_ATM_NICSTAR)                              │
│  Use suni PHY driver (155Mbps) (CONFIG_ATM_NICSTAR_USE_SUNI)         │
│  Use IDT77015 PHY driver (25Mbps) (CONFIG_ATM_NICSTAR_USE_IDT77105)  │
│Madge Ambassador (Collage PCI 155 Server) (CONFIG_ATM_AMBASSADOR)     │
│  Enable debugging messages (CONFIG_ATM_AMBASSADOR_DEBUG)             │
│Madge Horizon [Ultra] (Collage PCI 25 and Collage PCI 155 Client)     │
│  Enable debugging messages (CONFIG_ATM_HORIZON_DEBUG)                │
│Interphase ATM PCI x575/x525/x531 (CONFIG_ATM_IA)                     │
│  Enable debugging messages (CONFIG_ATM_IA_DEBUG)                     │
└───────────────────────────────────┘

ENI ドライバの"burst settings"を有効にすれば、細かい調整ができるように
なります。デフォルトの設定では、 PCI チップセットがバッファオーバーラン
してしまうようなら、このオプションが必要かも知れません。 "burst
settings"の変更に関連する詳細な説明については、オンラインヘルプの
"CONFIG_ATM_ENI_TUNE_BURST" を参照して下さい。

drivers/atm/nicstar.h ファイルには、IDT 77201 ドライバ用に、いくつか変
更可能な設定項目があることは覚えておいて下さい。

中には、互換性のあるカードでも使えるドライバがあります。カードの互換性
に関する最新情報は、 ATM on Linux information  のページにあります。

その後、カーネルを構築してリブートして下さい。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

2.4. ドライバのメッセージ

ENI155p-MF ドライバを使用するようにした場合は、以下のようなメッセージが
2 行出るはずです(512kB は -C バージョンで、2048KB は -S バージョンです
)。

┌────────────────────────────────────┐
│eni(itf 0): rev.0,base=0xff400000,irq=10,mem=512kB (00-20-EA-00-07-56)  │
│eni(itf 0): FPGA,MMF                                                    │
└────────────────────────────────────┘

一方、ZN1221/ZN1225 ドライバを使用するようにした場合は、以下のようなメ
ッセージになります。

┌────────────────────────────────────┐
│zatm(itf 0): rev.3,base=0xf800,irq=11,mem=128kB,MMF (00-20-D4-10-2A-80) │
│zatm(itf 0): uPD98401 0.5 at 30.024 MHz                                 │
│zatm(itf 0): 16 shapers, 32 pools, 2048 RX, 3958 VCs                    │
└────────────────────────────────────┘

Triton ベースのシステムで使いたい場合は、最低でもリビジョンレベル 3 の
ボードが必要ですから、注意して下さい。

"ATM over TCP" デバイスは、 atmtcp を用いて、後で生成するので、 "ATM
over TCP" ドライバしか使わないようにした場合は、スタート時のメッセージ
は出ません、注意して下さい。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

2.5. メモリのデバッグ

メモリアロケーション用のオプションでデバッグ機能を有効にしたい場合は、
ATM ツールのコンパイル前に、MPR をインストールする必要があります。

バイナリの RPM パッケージをダウンロードすることにしたのなら、 MPR は次
のようにすればインストールできます。

┌──────────────────────────────────┐
│rpm -ivh mpr-x.x-x.rpm                                              │
└──────────────────────────────────┘

ソースを使うことにした場合は、以下のようにして、mpr-x.x.tar.gz を展開し
て下さい。

┌──────────────────────────────────┐
│tar xzvf mpr-x.x.tar.gz                                             │
└──────────────────────────────────┘

それから次のコマンドを実行します。

┌──────────────────────────────────┐
│cd mpr-x.x                                                          │
│./configure x86-linux                                               │
│make                                                                │
│make install                                                        │
└──────────────────────────────────┘

MPR をインストールした状態でプログラムをコンパイルすれば、 malloc や
free の一般的な誤用に関しては、自動的に検出します。また、MPRPC と MPRFI
を設定しておけば、メモリの割り当て追跡機能が有効になります。詳細は、MPR
ディストリビューションにある、 doc/mpr.html や、あるいは doc/mpr.ps を
参照して下さい。

メモリのデバッグ機能を入れても、この二つの環境変数を設定しなければ、実
行時のオーバーヘッドはわずかなものにすぎません。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

2.6. ATM ツール

さあ、最終段階です。ATM ツールの構成と構築を行ないます。構成が必要なの
は、スイッチに UNI 3.1 か 4.0 を使っているか、もしくは何かバグがある場
合だけです。構成オプションは、linux-atm ディストリビューションにある、 
./configure に適切なオプションを渡す方法にしました。

   
    注意: 使用できるオプションをすべて見るには、 linux-atm ディストリビ
    ューションのトップレベルディレクトリで、 ./configure --help を実行
    して下さい。
   
ATM ツールは、次のコマンドを使って構築します。

┌──────────────────────────────────┐
│cd linux-atm-x.x.x                                                  │
│./configure                                                         │
│make                                                                │
│make install                                                        │
└──────────────────────────────────┘

./configure の起動時に、特に何も指定しなければ、実行可能ファイルは make
install で、それぞれ /usr/local/bin と /usr/local/sbin にインストールし
ます。設定ファイルは /usr/local/etc にインストールします(ただし
hosts.atm は別です。このファイルは /etc にインストールします)。ライブ
ラリはとヘッダーファイルはそれぞれ、 /usr/local/lib と /usr/local/
include にインストールします。マニュアルページは、 /usr/local/man にイ
ンストールします。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

2.7. 追加パッケージ

一部のプログラムは、 ATM 関連以外で既に配布されている、大規模パッケージ
が元になっているものがあります。いくつかのパッケージについては、 ATM on
Linux のディストリビューションにパッチが入っており、 src/extra ディレク
トリに置いてあります。

現時点で使用可能な追加パッケージは、次のとおりです。

tcpdump 
   
    ネットワークトラフィックのダンプ(ATM 用に拡張済み)。
   
ANS
   
    ATM ネームサーバー(元は、named 4.9.5)
   
text2atm は、ANS が使えれば自動的に使用しますので、注意して下さい。です
から、ans のインストールが必要なのは、ネームサーバーの諸機能を提供して
いるシステムか、 ATM 関連の保守ツール(nslookup 等々)が必要な場合だけ
です。

hosts2ans.pl スクリプトは、 /etc/hosts.atm ファイルを ANS のゾーンファ
イルに変換するもので、 src/extra/ANS/ ディレクトリに置いてあります。使
用方法はこのファイルの冒頭で説明しています。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

3. デバイスの設定

本節では、デバイス固有の設定作業と、 ATM や SONET レベルで行なう一般的
な診断手順を説明します。ハードウェアの取り付けと診断に関する詳細は、ぜ
ひそのアダプターのドキュメントを参照して下さい。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

3.1. ATM Over TCP の設定

本物の ATM ハードウェアが無くても、 "ATM over TCP" ドライバを使えば、
API が使えます。この API は、リモートデバイスに直結している ATM デバイ
スをエミュレートするものです(つまり、VPI/VCI スワッピングはありません
)。

(双方向の)"ワイア"を一本確立するには、両システムで root になり(また
は、同一システムの両側を走らせて、 "インタフェース"を二つ作ってそれを接
続し)、どちらかで、以下のコマンドを実行します(それを "a" としましょう
)。

┌──────────────────────────────────┐
│# atmtcp virtual listen                                             │
└──────────────────────────────────┘

それから、別のシステム("b")で、以下のコマンドを実行します。

┌──────────────────────────────────┐
│# atmtcp virtual connect address_of_a                               │
└──────────────────────────────────┘

双方の atmtcp はその状況を報告し、カーネルは両方のシステムで、以下のよ
うなメッセージを表示するはずです。

┌──────────────────────────────────┐
│Link 0: virtual interface 2                                         │
│Link 1: incoming ATMTCP connection from 127.0.0.1                   │
└──────────────────────────────────┘

および

┌──────────────────────────────────┐
│Link 0: virtual interface 3                                         │
│Link 1: ATMTCP connection to localhost                              │
└──────────────────────────────────┘

この際、atmtcp が動き続けることと、割り込みをかけると仮想ワイアが切れる
ことに注意して下さい。

ポート番号(デフォルトは 2812)を指定すれば、同一マシンに "ワイア" が複
数付けられます。しかし AAL 処理がまったく実行されないことに注意して下さ
い。したがって、データを送信したものとは別の AAL(例えば AAL0)を使って
データを受信するのは不可能です

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

3.2. ZN1221/ZN1225 の調整

ZeitNet 社の ZN1221 アダプターと ZN1225 アダプターは、受信用に予めアロ
ケートしておいた、フリーメモリバッファのプールを用います。 SDU がある最
大サイズになっている VC を受信用にオープンすると、デバイスドライバが対
応するプールにフリーバッファを詰め込みます。データの受信中は、アダプタ
ーはバッファを削除します。そして残りのバッファ数があるしきい値を下回る
と、デバイスドライバは、再度プールにフリーバッファを補充します。

フリーバッファ数の上限と下限、および新しいデータオフセットに適用するし
きい値は、 zntune プログラムを使って設定できます。使い方は次のとおりで
す。

zntune [-l low_water] [-h high_water] [-t threshold] itf [pool]

プール番号を指定しないと、すべてのプールにその変更内容を適用します。プ
ール 2 には 64 バイトのパケットを格納し、プール 3 には 128 バイトのパケ
ットを格納します、等々。プール 0 とプール 1 は現在未使用です。

以下のように、新しいパラメータをつけずに zntune を実行すれば、その時点
の設定といくつかの使用状況の統計が得られます。

zntune [-z] itf [pool]

"Size" 欄は、バイト単位のバッファサイズを表しています。 "Ref" 欄は、そ
のプールを使用している、オープン中の VC 数です。 "Alarm" 欄は、カウンタ
のリセット後に、フリーバッファ数が下限値を下回った回数です。同様に、
"Under" 欄は、対応するプールが空だったという理由で、内向きの PDU を破棄
した回数です。 

"Offs", "NxOf", "Count" および "Thres"、これらの欄は、整列の適用状況を
表しています。 "Offs" は、その時点でドライバが内向きの PDU 内に想定して
いる、ユーザーデータのオフセットです。シングルコピーの場合、データをペ
ージ境界で受信するように受信バッファが整列します。 "NxOf" は、一番新し
く受信した PDU のユーザーデータオフセットです。このオフセットは、その時
点で想定しているオフセットとは別のものです。 "Count" は、"NxOf" のオフ
セット順に受信した PDU 数です。最後の "Thres" はしきい値で、 "Count" が
このしきい値を越えないと、 "NxOf" は新しいカレントオフセットになりませ
ん。

"Alarm"カウンタと "Under"カウンタをリセットする場合は、 -z オプションを
使って下さい。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

3.3. /proc/net/atm/にあるファイル

ATM サブシステムに関するある種のステータス情報は、 /proc/net/atm/ にあ
るファイルからわかります。 /proc/net/atm/arp ファイルには、"クラシカル
IP over ATM" 固有の情報が入っています。 CLIP を参照して下さい。

アクティブな ATM デバイスは、すべて /proc/net/atm/devices にリストされ
ています。この中には、各デバイスのインタフェース番号、種類を表すラベル
、エンドシステムの識別子 (ESI)、それに統計情報が示してあります。この統
計情報の内容は、 atmdiag を使ってわかるものに該当します。

個々の ATM デバイスについては、(例えば、eni:0 のような)種類:番号とい
う形式のエントリを複数登録することがあり、これにデバイス固有の情報が入
っています。

/proc/net/atm/pvc と /proc/net/atm/svc には、PVC と SVC ソケットがすべ
てリストされています。ここには、いずれのタイプのソケットについても、VPI
と VCI 番号が載っています。 PVC に関しては、その後に AAL とトラフィック
クラス、それに受信と送信のそれぞれの方向について選んだ PCR が載っていま
す。一方 SVC に関しては、SVC の状態と通信相手のアドレスが載っています。
インタフェース番号が 999 になっている SVC は、 "State" 欄で示しているよ
うに、特別な制御用に使用します。

さらに、/proc/net/atm/vc は、バッファサイズと、 ATM ソケットすべてに関
する内部の追加情報を示しています。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

3.4. ATM の診断

atmdiag プログラムを使って、 ATM デバイスドライバの様々なカウンタの問い
合わせができます。詳細は該当するマニュアルページを参照して下さい。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

3.5. SONET の診断

SONET の診断ツールはリンクの性能を監視したり、エラーをシミュレートする
のに使用できます。現在の SONET の統計情報を得るには、引数に ATM のイン
タフェース番号を付けて、このツールを実行します。例えば以下のようにしま
す。

┌──────────────────────────────────┐
│% sonetdiag 0                                                       │
└──────────────────────────────────┘

カウンタは、-z オプションを付ければリセットできます。

┌──────────────────────────────────┐
│# sonetdiag -z 0                                                    │
└──────────────────────────────────┘

シミュレートできるネットワーク障害には、次のものがあります。 [1]

sbip
   
    セクションエラー (B1) を挿入します。
   
lbip
   
    ラインエラー (B2) を挿入します。
   
pbip
   
    パスエラー (B3) を挿入します。
   
frame
   
    強制的にフレームロス (RX) を起こします。
   
los
   
    ロスオブシグナルを挿入します。
   
lais
   
    ラインアラーム通知シグナルを挿入します。
   
pais
   
    パスアラーム通知シグナルを挿入します。
   
hcs
   
    ヘッダーのチェックサムエラーを挿入します。
   
障害は、対応するキーワードをコマンドラインに追加すれば有効になり、キー
ワードの直前にマイナス記号 (-) を付ければ、障害をクリアします。例えば以
下のように使います。

┌──────────────────────────────────┐
│a# sonetdiag -z 0 >/dev/null                                        │
│b# sonetdiag -z 0 >/dev/null                                        │
│a# sonetdiag 0 los                                                  │
│a# sonetdiag 0 -los                                                 │
│b# sonetdiag 0 | grep BIP                                           │
│Section BIP errors:      56200                                      │
│Line BIP errors:           342                                      │
│Path BIP errors:           152                                      │
│a# sonetdiag 0 | grep FEBE                                          │
│Line FEBE:                 342                                      │
│Path FEBE:                 152                                      │
└──────────────────────────────────┘

何らかの診断エラーが挿入できるようになっていると、 sonetdiag を使用して
統計情報を取得する際、そのキーワードを表示します。ハードウェアが自動的
に無効にするエラー挿入もあることに注意して下さい。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

4. ネイティブ ATM PVC

PVC は直接接続しているマシンでも、スイッチ経由で接続しるマシンでも、い
ずれの場合も使用できます。後者の場合、セルフォワードの設定は、スイッチ
に対して手動で行なわなければなりません。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

4.1. トラフィックツール

aread/awrite と br/bw は、ATM の API にアクセスするための簡単なプログラ
ムです。 awrite は AAL5 PDU の第二パラメータに渡したテキスト文字列を送
信し、 aread は AAL5 PDU を 1 個受信して、その内容を 16 進数で表示しま
す。両プログラムとも、該当するシステムコールの戻り値と、 errno の現在値
も表示します。

bw は、標準入力も、(番号を第四パラメータに渡した場合は) 8kB の AAL5
PDU にある任意のデータを含むブロックのストリームも、いずれも送信します
。 br は AAL5 PDU を受信して、その内容を標準出力に書き出します。

aread, awrite, br, bw, これら四つの第一パラメータは、常に PVC アドレス
、つまり、ATM インタフェース番号と VPI 番号、それに VCI 番号を、ドット
で区切って並べたものです。インタフェース番号は、ゼロなら省略してもかま
いません。例えば、以下のようなものです。

┌──────────────────────────────────┐
│% awrite 1.0.42 hi                                                  │
└──────────────────────────────────┘

中には、 VPI == 0 しかサポートしていないアダプタもあるので、注意して下
さい。また、例えば 0 から 1023 までというように、 VCI の範囲にも制限が
あるかも知れません。インタフェース番号は、スタート時にドライバが表示す
る、初期化メッセージで分かります。 atm0 ならインタフェース 0 で、 atm1
ならインタフェース 1、等々というようになります。(例えば atmtcp ばかり
ではなく)本物の ATM アダプタを装備しているシステムなら、アダプタは、通
常 atm0 にあります。

aping は、PVC 上で短い AAL5 PDU の送受信を行ないます。このプログラムは
、送信するメッセージがエコーバックされるか、他端の同じようなプログラム
がメッセージストリームを生成すると思っていますが、長時間何もメッセージ
を受信しないと、エラーを報告します。 aping は、aread のように、 PVC を
指定して起動します。

"本物の"テストの際は、このパッケージに付いてくる、 ttcp の修正版を使用
して下さい。修正前のオリジナルは ftp://ftp.sgi.com/sgi/src/ttcp/ にあり
ます。修正に際しては、以下のオプションを付け加えました。

-a
   
    UDP/TCP ではなく、ネイティブの ATM を使用します。 PVC については、
    アドレスは [itf.]vpi.vci 形式でなければなりません。 SVC については
    、ATM のエンドシステムの有効なアドレスにしてください。
   
-P num
   
    num セル毎秒のピークセルレートで、 CBR コネクションを使用します。デ
    フォルトでは、UBR を使用します。
   
-C
   
    (UDP チェックサムを無効にします。
   
例:

┌──────────────────────────────────┐
│%a ttcp_atm -r -a -s 0.90                                           │
│%b ttcp_atm -t -a -s 0.90                                           │
└──────────────────────────────────┘

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

4.2. ダイレクトセルアクセス

デバイスドライバがサポートしているアダプタでは、素のセル ("AAL0") にア
クセスします。個々のセルは、 atmdump で作れるし受信もできます。以下のそ
の例を載せます。

┌──────────────────────────────────┐
│a% sleep 10; date | ./atmdump -t 1 -c 0.51                          │
│b% ./atmdump 0.51                                                   │
│825079645.192480: VPI=0 VCI=51, GFC=0x0, CLP=1, Data SDU 1 (PTI 1)  │
│   46 72 69 20 46 65 62 20 32 33 20 31 32 3a 34 37                  │
│   3a 32 35 20 47 4d 54 20 31 39 39 36 0a 00 00 00                  │
│   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00                  │
└──────────────────────────────────┘

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

5. シグナル処理

5.1. ATM の Hosts ファイル

ATM のアドレスはそのままでは使いずらいので、ほとんどの ATM ツールでは、
数字を並べたアドレスの代わりに、名前も認めています。名前と数字のマッピ
ングは、 /etc/hosts.atm というファイルで定義します。このファイルの構造
は、/etc/hosts ファイルと似たものになっています。

┌──────────────────────────────────┐
│数字のアドレス 名前                                                 │
└──────────────────────────────────┘

例えば、以下のようなものです。

┌──────────────────────────────────┐
│47.0005.80FFE1000000F21A26D8.0020EA000EE0.00 pc2-a.fqdn pc2-a       │
│47.0005.80FFE1000000F21A26D8.0020D4102A80.00 pc3-a.fqdn pc3-a       │
└──────────────────────────────────┘

数字のアドレスは、[api] で説明している形式なら、どの形式で指定してもか
まいません。 Linux システムの数字のアドレスは、 atmaddr -n コマンドを使
って決定します(アドレスの手動設定も参照して下さい)。 

ATM ツールの多くは、アドレスを表示する際、該当する名前も見つけようとし
ます。数字のアドレスから名前に変換する場合、そのファイルにある最初に見
つかった該当する名前を使用します。

SVC 用の ATM アドレスの他に、 /etc/hosts.atm には PVC アドレスも格納で
きます。名前が同じでアドレスタイプが違うものを格納すると、最初に該当す
るものを選びます。つまり、アプリケーションが明示的に SVC アドレスだけを
要求すれば、 PVC アドレスはいずれも無視されます。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

5.2. ANS

ATM ネームサーバー (ANS) にアクセスできるのなら(例えば、ANS 拡張をイン
ストールしてあるなら)、それだけを使ってもいいし、 /etc/resolv.conf に
hosts ファイルの他に、 ANS が動いているホストを指定して、両方使用しても
かまいません。

E.164 アドレスの逆引きには、電話の国別コードが必要になりまが、このコー
ドリストは International Telecommunications Union 
から入手できます。 List of ITU-T Recommendation E.164 Assigned Country
Codes  は、
現在 PDF 形式と MS-Word 形式が利用できます。

   
    注意: 万が一 URL が古くなっていても、 ITU のウェブサイトでこの文書
    のタイトルを検索すれば、簡単に見つかります。
   
atm-linux ディストリビューションに入っている src/lib/pdf2e164_cc.pl ス
クリプトを使えば、 PDF 版の国別コードリストから E.164 国別コード表が作
れます。例えば以下のように使います。

┌──────────────────────────────────┐
│perl pdf2e164_cc.pl e164_xxx.pdf >/etc/e164_cc                      │
└──────────────────────────────────┘

上記のスクリプトを実行する際、 pdftotext を使用する必要があることに注意
して下さい。このプログラムは xpdf  から入
手できます。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

5.3. シグナル処理デーモン

マニュアルページは次のようになっています。 atmsigd(8) atmsigd.conf(4)

atmsigd では、"ポイント・ツー・マルチポイント" のサポートに、大きな制限
があります。注意して下さい。ポイント・ツー・マルチポイントツリーのシン
グルリーフでしか動作しません。

デフォルトでは、atmsigd は、UNI バージョンを動的に構成し、それに従うよ
うな構成になっています。具体的に言えば、linux-atm のソースディストリビ
ューションの、トップレベルディレクトリにある、 ./configure スクリプトに
--with-uni=VERSION を指定すれば、UNI 3.0 か 3.1, あるいは 4.0 を、コン
パイル時に指定できます。

atmsigd は病的なほど疑り深い設定になっていますので、気をつけて下さい。
何か異常な問題を検知すると、よく止まってしまいます。この件については、
今後は当然変更されると思います。

また、-c オプションに指定した場所で設定ファイルも探します。デフォルトの
場所は /usr/local/etc/atmsigd.conf になっています。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

5.4. ILMI デーモン

ILMI はアドレスを自動設定する仕組みを提供するデーモンです。しかし、スイ
ッチが無い場合や、ILMI をサポートしていないスイッチの場合は、手作業で
ATM アドレスを設定する必要があります(アドレスの手動設定を参照して下さ
い)。アドレスを手作業で設定しているインタフェースでは、 ILMI は使わな
いよう注意して下さい。

ILMI デーモンは、以下のようにしてスタートします。

ilmid [-b] [-d] [-i local_ip] [-l log_file] [-q qos] [-u uni_version]
[-v] [-x] [itf]

-b
   
    バックグラウンドで動かします。初期化後、 fork した子プロセス内で動
    かします。
   
-d
   
    デバッグ出力を有効にします。デフォルトでは、 ilmid は、非常に物静か
    です。
   
-i local_ip
   
    スイッチから問い合わせがあった時に答える IP アドレスです。ドットで
    区切った 10 進数でも、テキスト形式でも、どちらでもかまいません。デ
    フォルトでは、ilmid は、発見的方法論を用いて、ローカルの IP アドレ
    スを選びます。
   
-l logfile
   
    診断メッセージを、標準エラー出力ではなく、指定したファイルに書き出
    します。システムログ採取プログラムに診断結果を送る場合は、 syslog
    という特定の名前を用います。
   
-q qos
   
    指定したサービス品質を用いるよう、ILMI VC を設定します。デフォルト
    では、ILMI の VC で、リンク速度の UBR を使用します。
   
-u uni_version
   
    UNI バージョンを設定します。指定できる値は、 3.0 と 3.1、および 4.0
    の三つです。真ん中の小数点は省略してもかまいません。デフォルト値は
    ilmid のコンパイルの仕方によって異なりますが、普通は、3.0 です。
   
-v
   
    拡張デバッグ出力を有効にします。
   
-x
   
    ColdstartTrap 内に変数のバインディングを含めないようにします。(例
    えば、LS100 のように)中にはこのオプションを設定しないと動作しない
    スイッチがあります。
   
 

インタフェース番号を指定しない場合、 ilmid は、インタフェース 0 を用い
ます。 atmaddr コマンド(下記参照)を使えば、アドレスが正しく登録された
かどうかが確認できます。

エージェントがサポートしているのは、 ATM フォーラムの UNI 3.1 仕様にあ
る 5.8 節に明記してある、アドレス登録手順だけです。この手順に含まれるの
は、ホスト上のネットワークプレフィックスをホストに登録するスイッチと、
それに応えて最終的な ATM アドレスをスイッチに登録するホストです。ホスト
は、スイッチが登録したネットワークプレフィックスに、 ESI (エンドシステ
ム識別子)とヌルセレクタバイトを追加するという方法で、これを行ないます
。ESI は ATM インタフェースの物理アドレス、または MAC アドレスです。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

5.5. アドレスの手動設定

お使いのスイッチが ILMI をサポートしていない場合、スイッチ側と PC 側の
両方で、ATM アドレスを手作業で設定しなければなりません。 Linux 側では、
ilmid が邪魔していないことを確かめてから、 atmaddr コマンドを使ってアド
レスを設定して下さい。

マニュアルページは次のとおりです。 atmaddr(8)

ATM アドレスを手作業でスイッチに設定する方法は、物によって異なります。
Fore ASX-200 では、次のコマンドを使って行ないます。

┌──────────────────────────────────┐
│conf nsap route new nsap_addr 152 port vpi                          │
└──────────────────────────────────┘

例えば、

┌────────────────────────────────────┐
│conf nsap route new 47000580ffe1000000f21510650020ea000ee000 152 1a2 0  │
│                    |<---- NSAP prefix ----->||<--ESI--->|^^            │
│                                                          SEL           │
└────────────────────────────────────┘

NSAP アドレス全体の長さは常に 40 桁でなければなりません。別のプレフィッ
クスと、お使いのアダプタにある ESI 以外の ESI を付けたアドレスも使えま
すので、覚えておいて下さい。セレクタバイト (SEL) の値は無視します。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

5.6. 2 枚の ATM NIC を、直接接続して動かす

2 枚の NIC を直接接続し、間にスイッチを置かずに動かすこともできます。簡
単なテスト環境としては最高です。

まず、UTP か STP-5 を使うつもりなら、適したケーブルが必要です。筆者らの
経験では、標準的な 100Base-T のケーブルで直接接続してもうまく行きません
でした。使っているピン配置が違っているようです。何度か試した結果、次の
ケーブルでうまくいくことが分かりました。

┌──────────────────────────────────┐
│RJ45                            RJ45                                │
│   1        ------------        7                                   │
│   2        ------------        8                                   │
│                                                                    │
│   7        ------------        1                                   │
│   8        ------------        2                                   │
│                                                                    │
│3 番、4 番、5 番、6 番の各ピンは未接続                              │
└──────────────────────────────────┘

バック・ツー・バックケーブルの両端にある、 RJ45 コネクタに適当に色付け
するという方法で、例示する方が良いかもしれません。

┌──────────────────────────────────┐
│RJ45-1                                                              │
│   1 - 茶                                                           │
│   2 - 白/茶                                                       │
│   3 - 未接続                                                       │
│   4 - 未接続                                                       │
│   5 - 未接続                                                       │
│   6 - 未接続                                                       │
│   7 - オレンジ                                                     │
│   8 - 白/オレンジ                                                 │
└──────────────────────────────────┘

二番目のコネクタには次の色づけをします。

┌──────────────────────────────────┐
│RJ45-2                                                              │
│   1 - オレンジ                                                     │
│   2 - 白/オレンジ                                                 │
│   3 - 未接続                                                       │
│   4 - 未接続                                                       │
│   5 - 未接続                                                       │
│   6 - 未接続                                                       │
│   7 - 茶                                                           │
│   8 - 白/茶                                                       │
└──────────────────────────────────┘

 

1 番と 7 番、および 2 番と 8番を、それぞれ接続して、超簡単なループバッ
クケーブルを作ることもできます。

ここで、マシンを二台用意し、名前をそれぞれ "virgil"、そして "nestor" と
します。名前は必要に応じて、ご自分のものに置き換えて下さい。

ATM コネクションの一方には、ネットワーク版の atmsigd を使う必要がありま
す。また、他方には通常のユーザー版を使って下さい。では、nestor で、以下
のようにして atmsigd を起動します。

┌──────────────────────────────────┐
│atmsigd -b -m network                                               │
└──────────────────────────────────┘

virgil では、以下のようにします。

┌──────────────────────────────────┐
│atmsigd -b                                                          │
└──────────────────────────────────┘

スイッチが無いと、ILMI は使えません。その代わり、/etc/hosts.atm を作っ
て、そこに二つのダミーアドレスを書いて下さい。この例の ATM hosts ファイ
ルは次のようになります。

┌──────────────────────────────────┐
│47.0005.80FFE1000000F21A26D8.0020EA000EE0.00    nestor-atm          │
│47.0005.80FFE1000000F21A26D8.0020D4102A80.00    virgil-atm          │
└──────────────────────────────────┘

もちろん、これは完全な模造アドレスですが、公開されている ATM ネットワー
クやプライベートなものに接続しない限り、問題にはならないと思います。ド
ライバに正しくアドレスを設定するには、この例の、virgil では以下のように
します

┌──────────────────────────────────┐
│atmaddr -a virgil-atm                                               │
└──────────────────────────────────┘

そして nestor では

┌──────────────────────────────────┐
│atmaddr -a nestor-atm                                               │
└──────────────────────────────────┘

のようにします。では、両マシンで、atmarpd を通常のやり方でスタートして
ください。これで正しく動作する ATM の設定ができました(そのはずです)。
"IP over ATM" を動かすには、 IP Over ATM の指示に従えば良いのです。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

5.7. Q.2931 メッセージダンパー

Q.2931 メッセージコンパイラは、そのメッセージ用のプリティプリンタ(フォ
ーマッタ)も生成します。この実行可能ファイルを q.dump と言い、 src/qgen
ディレクトリに格納します。 make install では、他のディレクトリにはコピ
ーされないので注意して下さい。

q.dump が想定している入力シーケンスは、標準入力から、空白で区切った 16
進数のバイト列で、メッセージが解析できる場合は、メッセージの構造を出力
します。例:

┌──────────────────────────────────┐
│% echo 09 03 80 00 05 5A 80 00 06 08 80 00 02 81 83 00 48 \         │
│  00 00 08 | ./q.dump                                               │
│_pdsc = 9 "Q.2931 user-network call/connection control message"     │
│_cr_len = 3                                                         │
│call_ref = 8388613 (0x800005)                                       │
│msg_type = 0x5a "RELEASE COMPLETE"                                  │
│_ext = 1                                                            │
│_flag = 0 "instruction field not significant"                       │
│_action_ind = 0 "clear call"                                        │
│msg_len = 6 (0x6)                                                   │
│  _ie_id = 0x08 "Cause"                                             │
│    _ext = 1                                                        │
│    cause_cs = 0 "ITU-T standardized"                               │
│    _flag = 0 "instruction field not significant"                   │
│    _action_ind = 0 "clear call"                                    │
│    _ie_len = 2 (0x2)                                               │
│      _ext = 1                                                      │
│      location = 1 "private network serving the local user"         │
│      _ext = 1                                                      │
│      cause = 3 "no route to destination"                           │
└──────────────────────────────────┘

 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

6. IP Over ATM

IP over ATM は、以下のプロトコルでサポートされています。

 ・ クラシカル IP over ATM (CLIP、RFC1577 [RFC1577] で定義されています)
   
 ・ LAN エミュレーション (LANE、[lanev1] と [lanev2] で定義されていま
    す)
   
 ・ マルチプロトコル・オーバー・ATM (MPOA、クライアントのみ、[mpoav1]
    で定義されています)
   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

6.1. CLIP

デーモンプロセスは、ARP の問い合わせを行ない、また問い合わせに答えるた
めに使用します。実際のカーネル部分は、小さなルックアップテーブルを保持
していますが、そこには部分的な情報しか入っていません。

マニュアルページには次のものがあります。 atmarpd(8), atmarp(8)

atmarpd を動かす際は、その前にあらかじめ atmsigd と ilmid を走らせてお
かなければなりません。 -b オプションを使用して、この二つを確実に正しく
同期させてください。例えば、

┌──────────────────────────────────┐
│#!/bin/sh                                                           │
│atmsigd -b                                                          │
│ilmid -b                                                            │
│atmarpd -b                                                          │
│...                                                                 │
└──────────────────────────────────┘

は動作しますが、

┌──────────────────────────────────┐
│#!/bin/sh                                                           │
│atmsigd &                                                           │
│ilmid &                                                             │
│atmarpd &                                                           │
│...                                                                 │
└──────────────────────────────────┘

は、(まだ)うまくいかないことがよくあります。

atmarp は、ATMARP の設定に使用します。まず、atmsigd と ilmid、それに
atmarpd を動かす必要があります。それから、以下のようにして、IP インタフ
ェースを作成し、その設定を行ないます。

┌──────────────────────────────────┐
│# atmarp -c interface_name                                          │
│# ifconfig atm0 local_address possibly_more_options up              │
└──────────────────────────────────┘

例:

┌──────────────────────────────────┐
│# atmarp -c atm0                                                    │
│# ifconfig atm0 10.0.0.3 up                                         │
└──────────────────────────────────┘

PVC しか使用しないのであれば、以下のようなコマンドを使って作れます。

┌──────────────────────────────────┐
│# atmarp -s 10.0.0.4 0.0.70                                         │
└──────────────────────────────────┘

null キーワードを使う場合は、 NULL カプセル化を用います。 ARP には LLC/
SNAP のカプセル化が必要になりますので注意して下さい。したがって、NULL
カプセル化は PVC の場合しか使えません。

SVC を使用する際、設定の追加作業いくらか必要になるかもしれません。当該
LIS でそのマシンが ATMARP サーバーとして動作している場合は、設定の追加
は不要です。その他の場合は、 ATMARP サーバーの ATM アドレスを設定する必
要があります。これには、arpsrv というオプションで、ネットワークアドレス
のエントリを作成するという方法を用います。例えば以下のように行ないます
。

┌──────────────────────────────────┐
│# atmarp -s \                                                       │
│  10.0.0.0 47.0005.80.ffe100.0000.f215.1065.0020EA000756.00 \       │
│  arpsrv                                                            │
└──────────────────────────────────┘

クライアントを設定する際は、その前に、先に ATMARP サーバーを動かして設
定しておかなければなりませんので、注意して下さい。

カーネルの ATMARP テーブルは、 \path{/proc/net/atm/arp} を通じて読み出
せます。 atmarpd に -d オプションを付けて起動すると、 atmarpd が使用す
るテーブルは、定期的に標準エラー出力に表示します。 -d オプション無しで
atmarpd を起動すると、テーブルはダンプディレクトリの atmarpd.table ファ
イルに書き出します(ダンプディレクトリのデフォルトは /var/run ですが、
-D オプションで変更できます)。また、atmarp -a コマンドを使えば、そのテ
ーブルが読み出せます。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

6.2. LAN エミュレーション

ATM で IP パケットを搬送するには、 "クラシカル IP over ATM" の他に、
LAN エミュレーション (LANE) を使ってもかまいません。 LANE は、ブロード
キャストのサポートといったような、従来の LAN 技術の特性をエミュレートす
るものです。 LANE サーバーのサポートに関しては、 linux-atm ディストリビ
ューションにある、 src/lane/USAGE ファイルで説明しています。

マニュアルページには、次のものがあります。 bus(8), lecs(8), les(8), and
zeppelin(8)

LANE クライアントや LANE サービスを複数動かすつもりなら、各デーモンごと
に別々の ATM アドレスを指定する必要があります。 LANE デーモンはすべて、
同じようなサービスアクセスポイント (SAP) を使用しているので、コネクショ
ン相互の区別をつけるには、ATM アドレスを変える必要があるのです。

ちょうど CLIP のように、LANE クライアントを構成しているのは二つの部分で
す。一つは、zeppelin というデーモンプロセスで、これは LANE プロトコルを
処理しています。あとは、カーネルの部分で、LANE の ARP キャッシュを持っ
ています。

zeppelin を動かす際は、その前に先に atmsigd と ilmid を走らせておく必要
があります。 zeppelin がスタートすると、カーネルは新しいインタフェース
を作るので、以下のようにして設定できます。

┌──────────────────────────────────┐
│# zeppelin たぶん複数のオプションが付く &                           │
│# ifconfig lec0 ローカルアドレス たぶん複数のオプションが付く up    │
└──────────────────────────────────┘

以下の例では、LANE クライアントを 2 台動かしています。最初のクライアン
トは、デフォルトのインタフェース lec0 とデフォルトの listen アドレスを
使用し、デフォルトの ELAN に参加しようとします。もう一方の LANE クライ
アントには lec2 というインタフェースが与えられ、ローカルアドレス mybox3
にバインドし、 myelan という ELAN に参加しようとします。そして、ELAN と
イーサネットセグメントの間で、パケットのブリッジを行ないます。 mybox3
というアドレスは /etc/hosts.atm で定義してあります。ブリッジングの残り
の部分は、 Bridging mini-HOWTO [bridge-howto] を読めば設定できます。

┌──────────────────────────────────┐
│# zeppelin &                                                        │
│# ifconfig lec0 10.1.1.42 netmask 255.255.255.0 \                   │
│                          broadcast 10.1.1.255 up                   │
│#                                                                   │
│# zeppelin -i 2 -l mybox3 -n myelan -p &                            │
│# ifconfig lec2 10.1.2.42 netmask 255.255.255.0 \                   │
│                          broadcast 10.1.2.255 up                   │
└──────────────────────────────────┘

何もしないと、zeppelin は、インタフェース lec0 を使い、セレクタバイトの
値を 0 にしてローカルの ATM アドレスにバインドします。それから、LECS の
ウェルノウン・アドレスを使って LECS にコンタクトし、 LECS が定義してい
る ELAN に参加し、 LES が定義している MTU サイズを認識します。ですから
プロキシ LEC では動作しません。このパラメータは、 zeppelin(8) で定義し
ている、コマンドラインのオプションを使って調整できます。

また、zeppelin は、1516 バイトというデフォルトの MTU サイズを越える MTU
の ELAN なら、どれにでも自動的に参加します。 LANE インタフェースの MTU
は、その時点の ELAN の MTU に合わせて、インタフェース自身が自分で調整し
ます。

LANE ARP キャッシュの状態は、 /proc/net/atm/lec を通じて監視できます。
各エントリでは、MAC アドレスと ATM アドレス、それに状態をリストしていま
す。有効なコネクションがある場合は、そのコネクションの識別子もエントリ
にリストします。

LANE のサービス (lecs(8) と、 les(8) および、 bus(8)) は設定ファイルを
用いて設定します。この設定ファイルの構文は各マニュアルページにリストし
てあります。

Linux LANE のサービスに関する詳細は、 Marko Kiiskil の Master's Thesis
[kiis] で解説しています。 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

6.3. MPOA

Linux の MPOA クライアントはユーザー空間の流儀を持ち続けています。カー
ネルから分離した ATM サービスなのです。カーネルが MPOA の入出力キャッシ
ュを保持して、パケットフォワーディングを行なっている間、 mpcd というデ
ーモンプロセスが、 MPOA 制御パケットを処理します。

マニュアルページは mpcd(8) です。

atmsigd と ilmid は、mpcd の起動前に動かしておいて下さい。 MPOA は LANE
トラフィックから IP レイヤの流れを検知するので、 MPOA が機能する前に、
zeppelin を動かしておく必要があるのです。しかし、zeppelin と mpcd を動
かす順序は決まっていません。好きな時にどのデーモンでも殺せますし、後で
再起動する際も、他のデーモンの再起動は不要です。 MPOA を無効にするもっ
とも簡単な方法は、動作中の mpcd を殺すことです。

以下の例は LAN エミュレーションにあるもので、 LANE クライアントを 2 台
動かしています。ここでは、この LANE クライアントを用いる MPOA クライア
ントを 2 台追加しました。

┌──────────────────────────────────┐
│# zeppelin &                                                        │
│# ifconfig lec0 10.1.1.42 netmask 255.255.255.0 \                   │
│                          broadcast 10.1.1.255 up                   │
│# mpcd -s mybox1 -l mybox2 &                                        │
│#                                                                   │
│# zeppelin -i 2 -l mybox3 -n myelan -p &                            │
│# ifconfig lec2 10.1.2.42 netmask 255.255.255.0 \                   │
│                          broadcast 10.1.2.255 up                   │
│# mpcd -i 2 -s mybox4 -l mybox5 &                                   │
└──────────────────────────────────┘

MPOA デーモンがデータと制御コネクションを初期化して受信する際、別々のロ
ーカル ATM アドレスを二つ使用する必要があります。このアドレスは、例にあ
るように同じものでもかまいません。でも、zeppelin は実際、他の mpcd とは
違うものにしなければなりません。デフォルトでは、mpcd は、LECS から設定
情報を取り出しません。 LECS を用いた、コマンドラインの必要なオプション
と例は、 mpcd のマニュアルページに示してあります。ここには、利用できる
残りのオプションも載せてあります。

MPOA の入出力キャッシュの内容は、 /proc/net/atm/mpc ファイルを通じて監
視できます。

Linux MPOA クライアントは、デフォルトの UBR の代わりに、ショートカット
SVC 用の CBR トラフィッククラスもサポートします。今後のショートカットに
関する QoS 仕様は、 /proc/net/atm/mpc を使うようになり、そのように修正
されることがあります。

┌──────────────────────────────────┐
│# echo add 130.230.54.146 tx=80000,1600 rx=tx > /proc/net/atm/mpc   │
│#             # generate enough traffic to trigger a shortcut       │
│# cat /proc/net/atm/mpc                                             │
│QoS entries for shortcuts:                                          │
│IP address                                                          │
│  TX:max_pcr pcr     min_pcr max_cdv max_sdu                        │
│  RX:max_pcr pcr     min_pcr max_cdv max_sdu                        │
│130.230.54.146                                                      │
│     80000   0       0       0       1600                           │
│     80000   0       0       0       1600                           │
│                                                                    │
│Interface 2:                                                        │
│                                                                    │
│Ingress Entries:                                                    │
│IP address      State     Holding time  Packets fwded  VPI VCI      │
│130.230.4.3     invalid   1160          0                           │
│130.230.54.146  resolved  542           151            0   109      │
│...                                                                 │
└──────────────────────────────────┘

IP アドレス 130.230.54.146 のショートカットは先に示したパラメータを用い
て確立しました。フロー検出を拡張して、レイヤ 4 フローを完全にサポートす
るパッチも存在します。レイヤ 4 フローは五つのタプル(プロトコル、ローカ
ルアドレス、ローカルポート、リモートアドレス、リモートポート)で表現し
、それらを使って、アプリケーションとアプリケーションフローを区別します
。興味がおありなら、最新パッチに関しては ftp://sunsite.tut.fi/pub/Local
/linux-atm/mpoa/ を参照して下さい。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

7. 日本語版謝辞

本 HOWTO の邦訳にあたり、JF プロジェクトの皆様に査読していただきました
。特に、水原さんと kaneko さんには貴重なアドバイスをいただきました。こ
の場を借りて御礼申し上げます。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

図書目録

参考文献

[1] Linux ATM API, Werner Almesberger, http://linux-atm.sourceforge.net
/API/ , July 1996.

[2] Classical IP and ARP over ATM (RFC1577), Mark Laubach, January
1994.

[3] LAN Emulation Over ATM -- Version 1.0, ATM Forum, February 1996.

[4] LAN Emulation Over ATM -- Version 2 -- LUNI Specification, ATM
Forum, July 1997.

[5] Multi-Protocol Over ATM -- Version 1.0, ATM Forum, July 1997.

[6] Bridging mini-Howto, Christopher Cole, http://www.linuxdoc.org/
HOWTO/mini/Bridge.html , March, 2001.

[7] Implementation of LAN Emulation Over ATM in Linux, Marko Kiiskil, 
ftp://sunsite.tut.fi/pub/Local/linux-atm/misc/ , October 1996.

Notes

[1] 中には、この一部しかサポートしていないアダプタもあります。         

一覧に戻る
グリーンネット・トップページへ戻る

http://www.green.ne.jp/