http://www.rtpro.yamaha.co.jp/RT/docs/relnote/Rev.07.01/relnote_07_01_48.html
Revision : 07.01.48
Release : Mar. 2005, ヤマハ株式会社

RTX2000 Rev.7.01.48 リリースノート


Rev.7.01.41からの変更点


■機能追加

  1. IPv6でDAD(Duplicate Address Detection)の送信回数を設定できるようにした。

    [入力形式]
    ipv6 INTERFACE dad retry count COUNT
    no ipv6 INTERFACE dad retry count
    [パラメータ]
    COUNT ...選択したインタフェースでのDADの再送回数(0..10)
    [説明]

    インタフェースにIPv6アドレスが設定されたときに、アドレスの重複を検出するために送信するDADの送信回数を設定する。ただし、0を設定した場合は、DADを送信せずにアドレスを有効なものとして扱う。

    [デフォルト]
    COUNT ...1
  2. 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=flag_value/flag_mask、またはtcpflag!=flag_value/flag_maxk
      参考フラグ値
      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. IKEで、同時に始動できるフェーズ1の最大数を設定できるようにした。この機能を実現するために、ipsec ike retryコマンドの仕様を次のように変更する。

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

    ファストパス処理では、従来から0バイトになるように処理されている。

  3. ICMP Echoを利用するキープアライブ機能で、ICMP Echoパケットのサイズを指定できるようにした。

  4. RTX2000で、show environmentコマンド実行時にBootROMのバージョンを表示するようにした。ただし、BootROMのバージョンが表示できるのはBootROMのバージョンが1.03以降の場合に限られる。

■バグ修正

  1. show logコマンド、あるいはless logコマンドで、コマンドを実行中(※)に何もキー入力を行わない状態にし、ログインタイマがタイムアウトしログアウトするということを3回繰り返すと、その後、show log/less logコマンドを実行しても何もログが表示されないようになるバグを修正した。

    Rev.7.01.30でエンバグ。

    (※)show logコマンドの場合は、画面の最終行に「---つづく---」あるいは「---more---」が表示されている状態。less logコマンドの場合は最終行に「:」が表示されている状態。

  2. nat descriptor masquerade staticコマンドを実行するたびにメモリリークが発生するバグを修正した。設定を保存し、再起動すればメモリリークは起きないが、動作中にコマンドを実行したり、TFTPで設定を送り込んだりした時に発生する。

  3. 以下のコマンドのオンラインヘルプを修正した。

  4. 同じフィルタ番号でip filter dynamicコマンドを実行するとメモリリークするバグを修正した。

  5. nat descriptor logを設定後、TFTPでclear configurationを実行してもnat descriptor logコマンドがshow configで表示されるバグを修正した。

  6. dhcp scopeコマンドで、except句に同じIPアドレスが重複して指定されるとエラーになるようにした。

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

    	  can't receive UDP multicast packet
    	

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

    	  can't receive UDP broadcast packet
    	  

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

  8. ipsec ike remote/local name コマンドで「"」や「#」、「 」(空白)などのような特殊な文字を含んだ文字列を設定して再起動をすると、設定が正しく保存されず、show configコマンドを実行しても正しく表示されないバグを修正した。

  9. ディレクティッドブロードキャストパケットを動的フィルタで処理しようとするとリブートするバグを修正した。

    Rev.7.01.31でエンバグ。

  10. IPマスカレードで、外部のホストからIPマスカレードの外側IPアドレスに対してpingを打つと、ICMPに対する静的IPマスカレードが設定されていない限り、ルータ自身が返事を返し、ICMPパケットは内側へは転送しない仕様だが、特定の場合に、ICMPパケットを内側へ転送してしまうバグを修正した。

    IPマスカレードで、内側から外部のホストへpingを実行し、それにより生成された変換テーブルが残っている状態の時に、その外部のホストからIPマスカレードの外側IPアドレスへpingを実行すると、ICMP ECHOパケットのIDの値が変換テーブルの変換後の値(show nat descriptor addressコマンドでは「マスカレード」項に表示される値)と一致していると、変換テーブルにしたがってパケット変換を行い、内側のホストにパケットを転送してしまっていた。そのため、内側のホストがpingに返答しないような設定になっていたり、あるいは内側のLANインタフェースがダウンしているなどの場合に、ルータ自身が返事をする場合とは異なり、外部のホストからのpingに返事が返せない状態になってしまっていた。

  11. 稀にTCPの静的IPマスカレードが動作しなくなるバグを修正した。動作しなくなった静的IPマスカレードの設定を再び投入すると正常な状態に復帰する。

  12. ip routeコマンドで複数のゲートウェイを設定している静的経路で、先頭のゲートウェイの状態がhideになっているが、後続のゲートウェイが有効でパケットを転送できる状態であるという設定になっている時に、起動直後に、その経路が動的経路プロトコルで配布されないバグを修正した。経路の設定を変更すると、経路が配布されるようになる。

    Rev.7.01.30でエンバグ。

  13. IPv6のIPsecで、ipsec ike local addressコマンドを設定していないときに、AHのトンネルモードで通信できないバグを修正した。

  14. nat descriptor masquerade staticコマンドで指定した内側IPアドレスの機器から外部の機器に対してtracerouteが実行できないバグを修正した。ICMPパケットのデータ部分に設定されているIPヘッダ部分がIPマスカレードで変換されていなかった。

  15. ファストパスでSMTPプロトコルの動的フィルタを使用したときに、SMTPコネクションが正常に終了しても、動的フィルタの管理するコネクションとして長時間生存し続けるバグを修正した。SMTPコネクションの生成と消滅が数多く発生する状況下では、システムの処理性能が低下して、内部リソースの枯渇によりリブートすることがあった。

  16. IPsecで、対向のセキュリティゲートウェイへの経路がフィルタ型経路になっている時に、ノーマルパスで扱うパケットが正しいゲートウェイを選択できず、フィルタで示されるのとは異なるゲートウェイに転送されることがあるバグを修正した。

  17. ネットワークバックアップ機能で、トンネルをバックアップする時に、トンネルの対向のゲートウェイへの経路をフィルタ型経路にしている時に、キープアライブパケットが正しいゲートウェイに向かわず、フィルタの選択とは異なるゲートウェイに転送されることがあるバグを修正した。

  18. IPsecで、対向のセキュリティゲートウェイへの経路を静的にフィルタ型経路で指定していると、IPsecで暗号化するパケットをファストパスで処理する場合にフィルタ型経路を正しく評価できず、必ず一番最初に記述したゲートウェイに送信してしまうバグを修正した。

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

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

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

  21. 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
    	
  22. TELNETでルータにログインし、show logコマンドで大量のログを表示しようとするとリブートするバグを修正した。show log以外のコマンドでも、大量の出力を発生するコマンドを実行すると、同じ問題が発生する可能性がある。

  23. RTX2000のシリアルコンソールで、フロー制御が正しく動作していないために、カット&ペーストなどで一気に設定を流し込むと文字落ちなどが発生することがあるバグを修正した。

  24. RTX2000のIPルーティングテーブルで多数の経路を集中的に更新するときに、ルータの処理が間に合わず、不安定な動作を引き起こすバグを修正した。CPUの負荷が高いときに発生しやすい。実際の現象としては、OSPFで大量の経路を導入しながらIPsecの鍵交換を実施するときに、トンネルインタフェースが起動しないという挙動を確認している。発生する現象の予測は難しく、影響を受ける機能も特定できない。

  25. RTX2000で、SNMPのMIB変数がYBB-2GE-STX/LTXによるギガビットインタフェースに対応していなかったのを修正した。

  26. RTX2000で、リンクアップしているLANインタフェースのすべてでip rip receive コマンドによりRIPを受信しない設定になっていて、デフォルト経路が有効である時に、トンネルインタフェースまたはPPPoEであるPPインタフェースから受信したRIPv2を自分宛として処理できずにデフォルト経路に送信してしまうバグを修正した。

  27. RTX2000で、ルータ自身宛のICMPv6パケットを受信した時に、まれにルータ内部のタイマの一部が停止してしまい、以下のような現象になるバグを修正した。

    Rev.7.01.35でエンバグ。

  28. RTX2000で、ケーブルを接続していないLANインタフェースについてリンク状態の変化がログやSNMPトラップに記録されることがあるバグを修正した。

  29. IPsecトンネルでキープアライブを使う設定の時に、IKEのフェーズ1が確立していない状態の時にハートビートパケットを受信すると、ルータがリブートするバグを修正した。

    通常はフェーズ1が確立していない時にハートビートを受信することは無いが、メインモードのやり取りの中で最後のパケットが何らかの理由で受信できないと、一方だけがフェーズ1が確立した状態になるためこのようなことが起きる。