ftp://ftp.rtpro.yamaha.co.jp/pub/rt/relnote/Rev.03.01/relnote_03_01_11.txt Revision : 03.01.11 Release : Dec 1998, ヤマハ株式会社 RT100i/RT102i/RT200i/RT140[iep]/RT103i Rev.3.01.11 リリースノート Rev.3.01.11はRev.3.00.31の諸機能を引き継ぎつつRT103iに対応 したリビジョンである。IPsecの機能が一部変更されているため、 Rev.3.01.07及びRev.3.00.31以前のリビジョンに対するIPsecの 相互接続性は失われている。 ============================================================================ ○ Rev.3.00.31 からの変更点 ============================================================================ ■機能追加 [1] RT103iに対応した。 [2] 受信したICMPのログを記録するか否かを指定するコマンドを新設した。 ・受信したICMPのログを記録するかどうか [コマンド形式] ip icmp log SW [パラメータ] SW ... on 受信したICMPをログに記録する off 受信したICMPをログに記録しない [デフォルト] off [ノート] 記録されるのはdebugログである。 ■仕様変更 [1] セキュリティ・ゲートウェイ機能で、IKEやIPsecを最新のドラフトに対応さ せた。このことにより、Rev.3.00.XXやRev.3.01.07との相互接続性が失われ ている。 ちなみに、このバージョンで対応しているドラフトは以下のとおり: draft-ietf-ipsec-isakmp-oakley-07.txt draft-ietf-ipsec-isakmp-09.txt draft-ietf-ipsec-arch-sec-03.txt draft-ietf-ipsec-ipsec-doi-09.txt draft-ietf-ipsec-ciph-des-expiv-02.txt draft-ietf-ipsec-esp-v2-06.txt draft-ietf-ipsec-auth-hmac-md5-96-03.txt draft-ietf-ipsec-auth-hmac-sha196-03.txt draft-ietf-ipsec-auth-header-05.txt ・IKEのパラメータ フェーズ1 : main mode (pre-shared-key) フェーズ2 : quick mode グループ : MODP 768bit、MODP 1024bit アルゴリズム : DES-CBC、HMAC-MD5 PFS : あり ・IPsecのパラメータ IVの長さ : 8byte 暗号アルゴリズム : DES-CBC、3DES-CBC 認証アルゴリズム : HMAC-MD5、HMAC-SHA-1 ■バグ修正 [1] 以下の場合、予約されたクライアントに限りアドレスをリースすることがで きなくなるバグを修正した。 - クライアントにDHCPOFFERを出したにもかかわらず、クライアント にサーバとして選択されなかった場合 - リース期間終了から更に72時間、対象クライアントから全くリース 要求がなかった場合 [2] {pp,lan} queue default classコマンドのオンラインヘルプで、デフォルト 値が誤って表示されるのを修正した。 [3] RT140で、起動時に自分宛てのARPが送出されないバグを修正した。 [4] 優先/帯域制御における仮想インタフェースを除く、最大のインタフェース 番号に対してSNMP GETでMIBを取得しようとするとエラーになるバグを修正 した。 [5] ACFCオプションがONでネゴシエーションされた場合やMP接続の場合に、誤 ったLCP Protocol Rejectを送信することがあるのを修正した。 [6] show bridge {lan, pp}コマンドで、ブリッジするインタフェースを正しく 表示するように修正した。 ============================================================================ ○ Rev.3.01.07 からの変更点 ============================================================================ ■機能追加 [1] FRバックアップ機能を実装した。 [コマンド書式] fr backup dlci=DLCI 相手先情報番号 [説明] 指定したDLCIがinactiveになったときのバックアップに用いる 相手先情報番号を指定する。 [ノート] 同じPPにleased backupとfr backupの両方を設定してはならない。 [2] IKEの再送回数と再送間隔を設定できるようにした。 [コマンド書式] ipsec ike retry 回数 時間 [パラメータ] 回数 ... 再送する回数 1-50 時間 ... 再送する間隔 1-100(秒) [説明] 鍵交換が失敗したときに鍵交換を繰り返す回数と その時間間隔を設定します。 [デフォルト] 回数 = 10、時間 = 5(秒) [3] rdate / ntpdateコマンドの第2引数として'syslog'を新設した。'syslog'が 指定されていると、コマンドの出力結果をsyslogのinfoレベルにも出力する。 [4] SYSLOGパケットを送信する時に、始点ポート番号を指定できるようにした。 ・SYSLOGパケットの始点ポート番号の設定 [コマンド形式] syslog srcport PORT [パラメータ] PORT ... ポート番号、1〜65535 [説明] SYSLOGパケットを送信する時のポート番号を設定する。 [デフォルト] 514 [5] 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 [6] 帯域制御機能を追加した。 優先制御/帯域制御の仕様 ○仕組み 優先制御/帯域制御は、RT内部において、出力インタフェースにパケットを 出力する時に、パケットの順番を入れ換えることで実現する。 RT内部にキューを複数本用意し、入力側ではパケットをクラス分けするこ とにより、どのキューにパケットを追加するか選択し、出力側では、複数 本あるキューのどれから次に出力するパケットを選択するかによって、入 力された順番ではない順序でパケットを出力することができる。出力側で のキューの選択方法により、優先制御と帯域制御が区別される。 優先制御では、キューの間に優先順位をつけ、必ず優先順位の高いキュー からパケットを出力していく。 帯域制御では、出力ルーチンはキューをラウンドロビンに監視する。それ ぞれのキューで監視する頻度に差をつけることにより、キュー毎に利用で きる帯域に差をつけることができる。 ○クラス分け 入力されたパケットは、複数のクラスに分類することができる。クラスへ の分類は、以下のとおりに行われる。 o IP、IPX、ブリッジ o 各プロトコルにおけるフィルタ設定 優先制御では最大4つ、帯域制御の場合には最大16個のクラスが設定できる。 違うクラスに分類されたパケットの間では、クラスの優先度に応じて転送 されるパケットの順番が入れ替わることがある。同じクラスに分類された パケットは同じ優先度として扱われ、クラス内ではTail Drop FIFOで管理 される。RED(Random Early Detection)はまだ実装されていない。 ○優先制御 1〜4の4つのクラスの間で、優先制御を行う。クラスは、数字が大きいほど 優先順位が高い。 インタフェースへの出力ルーチンでは、優先順位が高い方から順番にキュー を見ていき、見つかったパケットを出力する。そのため、優先順位が高い キューにパケットがある限り、優先順位が低いキューに入っているパケッ トは、いつまでも出力されない。 ○帯域制御 1〜16のクラスに、回線全体の帯域に帯する割合(パーセンテージ)で帯域を 設定する。各クラスは、全体のトラフィックが回線全体の帯域を埋めるよ うな状況の時に、設定された割合で通信することができる。トラフィック に余裕がある時は、設定された割合を超えることもできる。 帯域制御機能は、RT103i/RT140シリーズ/RT200iで提供される。 RT100i/RT102iでは使用できない。 アルゴリズムには、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番号 [説明] 選択した相手に対して、キューの設定および状態を表示する [7] 優先制御/帯域制御の様子を外から観察できるように、各クラスのキュー長、 出力パケット数、出力オクテット数を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変数は割り当てられている設定を反映した値となる。 [8] 受信したICMPのログを記録するか否かを指定するコマンドを新設した。 ・受信したICMPのログを記録するかどうか [コマンド形式] ip icmp log SW [パラメータ] SW ... on 受信したICMPをログに記録する off 受信したICMPをログに記録しない [デフォルト] off [ノート] 記録されるのはdebugログである。 ■仕様変更 [1] アドレスの割り当て/更新/解放時に、INFOログに残すようにした。 DHCPDECLINEを受けた時のログも、従来DEBUGレベルであったものをINFOレベ ルのログに残すようにした。 [2] show environmentコマンドで、ルータの起動時間および現在までの経過時間 を表示するようにした。 [3] LCPやIPCPなどで相手との交渉がうまくいかず、Configure-Requestの再送が ppp lcp restartなどで設定した最大回数を越えてしまった場合、すぐに ISDNを切断するようにした。従来は同じ状況になってもすぐにはISDNを切断 しなかった。 [4] 認証の失敗や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)の対象となるようにした。 [5] SYSLOGプロトコルによるログの通知では、前回と同じメッセージをまとめる のを止めた。なお、show logコマンドで表示されるログについては従来通り とする。すなわち、前回と同じメッセージはまとめられ、その回数だけがロ グに記録される。 [6] 複数BRIモデルで、複数のBRIがバインドされたPPで発信しようとした時に、 以下の条件で発信に失敗した時には次のBRIで再発信するようにした。 ・コネクタ抜けなどが発信前に検出された時 ・発信したが、以下のエラーがローカル公衆網もしくはローカルPBX から返されて発信が失敗した時 - #34 利用可回線/チャネルなし - #41 一時的障害 - #44 要求回線/チャネル利用不可 [7] pri leased channel コマンドで、すでに存在する情報チャネルに対する設 定が行われた時は変更とみなして重複をチェックしないようにした。 [8] RT140シリーズで、LANに関してもSNMPトラップのLinkUp/LinkDownを送出す るようにした。 [9] login/administrator passwordコマンドでパスワードを設定する時に、パス ワードとして使用できない文字を含んでいる場合にはその文字だけを無視す るのではなく、エラーメッセージを出力してコマンドが失敗するようにした。 また、login時やadministratorコマンドの時のパスワード入力でも、パスワ ードとして使用できない文字が含まれている時にはエラーになるようにした。 [10] rdate、ntpdateコマンドの出力で、何秒ずらしたかを表示するようにした。 また、コマンドの第2引数として'syslog'を指定できるようにした。 'syslog'が指定されているとコマンドの出力結果をsyslogのinfoレベルに も出力する。 [11] 相手先が何らかの障害でダウンした場合に鍵交換要求を停止する機能があ るが、これを対地ごとに独立に機能させるようにした。また障害から復活し た場合に、自動的に古いSAを削除し再び鍵交換を開始する仕組みを実装した。 [12] セキュリティ・ゲートウェイ機能で、IKEやIPsecを新しいドラフトに対応 させた。このことにより、Rev.3.00.XXやRev.3.01.07との相互接続性が失わ れている。 ちなみに、このバージョンで対応しているドラフトは以下のとおり: draft-ietf-ipsec-isakmp-oakley-07.txt draft-ietf-ipsec-isakmp-09.txt draft-ietf-ipsec-arch-sec-03.txt draft-ietf-ipsec-ipsec-doi-09.txt draft-ietf-ipsec-ciph-des-expiv-02.txt draft-ietf-ipsec-esp-v2-06.txt draft-ietf-ipsec-auth-hmac-md5-96-03.txt draft-ietf-ipsec-auth-hmac-sha196-03.txt draft-ietf-ipsec-auth-header-05.txt ・IKEのパラメータ フェーズ1 : main mode (pre-shared-key) フェーズ2 : quick mode グループ : MODP 768bit、MODP 1024bit アルゴリズム : DES-CBC、HMAC-MD5 PFS : あり ・IPsecのパラメータ IVの長さ : 8byte 暗号アルゴリズム : DES-CBC、3DES-CBC 認証アルゴリズム : HMAC-MD5、HMAC-SHA-1 ■バグ修正 [1] RT140pでPRI専用線のバックアップができていなかったのを修正した。 [2] RT200i/RT140[ip]のような複数WANポートモデルで、専用線とISDNでMPを組 んでいて、かつISDNでバックアップを行っている時、バックアップのISDNで MPができないことがあったのを修正した。 [3] show pp accountコマンドの挙動がマニュアル等の記載と違っていたのを修 正した。具体的には、当コマンドの引数が省略された場合には選択されてい る相手先の課金情報を表示するべきであるが、実際には全ての相手先の課金 情報を表示していた。 [4] NATとフラグメントの処理で、いったん再構成したパケットをNATモジュール から外に出る時にフラグメントし直すようにした。 [5] PRIのコネクタが抜けた後、再び差したときにPPがアップしない場合があっ たバグを修正した。 [6] ナンバーディスプレイ機能で、発信者番号が表示される前に2つ目の着信が あると、その発信者番号を表示してしまうバグを修正した。 [7] 一つのBRIに3つ以上のPPがバインドされている時、それらのPPにほとんど同 時に発呼要求が出されると、一つのBRIに対しては同時に2つまでの発呼要求 しか出してはいけないにもかかわらず、3つ以上の発呼要求が出されてしま い、3つ目がエラーで発呼できないバグを修正した。 [8] pp auth delete usernameコマンドがTFTPから実行できないのを修正した。 [9] {bri, isdn} local address clearコマンドがTFTPから実行できないのを修 正した。 [10] RT140シリーズで、BRIを用いた回線交換接続の場合に大きなHDLCフレーム を受け取るとその後の動作が不安定になるバグを修正した。 [11] {lan, pp} queue class propertyコマンドでbandwidthが設定されていない 時にエラーを表示するようにした。 [12] {lan, pp} speedコマンドで速度として0が設定できないのを修正した。 [13] 通信終了時にリブートする可能性を排除した。 [14] RT140pで、PRIに関してSNMPトラップのLinkDownが通知されないバグを修正 した。 [15] RT140[pie]/RT200iで、128Kバイトの設定を保存できる仕様であるにも関わ らず実際には64Kバイトしか保存できないのを修正した。 [16] schedule atコマンドで月日の引数を"*/Mon-Fri"とすると、"*/Mon"と設定 されるバグを修正した。 [17] 以下の場合、予約されたクライアントに限りアドレスをリースすることが できなくなるバグを修正した。 - クライアントにDHCPOFFERを出したにもかかわらず、クライアント にサーバとして選択されなかった場合 - リース期間終了から更に72時間、対象クライアントから全くリース 要求がなかった場合 [18] {pp,lan} queue default classコマンドのオンラインヘルプで、デフォル ト値が誤って表示されるのを修正した。 [19] pp anonymousで、pp auth usernameによって発番号認証をしている相手に 着信した時にリブートしてしまうバグを修正した。 [20] show bridge {lan, pp}コマンドで、ブリッジするインタフェースを正しく 表示するように修正した。 [21] RT140で、起動時に自分宛てのARPが送出されないバグを修正した。 [22] 優先/帯域制御における仮想インタフェースを除く、最大のインタフェース 番号に対してSNMP GETでMIBを取得しようとするとエラーになるバグを修正 した。 [23] 帯域制御機能で、解放された領域を参照してリブートする可能性を排除し た。 [24] ACFCオプションがONでネゴシエーションされた場合やMP接続の場合に、誤 ったLCP Protocol Rejectを送信することがあるのを修正した。 [25] NAT/IP Masqueradeの処理で、フラグメントされたパケットは再構成してか ら処理するようにした。