JP2007202152A - ルーティングシステム及びルーティングシステムのルールエントリー管理方法 - Google Patents

ルーティングシステム及びルーティングシステムのルールエントリー管理方法 Download PDF

Info

Publication number
JP2007202152A
JP2007202152A JP2007011409A JP2007011409A JP2007202152A JP 2007202152 A JP2007202152 A JP 2007202152A JP 2007011409 A JP2007011409 A JP 2007011409A JP 2007011409 A JP2007011409 A JP 2007011409A JP 2007202152 A JP2007202152 A JP 2007202152A
Authority
JP
Japan
Prior art keywords
rule
entry
information
interface
priority
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
JP2007011409A
Other languages
English (en)
Inventor
Yoon-Jin Ku
允 珍 具
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2007202152A publication Critical patent/JP2007202152A/ja
Abandoned legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/54Organization of routing tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/7453Address table lookup; Address filtering using hashing

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)

Abstract

【課題】ターナリCAMと補助メモリで構成されるルーティングテーブルのメモリ量を削減可能とするルーティングシステムのルールエントリー管理方法を提供する。
【解決手段】ルールエントリーを、基本情報及び優先順位情報を含む基準ルールエントリーと、詳細情報とを含む別途のコンテンツルールエントリーとに区分して格納するターナリCAMと、基準ルールエントリーに相当するインターフェースビットマップ情報及び方向ビットマップ情報と、コンテンツルールエントリーに相当するパケットフォワーディング情報とを格納する補助メモリとを備える。このため、同じ優先順位を有する少なくとも1つのルールが、多様なインターフェース上のパケットに適用される場合であっても、2つのエントリーだけで全てのルールを表現することができるので、ターナリCAMのメモリを有効に活用することができる。
【選択図】図5

Description

本発明は、ルーティングシステム及びルーティングシステムのルールエントリー管理方法に関する。
インターネットネットワーク環境下において、ルーティングルックアップ(Lookup)動作は、ネットワークプロセッサーやルータの性能上、主要なボトルネック現象を引き起こすものとなってきた。インターネットユーザが急激に増加するに従って、既存の階層的アドレス(Classful Address)体系は、CIDR(Classless InterDomain Routing)体系に代替された。
CIDR体系は、IPアドレス管理の面では、効率的であるが、LPM(Longest Prefix Matching)によりルーティングルックアップが次第に難しくなり、複雑になった。LPMにより引き起こされた問題は、(i)ルーティングテーブルサイズの拡大、(ii)インターネットトラフィックの増加、(iii)更なる高速のネットワークリンク要求、そして(iv)128ビットIPv6への移行の難しさなどである。このようなCIDRアドレス体系によるルーティングルックアップの難しさを解決するために、ソフトウェア的な方法とハードウェア的な方法が研究されてきた。
ソフトウェア的な方法は、圧縮アルゴリズムを用いてメモリ使用量を低減し、これをキャッシュやSRAMのような高速のメモリを用いてルーティングルックアップを向上させる方法を主として使用している。ソフトウェア的な方法は、マイクロプロセッサーの性能向上、キャッシュのヒット率増加、及びFSB(Front Side Bus)の高速化を達成することができる。しかしながら、このようなソフトウェア的な方法は、ルーティングアップデートの際、全体を再構成しなければならないアルゴリズムが多く、また、平均的な検索効率に優れているが、ツリー構造が密集している場合、検索効率が悪くなり、最悪の場合、32回のメモリアクセスが要求される。
ハードウェア的な方法は、一般的に、線形的にIPアドレスをメモリにマッピングする方法と、圧縮アルゴリズムをハードウェアで具現する方法などが挙げられる。ハードウェア的な方法は、パイプライニングによるルーティング速度の向上が可能であり、OSをポーティングする際にマイクロプロセッサーで具現する場合、演算やインストラクションによるルーティング速度が低下しないという長所を有している。
最近、ハードウェア具現として注目されるルックアップ方式には、CAM(Content Addressable Memory)を用いたルックアップ方式が挙げられる。CAMは、データを用いて当該データと関連した値が位置しているアドレスを検索する機能を有しており、セル(Cell)毎に比較のためのXOR演算を行うことができる特性を有する装置である。そして、CAMは、既存のRAM(Random Access Memory)構造とは異なって、外部の情報と格納された内容(コンテンツ)とを比較することによって、読み取り/書き込み処理を行う関連記憶装置(Associative Memory)構造となっている。CAMは、このような特性に因って、ネットワークルータでの検索エンジンやイメージプロセッサーまたは神経網の具体化に用いられている。
CAMは、1クロック以内で直ちに当該ポートなどに関する情報を把握することができる。特に、0と1以外にドントケア値(Don’t care)情報の格納が可能なターナリCAM(Ternary Content Addressable Memory;TCAM)を利用する場合、LPMをも比較的容易に具現が可能である。パケット区分のためには、目的(Destination)IPアドレスだけでなく、ソース(source)IPアドレス、ソース/目的ポート番号、プロトコルフィールド(5タプル(tuple))などを参照する必要があるが、これを予め設定された多様なパケットフィルタリング規則(ルール)と比較する処理をパケット毎に行わなければならないので、IPアドレスルックアップより複雑な処理となる。
ターナリCAMは、10〜20ナノ秒(nanoseconds)の非常に短い遅延度(latency)内に探そうとするキーとターナリCAM中の全てのエントリーとを並列的(parallel)に比較することで、ルックアップ結果検索を可能にする。ターナリCAMには、内容ビットストリング(Content Bit String)によるマスクビットストリング(Mask Bit String)が存在するので、内容ビットストリング全てを探索キー(Search Key)と比較する必要はなく、ターナリCAMは、ターナリCAM内の全てのエントリーの中で探索キーと最も速くマッチングされたエントリー情報を検索結果として通知する。
一般的に、ルーティングシステムは、ネットワークプロセッサー、ターナリCAM、補助メモリなどを含み、ネットワークプロセッサーは、インターフェース部、エントリー管理部、ルックアップ処理部をサブブロックとして含む。
インターフェース部は、ユーザからのCLI(Command Line Interface)を介して入力されたパケット分類(classification)またはパケットフィルタリング(filtering)のためのルール(Rule)情報と、ターナリCAMに任意のルールを追加/削除するための情報とを含むエントリー管理情報をエントリー管理部に提供する。ここで、ルールは、ルーティングシステムに伝送されたパケットのフォワーディング情報を示し、ルールに含まれる情報は、ユーザの必要に応じて異ならしめて構成されることができる。一般的に、ルールは、ソースIPアドレス、目的IPアドレス、受信ポート番号、送信ポート番号、プロトコルの種類、パケットのフォワーディング情報を含む。
エントリー管理部は、インターフェース部が提供するエントリー管理情報が任意のルールを追加するための情報である場合、ユーザから入力されたルールをターナリCAMのエントリー形式に変換し、ターナリCAMに格納する。一方、エントリー管理部は、インターフェース部から提供されたエントリー管理情報がターナリCAMに格納された任意のルールを削除するための情報である場合、ターナリCAMに格納された当該ルールを削除する。
ルックアップ処理部では、受信したパケットと受信パケットに対するインターフェース情報(例えば、インターフェースID、方向)を用いたTernary CAM(T−CAM)ルックアップを通じてパケットフォワーディング情報を取得する。ルックアップ処理部は、パケットフォワーディング情報に基づいてパケットをフィルタリングしたり、パケット分類による政策(policy)を適用する。
ターナリCAMは、複数のルールを格納し、補助メモリは、ターナリCAMが格納する各ルールに対応するパケットについてのフォワーディング情報を格納する。補助メモリは、ZBT(Zero Bus Turnaround)SRAMで具現されることが一般的である。ここで、パケットフォワーディング情報は、ネットワークプロセッサーが受信したパケットに対してのフォワーディングの許可(permit)/拒否((deny)/分類(classification))に対する情報などを含む。
図1は、検索キーとマスクを用いたターナリCAMのエントリー情報検索メカニズムを示すものである。
ターナリCAMは、優先順位が低くなる順にルールを格納し、所定の探索キーと格納された全てのエントリーとを同時に比較し、最も速くマッチングされたエントリーを探す。この過程で、ターナリCAMは、内容ビットストリング(Content Bit String)に従うマスクビットストリング(Mask Bit String)を有するので、内容ビットストリング全てを探索キー(Search Key)と比較する必要がないことは、前述した通りである。すなわち、図1のマスク部分のうち、ドントケア(Don’t Care)値を有する部分については、探索時に考慮する必要がない。探索キー(Search Key)のうちマスクのドントケア値部分を除いた部分だけに対して内容ビットストリングと比較した結果値が図1のデータアレイ(Data Array)部分の比較結果(Compare)として現れるようになる。
図2は、従来のルーティングシステムにおいてのターナリCAMと補助メモリの構造を示すものである。
図2に示すように、ターナリCAM100のルールと補助メモリ200のパケットフォワーディング情報が相互対応している。ターナリCAM100に格納された各ルールエントリーは、パケット分類やパケットフィルタリングのために典型的に要求される5−タプル(tuple)を含んでいることを確認することができ、それは、ソースIPアドレス111、目的IPアドレス112、受信ポート番号113、送信ポート番号114、プロトコル種類115などである。また、各ルールエントリーは、ルールが適用されるインターフェース情報、例えば、インターフェースID116と、方向(direction)117を含む。これは、ルールがルーティングシステム全体に適用される場合のみならず、特定のインターフェースの内向(ingress)または外向(egress)トラフィックに区別されて適用される場合も考慮するためである。仮に、ルールエントリーが5−タプルだけを含む場合、ルーティングシステムのルックアップ処理部は、受信パケットに対してターナリCAMルックアップ後、パケットフォワーディング情報を取得(獲得)するようになるので、当該パケットフォワーディング情報が当該インターフェースに適用されたものであるかを確認する過程が別途に必要となる。したがって、このような別途の過程に費やされる時間を低減し、且つ高速のルックアップを具現するために、一般的に、ルールエントリーには、5−タプルとルール適用の対象になるインターフェースに関する情報とを含むことになる。
一方、高速ルックアップのためには、各ルールエントリーにパケット分類やパケットフィルタリングのルール区分のためのフィールドを格納しなければならないが、ルールフィールドのビットサイズが小さくなく、ターナリCAMメモリサイズは制限されているので、ターナリCAM内にこのようなフィールドをどんな方法で格納するかは、重要な問題となる。
特に、パケット分類やパケットフィルタリングのルールは、5−タプル値のうちソース/目的プロトコルナンバーの値の特定の範囲内で変動が可能な形態を有するようにするので、ターナリCAMの内部でこの範囲を具現するためには、1つのルールを表現するために、1つ以上のエントリーが必要となるという問題点が発生する。しかも、1つのルールが多様なインターフェースの内向または外向トラフィックに適用されることを表示するためには、さらに多いエントリーが必要であると言える。
大韓民国特許出願第10−2004−54940号明細書
本発明は、前記問題点を解決するためになされたもので、その目的は、ターナリCAMのエントリーを2種類に区分し、それにより、補助メモリの格納部分をも変更することによって、効果的なエントリー管理を図ることができるルーティングシステム及びルーティングシステムのルールエントリー管理方法を提供することにある。
前記目的を達成するために、本発明に係るルーティングシステムは、ルールエントリーを、特定の優先順位を有するルールが適用されるパケットに対する基本情報及び優先順位情報を含む基準ルールエントリーと、同じ優先順位を有する少なくとも1つのルールが適用されるパケットに対する詳細情報を含む別途の内容ルール(コンテンツルール)エントリーとに区分して格納するターナリCAMと、基準ルールエントリーに相当するインターフェースビットマップ情報及び方向ビットマップ情報と、コンテンツルールエントリーに相当するパケットフォワーディング情報とを格納する補助メモリとを備えることを特徴とする。
なお、上記ターナリCAMの優先順位情報は、内向または外向インターフェースに適用されるパケット分類またはパケットフィルタリングのためのルール間の優先順位に関する情報であることが好ましい。
また、上記補助メモリのインターフェースビットマップ情報は、ターナリCAMの優先順位と同じ優先順位を有する少なくとも1つのルールが適用される少なくとも1つのインターフェースに関する情報であることが好ましい。
また、補助メモリの方向ビットマップ情報は、ターナリCAMの優先順位と同じ優先順位を有する少なくとも1つのルールが適用される少なくとも1つのインターフェースが外向であるか、又は内向であるかに関する情報を含むことが好ましい。
また、上記ルーティングシステムにおいて、上記コンテンツルールエントリーは、ルールが適用されるインターフェースが内向トラフィックを処理するかに関するインターフェース内向ビットマップと、ルールが適用されるインターフェースが外向トラフィックを処理するかに関する外向ビットマップと、を含むことが好ましい。
また、上記ルールが適用されるインターフェースが内向または外向トラフィックである場合、上記インターフェースのトラフィック方向に相当するビットをドントケア(Don’t care)値として設定することが好ましい。
また、上記ルーティングシステムは、ターナリCAMの基準ルールエントリーまたはコンテンツルールエントリーの追加または削除を行うエントリー管理部をさらに備えるように構成することができる。
また、上記ルーティングシステムは、受信したパケットと受信パケットに対するインターフェース情報とを用いて、ターナリCAMルックアップを通じてパケットフォワーディング情報を取得するルックアップ処理部をさらに備えるように構成することができる。
また、上記ルーティングシステムは、パケット分類、パケットフィルタリング、ルールの生成、及びルールの削除のためにユーザから入力されるルール情報を、エントリー管理部及びルックアップ処理部に伝送するユーザインターフェースをさらに備えるように構成することができる。
また、本発明の他の態様に係るターナリCAMは、特定の優先順位を有するルールが適用されるパケットに対する基本情報及び優先順位情報を含む基準ルールエントリーと、基準ルールエントリーの優先順位と同じ優先順位を有する少なくとも1つのルールが適用されるパケットに対する詳細情報を含む内容ルールエントリーと、を含むことを特徴とする。
また、本発明のさらに他の態様に係るルーティングルールエントリー管理方法は、特定の優先順位を有するルールが適用されるパケットに対する基本情報及び優先順位情報を含むターナリCAMの基準ルールエントリーを生成する段階と、基準ルールエントリーの優先順位と同じ優先順位を有する少なくとも1つのルールが適用されるパケットに対する詳細情報を含むターナリCAMの内容ルール(コンテンツルール)エントリーを生成する段階と、基準ルールエントリーに相当するインターフェースビットマップ情報及び方向ビットマップ情報と、内容ルールエントリーに相当するパケットフォワーディング情報とを補助メモリに格納する段階と、を有することを特徴とする。
なお、上記ルーティングルールエントリー管理方法は、新しいルールに対する追加要請を受信する場合、基準ルールエントリーに対する検索キーを生成する段階と、検索キーを用いてターナリCAMをルックアップし、マッチングされるエントリーが存在するか否かを検索し、マッチングされるエントリーが存在しない場合、追加要請されたルールに対する基準ルールエントリーと内容ルールエントリーを生成する段階と、をさらに備えるように構成することができる。
また、上記ルーティングルールエントリー管理方法は、特定のルールに対する削除要請が入力される場合、基準ルールエントリーに対する検索キーを生成する段階と、検索キーを用いてターナリCAMをルックアップし、マッチングされるエントリーが存在するか否かを検索し、マッチングされるエントリーが存在する場合、削除要請されたルールに対する基準ルールエントリーと内容ルールエントリーをアップデートし、エントリーのインターフェース及び方向ビットマップの全てのビットが0である場合に、基準ルールエントリー及び内容ルールエントリーを削除する段階と、をさらに備えるように構成することができる。
また、上記ルーティングルールエントリー管理方法は、ルーティングルックアップのためのパケットが入力された場合、内容ルールエントリーに対する検索キーを生成する段階と、検索キーを用いてターナリCAMをルックアップし、マッチングされるエントリーが存在する場合、補助メモリが格納するフォワーディング情報に基づいて受信されたパケットに対するフォワーディングを行う段階と、をさらに備えるように構成することができる。
本発明は、同じ優先順位を有する少なくとも1つのルールが多様なインターフェース上のパケットに適用される場合に、2つのエントリーだけで全てのルールを表現することが可能となるため、ターナリCAMのメモリ活用側面において有効である。
以下、図面を参照して、本発明に係るルーティングシステム及びルーティングシステムのルールエントリー管理方法の好適な実施例を詳細に説明する。
図3は、本発明に係るルーティングシステムのブロック構成を示している。
図3に示したように、ルーティングシステムは、ネットワークプロセッサー300、ターナリCAM400、補助メモリ500などを含み、ネットワークプロセッサー300は、インターフェース部310、エントリー管理部320、ルックアップ処理部330をサブブロックとして含む。
インターフェース部310は、ユーザから入力されたパケット分類(classification)またはパケットフィルタリングのためルール(Rule)情報と、ターナリCAMに任意のルールを追加/削除するための情報を含むエントリー管理情報をエントリー管理部320に提供する。
エントリー管理部320は、インターフェース部310が提供するエントリー管理情報が任意のルールを追加するための情報である場合、ユーザから入力されたルールをターナリCAM400のエントリー形式に変換し、ターナリCAM400に格納する。また、エントリー管理部320は、インターフェース部310から提供されたエントリー管理情報がターナリCAM400に格納された任意のルールを削除するための情報である場合、ターナリCAM400に格納された当該ルールを削除する。ルールを生成、追加または削除するための検索を行うために、エントリー管理部320が使用する検索キーは、基準ルールエントリーに対して1つである。基準ルールエントリーについては、図4を参照して詳細に説明する。
ルックアップ処理部330では、受信したパケットと受信パケットに対するインターフェース情報とを用い、ターナリCAM400のルックアップを通じてパケットフォワーディング情報を取得する。ここで、ルックアップ処理部330が使用する検索キーは、内容ルール(コンテンツルール)エントリーのための検索キーである。内容ルールエントリーについては、後述する。
ターナリCAM400は、基準ルールエントリーと内容ルールエントリーとを含み、補助メモリ500は、ターナリCAMが格納する各ルールに対応するパケットのフォワーディング情報を格納する。ターナリCAM400と補助メモリ500の構造については、後述する。
図4は、本発明に係るターナリCAMの各エントリーとそれに相当する補助メモリの構造を示している。
本発明において、既存のルーティングシステムと大きく異なることは、ターナリCAMと補助メモリの構成である。図4では、本発明に係るターナリCAM400と補助メモリ500の構成を詳細に説明するために、本発明のターナリCAMと補助メモリの構成だけを示したものであり、ルーティングシステムの他の構成は省略している。
本発明に係るターナリCAM400が格納するルールエントリーは、2つの種類がある。1つは、基準ルールエントリー410であり、他の1つは、内容ルールエントリー420である。基準ルールエントリー410は、同じ優先順位(priority)を有するパケット分類やパケットフィルタリングのためのルールである5−タプルが初期に生成され、ターナリCAMに格納される場合のエントリーの形式を示しており、これに対して、内容ルールエントリー420は、対応する基準ルールエントリー410の優先順位に該当するルールエントリーを格納する役目をする。
基準ルールエントリー410は、一般的なルールエントリーと同様に、ソースIPアドレス411、目的IPアドレス412、受信ポート番号413、送信ポート番号414、プロトコル種類415に関するフィールドを含む。しかし、基準ルールエントリー410は、一般的な従来のルールエントリーとは異なり、インターフェースフィールドと方向フィールドを含んでおらず、優先順位フィールド416を含むように構成されている。そして、本発明に係る優先順位フィールド416は、32ビットに設定されており、内向または外向インターフェースに適用されたパケット分類やパケットフィルタリングのためのルール間の優先順位を示している。
また、補助メモリ500には、インターフェースビットマップ(Interface Bit Map)情報511及び方向ビットマップ(Direction Bit Map)情報512が格納される。インターフェースビットマップ情報511及び方向ビットマップ情報512は、多様なインターフェース及び方向に適用された同じ優先順位を有するルールにおける設定情報を示す。インターフェースビットマップ511は、16ビット各々のビットが1つのインターフェースを指し示すものとして設定されていて、ビットの値が0なら、5−タプルが当該インターフェースに適用されないことを意味する。インターフェースビットの値が“1”なら、5−タプルが当該インターフェースに適用されていることを意味する。図4では、インターフェースビットマップに16ビットが割り当てられており、総16個のインターフェースを表現することが限界ではあるが、ネットワークの特性によって、インターフェースビットマップの個数を増加または減少する調整が可能である。
方向ビットマップ512の各ビットは、インターフェースビットマップ511の各ビットに対応し、インターフェースビットマップ511のビット0に対するインターフェース方向情報は、方向ビットマップ512のビット0がそれを示す。方向ビットマップの各ビットの値が“0”なら、内向トラフィックに5−タプルが適用されたものであり、方向ビットマップの各ビットの値が“1”なら、外向トラフィックに5−タプルが適用されたものである。
一方、内容ルールエントリー420は、5−タプル421、422、423、424、425と、インターフェース内向(Ingress)ビットマップ426及びインターフェース外向(egress)ビットマップ427で構成される。インターフェース内向ビットマップ426及びインターフェース外向ビットマップ427は、5−タプルがどのインターフェースの内向トラフィックまたは外向トラフィックに適用されるかを示す。特定の内向ビットが“無定義(ドントケア(Don’t care))”値を有する場合、当該インターフェースの内向にルールが適用され、特定の外向ビットが“無定義(ドントケア(Don’t care))”値を有する場合、当該インターフェースの外向トラフィックにルールが適用されることを示す。また、インターフェース内向ビットマップ426またはインターフェース外向ビットマップ427のいずれかのビットが“0”を有する場合、インターフェースにはルールが適用されないことを意味する。内容ルールエントリー420と関連して、補助メモリ500には、パケットフォワーディング情報520が格納されるが、この情報は、当該ルールが適用される受信パケットをフォワーディングするための情報である。
図4のようなターナリCAM及び補助メモリ構造を利用する場合、同じ優先順位を有するルールが適用される16個のインターフェースに対し、2つのルールエントリーを必要するだけとなる。したがって、従来のルーティングシステムでは16個のインターフェースに対して16個のルールエントリーが必要であったことに比べて、効果的なメモリ空間活用方法であると言える。
図5は、本発明に係るエントリー管理部320におけるターナリCAMのエントリー生成処理フローの好適な一実施例を示したフローチャートである。
ルーティングシステムにおいて新しいルールを受信した場合(ステップS501)、エントリー管理部320は、まず、基準ルールエントリーに対する検索キーを生成する(ステップS502)。ルーティングシステムは、生成された検索キーでターナリCAMをルックアップし(ステップS503)、マッチングされるエントリーが存在するか否かを検索し(ステップS504)、マッチングされる情報が存在する場合、ルックアップされたインターフェースビットマップ及び方向ビットマップに受信ルールのインターフェース及び方向情報が存在するか否かをチェックする(ステップS505)。当該インターフェース及び方向ビットマップが存在する場合、新しいルールを追加する処理及びアップデート処理が必要ないので、ルールエントリー追加失敗メッセージを伝送し(ステップS506)、処理を終了する。
一方、ステップS505において、ルックアップされたインターフェースビットマップ及び方向ビットマップに受信ルールのインターフェース及び方向情報が存在しない場合には(ステップS505のNo)、当該内容ルールエントリーをアップデートし(ステップS507)、基準ルールエントリーもアップデートする(ステップS508)。
また、ステップS504において、マッチングされる情報が存在しない場合(ステップS504のNo)、エントリー管理部320は、受信されたルールに合致するように、基準ルールエントリーを生成し(ステップS510)、生成された基準ルールエントリーをターナリCAMに追加する(ステップS511)。その後、基準ルールエントリーに相当する内容ルールエントリーを生成し(ステップS512)、ターナリCAMにエントリーを追加する(ステップS513)。
図6は、本発明に係るエントリー生成処理によるターナリCAM構造の変化態様を示すものである。
初期に、優先順位1を有するルールがルーティングシステムのインターフェース部310に受信される場合を想定する。ここで、受信されたルールは、ソースIPアドレスが10.1.1.1、目的地IPアドレスが10.1.1.2、ソース及び目的地ポートが各々23、プロトコル種類が6である5−タプルインターフェース1、外向トラフィックに適用されるとする。
図6の基準ルールエントリー410のソースIPアドレス411には、“10.1.1.1”、目的IPアドレス412には、“10.1.1.2”、受信ポート番号413には、“23”、送信ポート番号414には、“23”、プロトコル種類415には、“6”の値が各々設定されていることが分かる。また、優先順位フィールド416には、“1”が設定されている。また、補助メモリ500のインターフェースビットマップ511のビット0に“1”の値が設定され、インターフェース1に対するルールであることが分かり、方向ビットマップ(Direction Bit Map)512のビット0に“1”の値が設定され、外向トラフィックであることが分かる。
一方、内容ルールエントリー420のインターフェース内向ビットマップ426は、全てのビットが“0”に設定されており、インターフェース外向ビットマップ427のビット0に“X(無定義)”、すなわちドントケア値が設定され、インターフェース1に対する外向トラフィックに当該ルールが適用されることが分かる。
図7は、本発明によりターナリCAMにルールが追加された場合のターナリCAM構造の変化態様を示すものである。
図7は、図6と同様のターナリCAM構造で、優先順位1を有する5−タプル(ソースIPアドレス10.1.1.1、目的地IPアドレス10.1.1.2、ソース及び目的地ポート23、プロトコル種類が6である)が、インターフェース1の内向に適用された場合の、TCAMの変化様態を示すものである。
図7の構造と図6とを比較すると、補助メモリ500のインターフェースビットマップ511のビット1の値が“0”から“1”に変更され、ターナリCAM400の内容ルールエントリー420のインターフェース内向ビットマップ426のビット1の値が“0”から“X(無定義)”値に変更されたことが分かる。これは、当該ルールがインターフェース0の外向トラフィックのみならず、インターフェース1の内向トラフィックにも適用されることを示している。
図8は、本発明に係るルーティングシステムのルックアップ処理部330におけるルックアップ処理フローを説明するためのフローチャートである。
ルーティングシステムにおいてパケットを受信した場合(ステップS801)、内容ルールエントリーに対する検索キーを生成する(ステップS802)。内容ルールエントリーに対する検索キーの構造については、図9で詳細に説明する。ルーティングシステムは、生成された検索キーを用いてターナリCAMをルックアップし(ステップS803)、マッチングされるエントリーが存在するか否かを検索する(ステップS804)。ルーティングシステムは、マッチングされる情報が存在する場合(ステップS804のYes)、ルックアップされたフォワーディング情報に基づいてパケットフォワーディングを行う(ステップS805)。
なお、ステップS804において、マッチングされる情報が存在しない場合には、内容ルールエントリールックアップに失敗したことをユーザに通知する(ステップS806)。
図9は、本発明に係るルックアップのための検索キー構造の一実施例を示す。
図9に示したパケットフォワーディングのためのルックアップのための検索キーは、前述したようなターナリCAM400の内容ルールエントリー420の構造と同様である。これは、パケットフォワーディングのためには、受信されたパケットと内容ルールエントリー420に格納された内容とを比較しなければならないが、内容ルールエントリー420が補助メモリ500のパケットフォワーディング情報520に連動しているからである。
図9では、ソースIPアドレス“10.1.1.1”、目的地IPアドレス“10.1.1.2”、ソース及び目的地ポート23、プロトコル種類6であるインターフェース0の内向トラフィックが受信された場合の検索キーの構造を示している。図9のような検索キーは、ターナリCAMの内容ルールエントリーと比較され、マッチングされる情報が存在する場合、ルックアップされたフォワーディング情報に基づいて当該パケットに対するパケットフォワーディングが行われる。
図10は、本発明に係るエントリー管理部320におけるターナリCAMのエントリー削除処理フローの好適な一実施例を示すフローチャートである。
ルーティングシステムにおいてユーザにより削除要求されたルールに対する情報を受信する場合(ステップS101)、まずエントリー管理部320は、基準ルールエントリーに対する検索キーを生成する(ステップS102)。ルーティングシステムは、生成された検索キーでターナリCAM400をルックアップし(ステップS103)、マッチングされるエントリーが存在するか否かを検索し(ステップS104)、マッチングされる情報が存在する場合、ルックアップされたインターフェースビットマップ及び方向ビットマップに受信ルールのインターフェース及び方向情報が存在するか否かをチェックする(ステップS105)。当該インターフェース及び方向ビットマップが存在する場合、ルックアップされた補助メモリ500のインターフェース及び方向ビットマップをアップデートする(ステップS106)。
補助メモリをアップデートした後、エントリー管理部320は、インターフェースビットマップ及び方向ビットマップの全てのビットが0であるか否かをチェックし(ステップS107)、ビットマップがいずれも0である場合には、当該エントリーがこれ以上必要でないことを意味するので、内容ルールエントリーを削除し(ステップS108)、基準ルールエントリーを共に削除する(ステップS109)。一方、ステップS107において、インターフェース方向ビットマップの全てのビットが0でないと判断された場合には(ステップS107のNo)、内容ルールエントリーをアップデートし(ステップS110)、基準ルールエントリーを共にアップデートする(ステップS111)。
また、ステップS104において、マッチングされる情報が存在しない場合には、ルールエントリーの削除が失敗したことをユーザに通知する(ステップS120)。
図11は、本発明に係るエントリー削除処理によるターナリCAMの変化態様を示すものである。
より詳細には、当該図11は、優先順位1を有する5−タプル(ソースIPアドレス10.1.1.1、目的地IPアドレス10.1.1.2、ソース及び目的地ポート23、プロトコル種類が6)が、インターフェース0の外向に適用されたルールが削除された後のターナリCAMのエントリーの変化態様を示すものである。
図11から分かるように、補助メモリ500のインターフェースビットマップ511のビット0が“1”から“0”に変更され、ターナリCAM400の内容ルールエントリー420のインターフェース内向ビットマップ427のビット0の値が“X”から“0”の値に変更されたことが分かる。
検索キーとマスクを用いたターナリCAMのエントリー情報検索メカニズムを示す図である。 従来のルーティングシステムにおけるターナリCAMと補助メモリの構成を示す図である。 本発明に係るルーティングシステムのブロック構成図である。 本発明に係るターナリCAMの各エントリーとそれに相当する補助メモリの構成を示す図である。 本発明に係るターナリCAMのエントリー生成処理フローの好適な一実施例を示すフローチャートである。 本発明に係るエントリー生成によるターナリCAM構造の変化態様を示す図である。 本発明に係るターナリCAMにルールが追加された場合のターナリCAM構造の変化態様を示す図である。 本発明に係るルーティングシステムにおけるルックアップ処理を説明するためのフローチャートである。 本発明に係るルックアップのための検索キー構造の一実施例を示す図である。 本発明に係るターナリCAMのエントリー削除処理フローの好適な一実施例を示すフローチャートである。 本発明に係るエントリー削除によるターナリCAMの変化態様を示す図である。
符号の説明
300 ネットワークプロセッサー
310 インターフェース部
320 エントリー管理部
330 ルックアップ処理部
400 ターナリCAM(Ternary CAM)
500 補助メモリ
410 基準ルールエントリー
420 コンテンツ(内容)ルールエントリー
416 優先順位フィールド
426 インターフェース内向ビットマップ
427 インターフェース外向ビットマップ
511 インターフェースビットマップ
512 方向ビットマップ
520 パケットフォワーディング情報

Claims (20)

  1. ルール(rule)エントリーを、特定の優先順位を有するルールが適用されるパケットに対する基本情報及び優先順位情報を含む基準ルールエントリーと、
    同じ優先順位を有する少なくとも1つのルールが適用されるパケットに対する詳細情報を含む別途のコンテンツルールエントリーとに区分して格納するターナリCAM(Ternary Content Addressable Memory;TCAM)と、
    前記基準ルールエントリーに相当するインターフェースビットマップ情報及び方向(direction)ビットマップ情報と、前記コンテンツルールエントリーに相当するパケットフォワーディング情報とを格納する補助メモリと、を備えることを特徴とするルーティングシステム。
  2. 前記ターナリCAMの優先順位情報は、内向または外向インターフェースに適用されるパケット分類またはパケットフィルタリングのためのルール間の優先順位に関する情報であることを特徴とする請求項1に記載のルーティングシステム。
  3. 前記補助メモリのインターフェースビットマップ情報は、前記ターナリCAMの優先順位と同じ優先順位を有する少なくとも1つのルールが適用される少なくとも1つのインターフェースに関する情報であることを特徴とする請求項1に記載のルーティングシステム。
  4. 前記補助メモリに格納された前記方向ビットマップ情報は、前記ターナリCAMの優先順位と同じ優先順位を有する少なくとも1つのルールが適用される少なくとも1つのインターフェースが外向(egress)であるか又は内向(ingress)であるかに関する情報を含むことを特徴とする請求項3に記載のルーティングシステム。
  5. 前記コンテンツルールエントリーは、
    ルールが適用されるインターフェースが内向トラフィックを処理するかに関するインターフェース内向ビットマップと、
    ルールが適用されるインターフェースが外向トラフィックを処理するかに関する外向ビットマップと、を含むことを特徴とする請求項1に記載のルーティングシステム。
  6. 前記ルールが適用されるインターフェースが内向または外向トラフィックを処理する場合、該当するインターフェースのトラフィック方向に対応するビットがドントケア(Don’t care)値に設定されることを特徴とする請求項5に記載のルーティングシステム。
  7. 前記ターナリCAMの基準ルールエントリーまたはコンテンツルールエントリーの追加または削除を行うエントリー管理部をさらに備えることを特徴とする請求項1に記載のルーティングシステム。
  8. 受信したパケットと受信パケットについてのインターフェース情報とを用い、ターナリCAMルックアップを通じてパケットフォワーディング情報を取得するルックアップ処理部をさらに備えることを特徴とする請求項1に記載のルーティングシステム。
  9. パケット分類、パケットフィルタリング、ルールの生成、及びルース削除処理のためにユーザから入力されるルール情報を、前記エントリー管理部及び前記ルックアップ処理部に伝送するユーザインターフェースをさらに備えることを特徴とする請求項7又は8に記載のルーティングシステム。
  10. 特定の優先順位を有するルールが適用されるパケットに対する基本情報及び優先順位情報を含む基準ルールエントリーと、
    前記基準ルールエントリーの優先順位と同じ優先順位を有する少なくとも1つのルールが適用されるパケットに対する詳細情報を含むコンテンツルールエントリーと、を備えることを特徴とするターナリCAM。
  11. 前記優先順位情報は、内向または外向インターフェースに適用されるパケット分類またはパケットフィルタリングのためのルール間の優先順位に関する情報であることを特徴とする請求項10に記載のターナリCAM。
  12. 前記コンテンツルールエントリーは、ルールが適用されるインターフェースが内向トラフィックを処理するかに関するインターフェース内向ビットマップと、
    ルールが適用されるインターフェースが外向トラフィックを処理するかに関する外向ビットマップと、を含むことを特徴とする請求項10に記載のターナリCAM。
  13. 前記ルールが適用されるインターフェースが内向または外向トラフィックを処理する場合、前記インターフェースのトラフィック方向に対応するビットがドントケア(Don’t care)値に設定されることを特徴とする請求項10に記載のターナリCAM。
  14. ルーティングのためのルールエントリー管理方法であって、
    特定の優先順位を有するルールが適用されるパケットに対する基本情報及び優先順位情報を含むターナリCAMの基準ルールエントリーを生成する段階と、
    前記基準ルールエントリーの優先順位と同じ優先順位を有する少なくとも1つのルールが適用されるパケットに対する詳細情報を含む前記ターナリCAMのコンテンツルールエントリーを生成する段階と、
    前記基準ルールエントリーに相当するインターフェースビットマップ情報及び方向ビットマップ情報と、前記コンテンツルールエントリーに相当するパケットフォワーディング情報とを補助メモリに格納する段階と、を有することを特徴とするルーティングルールエントリー管理方法。
  15. 前記ターナリCAMの優先順位情報は、内向または外向インターフェースに適用されるパケット分類またはパケットフィルタリングのためのルール間の優先順位に関する情報であることを特徴とする請求項14に記載のルーティングルールエントリー管理方法。
  16. 前記インターフェースビットマップ情報は、前記ターナリCAMの優先順位と同じ優先順位を有する少なくとも1つのルールが適用される少なくとも1つのインターフェースに関する情報であることを特徴とする請求項14に記載のルーティングルールエントリー管理方法。
  17. 前記補助メモリの前記方向ビットマップ情報は、前記ターナリCAMの優先順位と同じ優先順位を有する少なくとも1つのルールが適用される少なくとも1つのインターフェースが外向(egress)であるか又は内向(ingress)であるかに関する情報を含むことを特徴とする請求項14に記載のルーティングルールエントリー管理方法。
  18. 新しいルールの追加要請を受信した場合に、
    前記基準ルールエントリーに対する検索キーを生成する段階と、
    前記検索キーを用いて前記ターナリCAMをルックアップし、マッチングされるエントリーが存在するか否かを検索し、かつマッチングされるエントリーが存在しない場合に、前記追加要請されたルールに対する前記基準ルールエントリーと前記コンテンツルールエントリーとを生成する段階と、をさらに有することを特徴とする請求項14に記載のルーティングルールエントリー管理方法。
  19. 特定のルールに対する削除要請が入力された場合に、
    前記基準ルールエントリーに対する検索キーを生成する段階と、
    前記検索キーを用いて前記ターナリCAMをルックアップし、マッチングされるエントリーが存在するか否かを検索し、マッチングされるエントリーが存在する場合に、前記削除要請されたルールに対する基準ルールエントリーとコンテンツルールエントリーをアップデートし、前記エントリーのインターフェース及び方向ビットマップの全てのビットが0である場合、前記基準ルールエントリー及び前記コンテンツルールエントリーを削除する段階と、をさらに有することを特徴とする請求項14に記載のルーティングルールエントリー管理方法。
  20. ルーティングルックアップのためのパケットが受信された場合に、
    前記コンテンツルールエントリーに対する検索キーを生成する段階と、
    前記検索キーを用いて前記ターナリCAMをルックアップし、マッチングされるエントリーが存在する場合、前記補助メモリに格納されたフォワーディング情報に基づいて前記受信されたパケットに対するフォワーディングを行う段階と、をさらに有することを特徴とする請求項14に記載のルーティングルールエントリー管理方法。
JP2007011409A 2006-01-25 2007-01-22 ルーティングシステム及びルーティングシステムのルールエントリー管理方法 Abandoned JP2007202152A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR20060007851A KR100705593B1 (ko) 2006-01-25 2006-01-25 라우팅 시스템 및 라우팅 시스템의 룰 엔트리 관리 방법

Publications (1)

Publication Number Publication Date
JP2007202152A true JP2007202152A (ja) 2007-08-09

Family

ID=38161350

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007011409A Abandoned JP2007202152A (ja) 2006-01-25 2007-01-22 ルーティングシステム及びルーティングシステムのルールエントリー管理方法

Country Status (4)

Country Link
US (1) US20070171911A1 (ja)
JP (1) JP2007202152A (ja)
KR (1) KR100705593B1 (ja)
CN (1) CN101009656A (ja)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0524126D0 (en) * 2005-11-26 2006-01-04 Cogniscience Ltd Data transmission method
US8250175B2 (en) * 2006-08-02 2012-08-21 Cisco Technology, Inc. Techniques for remapping content requests
US8094659B1 (en) * 2007-07-09 2012-01-10 Marvell Israel (M.I.S.L) Ltd. Policy-based virtual routing and forwarding (VRF) assignment
CN101217468A (zh) * 2007-12-28 2008-07-09 华为技术有限公司 路由查表系统、三态内容寻址存储器和网络处理器
US8040882B2 (en) * 2008-02-14 2011-10-18 Broadcom Corporation Efficient key sequencer
JP5104514B2 (ja) * 2008-04-21 2012-12-19 富士通株式会社 パケット転送制御装置およびパケット転送制御方法
CN101350771B (zh) * 2008-07-07 2010-12-29 中国人民解放军国防科学技术大学 三态内容可寻址存储器条目免排序存储方法及其系统
CN102299853B (zh) * 2011-09-05 2014-08-27 神州数码网络(北京)有限公司 一种实现交换机资源有效利用的方法
US9306840B2 (en) * 2012-09-26 2016-04-05 Alcatel Lucent Securing software defined networks via flow deflection
CN103970829B (zh) * 2013-01-30 2018-09-14 马维尔以色列(M.I.S.L.)有限公司 用于tcam共享的架构
US9130819B2 (en) * 2013-03-15 2015-09-08 Cavium, Inc. Method and apparatus for scheduling rule matching in a processor
CN104426770A (zh) * 2013-09-09 2015-03-18 中兴通讯股份有限公司 路由查找方法及装置、B-Tree树结构的构建方法
CN103702301A (zh) * 2013-12-31 2014-04-02 大连环宇移动科技有限公司 一种针对网间短信业务的实时感控系统
CN104038423B (zh) * 2014-05-29 2017-11-14 新华三技术有限公司 一种Open flow流表刷新方法及路由设备
US9692684B2 (en) * 2014-09-05 2017-06-27 Telefonaktiebolaget L M Ericsson (Publ) Forwarding table precedence in SDN
CN104901947B (zh) * 2015-04-13 2017-11-24 国家计算机网络与信息安全管理中心 一种基于tcam连续数值匹配方法和装置
US10115463B1 (en) * 2015-06-25 2018-10-30 Xilinx, Inc. Verification of a RAM-based TCAM
CN105376241B (zh) * 2015-11-27 2019-03-19 天津光电通信技术有限公司 一种应用于过滤分流设备的规则库管理模块
TWI626837B (zh) * 2016-12-01 2018-06-11 財團法人工業技術研究院 封包傳遞方法、封包傳遞裝置及非暫態電腦可讀取媒體
WO2018220426A1 (en) * 2017-05-31 2018-12-06 Telefonaktiebolaget Lm Ericsson (Publ) Method and system for packet processing of a distributed virtual network function (vnf)
US11018960B2 (en) * 2019-03-06 2021-05-25 Cisco Technology, Inc. Accelerated time series analysis in a network
CN112187635B (zh) * 2019-07-01 2023-02-03 中兴通讯股份有限公司 报文转发方法及装置
CN112216327A (zh) * 2019-07-11 2021-01-12 深圳市中兴微电子技术有限公司 范围信息的编码、匹配方法和计算机存储介质
CN113923002B (zh) * 2021-09-29 2024-04-19 山石网科通信技术股份有限公司 计算机网络入侵防御方法、装置、存储介质及处理器

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6052683A (en) * 1998-02-24 2000-04-18 Nortel Networks Corporation Address lookup in packet data communication networks
KR100428247B1 (ko) * 2001-03-22 2004-04-27 조태원 아이피 주소룩업에서 고속 엘피엠 탐색을 위한 파이프라인씨에이엠의 구성 방법
US6886073B2 (en) * 2002-06-18 2005-04-26 International Business Machines Corporation Method and system for performing range rule testing in a ternary content addressable memory
KR20020081569A (ko) * 2002-09-04 2002-10-28 (주)시큐어베이스 Ternary CAM(Content Addressable Memory)을 이용하는네트웍 장치에서의 CAM내 동일한 엔트리 크기를 가지는다수의 테이블 관리 방법
JP2007508653A (ja) * 2003-10-11 2007-04-05 スパンス ロジック インコーポレイテッド 高速テーブルルックアップ用メモリおよび低消費電力機構

Also Published As

Publication number Publication date
CN101009656A (zh) 2007-08-01
US20070171911A1 (en) 2007-07-26
KR100705593B1 (ko) 2007-04-09

Similar Documents

Publication Publication Date Title
JP2007202152A (ja) ルーティングシステム及びルーティングシステムのルールエントリー管理方法
US20080192754A1 (en) Routing system and method for managing rule entries of ternary content addressable memory in the same
JP5624331B2 (ja) コンピュータ実施方法
JP3790217B2 (ja) 高速インターネットプロトコルルートルックアップ遂行及びルーティング/フォワーディングテーブル管理のための装置及び方法
EP2627047B1 (en) Flow cache mechanism for performing packet flow lookups in a network device
US20170085482A1 (en) Exact match hash lookup databases in network switch devices
US10158656B2 (en) Method and apparatus for preventing insertion of malicious content at a named data network router
US8799507B2 (en) Longest prefix match searches with variable numbers of prefixes
WO2014127605A1 (zh) 基于哈希表和tcam表的mac地址硬件学习方法及系统
US20060233173A1 (en) Policy-based processing of packets
Srinivasan A packet classification and filter management system
JP2006287932A (ja) ネットワーク接続テーブルを提供するための方法および装置
US20180097908A1 (en) Cache management on high availability routers in a content centric network
JP3881663B2 (ja) フィールドレベルツリーを用いたパケット分類装置及び方法
WO2006002220A2 (en) Security association configuration in virtual private networks
US10700975B2 (en) Systems and methods for optimized route caching
US10637778B1 (en) Systems, methods and devices for scalable expansion of rules-based forwarding paths in network communications devices for distributed computing systems
CN106789727B (zh) 报文分类方法和装置
US20170012874A1 (en) Software router and methods for looking up routing table and for updating routing entry of the software router
US8166536B1 (en) Transformation of network filter expressions to a content addressable memory format
US20170237691A1 (en) Apparatus and method for supporting multiple virtual switch instances on a network switch
US11368354B2 (en) Multi-result lookups
KR100493099B1 (ko) 고속 인터넷프로토콜 라우터의 라우팅/포워딩 룩업 및라우팅 테이블 관리
JP2012216959A (ja) ネットワークアドレス参照方法及び装置及びプログラム
JP2001339436A (ja) プレフィックスを含む複数アドレスによる連想情報探索方法及び装置

Legal Events

Date Code Title Description
A762 Written abandonment of application

Free format text: JAPANESE INTERMEDIATE CODE: A762

Effective date: 20090706