(57)【特許請求の範囲】
【請求項１】
ルーティング性能が限られた少なくとも１つのシンプルルーティングモジュール、
該シンプルルーティングモジュールによるルーティングが不可能なパケットをルーティングする少なくとも１つのデフォルトルーティングモジュール、及び
少なくとも１つの前記シンプルルーティングモジュールと少なくとも１つの前記デフォルトルーティングモジュールを相互接続するとともに、モジュール間の接続を確立するネットワークファブリックであって、前記シンプルルーティングモジュールはそれぞれ、データパケットをソースから直接受信し該データパケットを直接宛先へ送信するように構成された、ネットワークファブリック
を備え、
該少なくとも１つのシンプルルーティングモジュールがそれ自身ではルーティングできないパケットを該少なくとも１つのデフォルトルーティングモジュールに送信し、
前記デフォルトルーティングモジュールがパケットを前記シンプルルーティングモジュールの１つを介して宛先に向けてルーティングし、
該少なくとも１つのデフォルトルーティングモジュールは該少なくとも１つのシンプルルーティングモジュールより多くのメモリを含むことを特徴とする、パケットをルーティングするための装置。
【請求項２】
前記デフォルトルーティングモジュールのプロセスは、他のルーティングのノードを照会して、パケットのルーティングについての情報を見つけようと試みる、請求項１記載の装置。
【請求項３】
前記デフォルトルーティングモジュールの少なくとも１つは、前記シンプルルーティングモジュールにおけるルーティング情報の更新を制御する、請求項１記載の装置。
【請求項４】
前記シンプルルーティングモジュールの少なくとも１つは、パケットネットワークのノード間でパケットを搬送するために、送信設備に接続され、
前記デフォルトルーティングモジュールの少なくとも１つは、前記シンプルルーティングモジュールの少なくとも１つに交換可能に接続されるが、前記送信設備には接続されない、請求項１記載の装置。
【請求項５】
前記デフォルトルーティングモジュールは、選択したソースおよび／または宛先を傍受または監視する装置を備え、前記シンプルルーティングモジュールから受信した、選択したソースからのおよび／または選択した宛先へのパケットは、前記傍受または監視する装置にルーティングされる、請求項１記載の装置。
【請求項６】
ルーティング性能が限られた少なくとも１つのシンプルルーティングモジュール、及び
該シンプルルーティングモジュールによるルーティングが不可能なパケットをルーティングする少なくとも１つのデフォルトルーティングモジュール
を備えたパケットネットワークのルーティングノードにおいてパケットをルーティングする方法であって、
ネットワークファブリックを介して、前記シンプルルーティングモジュールがルーティング不可能なソースから直接受信したパケットを前記デフォルトルーティングモジュールの少なくとも１つに送信するステップ、及び
前記デフォルトルーティングモジュールの少なくとも１つから前記ネットワークファブリックを介して、データパケットを受信するように構成された前記シンプルルーティングモジュールにパケットを送信するステップ
を含み、
前記デフォルトルーティングモジュールがパケットを前記シンプルルーティングモジュールの１つを介して宛先に向けてルーティングし、
ルーティング性能の限定が少なくなるように、該少なくとも１つのデフォルトルーティングモジュールが該少なくとも１つのシンプルモジュールより多くのメモリを含むことを特徴とする方法。
【請求項７】
前記デフォルトルーティングモジュールのプロセスが、他のルーティングのノードを照会して、パケットのルーティングについての情報を見つけようと試みるステップをさらに含む、請求項６記載の方法。
【請求項８】
前記デフォルトルーティングモジュールの少なくとも１つが、前記シンプルルーティングモジュールにおけるルーティング情報の更新を制御するステップをさらに含む、請求項６記載の方法。
【請求項９】
前記デフォルトルーティングモジュールにおいて、そのパケットを監視または傍受すべきであると認識するステップと、
該認識に応答して、前記パケットを監視または傍受する装置に該パケットをルーティングするステップと、
をさらに含む、請求項６記載の方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、通信パケット交換機に関し、特にルーティング機能を実行するパケット交換機に関する。
【０００２】
【従来の技術】
インターネットプロトコルパケット（データグラム）ルータは、多くのソースから多くの宛先に配向する入力パケットを受け入れる。各パケットは、宛先アドレスを含むヘッダを有する。宛先の多くが多くのパケットにおいて頻繁に現れるため、ルータは、頻繁に使用される宛先アドレスのリストについて、パケットを宛先に向けてルーティングするために現在使用中のルータの出力ポートの識別を保持する。従来技術によるパケットルータでは、コンテンツアドレス指定可能メモリを用いて、最も頻繁に現れる宛先アドレスに対応する出力ポートを格納する。このコンテンツアドレス指定可能メモリに宛先アドレスの識別を用いてアクセスする場合、コンテンツアドレス指定可能メモリがそのアドレスとエントリのうちの１つとの間の一致を見つけると、パケットをルーティングすべきポートの識別を直接または間接的に提供する。いくらか使用頻度の低いアドレスには、これらの宛先アドレスおよび対応するポート識別を格納する第２レベルのメモリが提供される。ハッシュアクセスなどの技術を用いて第２レベルのメモリを検索し、任意特定のエントリを見つけることができる。
【０００３】
コンテンツアドレス指定可能メモリまたは第２レベルのメモリにおいてエントリが見つからない場合、クエリを隣接するインターネットプロトコルルータに送信し、該隣接するインターネットプロトコルルータがこの宛先アドレスを格納しているか否かを調べる。格納している場合には、パケットをその宛先アドレスにルーティングする方法についてのいくらかの情報を得る。このクエリが失敗する場合には、さらに大きな宛先アドレスセットへのアクセスを有するバックボーンルータにパケットを送信する。最後に、他のすべてが失敗する場合、パケットを単に破棄する。異なるパケットの処理に要する時間はかなりばらつくため、ルータを通過する際の遅延もばらつく。さらに、ルータのスループット総計は、時々のルーティングが困難なパケットによりかなり低減される。
【０００４】
【発明が解決しようとする課題】
したがって、インターネットプロトコルパケットルータの設計は、２つのタイプの課題を呈示する。第１に、単純な技術的課題としては、ルータの各モジュールに秒単位で到来する多数のパケットを処理することである。第２に、識別がコンテンツアドレス指定可能メモリに格納されているため非常に高速で処理可能なパケットと、はるかに多くのデータ処理が必要なパケットと、に要する処理時間の量が広く異なることである。宛先アドレスが既知の、適切な数のパケットを処理する際の技術的問題が解決されれば、残りの問題は、残りのパケットを処理する方法である。従来技術の問題は、インターネットプロトコルルータまたは多数の異なる宛先アドレスを有するデータパケットを処理する他の任意のルータにおいて、このようなパケット処理問題に対して、妥当かつ経済的な解決策がないことである。
【０００５】
【課題を解決するための手段】
上記問題は、インターネットプロトコルパケットルータなどのパケットルータが２種類のルーティンモジュール、すなわち高速アクセス可能なメモリにアドレスが格納されているパケットをルーティングすることが可能であり、したがってこの高速メモリの検索結果に基づいてこのようなパケットをルーティングすることのできるシンプルルーティングモジュールと、最初の種類のルーティングモジュールから他のすべてのパケットを受信し、これらパケットを処理するデフォルトルータモジュールと、を有する本発明により大方緩和される。有利なことに、デフォルトルータモジュールは、このようなパケットを処理するとともに、シンプルルーティングモジュールのルーティングテーブルの更新制御など、ルータ機能全体を処理するための、高度な処理複合体である非常に容量の大きなメモリを有することができるとともに、他のルータにクエリを行っている時間中に、処理中のパケットを格納するための、容量の大きなバッファを有することが可能である。
【０００６】
有利なことに、ルーティング情報を持たないパケットによる混乱が、大部分のパケットを処理する能力を壊滅させることを考慮せずに、非常に多数のパケットを処理するようシンプルルーティングモジュールを設計することができ、ルーティング情報がないパケットは単にデフォルトルータモジュールに送信され、デフォルトルータモジュールが該パケットを処理する。有利なことに、すべてのシンプルルーティングモジュールからのオーバフロー負荷はデフォルトルーティングモジュールに配向されるため、１つのシンプルモジュールが処理不可能なパケット（すなわち、宛先ポートがルータモジュールに格納されていないパケット）を異常な程多数有する場合、デフォルトルータは、シンプルモジュールのすべてが重い負荷を同時に送信しているわけではないという事実を利用することができる。
【０００７】
デフォルトモジュールはたった１つしか、または多くとも少数しかないため、デフォルトモジュールの費用ははるかに高いが、ルータ全体を過度に高価なものとすることなく、より高度な処理複合体をそのデフォルトモジュールに提供することができる。
【０００８】
好ましい実施形態によれば、デフォルトモジュールは、シンプルモジュールの転送テーブルの更新を制御する。
【０００９】
【発明の実施の形態】
図１は、ファブリック１１０に接続された回線カード１００および１２０を有する従来技術によるバックボーンルータを示している。回線カード１００は、受信回線インタフェース１０３と、ファブリックインタフェース１０５と、ＩＰルーティングエンジン１０７とを実装するハードウェア回路からなる入力機能１０１からなる。回線カード１００はまた、ファブリックインタフェース機能１０６と、出力バッファ１０８と、回線インタフェース１０４とを有する出力機能１０２も備える。図示する他方の回線カードも入力機能１２１および出力機能１２２を有する。さらに、ルータは、ＯＡＭ＆Ｐ（動作、管理、保持、および提供）プロセッサ（図示せず）を備えるが、集中化したルーティングプロセッサはない。ＩＰルーティングエンジンがハードワイヤードで実装されるため、典型的なソフトウェアベースのルータに見られるサポートルーチンの大きなライブラリを含まない。ＩＰルーティングエンジンは、回線カードメモリに格納されており、ＯＡＭ＆Ｐプロセッサにより保持されるデータを使用する。ファブリック１１０は、任意の入力機能を出力機能に接続し、ファブリックは、好ましい一実施形態において、２００ナノ秒毎に構成される。図１において、入力機能１０１は、パス１１１により出力機能１２２に接続される。ファブリックが構成されると、ＩＰエンジン１０７において現在処理中のパケットが出力バッファ１２８に転送される。
【００１０】
図２では、回線カードの１つを、デフォルトルーティング機能を含むいくつかの特殊なルーティング機能を提供する特殊回線カード（以下、デフォルトルーティングモジュール、デフォルトルータとも呼称する）２２０で置換している。回線カード２２０は、外部回線インタフェースを１つも備えず、ファブリック２１０を介してトラヒックを獲得するとともに処分する。ファブリック２１０は、シンプルルーティングモジュール２００（以下、シンプルルータ、回線カードとも呼称する）のファブリックインタフェース２０５およびデフォルトルーティングモジュール２２０のファブリックインタフェース２３２の出力を、シンプルルーティングモジュール２００（または図示しない別のこのようなシンプルルーティングモジュール）のファブリックインタフェース２０６およびデフォルトルーティングモジュール２２０のファブリックインタフェース２３１に交換する。特殊回線カード２２０は、容量の大きなパケットバッファ２２８と、図１には図示していないサポートプロトコルの多くを実行するために使用する汎用プロセッサ２２９とを備える。さらに、汎用プロセッサ２２９は、メモリ２２６に格納されているルックアップリストに対する制御を有する。このメモリには、回線カード２００において用いられる様式と同じ様式で、ＩＰエンジンによりアクセスすることができる。さらに、ルータおよびネットワークの間でルーティングテーブルを共有するために一般的に用いられるＢＧＰ（境界ゲートウェイプロトコル：Border Gateway Protocol）を処理するエンジン２２７がある。特殊回線カードはまた、プロトコルによる必要に応じて、その他の回線カードにおけるルーティングテーブルを定期的に更新するテーブル更新機能２２３も有する。
【００１１】
この好ましい実施形態において、各シンプルモジュールは、ルーティングテーブルにおけるエントリの使用中の情報、および使用時間を保持する。そして、更新情報で存在するエントリを置換するか、新しいエントリの場合には、シンプルモジュールに存在するエントリのうち、最も古い／最も使用頻度の低いエントリを置換する。
【００１２】
回線カード２００に不確かなパケットが到来すると、ＩＰエンジン２０７はこのパケットをルーティングすることができず、したがって該パケットはファブリック２１０におけるパス２１１を介してデフォルトルーティングモジュール２２０にそして特殊回線カード２２０の出力機能２２２のファブリックインタフェース２３１にルーティングされ、ここで出力バッファ２２８に配置される。プロセッサ２２９がそのパケットを検査する。パケットがルーティングテーブル更新パケットである場合、メモリ２２６を更新する。パケットがＩＰデータパケットである場合、最終ルートを決定し、メモリ２２６を更新し、データパス２３３を介してパケットを入力機能２２１に送信し、ＩＰエンジン２２４によりファブリックインタフェース２３２を介して、そしてネットワークファブリック２１０における交換パス２１１を介してルーティングするようパケットをスケジューリングする。また、ルーティングエンジン２０７のメモリを更新するために、更新情報を回線カード２００に送信する。プロセッサは、ルートを決定できない場合、アドレスについての情報に関する他のルータへのクエリを用意し、ＢＧＰエンジンがこれをルーティングするようスケジューリングする。クエリが成功する場合、プロセッサ２２９はメモリ２２６を更新し、ＩＰエンジン２２４が、処理すべきパケットをスケジューリングする。プロセッサ２２９が依然としてパケットをルーティングすることができない場合には、そのパケットを破棄する。
【００１３】
プロセッサ２２９は、定期的に（１０秒〜２０秒毎）、テーブル更新機能２２３にメモリ２２６への変更をその他の回線カードに送信するよう命令する。回線カード２００は、前回ルーティング不可能であったアドレスについての更新を受信すると、特殊回線カード２２０の助けなしで、将来そのアドレスを有するパケットをルーティングできるようになる。
【００１４】
あるいは、回線カード２００におけるテーブルの更新をリアルタイムで開始して、回線カード２２０の負荷を制限することができる。定期的にテーブルを更新するか、またはリアルタイムで更新するかの決定は、プロセッサ２２９占有の監視、または回線カード２２０のバッファ２２８の使用に基づいて行うことが可能である。さらに、リアルタイムでの更新の決定は、特定のアドレスについてトラヒックを送信している回線カードの数、または特定のアドレスへのトラヒック量に基づく決定を用いて、選択することができる。この選択的な更新は、特別な研究またはデータとデータ傍受目的で、特定のアドレスへのトラヒックを特殊回線カード２２０にルーティングできるようにする選択的なクリアを用いて強化することができる。傍受または他の監視は、シンプルルータに傍受機器へルーティングするよう要求し、傍受機器および宛先にマルチキャスティングするために、シンプルルータにデフォルトルーティングモジュールへルーティングするよう要求し、「他のエンジン」２２５の１つにおけるチェックおよび分析のために、シンプルルータにデフォルトルーティングモジュールへルーティングするよう要求することで、実施することができる。
【００１５】
図３は、プロセッサ２２９の一実施形態の詳細図である。本発明のデフォルトルーティングモジュールは、宛先アドレスがシンプルルータの１つのルーティングテーブルにないパケットのすべての検索を行うため、コンテンツをコンテンツアドレス指定可能メモリまたはキャッシュタイプのメモリに格納することができない大きなテーブルにわたる検索を絶えず行う。専用ルータであるため、非常に大きなルーティングテーブルを格納するように作成できる、シンプルルータよりも資源の使用において高価になる可能性がある。プロセッサ２２９は、ファブリックインタフェース２３１を介してシンプルルーティングモジュールの１つからパケットを受信した出力バッファ２２８から入力を受信する。出力バッファは、中央制御プロセッサ２４２と連絡するＩ／Ｏプロセッサ２４０に供給される。中央制御プロセッサは、２つのバージョンのルーティングテーブルへのアクセスを有する。ルーティングテーブル全体をメモリ２４４に含む第１のバージョンは、検索プロセスにおいて用いるルーティングテーブルを更新する目的で使用される。検索プロセスを可能な限り効率的にするために、Ｎ個のメモリ制御プロセッサ２５０〜２５２のグループがそれぞれルーティングテーブルのサブセット２６０〜２６２と連絡する。したがって、検索は、２５０などのメモリ制御プロセッサと２６０などの対応するルーティングテーブルサブセットの各対により平行して行われる。検索の結果は、Ｉ／Ｏプロセッサ２４０を介して出力バッファ２２８と連絡する中央制御プロセッサ２４２に連絡される。次に、検索の結果を用いて、パケットを２０２などのシンプルルーティングモジュールの出力部に転送し、パス上の宛先への次のパケットノードに送信するか、あるいはデフォルトノードに送信してさらに検索するか、または破棄する。さらに、中央制御プロセッサ２４２は、パケットをデフォルトルーティングモジュールによってルーティングするよう要求したシンプルルーティングモジュールのルーティングテーブルを更新するために、制御パケットを該シンプルルーティングモジュールに送信するよう構成される。
【００１６】
定期的に、または検索の間連続して、ルーティングテーブル２４４全体のコンテンツが各種のルーティングテーブルサブセットメモリ２６０〜２６２に送信される。
【００１７】
メモリ制御プロセッサ２５０〜２５２は、任意特定の時間に異なる宛先についての検索を行うことができる。したがって、ルーティングテーブルサブセットの１つが特に激しく使用されている場合に、制御プロセッサは特定の時間期間中、より少数のアドレス検索を処理することができる。結果として、ルーティングテーブルサブセットの更新中、中央制御プロセッサ２４２は、オーバロードのルーティングテーブルサブセットを検索頻度が低いルーティングテーブルアドレスで満たすよう手配することが可能である。パケットアドレス宛先がルーティングテーブルサブセットエントリの１つで見つかると、パケットを送信したシンプルルータのアドレスルーティングテーブルを更新する。これは、制御パケットをデフォルトルータからシンプルルータに送信することによって行われる。パケットは、パスの１つ（図示せず）を介して、シンプルルータの出力部２０２と該パケットをデフォルトルータに送信したシンプルルータの入力部２０１の間を送信される。
【００１８】
多くの異なる検索および格納アルゴリズムが当分野において周知である。これらアルゴリズムの選択には、シミュレーションまたはテストが必要である。
【００１９】
宛先アドレスがデフォルトルータのルーティングテーブルに対応するポート識別を持たないパケットの場合、デフォルトルータは、パケットネットワークの他のルーティングノードからルーティング情報を要求することができる。この要求は、パケットをデフォルトルータ２２０から１つまたは複数の他のルーティングノードに送信することで生成される。これら他のルーティングノードからの応答は、このノードのデフォルトルータにルーティングされる。
【００２０】
図４は、この発明に従い、シンプルルーティングモジュールにおいて実行されるアクションを示す。ルーティングモジュールはパケットを受信する（アクションブロック３０１）。モジュールは、コンテンツアドレス指定可能メモリにおいて、パケットの宛先アドレスの一致を検索する（アクションブロック３０３）。たとえば、これは、ＩＰｖ６（インターネットプロトコルバージョン６）の検索でありうる。「フローフィールド」。テスト３０５は、一致が見つかったか否かをテストする。見つかった場合、コンテンツアドレス指定可能メモリの一致に関連する情報において記載されるポートにパケットをルーティングする（アクションブロック３０７）。テスト３０９は、シンプルモジュールも、キャッシュまたはランダムアクセスメモリなどの第２レベルのメモリを含んでいるか否かについてのテストを表す。これらのモジュールも第２レベルのメモリを検索すべきか否かについての工学的決定は複雑であり、大抵、おそらく現場での経験で強化された拡張的なシミュレーションまたはテストの後にのみ決定される。ルータ全体の結果的なパフォーマンスが各シンプルモジュールに第２レベルのメモリを備えることで悪影響を受けることになるのももっともなことである。その場合、第２レベルのメモリは設けられず、テスト３０９の結果は否であり、パケットは、図４の流れ図に従うさらなる処理のために、デフォルトルーティングモジュールに送信される。第２レベルのメモリがシンプルルーティングモジュールに設けられる場合には、第２レベルのメモリの検索を行い、宛先アドレスとの一致があるか否かを調べる（アクションブロック３１３）。検索は、周知の技術（たとえば、ハッシュアクセスまたはバイナリツリー）を用いて行うことができ、勿論、バックアップメモリのあらゆるエントリを検査して行う必要はない。テスト３１５は、一致が見つかったか否かをチェックする。見つからなかった場合、上述したように、パケットをデフォルトルーティングモジュールに送信する（アクションブロック３１１）。一致が見つかった場合には、パケットを規定されているポートにルーティングする（アクションブロック３１７）。
【００２１】
図５は、シンプルルーティングモジュールの１つからのパケットの受信に応答して、デフォルトルーティングモジュールにおいて実行されるアクションを示す。デフォルトルーティングモジュールはパケットを受信する（アクションブロック４０１）。モジュールは、各自の拡張された宛先アドレステーブルにわたり検索する（アクションブロック４０３）。テスト４０５を用いて、該検索において一致が見つかったか否かを決定する。一致が見つかった場合には、パケットを規定されているポートにルーティングし（アクションブロック４０７）、アドレス更新プログラムにこの一致を通知する（アクションブロック４０９）。特定のアドレスとの十分な一致が、比較的短時間で見つからなかった場合、１つまたは複数のシンプルモジュールのルーティングテーブルを更新することができる。
【００２２】
一致が見つからなかった場合には、クエリを隣接するルーティングモジュールに送信する（アクションブロック４２１）。テスト４２３は、クエリに対して首尾よい応答を受信したか否かを決定する。首尾よい応答を受信した場合、拡張したテーブルを更新し（アクションブロック４２５）、上記アクションブロック４０７においてパケットをルーティングした後、アドレス更新プログラムの実行を通知する。
【００２３】
クエリについて応答を受信しない場合、テスト４２７は、パケットを別のルータに送信可能か否かを決定する。これは、ルータの階層において同じかそれよりも高いレベルに別のルータがある場合、またそのルータが以前、そのルータにもうパケットを送信しないことを示すメッセージを送信していない場合に可能である。パケットを送信可能な（テスト４２７の結果が是である）場合、パケットをその他のノードにルーティングする（アクションブロック４２９）。最後に、テスト４２７の結果が否である場合、パケットを単に破棄する（アクションブロック４３１）。
【００２４】
要約として、シンプルルーティングモジュール２００は、大部分のパケットを高速にルーティングするとともに、デフォルトルーティングモジュール２２０に容易にルーティング不可能なあらゆるパケットをルーティングする。デフォルトルーティングモジュール２２０は、大きなアドレステーブルを有し、ＢＧＰ機能を実施して、他のルーティングシステムからアドレス情報を得る。デフォルトルーティングモジュールは、アドレスを見つけてパケットをシンプルルーティングモジュールに送信して、ネットワークに送信するか、パケットをパケットネットワークのデフォルトルーティングノードに送信するか、またはパケットを破棄する。本発明の好ましい実施形態において、デフォルトルーティングモジュールは、シンプルモジュールのルーティングテーブルを更新するため、そのモジュールにルーティングされたパケットのアドレスについてのトラヒックカウントを保持する。シンプルモジュールは、デフォルトルーティングモジュールが提供する新しいアドレスを優先して、まれにしか現れないアドレスを削除できるように、パケットアドレス使用のカウントを保持する。
【００２５】
上記説明は、本発明の好ましい一実施形態である。当業者には、本発明の範囲から逸脱せずに、他の多くの実施形態が明らかであろう。したがって、本発明は、添付の特許請求の範囲によってのみ制限される。
【図面の簡単な説明】
【図１】従来技術によるルーティングノードのブロック図である。
【図２】本発明によるルーティングノードのブロック図である。
【図３】デフォルトルーティングモジュールのプロセッサのブロック図である。
【図４】シンプルルーティングモジュールが実行するアクションの流れ図である。
【図５】デフォルトルーティングモジュールが実行する動作を示す流れ図である。
【図１】
0003875521.tif 000002
【図２】
0003875521.tif 000003
【図３】
0003875521.tif 000004
【図４】
0003875521.tif 000005
【図５】
0003875521.tif 000006