http://www.rtpro.yamaha.co.jp/RT/docs/relnote/Rev.08.02/relnote_08_02_28.html
Revision : 08.02.28
Release : Dec. 2004, ヤマハ株式会社

RTX1500 Rev.8.02.28 リリースノート


Rev.8.02.19からの変更点


■機能追加

  1. RTX1500でIEEE802.1Qタグ付きパケットを扱うことができる機能を実装した。詳細な仕様は下記URLを参照のこと。

    http://www.rtpro.yamaha.co.jp/RT/docs/vlan/index.html

  2. インタフェースの説明を設定しておく、descriptionコマンドを新設した。

    [書式]
    description INTERFACE DESCRIPTION
    no description INTERFACE [DESCRIPTION]
    [設定値]
    INTERFACE ... LANインタフェース名、'pp'、'tunnel'
    DESCRIPTION ... 説明の文字列
    [説明]
    インタフェースの説明を設定しておく。'pp'、'tunnel'を指示した時にはそれぞれ、pp selectあるいはtunnel selectで選択したインタフェースの説明となる。設定内容は、インタフェースに対するshow statusコマンドで表示される。
    [初期値]
    無し
  3. dhcp scopeコマンドにおいて"except IPアドレス-IPアドレス"と指定する事で除外IPアドレスを範囲指定出来るように機能拡張した。"except IPアドレス"の場合は、従来通りそのIPアドレスだけを除外する。

    [書式]
    dhcp scope スコープ番号 範囲/マスク [except IPアドレス[-IPアドレス]...] [gateway ゲートウェイ] [expire 時間] [maxexpire 時間]
    no dhcp scope スコープ番号 [範囲/マスク [except IPアドレス[-IPアドレス]...] [gateway ゲートウェイ] [expire 時間] [maxexpire 時間]]
    [パラメータ]
    スコープ番号 = 1-65535
    範囲 = IPアドレス範囲
    時間 = 1-21474836 or 'infinity'
    [説明]
    DHCPサーバとして動作する時のDHCPスコープを定義する。

    除外IPアドレスはスペースで区切って複数指定できる。除外IPアドレスは範囲指定できるが、スコープの範囲を超えたり、重複して指定する事はできない。

    [ノート]
    exceptで除外IPアドレスの範囲指定は、Rev7.01以降のファームウェアで有効になる。
  4. ARPが解決されるまでの間に送信を保留しておくパケットの数を制御するコマンドを新設した。

    [書式]
    ip INTERFACE arp queue length LEN
    no ip INTERFACE arp queue length [LEN]
    [設定値]
    INTERFACE ... LANインタフェース名
    LEN ... キュー長、0〜10000
    [説明]
    ARPが解決していないホストに対してパケットを送信しようとした時に、ARPが解決するか、タイムアウトによりARPが解決できないことが確定するまで、インタフェース毎に送信を保留しておくことのできるパケットの最大数を設定する。0を設定するとパケットを保留しなくなるため、例えばARPが解決していない相手にpingを実行すると必ず最初の1パケットは失敗するようになる。
    [ノート]
    このコマンドが新設される以前のバージョンでは、送信を保留する数の上限は設定されておらず、いくらでも保留することができた。
  5. LANインタフェースを利用できなくすることができるコマンドを新設した。

    [書式]
    lan shutdown LAN-IF [PORT...]
    no lan shutdown LAN-IF [PORT...]
    [設定値]
    LAN-IF ... LANインタフェース名
    PORT ... ポート番号、スイッチングハブを搭載するLANインタフェースでのみ有効
    [説明]
    LANインタフェースを利用できないようにする。このコマンドを設定したLANインタフェース、あるいはスイッチングハブのポートでは、LANケーブルを接続してもリンクアップしなくなる。
    [ノート]
    LANインタフェースが1つしかない機種ではこのコマンドは利用できない。
  6. IPv6のDAD(Duplicate Address Detection)の送信回数を設定できる機能を追加し、以下のコマンドを新設した。

    [書式]
    ipv6 INTERFACE dad retry count COUNT
    no ipv6 INTERFACE dad retry count
    [設定値]
    COUNT ... 選択したインタフェースでのDADの送信回数
    [説明]
    IPv6アドレスが設定(ダイナミックに割り当てられる場合も含む)されたときに、アドレスの重複を検出するために送信するDADの送信回数を設定する。ただし、0を設定した場合は、DADを送信せずにアドレスを有効なものとして扱う。
    [初期値]
    1
  7. IKEで、同時に始動できるフェーズ1の最大数を設定できるようにした。この機能を実現するために、ipsec ike retryコマンドの仕様を次のように変更する。

    [書式]
    ipsec ike retry COUNT INTERVAL [MAX_SESSION]
    no ipsec ike retry [COUNT INTERVAL [MAX_SESSION]]
    [設定値]
    COUNT ... 再送回数(1..50)
    INTERVAL ... 再送間隔の秒数(1..100)
    MAX_SESSION ... 同時に動作するフェーズ1の最大数(1-5)
    [説明]
    鍵交換のパケットが相手に届かないときに実施する再送の回数と間隔を設定する。また、オプションのパラメータとして、同時に動作するフェーズ1の最大数を指定できる。ルータは、フェーズ1が確立せずに再送を継続する状態にあるとき、鍵の生成を急ぐ目的で、新しいフェーズ1を始動することがある。このパラメータは、このような状況で、同時に動作するフェーズ1の数を制限するものである。なお、このパラメータは、始動側のフェーズ1のみを制限するものであり、応答側のフェーズ1に対しては効力を持たない。
    [初期値]
    COUNT = 10
    INTERVAL = 5
    MAX_SESSION = 3
  8. TCPのコネクションレベルのsyslogを出力する機能を追加した。

    [書式]
    tcp log SWITCH [SRC_ADDR[/MASK] [DST_ADDR[/MASK]] [TCPFLAG [SRC_PORT_LIST [DST_PORT_LIST]]]]
    no tcp log [...]
    [設定値]
    SWITCH ... on TCPコネクションのsyslogを出力する
    off TCPコネクションのsyslogを出力しない
    SRC_ADDR ... 始点IPアドレス
    • xxx.xxx.xxx.xxxは
      • 10進数
      • *(ネットマスクの対応するビットが8ビットとも0と同じ)
    • 間に-を挟んだ2つの上項目、-を前につけた上項目、-を後ろにつけた上項目、これらは範囲を指定
    • *(すべてのIPアドレス)
    DST_ADDR ... 終点IPアドレス(SRC_ADDRと同じ形式)、省略時は1個の*と同じ
    MASK ... IPアドレスのビットマスク、省略時は0xffffffffと同じ
    SRC_ADDR及びDST_ADDRがネットワークアドレスの場合にのみ指定可能
    TCPFLAG ... フィルタリングするTCPパケットの種類
    • プロトコルを表す10進数(6のみ)
    • プロトコルを表すニーモニック
      ニーモニック10進数説明
      tcp6全てのTCPパケット
      tcpsyn-SYNフラグの立っているパケット
      tcpfin-FINフラグの立っているパケット
      tcprst-RSTフラグの立っているパケット
      established-ACKフラグの立っているパケット
    • tcpflag=フラグ値/マスク、またはtcpflag!=フラグ値/マスク
      参考フラグ値
      0x0001FIN
      0x0002SYN
      0x0004RST
      0x0008PSH
      0x0010ACK
      0x0020URG
    • *(全てのTCPパケット。ニーモニックにtcpを指定したときと同じ)
    • 省略時は*と同じ
    SRC_PORT_LIST ... TCPのソースポート番号
    • ポート番号を表す10進数
    • ポート番号を表すニーモニック
      ニーモニックポート番号
      ftp20,21
      ftpdata20
      telnet23
      smtp25
      domain53
      gopher70
      finger73
      www80
      pop3110
      sunrpc111
      ident113
      ntp123
      nntp119
      snmp161
      syslog514
      printer515
      talk517
      route520
      uucp540
    • 間に-を挟んだ2つの上項目、-を前につけた上項目、-を後ろにつけた上項目、これらは範囲を指定
    • 上項目をカンマで区切った並び(10個以内)
    • *(すべてのポート)
    • 省略時は*と同じ
    DST_PORT_LIST ... TCPのデスティネーションポート番号
    SRC_PORT_LISTと同じ形式
    [説明]
    TCPのsyslogを出力する。syslog debug onも設定されている必要がある。IPv4のみに対応している。システムに負荷がかかるため、トラブルシュート等の一時的な使用にしか推奨されない。
    [初期値]
    off
    [設定例]
            tcp log on * * tcpsyn * 1723 (PPTPのポートにSYNが来ているか)
            tcp log on * * tcpflag!=0x0000/0x0007 (FIN,RST,SYNの立ったTCPパケット)
            tcp log on (全てのTCPパケット。tcp log on * * * * *と同じ)
    	
    [ノート]
    表示例
            [TCP] RECV (SYN) in LISTEN 133.176.178.241:63541 > 133.176.178.240:1723
            [TCP] SEND (SYN,ACK) in LISTEN 133.176.178.240:60001 > 133.176.178.241:1723
            [TCP?] RECV (SYN)  192.168.100.50:1062 > 192.168.100.1:21
            [TCP?] SEND (RST,ACK)  192.168.100.1:21 > 192.168.100.50:1062
    	

■仕様変更

  1. ip routeコマンドでIPアドレスをゲートウェイとする静的経路の設定を行なう時に、経路の出力インタフェースはコマンド投入時点での経路テーブルから検索する仕様になっており、一度インタフェースが確定すると、その後変更しないようになっていた。しかし、この動作では、ip routeコマンドが、ゲートウェイが接続されているインタフェースに対するアドレスの設定よりも先に行なわれた場合に、本来のインタフェースとは別のインタフェースに向いてしまうことがある。そのため、インタフェースのIPアドレスが設定され、implicit経路が追加された時には、インタフェースが確定している経路についても再度経路の検索をやり直し、正しいインタフェースに向かうように修正した。

    修正以前でも、設定を保存し、再起動すれば経路は正しいインタフェースに向くようになっている。

    問題となる動作の例:

    以下のような順序で設定を行なった時に、192.168.100.0/24の経路は本来はLAN2インタフェースに向いて欲しいが、LAN1インタフェースへ向いてしまう。

            ip lan1 address 192.168.0.1/24
            ip route default gateway 192.168.0.2
            ip route 192.168.100.0/24 192.168.1.2
            ip lan2 address 192.168.1.1/24
        
  2. SYN/FIN/RSTのいずれかがセットされているTCPパケットが通過した時、該当するフローをノーマルパスに回してフローテーブルのTTLを30秒に変更するようにした。

  3. ノーマルパスにおけるIPsecの暗号化処理で、付加するパディングのサイズとしてDES/3DESの場合に8、AESの場合に16バイトを付加していたケースを、それぞれ0バイトになるように変更した。変更前でもRFC上問題にはならないが、暗号化後のパケットのサイズが大きくなるため、通信速度やフラグメントされやすくなるといった点で不利ではあった。ファストパス処理では、従来から0バイトになるように処理されている。

■バグ修正

  1. MMI関連で以下のバグを修正した。

  2. configのput/get時に利用される管理パスワードが、現在動作している設定内容ではなく、FlashROMに保存されている内容になっているバグを修正した。動作中に管理パスワードを変更した場合に、それをsaveコマンドで保存するまでは古いパスワードでないとconfigのput/getができなかった。

  3. ip fragment remove df-bitコマンドの機能が、フローの先頭のパケットにはDFが立っておらず、その後のパケットにはDFが立っているという場合にファストパスでDFビットを削除できないバグを修正した。

  4. pp always-onコマンドによりISDN経由で発呼した時に、ケーブル抜けを検出した場合は次回の発呼を10秒待ってから行うように変更した。従来はただちに行っていたため、短時間に多数の発呼を繰り返していた。これによりCPU使用率が100%となることがあった。

    RTX1500では副次的に、リブートやcold start時にconfigが消えない症状が発生することがあった。

  5. ファストパスを利用する設定になっている時に、LAN分割したインタフェースのうちlan1.2〜1.4のいずれかでPPPoEを利用する設定で、lan1.1のリンクがダウンしている時には、PPPoEセッションを張ることはできるが、実際の通信ができないというバグを修正した。

  6. 新しいセッションが次々と発生する環境において、処理能力以下の負荷であるにも関わらずファストパスでの通信がパケットロスすることがあるバグを修正した。

  7. 通信中にQoSの帯域の設定を変更すると遅延が発生するようになるバグを修正した。

  8. LANインタフェースの帯域制御で、クラス毎のキュー長を257以上に設定した場合にそのクラスの保証帯域をわずかに保てないことがあるバグを修正した。

  9. IPマスカレードを使用しかつ同じインタフェースにqueue type shapingの設定がある場合に発生する以下のバグを修正した。

  10. ARP解決ができない宛先に対するパケットに対して ICMP UNRECHABLEエラーを送信しようとするときにリブートするバグを修正した。

  11. TELNETでルータにログインし、show logコマンドで大量のログを表示しようとするなどの、大量の出力を発生させるとリブートすることがあるバグを修正した。

  12. LANインタフェースで、受信処理性能より高い負荷を受信した場合に、show status LANインタフェースコマンドで、実際には発生していないCRCエラーがカウントされることがあるバグを修正した。

  13. ospf export fromコマンドで経路をフィルタして受け入れない設定の場合に、受け入れるべき経路までフィルタされてしまうことがあるバグを修正した。

    具体的には、別のOSPFルータを間に挟む形になっていて隣接関係にはなっていない2台のOSPFルータで、一方のOSPFルータのフィルタの設定が、他方のOSPFルータへ到達するための経路Aは受け入れないが、そのルータが広告している経路Bは受け入れるという設定の場合に、本来なら経路Bは受け入れなくてはいけないのに受け入れることができていなかった。

  14. MIB変数でLANインタフェースのifInOctets/ifOutOctetsが正しく与えられないバグを修正した。

  15. プライベートMIBのMIB変数、yrhCpuTypeで適切な値が返せないバグを修正した。

  16. IPv6のIKEで、aggressive modeやbase modeで送信するIDの型がID_IPV6_ADDR(5)ではなく、ID_IPV4_ADDR(1)になるバグを修正した。このとき、IDの内容は不正なIPv4アドレスとなる。ヤマハルータだけを使う場合には問題にならないが、他社製品と接続するときには、接続できない可能性がある。

  17. ipsec ike local/remote idコマンドでIPv6ネットワークを設定したときに、送信するIDの型がID_IPV6_ADDR_SUBNET(6)ではなくID_IPV6_ADDR(5)になるバグを修正した。結果として、quick modeが確立しなくなる。

  18. IPv6 over IPv6のIPsec ESPトンネルで、プロトコル識別子として4(IP)を利用していたのを、41(IPv6)に修正した。

    この修正が反映される前後のファームウェアでは、IPv6 over IPv6 ESPトンネルでは相互に通信できなくなるので注意が必要である。

  19. IPv6のRSを受信し、その返答としてのRAを送信するまでの間に、新たなRSを受信してしまうと、送信するはずのRAの送信時刻が遅れてしまうバグを修正した。数多くの端末が接続され一度に大量のRSを受信する環境では、この不具合により端末がRAを受信できず、プレフィックス取得に失敗する場合があった。

  20. ipv6 dad retry countコマンドで0を設定しているとき、インタフェースにIPv6アドレスを設定しても、そのIPv6アドレスに対応するimplicit経路を設定しないバグを修正した。

  21. 終点IPアドレスがマルチキャストあるいはブロードキャストアドレスになっているUDPパケットを受信したがそれを処理できない時には、従来はアドレスの種類に関わらずデバッグログに

            "can't receive UDP multicast packet"
        

    と表示していたが、これをブロードキャストアドレスの場合には

            "can't receive UDP broadcast packet"
        

    と表示するよう変更した。

  22. PPPoEの同時接続がセッション制限数を超えて可能であるバグを修正した。

  23. WWWブラウザ設定支援機能の設定検証機能で、PPインタフェースに対してフィルタの設定が必要と判定したときに、間違ったコマンドを提案するバグを修正した。

  24. 状態メール通知機能の警告メールでModel名が誤って表示されるバグを修正した。

  25. 内蔵時計LSIのバックアップ電池の電圧が低下した場合に、起動時に行う内蔵時計LSIの初期化が行われていないバグを修正した。

    初期化が行われていない場合内蔵時計LSIの動作は保証されないが、dateかtimeコマンドの実行で初期化の代用となる。つまり、一度でも日付か時刻の設定を行っていれば問題ない。