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

RTX1000 Rev.7.01.47 リリースノート


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. RTX1000で、使用部品の変更に伴いシリアルドライバを変更した。

■バグ修正

  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. RTX1000で、schedule atコマンドにより指定したコマンドが、指定時刻に実行されないことがあるバグを修正した。

    Rev.7.00.11でエンバグ。

  24. RTX1000のPPTPで、以下のコマンドで回線の負荷を表示しないようにした。 修正前は正しくない負荷が表示されていた。

  25. RTX1000で、ISDNのPP Anonymousでの名前による認証で、pp auth usernameコマンドにclid句を指定して発番号認証を利用するようにしている場合に、ユーザ名は正しいが、発番号が正しくないという着信を受けた時には、通常ならば発番号認証を最初に行うために、ISDN回線自体が接続されることがない。しかし、PP Anonymous以外のPPにpp auth uesrnameコマンドが設定されていると、発番号認証が適切に行われず、ISDN回線が接続され、PPPのPAP/CHAPの手順まで処理が進んでしまうバグを修正した。

    PPPのPAP/CHAPの手順まで処理が進んでしまっても、そこで改めて発番号認証がチェックされるので、通信できるようになることはない。

  26. RTX1000で、PPTPで、現在接続中の同じ相手から再びOutgoing-Call-RequestやIncoming-Call-Requestを受信したときに、強制的に接続を終了するようにした。修正前は正しく処理が行われずに、show status ppで接続中の表示のままになっていた。

  27. RTX1000で、PPTP接続で、ppp ccp no-encryption rejectの設定のときに、IPCPなど、CCP以外のNetwork Control Protocolsのネゴシエーションが失敗しても接続を拒否しないようにした。これにより、ppp ccp no-encryption rejectの設定のときにMac OS X 10.3 でPPTP接続ができない問題が解消される。

  28. RTX1000で、PPTPで、RFC2637で規定されていないPPTPメッセージを受信したときに、システムが不安定になることがあるバグを修正した。

  29. RTX1000で、PPTPのコネクションを終了したときに、システムが不安定になることがあるバグを修正した。

  30. RTX1000で、PPTPで、順序が入れ替わったGREパケットを受信したときに、不正な応答のパケットを返すバグを修正した。順序の入れ替わったGREパケットを受信したときに、ログには"GRE Delayed ack number"または"GRE Delayed sequence number"と記録するようにした。また、show status pptpコマンドでその受信回数を表示するようにした。

  31. RTX1000のLAN3インタフェースで、設定不一致などでオートネゴに失敗した後は設定に関わらず半二重モードでリンクアップする場合があるが、いったんそうなるとその後、再起動したり、あるいはlan typeコマンドを再投入しない限り、必ず半二重モードになってしまうバグを修正した。

    このバグの修正後は、ケーブルの抜き差しなどで一度リンクダウンを行うことで、lan typeコマンドの設定が正しくリンク状態に反映されるようになる。

  32. RTX1000で、IPマスカレードを使用し、かつ同じインタフェースに対してqueue type shapingコマンドの設定がある場合に、外部からpingを受け取ってそれに応答したり、あるいはルータからTCP RSTパケットを送出する必要性が発生したときに、ICMP Echo ReplyまたはTCP RSTパケットを送出できないバグを修正した。この現象が繰り返し発生すると、その後通信できなくなることがある。

    Rev.7.01.18でエンバグ。

    TCP RSTパケットに関する現象の発生は以下の設定で回避できるが、外部からのpingは防ぐ方法が無い。

    	  nat descriptor masquerade incoming N discard
    	
  33. RTX1000で、LANインタフェースでのqueue typeコマンドにshapingを設定して帯域制御を動作させている時に、該当のLANインタフェースの送信キューにパケットがある状態で、そのインタフェースでのQoSの設定を変更すると、パケットが送出されなくなるバグを修正した。