ftp://ftp.rtpro.yamaha.co.jp/pub/rt/relnote/relnote_03_00_30.txt Revision : 03.00.30 Release : Nov 1998, ヤマハ株式会社 RT100i/RT102i/RT200i/RT80i/RT140[iep] Rev.3.00.30リリースノート ========================================================================== ○ Rev.3.00.28からの変更点 ========================================================================== ■機能追加 [1] SYSLOGパケットを送信する時に、始点ポート番号を指定できるようにした。 ・SYSLOGパケットの始点ポート番号の設定 [コマンド形式] syslog srcport PORT [パラメータ] PORT ... ポート番号、1〜65535 [説明] SYSLOGパケットを送信する時のポート番号を設定する。 [デフォルト] 514 [2] セキュリティ・ゲートウェイ機能で、鍵交換の再送回数と再送間隔を設定 できるようにした。 ・鍵交換の再送回数と間隔の設定 [コマンド形式] ipsec ike retry COUNT INTERVAL [パラメータ] COUNT ... 再送する回数 1-50 INTERVAL ... 再送する間隔 1-100(秒) [説明] 鍵交換が失敗したときに鍵交換を繰り返す回数と その時間間隔を設定します。 [デフォルト] COUNT = 10、INTERVAL = 5 [3] ip filterコマンドのプロトコルフィールドに記述できるものとして、 'icmp-error'と'icmp-info'を追加した。それぞれ、ICMPの以下のTYPEコー ドのものにマッチする。 ・icmp-error 3 Destination Unreachable 4 Source Quench 5 Redirect 11 Time Exceeded 12 Parameter Problem 31 Datagram Conversion Error 32 Mobile Host Redirect ・icmp-info 0 Echo Reply 8 Echo 9 Router Advertisement 10 Router Selection 13 Timestamp 14 Timestamp Reply 15 Information Request 16 Information Reply 17 Address Mask Request 18 Address Mask Reply 30 Traceroute 33 IPv6 Where-Are-You 34 IPv6 I-Am-Here 35 Mobile Registration Request 36 Mobile Registration Reply [4] 帯域制御機能を追加した。 優先制御/帯域制御の仕様 ○仕組み 優先制御/帯域制御は、RT内部において、出力インタフェースにパケットを 出力する時に、パケットの順番を入れ換えることで実現する。 RT内部にキューを複数本用意し、入力側ではパケットをクラス分けするこ とにより、どのキューにパケットを追加するか選択し、出力側では、複数 本あるキューのどれから次に出力するパケットを選択するかによって、入 力された順番ではない順序でパケットを出力することができる。出力側で のキューの選択方法により、優先制御と帯域制御が区別される。 優先制御では、キューの間に優先順位をつけ、必ず優先順位の高いキュー からパケットを出力していく。 帯域制御では、出力ルーチンはキューをラウンドロビンに監視する。それ ぞれのキューで監視する頻度に差をつけることにより、キュー毎に利用で きる帯域に差をつけることができる。 ○クラス分け 入力されたパケットは、複数のクラスに分類することができる。クラスへ の分類は、以下のとおりに行われる。 o IP、IPX、ブリッジ o 各プロトコルにおけるフィルタ設定 優先制御では最大4つ、帯域制御の場合には最大16個のクラスが設定できる。 違うクラスに分類されたパケットの間では、クラスの優先度に応じて転送 されるパケットの順番が入れ替わることがある。同じクラスに分類された パケットは同じ優先度として扱われ、クラス内ではTail Drop FIFOで管理 される。RED(Random Early Detection)はまだ実装されていない。 ○優先制御 1〜4の4つのクラスの間で、優先制御を行う。クラスは、数字が大きいほど 優先順位が高い。 インタフェースへの出力ルーチンでは、優先順位が高い方から順番にキュー を見ていき、見つかったパケットを出力する。そのため、優先順位が高い キューにパケットがある限り、優先順位が低いキューに入っているパケッ トは、いつまでも出力されない。 ○帯域制御 1〜16のクラスに、回線全体の帯域に対する割合(パーセンテージ)で帯域を 設定する。各クラスは、全体のトラフィックが回線全体の帯域を埋めるよ うな状況の時に、設定された割合で通信することができる。トラフィック に余裕がある時は、設定された割合を超えることもできる。 帯域制御機能は、RT140シリーズおよびRT200iで提供される。 RT100i/RT102i/RT80iでは使用できない。 アルゴリズムには、CBQ(Class Based Queueing)[*1] を用いる。オリジナル コードは ALTQ[*2] である。 [*1] [*2] CBQでは、クラスは階層型として認識される。すなわち、クラスの間には親 子の関係を設定でき、子クラスは自分に割り当てられた帯域を使い切った 時、親クラスに余裕があればそこから帯域を借りてくることができる。 これは、プロトコルの階層ごとに帯域を順次割り当てていくような設計を 行う時に有効に機能する。例えば、IPを70%、IPXを30%の割合で割り振り、 更にIPをFTPに60%、TELNETに10%割り振る、といった設計を可能にする。こ の場合、TELNETトラフィックが存在しない時には、FTPとIPXは70%:30%とい う割合で帯域を分け合うことになる。IPXは、余裕もないのに30%を超える ことはなく、IPの帯域確保を容易にする。 階層の一番上位にあるクラスをルートクラスと呼ぶ。ルートクラスは、た だ一つだけ存在する。今回のRTの実装では、ルートクラスとして、仮想的 にクラス番号0のクラスを考えることにする。ルートクラスには、設定なし で常に100%の帯域が割り当てられるが、ルートクラスにパケットを振り向 けるようなクラスフィルタを記述することはできない。ルートクラスの帯 域は、すべて貸し出し用に存在する。 ○コマンド ・インタフェースの速度の設定 [コマンド形式] lanN speed SPEED pp speed SPEED [パラメータ] SPEED ... インタフェースの速度 単位はbit/s。 数値の後ろに'k'、'M'をつけるとそれぞれ kbit/s、Mbit/sとして扱われる。 [説明] インタフェースの速度を設定する。帯域制御のためのパラメータ計算 に用いられるもので、実際の速度を設定できるわけではないが、物理 的な速度と一致しているのが望ましい。MPにより動的に回線速度が変 動する場合などは、最低限の速度に設定しておけばよい。 [デフォルト] 0 ・クラス分けのためのフィルタ設定 [コマンド形式] queue class filter NUM CLASS PROTOCOL FILTER [パラメータ] NUM ... クラスフィルタの識別番号、1〜100 CLASS ... クラス、1〜16 PROTOCOL ... パケットのプロトコル ip ... IP ipx ... IPX bridge ... ブリッジ FILTER ... プロトコル毎にパケットフィルタを記述する o IP ... SRC-ADDR [DST-ADDR [PROTO [SRC-PORT [DST-PORT]]]] o IPX ... SRC-NET [SRC-NODE [DST-NET [DST-NODE [TYPE [SRC-SOCKET [DST-SOCKET]]]]]] o ブリッジ ... SRC-MAC [DST-MAC [OFFSET BYTE-LIST]] [説明] クラス分けのためのフィルタを設定する。パケットフィルタに該当し たパケットは、指定したクラスに分類される。このコマンドで設定し たフィルタを使用するかどうか、あるいはどのような順番で適用する かは、各インタフェースにおけるqueue class filter listコマンド で設定する。 ・クラス分けフィルタの削除 [コマンド形式] queue class filter delete NUM [パラメータ] NUM ... クラスフィルタの識別番号、1〜100 [説明] 指定したクラス分けフィルタを削除する。 ・キューイングアルゴリズムタイプの選択 [コマンド形式] lanN queue type TYPE pp queue type TYPE [パラメータ] TYPE ... キューイングアルゴリズム fifo ... 優先/帯域制御なし priority ... 優先制御 cbq ... 帯域制御 [説明] 選択したPPに対して、キューイングアルゴリズムタイプを選択する。 [デフォルト] fifo ・デフォルトクラスの設定 [コマンド形式] lanN queue default class CLASS pp queue default class CLASS [パラメータ] CLASS ... デフォルトクラス、1〜16 [説明] フィルタにマッチしないパケットを、デフォルトでどのクラスに分類 するかを指定する。 [デフォルト] 2 ・クラス分けフィルタの適用 [コマンド形式] lanN queue class filter list FILTER-NUM... pp queue class filter list FILTER-NUM... [パラメータ] FILTER-NUM ... フィルタ番号、指定された順番で適用される clear ... 消去 [説明] 選択されているPPに対して、queue class filterコマンドで設定した フィルタを適用する順番を設定する。フィルタにマッチしなかったパ ケットは、pp queue class defaultコマンドで指定したデフォルトク ラスに分類される。 ・クラスの属性の設定 [コマンド形式] lanN queue class property CLASS NAME=VALUE ... pp queue class property CLASS NAME=VALUE ... [パラメータ] CLASS ... クラス番号 NAME=VALUE ... 属性 [説明] 指定したクラスの属性を設定する。NAMEは属性名、VALUEは属性値で ある。属性には以下のものがある。 bandwidth=BANDWIDTH ... 1以上の数値 このクラスに割り当てる帯域を、bit/s単位で設定する。数 値の後ろに'k'、'M'をつけるとそれぞれkbit/s、Mbit/sとし て扱われる。また、数値の後ろに'%'をつけると、回線全体 の帯域に帯するパーセンテージとなる。 回線全体の帯域は、'lanN speed'、'pp speed'コマンドで設 定される。 クラスに割り当てる帯域は、親クラス以下の値でなければい けない。 この属性は必ず指定されなければならない。 parent=PARENT-CLASS ... 0〜16の数値 0はルートクラスを示す。このクラスの親クラスを設定する。 指定がない場合は、ルートクラスが親クラスとなる。 borrow=SW ... 'on' もしくは 'off' 帯域が足りない時に、 自分の親クラスから帯域を借りてく るかどうかを指定する。 デフォルトは'on'。 maxburst=MAX-BURST ... 1〜10000の数値 このクラスで、連続して送信できる最大パケット数を設定す る。 デフォルトは20。 minburst=MIN-BURST ... 1〜10000の数値 このクラスで、安定して通信が行われている時に、連続して 送信されるパケット数を設定する。 デフォルトは(maxburst/10)。 packetsize=PACKET-SIZE ... 1〜10000の数値 このクラスで流れるパケットの平均パケット長をオクテット 単位で設定する。 デフォルトは512。 priority=PRIORITY ... 1〜8の数値 CBQでいう、優先順位を設定する。優先制御で用いられるパ ラメータとは異なるので注意が必要。 デフォルトは1。 ・クラスの属性を削除する [コマンド形式] lanN queue class property clear CLASS pp queue class property clear CLASS [パラメータ] CLASS ... クラス番号 [説明] 指定したクラスの属性を削除する。 ・クラス毎のキュー長の設定 [コマンド形式] lanN queue length LEN0 [LEN1...] pp queue length LEN0 [LEN1...] [パラメータ] LENn ... n番目のクラスのキュー長 [説明] 指定したクラスのキューに入ることのできるパケットの個数を指定す る。設定を省略したクラスに関しては、最後に指定されたキュー長が 残りのクラスにも適用される。 [デフォルト] 20 ・キュークラスフィルタの表示 [コマンド形式] show queue class filter [FILTER_NUM] [パラメータ] FILTER_NUM ... フィルタ番号 [説明] キュークラスフィルタを表示する ・インタフェース毎のキューの表示 [コマンド形式] show lanN queue [PP_NUM] show pp queue [PP_NUM] [パラメータ] PP_NUM ... PP番号 [説明] 選択した相手に対して、キューの設定および状態を表示する [5] 優先制御/帯域制御の様子を外から観察できるように、各クラスのキュー 長、出力パケット数、出力オクテット数をSNMPで入手できるようにした。 具体的には、各クラスを新しいインタフェースとみなしてインタフェース 番号を以下のルールにしたがって付与している。 Ic = Ii + C * 10000 Ic : クラスに付与されるインタフェース番号 Ii : LAN/PPインタフェースに元々ついているインタフェース番号 C : クラス番号 例えば、LAN1(インタフェース番号=1)のクラス1, 2, 3のインタフェース 番号はそれぞれ、10001, 20001, 30001となる。 また、キュー長、出力パケット数、出力オクテット数は以下の変数に反映 される。他のifIn/ifOut系の変数は0固定となる。 キュー長: interfaces.ifTable.ifEntry.ifOutQLen 出力パケット数: interfaces.ifTable.ifEntry.ifOutUcastPkts 出力オクテット数: interfaces.ifTable.ifEntry.ifOutOctets インタフェースがCBQに設定されている場合、クラスのインタフェースの ifSpeed変数は割り当てられている設定を反映した値となる。 ■仕様変更 [1] RT140シリーズで、LANに関してもSNMPトラップのLinkUp/LinkDownを送出 するようにした。 [2] LCPやIPCPなどで相手との交渉がうまくいかず、Configure-Requestの再送 がppp lcp restartなどで設定した最大回数を越えてしまった場合、すぐ にISDNを切断するようにした。従来は同じ状況になってもすぐにはISDNを 切断しなかった。 [3] 認証の失敗やPPPの交渉で失敗してISDNを切断する場合でも、ISDN的には 「正常切断」である。この時、従来はルータ全体でも正常切断として扱っ ていたのを、PPPのエラーを記録してログの切断理由としてエラーを表示 するようにした。記録されるエラーは以下のとおり: 和文 英文 ------------------------------------------------------------- PPP: LCPタイムアウト PPP: LCP Timeout PPP: IPCPタイムアウト PPP: IPCP Timeout PPP: IPXCPタイムアウト PPP: IPXCP Timeout PPP: BCPタイムアウト PPP: BCP Timeout PPP: 相手が認証拒否 PPP: Peer refused authentication PPP: 自分が認証拒否 PPP: I refused authentication PPP: 認証失敗 PPP: Authentication failed また、これらのエラーが記録された時には、再発呼制限タイマ(isdn call prohibit time)の対象となるようにした。 [4] rdate、ntpdateコマンドの出力で、何秒ずらしたかを表示するようにした。 また、コマンドの第2引数として'syslog'を指定できるようにした。 'syslog'が指定されているとコマンドの出力結果をsyslogのinfoレベルに も出力する。 [5] SYSLOGプロトコルによるログの通知では、前回と同じメッセージをまとめ るのを止めた。show logコマンドで表示されるログは、従来通り前回と同 じメッセージはまとめられ、回数だけログに記録される。 [6] セキュリティ・ゲートウェイ機能で、相手先が何らかの障害でダウンした 場合に鍵交換要求を停止する機能があるが、これを対地ごとに独立に機能 させるようにした。また障害から復活した場合に、自動的に古いSAを削除 し再び鍵交換を開始する仕組みを実装した。 [7] 複数BRIモデルで、複数のBRIがバインドされたPPで発信しようとした時に、 以下の条件で発信に失敗した時には次のBRIで再発信するようにした。 ・コネクタ抜けなどが発信前に検出された時 ・発信したが、以下のエラーがローカル公衆網もしくはローカルPBXから 返されて発信が失敗した時 - #34 利用可回線/チャネルなし - #41 一時的障害 - #44 要求回線/チャネル利用不可 ■バグ修正 [1] TFTPからの設定で'pp auth delete username'コマンドが使えないのを修 正した。 [2] RT140[pie]/RT200iで、128Kバイトの設定を保存できる仕様であるにも関 わらず実際には64Kバイトしか保存できないのを修正した。 [3] {lan, pp} queue class propertyコマンドでbandwidthが設定されていな い時にエラーを表示するようにした。 [4] {lan, pp} speedコマンドで速度として0が設定できないのを修正した。 [5] 通信終了時にリブートしてしまう可能性を排除した。 [6] RT140pで、PRIに関してSNMPトラップのLinkDownが通知されないバグを修 正した。 [7] RT80iで、相手先番号による即時発信機能を使わない設定にすると、サブ アドレスを指定した発信が2回目以降できなくなるバグを修正した。 [9] RT80iとRT140シリーズで、BRIを用いた回線交換接続の場合に相手から大 きなHDLCフレームを受け取るとその後動作がおかしくなるバグを修正した。 [10] packetdumpコマンドで、ルータが通過させるパケットについて間違って二 重に表示してしまうバグを修正した。 [11] 一つのBRIに3つ以上のPPがバインドされている時、それらのPPにほとんど 同時に発呼要求が出されると、一つのBRIに対しては同時に2つまでの発呼 要求しか出してはいけないにもかかわらず、3つ以上の発呼要求が出され てしまい、3つ目がエラーで発呼できないバグを修正した。 [12] telnetで接続中に、長い行を一度に送信すると後ろの方を取りこぼしてし まうことがあったのを修正した。 [13] ヘルプ文字列のタイポを修正した。 [14] RT140pの起動時に、PRIコネクタにケーブルがつながっていないと、起動 時に行うPRIループバックAテストが失敗してしまうバグを修正した。 [15] RT80iのWWW設定画面で、接続できなくなってしまうという現象を改善した。 [16] RT140pのpri leased channelコマンドで、すでに存在する情報チャネルに 対して設定が行われた時は設定の変更とみなしてタイムスロットの重複を チェックしないようにした。 [17] PP Anonymousに対してNATを使う時に、同時に2対地以上に接続すると最初 の1対地に対してしかNATが働かず、他の対地に対してはICMP Unreachable エラーを返してしまうバグを修正した。 [18] bri/isdn local address clearがTFTPで設定できないバグを修正した。 [19] ip filter directed-broadcastコマンドが、設定はできるが機能が働か ないバグを修正した。Rev.3.00.23〜28で動作しないようになっていた。