(57)【要約】【課題】効率の良い分散処理を行いつつも、外部からは１　つのルータとして扱えるスケーラブルなルータ構成を実現し、高速化・大容量化を実現したルータ装置を提供する。【解決手段】複数のインターフェースカード３側に、受信したデータを記録すると共に、該データが自身に宛てられたデータであるのか、他のインターフェースカードに転送すべきデータであるのかを判定するインターフェースコントローラ５と、このインターフェースコントローラ５により他のインターフェースカードに転送すべきデータであると判定されたデータの転送を受けると、データの送信先を管理するルーティングテーブルを参照してデータの転送先のインターフェースカード３を決定し、該決定した転送先のインターフェースカード３にデータを転送するＣＰＵ４と、を設けた。このような構成とすることで従来構成のルータ装置で問題となっていたルータ装置全体を管理するＣＰＵの負荷を軽減させることができる。【選択図】　　　　図１
2004120642.tif 000002
【特許請求の範囲】
【請求項１】
複数のインターフェースカードと、該複数のインターフェースカードを管理する管理制御手段と、を有するルータ装置であって、
前記複数のインターフェースカードは、
受信したデータを記録すると共に、該データが自身に宛てられたデータであるのか、他のインターフェースカードに転送すべきデータであるのかを判定するインターフェース制御手段と、
前記インターフェース制御手段により他のインターフェースカードに転送すべきデータであると判定されたデータの転送を受けると、データの送信先を管理する第１の管理テーブルを参照して前記データの転送先のインターフェースカードを決定し、該決定した転送先のインターフェースカードに前記データを転送する転送制御手段と、
を有し、
受信側の前記転送制御手段よりデータの転送を受けた送信側のインターフェース制御手段は、前記データを外部に出力することを特徴とするルータ装置。
【請求項２】
前記自身に宛てられたデータであると判定されたデータを前記インターフェース制御手段より受信した前記管理制御手段は、前記データがルーティングプロトコルであった場合に、データの送信先を管理する第２の管理テーブルの記録内容を更新すると共に、前記複数のインターフェースカード内の前記転送制御手段に転送してルーティング情報を更新させることを特徴とする請求項１記載のルータ装置。
【請求項３】
前記インターフェース制御手段は、受信したデータのレイヤ２送信元アドレスが、未学習のレイヤ２送信元アドレスであった場合に、自身の保持するレイヤ２アドレス管理テーブルに登録すると共に、インターフェースカード内の転送制御手段と、他のインターフェースカード内のインターフェース制御手段とに更新情報を通知し、ルータ装置内のレイヤ２アドレス管理テーブルの更新を行なうことを特徴とする請求項１または２記載のルータ装置。
【請求項４】
構成範囲をインタフェースカード単位に制限された各ＶＬＡＮ（Ｖｉｒｔｕａｌ　ＬＡＮ）がどのインターフェースカードに接続されているのかを前記第１の管理テーブルは記録し、
前記転送制御手段は、ＩＰアドレスとレイヤ２宛先アドレスの対応関係が前記第１の管理テーブルに記録されていないデータの転送を受けた場合に、該データの転送先として設定されたＶＬＡＮを含むインターフェースカードを前記第１の管理テーブルを参照して検出し、該インターフェースカードに前記データを転送することを特徴とする請求項１から３の何れか一項に記載のルータ装置。
【請求項５】
前記複数のインターフェースカードと、前記管理制御手段とのデータの転送は、バス上に配置したクロスバースイッチにより行なわれることを特徴とする請求項１から４の何れか一項に記載のルータ装置。
【請求項６】
複数のインターフェースカードと、該複数のインターフェースカードを管理する管理制御手段と、を有するルータ装置における転送制御方法であって、
受信側となるインターフェースカードにおいて、
受信したデータを記録すると共に、該データが自身に宛てられたデータであるのか、他のインターフェースカードに転送すべきデータであるのかを判定する第１の判定工程と、
データの送信先を管理する第１の管理テーブルを参照して、前記第１の判定工程により他のインターフェースカードに転送すべきデータであると判定されたデータの転送先を決定し、該決定した転送先のインターフェースカードに前記データを転送する第１の転送工程と、を有し、
送信側となるインターフェースカードにおいて、受信側のインターフェースカードより転送されたデータをネットワーク上に出力することを特徴とする転送制御方法。
【請求項７】
前記第１の判定工程により自身に宛てられたデータであると判定されたデータを前記管理制御手段に転送して、前記データがルーティングプロトコルであるか否かを判定し、前記データがルーティングプロトコルであった場合には、データの送信先が登録された、前記管理制御手段の管理する第２の管理テーブルの記録内容を更新すると共に、前記複数のインターフェースカードに転送してルーティング情報を更新させるルーティング情報更新工程を有することを特徴とする請求項６記載の転送制御方法。
【請求項８】
インターフェースカードにおいて、
受信したデータのレイヤ２送信元アドレスが、未学習のレイヤ２送信元アドレスであるか否かを判定する第２の判定工程と、
未学習のレイヤ２送信元アドレスであった場合に、前記インターフェースカードの管理するレイヤ２アドレス管理テーブルに登録すると共に、他のインターフェースカードに更新情報を通知し、ルータ装置内のレイヤ２アドレス管理テーブルの更新を行なう通知工程と、
を有することを特徴とする請求項６または７記載の転送制御方法。
【請求項９】
構成範囲をインタフェースカード単位に制限された各ＶＬＡＮ（Ｖｉｒｔｕａｌ　ＬＡＮ）がどのインターフェースカードに接続されているのかを前記第１の管理テーブルに記録し、
受信側のインターフェースカードにおいて、ＩＰアドレスとレイヤ２宛先アドレスの対応関係が前記第１の管理テーブルに記録されていないデータの転送を受けた場合に、該データの転送先として設定されたＶＬＡＮを含むインターフェースカードを前記第１の管理テーブルを参照して検出し、送信側となる該インターフェースカードに前記データを転送する第２の転送工程を有することを特徴とする請求項６から８の何れか一項に記載の転送制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、効率のよい分散処理を実現するルータ装置に関する。
【０００２】
【従来の技術】
従来のルータの構成を図１７に示す。図１７において、ルータは、ＣＰＵ１０１と、インターフェースカード１０３〜１０５がバス１０２に接続されて構成している。なお、ここでは説明を容易にするため３つのインターフェースカードを持つルータ構成について説明するが、インターフェースカードの数は任意でよい。インターフェースカード１０３〜１０５は、外部ネットワークからパケットを受信すると、バス１０２を使用して、ＣＰＵ１０１へパケットを送信する。パケットを受信したＣＰＵ１０１は、パケット処理のプロセスを起動し、ルーティングプロトコルなどにより作成したルーティング情報を用いて、ＮｅｘｔＨｏｐや出力インターフェースカードなど、パケットを転送するために必要な情報を検索する。ルーティング情報やレイヤ２情報を検索した結果に基づいて、ＣＰＵ１０１は、カプセル化などパケットの書き換え処理を行い、バス１０２を使用してインターフェースカード１０３〜１０５へパケットを転送する。ＣＰＵ１０１からのパケットを受信したインターフェースカード１０３〜１０５は、必要であればキューイング処理などを行い、パケットをネットワークに出力する。
【０００３】
また、複数のネットワークインターフェースから構成されるルータに関する技術について開示した特許文献として、以下に示す特許文献１、及び２に示されるものが知られている。
【０００４】
【特許文献１】
特開平７−２０２９３０号公報
【特許文献２】
特開平６−９７９６５号公報
【０００５】
特許文献１としての特開平７−２０２９３０号公報には、複数のネットワークインターフェースから構成されるＭＡＣブリッジにおいて、テーブル参照の際にバスへのアクセスやメモリ競合およびＣＰＵ間の情報交換による性能低下が少なくなるような、単純で効率的なテーブル管理を行なうＭＡＣブリッジのテーブル管理方法が開示されている。
より具体的には、図１８に示されるように１つの管理用ＣＰＵ（２０２）と、１つ以上のポート（２０４）を持つ１つ以上のネットワーク・インターフェース（２０３）から構成されるＭＡＣブリッジ（２０１）で、各ネットワーク・インターフェースは、受信したフレームの送信元ＭＡＣアドレスをローカルＭＡＣアドレステーブルに登録すると共に、他のネットワーク・インターフェースから転送されてきたフレームの送信元ＭＡＣアドレスも登録することで個別にローカルＭＡＣアドレステーブルを管理している。また、管理用ＣＰＵが持つマスタＭＡＣアドレステーブル（２０５）にそれぞれの学習情報を伝達することにより、ブリッジ全体のＭＡＣアドレステーブル情報を統一している。
【０００６】
また、特許文献２としての特開平６−９７９６５号公報には、複数のネットワークインターフェースを持つルータが、そのインターフェースの数やネットワーク間の通信トラフィックによらず、ルーティング処理の高速化を図ることができる中継制御方式が提案されている。
具体的には、図１９に示されるように、ルータ内の複数のネットワークインターフェース３２０が、それぞれフィルタリング制御部３４０とルーティング制御部３３０を持ち、フィルタリング制御部３４０は、自ネットワークに接続している端末のアドレスを記憶しているフィルタリングテーブル３４１によりネットワーク内の通信を高速にフィルタリングし、ルーティング制御部３３０は、端末のアドレスと、接続しているネットワークインターフェースのインターフェース番号を１組として記憶しているルーティングテーブル３３１によりネットワーク間の通信をルーティング処理することにより、ネットワークインターフェースの数やネットワーク間の通信トラフィックにあまり依存せずに、フィルタリング処理能力とルーティング処理能力を向上させることができるとしている。
【０００７】
【発明が解決しようとする課題】
近年、ますます増え続けるＩＰトラフィックに対応するため、ルータの高速化、大容量化に対するニーズは非常に高い。しかし、従来のルータ構成で高速化、大容量化を実現するためには、基本的にはＣＰＵ、バス、インターフェースカードの高速化、大容量化といったハードウェアの強化が必要となる。ただし、ハードウェアの強化による高速化・大容量化の実現には、コストが非常に高くなる、汎用品を使用する場合は他社と同じレベルの高速化・大容量化しか実現できないといった問題点がある。そのため、ルータ構成を変更し、複数ＣＰＵにより分散処理を実現することが検討されるケースがあるが、複数のＣＰＵにより分散処理を実現しつつ、外部からは１　つのルータとして見えるルータ構成を設計することは、非常に困難を極める。
【０００８】
また、複数のインターフェースカード側に搭載する機能と、これらを管理する管理装置側に搭載する機能の機能分担をどのように行なえば、効率のよい分散処理を実現しつつも、ルータ自体の管理にかかる手間を軽減させることができるかについて開示された発明はない。
すなわち、技術文献１に記載された発明は、テーブルの管理方法についてだけ言及したものであり、実際のパケットの転送の際に管理用ＣＰＵへのアクセスを生じさせずに効率のよいパケット転送をいかに実現するのかについて記載されていない。
また、技術文献２に記載された発明は、ルーティング情報に更新が発生した場合に、各ネットワークインターフェースに設けたルーティングテーブルの更新をどのように効率的に行なうのか開示されていない。
【０００９】
また、上述した特許文献１及び２に記載された発明は、複数のネットワークインターフェースを具備し、それぞれが分散処理を行なっているので、パケット転送の際にフィードバックが発生し、パケット転送に遅延を生じるという不具合を有している。
【００１０】
本発明は上記事情に鑑みてなされたものであり、効率の良い分散処理を行いつつも、外部からは１　つのルータとして扱えるスケーラブルなルータ構成を実現し、高速化・大容量化を実現したルータ装置、及び転送制御方法を提供することを目的とする。
【００１１】
【課題を解決するための手段】
係る目的を達成するために請求項１記載の発明は、複数のインターフェースカードと、該複数のインターフェースカードを管理する管理制御手段と、を有するルータ装置であって、複数のインターフェースカードは、受信したデータを記録すると共に、該データが自身に宛てられたデータであるのか、他のインターフェースカードに転送すべきデータであるのかを判定するインターフェース制御手段と、インターフェース制御手段により他のインターフェースカードに転送すべきデータであると判定されたデータの転送を受けると、データの送信先を管理する第１の管理テーブルを参照してデータの転送先のインターフェースカードを決定し、該決定した転送先のインターフェースカードにデータを転送する転送制御手段と、を有し、受信側の転送制御手段よりデータの転送を受けた送信側のインターフェース制御手段は、データを外部に出力することを特徴とする。
【００１２】
請求項２記載の発明は、請求項１記載の発明において、自身に宛てられたデータであると判定されたデータをインターフェース制御手段より受信した管理制御手段は、データがルーティングプロトコルであった場合に、データの送信先を管理する第２の管理テーブルの記録内容を更新すると共に、複数のインターフェースカード内の転送制御手段に転送してルーティング情報を更新させることを特徴とする。
【００１３】
請求項３記載の発明は、請求項１または２記載の発明において、インターフェース制御手段は、受信したデータのレイヤ２送信元アドレスが、未学習のレイヤ２送信元アドレスであった場合に、自身の保持するレイヤ２アドレス管理テーブルに登録すると共に、インターフェースカード内の転送制御手段と、他のインターフェースカード内のインターフェース制御手段とに更新情報を通知し、ルータ装置内のレイヤ２アドレス管理テーブルの更新を行なうことを特徴とする。
【００１４】
請求項４記載の発明は、請求項１から３の何れか一項に記載の発明において、構成範囲をインタフェースカード単位に制限された各ＶＬＡＮ（ＶｉｒｔｕａｌＬＡＮ）がどのインターフェースカードに接続されているのかを第１の管理テーブルは記録し、転送制御手段は、ＩＰアドレスとレイヤ２宛先アドレスの対応関係が第１の管理テーブルに記録されていないデータの転送を受けた場合に、該データの転送先として設定されたＶＬＡＮを含むインターフェースカードを第１の管理テーブルを参照して検出し、該インターフェースカードにデータを転送することを特徴とする。
【００１５】
請求項５記載の発明は、請求項１から４の何れか一項に記載の発明において、複数のインターフェースカードと、管理制御手段とのデータの転送は、バス上に配置したクロスバースイッチにより行なわれることを特徴とする。
【００１６】
請求項６記載の発明は、複数のインターフェースカードと、該複数のインターフェースカードを管理する管理制御手段と、を有するルータ装置における転送制御方法であって、受信側となるインターフェースカードにおいて、受信したデータを記録すると共に、該データが自身に宛てられたデータであるのか、他のインターフェースカードに転送すべきデータであるのかを判定する第１の判定工程と、データの送信先を管理する第１の管理テーブルを参照して、第１の判定工程により他のインターフェースカードに転送すべきデータであると判定されたデータの転送先を決定し、該決定した転送先のインターフェースカードにデータを転送する第１の転送工程と、を有し、送信側となるインターフェースカードにおいて、受信側のインターフェースカードより転送されたデータをネットワーク上に出力することを特徴とする。
【００１７】
請求項７記載の発明は、請求項６記載の発明において、第１の判定工程により自身に宛てられたデータであると判定されたデータを管理制御手段に転送して、データがルーティングプロトコルであるか否かを判定し、データがルーティングプロトコルであった場合には、データの送信先が登録された、管理制御手段の管理する第２の管理テーブルの記録内容を更新すると共に、複数のインターフェースカードに転送してルーティング情報を更新させるルーティング情報更新工程を有することを特徴とする。
【００１８】
請求項８記載の発明は、請求項６または７記載の発明において、インターフェースカードにおいて、受信したデータのレイヤ２送信元アドレスが、未学習のレイヤ２送信元アドレスであるか否かを判定する第２の判定工程と、未学習のレイヤ２送信元アドレスであった場合に、インターフェースカードの管理するレイヤ２アドレス管理テーブルに登録すると共に、他のインターフェースカードに更新情報を通知し、ルータ装置内のレイヤ２アドレス管理テーブルの更新を行なう通知工程と、を有することを特徴とする。
【００１９】
請求項９記載の発明は、請求項６から８の何れか一項に記載の発明において、構成範囲をインタフェースカード単位に制限された各ＶＬＡＮ（ＶｉｒｔｕａｌＬＡＮ）がどのインターフェースカードに接続されているのかを第１の管理テーブルに記録し、受信側のインターフェースカードにおいて、ＩＰアドレスとレイヤ２宛先アドレスの対応関係が第１の管理テーブルに記録されていないデータの転送を受けた場合に、該データの転送先として設定されたＶＬＡＮを含むインターフェースカードを第１の管理テーブルを参照して検出し、送信側となる該インターフェースカードにデータを転送する第２の転送工程を有することを特徴とする。
【００２０】
【発明の実施の形態】
次に添付図面を参照しながら本発明のルータ装置、及び転送制御方法に係る実施の形態を詳細に説明する。図１〜図１６を参照すると本発明のルータ装置、及び転送制御方法に係る実施の形態が示されている。
【００２１】
［第１の実施形態］
まず、図１を参照しながら本実施形態の構成について説明する。本実施形態は、図１に示されるように、装置内の各部を接続するバス２により、ＣＰＵ１と複数のインターフェースカード３（図１には３つのインターフェースカード３−１，３−２，３−３がバス２に接続された構成が示されているが、図２に示されるようにインターフェースカードの数は任意でよい。）が接続されている。インターフェースカード３−１，３−２，３−３は、分散処理を実現するためのＣＰＵ４−１，４−２，４−３とパケットの入出力を実現するインターフェースコントローラ５−１，５−２，５−３とから構成される。なお、ここでは、説明を容易にするためインターフェースカード３にはＣＰＵ４とインターフェースコントローラ５とが１つずつ搭載されている構成について説明するが、ＣＰＵ４及びインターフェースコントローラ５の数は任意でよく、図３に示されるように複数のインターフェースカード３でＣＰＵ４を共有することも可能である。
【００２２】
ルータ全体を管理するＣＰＵ１は、バス２を介してＣＰＵ４−１，４−２，４−３や、インターフェースコントローラ５−１，５−２，５−３との通信が可能となっている。また、ＣＰＵ１は、ルーティング情報を登録したデータベースを有している。
【００２３】
バス２は、ルータの各部を接続し、ＣＰＵ１，４−１，４−２，４−３やインターフェースコントローラ５−１，５−２，５−３が相互に通信できるようにしている。また、バス２にはクロスバースイッチのような専用ハードウェアが配置され、これによりパケット転送が実現される。クロスバースイッチのような専用ハードウェアを用いることにより安価で高速な装置内接続を実現することができる。なお、ここではバスは装置内を接続する機能を表すものとして単一のものとして表現しているが、実際にはパケット転送用とＣＰＵ間通信用などの用途別に構成することも可能である。
【００２４】
パケット転送を行なうＣＰＵ４は、バス２とインターフェースコントローラ５（ＣＰＵ４−１とインターフェースコントローラ５−１、ＣＰＵ４−２とインターフェースコントローラ５−２、ＣＰＵ４−３とインターフェースコントローラ５−３）とに接続されており、ＣＰＵ１、他のＣＰＵ４、およびインターフェースコントローラ５−１，５−２，５−３と通信を行なうことが可能となっている。また、複数のインターフェースカード内の各ＣＰＵ４−１，４−２，４−３は、ルーティング情報、レイヤ２で使用するアドレス（以下、レイヤ２情報という）、ＩＰアドレスとレイヤ２情報との対応関係を示す情報とを管理する管理テーブルを有している。
【００２５】
インターフェースコントローラ５は、バス２とＣＰＵ４（インターフェースコントローラ５−１とＣＰＵ４−１、インターフェースコントローラ５−２とＣＰＵ４−２、インターフェースコントローラ５−３とＣＰＵ４−３）とに接続されており、外部から受信したパケットをＣＰＵ１，４−１，４−２，４−３や、他のインターフェースコントローラ５に転送する。また、ＣＰＵ１，４−１，４−２，４−３や他のインターフェースコントローラ５から受信したパケットに、キューイングなどの処理を施し、外部に出力する機能を有している。また、各インターフェースコントローラ５−１，５−２，５−３は、レイヤ２情報を管理するレイヤ２テーブルを有している。なお、レイヤ２テーブルとは、レイヤ２フレームを転送（フォワーディング）する際に使用するデータを記録したテーブルであり、ＭＡＣアドレスとＶＬＡＮ（Ｖｉｒｔｕａｌ　ＬＡＮ）情報から出力先ポートやフレームフォーマットを決定するために使用される。
【００２６】
上記構成からなる本実施形態は、複数のインターフェースカード側に搭載する機能と、これらを管理する管理装置側に搭載する機能との機能分担を最適に行なうことにより、効率のよい分散処理を実現しつつも、ルータ自体の管理にかかる手間を削減させたルータ装置を実現することを目的としている。
【００２７】
このため本実施形態は、複数のインターフェースカード３側に、受信したデータを記録すると共に、該データが自身に宛てられたデータであるのか、他のインターフェースカードに転送すべきデータであるのかを判定するインターフェースコントローラ５と、このインターフェースコントローラ５により他のインターフェースカードに転送すべきデータであると判定されたデータの転送を受けると、データの送信先を管理する管理テーブルのルーティング情報を参照して転送先のインターフェースカード３を決定し、該決定した転送先のインターフェースカード３にデータを転送するＣＰＵ４と、を設けた。
【００２８】
また、ルータ装置全体を管理するＣＰＵ１には、インターフェースコントローラ５によりプロトコルパケットであると判定されたパケットがルーティングプロトコルであるか否かを判定し、ルーティングプロトコルであった場合に、データベースの記録内容を更新すると共に、複数のインターフェースカード３内のＣＰＵ４にルーティング情報を転送して、管理テーブルのルーティング情報を更新させる機能を持たせた。なお、プロトコルパケットとは、自ルータ宛のＴＥＬＮＥＴ、ＦＴＰ（Ｆｉｌｅ　Ｔｒａｎｓｆｅｒ　Ｐｒｏｔｏｃｏｌなどのアプリケーションプロトコルや、ＯＳＰＦ（Ｏｐｅｎ　Ｓｈｏｒｔｅｓｔ　Ｐａｔｈ　Ｆｉｒｓｔ　Ｒｏｕｔｉｎｇ）やＲＩＰ（Ｒｏｕｔｉｎｇ　ＩｎｆｏｒｍａｔｉｏｎＰｒｏｔｏｃｏｌ）などのルーティングプロトコルなどのパケットをいい、レイヤ２宛先アドレスとＩＰアドレスが自ルータ宛のパケットをいう。
【００２９】
このような構成のルータ装置とすることにより、パケット転送の際には、入力側のＣＰＵ４によりデータの出力先となるインターフェースコントローラ５を選択させ、選択したインターフェースコントローラ５にデータを転送してレイヤ２処理などの処理を施し、外部に出力することで、インターフェースカード３内に設けたインターフェースコントローラ５とＣＰＵ４だけでパケット転送が実現され、従来構成のルータ装置で問題となっていたルータ装置全体を管理するＣＰＵ１の負荷を軽減させることができる。
【００３０】
また、受信したデータがプロトコルパケットであった場合だけ、全体を管理するＣＰＵ１にデータを送信し、データがルーティングプロトコルであった場合に、データベースの記録内容を更新すると共に、複数のインターフェースカード３内のＣＰＵ４にルーティング情報を転送して、管理テーブルのルーティング情報を更新させることにより、複数のＣＰＵを有するルータ装置を、従来の１つのＣＰＵを備えたルータ装置と同等に扱うことが可能となり、ルータの設定などの際にルータ装置の管理の手間を軽減させることができる。
【００３１】
次に、ルータ装置の構成要素のより詳細な動作を説明する。
まず、図４、及び図５を参照しながらインターフェースコントローラ５の動作手順について説明する。
外部から転送されたデータを受信（ステップＳ４０１／ＹＥＳ）したインターフェースカード３は、受信したデータをインターフェースコントローラ５に保存する（ステップＳ４０２）。次に、受信したデータのレイヤ２宛先アドレス、送信元アドレスを確認する（ステップＳ４０３）。
【００３２】
送信元アドレスが未学習（レイヤ２情報の変更が必要な送信元アドレスがある）のアドレスであった場合（ステップＳ４０４／ＹＥＳ）、インターフェースコントローラ５の保持するレイヤ２テーブルに送信元アドレスを登録する（ステップＳ４０５）。また、インターフェースコントローラ５は、自カード内のＣＰＵ４及び他のインターフェースコントローラ５に学習したレイヤ２情報をバス２を介して通知する（ステップＳ４０６）。また、この場合に通知されるレイヤ２情報は、変更が加えられたレイヤ２情報だけである。
【００３３】
また、受信したデータのレイヤ２宛先アドレスがルータ自身のアドレスであった場合（ステップＳ４０７／ＹＥＳ）、インターフェースコントローラ５は、パケットがプロトコルパケットであるか否かを判定する（ステップＳ４０９）。判定の方法には、例えばフィルタを用いることができる。
【００３４】
パケットがプロトコルパケットであった場合には（ステップＳ４０９／ＹＥＳ）、パケットをＣＰＵ１に転送する（ステップＳ４１０）。プロトコルパケットを受信したＣＰＵ１は、従来のルータに搭載されているＣＰＵと同様にプロトコルの定める手順に則りパケットを処理する。特に、プロトコルパケットがルーティングプロトコルの場合、必要に応じてルーティング情報を格納したデータベースに変更を加え、他のインターフェースカードに変更されたルーティング情報を配布する。
【００３５】
また、パケットがプロトコルパケットではなかった場合には（ステップＳ４０９／ＮＯ）、パケットを自カード内のＣＰＵ４に転送する（ステップＳ４１１）。パケットを受信したＣＰＵ４は、管理テーブルに保持しているルーティング情報及びレイヤ２情報を用いて出力先インターフェースコントローラを決定し、カプセル化などの処理を施したパケットを該当インターフェースコントローラに転送する。
【００３６】
次に、図５を参照しながら他のインターフェースカード３からデータの転送を受けた場合の処理を説明する。
インターフェースコントローラ５は、他のインターフェースカード３よりデータの転送を受けた場合には（ステップＳ５０１）、当該データが転送パケットであるか否かを判断する（ステップＳ５０２）。データが転送パケットであった場合には（ステップＳ５０２／ＹＥＳ）、パケットにレイヤ２処理、キューイングなどの処理を施し（ステップＳ５０３）、外部へ出力する（ステップＳ５０４）。また、データがレイヤ２情報であった場合には（ステップＳ５０５／ＹＥＳ）、レイヤ２テーブルに保持しているレイヤ２情報に、通知されたアドレス情報を登録し（ステップＳ５０６）、ＣＰＵ４へレイヤ２情報を通知する（ステップＳ５０７）。
【００３７】
次に、本実施形態の全体動作を、レイヤ３以上のプロトコル処理、レイヤ２アドレスの学習処理、パケット転送処理の３つに分けて説明する。まず、図６を用いてレイヤ３以上のプロトコル処理について説明する。なお、ここでは説明を容易にするためにインターフェースカード３−１がプロトコルパケットを受信したとして説明するが、プロトコルパケットを受信するインターフェースカードは３−１に限るものではない。
【００３８】
ルーティングプロトコルなどのプロトコルパケットを外部から受信したインターフェースカード３−１（図６に示された▲１▼）は、インターフェースコントローラ５−１にパケットを格納する。次に、インターフェースコントローラ５−１は、受信したパケットのレイヤ２宛先アドレスを確認する（図６に示された▲２▼）。レイヤ２宛先アドレスが自身のアドレス（ルータアドレス）であった場合に、パケットがプロトコルパケットかどうかを判定する（図６に示された▲３▼）。パケットの判定方法は、例えばフィルタを用いて行うことができる。格納したパケットがプロトコルパケットであると判断したインターフェースコントローラ５−１は、バス２を用いてパケットをＣＰＵ１に転送する（図６に示された▲４▼）。プロトコルパケットを受信したＣＰＵ１は、従来のルータに搭載されているＣＰＵ同様にプロトコルの定める手順に則りパケットを処理する。特にプロトコルパケットがルーティングプロトコルの場合、必要に応じてルーティング情報を格納したデータベースを更新する。
【００３９】
ここで、ルーティング情報の更新が発生した場合の処理を、図７を用いて説明する。ルーティング情報を更新したＣＰＵ１は、更新をトリガとして、ルーティング情報をＣＰＵ４−１，４−２，４−３に配布する。大規模ネットワークでは配布するルーティング情報が大規模なものとなることがある。バス２の構成によっては、大規模なルーティング情報の配布を行っている間バスが占有されてしまうことがあるため、そのような場合には、ルーティング情報を分割して配布するなどの手法をとるものとする。
【００４０】
図６に戻り、プロトコル処理について引き続き説明する。ＣＰＵ１は、受信したプロトコルパケットに応答が必要な場合、ＣＰＵ１上で応答パケットを作成した後（図６に示された▲５▼）、バス２を用いてインターフェースコントローラ５−１にパケットを送信する（図６に示された▲６▼）。パケットを受信したインターフェースコントローラ５−１は、キューイングなどの必要な処理を行った後にパケットを外部に出力する（図６に示された▲７▼）。
【００４１】
次に、図８を用いてレイヤ２アドレスの学習処理について説明する。なお、以下では説明を容易にするためにインターフェースカード３−１がフレームを受信したとして説明するが、ここでもフレームを受信するインターフェースカードは３−１に限るものではない。
【００４２】
レイヤ２フレームを受信したインターフェースカード３−１は、インターフェースコントローラ５−１にフレームを格納する（図８に示された▲１▼）。その際、インターフェースコントローラ５−１は、フレームの送信元アドレスを調べ（図８に示された▲２▼）、未学習の送信元アドレスである場合は、インターフェースコントローラ５−１が保持するレイヤ２テーブルに登録する（図８に示された▲３▼）。また、インターフェースコントローラ５−１は、バス２を用いて自カード３内のＣＰＵ４−１および他のインターフェースコントローラ５−２，５−３に学習したレイヤ２情報を通知する（図８に示された▲４▼）。レイヤ２情報を受信したインターフェースコントローラ５−２，５−３は、通知されたレイヤ２情報をレイヤ２テーブルに登録した後（図８に示された▲５▼）、ＣＰＵ４−２，４−３にレイヤ２情報を通知する（図８に示された▲６▼）。
【００４３】
次に、図９を用いて、パケット転送処理について説明する。なお、以下では説明を容易にするためにインターフェースカード３−１がプロトコルパケットを受信したとして説明するが、ここでもパケットを受信するインターフェースカードは３−１に限るものではない。
【００４４】
パケットを受信したインターフェースカード３−１は、インターフェースコントローラ５−１にパケットを格納する（図９に示された▲１▼）。レイヤ２宛先アドレスがルータアドレスであることを確認したインターフェースコントローラ５−１は、他のインターフェースコントローラ５−２もしくは５−３に転送すべきパケットか、ＣＰＵ１に転送すべきプロトコルパケットかどうかを判定する（図９に示された▲２▼）。この判定方法は、例えばフィルタを用いて行うことができる。格納したパケットが他のインターフェースコントローラ５に転送すべきパケットであると判断したインターフェースコントローラ５−１は、パケットをＣＰＵ４−１に転送する（図９に示された▲３▼）。インターフェースコントローラ５−１からのパケットを受信したＣＰＵ４−１は、管理テーブルに保持しているルーティング情報およびレイヤ２情報を用いて出力先インターフェースコントローラを決定する。本動作例では、説明の都合上、出力先インターフェースカードが３−２であるものとする。ＣＰＵ４−１は、カプセル化などの処理をパケットに施した後（図９に示された▲４▼）、インターフェースコントローラ５−２へパケットを転送する（図９に示された▲５▼）。パケットを受信したインターフェースコントローラ５−２は、出力に必要なレイヤ２処理やキューイングなどの処理を行った後（図９に示された▲６▼）、パケットを出力する（図９に示された▲７▼）。以上では転送処理をＣＰＵが処理しているが、ＣＰＵで保持している情報をインターフェースコントローラに通知することにより、ＣＰＵを介さず、ハードウェアのみで転送処理を行うことも可能である。
【００４５】
このように本実施形態は、効率の良い分散処理を行いつつも、ユーザからは１　つのルータとして扱えるスケーラブルなルータ構成を実現し、ルータの高速化・大容量化を実現することができる。
【００４６】
［第２の実施形態］
次に添付図面を参照しながら本発明に係る第２の実施形態について説明する。本実施形態は、ＶＬＡＮ（Ｖｉｒｔｕａｌ　ＬＡＮ）の構成範囲をインターフェースカード単位に制限するものである。本実施形態の構成は、前述の第１の実施形態同様図１　で表されるが、動作が異なるものである。本実施形態の動作を図８を用いて説明する。
【００４７】
第１の実施形態と同様、プロトコル処理、レイヤ２アドレスの学習処理、パケット転送処理の３つに分けて説明する。但し、プロトコル処理は上記第１の実施形態と同様であるため説明を省略する。
【００４８】
レイヤ２アドレスの学習処理に関しては、ＶＬＡＮの構成範囲をインターフェースカード単位に制限しているため、他のインターフェースカードへレイヤ２情報を通知することはしない。そのため、レイヤ２情報の交換を行わない装置構成を実現できる。
【００４９】
パケット転送に関する動作手順を図１０を参照しながら説明する。なお、ここでは説明を容易にするためにインターフェースカード３−１がプロトコルパケットを受信したとして説明するが、パケットを受信するインターフェースカードは３−１に限るものではない。
【００５０】
パケットを受信したインターフェースカード３−１は、インターフェースコントローラ５−１にパケットを格納する（図１０に示された▲１▼）。レイヤ２あて先アドレスがルータアドレスであることを確認したインターフェースコントローラ５−１は、他のインターフェースコントローラ５−２もしくは５−３に転送すべきパケットか、ＣＰＵ１に転送すべきプロトコルパケットかどうかを判定する（図１０に示された▲２▼）。この判定方法は、例えばフィルタを用いて行うことができる。格納したパケットが他のインターフェースコントローラに転送すべきパケットであると判断したインターフェースコントローラ５−１は、パケットをＣＰＵ４−１に転送する（図１０に示された▲３▼）。インターフェースコントローラ５−１からのパケットを受信したＣＰＵ４−１は、管理テーブルに保持しているルーティング情報を用いて出力先インターフェースコントローラを決定する（図１０に示された▲４▼）。本動作例では、説明の都合上、出力先インターフェースカードが３−２であるものとする。ＣＰＵ４−１からのパケット（図１０に示された▲５▼）を受信したＣＰＵ４−２は、レイヤ２情報を用いてパケットのカプセル化（図１０に示された▲６▼）などの処理を実施した後、インターフェースコントローラ５−２へパケットを転送する（図１０に示された▲７▼）。インターフェースコントローラ５−２は、出力に必要なレイヤ２処理やキューイングなどの処理（図１０に示された▲８▼）を行った後パケットを出力する（図１０に示された▲９▼）。
【００５１】
以上により、各インターフェースカード間でレイヤ２情報を共有せずに、分散処理に基づくパケット転送を実現するとともに、外部からは１　つのルータとして動作するルータ構造が実現できる。なお、ＣＰＵで保持している情報をインターフェースコントローラに通知することにより、ＣＰＵを介さず、ハードウェアのみで転送処理を行うことも可能であるのは、前述実施例同様である。
【００５２】
ここで、ＩＰアドレスとレイヤ２アドレスの対応関係がキャッシュされていない場合のパケット転送を、ＶＬＡＮの構成範囲をインターフェースカード単位に制限していない場合と制限している場合とで比較する。なお、図１１から図１５には、パケット転送の手順が示されている。なお、図１１から図１５にはパケット転送の説明を容易にするため、各インターフェースカードの入出力ポートを、インターフェースカード内に記述している。まず、ＶＬＡＮの構成範囲をインターフェースカード単位に制限していない場合について説明する。
ルータは、他のインターフェースコントローラに転送すべきパケット（以下、転送パケット）をインターフェースカード３−１のポート１より受信し（図１１に示された▲１▼）、ＣＰＵ４−１に転送したものとする（図１１に示された▲２▼）。
【００５３】
パケットの転送を受けたＣＰＵ４−１は管理テーブルを検索し、レイヤ２情報及びルーティング情報からパケットの出力先を検出する。ここで出力先は、例えば第３番目として設定されたＶＬＡＮであり、この第３番目のＶＬＡＮはイターフェースカード３−２、３−３の両方に収容されているものとする。すなわち、ＣＰＵ４−１は、レイヤ２情報及びルーティング情報からＮｅｘｔＨｏｐルータのＩＰアドレスを検出することはできるが、そのルータがインターフェースカード３−２と３−３のどちらのポートに接続されているのかは分からない状態となる。
【００５４】
ＣＰＵ４−１はＮｅｘｔＨｏｐルータがどちらのインターフェースカードに接続されているのか、また、そのレイヤ２アドレスを検出するためにＡＲＰ（Ａｄｄｒｅｓｓ　Ｒｅｓｏｌｕｔｉｏｎ　Ｐｒｏｔｏｃｏｌ）をＣＰＵ４−２，４−３に依頼する（図１１に示された▲３▼）。依頼を受けたＣＰＵ４−２，４−３は、インターフェースカードに接続された各ポートにＡＲＰ要求パケットを出力し、ＮｅｘｔＨｏｐルータからＡＲＰ応答パケットが帰ってくるのを待つ（図１１に示された▲４▼）。ここで、インターフェースカード３−３のポート３から応答パケットが返送されてきたとする。インターフェースコントローラ５−３は、受信したＡＲＰ応答パケットをＣＰＵ４−３に返送する（図１２に示された▲５▼）。また、ＣＰＵ４−３はＡＲＰ応答パケットを受信したことをＣＰＵ４−１に通知する（図１２に示された▲６▼）。ＡＲＰ応答パケット受信の通知を受けたＣＰＵ４−１は、ＣＰＵ４−３へパケットを転送し（図１３に示された▲７▼）、インターフェースコントローラ５−３によりインターフェースカードのポート３に出力される（図１３に示された▲８▼）。
【００５５】
このようにパケットを未学習の相手先に送信する際には、出力側のインターフェースカードから入力側のインターフェースカードにフィードバックが発生することになる。すなわち、入力側のＣＰＵ４−１は、パケットを受信してからＡＲＰ応答パケット受信の通知を受けるまでパケットを保持し続けなければならず、パケットの転送に時間がかかるという欠点を有している。なお、ＡＲＰ応答パケットを受信したＣＰＵ４−３は、学習した内容（該当ＩＰアドレスがインタフェースカード３−３に接続されていて、ＡＲＰ応答に記載されているレイヤ２アドレスを持っていることを他のＣＰＵへ通知する。すなわち、すべてのＣＰＵが同一のＡＲＰテーブルを有していることになる。
【００５６】
次に、ＶＬＡＮの構成範囲をインターフェースカード単位に制限した場合のパケット転送について説明する。
パケットの転送を受けたＣＰＵ４−１が管理テーブルを検索し、ルーティング情報及びレイヤ２情報からパケットの出力先を検出するまでは上述した動作と同様である。ここで、１つのＶＬＡＮは１つのインターフェースカードにのみ収納されるという制限が装置に付けられているため、パケットの出力先となるＶＬＡＮは複数のインターフェースカードに収納されることはない。また、管理テーブルに登録されたルーティング情報には、どのＶＬＡＮがどのインターフェースカードに収納されているのかが記述されている。
【００５７】
ＣＰＵ４−１は、ＮｅｘｔＨｏｐルータがどのインターフェースカードのポートに接続されているのか、また、そのレイヤ２アドレスを検出するため、ＡＲＰを使用するが、ＶＬＡＮの構成範囲をインターフェースカード単位に制限しているため、ＡＲＰ応答パケット受信の通知を受ける前に出力先となるＶＬＡＮにパケットを転送することができる（図１４に示された▲３▼）。この場合、インターフェースカード３−３が出力先となるＶＬＡＮを格納しているとする。パケットを受信したＣＰＵ４−３は、管理テーブルを参照してＩＰアドレスとレイヤ２アドレスの対応関係がキャッシュされているか否かを検索し、エントリがないことが判明するとＮｅｘｔＨｏｐルータへパケットを転送するためにＡＲＰ要求パケットを各ポートに出力する（図１４に示された▲４▼）。ここで、インターフェースカード３−３に接続されたポート３からＡＲＰ応答パケットを受信したとする。ＡＲＰ応答パケットを受信したインターフェースコントローラ５−３は、受信したパケットをＣＰＵ４−３に返送する（図１５に示された▲５▼）。ＡＲＰ応答パケットの返送を受けたＣＰＵ４−３は、インターフェースコントローラ５−３を介して、検出したポートにパケットを出力することでＮｅｘｔＨｏｐルータにパケットが転送される（図１６に示された▲６▼）。
【００５８】
このようにＶＬＡＮの構成範囲をインターフェースカード単位に制限することで出力側のＣＰＵから入力側のＣＰＵにフィードバックが発生することがなく、パケットをより高速に転送することが可能となる。
【００５９】
なお、上述した実施形態は本発明の好適な実施の形態である。但し、これに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変形実施可能である。
【００６０】
【発明の効果】
以上の説明より明らかなように本発明は、複数のインターフェースカード側に、受信したデータを記録すると共に、該データが自身に宛てられたデータであるのか、他のインターフェースカードに転送すべきデータであるのかを判定するインターフェース制御手段と、このインターフェース制御手段により他のインターフェースカードに転送すべきデータであると判定されたデータの転送を受けると、データの送信先を管理する第１の管理テーブルを参照してデータの転送先のインターフェースカードを決定し、該決定した転送先のインターフェースカードにデータを転送する転送制御手段と、を設けた。
【００６１】
また、ルータ装置全体を管理する管理制御手段には、インターフェース制御手段によりプロトコルパケットであると判定されたパケットがルーティングプロトコルであるか否かを判定し、ルーティングプロトコルであった場合に、データベースの記録内容を更新すると共に、複数のインターフェースカード内の転送制御手段にルーティング情報を転送してルーティング情報を更新させる機能を持たせた。
【００６２】
このような構成のルータ装置とすることにより、パケット転送の際には、入力側の転送制御手段によりデータの出力先となるインターフェース制御手段を選択させ、選択したインターフェース制御手段にデータを転送して、外部に出力することで、インターフェースカード内に設けたインターフェース制御手段と転送制御手段だけでパケット転送が実現され、従来構成のルータ装置で問題となっていたルータ装置全体を管理するＣＰＵの負荷を軽減させることができる。
【００６３】
また、受信したデータがプロトコルパケットであった場合だけ全体を管理する管理制御手段にデータを送信し、データがルーティングプロトコルであった場合に、データベースの記録内容を更新すると共に、複数のインターフェースカード内の転送制御手段ルーティング情報を転送してルーティングテーブルを更新させることにより、複数のＣＰＵを有するルータ装置を、従来の１つのＣＰＵを備えたルータ装置と同等に扱うことが可能となり、ルータ装置の設定などの際にルータ装置の管理の手間を軽減させることができる。
【００６４】
また、ＩＰアドレスとレイヤ２宛先アドレスの対応関係が第１の管理テーブルに記録されていないデータの転送を受けた場合に、該データの転送先として設定されたＶＬＡＮを含むインターフェースカードを第１の管理テーブルを参照して検出し、該インターフェースカードにデータを転送することにより、入力側の転送制御手段でデータの出力先となるインターフェースカードが分からず、データの出力先を他のインターフェースカードに問い合わせるといったフィードバック動作の発生を防止し、最小限の遅延でデータの転送を実現することができる。
【００６５】
また、複数のインターフェースカードと、管理制御手段とのデータの転送は、バス上に配置したクロスバースイッチにより行なわれることにより、複数のＣＰＵを安価で高速な装置内接続により接続することができる。
【図面の簡単な説明】
【図１】本発明に係る第１の実施形態の構成を示すブロック図である。
【図２】ルータ装置の他の構成を示す図である。
【図３】ルータ装置の他の構成を示す図である。
【図４】インターフェースコントローラ５の動作手順を示すフローチャートである。
【図５】インターフェースコントローラ５の動作手順を示すフローチャートである。
【図６】ルータ装置の動作手順を示す図である。
【図７】ルータ装置の動作手順を示す図である。
【図８】ルータ装置の動作手順を示す図である。
【図９】ルータ装置の動作手順を示す図である。
【図１０】ルータ装置の動作手順を示す図である。
【図１１】ルータ装置の動作手順を示す図である。
【図１２】ルータ装置の動作手順を示す図である。
【図１３】ルータ装置の動作手順を示す図である。
【図１４】ルータ装置の動作手順を示す図である。
【図１５】ルータ装置の動作手順を示す図である。
【図１６】ルータ装置の動作手順を示す図である。
【図１７】従来のルータ装置の構成を示すブロック図である。
【図１８】従来のルータ装置の構成を示すブロック図である。
【図１９】従来のルータ装置の構成を示すブロック図である。
【符号の説明】
１　ＣＰＵ
２　バス
３−１、３−２、３−３　インターフェースカード
４−１、４−２、４−３　ＣＰＵ
５−１、５−２、５−３　インターフェースコントローラ
【図１】
2004120642.tif 000003
【図２】
2004120642.tif 000004
【図３】
2004120642.tif 000005
【図４】
2004120642.tif 000006
【図５】
2004120642.tif 000007
【図６】
2004120642.tif 000008
【図７】
2004120642.tif 000009
【図８】
2004120642.tif 000010
【図９】
2004120642.tif 000011
【図１０】
2004120642.tif 000012
【図１１】
2004120642.tif 000013
【図１２】
2004120642.tif 000014
【図１３】
2004120642.tif 000015
【図１４】
2004120642.tif 000016
【図１５】
2004120642.tif 000017
【図１６】
2004120642.tif 000018
【図１７】
2004120642.tif 000019
【図１８】
2004120642.tif 000020
【図１９】
2004120642.tif 000021