[go: up one dir, main page]

JP4556761B2 - パケット転送装置 - Google Patents

パケット転送装置 Download PDF

Info

Publication number
JP4556761B2
JP4556761B2 JP2005134733A JP2005134733A JP4556761B2 JP 4556761 B2 JP4556761 B2 JP 4556761B2 JP 2005134733 A JP2005134733 A JP 2005134733A JP 2005134733 A JP2005134733 A JP 2005134733A JP 4556761 B2 JP4556761 B2 JP 4556761B2
Authority
JP
Japan
Prior art keywords
routing table
packet
information
entry
transfer
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.)
Expired - Fee Related
Application number
JP2005134733A
Other languages
English (en)
Other versions
JP2006313949A (ja
Inventor
通貴 奥野
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2005134733A priority Critical patent/JP4556761B2/ja
Priority to US11/411,023 priority patent/US7630373B2/en
Priority to CNA2006100771692A priority patent/CN1859316A/zh
Publication of JP2006313949A publication Critical patent/JP2006313949A/ja
Application granted granted Critical
Publication of JP4556761B2 publication Critical patent/JP4556761B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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
    • 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/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/60Router architectures
    • 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/742Route cache; Operation thereof

Landscapes

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

Description

本発明は、ネットワーク中継点に設置されパケット転送装置に利用される、ルーティングテーブル(経路検索テーブル)の構成方法に関する。
近年のインターネットトラフィックの急速な増加により、ネットワーク中継点に設置されるパケット転送装置には、より高速なパケット転送技術が要求されている。パケット転送装置は、到着したパケットを自身が接続しているどのネットワークへ転送すべきかを、到着パケットが保持する宛先アドレスによって判断し、転送する。前記の宛先アドレスにより、パケットの転送先を決定するために、パケット転送装置はルーティングテーブル(経路検索テーブル)を利用する。
ルーティングテーブルは、IPアドレスの上位ビットでありネットワークを表すプレフィックスと、このプレフィックスに対応する次ホップIPアドレスと出力回線番号から成る経路エントリを複数格納する。パケット転送装置は、パケットが入力されるとルーティングテーブル内のプレフィックスと、パケット内の宛先IPアドレスの上位ビットが一致する経路エントリを探し出し、一致した経路エントリの内容を入力パケットの次ホップIPアドレスおよび出力回線番号と判定する。
前記の宛先検索動作は、パケット転送処理のボトルネックとなる処理であり、ネットワークの回線速度が向上するに連れより顕著な問題となっている。さらに、近年のインターネットトラフィックの急速な増加により、ルーティングテーブルに必要な登録エントリ数が急増していることもパケット転送装置にとって問題である。そこで、非特許文献1に示されるように、IPアドレス空間を有効利用するために、任意のプレフィックス位置によりIPアドレスをネットワークアドレスとホストアドレスに分割するCIDR(Classless Inter−Domain Routing)が1990年中頃に導入された。CIDRにより、複数のエントリを単一のエントリで表現可能になったため、ルーティングテーブルの必要エントリ数の増加率はやや穏やかになったものの、http://bgp.potaroo.net/index-bgp.htmlに示されるIPv4 BGP(Border Gateway Protocol) Reportによれば、ネットワークコアのパケット転送装置に必要なルーティングテーブルエントリ数は2004年末時点で約18万エントリ強に達している。
CIDRの導入は、ルーティングテーブルの必要エントリ数を削減できるメリットをもたらしたが、ロンゲスト・プレフィックス・マッチ(最長一致検索)を必要とするため、CIDR導入前に利用されていた固定長比較(完全一致検索)と比べてルーティングテーブル検索処理が複雑になるデメリットを同時に生じさせた。すなわち、検索の結果、ルーティングテーブルの複数エントリが検索条件に一致する可能性があるため、一致した検索結果のうち、最も多くのビットが一致する結果を選択する必要(ロンゲスト・プレフィックス・マッチ)が生じた。
このルーティングテーブル検索を図2に示すルーティングテーブルを用いて具体的に説明する。図2のルーティングテーブル1000には、IPアドレスが8ビットで表現されるときに6つのエントリ1000−1〜6が存在していることを示し、それぞれのエントリ1000−1〜6はプレフィックスと等価な情報であるIPアドレス条件と、これらの各IPアドレス条件に対応する次ホップIPアドレスおよび出力回線番号をから構成される。ここで、IPアドレス条件とは、プレフィックスを上位ビットとし、IPアドレスの残りのビットをマスク(*)とした情報である。例えば、エントリ1000−2の“01111***”は、上位5ビットが“01111”であり、下位3ビットは“000、001、010、011、100、101、110、111”のいずれでもよいことを示す。また、1000−2〜6の“01111***”は “01111/5”、“0110****”は“0110/4”、“1010****”は“1010/4”、“101*****”は“101/3”、“01******”は“01/2”とそれぞれ表現することもできる。スラッシュ記号の後ろの数字はプレフィックス長と呼ばれ、プレフィックスのマスク以外の部分の長さを示す。
例えば、宛先IPアドレスが二進数で“01111010”のパケットが入力された場合を考える。この場合、エントリ1000−2と1000−6の二つのエントリのIPアドレス条件と入力した宛先IPアドレスが一致するが、プレフィックス長が一番長いエントリ1000−2の次ホップIPアドレスBと出力回線番号3が一致結果と判定される。
上記のルーティングテーブル検索を高速化するために、近年のハイエンドパケット転送装置ではTCAM(Ternary Contents Addressable Memory)と呼ばれるメモリデバイスを用いることが多い。例えば、ルーティングテーブル検索とフローの識別処理をTCAMにより高速に実現する方法が非特許文献2や非特許文献3に記載されている。
TCAMは、一致条件のビット毎に「0」、「1」のほか、「0」でも「1」でも良いことを示す「*(Don’t Care、Mask)」の三種類の値を指定することが可能である。TCAMは、複数ビットの一致条件を格納するエントリを複数備え、検索キーが入力されるとエントリ内の一致条件と検索キーの一致比較を全エントリに対し同時に行い、一致したエントリのアドレスの中でもっとも優先度の高い(例えば一番小さい)アドレス値を出力する。もっとも長いプレフィックスを持つIPアドレス条件を優先度の高いエントリに格納しておくことにより、TCAMはロンゲスト・プレフィックス・マッチを実現可能である。
前述のTCAMは、高速なルーティングテーブル検索に適したメモリデバイスではあるものの、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)に比較して一桁から二桁程度消費電力が高く、同様に集積度が低く、最も高価なデバイスである点が問題である。
今日のパケット転送装置は、図3に示すように制御カード300がルーティングテーブルの本体301を持ち、各ラインカード100−i(i=1〜N)はルーティングテーブル情報を独立して高速に検索できるように、制御カード300のルーティングテーブル301と同一の内容のコピーをハードウェアが検索しやすい形式にした完全ルーティングテーブル210として備えている。近年のハイエンドパケット転送装置では、各ラインカードのルーティングテーブルに前述のTCAMを用いる構成がみられる。
特許文献1では、ネットワーク転送装置におけるルーティングテーブルおよびその検索機構を改善し、ネットワーク転送装置の大容量化、低遅延化(高速化)、低コスト化を図るために、制御カードのルーティングテーブル情報を分割した部分集合となる情報を各ラインカードに分散ルーティングテーブルとして配置する方法を提案している。また、分散ルーティングテーブルは、ルーティングテーブルの持つ情報の一部の複製を格納するルーティングテーブルキャッシュを有し、あるルーティングテーブルキャッシュにおいて検索がヒットしなかった場合、そのルーティングテーブルキャッシュに対応するルーティングテーブルを検索して、宛先を検索する構成を提案している。
特開2004−221807号公報
RFC1519 宇賀 雅則、塩平 公平 著、「連想メモリを用いたフロー識別法」、社団法人電子情報通信学会、2000年総合大会講演論文集、SB-4-2、第654頁 IDT White Paper "Optimum Search Methods for Switch/Router Databases in Access and Metro Edge Networks"
宛先アドレスに対応する転送情報は、日々増加しているため、パケット転送装置の各ラインカードに搭載する前記転送情報を記録するためのルーティングテーブルに必要なメモリ量も増加する必要がある。やがて、各ラインカードの必要メモリ量は実装の許容範囲を超える恐れがあるため、必要な総メモリ量を増加させずに、ルーティングテーブルに登録可能なエントリ数を増加させることが必要である。なおかつ、ルーティングテーブル検索はパケット転送装置においてボトルネックとなる処理であるため、高速な経路検索を実現する必要がある。
前述した図3のように制御カード300のルーティングテーブルの本体301のコピーを各ラインカード100に搭載するTCAMに格納する手法は、ルーティングテーブルを大容量化する場合、TCAMの実装量を増加する必要があるため、装置全体の消費電力およびコストの増加を招く問題を抱えている。
また、特許文献1に示すように、パケット転送装置内で基本的にひとつだけのルーティングテーブルを搭載し、各ラインカードは前記ルーティングテーブルの各部分だけを分散配置する手法は、ルーティングテーブルを大容量化しても搭載するメモリ量が大きく増加しない点で有望である。しかしながら、あるラインカードのルーティングテーブルを複数のラインカードが検索する場合、単にルーティングテーブルの各部を分散配置するだけではメモリ競合による検索速度の低下が発生し問題である。このため、特許文献1では、ルーティングテーブルキャッシュの搭載が必然であるが、このルーティングテーブルキャッシュは、完全一致する宛先IPアドレス情報のエントリしか格納できないため、キャッシュミスの可能性が高く、またキャッシュミス時に対応するIPアドレス情報を当該キャッシュに格納するまでのレイテンシが長いという欠点を持っている。
本発明は、これらの問題点に鑑みてなされたもので、二種類のルーティングテーブルを各ラインカードに配置し制御することにより、ルーティングテーブルの大容量化、すなわち、ルーティングテーブルに登録可能なエントリ数を増加させることを目的とする。また、同時にルーティングテーブル検索の高速化を実現することを目的とする。
本発明では、パケット転送装置の各ラインカードに、二種類の異なる役目を持つルーティングテーブルを具備する。第一のルーティングテーブルは、頻繁に利用する転送情報を一連のグループとして記録するための自ラインカード専用のローカルルーティングテーブルである。第二のルーティングテーブルは、転送情報を他のラインカードと一致しないように分散して記録し、すべての分散情報を合わせるとパケット転送装置が保持する全ての転送情報と一致する分散共有ルーティングテーブルである。
各ラインカードは接続されるネットワーク回線に依存する宛先検索の局所性、すなわち、完全に同一の宛先や、プレフィックスの上位部が同一の宛先が出現しやすい性質を利用できる。よって、ローカルルーティングテーブルは、パケット転送装置が保持する全ての転送情報を一度に記録する必要がなく、比較的小容量のメモリで実現してよい。各ラインカードは、パケットの宛先検索を実施する際に、最初にローカルルーティングテーブルを検索し、当該転送情報があれば利用する。当該転送情報がなければ、対応する分散共有ルーティングテーブルから検索に利用した宛先アドレスに関連すると判断した全ての転送情報をローカルルーティングテーブルにコピーしてから利用する。
分散共有ルーティングテーブルにより、パケット転送装置全体の総メモリ量を増加させずに、ルーティングテーブルに登録可能なエントリ数を増加することができる。
ローカルルーティングテーブルにより、自ラインカードは他ラインカードに邪魔されず、頻繁に利用する転送情報を利用できるため、ルーティングテーブル検索を高速に行うことができる。
また、分散共有ルーティングテーブルからローカルルーティングテーブルへは宛先アドレスに関連すると判断した全ての転送情報をコピーするため、宛先アドレスに完全に対応する唯一つの転送情報だけを分散共有ルーティングテーブルからコピーする単純なキャッシュ方式と比較して、分散共有ルーティングテーブルを検索する頻度が減少するため、分散共有ルーティングテーブルを複数のラインカードが検索することにより発生するメモリアクセスボトルネックの解消も可能となる。
以下、より詳細な内容を添付図面に基づいて実施例で説明する。
図1に本発明を適用したパケット転送装置のブロック図を示す。パケット転送装置はパケットを入力するN個の入力回線10−i(i=1〜N)、N個の出力回線20−i(i=1〜N)、一連のパケット処理を実施するためのN個のラインカード100−i(i=1〜N)、パケット転送装置全体を制御するための制御カード300、前記ラインカード100−iと前記制御カード300を結合するためのスイッチファブリック400から構成される。
前記ラインカード100−iは、ネットワーク側とのパケットの送受信を行うネットワークインタフェース部102、パケット処理を実施するパケット処理部103、パケット処理のうちルーティングテーブル検索を実施する経路検索制御部105、自ラインカードが利用した転送情報を保持するための第一のルーティングテーブル(ローカルルーティングテーブル)201と、パケット転送装置内の全てのラインカード間で転送情報を分散共有するための第二のルーティングテーブル(分散共有ルーティングテーブル)202、スイッチファブリックとのパケットの送受信を行うスイッチファブリックインタフェース104、制御用のCPU110から構成される。
前記制御カード300は、第三のルーティングテーブル(完全ルーティングテーブル)301を保持しており、完全ルーティングテーブル301は、前記分散共有ルーティングテーブル202の和集合と一致する。
まず、パケット転送装置の動作概略について説明する。パケットが入力回線10−iより入力されると、ネットワークインタフェース102は、パケット処理部103が認識可能なフォーマットへパケットを変換し転送する。
パケット処理部103は、受信パケットを蓄積し、受信パケットから抽出した宛先IPアドレスを経路検索制御部105へ転送する。
経路検索制御部105はローカルルーティングテーブル201、分散共有ルーティングテーブル202を利用し、次ホップIPアドレスと出力回線番号を判定し、結果をパケット処理部103へ転送し、パケット処理部はスイッチファイブリックインタフェース104へ転送する。
スイッチファイブリックインタフェース104は、受信パケットをスイッチファブリック400へ転送し、スイッチファブリック400は、受信パケットに記録されている出力回線番号に相当するラインカード100−iへ当該パケットを転送する。
パケットを受信した当該ラインカード100−iは、当該パケットをスイッチファブリックインタフェース104を介してパケット処理部103へ転送する。前記パケット処理部103は、経路検索制御部105へ前記パケットが含む次ホップIPアドレスを転送する。前記経路検索制御部105は、前記次ホップIPアドレスより次ホップのMAC(Media Access Control)アドレス判定し、MACアドレス情報として、前記パケット処理部103へ転送する。前記パケット処理部103は次ホップMACアドレスをパケットの宛先MACアドレスに書き込み、送信元MACアドレスを次ラインカードのネットワークインタフェース102のMACアドレスに書換え、パケットを出力回線20−iへ送信する。
次に、本発明によるパケット転送装置のルーティングテーブル制御方法および検索方法について詳細動作を説明する。まず、ローカルルーティングテーブル201−n(n=1,2,3)と分散共有ルーティングテーブル202−n、完全ルーティングテーブル301の保持するIPアドレス条件の関係を図4に示す。この図4では、理解を容易にするため、IPv4のIPアドレスを例とし、完全ルーティングテーブル301に登録されているIPアドレス条件を6グループ分だけとしている。実際には、より多数のグループが存在する。また、IPv4アドレスに限らずIPv6アドレスなどでもよい。
分散共有ルーティングテーブル202−nは、完全ルーティングテーブル301の登録情報の一部ずつを互いに重複しないように保持する。図4の例では、ラインカード100−1の分散共有ルーティングテーブル202−1はグループ1とグループ2、ラインカード100−2の分散共有ルーティングテーブル202−2はグループ3とグループ4、ラインカード100−3の分散共有ルーティングテーブル202−3はグループ5とグループ6を保持する。グループ分けは、制御カード300により実施される。
ここで、グループとは、ロンゲスト・プレフィックス・マッチを実施する際にチェックすべきアドレス条件すべてを指す。すなわち、複数のIPアドレス条件があった時、プレフィックス部分が他のIPアドレス条件に内包される場合、それらのIPアドレス条件群を同一グループと呼ぶ。例えば、図4において100.132.10.8/30は100.132.10.0/24に内包される。このため、同一のグループとしている。グループ2〜6も同様の理由によりグループとしている。
ここで、プレフィックス長が例えば1の場合、すべてのIPアドレス条件が同一グループとなり、そもそもグループ分けをする意味がなくなる。しかしながら、http://bgp.potaroo.net/index-bgp.htmlのデータによるとIPv4では8未満のプレフィックス長は、事実上利用されていない。同様に、IPv6では20未満のプレフィックス長は、事実上利用されていない。よって、IPv4の場合は、少なくとも256以上のグループ、IPv6の場合は、少なくとも1メガ(1048576)以上のグループに分かれることが期待できる。
また、図5に代表的なIPv4のルーティングテーブル情報の例として、プレフィックス長と対応するエントリ数の関係を示す。多くのIPv4のルーティングテーブルは同様の傾向を示すとされており、プレフィックス長24の全体に占める割合が非常に高く、プレフィックス長16から23までがついで高く、これら16から24の9種類のプレフィックス長だけで全体の8割を占めることが多い。プレフィックス長の長いIPアドレス条件がプレフィックス長の短いIPアドレス条件に内包されていなければ(同一グループでなければ)、上記に述べた最低数より多くのグループが存在することになる。
ローカルルーティングテーブル201は、検索に利用されたIPアドレスが含まれるIPアドレス条件のグループを分散共有ルーティングテーブルからコピーして利用する。通常、ハイエンドのパケット転送装置は複数枚(例えば16枚)のラインカードと前記ラインカード数と同じかそれ以上のネットワーク回線を具備している。あるラインカードにネットワークから入力されるパケット群が、すべてのIPアドレス領域に対してアクセスすることは稀である。よって、パケット転送装置の各ラインカードは特定の頻繁に利用されるIPアドレス条件のグループが異なる可能性が高い。この性質を利用すると、ローカルルーティングテーブル201は、すべての分散共有ルーティングテーブル202のIPアドレス条件すべて、すなわち、完全ルーティングテーブル301と同等のIPアドレス条件を保持している必要がない。よって、ローカルルーティングテーブル201は巨大である必要はない。
図4の例では、ローカルルーティングテーブル201−1はグループ1、ローカルルーティングテーブル201−2はグループ1とグループ3、ローカルルーティングテーブル201−3はグループ5、それぞれのIPアドレス条件をコピーして保持している状態を示す。また、それぞれのローカルルーティングテーブル201は、自身が保持していないIPアドレス条件のグループがどの分散共有ルーティングテーブルに保持されているかのポインタ情報をすべて保持している。前記ポインタ情報が存在しないIPアドレス条件は、完全ルーティングテーブル301にも登録がなく、宛先不明であるためデフォルトルート宛として扱う。
次に、より具体的なローカルルーティングテーブル201、分散共有ルーティングテーブル202の構成例を示した後、IPアドレス条件の登録方法、アクセス方法について説明する。
まず、ローカルルーティングテーブル201、分散共有ルーティングテーブル202の構成例として、消費電力を上げずにより多くのエントリを保持するための手段として、TCAMを利用せず、DRAMもしくはSRAMを複数個並列に並べ利用するm−Trie(Multi―level Trie)アルゴリズムを適用する実施例について図6と図7を用いて説明する。
まず、検索の際に利用する検索キーである宛先IPアドレスを、複数個の塊に分割する。IPv4であれば、32ビットアドレスを、例えば、K0、K1、K2の3箇所に分割する。例えば、K0=16ビット、K1=8ビット、K2=8ビットが代表的な分割方法である。分割部位ごとに検索用のノードを生成する。この例では、最上位のルートノードK0は216個のエントリを持つ。次レベルのノードK1は、2個のエントリを持つノードを複数個持つ。同様に最下位レベルのノードK2も、2個のエントリを持つノードを複数個持つ。レベル1ノードおよびレベル2ノードの複数個とは、現実的な実装量とのトレードオフになるが、例えば4096個とする。各ノードは、複数個のDRAMもしくはSRAMにより構成可能である。
次に、分割したIPv4の上位16ビットにより、ルートノード内のエントリを選択してレベル1ノードへのポインタを獲得する。獲得した前記レベル1へのポインタにより、レベル1ノードを選択し、前記レベル1ノードにおいて、IPv4の次の8ビットにより、当該レベル1ノード内のエントリを選択してレベル2ノードへのポインタを獲得する。獲得した前記レベル2へのポインタにより、レベル2ノードを選択し、前記レベル2ノードにおいて、IPv4の最後の8ビットにより、当該レベル2ノード内のエントリを選択して検索結果、もしくは検索結果、すなわち、「次ホップIPアドレスと出力回線番号」が収められているメモリへのポインタを獲得する。以降では、最終レベルノードには、検索結果が収められているものとして説明を行う。
図6は、ローカルルーティングテーブル201をK0=16ビット、K1=8ビット、K2=8ビットのm−Trieで構成した例である。64キロエントリを持つレベル0ルートノード500を1個、256エントリを持つレベル1ノード510が4096個、256エントリを持つレベル2ノード520が4096個で構成されている。各ノードのエントリ内容を次に示す。
ルートノードのエントリ501は、有効ビット502、プレフィックス長情報503、情報元ラインカード番号504、ローカルノード登録済みビット505、ポインタ506で構成されている。有効ビット502がセットされているとき、当該エントリが有効となる。プレフィックス長情報503とは、当該エントリのIPアドレス条件のプレフィックス長である。情報元ラインカード番号504は、当該IPアドレス条件が記録されている分散共有ルーティングテーブル202のラインカード番号を示す。ローカルノード登録済みビット505は、当該エントリがローカルルーティングテーブル201にコピーされていることを示す。ポインタ506は、レベル1ノードを選択するためのポインタである。この例では4096あるレベル1ノードのうちひとつを指す。
レベル1ノードのエントリ511は、有効ビット512、プレフィックス長情報513、(レベル2ノードへの)ポインタ514で構成されている。
レベル2ノードのエントリ521は、有効ビット522、プレフィックス長情報523、検索結果524で構成されている。
図7は、分散共有ルーティングテーブル202をK0=16ビット、K1=8ビット、K2=8ビットのm−Trieで構成した例である。64キロエントリを持つレベル0ルートノード500を1個、256エントリを持つレベル1ノード510が4096個、256エントリを持つレベル2ノード520が4096個で構成されている。前記のローカルルーティングテーブル201と同一の構成を例示しているが、レベル1ノード、レベル2ノードの数は、ローカルルーティングテーブル201より多くしても構わない。各ノードのエントリ内容を次に示す。
ルートノードのエントリ601は、有効ビット602、プレフィックス長情報603、共有ラインカード情報604、ポインタ605で構成されている。有効ビット602がセットされているとき、当該エントリが有効となる。プレフィックス長情報603とは、当該エントリのIPアドレス条件のプレフィックス長である。共有ラインカード情報604は、当該IPアドレス条件がコピーされているローカルルーティングテーブル201のあるラインカード番号を示す。複数枚のラインカードで共有される可能性があるため、ひとつのラインカードを1ビットで表現する形式が適している。ポインタ605は、レベル1ノードを選択するためのポインタである。この例では4096あるレベル1ノードのうちひとつを指す。
レベル1ノードのエントリ611は、有効ビット612、プレフィックス長情報613、(レベル2ノードへの)ポインタ614で構成されている。
レベル2ノードのエントリ621は、有効ビット622、プレフィックス長情報623、検索結果624で構成されている。
ローカルルーティングテーブル201、および分散共有ルーティングテーブル202の各ノードは、先に述べたようにTCAMではなく、DRAMもしくはSRAMを用いて構成する。図8に各ノードをDRAMで構成した例を示す。いずれのテーブルも基本的な構成は同等であり、ルートノード500、ROWアドレスにより選択可能な4096個のノードを含むレベル1ノード510、COLUMNアドレスにより選択可能な256個のレベル1ノードのエントリのセレクタ519、ROWアドレスにより選択可能な4096個のノードを含むレベル2ノード520、COLUMNアドレスにより選択可能な256個のレベル2ノードのエントリのセレクタ529により構成される。
各ノードは独立したDRAMを用いる。DRAMは、汎用パッケージのDDR−SDRAM(Double Data Rate−Synchronous DRAM)やFCRAM(Fast Cycle RAM)を用いてもよいし、経路検索制御部105と同一のLSIパッケージ中に組み込みDRAMの形式で用いてもよい。後者の組み込みDRAMは、製造上のコストは嵩むが、アクセスレイテンシを短縮し、かつ、専用の幅広のDRAM内部バスを利用し、DRAMと経路検索制御部105の間で大量のデータを一度にやり取りできる点で有利である。
次に、パケット転送装置にIPアドレス条件を新たに登録する際の動作について、図10に示す無効化型分散共有ルーティングテーブルの更新動作例のフローチャートを利用して説明する。ここで、無効化型とは、分散共有ルーティングテーブル202を更新する際、対応するIPアドレス条件を持つローカルルーティングテーブル201の当該エントリを破棄(無効化)することを意味する。
パケット転送装置の保持する完全なルーティングテーブルは、制御カード300が具備する完全ルーティングテーブル301で管理される。新たなIPアドレス条件が完全ルーティングテーブル301に追加されると(図9の801→802)、制御カード300は対応する分散共有ルーティングテーブル202へ、前記IPアドレス条件を図7で示したエントリ形式で、ノードの関連するエントリすべてに登録する(図9の803)。
ここで、関連するエントリとは、例えばIPアドレス条件が111.222.3.4/15の場合、ルートノード500では、111.222と111.223の二つのエントリであり、両エントリのポインタ506は、ともにレベル1ノード510で共通のノードを指す。プレフィックス長15なので、レベル1、2ノード内の当該ノードの256エントリはすべて当該エントリとなる。
同様の例をいくつか挙げると、IPアドレス条件が111.222.3.4/14の場合、関連するエントリとは、ルートノード500では、111.220と111.221、111.222、111.223の四つのエントリであり、全エントリのポインタ506は、ともにレベル1ノード510上の共通のエントリを指す。プレフィックス長14なので、レベル1、2ノード内の当該ノードの256エントリはすべて当該エントリとなる。
IPアドレス条件が111.222.3.4/24の場合、関連するエントリとは、ルートノード500では、111.222のただ一つのエントリであり、前記エントリのポインタ506は、レベル1ノード510のある一つのノードを指す。レベル1ノード510の当該ノードでは、IPアドレス条件の次の8ビットが示すエントリ3が関連するエントリである。レベル2ノード520では、プレフィックス長24なので、当該レベル2ノードの256エントリが関連するエントリである。
IPアドレス条件が111.222.3.4/30の場合、関連するエントリとは、ルートノード500では、111.222のただ一つのエントリであり、前記エントリのポインタ506は、レベル1ノード510のある一つのノードを指す。レベル1ノード510の当該ノードでは、IPアドレス条件の次の8ビットが示すエントリ3が関連するエントリである。レベル2ノード520では、プレフィックス長28で最後の8ビットが4なので、当該レベル2ノードのエントリ4、5、6、7の四つのエントリが関連するエントリである。
まとめると、プレフィックス長をLで表現するとき、Lが16未満(図5の例より、通常、Lは8以上)の場合は、ルートノード500において2(L−16)個のエントリが同一の内容で埋め尽くされ、当該レベル1ノード510、レベル2ノード520の256エントリすべてが同一の内容で埋め尽くされている。
Lが16以上24未満の同様は、ルートノード500は1エントリのみ利用され、当該レベル1ノード510の対応する2(24−L)個のエントリが同一の内容で、また当該レベル2ノード520の256エントリすべてが同一の内容で埋め尽くされている。
Lが24以上の場合は、ルートノード500およびレベル1ノード510は1エントリのみ利用され、当該レベル2ノード520の対応する2(32−L)個のエントリが同一の内容で埋め尽くされている。
以上、「関連するエントリ」の例を示した。ここで、前記IPアドレス条件を含むグループがなければ新たに生成し、すべてのローカルルーティングテーブル201のルートノードへ前記グループが登録されている分散共有ルーティングテーブル202の存在するラインカード番号を「情報元ラインカード番号504」として登録し、有効ビット502をセットして更新処理を終了する(図9の804→805→808)。
前記IPアドレス条件を含むグループが存在すれば、分散共有ルーティングテーブル202のルートノードエントリ601の共有ラインカード情報604を参照し、当該グループがいずれかのローカルルーティングテーブル201にコピーされているかどうか確認する(図9の806)。いずれかのローカルルーティングテーブル201にコピーされていれば、装置内でのローカルルーティングテーブル情報の一貫性を維持するために前記コピー内容に対して無効化型または更新型の処理を行う。まず、無効化型の場合のメリットは、更新型に比べて制御論理実装が容易な点である。無効化型の場合、当該ローカルルーティングテーブル201の当該IPアドレス条件を破棄し、更新処理を終了する(図9の807→808)。なお、破棄の際には、ローカルルーティングテーブル201の関連するノードのエントリのプレフィックス長情報503、513、523を参照し、破棄要求のあったプレフィックス長のIPアドレス条件のみを破棄する。例えば、IPアドレス条件として111.222.0.0/16と111.222.0.0/24がそれぞれ登録されている場合、111.222.0.0/24は111.222.0.0/16の枝のエントリにあたる。ここで、111.222.0.0/16を破棄する場合、111.222.0.0/24は破棄せず残す。
なお、無効化型ではなく、更新型の分散共有ルーティングテーブル202の場合、図9の状態807において、当該ローカルルーティングテーブル201の当該IPアドレス条件を新しい条件に更新して、処理を終了する。また、前記更新にあたり、更新情報は前回登録分と新規登録分の差分だけを転送すればよい。更新型は無効化型に比べて制御が複雑であるため論理実装が困難であるが、ルーティングテーブルを制御する情報の通信量を削減できるメリットを持つ。
次に、ラインカード100の経路検索制御部105が、経路検索をする場合の動作について、図10に示すフローチャートを利用して説明する。経路検索制御部105は、受信パケットから抽出された宛先IPアドレスを検索キーとして利用し、まず、ローカルルーティングテーブル201のルートノード500を検索する(図10の901→902)。
検索キーの上位16ビットに一致するIPアドレス条件がローカルルーティングテーブル201のルートノード500に存在する場合(当該エントリのローカルルーティングテーブル登録済みビット505がセットされている)、当該エントリのポインタ506により、次レベル以降のノードの検索を末端ノードに到達するまで繰り返す。
この例では、レベル1ノード510をルートノード500のエントリポインタ506により選択し、検索キーの次の8ビットで当該レベル1ノード510内のエントリを選択し、そのエントリ内のポインタ514でレベル2ノード520を選択し、検索キーの最後の8ビットで当該レベル2ノード520内のエントリを選択する。以上の操作により、結果となる情報(次ホップIPアドレスと出力回線番号)を獲得する(図10の903→907→908→907→908→909)。
また、検索キーの上位16ビットに一致するIPアドレス条件がローカルルーティングテーブル201のルートノード500に存在しない場合、情報元ラインカード番号504を参照して、対応する分散共有ルーティングテーブル202へIPアドレス条件の情報を要求する(図10の903→904)。
対応するラインカード100の分散共有ルーティングテーブル202は、対応するエントリ情報をルートノード600、レベル1ノード610、レベル2ノード620から読み出し、そのコピーをまとめて要求元ラインカード100へ送信する。また、同時に当該エントリの情報が、特定のラインカードにより共有されたことを分散共有ルーティングテーブル202のルートノードエントリ601の共有ラインカード情報604へ記録する(図10の905)。
要求元ラインカードのローカルルーティングテーブル201は、送信されてくる前記エントリ情報を対応するルートノード500、レベル1ノード510、レベル2ノード520へ記録し、再度ローカルルーティングテーブルのルートノード500を検索する(図10の906)。この検索では、既にローカルルーティングテーブル500に目的の結果が登録されているため、先に示した図10の903→907のフローを辿り、検索結果を得ることができる。
なお、ローカルルーティングテーブル201のレベル1ノード510およびレベル2ノード520のノードが不足する自体が発生する可能性がある。ノードエントリ不足が生じた場合、無作為(ランダム)または、FIFO(First In First Out)、LRU(Least Recently Used)などのアルゴリズムに従って、利用中のノードエントリを解放して新規に利用する。
解放したエントリは、分散共有ルーティングテーブル202からみて共有状態ではなくなるため、対応する分散共有ルーティングテーブル202のルートノード600の当該エントリの共有ラインカード情報604の内容を更新する。
以上、詳細な実施の形態について例を示して説明した。本実施例で示した分散共有ルーティングテーブル202をパケット転送装置に適用することで、パケット転送装置全体に必要なルーティングテーブル用メモリ量を削減することが可能となる。また、見方を変えると、従来の方法に比較して、パケット転送装置全体でラインカード数に比例しただけ多くの転送情報を登録可能となる。
更に、頻繁に利用する転送情報は、各ラインカードが専用のローカルルーティングテーブル201を利用して高速に検索が可能である。ローカルルーティングテーブル201には、TCAMのような高速でロンゲスト・プレフィックス・マッチには適しているが、消費電力が大きく、登録エントリ数も少ないメモリを利用しなくても、本実施例に示したようにDRAM、もしくはSRAMを各ノードに利用し、各ノードをパイプライン方式で1サイクルに1ノードずつ順次アクセスする方式を用いることに高速化が可能である。
また、分散共有ルーティングテーブル202からローカルルーティングテーブル201へは宛先アドレスに関連すると判断した全ての転送情報をコピーするため、宛先アドレスに完全に対応する唯一つの転送情報だけを分散共有ルーティングテーブル202からコピーする方式と比較して、分散共有ルーティングテーブル202を検索する頻度が減少するため、分散共有ルーティングテーブル202を複数のラインカード100が検索することにより発生するメモリアクセスボトルネックの解消も可能になる。
本実施例中に用いた数値は、あくまで参考例であり、m−Trieのノードの数、検索キーとなるIPアドレスの分割位置、エントリ数など、他の数値を用いて様々な構成を同様に実施可能である。例えば、ロンゲスト・プレフィックス・マッチを利用しない、MACアドレスなどの検索にも応用可能である。MACアドレス用のルーティングテーブルの場合、プレフィックス長の概念が存在しないため、ルーティングテーブルのプレフィックス長用のフィールドは不要であり、また、ローカルルーティングテーブル201の上位から下位までの各ノードのエントリは、必ず1エントリずつ利用される。
また、本実施例同様、ロンゲスト・プレフィックス・マッチを利用するIPv6用のルーティングテーブルとしても同様の考え方により実施可能である。
実施例1では、完全ルーティングテーブル301を制御ラインカード300が持つ形式を説明したが、完全ルーティングテーブル301を持たないパケット転送装置であってもよい。この場合、各ラインカード100の分散共有ルーティングテーブル202とその制御CPU110が、それぞれが担当するアドレス検索条件領域を独自に管理する。
この場合、OSPF(Open Shortest Path First)やRIP(Routing Information Protocol)やBGPなどのルーティングプロトコルを各ラインカード100の制御CPU110上で動作させ、各CPUは自分が管理する分散されたアドレスについてのみルーティングテーブルの管理を行う。他のパケット転送装置から見た場合、ルーティングプロトコルは単一のCPUにより動作しているように観測されるが、当該パケット転送装置内部では、複数の制御CPU110が協調動作することにより分散共有ルーティングテーブル202を管理する。
ローカルルーティングテーブル201の登録、アクセス方法や更新方法、分散共有ルーティングテーブル202のアクセス方法など、完全ルーティングテーブル301がないことを除いては実施例1と同様に扱える。
この実施例2では、制御カード300を用いずパケット転送装置を構成することで、パケット転送装置の搭載資源を減らすことができる。
以上の実施例では、ロンゲスト・プレフィックス・マッチに対応可能なローカルルーティングテーブルの構成と分散共有ルーティングテーブルの構成を示した。ネットワークの端末間では、データを複数個のパケットにして送受信を行うため、短時間に同一のIPアドレス情報を持つパケットが大量に出現する時間ローカリティが強く存在する。よって、これまでの分散共有ルーティングテーブルの実施例において、ローカルルーティングテーブルを構成するメモリよりも高速なメモリで構成したルーティグテーブルキャッシュを組み合わせることで、より高速なルーティングテーブルアクセスを実現する実施例が考えられる。
具体的には、図1のラインカード100において、経路検索制御部105はローカルルーティングテーブル201と分散共有ルーティングテーブル202とは独立したルーティングテーブルキャッシュメモリを具備し、前記ルーティングテーブルキャッシュはローカルルーティングテーブル201の一部の情報を検索キーとして利用されたIPアドレスに完全一致する形でエントリとして保持する。
例えば、分散共有ルーティングテーブル202が111.222.3.4/24というIPアドレス条件を保持する場合に、111.222.3.1から、末尾のIPアドレスを一ずつ100まで増加させたと111.222.3.100までのIPアドレスキーによる検索が、10回連続で実施された場合の動作例を説明する。
前記の場合、ローカルルーティングテーブル201は一回の一連の登録操作により111.222.3.4/24に対応するIPアドレス条件を分散共有ルーティングテーブル202からコピーするため、最初の111.222.3.1による検索は時間がかかるものの、以降の111.222.3.100までは既にローカルルーティングテーブル201に登録されているため、検索には最初の111.222.3.1ほどの時間はかからない。以降の9回の111.222.3.1から111.222.3.100までの連続検索は、ローカルルーティングテーブル201のみで実施可能である。
次に、ルーティングテーブルキャッシュは最初の111.222.3.1から111.222.3.100までの検索はすべてキャッシュミスを起こし、毎回、ローカルルーティングテーブル201から異なるルーティングテーブルキャッシュエントリへ、対応する結果となる情報(次ホップIPアドレスと出力回線番号)をコピーする必要がある。以降の9回の111.222.3.1から111.222.3.100までの連続検索は、ルーティングテーブルキャッシュのみで実施可能であり、高速なルーティングテーブルキャッシュメモリの恩恵により検索時間の短縮が期待できる。
なお、ルーティングテーブルキャッシュを用いる場合、ローカルルーティングテーブル201のあるエントリが破棄または更新された場合、対応するルーティングテーブルキャッシュエントリも同様に破棄、または更新を実施する。
本実施例は、ルーティングテーブルキャッシュ用に別途メモリと制御機構が必要であるため、ハードウェア物量の増加を許容しても高速なルーティングテーブル検索を実施したい場合に適する手段である。
以上のように、本発明のルーティングテーブル分散管理方式は、二種類のルーティングテーブルを併用することにより、ルーティングテーブルに登録可能なエントリ数を増加させつつ、高速なルーティングテーブル検索を実現できる。よって、ルータやL3スイッチに代表される高速なパケット転送装置への適用が可能である。
本発明のパケット転送装置の一実施形態を示すブロック図。 6エントリを持つルーティングテーブルの例を示す説明図。 従来のパケット転送装置の一実施形態によるブロック図。 第一、第二、第三のルーティングテーブルの包含関係の一例を示す説明図。 プレフィックス長の分布の様子。 ローカルルーティングテーブルの構成例とエントリ内容の一実施形態を示す説明図。 分散共有ルーティングテーブルの構成例とエントリ内容の一実施形態を示す説明図。 ローカル、分散共有ルーティングテーブルの物理的な構成例を示す説明図。 無効化型分散共有ルーティングテーブルの更新動作例を示すフローチャート。 ルーティングテーブル検索動作例を示すフローチャート。
符号の説明
100:パケット転送装置のラインカード
300:パケット転送装置の制御カード
400:パケット転送装置のスイッチファブリック
102:ネットワークインタフェース
103:パケット処理部
104:スイッチファブリックインタフェース
105:経路検索制御部
110:制御CPU
201:ローカルルーティングテーブル(第一のルーティングテーブル)
202:分散共有ルーティングテーブル(第二のルーティングテーブル)
301:完全ルーティングテーブル(第三のルーティングテーブル)
210:完全ルーティングテーブル。

Claims (12)

  1. 複数のラインカードと制御カードとスイッチファブリック部とを備えたパケット転送装置であって、
    前記複数のラインカードはそれぞれ、
    装置外部のネットワークからパケットを入力する一つ以上の入力回線と、
    装置外部のネットワークへパケットを出力する一つ以上の出力回線と、
    装置内部のネットワークとパケットを送受信する内部回線と、
    宛先アドレスに対応する転送情報を複数記録するための第一のルーティングテーブルと、
    前記宛先アドレスに対応する転送情報を複数記録するための第二のルーティングテーブルと、
    前記入力回線より受信したパケットの持つ宛先アドレスを検索キーとして前記第一もしくは第二のルーティングテーブルから前記宛先アドレスに対応する転送情報を検索するための経路検索部と、
    前期経路検索部に検索要求を出し、前期検索の結果となる前記転送情報を受信し、パケットに必要な処理を実施したのち前記内部回線または前記出力回線へ転送するパケット処理部と、
    制御CPUと、
    を備え、
    前記制御カードは、
    前記宛先アドレスに対応する転送情報を複数記録する第三のルーティングテーブルと、
    前記第三のルーティングテーブルを管理するための機能を持つ制御CPUと、
    を備え、
    前記スイッチファブリック部は、
    装置内において、パケットを指定された前記出力回線のある前記パケット処理部へ転送し、
    さらに、
    前記第三のルーティングテーブルは、前記パケット転送装置内の全ての転送情報を記録し、
    前記第二のルーティングテーブルは、前記第三のルーティングテーブルの転送情報を、他の前記第二のルーティングテーブル間で重複がないように分散して記録し、
    前記第一のルーティングテーブルは、前記第二のルーティングテーブルの転送情報のうち転送に利用した宛先および前記宛先と同じグループに属すると判断した転送情報のみを、前記転送情報を保持する前記第二のルーティングテーブルから読み出して記録することを
    特徴とするパケット転送装置。
  2. 宛先アドレスに対応する転送情報を複数記録するための複数の第一のルーティングテーブルと、
    前記宛先アドレスに対応する転送情報を複数記録するための複数の第二のルーティングテーブルと
    複数の前記第二のルーティングテーブルに記録される転送情報を複数記録するための第三のルーティングテーブルと、を有し、
    前記複数の第二のルーティングテーブルはそれぞれ、該パケット転送装置内のルーティングテーブルの転送情報を、他の前記第二のルーティングテーブル間で重複がないように分散して記録し、
    前記第一のルーティングテーブルは、前記第二のルーティングテーブルの転送情報のうち転送に利用した宛先および前記宛先と同じグループに属すると判断した転送情報のみを、前記転送情報を保持する前記第二のルーティングテーブルから読み出して記録し、
    さらに、
    前記第一のルーティングテーブルは、宛先アドレスに対応する転送情報が、前記第一、第二のいずれのルーティングテーブルに記録されているかの情報を保持し、
    前記第二のルーティングテーブルは、宛先アドレスに対応する転送情報がどの前記第一のルーティングテーブルに記録されているかの情報を保持することを特徴とするパケット転送装置。
  3. 宛先アドレスに対応する転送情報を複数記録するための複数の第一のルーティングテーブルと、
    前記宛先アドレスに対応する転送情報を複数記録するための複数の第二のルーティングテーブルと、
    前記入力回線より受信したパケットの持つ宛先アドレスを検索キーとして利用し、前記第一もしくは第二のルーティングテーブルを検索するための経路検索部と、
    前記宛先アドレスに対応する転送情報を複数記録する第三のルーティングテーブルと、
    を持つパケット転送装置で、
    前記第三のルーティングテーブルは、前記パケット転送装置内の全ての転送情報を記録し、
    前記第二のルーティングテーブルは、前記第三のルーティングテーブルの転送情報を、他の前記第二のルーティングテーブル間で重複がないように分散して記録し、
    前記第一のルーティングテーブルは、前記第二のルーティングテーブルの転送情報のうち転送に利用した宛先および前記宛先と同じグループに属すると判断した転送情報のみを、前記転送情報を保持する前記第二のルーティングテーブルから読み出して記録することを特徴とするパケット転送装置であり、
    前記第一のルーティングテーブルと前記第二のルーティングテーブルをm−Trieアルゴリズムを用いて構成し、
    前記第一のルーティングテーブルと前記第二のルーティングテーブルとしてSRAMもしくはDRAMを用いることを特徴とするパケット転送装置。
  4. 請求項1乃至3のいずれか一つに記載のパケット転送装置において、
    前記第一のルーティングテーブルが記録する前記転送情報のグループとは、最長一致検索が可能となる全ての転送情報であることを特徴とするパケット転送装置。
  5. 請求項1乃至3のいずれか一つに記載のパケット転送装置において、
    前記第一のルーティングテーブルと前記第二のルーティングテーブルは複数のエントリを保持する複数のノードで構成され、
    前記第一のルーティングテーブルの最上位のノードの各エントリは、
    前記エントリが装置内に登録されていることを示す情報と、
    前記エントリが第一のルーティングテーブルに登録されていることを示す情報と、
    宛先IPアドレスのプレフィックス長を表す情報と、
    当該エントリが存在する第二のルーティングテーブルを持つラインカード番号を示す情報と、
    前記エントリの下位のノードを示すためのポインタを少なくとも備え、
    前記第二のルーティングテーブルの最上位のノードの各エントリは、
    前記エントリの有効を示す情報と、
    宛先IPアドレスのプレフィックス長を表す情報と、
    当該エントリがコピーされた先の第一のルーティングテーブルを持つラインカード番号を示す情報と、
    前記エントリの下位のノードを示すためのポインタを備え、
    前記第一および第二のルーティングテーブルの最下位でない下位のノードの各エントリは、
    前記エントリの有効を示す情報と、
    宛先IPアドレスのプレフィックス長を表す情報と、
    前記エントリの下位のノードを示すためのポインタを備え、
    前記第一および第二のルーティングテーブルの最下位のノードの各エントリは、
    前記エントリの有効を示す情報と、
    宛先IPアドレスのプレフィックス長を表す情報と、
    転送情報、または該転送情報が格納されるメモリ上のエントリを示すためのポインタと、
    を備えることを特徴とするパケット転送装置。
  6. 請求項1乃至3のいずれか一つに記載のパケット転送装置において、
    前記経路検索部は、最初に前記第一のルーティングテーブルを検索し、
    前記第一のルーティングテーブルに前記検索キーに対応する転送情報がある場合は、前記第一のルーティングテーブルから該転送情報を読出し、
    前記第一のルーティングテーブルに前記検索キーに対応する転送情報がない場合は、対応する前記第二のルーティングテーブルへ該転送情報を要求し、
    前記対応する第二のルーティングテーブルは、要求元である前記第一のルーティングテー
    ブルを備えるラインカード番号を記録した上で、当該転送情報と前記転送情報のグループをまとめて前記要求元である前記第一のラインカードへ送信し、
    前記要求元である前記第一のラインカードは、前記第一のルーティングテーブルの該当エントリを前記転送情報および前記転送情報のグループで更新し、当該転送情報が前記第一のルーティングテーブルにあることを記録し、当該転送情報を読み出すことを特徴とするパケット転送装置。
  7. 請求項1または3に記載のパケット転送装置において、
    前記制御カードの前記制御CPUは、他のパケット転送装置と通信し、前記第三のルーティングテーブルの更新を行い、
    該当する前記転送情報のエントリを持つ前記ラインカードへ更新要求を出し、
    当該ラインカードは、前記更新要求により前記第二のルーティングテーブルの当該エントリを更新し、
    前記第二のルーティングテーブルの前記エントリが自カードを含む前記第一のルーティングテーブルに共有されていれば、必要な情報を該当する前記ラインカードに通達し、
    前記該当するラインカードは、前記第一のルーティングテーブルを前記情報により更新、または無効化することを特徴とするパケット転送装置。
  8. 請求項1または3に記載のパケット転送装置において、
    前記第三のルーティングテーブルも前記第二のルーティングテーブル同様に前記各ラインカードで分散して保持し、
    前記各ラインカードの前記制御CPUが担当する前記第三のルーティングテーブル部分の更新を独立して実施することを特徴とするパケット転送装置。
  9. 請求項1または3に記載のパケット転送装置において、
    前記第三のルーティングテーブルが存在せず、前記第二のルーティングテーブルが前記第三のルーティングテーブルの役割も果たすことを特徴とするパケット転送装置。
  10. 請求項1乃至3のいずれか一つに記載のパケット転送装置において、
    前記第一のルーティングテーブルに前記転送情報がなく、前記第二のルーティングテーブルへ前記転送情報を要求する際、
    パケット転送に用いる前記スイッチファブリック部とは別の専用スイッチファブリックを介して、他の前記ラインカードの前記第二のルーティングテーブルと通信することを特徴とするパケット転送装置。
  11. 請求項1乃至3のいずれか一つに記載のパケット転送装置において、
    前記第二のルーティングテーブルが更新されるとき、前記更新の差分情報のみを共有状態にある前記第一のルーティングテーブルへ更新することを特徴とするパケット転送装置。
  12. 請求項1乃至3のいずれか一つに記載のパケット転送装置において、
    前記第一のルーティングテーブルと前記経路検索部との間に、頻繁に利用される前記エントリを完全一致する状態で記録するルーティングテーブルキャッシュを具備することを特徴とするパケット転送装置。
JP2005134733A 2005-05-06 2005-05-06 パケット転送装置 Expired - Fee Related JP4556761B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2005134733A JP4556761B2 (ja) 2005-05-06 2005-05-06 パケット転送装置
US11/411,023 US7630373B2 (en) 2005-05-06 2006-04-26 Packet transfer apparatus
CNA2006100771692A CN1859316A (zh) 2005-05-06 2006-04-27 数据包传送装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005134733A JP4556761B2 (ja) 2005-05-06 2005-05-06 パケット転送装置

Publications (2)

Publication Number Publication Date
JP2006313949A JP2006313949A (ja) 2006-11-16
JP4556761B2 true JP4556761B2 (ja) 2010-10-06

Family

ID=37298179

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005134733A Expired - Fee Related JP4556761B2 (ja) 2005-05-06 2005-05-06 パケット転送装置

Country Status (3)

Country Link
US (1) US7630373B2 (ja)
JP (1) JP4556761B2 (ja)
CN (1) CN1859316A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9979643B2 (en) 2014-10-20 2018-05-22 Ricoh Company, Limited Communication apparatus, communication method, and computer-readable recording medium

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
MXPA02012346A (es) * 2000-06-14 2004-09-09 Coreexpress Inc Desagregacion de ruta de internet y preferencia de seleccion de ruta.
JP4926763B2 (ja) * 2007-03-06 2012-05-09 三菱電機株式会社 パケット転送方法および制御装置
US8161095B2 (en) * 2007-03-12 2012-04-17 Microsoft Corporation Distributed routing table interface
US9014047B2 (en) * 2007-07-10 2015-04-21 Level 3 Communications, Llc System and method for aggregating and reporting network traffic data
JP4818249B2 (ja) * 2007-12-14 2011-11-16 アラクサラネットワークス株式会社 ネットワーク中継システム、ネットワーク中継システムの制御方法、および、ネットワーク中継システムにおける管理装置
US7987290B2 (en) * 2007-12-21 2011-07-26 Microsoft Corporation Security modes for a routing table distributed across multiple mesh nodes
US8249067B2 (en) * 2008-02-27 2012-08-21 Broadcom Corporation Separation of fabric and packet processing source in a system
US8775817B2 (en) * 2008-05-12 2014-07-08 Microsoft Corporation Application-configurable distributed hash table framework
GB2461955A (en) * 2008-07-25 2010-01-27 Gnodal Ltd Ethernet bridge or router employing a distributed MAC address table
EP2157745A1 (en) * 2008-08-19 2010-02-24 Nokia Siemens Networks OY Method for routing data traffic in an access node and access node
US7869349B2 (en) * 2008-10-14 2011-01-11 International Business Machines Corporation Method and system for deducing network routes by querying routers
CN101388842B (zh) * 2008-10-30 2012-04-04 华为技术有限公司 一种存储方法和装置
US8798045B1 (en) * 2008-12-29 2014-08-05 Juniper Networks, Inc. Control plane architecture for switch fabrics
US8918631B1 (en) 2009-03-31 2014-12-23 Juniper Networks, Inc. Methods and apparatus for dynamic automated configuration within a control plane of a switch fabric
JP5282826B2 (ja) * 2009-09-25 2013-09-04 富士通株式会社 情報処理装置、及びその設定切り替え方法
US8149713B2 (en) * 2009-09-29 2012-04-03 Cisco Technology, Inc. Forwarding of packets based on a filtered forwarding information base
US9240923B2 (en) 2010-03-23 2016-01-19 Juniper Networks, Inc. Methods and apparatus for automatically provisioning resources within a distributed control plane of a switch
CN101834802B (zh) * 2010-05-26 2012-08-08 华为技术有限公司 转发数据包的方法及装置
US8560660B2 (en) 2010-12-15 2013-10-15 Juniper Networks, Inc. Methods and apparatus for managing next hop identifiers in a distributed switch fabric system
JPWO2012124448A1 (ja) * 2011-03-17 2014-07-17 日本電気株式会社 ルーティングテーブル生成装置、分散処理装置、分散処理システム、ルーティングテーブル生成方法、および、記憶媒体
US8539135B2 (en) * 2011-05-12 2013-09-17 Lsi Corporation Route lookup method for reducing overall connection latencies in SAS expanders
CN102291472A (zh) * 2011-09-09 2011-12-21 华为数字技术有限公司 一种网络地址查找方法及装置
JP5782999B2 (ja) 2011-11-10 2015-09-24 富士通株式会社 経路決定装置、ノード装置及び経路決定方法
JP2013187601A (ja) * 2012-03-06 2013-09-19 Sony Corp ルータ、ルータ内記憶部の電源供給方法
US8792498B2 (en) * 2012-03-23 2014-07-29 Wind River Systems, Inc. System and method for enhanced updating layer-2 bridge address table on asymmetric multiprocessing systems
US9680747B2 (en) * 2012-06-27 2017-06-13 Futurewei Technologies, Inc. Internet protocol and Ethernet lookup via a unified hashed trie
US8902902B2 (en) * 2012-07-18 2014-12-02 Netronome Systems, Incorporated Recursive lookup with a hardware trie structure that has no sequential logic elements
JP5967222B2 (ja) * 2012-12-19 2016-08-10 日本電気株式会社 パケット処理装置、フローエントリの配置方法及びプログラム
JP6268943B2 (ja) 2013-11-06 2018-01-31 富士通株式会社 情報処理システム,スイッチ装置及び情報処理システムの制御方法
US9602407B2 (en) 2013-12-17 2017-03-21 Huawei Technologies Co., Ltd. Trie stage balancing for network address lookup
EP3269101B1 (en) 2015-07-17 2022-01-05 Hewlett Packard Enterprise Development LP Generating a hash table in accordance with a prefix length
JP6582723B2 (ja) 2015-08-19 2019-10-02 富士通株式会社 ネットワークシステム、スイッチ装置、及びネットワークシステム制御方法
US10516613B1 (en) 2015-10-14 2019-12-24 Innovium, Inc. Network device storage of incremental prefix trees
CN108134986B (zh) * 2016-12-01 2020-08-07 华为技术有限公司 报文传输方法及装置
CN108965137B (zh) * 2018-07-20 2021-03-19 新华三技术有限公司 一种报文处理方法和装置
CN110753133B (zh) * 2018-07-23 2022-03-29 华为技术有限公司 处理地址的方法和网络设备
US11140078B1 (en) 2018-10-18 2021-10-05 Innovium, Inc. Multi-stage prefix matching enhancements
US11316796B2 (en) 2019-12-30 2022-04-26 Juniper Networks, Inc. Spraying for unequal link connections in an internal switch fabric
CN116137606A (zh) * 2021-11-17 2023-05-19 华为技术有限公司 转发报文的方法以及相关设备
US20240283741A1 (en) * 2023-02-22 2024-08-22 Mellanox Technologies, Ltd. Segmented lookup table for large-scale routing

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06197111A (ja) * 1992-10-26 1994-07-15 Hitachi Ltd インタネットワーク装置
JPH07273787A (ja) * 1994-03-30 1995-10-20 Sumitomo Electric Ind Ltd ルーティング情報管理方式
JP3935621B2 (ja) * 1997-07-24 2007-06-27 富士通株式会社 データリンク層パス情報記憶方法、データリンク層パス情報検索方法、該データリンク層パス情報検索方法を実施するための通信装置、そして、これらデータリンク層パス情報記憶方法およびデータリンク層パス情報検索方法をそれぞれ実行するプログラムを記録した媒体
JP3591420B2 (ja) * 2000-04-07 2004-11-17 日本電気株式会社 ルータにおけるキャッシュテーブル管理装置およびプログラム記録媒体
JP3620719B2 (ja) * 2001-06-22 2005-02-16 日本電気株式会社 データ交換装置におけるルーティング処理システム
JP3957570B2 (ja) * 2002-06-17 2007-08-15 日本電気株式会社 ルータ装置
US20040030766A1 (en) * 2002-08-12 2004-02-12 Michael Witkowski Method and apparatus for switch fabric configuration
JP2004221807A (ja) * 2003-01-14 2004-08-05 Hitachi Ltd 分散ルーティングテーブル管理方式およびルータ
US7437354B2 (en) * 2003-06-05 2008-10-14 Netlogic Microsystems, Inc. Architecture for network search engines with fixed latency, high capacity, and high throughput
US7210053B2 (en) * 2004-08-31 2007-04-24 Emc Corporation Systems and methods for assigning tasks to derived timers of various resolutions in real-time systems to maximize timer usage

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9979643B2 (en) 2014-10-20 2018-05-22 Ricoh Company, Limited Communication apparatus, communication method, and computer-readable recording medium

Also Published As

Publication number Publication date
CN1859316A (zh) 2006-11-08
JP2006313949A (ja) 2006-11-16
US20060253606A1 (en) 2006-11-09
US7630373B2 (en) 2009-12-08

Similar Documents

Publication Publication Date Title
JP4556761B2 (ja) パケット転送装置
JP5624331B2 (ja) コンピュータ実施方法
JP4727594B2 (ja) コンテンツ・ベースの情報検索アーキテクチャー
US7313666B1 (en) Methods and apparatus for longest common prefix based caching
JP5529976B2 (ja) 高速ipルックアップのためのシストリック・アレイ・アーキテクチャ
Eatherton et al. Tree bitmap: hardware/software IP lookups with incremental updates
CN110301120B (zh) 流分类装置、方法和系统
US9825860B2 (en) Flow-driven forwarding architecture for information centric networks
US7237058B2 (en) Input data selection for content addressable memory
US8780926B2 (en) Updating prefix-compressed tries for IP route lookup
Bando et al. FlashTrie: beyond 100-Gb/s IP route lookup using hash-based prefix-compressed trie
US7281085B1 (en) Method and device for virtualization of multiple data sets on same associative memory
Hasan et al. Chisel: A storage-efficient, collision-free hash-based network processing architecture
CN110808910A (zh) 一种支持QoS的OpenFlow流表节能存储架构及其应用
WO2001005116A2 (en) Routing method and apparatus
EP1206861A2 (en) Method and system for managing forwarding tables
Le et al. Scalable tree-based architectures for IPv4/v6 lookup using prefix partitioning
CN103457855B (zh) 无类域间路由表建立、以及报文转发的方法和装置
CN107977160B (zh) 交换机存取资料的方法
CN115190071B (zh) 一种缓存方法及集成电路
JP2004221807A (ja) 分散ルーティングテーブル管理方式およびルータ
CN104090942A (zh) 应用于网络处理器中的Trie搜索方法及装置
JP2006246488A (ja) ネットワーク・ルータ、アドレス処理方法及びコンピュータ・プログラム
CN107707479A (zh) 五元组规则的查找方法及装置
Ray et al. An SRAM-based novel hardware architecture for longest prefix matching for IP route lookup

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080403

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100223

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100423

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100629

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100712

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130730

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees