(57)【要約】【課題】  １つまたは複数の機能拡張モジュールを搭載することで、機能拡張モジュールによる付加機能の処理とルーティング処理を高速に行い、スケーラブルに機能拡張できるようにする。【解決手段】  ハードウェアによるルーティング処理も可能である高速なルーティングモジュール３２に、拡張機能を実行する機能実行モジュール６２を接続して機能拡張モジュール６を構成することによって、機能実行モジュール６２によるパケットデータの加工により新たなアドレス情報を持つパケットが生成された場合でも、接続している当該ルーティングモジュール３２により、パケットの新たなルーティング先を選び転送するルーティング処理の高速性を維持し、機能実行モジュール６２を複数枚接続することでスケーラブルな機能拡張モジュールによる機能拡張を可能にする。また、機能の異なる機能実行モジュール６２を複数載せることで、複数の機能を1台のインターネットワーク装置に組込むことも可能になる。【選択図】  図３
2010154551.tif 000002
【特許請求の範囲】
【請求項１】
複数の回線に接続され、何れかの回線から受信したパケットを他の回線に中継するインターネットワーク装置であって、
少なくとも１つのルーティング部と、
複数の接続部であって、各々の前記接続部は前記ルーティング部と接続される、前記複数の接続部と、
複数の回線制御部であって、各々の前記回線制御部は、少なくとも１つの回線と何れか１つの前記接続部とに接続され、何れかの回線からパケットを受信して前記接続部にそのパケットを送信し、また、前記接続部からパケットを受信して何れかの回線にそのパケットを送信する、前記複数の回線制御部と、
少なくとも１つの機能実行部であって、前記機能実行部は何れか１つの前記接続部に接続され、前記接続部からパケットを受信し、そのパケットに対して所定の付加機能を実行し、そのパケットを前記接続部に送信する、前記少なくとも１つの機能実行部と、
を備え、
前記ルーティング部は、前記接続部からパケットを受信すると、複数の前記接続部のいずれかを介して前記回線制御部または前記機能実行部にそのパケットを送信する、インターネットワーク装置。
【請求項２】
請求項１記載のインターネットワーク装置であって、
前記ルーティング部は、
前記接続部からパケットを受信し、受信したパケットの先頭部分に識別子を付加する第１の転送部と、
前記受信したパケットに含まれるアドレス情報を用いて、送信先の回線に対応する第１の送出経路情報を検索して取得し、前記識別子に前記第１の送出経路情報を格納する第１の検索部と、
前記受信したパケットに含まれる情報を用いて、前記受信したパケットを何れかの前記機能実行部に転送すべきかどうか識別し、前記機能実行部にパケットを転送する場合、前記機能実行部に対応する第２の送出経路情報を検索して取得し、前記識別子に前記第２の送出経路情報を格納する第２の検索部と、
前記識別子の付加されたパケットを複数の前記接続部のいずれかに送出する第２の転送部と
を備えたインターネットワーク装置。
【請求項３】
請求項２記載のインターネットワーク装置であって、
前記第１の検索部は、アドレス情報と各回線に対応する前記第１の送出経路情報とを対応付けて記憶する第１の記憶部を備え、受信パケットに含まれるアドレス情報を用いて前記第１の記憶部に記憶されているアドレス情報を検索し、受信パケットに含まれるアドレス情報と一致するアドレス情報が前記第１の記憶部に記憶されている場合、そのアドレス情報と対応付けられている前記第１の送出経路情報を前記第１の記憶部から読み出す、インターネットワーク装置。
【請求項４】
請求項２記載のインターネットワーク装置であって、
前記第２の検索部は、予め定められた検出条件と各々の前記機能実行部に対応する前記第２の送出経路情報とを対応付けて記憶する第２の記憶部を備え、受信パケットに含まれる所定の情報を用いて前記第２の記憶部を検索し、前記所定の情報と一致する検出条件が前記第２の記憶部に記憶されている場合、その検出条件に対応付けられている前記第２の送出経路情報を前記第２の記憶部から読み出す、インターネットワーク装置。
【請求項５】
複数の回線に接続され、何れかの回線から受信したパケットを他の回線に中継するインターネットワーク装置であって、
少なくとも１つのルーティング部と、
複数の第１の接続部であって、各々の前記第１の接続部は前記ルーティング部と接続される、前記複数の第１の接続部と、
少なくとも１つの第２の接続部であって、前記第２の接続部は前記ルーティング部と接続される、前記少なくとも１つの第２の接続部と、
複数の回線制御部であって、各々の前記回線制御部は、少なくとも１つの回線と何れか１つの前記第１の接続部とに接続され、何れかの回線からパケットを受信して前記第１の接続部にそのパケットを送信し、また、前記第１の接続部からパケットを受信して何れかの回線にそのパケットを送信する、前記複数の回線制御部と、
少なくとも１つの機能実行部であって、前記機能実行部は前記第２の接続部に接続され、前記第２の接続部からパケットを受信し、そのパケットに対して所定の付加機能を実行し、そのパケットを前記第２の接続部に送信する、前記少なくとも１つの機能実行部と、
を備え、
前記ルーティング部は、前記第１の接続部からパケットを受信すると、複数の前記第１の接続部または前記第２の接続部のいずれかを介して前記回線制御部または前記機能実行部にそのパケットを送信する、インターネットワーク装置。
【請求項６】
請求項５記載のインターネットワーク装置であって、
前記ルーティング部は、
前記第１の接続部からパケットを受信し、受信したパケットの先頭部分に識別子を付加する第１の転送部と、
前記受信したパケットに含まれるアドレス情報を用いて、送信先の回線に対応する第１の送出経路情報を検索して取得し、前記識別子に前記第１の送出経路情報を格納する第１の検索部と、
前記受信したパケットに含まれる情報を用いて、前記受信したパケットを何れかの前記機能実行部に転送すべきかどうか識別し、前記機能実行部にパケットを転送する場合、前記機能実行部に対応する第２の送出経路情報を検索して取得し、前記識別子に前記第２の送出経路情報を格納する第２の検索部と、
前記識別子の付加されたパケットを複数の前記第１の接続部または前記第２の接続部のいずれかに送出する第２の転送部と
を備えたインターネットワーク装置。
【請求項７】
請求項５記載のインターネットワーク装置であって、
前記第１の検索部は、アドレス情報と各回線に対応する前記第１の送出経路情報とを対応付けて記憶する第１の記憶部を備え、受信パケットに含まれるアドレス情報を用いて前記第１の記憶部に記憶されているアドレス情報を検索し、受信パケットに含まれるアドレス情報と一致するアドレス情報が前記第１の記憶部に記憶されている場合、そのアドレス情報と対応付けられている前記第１の送出経路情報を前記第１の記憶部から読み出す、インターネットワーク装置。
【請求項８】
請求項５記載のインターネットワーク装置であって、
前記第２の検索部は、予め定められた検出条件と各々の前記機能実行部に対応する前記第２の送出経路情報とを対応付けて記憶する第２の記憶部を備え、受信パケットに含まれる所定の情報を用いて前記第２の記憶部を検索し、前記所定の情報と一致する検出条件が前記第２の記憶部に記憶されている場合、その検出条件に対応付けられている前記第２の送出経路情報を前記第２の記憶部から読み出す、インターネットワーク装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、インターネットワーク装置に係り、特に、ルータ装置、ＬＡＮスイッチ装置を利用する機能拡張モジュールを搭載したインターネットワーク装置に関する。
【背景技術】
【０００２】
従来、複数のネットワークを接続する装置としては、ネットワークシステム階層のうちデータリンク層において相互接続を行いその受信パケット中のＭＡＣアドレスにより中継を制御する装置であるブリッジ、さらにその上位層であるネットワーク層において接続を行うルータ装置などがある。
【０００３】
図１８は、従来のルータ装置のブロック図の一例である。このルータは、メインプロセッサモジュール２、ルーティングモジュール３１〜３ｎ、下位バス４１〜４ｎ、回線制御モジュール５１〜５ｎを備える。ルータはネットワーク層の数あるプロトコルを制御するが、ここでは代表的なＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）プロトコルを例にあげルーティングの流れを説明する。ある通信回線からパケットを受信した回線制御モジュール５１は、そのパケットを下位バス４１を通してルーティング処理を制御するルーティングモジュール３１に送る。ルーティングモジュール３１は、受信した当該パケット中のＩＰアドレスによるアドレス情報により経路情報を検索して、あらかじめ定められた経路あるいは最適な経路を選択し、例えばルーティングモジュール３２を選ぶ。それからルーティングモジュール３１は、上位側の上位バス１を通して選んだ宛先のルーティングモジュール３２へ受信パケットの中継を行う。さらにルーティングモジュール３２の下位側の下位バス４２を通って回線制御モジュール５２へ送られ通信回線へパケットが送信されるものである。また、逆に回線制御モジュール５２から回線制御モジュール５１へパケットを送る際は、この逆の順路を通ってパケットのルーティングが行われる。
【０００４】
このような従来のルータ装置において、各種の機能補助を行うために補助プロセッサを該上位バスに接続した例として、特開平５−１９９２３０号公報がある。これによると、ルータを管理する主プロセッサとルーティング処理を行う複数のルーティングアクセラレータとを相互に接続している結合手段であるルータバスを介して、主プロセッサの機能補助をする補助プロセッサを接続するものである。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平５−１９９２３０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ブリッジもルータもパケットの中継を行う装置であるが、この中継の際に、ある機能を実施してパケット内の情報の検出やパケットの加工といった機能拡張を行いたい。
現存するルータ装置ならび新規のルータ装置において、機能拡張を実行するための機能拡張モジュールを複数枚搭載して、スケーラブルに拡張が行える装置を考えた場合、ルータ装置にルーティングモジュールが複数枚搭載できることを利用して、ルーティングモジュールの一部を機能拡張モジュールに置き換えて搭載する方が良い。このとき機能拡張モジュールはルーティングモジュールと同じ結合手段につながるユニットとしての制限を受ける。しかも、当該機能拡張モジュールによるパケットデータの加工により新たなアドレス情報を持つパケットが生成された場合、次のルーティング先を経路計算し直さなければならないので、ルーティングモジュールと同等のルーティング機能を持つことが必要となる。
しかし、機能拡張モジュールとして上記従来技術の補助プロセッサを用いて、補助プロセッサにルーティングソフトウェアを実行しても、ソフトウェアによる低速なルーティング処理ではパケットの中継速度が遅くなってしまう問題がある。
【０００７】
そこで、本発明の目的は、以上の点に鑑み、現存するインターネットワーク装置ならび新たに作成するインターネットワーク装置において、１つまたは複数の機能拡張モジュールを搭載することで、機能拡張モジュールによる付加機能の処理とルーティング処理を高速に行うことができ、スケーラブルに機能拡張できるインターネットワーク装置を提供する。
【０００８】
また、本発明は、機能実行モジュールとルーティングモジュールの組み合わせによる高速処理を行うことを目的とする。本発明は、機能実行モジュールによる機能拡張が現存するルータ装置に適用することにより、既に購入しているユーザの装置にも適用が可能とすることを目的とする。また、本発明は、ルーティングモジュール機能を除いて機能実行モジュールの機能を実現することで開発コストを削減することを目的とする。また、本発明は、機能実行モジュールをスケーラブルに搭載することにより、拡張性を具備し、同一又は異なる複数の機能を搭載し、さらに、複数の機能実行モジュールに負荷分散して処理することで、処理性能を向上させることを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するため、ハードウェアによるルーティング処理も可能である高速なルーティングモジュールに、拡張機能を実行する機能実行モジュールを接続して機能拡張モジュールを構成することによって、機能実行モジュールによるパケットデータの加工により新たなアドレス情報を持つパケットが生成された場合でも、接続している当該ルーティングモジュールにより、パケットの新たなルーティング先を選び転送することを実現する。
そのための機能実行モジュールの接続方法を以下に例示する。
【００１０】
（１）機能拡張モジュールの構成として、インターネットワーク装置に使われる高速なルーティングモジュールをそのまま使用して、その配下に機能実行モジュールを接続する方法。
機能拡張モジュールにルーティング機能が必要ならば、高速なルーティングモジュールをそのまま利用して、その配下に機能実行モジュールを接続すれば、高速で改造量を最小限にした機能拡張モジュールの搭載が可能である。
そこで、機能実行モジュールの接続方法としては、ルーティングモジュールに接続している回線制御モジュールの代わりに機能実行モジュールを接続することで実現できる。
【００１１】
（２）機能拡張モジュールの構成として、インターネットワーク装置に使われる高速なルーティングモジュールをそのまま使用して、回線制御モジュールの接続とは別のインタフェースに機能実行モジュールを接続する方法。
機能拡張モジュールにルーティング機能が必要ならば、高速なルーティングモジュールをそのまま利用して、回線制御モジュールの接続とは別に、拡張機能を実行する機能実行モジュールを接続するインタフェースを設けて、機能実行モジュールを接続することで、高速で改造量を最小限にした機能拡張モジュールの搭載が可能である。
【００１２】
この方法としては次の２つの手段がある。
（i）機能実行モジュールの接続方法としては、ルーティングモジュールから汎用バスまたは特定のインタフェースの線を取り出して、そこに機能実行モジュールをつなげ、使用しなくなった回線制御モジュールを取り外してしまう手段。
（ii）機能実行モジュールの接続方法としては、ルーティングモジュールから汎用バスまたは特定のインタフェースの線を取り出して、そこに機能実行モジュールをつなげる手段。
ルーティングモジュールが、パケットに付加された識別子によって機能拡張モジュールと回線制御モジュールの両方を使い分けて使用するか、または、機能実行モジュールと機能実行モジュールを切り替えて使用する。
【００１３】
（３）上記の（１）〜（２）において、各々のルーティングモジュールに複数の機能実行モジュールを搭載する方法。
（４）上記の（１）〜（３）において、ルーティングモジュール内に機能実行モジュールを一緒に組込んで、一つのボード上に載せて機能拡張モジュールとしてしまう方法。
【００１４】
本発明のひとつの特徴としては、複数のネットワークを相互に接続し、パケットデータを中継するインターネットワーク装置であって、当該インターネットワーク装置全体を管理する手段を具備するメインプロセッサモジュールを有し、
該メインプロセッサモジュールに接続され、相互に接続ができる結合手段を有し、
受信パケットデータのアドレス情報及び予め記憶された中継経路選択情報により経路検索を行うルーティング機能と、中継先ネットワークへの該受信パケットデータの中継処理を該結合手段を介して相互に行う機能を具備した複数のルーティングモジュールを有し、
各々の該ルーティングモジュールに直結し、ネットワークを制御して前記パケットデータの送受を行う回線制御モジュールを有するインターネットワーク装置に対して、
パケット加工やプロトコル処理などの機能を付加する機能拡張モジュールを追加するため、当該機能拡張モジュールの構成として、上記ルーティングモジュールの内、１つまたは複数を利用し、当該ルーティングモジュールに接続している当該回線制御モジュールの代わりに、付加機能の実行を行うことができる機能実行モジュールを接続するという手段によって、
当該機能実行モジュールによるパケットデータの加工により新たなアドレス情報を持つパケットが生成された場合でも、接続している当該ルーティングモジュールにより当該パケットの新たなルーティング先を選び転送することができることを特徴とした機能拡張モジュールを搭載したインターネットワーク装置を提供することにある。
【００１５】
本発明の他の特徴としては、複数のネットワークを相互に接続し、パケットデータを中継するインターネットワーク装置であって、当該インターネットワーク装置全体を管理する手段を具備するメインプロセッサモジュールを有し、
該メインプロセッサモジュールに接続され、相互に接続ができる結合手段を有し、
受信パケットデータのアドレス情報及び予め記憶された中継経路選択情報により経路検索を行うルーティング機能と、中継先ネットワークへの該受信パケットデータの中継処理を該結合手段を介して相互に行う機能を具備した複数のルーティングモジュールを有し、
各々の該ルーティングモジュールに直結し、ネットワークを制御して前記パケットデータの送受を行う回線制御モジュールを有するインターネットワーク装置に対して、
パケット加工やプロトコル処理などの機能を付加する機能拡張モジュールを追加するため、当該機能拡張モジュールの構成として、上記ルーティングモジュールの内、１つまたは複数を利用し、当該ルーティングモジュールと汎用バスまたは特定のインタフェースを介して、付加機能の実行を行うことができる機能実行モジュールを接続し、不要となった当該回線制御モジュールを取り外すという手段によって、
当該機能実行モジュールによるパケットデータの加工により新たなアドレス情報を持つパケットが生成された場合でも、接続している当該ルーティングモジュールにより当該パケットの新たなルーティング先を選び転送することができることを特徴とした機能拡張モジュールを搭載したインターネットワーク装置を提供することにある。
【００１６】
さらに、本発明の他の特徴としては、複数のネットワークを相互に接続し、パケットデータを中継するインターネットワーク装置であって、当該インターネットワーク装置全体を管理する手段を具備するメインプロセッサモジュールを有し、
該メインプロセッサモジュールに接続され、相互に接続ができる結合手段を有し、
受信パケットデータのアドレス情報及び予め記憶された中継経路選択情報により経路検索を行うルーティング機能と、中継先ネットワークへの該受信パケットデータの中継処理を該結合手段を介して相互に行う機能を具備した複数のルーティングモジュールを有し、
各々の該ルーティングモジュールに直結し、ネットワークを制御して前記パケットデータの送受を行う回線制御モジュールを有するインターネットワーク装置に対して、
パケット加工やプロトコル処理などの機能を付加する機能拡張モジュールを追加するため、当該機能拡張モジュールの構成として、上記ルーティングモジュールの内、１つまたは複数を利用し、当該ルーティングモジュールに回線制御モジュールの接続とは別の汎用バスまたは特定のインタフェースを介して、付加機能の実行を行うことができる機能実行モジュールを接続するという手段によって、
当該回線制御モジュールと当該機能実行モジュールの両方もしくは切り替えて使用することができることを特徴とした機能拡張モジュールを搭載したインターネットワーク装置を提供することにある。
【００１７】
また、上述のようなインターネットワーク装置において、各々の当該ルーティングモジュールに対して、複数の当該機能実行モジュールを同時に接続する構成を持った機能拡張モジュールを搭載するようにしてもよい。
また、上述のような記載インターネットワーク装置において、当該ルーティングモジュール内に当該機能実行モジュールをいっしょに組込んで、一つのボード上に載せてしまった機能拡張モジュールを搭載するようにしてもよい。
【００１８】
本発明の第１の解決手段によると、
複数の回線に接続され、何れかの回線から受信したパケットを他の回線に中継するインターネットワーク装置であって、
少なくとも１つのルーティング部と、
複数の接続部であって、各々の前記接続部は前記ルーティング部と接続される、前記複数の接続部と、
複数の回線制御部であって、各々の前記回線制御部は、少なくとも１つの回線と何れか１つの前記接続部とに接続され、何れかの回線からパケットを受信して前記接続部にそのパケットを送信し、また、前記接続部からパケットを受信して何れかの回線にそのパケットを送信する、前記複数の回線制御部と、
少なくとも１つの機能実行部であって、前記機能実行部は何れか１つの前記接続部に接続され、前記接続部からパケットを受信し、そのパケットに対して所定の付加機能を実行し、そのパケットを前記接続部に送信する、前記少なくとも１つの機能実行部と、
を備え、
前記ルーティング部は、前記接続部からパケットを受信すると、複数の前記接続部のいずれかを介して前記回線制御部または前記機能実行部にそのパケットを送信する、インターネットワーク装置を提供する。
【００１９】
本発明の第２の解決手段によると、
複数の回線に接続され、何れかの回線から受信したパケットを他の回線に中継するインターネットワーク装置であって、
少なくとも１つのルーティング部と、
複数の第１の接続部であって、各々の前記第１の接続部は前記ルーティング部と接続される、前記複数の第１の接続部と、
少なくとも１つの第２の接続部であって、前記第２の接続部は前記ルーティング部と接続される、前記少なくとも１つの第２の接続部と、
複数の回線制御部であって、各々の前記回線制御部は、少なくとも１つの回線と何れか１つの前記第１の接続部とに接続され、何れかの回線からパケットを受信して前記第１の接続部にそのパケットを送信し、また、前記第１の接続部からパケットを受信して何れかの回線にそのパケットを送信する、前記複数の回線制御部と、
少なくとも１つの機能実行部であって、前記機能実行部は前記第２の接続部に接続され、前記第２の接続部からパケットを受信し、そのパケットに対して所定の付加機能を実行し、そのパケットを前記第２の接続部に送信する、前記少なくとも１つの機能実行部と、
を備え、
前記ルーティング部は、前記第１の接続部からパケットを受信すると、複数の前記第１の接続部または前記第２の接続部のいずれかを介して前記回線制御部または前記機能実行部にそのパケットを送信する、インターネットワーク装置を提供する。
【発明の効果】
【００２０】
本発明によれば、例えば、以下の効果がある。
・機能実行モジュールとルーティングモジュールの組み合わせによる高速処理が行える。
・機能実行モジュールによる機能拡張が現存するルータ装置に適用できるので、既に購入しているユーザの装置にも適用が可能となる。
・ルーティングモジュール機能を除いて機能実行モジュールの機能を実現できるので開発コストを削減できる。
・機能実行モジュールをスケーラブルに搭載することができ、拡張性がある。
・機能実行モジュールをスケーラブルにできるので複数の機能を搭載することができる。
・機能実行モジュールをスケーラブルにできるので異なる複数の機能を搭載することができる。
・機能実行モジュールをスケーラブルにできるので複数の機能実行モジュールに負荷分散して処理することで、処理性能を向上させることができる。
【図面の簡単な説明】
【００２１】
【図１】本発明に関して、機能拡張モジュールを設けたときのルータ装置のブロック図である。
【図２】本発明の機能拡張モジュールの構成としてルーティングモジュールに機能実行モジュールを接続したインターネットワーク装置全体の概略ブロック図である。
【図３】本発明の一実施の形態を用いた場合の、機能拡張モジュールの構成としてルーティングモジュールに機能実行モジュールを接続したルータ装置のブロック図である。
【図４】本発明の一実施の形態としての、パケットへの識別子挿入書式の例を示す図である。
【図５】本発明の一実施の形態としての、経路情報テーブルの構成例を示す図である。
【図６】本発明の一実施の形態としての、回線テーブルの構成例を示す図である。
【図７】本発明の一実施の形態としての、検出条件テーブルの構成例を示す図である。
【図８】本発明の一実施の形態における、受信側ルーティングモジュールでのパケット処理手順である。
【図９】本発明の第一の実施の形態としての、上位バスから機能実行モジュールまでのパケット処理手順である。
【図１０】本発明の第一の実施の形態における、機能実行モジュールでのパケット処理手順である。
【図１１】本発明の第一の実施の形態における、ルーティングモジュールの再ルーティングによるパケット処理手順である。
【図１２】本発明の一実施の形態としての、送信側ルーティングモジュールでのパケット処理手順である。
【図１３】本発明の一実施の形態を用いた場合の、機能拡張モジュールの構成としてルーティングモジュールに機能実行モジュールを搭載したルータ装置のブロック図である。
【図１４】本発明の第二の実施の形態における、上位バスからのパケット処理手順示すフローチャートである。
【図１５】本発明の第二の実施の形態における、機能実行モジュールでのパケット処理手順を示すフローチャートである。
【図１６】本発明の第二の実施の形態における、ルーティングモジュールの再ルーティングによるパケット処理手順示すフローチャートである。
【図１７】本発明の一実施の形態を用いた場合の、機能拡張モジュールの構成として一つのルーティングモジュールに複数の機能実行モジュールを搭載したルータ装置のブロック図である。
【図１８】従来のルータ装置の一例の構成を示すブロック図である。
【図１９】機能実行モジュール６２でのパケット処理手順についての他のフローチャート。
【図２０】機能実行モジュール６４でのパケット処理手順についての他のフローチャート。
【発明を実施するための形態】
【００２２】
以下、本発明の一実施の形態について図面を用いて説明する。なお、インターネットワーク装置は、以下の説明では本来の目的であるルーティング処理を主体に説明することとし、ここではインターネットワーク装置としてルータを代表として説明する。
【００２３】
図１は、従来のルータ装置に、機能拡張モジュールを設けたときのルータ装置のブロック図であり、複数のルーティングモジュール５１〜５ｎを接続している結合手段と同じ上位バス１に、機能拡張モジュール６を接続している基本構成図である。
【００２４】
図２は、本発明の機能拡張モジュールの構成としてルーティングモジュールに機能実行モジュールを接続したインターネットワーク装置全体のブロック図である。このインターネットワーク装置は、上位バス１、メインプロセッサモジュール２、機能拡張モジュール６、ルーティングモジュール３１、ルーティングモジュール３３〜３ｎ、下位バス４１、下位バス４３〜４ｎ、回線制御モジュール５１、回線制御モジュール５３〜５ｎを備える。機能拡張モジュール６は、ルーティングモジュール３２、下位バス４２もしくは他のインターフェース、機能実行モジュール６２を備える。まず、各部の説明を行う。上位バス１は、ルータの中心となる高速な結合手段であり、一般的にはスイッチング構造を持つものやバス構造を持つものがある。この上位バス１には装置全体の管理機能とルーティングテーブルの生成・配布等の機能を持つメインプロセッサモジュール２が接続されている。更に上位バス１には、高速にパケットデータのルーティングを行う機能を持つ一つまたは複数のルーティングモジュール３１〜３ｎが接続される。このルーティングモジュール３１の下位側には回線制御モジュール５１と接続するための下位バス４１があり、下位バス４１はパケットデータ等を転送するためのインタフェースである。回線制御モジュール５１は、ＬＡＮや回線のプロトコルを制御しルータ装置の外部との通信が行われる通信制御部である。機能実行モジュール６２は、該メインプロセッサモジュール２や該ルーティングモジュール３１〜３ｎではできなかった新しい機能や該メインプロセッサモジュール２では処理が遅くなる機能を高速に実現するための拡張機能を実行をするものであり、下位バス４２もしくは他のインタフェースを使ってルーティングモジュール３２と接続される。
【００２５】
本発明の実施の形態としては、回線制御モジュールの代わりに機能実行モジュールを接続する方法と、回線制御モジュールとは別のインタフェースに機能実行モジュールを接続する方法に大別できるので、まず、この２ケースについて詳しく説明する。
【００２６】
（１）第１の実施の形態
本発明の１つの手段としては、ルーティングモジュール３２の下位側の下位バス４２のコネクタに回線制御モジュールを接続する代わりに機能実行モジュール６２を接続する方法である。この方法では、ルーティングモジュール３２のハードウェアを全く変更することなく機能実行モジュール６２を接続できる利点がある。また、一つのボード上にルーティングモジュール３２と機能実行モジュール６２の両方を載せてしまって下位バスでつないでもよい。
【００２７】
この方法は高速なルーティングモジュール３２を利用できるので、機能実行モジュール６２を上位バス１に高速にインタフェースすることができる利点がある。
図３は、本発明の一実施の形態を用いた場合の機能実行モジュールを接続したルータ装置のブロック図である。以下に、構成ならびに各部の説明を行う。ここでは機能拡張モジュール６は、特に、その機能を実行するために、複雑なプロトコルをソフトウェア処理する手段と、高速なハードウェア処理を実行する手段を搭載した機能実行モジュール６２を備える。機能実行モジュール６２は、汎用バス９５と、下位バス４２と汎用バス９５との間でパケットデータ等の転送を行って両方のバスをブリッジ接続するバス連結部９１と、汎用バス９５に接続されるＣＰＵ９６、ＣＰＵ９６用のメモリ９７、汎用バス９５に接続する１つまたは複数の機能アクセラレータ９８を有する。バス連結部９１は、下位バス受信部９２、下位バス送信部９３、データ転送制御部９４を備える。
【００２８】
各ルーティングモジュール３１，３２，３３には本情報中継装置内で重複を起さない番号を割り当てる。この番号をモジュール番号と表記する。また、回線制御モジュール５１、５３や機能実行モジュール６２には、各ルーティングモジュール配下に複数の回線制御モジュールなどを接続した場合のために、ルーティングモジュール内で重複を起さない番号を割り当てる。この番号を物理回線制御モジュール番号と表記する。さらに、回線制御モジュール５１に接続する回線２３に対して、各回線制御モジュール配下で重複しない番号を割り当てる。同様に回線制御モジュール５３に接続する回線２３に対して、各回線制御モジュール配下で重複しない番号を割り当てる。この番号を物理回線番号と表記する。物理回線番号に対して、装置内部で閉じる論理的な回線番号を考えてもよい。この論理的な回線番号と物理的な回線２３に一意に対応する物理回線番号とは１対１に対応する必要はない。例えば、ＡＴＭ回線の場合、１本のＡＴＭ回線において複数のＶＣ（Ｖｉｒｔｕａｌ  Ｃｏｎｎｅｃｔｉｏｎ）を設定することができる。以降、この論理的な回線番号を単に回線番号と表記する。また以降の説明では、パケットを受信した回線２３を収容しているルーティングモジュール３１を受信側ルーティングモジュール、逆にパケットを送出する回線２３を収容しているルーティングモジュール３３を送信側ルーティングモジュールと表記する。
【００２９】
ルーティングモジュール３１、３２、３３は、ＩＰパケット経路検索部１７、ＩＰ経路情報テーブル１８、回線テーブル検索部１５、回線テーブル１６、経路情報書換え部２０、パケット検出部２１、検出条件テーブル２２、ＩＰパケット判別部１４、パケットバッファ１３、ＣＰＵ１１、メモリ１２、上位バス送受信部１０、下位バス送受信部１９を備える。
【００３０】
ルーティングモジュール３１が受信側ルーティングモジュールである場合、下位バス送受信部１９は、下位バス４１経由で送信、受信するパケットのハンドリングを行う。下位バス送受信部１９は、下位バス４１から受信したパケットをパケットバッファ１３に格納する処理を行う。その際、下位バス送受信部１９は、パケットの先頭部分に識別子を付加する。識別子は、情報中継装置内での各モジュール間の転送で、該パケットに関する中継情報を伝達する為に使う。
【００３１】
図４は、パケットへの識別子挿入書式の例を示す図である。パケット１０５に対する識別子１０１は、一例として送出経路情報であるモジュール番号１０２、回線番号１０３、次ノードＩＰアドレス１０４を含む。識別子１０１のモジュール番号１０２、回線番号１０３、次ノードＩＰアドレス１０４には、後述の経路情報テーブル検索の結果得られるモジュール番号、回線番号、次ノードＩＰアドレスを格納する。送信側ルーティングモジュールはこの識別子１０１を参照し、対応する回線２３への送信処理を行う。
【００３２】
なお、この付加した識別子１０１を削除するところは、ルーティングモジュール３３の回線モジュール５３にて削除するが、別の方法としてはパケットのデータ転送量を少しでも減らすために、ルーティングモジュール３３から回線モジュール５３へパケットを送る直前で削除する方法でもよい。
【００３３】
一方、機能実行モジュール６２で付加機能を処理した後にルーティングモジュール３２の再ルーティング処理を行うために、機能実行モジュール６２でこの識別子１０１を削除し（またはルーティングモジュール３２の下位バス送受信部１９から機能実行モジュール６２にパケットを送る直前にこの識別子１０１を削除し）、再びルーティングモジュール３２の下位バス送受信部１９が、下位バス４２から受信したパケットをパケットバッファ１３に格納する処理を行う際、パケットの先頭部分に新たな識別子１０１を付加する。これについては、別の方法としては、機能実行モジュール６２では識別子１０１の削除は行わずに、再びルーティングモジュール３２の下位バス送受信部１９が、下位バス４２から受信したパケットをパケットバッファ１３に格納する処理を行う際、パケットに付加されている識別子の上に新たな識別子１０１で上書きする方法もある。
【００３４】
また、図５は、経路情報テーブルの構成例を示す図である。経路情報テーブル１８は、図に例示されるように、ＩＰパケットの送出経路情報のモジュール番号２０３、回線番号２０４、次ノードＩＰアドレス２０５と宛先ＩＰアドレス２０１、サブネットマスク２０２が対応付けられて格納されている。
【００３５】
ルーティングモジュール３３を送信側ルーティングモジュールとした場合、モジュール番号２０３は、該ＩＰパケットを送信するネットワークに直接、又は間接的につながる回線２３を収容する送信側ルーティングモジュール３３を指す番号である。回線番号２０４は、該ＩＰパケットを送信するネットワークに直接、又は間接的につながる回線２３を指す番号である。次ノードＩＰアドレス２０５は、本情報中継装置の次に該ＩＰパケットを中継する情報中継装置を指すＩＰアドレスである。ＩＰパケット経路検索部１７は、パケットバッファ１３に格納されたＩＰパケットのＩＰヘッダに記載された宛先ＩＰアドレスからサブネットマスク２０２を使ってネットワークアドレス部分を抽出する。これを検索キーとし、経路情報テーブル１８の宛先ＩＰアドレス２０１を検索する。結果、該ＩＰパケットに対する送出経路情報（モジュール番号２０３、回線番号２０４、次ノードＩＰアドレス２０５）を得る。
【００３６】
また、図６は、回線テーブルの構成例を示す図である。回線テーブル１６は、図に例示されるように、回線番号４０１と物理回線モジュール番号４０３、物理回線番号４０２が対応付けられて格納されている。
回線テーブル検索部１５は、上位バス１から受信したパケットに対して、パケットに付加されている識別子１０１に記載された回線番号１０３を検索キーとし、回線テーブル１６の回線番号４０１を検索する。結果、該パケットを送出する物理回線モジュール番号４０３と物理回線番号４０２が求まる。
【００３７】
また、図７は、検出条件テーブルの構成例を示す図である。検索条件テーブル２２は、ＩＰ付加機能処理を施す対象のＩＰパケットを検出する条件が格納してある。検索条件テーブル２２は、図に例示されるように、ＩＰ付加機能処理を施す対象のＩＰパケットを検出するための検出条件３０１と、該ＩＰ付加機能処理を処理する機能拡張モジュール６のモジュール番号３０２、回線番号３０３、次ノードＩＰアドレス３０４が対応付けられて格納されている。検出条件の例として、宛先ＩＰアドレスや、送り元ＩＰアドレスがある。また例えば、ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）、ＵＤＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ）のポート番号など、ＩＰ層以上のプロトコル情報が記憶されていてもよい。なお、モジュール番号３０２のみを用いても機能拡張モジュール６の特定は可能である。さらに、回線番号３０３及び次ノードＩＰアドレス３０４を用いることで、複数の機能実行モジュ-ル（１）〜（Ｎ）を備えた場合にも、各装置への振り分けを行うことができる。
【００３８】
パケット検出部２１は、パケットバッファ１３に格納されたＩＰパケットのＩＰ、もしくはさらに上位層のプロトコルの情報で検索条件テーブル２２の検出条件３０１を検索する。パケット検出部２１は、検索の結果、その情報と検索条件３０１とが合致した場合、該ＩＰパケットに対してＩＰ付加機能処理を施すと識別できると共に、その処理を行う機能拡張モジュール６のモジュール番号３０２、回線番号３０３、次ノードＩＰアドレス３０４を得る。経路情報書換え部２０は、ＩＰ付加機能の処理を施す対象のＩＰパケットをパケット検出部２１にて検出した場合、パケットに付加されている識別子１０１の情報を、前記検出条件テーブル２２を検索して得られたモジュール番号３０２、回線番号３０３、次ノードＩＰアドレス３０４で上書きする。ＩＰパケット判別部１４は、下位バス送受信部１９によって下位バス５経由で受信したパケットがＩＰパケットか否かの判定を行う。パケットバッファ１３は、下位バス送受信部１９または上位バス送受信部１０から受信したパケットを格納する。
【００３９】
ＣＰＵ１１とメモリ１２は、その上でソフトウエアを動作させる。このソフトウエアはルーティングモジュール２の各種装置管理機能、メインプロセッサモジュール２から伝達される設定情報などを各テーブル等へ格納する機能等を有する。またＩＰパケット以外のパケットをメインプロセッサモジュール２へ転送する機能を有する。
【００４０】
上位バス送受信部１０は、上位バス１経由で送信、受信するパケットのハンドリングを行う。上位バス送受信部１０は、パケットの先頭部分に付加された識別子１０１のモジュール番号１０２に従って、上位バス１を介して適するデバイスにパケットを送信する。
【００４１】
次に本発明の上記手段におけるパケットデータの流れを説明する。図３における符号のｔ１の矢印線がパケットの流れである。これを以下のフローチャートを使ってパケットの処理手順を説明する。
【００４２】
＜１＞  図８は受信側ルーティングモジュール３１でのパケット処理手順である。
回線制御モジュール５１で回線２３からのパケット受信を認識する（ステップ１００１）。下位バス送受信部１９は受信パケットをパケットバッファ１３に格納する（ステップ１００２）。この際、下位バス送受信部１９は、パケットの先頭部分に識別子１０１を付加する（ステップ１００３）。
【００４３】
次にＩＰパケット判別部１４は、パケットバッファ１３に格納されたパケットがＩＰパケットであるか否かを判別する（ステップ１００４）。パケットがＩＰパケットである場合、ＩＰ経路検索部１７は、パケットバッファ１３に格納したパケットのＩＰアドレスからサブネットマスク２０２を使ってネットワークアドレス部分を抽出し、それを検索キーとして経路情報テーブル１８を検索する（ステップ１００５）。例えば、サブネットマスク２０２の設定によりＩＰアドレスの何ビットから何ビット目を検索キーとして用いるかが求まり、それをマスクとして、受信ＩＰパケットのＩＰアドレスの一部又は全部のビットを検索キーをして用いる。ＩＰ経路検索部１７は、ステップ１００５の検索がヒットした場合、そのＩＰパケットに対する送出経路情報（モジュール番号２０３、回線番号２０４、次ノードＩＰアドレス２０５）を得る。そして経路情報書換え部２０は、パケット１０５識別子１０１に該送出経路情報を格納する（ステップ１００６）。続けて、パケット検出部２１が検出条件テーブル２２を検索条件で検索する（ステップ１００７）。
【００４４】
ステップ１００７の検索がヒットした場合、該ＩＰパケットに対してＩＰ付加機能処理を施すと識別できると共に、そのＩＰ付加機能処理を行う機能拡張モジュール６のモジュール番号３０２、ならびに回線番号３０３、次ノードＩＰアドレス３０４を得る。経路情報書換え部２０にて、上記検索の結果得たモジュール番号３０２、回線番号３０３、次ノードＩＰアドレス３０４を識別子１０１に上書きで格納する（ステップ１００８）。これがパケットデータの流れｔ１の一般的な処理手順である。一方、ステップ１００７の検索がヒットしなかった場合、識別子１０１への送出経路情報の上書きは行わない。以上の処理を行った後、上位バス送受信部１０が識別子１０１のモジュール番号１０２に従い、上位バス１を介して適するデバイスへパケットを送出する（ステップ１００９）。
【００４５】
一方ステップ１００５のＩＰ経路検索部１７で経路情報テーブル１８の検索に失敗した場合、パケット検出部２１が検索条件テーブル２２を検索条件による検索（ステップ１０１０）を行い、もし検索が成功であれば、先と同様に送出経路情報を識別子１０１に上書きで格納した後（ステップ１００８）、上位バス１へ送出する（ステップ１００９）。また、ステップ１０１０のパケット検出部２１での検索が失敗した場合、パケットを廃棄（ステップ１０１１）して受信処理を終了する。
【００４６】
ステップ１００４の判別でＩＰパケット以外であると判別した場合、ＩＰパケット判別部１４はパケットをＣＰＵ１１の管理するメモリ１２に格納する（ステップ１０１２）。ＣＰＵ１１上で動作するソフトウエアは、パケットをメインプロセッサモジュール２へ転送する（ステップ１０１３）。メインプロセッサモジュール２では、転送されたパケットの種類に応じた処理を施す。中継する必要があるパケットであれば中継処理をする。以上の処理手順によりＩＰ付加機能処理を施す対象のＩＰパケットを機能拡張モジュール６へ転送することができる。
【００４７】
＜２＞  図９は、機能拡張モジュール６内での上位バスから機能実行モジュールまでのパケット処理手順を示すフローチャートである。
機能拡張モジュール６内のルーティングモジュール３２では、上位バス送受信部１０が、上位バス１からのパケット受信を識別子１０１のモジュール番号１０２等により認識する（ステップ４１０１）。上位バス送受信部１０は受信パケットをパケットバッファ１３に格納する（ステップ４１０２）。続いて回線テーブル検索部１５は、パケットに付加された識別子１０１に格納されている回線番号１０３を検索キーにして、回線テーブル１６を検索する（ステップ４１０３）。回線テーブル検索部１５は、ステップ４１０３の検索が成功した場合、パケットを送信する物理回線制御モジュール番号４０３と物理回線番号４０２を得る。下位バス送受信部１９は、物理回線制御モジュール番号４０３と該物理回線番号４０２で示された（回線制御モジュールの代わりに接続している）機能実行モジュール６２に送信を指示する（ステップ４１０４）。このように、受信パケット１０５の識別子１０１中の回線番号１０３に基づき、転送する機能モジュール６２が適宣選択・設定される。これがパケットデータの流れｔ１の一般的な処理手順である。一方、もしステップ４１０３の検索が失敗した場合は、パケットを廃棄（ステップ４１０７）して送信処理を終了する。
【００４８】
＜３＞  図１０は、機能実行モジュール６２でのパケット処理手順を示すフローチャートである。
機能実行モジュール６２の下位バス受信部９２が、下位バス４２からのパケット受信を物理回線制御モジュール番号４０３又は物理回線番号４０２等により認識する（ステップ２１０１）。下位バス受信部９２はパケットをデータ転送制御部９４に送る（ステップ２１０２）。データ転送制御部９４は機能アクセラレータ９８に向けて汎用バス９５にパケットを転送する（ステップ２１０３）。機能アクセラレータ９８がパケットを受信する（ステップ２１０４）。なお、汎用バス９５は物理回線制御モジュール番号４０３又は物理回線番号４０２に基づいて、処理すべきパケットの受信を識別することも可能である。機能アクセラレータ９８が受信パケットについて、ＩＰ付加機能処理を施す（ステップ２１０５）。ここで行われる機能の一例を挙げると、例えば、ＩＥＴＦ（Ｉｎｔｅｒｎｅｔ  Ｅｎｇｉｎｅｅｒｉｎｇ  Ｔａｓｋ  Ｆｏｒｃｅ）がＲＦＣ（Ｒｅｑｕｅｓｔ  Ｆｏｒ  Ｃｏｍｍｅｎｔｓ）と称して通し番号をつけて公開しているものでＲＦＣ２４０１などの暗号処理を行うＩＰｓｅｃ機能などがある。機能アクセラレータ９８は、処理を施された後のパケットの識別子１０１を削除し（ステップ２１０６）、データ転送制御部９４に向けて汎用バス９５にパケットを転送する（ステップ２１０７）。データ転送制御部９４は汎用バス９５からパケットを受信する（ステップ２１０８）。データ転送制御部９４は下位バス送信部９３を使って下位バス４２の先のルーティングモジュール３２へパケットを送る（ステップ２１０９）。
【００４９】
なお、IPsecのカプセリングは、パケットの先頭に新しいパケットヘッダを付加するという処理を伴う。また、機能実行モジュールにて暗号化処理を行う際には、識別子１０１を除いた本来のパケットデータ部分にのみ暗号化を施すことになる。したがって、このような場合には識別子１０１を削除した（ステップ２１０６）後に、付加機能処理を行う（ステップ２１０５）ようにしても良い。この場合について、図１９に、機能実行モジュール６２でのパケット処理手順についての他のフローチャートを示す。
【００５０】
また、前述の識別子１０１の削除に関する別の方法として、ルーティングモジュール３２の下位バス送受信部１９から機能実行モジュール６２にパケットを送る直前にこの識別子１０１を削除する方式をとった場合、または、この後ルーティングモジュール３２の下位バス送受信部１９が、下位バス４２から受信したパケットをパケットバッファ１３に格納する処理を行う際にパケットに付加されている識別子の上に新たな識別子１０１で上書きする方式をとった場合は、ステップ２１０６の識別子１０１を削除する処理は必要ない。
【００５１】
＜４＞  図１１は、ルーティングモジュール３２の再ルーティングによるパケット処理手順を示すフローチャートである。
ルーティングモジュール３２の下位バス送受信部１９が下位バス４２から、付加処理を施されたパケット受信を認識する（ステップ１１０１）。下位バス送受信部１９は受信パケットをパケットバッファ１３に格納する（ステップ１１０２）。この際、下位バス送受信部１９は、パケットの先頭部分に識別子１０１を付加する（ステップ１１０３）。
【００５２】
次にＩＰパケット判別部１４は、パケットバッファ１３に格納されたパケットがＩＰパケットであるか否かを判別する（ステップ１１０４）。パケットがＩＰパケットである場合、ＩＰ経路検索部１７は、パケットバッファ１３に格納したパケットのＩＰアドレスからサブネットマスク２０２を使ってネットワークアドレス部分を抽出し、それを検索キーとして経路情報テーブル１８を検索する（ステップ１１０５）。ステップ１１０５の検索がヒットした場合、そのＩＰパケットに対する送出経路情報（モジュール番号２０３、回線番号２０４、次ノードＩＰアドレス２０５）を得る。そして経路情報書換え部２０は、パケット１０５の識別子１０１に該送出経路情報を格納する（ステップ１１０６）。続けて、パケット検出部２１が検出条件テーブル２２を検索条件で検索する（ステップ１１０７）。
【００５３】
ステップ１１０７の検索がヒットしなかった場合、識別子１０１への送出経路情報の上書きは行わない。以上の処理を行った後、上位バス送受信部１０が識別子１０１のモジュール番号１０２に従い、上位バス１を介して送信側ルーティングモジュール３３へパケットを送出する（ステップ１１０９）。これがパケットデータの流れｔ１の一般的な処理手順である。一方、ステップ１１０７の検索がヒットした場合、該ＩＰパケットに対してＩＰ付加機能処理を施すと識別できると共に、そのＩＰ付加機能処理を行う機能拡張モジュール６のモジュール番号３０２、ならびに回線番号３０３、次ノードＩＰアドレス３０４を得る。経路情報書換え部２０にて、上記検索の結果得たモジュール番号３０２、回線番号３０３、次ノードＩＰアドレス３０４を識別子１０１に上書きで格納する（ステップ１１０８）。以上の処理を行った後、上位バス送受信部１０が識別子１０１のモジュール番号１０２に従い、上位バス１を介して適するデバイスへパケットを送出する（ステップ１１０９）。このようにして、さらに他の機能拡張モジュール６へパケットを転送することができる。
【００５４】
一方ステップ１１０５のＩＰ経路検索部１７で経路情報テーブル１８の検索に失敗した場合、パケット検出部２１の検索（ステップ１１１０）を行い、もし検索が成功であれば、先と同様に送出経路情報を識別子１０１に上書きで格納した後（ステップ１１０８）、上位バス１へ送出する（ステップ１１０９）。また、ステップ１１１０のパケット検出部２１での検索が失敗した場合、パケットを廃棄（ステップ１１１１）して受信処理を終了する。
【００５５】
また、ステップ１１０４の判別でＩＰパケット以外であると判別した場合、ＩＰパケット判別部１４はパケットをＣＰＵ１１の管理するメモリ１２に格納する（ステップ１１１２）。ＣＰＵ１１上で動作するソフトウエアは、パケットをメインプロセッサモジュール２へ転送する（ステップ１１１３）。メインプロセッサモジュール２では、転送されたパケットの種類に応じた処理を施す。中継する必要があるパケットであれば中継処理をする。
【００５６】
＜５＞  図１２は、送信側ルーティングモジュールでのパケット処理手順を示すフローチャートである。
送信側ルーティングモジュール３３の上位バス送受信部１０が、上位バス１からのパケット受信を識別子１０１のモジュール番号１０２等により認識する（ステップ４００１）。上位バス送受信部１０はパケットをパケットバッファ１３に格納する（ステップ４００２）。続いて回線テーブル検索部１５は、パケットに付加された識別子１０１に格納されている回線番号１０３を検索キーにして、回線テーブル１６を検索する（ステップ４００３）。もしステップ４００３の検索が失敗した場合は、パケットを廃棄（ステップ４００７）して送信処理を終了する。一方、ステップ４００３の検索が成功した場合、回線テーブル１６によりパケットを送信する回線２３の物理回線番号４０２を得る。下位バス送受信部１９は、該物理回線番号４０２の指す回線２３を制御する回線制御モジュール３に送信を指示する（ステップ４００４）。指示を受けた回線制御モジュール３は、パケットバッファ１３からパケットをとりだし、パケットの先頭部分に付加された識別子１０１を削除した後（ステップ４００５）、パケットを回線２３へ送出する（ステップ４００６）。以上が、パケットデータの流れｔ１の一般的な処理手順である。
【００５７】
なお、前述の識別子１０１を削除する別の方法として、ルーティングモジュール３３から回線モジュール５３へパケットを送る直前で削除する方式をとった場合は、ステップ４００５の識別子１０１を削除する処理は必要ない。
なお、本発明では、機能実行モジュール６２は、複数の機能アクセラレータ９８を備え各種付加機能を実行してもよいし、さらに、機能拡張モジュール６が複数の機能実行モジュール６２を備え、各種付加機能を実行することができる。
【００５８】
（２）第２の実施の形態
本発明のもう１つの手段としては、ルーティングモジュール３４に汎用バスもしくは特定のインタフェースのコネクタを設けて機能実行モジュールを接続する方法である。この方法では、ルーティングモジュールのハードウェアの変更を最小限にして機能実行モジュールを接続できる利点がある。また、一つのボード上にルーティングモジュールと機能実行モジュールの両方を載せてしまって汎用バスもしくは特定のインタフェースでつないでもよい。
【００５９】
この方法も高速なルーティングモジュール３４を利用できるので、機能実行モジュール６４を上位バス１に高速にインタフェースすることができる利点がある。
図１３は本発明の一実施の形態を用いた場合の、機能拡張モジュールの構成としてルーティングモジュールに機能実行モジュールを搭載したルータ装置のブロック図である。構成ならびに各部の説明を行う。これからの説明は、主に第１の実施の形態と異なる部分について説明する。
【００６０】
機能実行モジュールの機能を含む機能拡張モジュール６は、複雑なプロトコルをソフトウェア処理する手段と、高速なハードウェア処理を実行する手段を搭載した機能実行モジュール６４を備える。機能実行モジュール６４は、ルーティングモジュール３４との間を汎用バス７４で接続し、汎用バス７４に接続されるＣＰＵ９６、およびＣＰＵ９６用のメモリ９７、同じ汎用バス７４に接続する１つまたは複数の機能アクセラレータ９８を持つ。
【００６１】
各ルーティングモジュール３１，３３、３４には本情報中継装置内で重複を起さない番号を割り当てる。この番号をモジュール番号と表記する。また、回線制御モジュール５１、５３、５４や機能実行モジュール６４には、ルーティングモジュール内で重複を起さない番号を割り当てる。この番号を物理回線制御モジュール番号と表記する。さらに、回線制御モジュール５１に接続する回線２３に対して、各回線制御モジュール配下で重複しない番号を割り当てる。同様に回線制御モジュール５３ならび５４に接続する回線２３に対して、各回線制御モジュール配下で重複しない番号を割り当てる。この番号を物理回線番号と表記する。物理回線番号に対して、装置内部で閉じる論理的な回線番号を考えてもよい。この論理的な回線番号と物理的な回線２３に一意に対応する物理回線番号とは１対１に対応する必要はない。
【００６２】
ルーティングモジュール３１、３３、３４は、ＩＰパケット経路検索部１７、ＩＰ経路情報テーブル１８、回線テーブル検索部１５、回線テーブル１６、経路情報書換え部２０、パケット検出部２１、検出条件テーブル２２、ＩＰパケット判別部１４、パケットバッファ１３、ＣＰＵ１１、メモリ１２、上位バス送受信部１０、下位バス送受信部１９を備える。ルーティングモジュール３４は、このような構成に加え、汎用バス送受信部８５が追加されていて、汎用バス７４を介して機能実行モジュール６４を接続できる。
【００６３】
ルーティングモジュール３１が受信側ルーティングモジュールである場合、下位バス送受信部１９は、下位バス４１経由で送信、受信するパケットのハンドリングを行う。下位バス送受信部１９は、下位バス４１から受信したパケットをパケットバッファ１３に格納する処理を行う。その際、パケットの先頭部分に識別子を付加する。識別子は、情報中継装置内での各モジュール間の転送で、該パケットに関する中継情報を伝達する為に使う。上述のように、この識別子の一例を図４に示す。識別子１０１は、送出経路情報であるモジュール番号１０２、回線番号１０３、次ノードＩＰアドレス１０４を含む。識別子１０１のモジュール番号１０２、回線番号１０３、次ノードＩＰアドレス１０４には、後述の経路情報テーブル検索の結果得るモジュール番号、回線番号、次ノードＩＰアドレスを格納する。送信側ルーティングモジュールはこの識別子１０１を参照し、対応する回線２３への送信処理を行う。
【００６４】
なお、この付加した識別子１０１を削除するところは、ルーティングモジュール３３の回線モジュール５３にて削除するが、別の方法としてはパケットのデータ転送量を少しでも減らすために、ルーティングモジュール３３から回線モジュール５３へパケットを送る直前で削除する方法でもよい。
【００６５】
また、機能実行モジュール６４で付加機能を処理した後にルーティングモジュール３４の再ルーティング処理を行うために、機能実行モジュール６４でこの識別子１０１を削除し（またはルーティングモジュール３４の汎用バス送受信部８５から機能実行モジュール６４にパケットを送る直前にこの識別子を削除し）、再びルーティングモジュール３４の汎用バス送受信部８５が、汎用バス７４から受信したパケットをパケットバッファ１３に格納する処理を行う際、パケットの先頭部分に新たな識別子１０１を付加する。これについては、別の方法としては、機能実行モジュール６４では識別子１０１の削除は行わずに、再びルーティングモジュール３４の汎用バス送受信部８５が、汎用バス７４から受信したパケットをパケットバッファ１３に格納する処理を行う際、パケットに付加されている識別子の上に新たな識別子１０１で上書きする方法もある。
【００６６】
次にこの実施の形態におけるパケットデータの流れについて動作を説明する。図１３における符号のｔ２の矢印線がパケットの流れである。
この実施の形態では先の実施の形態と比べて処理手順＜１＞と＜５＞は同様であり、処理手段＜２＞＜３＞＜４＞の部分が異なるので、これらの部分を以下のフローチャートを使ってパケットの処理手順について説明する。
【００６７】
＜２＞  図１４は、機能拡張モジュール６内での上位バスから機能実行モジュールまでのパケット処理手順を示すフローチャートである。
機能拡張モジュール６内のルーティングモジュール３４では、上位バス送受信部１０が、上位バス１からのパケット受信を識別子１０１のモジュール番号１０２等により認識する（ステップ４２０１）。上位バス送受信部１０は受信パケットをパケットバッファ１３に格納する（ステップ４２０２）。続いて回線テーブル検索部１５は、パケットに付加された識別子１０１に格納されている回線番号１０３を検索キーにして、回線テーブル１６を検索する（ステップ４２０３）。回線テーブル検索部１５は、ステップ４２０３の検索が成功した場合、パケットを送信する物理回線制御モジュール番号４０３と物理回線番号４０２を得る。下位バス送受信部１９は、この物理回線制御モジュール番号４０３からパケットを機能実行モジュール６４に送るか回線制御モジュール５４に送るかを選択する。例えば物理回線制御モジュール番号の値が０ならばパケットの送り先は回線制御モジュール５４、物理回線制御モジュール番号の値が１ならばパケットの送り先は機能実行モジュール６４と決めておくことで振り分けることができる。（ステップ４２０４）
【００６８】
汎用バス送受信部８５は、物理回線制御モジュール番号４０３を参照して、この例では、物理回線制御モジュール番号の値が１ならば、機能実行モジュール６４にパケットを送信を指示する（ステップ４２０５）。これがパケットデータの流れｔ２の一般的な処理手順である。一方、ステップ４２０４の判定で下位バス送受信部１９は、物理回線制御モジュール番号４０３を参照して、物理回線制御モジュール番号の値が０ならば、回線制御モジュール５４にパケットを送信をする（ステップ４２０６）。
この手順から外れた場合を説明すると、もしステップ４２０３の検索が失敗した場合は、パケットを廃棄（ステップ４１０７）して送信処理を終了する。
【００６９】
＜３＞  図１５は、機能実行モジュール６４でのパケット処理手順を示すフローチャートである。
機能実行モジュール６４の機能アクセラレータ９８が汎用バス送受信部８５から汎用バス７４を経てパケット受信を物理回線制御モジュール番号４０３又は物理回線番号４０２等により、認識する（ステップ２２０１）。機能アクセラレータ９８が物理回線制御モジュール番号４０３又は物理回線番号４０２等によりパケットを受信する（ステップ２２０２）。機能アクセラレータ９８が受信パケットについてＩＰ付加機能処理を施す（ステップ２２０３）。  
処理を施した後のパケットは、識別子１０１が削除され（ステップ２２０４）、機能アクセラレータ９８が汎用バス送受信部８５に向けて汎用バス７４へパケットを送る（ステップ２２０５）。
【００７０】
なお、IPsecのカプセリングは、パケットの先頭に新しいパケットヘッダを付加するという処理を伴う。また、機能実行モジュールにて暗号化処理を行う際には、識別子１０１を除いた本来のパケットデータ部分にのみ暗号化を施すことになる。したがって、このような場合には識別子１０１を削除した（ステップ２２０４）後に、付加機能処理を行う（ステップ２２０３）ようにしても良い。この場合について、図２０に、機能実行モジュール６４でのパケット処理手順についての他のフローチャートを示す。
【００７１】
また、前述の識別子１０１を削除に関する別の方法として、ルーティングモジュール３４の汎用バス送受信部８５から機能実行モジュール６４にパケットを送る直前にこの識別子を削除する方式をとった場合、または、この後ルーティングモジュール３４の汎用バス送受信部８５が、汎用バス７４から受信したパケットをパケットバッファ１３に格納する処理を行う際にパケットに付加されている識別子の上に新たな識別子１０１で上書きする方式をとった場合は、ステップ２１０６の識別子１０１を削除する処理は必要ない。
【００７２】
＜４＞  図１６は、ルーティングモジュール３４の再ルーティングによるパケット処理手順を示すフローチャートである。
ルーティングモジュール３４の汎用バス送受信部８５が汎用バス７４から、付加処理を施されたパケット受信を認識する（ステップ１２０１）。汎用バス送受信部８５は受信パケットをパケットバッファ１３に格納する（ステップ１２０２）。この際、下位バス送受信部１９は、パケットの先頭部分に識別子１０１を付加する（ステップ１２０３）。
【００７３】
次にＩＰパケット判別部１４は、パケットバッファ１３に格納されたパケットがＩＰパケットであるか否かを判別する（ステップ１２０４）。パケットがＩＰパケットである場合、ＩＰ経路検索部１７は、パケットバッファ１３に格納したパケットのＩＰアドレスからサブネットマスク２０２を使ってネットワークアドレス部分を抽出し、それを検索キーとして経路情報テーブル１８を検索する（ステップ１２０５）。ステップ１２０５の検索がヒットした場合、そのＩＰパケットに対する送出経路情報（モジュール番号２０３、回線番号２０４、次ノードＩＰアドレス２０５）を得る。そして経路情報書換え部２０は、パケット１０５の識別子１０１に該送出経路情報を格納する（ステップ１２０６）。続けて、パケット検出部２１が検出条件テーブル２２を検索条件で検索する（ステップ１２０７）。
【００７４】
ステップ１２０７の検索がヒットしなかった場合、識別子１０１への送出経路情報の上書きは行わない。以上の処理を行った後、上位バス送受信部１０が識別子１０１のモジュール番号１０２に従い、上位バス１を介して送信側ルーティングモジュール３３へパケットを送出する（ステップ１２０９）。これがパケットデータの流れｔ２の一般的な処理手順である。一方、ステップ１２０７の検索がヒットした場合、該ＩＰパケットに対してＩＰ付加機能処理を施すと識別できると共に、そのＩＰ付加機能処理を行う機能拡張モジュール６のモジュール番号３０２、ならびに回線番号３０３、次ノードＩＰアドレス３０４を得る。経路情報書換え部２０にて、上記検索の結果得たモジュール番号３０２、回線番号３０３、次ノードＩＰアドレス３０４を識別子１０１に上書きで格納する（ステップ１２０８）。以上の処理を行った後、上位バス送受信部１０が識別子１０１のモジュール番号１０２に従い、上位バス１を介して適するデバイスへパケットを送出する（ステップ１２０９）。このようにして、さらに他の機能拡張モジュール６へパケットを転送することができる。
【００７５】
一方ステップ１２０５のＩＰ経路検索部１７で経路情報テーブル１８の検索に失敗した場合、パケット検出部２１の検索（ステップ１２１０）を行い、もし検索が成功であれば、先と同様に送出経路情報を識別子１０１に上書きで格納した後（ステップ１２０８）、上位バス１へ送出する（ステップ１２０９）。また、ステップ１２１０のパケット検出部２１での検索が失敗した場合、パケットを廃棄（ステップ１２１１）して受信処理を終了する。
【００７６】
また、ステップ１１０４の判別でＩＰパケット以外であると判別した場合、ＩＰパケット判別部１４はパケットをＣＰＵ１１の管理するメモリ１２に格納する（ステップ１２１２）。ＣＰＵ１１上で動作するソフトウエアは、パケットをメインプロセッサモジュール２へ転送する（ステップ１２１３）。メインプロセッサモジュール２では、転送されたパケットの種類に応じた処理を施す。中継する必要があるパケットであれば中継処理をする。
【００７７】
（３）第３の実施の形態
図１７は本発明の一実施の形態を用いた場合の、機能拡張モジュールの構成として一つのルーティングモジュールに複数の機能実行モジュールを搭載したルータ装置のブロック図である。この図のように機能実行モジュールの搭載方法としては、例えば１つのルーティングモジュール３２の下位側の下位バス４２に複数の機能実行モジュール６２を接続してもよい。また、ルーティングモジュール３１の下位側の下位バス４１に接続する回線制御モジュール５１のなかの一部を機能実行モジュール６１にしても実施可能である。
【００７８】
この複数の回線制御モジュールならび機能実行モジュールへのパケットの振り分け方法は、図１４のステップ４２０４のように物理回線制御モジュール番号の値で行える。なお、物理回線番号により、さらに、振り分けるようにしてもよい。この値と各モジュールとの対応の設定を増やすことで2個以上のモジュールでも振り分けることが可能となる。
【００７９】
また、機能モジュール６内で、ルーティングモジュール３２，３４と機能実行モジュールとの間のパケットに、物理回線制御モジュール番号、物理回線番号をさらに識別情報として付加することで送受信の識別判断等を行うようにしてもよい。
以上のように、本実施の形態によれば従来のルータにない機能を実現したり高速な処理を行ったりする機能実行モジュールを使用したパケットデータ中継を行うことができる。
【符号の説明】
【００８０】
１・・・上位バス
２・・・メインプロセッサモジュール
４・・・下位バス
６・・・機能拡張モジュール
１０・・・上位バス送受信部
１１・・・ＣＰＵ
１２・・・メモリ
１３・・・パケットバッファ
１４・・・ＩＰパケット判別部
１５・・・回線テーブル検索部
１６・・・回線テーブル
１７・・・ＩＰ経路検索部
１８・・・経路情報テーブル
１９・・・下位バス送受信部
２０・・・経路情報書換え部
２１・・・パケット検出部
２２・・・検出条件テーブル
２３・・・回線
３１〜３４,３ｎ・・・ルーティングモジュール
４１〜４４,４ｎ・・・下位バス
５１〜５４,５ｎ・・・回線制御モジュール
６２・・・機能実行モジュール
６４・・・機能実行モジュール
７４・・・汎用バス
８５・・・汎用バス制御部
９１・・・バス連結部
９２・・・下位バス送信部
９３・・・下位バス受信部
９４・・・データ転送制御部
９５・・・汎用バス
９６・・・ＣＰＵ
９７・・・メモリ
９８・・・機能アクセラレータ
ｔ１・・・パケットデータの流れ
ｔ２・・・パケットデータの流れ
【図１】
2010154551.tif 000003
【図２】
2010154551.tif 000004
【図３】
2010154551.tif 000005
【図４】
2010154551.tif 000006
【図５】
2010154551.tif 000007
【図６】
2010154551.tif 000008
【図７】
2010154551.tif 000009
【図８】
2010154551.tif 000010
【図９】
2010154551.tif 000011
【図１０】
2010154551.tif 000012
【図１１】
2010154551.tif 000013
【図１２】
2010154551.tif 000014
【図１３】
2010154551.tif 000015
【図１４】
2010154551.tif 000016
【図１５】
2010154551.tif 000017
【図１６】
2010154551.tif 000018
【図１７】
2010154551.tif 000019
【図１８】
2010154551.tif 000020
【図１９】
2010154551.tif 000021
【図２０】
2010154551.tif 000022