(57)【要約】      （修正有）【課題】ターナリＣＡＭと補助メモリで構成されるルーティングテーブルのメモリ量を削減可能とするルーティングシステムのルールエントリー管理方法を提供する。【解決手段】ルールエントリーを、基本情報及び優先順位情報を含む基準ルールエントリーと、詳細情報とを含む別途のコンテンツルールエントリーとに区分して格納するターナリＣＡＭと、基準ルールエントリーに相当するインターフェースビットマップ情報及び方向ビットマップ情報と、コンテンツルールエントリーに相当するパケットフォワーディング情報とを格納する補助メモリとを備える。このため、同じ優先順位を有する少なくとも１つのルールが、多様なインターフェース上のパケットに適用される場合であっても、２つのエントリーだけで全てのルールを表現することができるので、ターナリＣＡＭのメモリを有効に活用することができる。【選択図】図５
2007202152.tif 000002
【特許請求の範囲】
【請求項１】
ルール（rule）エントリーを、特定の優先順位を有するルールが適用されるパケットに対する基本情報及び優先順位情報を含む基準ルールエントリーと、
同じ優先順位を有する少なくとも１つのルールが適用されるパケットに対する詳細情報を含む別途のコンテンツルールエントリーとに区分して格納するターナリＣＡＭ（Ternary Content Addressable Memory；ＴＣＡＭ）と、
前記基準ルールエントリーに相当するインターフェースビットマップ情報及び方向（direction）ビットマップ情報と、前記コンテンツルールエントリーに相当するパケットフォワーディング情報とを格納する補助メモリと、を備えることを特徴とするルーティングシステム。
【請求項２】
前記ターナリＣＡＭの優先順位情報は、内向または外向インターフェースに適用されるパケット分類またはパケットフィルタリングのためのルール間の優先順位に関する情報であることを特徴とする請求項１に記載のルーティングシステム。
【請求項３】
前記補助メモリのインターフェースビットマップ情報は、前記ターナリＣＡＭの優先順位と同じ優先順位を有する少なくとも１つのルールが適用される少なくとも１つのインターフェースに関する情報であることを特徴とする請求項１に記載のルーティングシステム。
【請求項４】
前記補助メモリに格納された前記方向ビットマップ情報は、前記ターナリＣＡＭの優先順位と同じ優先順位を有する少なくとも１つのルールが適用される少なくとも１つのインターフェースが外向（egress）であるか又は内向（ingress）であるかに関する情報を含むことを特徴とする請求項３に記載のルーティングシステム。
【請求項５】
前記コンテンツルールエントリーは、
ルールが適用されるインターフェースが内向トラフィックを処理するかに関するインターフェース内向ビットマップと、
ルールが適用されるインターフェースが外向トラフィックを処理するかに関する外向ビットマップと、を含むことを特徴とする請求項１に記載のルーティングシステム。
【請求項６】
前記ルールが適用されるインターフェースが内向または外向トラフィックを処理する場合、該当するインターフェースのトラフィック方向に対応するビットがドントケア（Don’t care）値に設定されることを特徴とする請求項５に記載のルーティングシステム。
【請求項７】
前記ターナリＣＡＭの基準ルールエントリーまたはコンテンツルールエントリーの追加または削除を行うエントリー管理部をさらに備えることを特徴とする請求項１に記載のルーティングシステム。
【請求項８】
受信したパケットと受信パケットについてのインターフェース情報とを用い、ターナリＣＡＭルックアップを通じてパケットフォワーディング情報を取得するルックアップ処理部をさらに備えることを特徴とする請求項１に記載のルーティングシステム。
【請求項９】
パケット分類、パケットフィルタリング、ルールの生成、及びルース削除処理のためにユーザから入力されるルール情報を、前記エントリー管理部及び前記ルックアップ処理部に伝送するユーザインターフェースをさらに備えることを特徴とする請求項７又は８に記載のルーティングシステム。
【請求項１０】
特定の優先順位を有するルールが適用されるパケットに対する基本情報及び優先順位情報を含む基準ルールエントリーと、
前記基準ルールエントリーの優先順位と同じ優先順位を有する少なくとも１つのルールが適用されるパケットに対する詳細情報を含むコンテンツルールエントリーと、を備えることを特徴とするターナリＣＡＭ。
【請求項１１】
前記優先順位情報は、内向または外向インターフェースに適用されるパケット分類またはパケットフィルタリングのためのルール間の優先順位に関する情報であることを特徴とする請求項１０に記載のターナリＣＡＭ。
【請求項１２】
前記コンテンツルールエントリーは、ルールが適用されるインターフェースが内向トラフィックを処理するかに関するインターフェース内向ビットマップと、
ルールが適用されるインターフェースが外向トラフィックを処理するかに関する外向ビットマップと、を含むことを特徴とする請求項１０に記載のターナリＣＡＭ。
【請求項１３】
前記ルールが適用されるインターフェースが内向または外向トラフィックを処理する場合、前記インターフェースのトラフィック方向に対応するビットがドントケア（Don’t care）値に設定されることを特徴とする請求項１０に記載のターナリＣＡＭ。
【請求項１４】
ルーティングのためのルールエントリー管理方法であって、
特定の優先順位を有するルールが適用されるパケットに対する基本情報及び優先順位情報を含むターナリＣＡＭの基準ルールエントリーを生成する段階と、
前記基準ルールエントリーの優先順位と同じ優先順位を有する少なくとも１つのルールが適用されるパケットに対する詳細情報を含む前記ターナリＣＡＭのコンテンツルールエントリーを生成する段階と、
前記基準ルールエントリーに相当するインターフェースビットマップ情報及び方向ビットマップ情報と、前記コンテンツルールエントリーに相当するパケットフォワーディング情報とを補助メモリに格納する段階と、を有することを特徴とするルーティングルールエントリー管理方法。
【請求項１５】
前記ターナリＣＡＭの優先順位情報は、内向または外向インターフェースに適用されるパケット分類またはパケットフィルタリングのためのルール間の優先順位に関する情報であることを特徴とする請求項１４に記載のルーティングルールエントリー管理方法。
【請求項１６】
前記インターフェースビットマップ情報は、前記ターナリＣＡＭの優先順位と同じ優先順位を有する少なくとも１つのルールが適用される少なくとも１つのインターフェースに関する情報であることを特徴とする請求項１４に記載のルーティングルールエントリー管理方法。
【請求項１７】
前記補助メモリの前記方向ビットマップ情報は、前記ターナリＣＡＭの優先順位と同じ優先順位を有する少なくとも１つのルールが適用される少なくとも１つのインターフェースが外向（egress）であるか又は内向（ingress）であるかに関する情報を含むことを特徴とする請求項１４に記載のルーティングルールエントリー管理方法。
【請求項１８】
新しいルールの追加要請を受信した場合に、
前記基準ルールエントリーに対する検索キーを生成する段階と、
前記検索キーを用いて前記ターナリＣＡＭをルックアップし、マッチングされるエントリーが存在するか否かを検索し、かつマッチングされるエントリーが存在しない場合に、前記追加要請されたルールに対する前記基準ルールエントリーと前記コンテンツルールエントリーとを生成する段階と、をさらに有することを特徴とする請求項１４に記載のルーティングルールエントリー管理方法。
【請求項１９】
特定のルールに対する削除要請が入力された場合に、
前記基準ルールエントリーに対する検索キーを生成する段階と、
前記検索キーを用いて前記ターナリＣＡＭをルックアップし、マッチングされるエントリーが存在するか否かを検索し、マッチングされるエントリーが存在する場合に、前記削除要請されたルールに対する基準ルールエントリーとコンテンツルールエントリーをアップデートし、前記エントリーのインターフェース及び方向ビットマップの全てのビットが０である場合、前記基準ルールエントリー及び前記コンテンツルールエントリーを削除する段階と、をさらに有することを特徴とする請求項１４に記載のルーティングルールエントリー管理方法。
【請求項２０】
ルーティングルックアップのためのパケットが受信された場合に、
前記コンテンツルールエントリーに対する検索キーを生成する段階と、
前記検索キーを用いて前記ターナリＣＡＭをルックアップし、マッチングされるエントリーが存在する場合、前記補助メモリに格納されたフォワーディング情報に基づいて前記受信されたパケットに対するフォワーディングを行う段階と、をさらに有することを特徴とする請求項１４に記載のルーティングルールエントリー管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ルーティングシステム及びルーティングシステムのルールエントリー管理方法に関する。
【背景技術】
【０００２】
インターネットネットワーク環境下において、ルーティングルックアップ（Lookup）動作は、ネットワークプロセッサーやルータの性能上、主要なボトルネック現象を引き起こすものとなってきた。インターネットユーザが急激に増加するに従って、既存の階層的アドレス（Classful Address）体系は、ＣＩＤＲ（Classless InterDomain Routing）体系に代替された。
【０００３】
ＣＩＤＲ体系は、ＩＰアドレス管理の面では、効率的であるが、ＬＰＭ（Longest Prefix Matching）によりルーティングルックアップが次第に難しくなり、複雑になった。ＬＰＭにより引き起こされた問題は、（ｉ）ルーティングテーブルサイズの拡大、（ｉｉ）インターネットトラフィックの増加、（ｉｉｉ）更なる高速のネットワークリンク要求、そして（ｉｖ）１２８ビットＩＰｖ６への移行の難しさなどである。このようなＣＩＤＲアドレス体系によるルーティングルックアップの難しさを解決するために、ソフトウェア的な方法とハードウェア的な方法が研究されてきた。
【０００４】
ソフトウェア的な方法は、圧縮アルゴリズムを用いてメモリ使用量を低減し、これをキャッシュやＳＲＡＭのような高速のメモリを用いてルーティングルックアップを向上させる方法を主として使用している。ソフトウェア的な方法は、マイクロプロセッサーの性能向上、キャッシュのヒット率増加、及びＦＳＢ（Front Side Bus）の高速化を達成することができる。しかしながら、このようなソフトウェア的な方法は、ルーティングアップデートの際、全体を再構成しなければならないアルゴリズムが多く、また、平均的な検索効率に優れているが、ツリー構造が密集している場合、検索効率が悪くなり、最悪の場合、３２回のメモリアクセスが要求される。
【０００５】
ハードウェア的な方法は、一般的に、線形的にＩＰアドレスをメモリにマッピングする方法と、圧縮アルゴリズムをハードウェアで具現する方法などが挙げられる。ハードウェア的な方法は、パイプライニングによるルーティング速度の向上が可能であり、ＯＳをポーティングする際にマイクロプロセッサーで具現する場合、演算やインストラクションによるルーティング速度が低下しないという長所を有している。
【０００６】
最近、ハードウェア具現として注目されるルックアップ方式には、ＣＡＭ（Content Addressable Memory）を用いたルックアップ方式が挙げられる。ＣＡＭは、データを用いて当該データと関連した値が位置しているアドレスを検索する機能を有しており、セル（Cell）毎に比較のためのＸＯＲ演算を行うことができる特性を有する装置である。そして、ＣＡＭは、既存のＲＡＭ（Random Access Memory）構造とは異なって、外部の情報と格納された内容（コンテンツ）とを比較することによって、読み取り／書き込み処理を行う関連記憶装置（Associative Memory）構造となっている。ＣＡＭは、このような特性に因って、ネットワークルータでの検索エンジンやイメージプロセッサーまたは神経網の具体化に用いられている。
【０００７】
ＣＡＭは、１クロック以内で直ちに当該ポートなどに関する情報を把握することができる。特に、０と１以外にドントケア値（Don’t care）情報の格納が可能なターナリＣＡＭ（Ternary Content Addressable Memory；ＴＣＡＭ）を利用する場合、ＬＰＭをも比較的容易に具現が可能である。パケット区分のためには、目的（Destination）ＩＰアドレスだけでなく、ソース（source）ＩＰアドレス、ソース／目的ポート番号、プロトコルフィールド（５タプル（tuple））などを参照する必要があるが、これを予め設定された多様なパケットフィルタリング規則（ルール）と比較する処理をパケット毎に行わなければならないので、ＩＰアドレスルックアップより複雑な処理となる。
【０００８】
ターナリＣＡＭは、１０〜２０ナノ秒（nanoseconds）の非常に短い遅延度（latency）内に探そうとするキーとターナリＣＡＭ中の全てのエントリーとを並列的（parallel）に比較することで、ルックアップ結果検索を可能にする。ターナリＣＡＭには、内容ビットストリング（Content Bit String）によるマスクビットストリング（Mask Bit String）が存在するので、内容ビットストリング全てを探索キー（Search Key）と比較する必要はなく、ターナリＣＡＭは、ターナリＣＡＭ内の全てのエントリーの中で探索キーと最も速くマッチングされたエントリー情報を検索結果として通知する。
【０００９】
一般的に、ルーティングシステムは、ネットワークプロセッサー、ターナリＣＡＭ、補助メモリなどを含み、ネットワークプロセッサーは、インターフェース部、エントリー管理部、ルックアップ処理部をサブブロックとして含む。
【００１０】
インターフェース部は、ユーザからのＣＬＩ（Command Line Interface）を介して入力されたパケット分類（classification）またはパケットフィルタリング（filtering）のためのルール（Rule）情報と、ターナリＣＡＭに任意のルールを追加／削除するための情報とを含むエントリー管理情報をエントリー管理部に提供する。ここで、ルールは、ルーティングシステムに伝送されたパケットのフォワーディング情報を示し、ルールに含まれる情報は、ユーザの必要に応じて異ならしめて構成されることができる。一般的に、ルールは、ソースＩＰアドレス、目的ＩＰアドレス、受信ポート番号、送信ポート番号、プロトコルの種類、パケットのフォワーディング情報を含む。
【００１１】
エントリー管理部は、インターフェース部が提供するエントリー管理情報が任意のルールを追加するための情報である場合、ユーザから入力されたルールをターナリＣＡＭのエントリー形式に変換し、ターナリＣＡＭに格納する。一方、エントリー管理部は、インターフェース部から提供されたエントリー管理情報がターナリＣＡＭに格納された任意のルールを削除するための情報である場合、ターナリＣＡＭに格納された当該ルールを削除する。
【００１２】
ルックアップ処理部では、受信したパケットと受信パケットに対するインターフェース情報（例えば、インターフェースＩＤ、方向）を用いたＴｅｒｎａｒｙ  ＣＡＭ（Ｔ−ＣＡＭ）ルックアップを通じてパケットフォワーディング情報を取得する。ルックアップ処理部は、パケットフォワーディング情報に基づいてパケットをフィルタリングしたり、パケット分類による政策（policy）を適用する。
【００１３】
ターナリＣＡＭは、複数のルールを格納し、補助メモリは、ターナリＣＡＭが格納する各ルールに対応するパケットについてのフォワーディング情報を格納する。補助メモリは、ＺＢＴ（Zero Bus Turnaround）ＳＲＡＭで具現されることが一般的である。ここで、パケットフォワーディング情報は、ネットワークプロセッサーが受信したパケットに対してのフォワーディングの許可（permit）／拒否（（deny）／分類（classification））に対する情報などを含む。
【００１４】
図１は、検索キーとマスクを用いたターナリＣＡＭのエントリー情報検索メカニズムを示すものである。
【００１５】
ターナリＣＡＭは、優先順位が低くなる順にルールを格納し、所定の探索キーと格納された全てのエントリーとを同時に比較し、最も速くマッチングされたエントリーを探す。この過程で、ターナリＣＡＭは、内容ビットストリング（Content Bit String）に従うマスクビットストリング（Mask Bit String）を有するので、内容ビットストリング全てを探索キー（Search Key）と比較する必要がないことは、前述した通りである。すなわち、図１のマスク部分のうち、ドントケア（Don’t Care）値を有する部分については、探索時に考慮する必要がない。探索キー（Search Key）のうちマスクのドントケア値部分を除いた部分だけに対して内容ビットストリングと比較した結果値が図１のデータアレイ（Data Array）部分の比較結果（Compare）として現れるようになる。
【００１６】
図２は、従来のルーティングシステムにおいてのターナリＣＡＭと補助メモリの構造を示すものである。
【００１７】
図２に示すように、ターナリＣＡＭ１００のルールと補助メモリ２００のパケットフォワーディング情報が相互対応している。ターナリＣＡＭ１００に格納された各ルールエントリーは、パケット分類やパケットフィルタリングのために典型的に要求される５−タプル（tuple）を含んでいることを確認することができ、それは、ソースＩＰアドレス１１１、目的ＩＰアドレス１１２、受信ポート番号１１３、送信ポート番号１１４、プロトコル種類１１５などである。また、各ルールエントリーは、ルールが適用されるインターフェース情報、例えば、インターフェースＩＤ１１６と、方向（direction）１１７を含む。これは、ルールがルーティングシステム全体に適用される場合のみならず、特定のインターフェースの内向（ingress）または外向（egress）トラフィックに区別されて適用される場合も考慮するためである。仮に、ルールエントリーが５−タプルだけを含む場合、ルーティングシステムのルックアップ処理部は、受信パケットに対してターナリＣＡＭルックアップ後、パケットフォワーディング情報を取得（獲得）するようになるので、当該パケットフォワーディング情報が当該インターフェースに適用されたものであるかを確認する過程が別途に必要となる。したがって、このような別途の過程に費やされる時間を低減し、且つ高速のルックアップを具現するために、一般的に、ルールエントリーには、５−タプルとルール適用の対象になるインターフェースに関する情報とを含むことになる。
【００１８】
一方、高速ルックアップのためには、各ルールエントリーにパケット分類やパケットフィルタリングのルール区分のためのフィールドを格納しなければならないが、ルールフィールドのビットサイズが小さくなく、ターナリＣＡＭメモリサイズは制限されているので、ターナリＣＡＭ内にこのようなフィールドをどんな方法で格納するかは、重要な問題となる。
【００１９】
特に、パケット分類やパケットフィルタリングのルールは、５−タプル値のうちソース／目的プロトコルナンバーの値の特定の範囲内で変動が可能な形態を有するようにするので、ターナリＣＡＭの内部でこの範囲を具現するためには、１つのルールを表現するために、１つ以上のエントリーが必要となるという問題点が発生する。しかも、１つのルールが多様なインターフェースの内向または外向トラフィックに適用されることを表示するためには、さらに多いエントリーが必要であると言える。
【特許文献１】大韓民国特許出願第１０−２００４−５４９４０号明細書
【発明の開示】
【発明が解決しようとする課題】
【００２０】
本発明は、前記問題点を解決するためになされたもので、その目的は、ターナリＣＡＭのエントリーを２種類に区分し、それにより、補助メモリの格納部分をも変更することによって、効果的なエントリー管理を図ることができるルーティングシステム及びルーティングシステムのルールエントリー管理方法を提供することにある。
【課題を解決するための手段】
【００２１】
前記目的を達成するために、本発明に係るルーティングシステムは、ルールエントリーを、特定の優先順位を有するルールが適用されるパケットに対する基本情報及び優先順位情報を含む基準ルールエントリーと、同じ優先順位を有する少なくとも１つのルールが適用されるパケットに対する詳細情報を含む別途の内容ルール（コンテンツルール）エントリーとに区分して格納するターナリＣＡＭと、基準ルールエントリーに相当するインターフェースビットマップ情報及び方向ビットマップ情報と、コンテンツルールエントリーに相当するパケットフォワーディング情報とを格納する補助メモリとを備えることを特徴とする。
【００２２】
なお、上記ターナリＣＡＭの優先順位情報は、内向または外向インターフェースに適用されるパケット分類またはパケットフィルタリングのためのルール間の優先順位に関する情報であることが好ましい。
【００２３】
また、上記補助メモリのインターフェースビットマップ情報は、ターナリＣＡＭの優先順位と同じ優先順位を有する少なくとも１つのルールが適用される少なくとも１つのインターフェースに関する情報であることが好ましい。
【００２４】
また、補助メモリの方向ビットマップ情報は、ターナリＣＡＭの優先順位と同じ優先順位を有する少なくとも１つのルールが適用される少なくとも１つのインターフェースが外向であるか、又は内向であるかに関する情報を含むことが好ましい。
【００２５】
また、上記ルーティングシステムにおいて、上記コンテンツルールエントリーは、ルールが適用されるインターフェースが内向トラフィックを処理するかに関するインターフェース内向ビットマップと、ルールが適用されるインターフェースが外向トラフィックを処理するかに関する外向ビットマップと、を含むことが好ましい。
【００２６】
また、上記ルールが適用されるインターフェースが内向または外向トラフィックである場合、上記インターフェースのトラフィック方向に相当するビットをドントケア（Don’t care）値として設定することが好ましい。
【００２７】
また、上記ルーティングシステムは、ターナリＣＡＭの基準ルールエントリーまたはコンテンツルールエントリーの追加または削除を行うエントリー管理部をさらに備えるように構成することができる。
【００２８】
また、上記ルーティングシステムは、受信したパケットと受信パケットに対するインターフェース情報とを用いて、ターナリＣＡＭルックアップを通じてパケットフォワーディング情報を取得するルックアップ処理部をさらに備えるように構成することができる。
【００２９】
また、上記ルーティングシステムは、パケット分類、パケットフィルタリング、ルールの生成、及びルールの削除のためにユーザから入力されるルール情報を、エントリー管理部及びルックアップ処理部に伝送するユーザインターフェースをさらに備えるように構成することができる。
【００３０】
また、本発明の他の態様に係るターナリＣＡＭは、特定の優先順位を有するルールが適用されるパケットに対する基本情報及び優先順位情報を含む基準ルールエントリーと、基準ルールエントリーの優先順位と同じ優先順位を有する少なくとも１つのルールが適用されるパケットに対する詳細情報を含む内容ルールエントリーと、を含むことを特徴とする。
【００３１】
また、本発明のさらに他の態様に係るルーティングルールエントリー管理方法は、特定の優先順位を有するルールが適用されるパケットに対する基本情報及び優先順位情報を含むターナリＣＡＭの基準ルールエントリーを生成する段階と、基準ルールエントリーの優先順位と同じ優先順位を有する少なくとも１つのルールが適用されるパケットに対する詳細情報を含むターナリＣＡＭの内容ルール（コンテンツルール）エントリーを生成する段階と、基準ルールエントリーに相当するインターフェースビットマップ情報及び方向ビットマップ情報と、内容ルールエントリーに相当するパケットフォワーディング情報とを補助メモリに格納する段階と、を有することを特徴とする。
【００３２】
なお、上記ルーティングルールエントリー管理方法は、新しいルールに対する追加要請を受信する場合、基準ルールエントリーに対する検索キーを生成する段階と、検索キーを用いてターナリＣＡＭをルックアップし、マッチングされるエントリーが存在するか否かを検索し、マッチングされるエントリーが存在しない場合、追加要請されたルールに対する基準ルールエントリーと内容ルールエントリーを生成する段階と、をさらに備えるように構成することができる。
【００３３】
また、上記ルーティングルールエントリー管理方法は、特定のルールに対する削除要請が入力される場合、基準ルールエントリーに対する検索キーを生成する段階と、検索キーを用いてターナリＣＡＭをルックアップし、マッチングされるエントリーが存在するか否かを検索し、マッチングされるエントリーが存在する場合、削除要請されたルールに対する基準ルールエントリーと内容ルールエントリーをアップデートし、エントリーのインターフェース及び方向ビットマップの全てのビットが０である場合に、基準ルールエントリー及び内容ルールエントリーを削除する段階と、をさらに備えるように構成することができる。
【００３４】
また、上記ルーティングルールエントリー管理方法は、ルーティングルックアップのためのパケットが入力された場合、内容ルールエントリーに対する検索キーを生成する段階と、検索キーを用いてターナリＣＡＭをルックアップし、マッチングされるエントリーが存在する場合、補助メモリが格納するフォワーディング情報に基づいて受信されたパケットに対するフォワーディングを行う段階と、をさらに備えるように構成することができる。
【発明の効果】
【００３５】
本発明は、同じ優先順位を有する少なくとも１つのルールが多様なインターフェース上のパケットに適用される場合に、２つのエントリーだけで全てのルールを表現することが可能となるため、ターナリＣＡＭのメモリ活用側面において有効である。
【発明を実施するための最良の形態】
【００３６】
以下、図面を参照して、本発明に係るルーティングシステム及びルーティングシステムのルールエントリー管理方法の好適な実施例を詳細に説明する。
【００３７】
図３は、本発明に係るルーティングシステムのブロック構成を示している。
【００３８】
図３に示したように、ルーティングシステムは、ネットワークプロセッサー３００、ターナリＣＡＭ４００、補助メモリ５００などを含み、ネットワークプロセッサー３００は、インターフェース部３１０、エントリー管理部３２０、ルックアップ処理部３３０をサブブロックとして含む。
【００３９】
インターフェース部３１０は、ユーザから入力されたパケット分類（classification）またはパケットフィルタリングのためルール（Rule）情報と、ターナリＣＡＭに任意のルールを追加／削除するための情報を含むエントリー管理情報をエントリー管理部３２０に提供する。
【００４０】
エントリー管理部３２０は、インターフェース部３１０が提供するエントリー管理情報が任意のルールを追加するための情報である場合、ユーザから入力されたルールをターナリＣＡＭ４００のエントリー形式に変換し、ターナリＣＡＭ４００に格納する。また、エントリー管理部３２０は、インターフェース部３１０から提供されたエントリー管理情報がターナリＣＡＭ４００に格納された任意のルールを削除するための情報である場合、ターナリＣＡＭ４００に格納された当該ルールを削除する。ルールを生成、追加または削除するための検索を行うために、エントリー管理部３２０が使用する検索キーは、基準ルールエントリーに対して１つである。基準ルールエントリーについては、図４を参照して詳細に説明する。
【００４１】
ルックアップ処理部３３０では、受信したパケットと受信パケットに対するインターフェース情報とを用い、ターナリＣＡＭ４００のルックアップを通じてパケットフォワーディング情報を取得する。ここで、ルックアップ処理部３３０が使用する検索キーは、内容ルール（コンテンツルール）エントリーのための検索キーである。内容ルールエントリーについては、後述する。
【００４２】
ターナリＣＡＭ４００は、基準ルールエントリーと内容ルールエントリーとを含み、補助メモリ５００は、ターナリＣＡＭが格納する各ルールに対応するパケットのフォワーディング情報を格納する。ターナリＣＡＭ４００と補助メモリ５００の構造については、後述する。
【００４３】
図４は、本発明に係るターナリＣＡＭの各エントリーとそれに相当する補助メモリの構造を示している。
【００４４】
本発明において、既存のルーティングシステムと大きく異なることは、ターナリＣＡＭと補助メモリの構成である。図４では、本発明に係るターナリＣＡＭ４００と補助メモリ５００の構成を詳細に説明するために、本発明のターナリＣＡＭと補助メモリの構成だけを示したものであり、ルーティングシステムの他の構成は省略している。
【００４５】
本発明に係るターナリＣＡＭ４００が格納するルールエントリーは、２つの種類がある。１つは、基準ルールエントリー４１０であり、他の１つは、内容ルールエントリー４２０である。基準ルールエントリー４１０は、同じ優先順位（priority）を有するパケット分類やパケットフィルタリングのためのルールである５−タプルが初期に生成され、ターナリＣＡＭに格納される場合のエントリーの形式を示しており、これに対して、内容ルールエントリー４２０は、対応する基準ルールエントリー４１０の優先順位に該当するルールエントリーを格納する役目をする。
【００４６】
基準ルールエントリー４１０は、一般的なルールエントリーと同様に、ソースＩＰアドレス４１１、目的ＩＰアドレス４１２、受信ポート番号４１３、送信ポート番号４１４、プロトコル種類４１５に関するフィールドを含む。しかし、基準ルールエントリー４１０は、一般的な従来のルールエントリーとは異なり、インターフェースフィールドと方向フィールドを含んでおらず、優先順位フィールド４１６を含むように構成されている。そして、本発明に係る優先順位フィールド４１６は、３２ビットに設定されており、内向または外向インターフェースに適用されたパケット分類やパケットフィルタリングのためのルール間の優先順位を示している。
【００４７】
また、補助メモリ５００には、インターフェースビットマップ（Interface Bit Map）情報５１１及び方向ビットマップ（Direction Bit Map）情報５１２が格納される。インターフェースビットマップ情報５１１及び方向ビットマップ情報５１２は、多様なインターフェース及び方向に適用された同じ優先順位を有するルールにおける設定情報を示す。インターフェースビットマップ５１１は、１６ビット各々のビットが１つのインターフェースを指し示すものとして設定されていて、ビットの値が０なら、５−タプルが当該インターフェースに適用されないことを意味する。インターフェースビットの値が“１”なら、５−タプルが当該インターフェースに適用されていることを意味する。図４では、インターフェースビットマップに１６ビットが割り当てられており、総１６個のインターフェースを表現することが限界ではあるが、ネットワークの特性によって、インターフェースビットマップの個数を増加または減少する調整が可能である。
【００４８】
方向ビットマップ５１２の各ビットは、インターフェースビットマップ５１１の各ビットに対応し、インターフェースビットマップ５１１のビット０に対するインターフェース方向情報は、方向ビットマップ５１２のビット０がそれを示す。方向ビットマップの各ビットの値が“０”なら、内向トラフィックに５−タプルが適用されたものであり、方向ビットマップの各ビットの値が“１”なら、外向トラフィックに５−タプルが適用されたものである。
【００４９】
一方、内容ルールエントリー４２０は、５−タプル４２１、４２２、４２３、４２４、４２５と、インターフェース内向（Ingress）ビットマップ４２６及びインターフェース外向（egress）ビットマップ４２７で構成される。インターフェース内向ビットマップ４２６及びインターフェース外向ビットマップ４２７は、５−タプルがどのインターフェースの内向トラフィックまたは外向トラフィックに適用されるかを示す。特定の内向ビットが“無定義（ドントケア（Don’t care））”値を有する場合、当該インターフェースの内向にルールが適用され、特定の外向ビットが“無定義（ドントケア（Don’t care））”値を有する場合、当該インターフェースの外向トラフィックにルールが適用されることを示す。また、インターフェース内向ビットマップ４２６またはインターフェース外向ビットマップ４２７のいずれかのビットが“０”を有する場合、インターフェースにはルールが適用されないことを意味する。内容ルールエントリー４２０と関連して、補助メモリ５００には、パケットフォワーディング情報５２０が格納されるが、この情報は、当該ルールが適用される受信パケットをフォワーディングするための情報である。
【００５０】
図４のようなターナリＣＡＭ及び補助メモリ構造を利用する場合、同じ優先順位を有するルールが適用される１６個のインターフェースに対し、２つのルールエントリーを必要するだけとなる。したがって、従来のルーティングシステムでは１６個のインターフェースに対して１６個のルールエントリーが必要であったことに比べて、効果的なメモリ空間活用方法であると言える。
【００５１】
図５は、本発明に係るエントリー管理部３２０におけるターナリＣＡＭのエントリー生成処理フローの好適な一実施例を示したフローチャートである。
【００５２】
ルーティングシステムにおいて新しいルールを受信した場合（ステップＳ５０１）、エントリー管理部３２０は、まず、基準ルールエントリーに対する検索キーを生成する（ステップＳ５０２）。ルーティングシステムは、生成された検索キーでターナリＣＡＭをルックアップし（ステップＳ５０３）、マッチングされるエントリーが存在するか否かを検索し（ステップＳ５０４）、マッチングされる情報が存在する場合、ルックアップされたインターフェースビットマップ及び方向ビットマップに受信ルールのインターフェース及び方向情報が存在するか否かをチェックする（ステップＳ５０５）。当該インターフェース及び方向ビットマップが存在する場合、新しいルールを追加する処理及びアップデート処理が必要ないので、ルールエントリー追加失敗メッセージを伝送し（ステップＳ５０６）、処理を終了する。
【００５３】
一方、ステップＳ５０５において、ルックアップされたインターフェースビットマップ及び方向ビットマップに受信ルールのインターフェース及び方向情報が存在しない場合には（ステップＳ５０５のＮｏ）、当該内容ルールエントリーをアップデートし（ステップＳ５０７）、基準ルールエントリーもアップデートする（ステップＳ５０８）。
【００５４】
また、ステップＳ５０４において、マッチングされる情報が存在しない場合（ステップＳ５０４のＮｏ）、エントリー管理部３２０は、受信されたルールに合致するように、基準ルールエントリーを生成し（ステップＳ５１０）、生成された基準ルールエントリーをターナリＣＡＭに追加する（ステップＳ５１１）。その後、基準ルールエントリーに相当する内容ルールエントリーを生成し（ステップＳ５１２）、ターナリＣＡＭにエントリーを追加する（ステップＳ５１３）。
【００５５】
図６は、本発明に係るエントリー生成処理によるターナリＣＡＭ構造の変化態様を示すものである。
【００５６】
初期に、優先順位１を有するルールがルーティングシステムのインターフェース部３１０に受信される場合を想定する。ここで、受信されたルールは、ソースＩＰアドレスが１０．１．１．１、目的地ＩＰアドレスが１０．１．１．２、ソース及び目的地ポートが各々２３、プロトコル種類が６である５−タプルインターフェース１、外向トラフィックに適用されるとする。
【００５７】
図６の基準ルールエントリー４１０のソースＩＰアドレス４１１には、“１０．１．１．１”、目的ＩＰアドレス４１２には、“１０．１．１．２”、受信ポート番号４１３には、“２３”、送信ポート番号４１４には、“２３”、プロトコル種類４１５には、“６”の値が各々設定されていることが分かる。また、優先順位フィールド４１６には、“１”が設定されている。また、補助メモリ５００のインターフェースビットマップ５１１のビット０に“１”の値が設定され、インターフェース１に対するルールであることが分かり、方向ビットマップ（Direction Bit Map）５１２のビット０に“１”の値が設定され、外向トラフィックであることが分かる。
【００５８】
一方、内容ルールエントリー４２０のインターフェース内向ビットマップ４２６は、全てのビットが“０”に設定されており、インターフェース外向ビットマップ４２７のビット０に“Ｘ（無定義）”、すなわちドントケア値が設定され、インターフェース１に対する外向トラフィックに当該ルールが適用されることが分かる。
【００５９】
図７は、本発明によりターナリＣＡＭにルールが追加された場合のターナリＣＡＭ構造の変化態様を示すものである。
【００６０】
図７は、図６と同様のターナリＣＡＭ構造で、優先順位１を有する５−タプル（ソースＩＰアドレス１０．１．１．１、目的地ＩＰアドレス１０．１．１．２、ソース及び目的地ポート２３、プロトコル種類が６である）が、インターフェース１の内向に適用された場合の、ＴＣＡＭの変化様態を示すものである。
【００６１】
図７の構造と図６とを比較すると、補助メモリ５００のインターフェースビットマップ５１１のビット１の値が“０”から“１”に変更され、ターナリＣＡＭ４００の内容ルールエントリー４２０のインターフェース内向ビットマップ４２６のビット１の値が“０”から“Ｘ（無定義）”値に変更されたことが分かる。これは、当該ルールがインターフェース０の外向トラフィックのみならず、インターフェース１の内向トラフィックにも適用されることを示している。
【００６２】
図８は、本発明に係るルーティングシステムのルックアップ処理部３３０におけるルックアップ処理フローを説明するためのフローチャートである。
【００６３】
ルーティングシステムにおいてパケットを受信した場合（ステップＳ８０１）、内容ルールエントリーに対する検索キーを生成する（ステップＳ８０２）。内容ルールエントリーに対する検索キーの構造については、図９で詳細に説明する。ルーティングシステムは、生成された検索キーを用いてターナリＣＡＭをルックアップし（ステップＳ８０３）、マッチングされるエントリーが存在するか否かを検索する（ステップＳ８０４）。ルーティングシステムは、マッチングされる情報が存在する場合（ステップＳ８０４のＹｅｓ）、ルックアップされたフォワーディング情報に基づいてパケットフォワーディングを行う（ステップＳ８０５）。
【００６４】
なお、ステップＳ８０４において、マッチングされる情報が存在しない場合には、内容ルールエントリールックアップに失敗したことをユーザに通知する（ステップＳ８０６）。
【００６５】
図９は、本発明に係るルックアップのための検索キー構造の一実施例を示す。
【００６６】
図９に示したパケットフォワーディングのためのルックアップのための検索キーは、前述したようなターナリＣＡＭ４００の内容ルールエントリー４２０の構造と同様である。これは、パケットフォワーディングのためには、受信されたパケットと内容ルールエントリー４２０に格納された内容とを比較しなければならないが、内容ルールエントリー４２０が補助メモリ５００のパケットフォワーディング情報５２０に連動しているからである。
【００６７】
図９では、ソースＩＰアドレス“１０．１．１．１”、目的地ＩＰアドレス“１０．１．１．２”、ソース及び目的地ポート２３、プロトコル種類６であるインターフェース０の内向トラフィックが受信された場合の検索キーの構造を示している。図９のような検索キーは、ターナリＣＡＭの内容ルールエントリーと比較され、マッチングされる情報が存在する場合、ルックアップされたフォワーディング情報に基づいて当該パケットに対するパケットフォワーディングが行われる。
【００６８】
図１０は、本発明に係るエントリー管理部３２０におけるターナリＣＡＭのエントリー削除処理フローの好適な一実施例を示すフローチャートである。
【００６９】
ルーティングシステムにおいてユーザにより削除要求されたルールに対する情報を受信する場合（ステップＳ１０１）、まずエントリー管理部３２０は、基準ルールエントリーに対する検索キーを生成する（ステップＳ１０２）。ルーティングシステムは、生成された検索キーでターナリＣＡＭ４００をルックアップし（ステップＳ１０３）、マッチングされるエントリーが存在するか否かを検索し（ステップＳ１０４）、マッチングされる情報が存在する場合、ルックアップされたインターフェースビットマップ及び方向ビットマップに受信ルールのインターフェース及び方向情報が存在するか否かをチェックする（ステップＳ１０５）。当該インターフェース及び方向ビットマップが存在する場合、ルックアップされた補助メモリ５００のインターフェース及び方向ビットマップをアップデートする（ステップＳ１０６）。
【００７０】
補助メモリをアップデートした後、エントリー管理部３２０は、インターフェースビットマップ及び方向ビットマップの全てのビットが０であるか否かをチェックし（ステップＳ１０７）、ビットマップがいずれも０である場合には、当該エントリーがこれ以上必要でないことを意味するので、内容ルールエントリーを削除し（ステップＳ１０８）、基準ルールエントリーを共に削除する（ステップＳ１０９）。一方、ステップＳ１０７において、インターフェース方向ビットマップの全てのビットが０でないと判断された場合には（ステップＳ１０７のＮｏ）、内容ルールエントリーをアップデートし（ステップＳ１１０）、基準ルールエントリーを共にアップデートする（ステップＳ１１１）。
【００７１】
また、ステップＳ１０４において、マッチングされる情報が存在しない場合には、ルールエントリーの削除が失敗したことをユーザに通知する（ステップＳ１２０）。
【００７２】
図１１は、本発明に係るエントリー削除処理によるターナリＣＡＭの変化態様を示すものである。
【００７３】
より詳細には、当該図１１は、優先順位１を有する５−タプル（ソースＩＰアドレス１０．１．１．１、目的地ＩＰアドレス１０．１．１．２、ソース及び目的地ポート２３、プロトコル種類が６）が、インターフェース０の外向に適用されたルールが削除された後のターナリＣＡＭのエントリーの変化態様を示すものである。
【００７４】
図１１から分かるように、補助メモリ５００のインターフェースビットマップ５１１のビット０が“１”から“０”に変更され、ターナリＣＡＭ４００の内容ルールエントリー４２０のインターフェース内向ビットマップ４２７のビット０の値が“Ｘ”から“０”の値に変更されたことが分かる。
【図面の簡単な説明】
【００７５】
【図１】検索キーとマスクを用いたターナリＣＡＭのエントリー情報検索メカニズムを示す図である。
【図２】従来のルーティングシステムにおけるターナリＣＡＭと補助メモリの構成を示す図である。
【図３】本発明に係るルーティングシステムのブロック構成図である。
【図４】本発明に係るターナリＣＡＭの各エントリーとそれに相当する補助メモリの構成を示す図である。
【図５】本発明に係るターナリＣＡＭのエントリー生成処理フローの好適な一実施例を示すフローチャートである。
【図６】本発明に係るエントリー生成によるターナリＣＡＭ構造の変化態様を示す図である。
【図７】本発明に係るターナリＣＡＭにルールが追加された場合のターナリＣＡＭ構造の変化態様を示す図である。
【図８】本発明に係るルーティングシステムにおけるルックアップ処理を説明するためのフローチャートである。
【図９】本発明に係るルックアップのための検索キー構造の一実施例を示す図である。
【図１０】本発明に係るターナリＣＡＭのエントリー削除処理フローの好適な一実施例を示すフローチャートである。
【図１１】本発明に係るエントリー削除によるターナリＣＡＭの変化態様を示す図である。
【符号の説明】
【００７６】
３００  ネットワークプロセッサー
３１０  インターフェース部
３２０  エントリー管理部
３３０  ルックアップ処理部
４００  ターナリＣＡＭ（Ternary ＣＡＭ）
５００  補助メモリ
４１０  基準ルールエントリー
４２０  コンテンツ（内容）ルールエントリー
４１６  優先順位フィールド
４２６  インターフェース内向ビットマップ
４２７  インターフェース外向ビットマップ
５１１  インターフェースビットマップ
５１２  方向ビットマップ
５２０  パケットフォワーディング情報
【図１】
2007202152.tif 000003
【図２】
2007202152.tif 000004
【図３】
2007202152.tif 000005
【図４】
2007202152.tif 000006
【図５】
2007202152.tif 000007
【図６】
2007202152.tif 000008
【図７】
2007202152.tif 000009
【図８】
2007202152.tif 000010
【図９】
2007202152.tif 000011
【図１０】
2007202152.tif 000012
【図１１】
2007202152.tif 000013