5. 動かす前に:コールサインとかアドレスとかについて

システム上の AX.25 や NET/ROM の各ポートには SSID 付コールサイン (訳注: Sub Station ID、つまり「-1」とか「-5」とかのアレ) が割当てられていなけ ればなりません。 これはこれから詳しく説明する設定ファイルにおいて設定します。

NOS や BPQ といった AX.25 の実装の中には AX.25 や NET/ROM の各ポートに 同一の SSID 付きコールサインを割当てられるものがあります。 Linux ではちょっと込みいった技術的な事情で、こういうことができません。 でも実際のところ、それほど大きな問題ではないですけど。

つまり設定の内容を考えるときには、あらかじめ注意しておかなければならな いことがいくつかあるということです。 以下に列挙してみます。

  1. AX.25 と NET/ROM の各ポートは別々の SSID 付きコールサインを使うよう設定する。

  2. TCP/IP は送受信に使われる AX.25 ポートの SSID 付きコールサインを使う。 つまり 1. において AX.25 インターフェイスに割当てたものである。

  3. NET/ROM は設定ファイルにある SSID 付きコールサインを使う。 ただしこのコールサインは他の NET/ROM ノードに接続するときにだけ使われ るもので、一般の AX.25 ユーザーがあなたの NET/ROM ノードに接続するとき に使う SSID 付きコールサインとは違う。 詳しくは後ほど説明。

  4. ROSE 用のコールサインが「rsparms」コマンドにより 指定されていなければ、ROSE はデフォルトで AX.25 ポート用の SSID 付きコー ルサインを使う。 「rsparms」コマンドで SSID 付きコールサインを指定 してあれば、ROSE は全てのポートでこの SSID 付きコールサインを使う。

  5. その他のプログラム、例えば「ax25d」などはどの様な SSID 付きコールサインでも接続を受付ける。 これは他のポートと重複していても構わない。

  6. ルーティングに気をつければ全てのポートに同じ IP アドレスを設定しても構わ ない。お望みであれば。

5.1. T1, T2, N2 とかって何ですか?

AX.25 の実装は全部が全部 TNC2 というわけではありません。 あなたが TNC を使ったパケットしか知らないとしたら、今まで親しんできたの とはやや違った名称を Linux は使っています。 以下の表は各設定項目がどのような意味を持つか示しています。 この文書を読んでいて知らない名称に出くわしてもそれがどういう 意味を持つか分かると思います。

Linux での名称TAPR TNC での名称説明
T1FRACKACK されなかったフレームを再送信するまでの待ち時間
T2RESPTIMEACK を送信するまで次の受信フレームを待つ最小時間
T3CHECKリンクが生きているかどうか確認する時間間隔
N2RETRY接続が切れたと判断するまで繰り返す再送信回数
Idle 切断までにアイドル状態にあるとみなす時間間隔
WindowMAXFRAMEACK されなかった送信フレームの最大値

5.2. 実行時に設定可能なパラメーター

実行時には多くのカーネルパラメーターを変更することができます。 /proc/sys/net/ 以下をよく見れば、ネットワーク設定の 様々なパラメーターを書き込まれた分かりやすい名前のファイルがたくさんあ ることが分かるでしょう。 /proc/sys/net/ax25/ 以下の各ディレクトリは設定され ている各 AX.25 ポートを表しています。 ディレクトリ名がポートの名前です。

/proc/sys/net/ax25/portname/ 以下にあるファイルはこんな感じです。

ファイル名意味取り得る値初期値
ip_default_modeIP Default Mode0=DG 1=VC0
ax25_default_modeAX.25 Default Mode0=Normal 1=Extended0
backoff_typeBackoff0=Linear 1=Exponential1
connect_modeConnected Mode0=No 1=Yes1
standard_window_sizeStandard Window1 .. 72
extended_window_sizeExtended Window1 .. 6332
t1_timeoutT1 Timeout1s .. 30s10s
t2_timeoutT2 Timeout1s .. 20s3s
t3_timeoutT3 Timeout0s .. 3600s300s
idle_timeoutIdle Timeout0m 以上20m
maximum_retry_countN21 .. 3110
maximum_packet_lengthAX.25 Frame Length1 .. 512256

この表の T1, T2, T3 の単位は秒で、Idle Timeout の単位は分です。 ただし sysctl で使うときは秒に 10 をかけた内部表記で指定するので気をつ けてください。 これは 1/10 秒単位の時間分解能で指定するためです。 T3 や Idle といった設定値にゼロを指定できるタイマーでは、ゼロという値 はタイマーを使用していないことを表します。

/proc/sys/net/netrom/ 以下のファイルはこんな感じです。

ファイル名意味取り得る値初期値
default_path_quality  10
link_fails_count  2
network_ttl_initialiser  16
obsolescence_count_initialiser  6
routing_control  1
transport_acknowledge_delay  50
transport_busy_delay  1800
transport_maximum_tries  3
transport_requested_window_size  4
transport_timeout  1200

/proc/sys/net/rose/ 以下のファイルはこんな感じです。

ファイル名意味取り得る値初期値
acknowledge_hold_back_timeout  50
call_request_timeout  2000
clear_request_timeout  1800
link_fail_timeout  1200
maximum_virtual_circuits  50
reset_request_timeout  1800
restart_request_timeout  1800
routing_control  1
window_size  3

パラメーターを設定するのに必要なことはファイルそのものに指定したい値を 書き込むだけです。 例えば ROSE の window size の設定値を調べて新しい値を設定するには、以 下のようにします。

# cat /proc/sys/net/rose/window_size
3
# echo 4 >/proc/sys/net/rose/window_size
# cat /proc/sys/net/rose/window_size
4