JP2005051650A - Table search instrument - Google Patents

Table search instrument Download PDF

Info

Publication number
JP2005051650A
JP2005051650A JP2003283376A JP2003283376A JP2005051650A JP 2005051650 A JP2005051650 A JP 2005051650A JP 2003283376 A JP2003283376 A JP 2003283376A JP 2003283376 A JP2003283376 A JP 2003283376A JP 2005051650 A JP2005051650 A JP 2005051650A
Authority
JP
Japan
Prior art keywords
vpn
table search
tree
routing table
packet
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.)
Pending
Application number
JP2003283376A
Other languages
Japanese (ja)
Inventor
Masanori Uga
雅則 宇賀
Kohei Shiomoto
公平 塩本
Naoaki Yamanaka
直明 山中
Masaru Katayama
勝 片山
Kiyonari Takashima
研也 高島
Yasuaki Nakanishi
靖明 中西
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.)
Nippon Telegraph and Telephone Corp
IP Flex Inc
Original Assignee
Nippon Telegraph and Telephone Corp
IP Flex Inc
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 Nippon Telegraph and Telephone Corp, IP Flex Inc filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2003283376A priority Critical patent/JP2005051650A/en
Publication of JP2005051650A publication Critical patent/JP2005051650A/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To solve the problem wherein search of the routing table of a VPN is slow, update is slow, and economical and large-scale entry is unrealizable, in a packet transfer instrument such as an IP router. <P>SOLUTION: This table search instrument is provided with a means which forms a VPN table search tree which has a VPN identifier for identifying a VPN to which an input IP packet belongs, and a tree for routing table search which has a following hop identifier for determining a following hop of this input IP packet for every VPN, respectively. In the VPN table search tree, the VPN identifier for identifying a VPN to which the input IP packet belongs and a pointer to the tree for routing table search which corresponds to the VPN are stored. In the tree for routing table search, an identifier for determining the following hop of the input IP packet is stored corresponding to following hop information. <P>COPYRIGHT: (C)2005,JPO&NCIPI

Description

本発明は、IPルータなどのパケット転送装置に利用する。特に、パケット転送処理を行うに当たり、入力回線から入力されたパケットのヘッダ情報からパケットの次ホップを決定する際に使用するテーブル検索装置に関する。   The present invention is used for a packet transfer apparatus such as an IP router. More particularly, the present invention relates to a table search device used when determining the next hop of a packet from the header information of the packet input from an input line when performing packet transfer processing.

従来は、IPルータなどのパケット転送装置では、パケットヘッダに搭載された宛先アドレスを元にルーティングテーブルを検索し、次ホップを決定していた。ルーティングテーブルには宛先アドレスと次ホップの関係を保持している。このように従来のインターネットでは宛先アドレスのみを用いた単純な転送処理を行うだけであった。   Conventionally, in a packet transfer device such as an IP router, a routing table is searched based on a destination address mounted in a packet header to determine a next hop. The routing table holds the relationship between the destination address and the next hop. As described above, the conventional Internet only performs a simple transfer process using only the destination address.

近年、インターネットの広がりに伴い、従来の単純な転送処理だけでは十分でなくなってきた。特に、最近VPNサービスが広がりを見せている。VPNはキャリアがキャリアの顧客に対して仮想的なネットワークを提供するサービスである。仮想的なネットワークは顧客から見ると専用のプライベートなネットワークとして見える。専用なネットワークに見せることで、顧客に対しセキュリティの確保、IPアドレスの自由な付与、顧客のニーズにあったサービスをキャリアは提供可能となる。   In recent years, with the spread of the Internet, conventional simple transfer processing has become insufficient. In particular, VPN services have recently expanded. VPN is a service in which a carrier provides a virtual network to carrier customers. From the customer's perspective, the virtual network appears as a dedicated private network. By making it appear as a dedicated network, the carrier can provide security, secure IP address assignment, and services that meet customer needs.

図9にVPNサービスの実現例を示す。パケット転送装置には複数VPNが接続されている。異なるVPN間は独立として扱うことができるように、パケット転送装置にはVPNを識別するための識別子とそのVPNのルーティングテーブルをVPN毎に設定する。このため、同じVPN内での転送はVPN内に閉じた形で行うことができる。図9ではVPN識別子として入力回線とIPパケットの送信元アドレスを使用している例を示している。VPN識別子としては、これだけでなくL2のアドレス(Ethernet(登録商標)ならばMACアドレス)等も使用することが考えられる。   FIG. 9 shows an implementation example of the VPN service. A plurality of VPNs are connected to the packet transfer apparatus. An identifier for identifying a VPN and a routing table of the VPN are set for each VPN so that the different VPNs can be handled as independent. For this reason, transfer within the same VPN can be performed in a closed form within the VPN. FIG. 9 shows an example in which the input line and the source address of the IP packet are used as the VPN identifier. As a VPN identifier, it is conceivable to use not only this but also an L2 address (a MAC address in the case of Ethernet (registered trademark)).

パケット転送装置で宛先アドレスを検索する規則を説明する。パケット転送装置においては、パケットヘッダに搭載された宛先アドレスを元にルーティングテーブルを検索し、次ホップを決定する。ルーティングテーブルには宛先アドレスと次ホップの関係を保持している。インターネットではCIDR(Classless Inter Domain Routing)の機構が導入されており、ルーティングテーブルの宛先アドレスは32ビットのIPアドレスとそれに対するプレフィクス長の組み合わせで表現される。ルーティングテーブルの宛先アドレスは“IPアドレス/プレフィクス長”の形式で表される。   A rule for searching for a destination address in the packet transfer apparatus will be described. In the packet transfer apparatus, the routing table is searched based on the destination address mounted in the packet header, and the next hop is determined. The routing table holds the relationship between the destination address and the next hop. In the Internet, a CIDR (Classless Inter Domain Routing) mechanism is introduced, and the destination address of the routing table is expressed by a combination of a 32-bit IP address and a prefix length corresponding thereto. The destination address of the routing table is expressed in the format of “IP address / prefix length”.

宛先アドレスのうち、プレフィクス長で指定された長さ以降のビットに関してはDon‘t Careである。例えば129.131.175.129/32は32ビット全てのビットがDon’t Careでない宛先アドレスであり、129.60.83/24は先頭の24ビットが有効な宛先アドレスである。パケットヘッダの宛先アドレスが129.60.83.1も129.60.83.111も同じ宛先アドレス129.60.83/24に一致する。   Of the destination address, the bit after the length specified by the prefix length is Don't Care. For example, 129.131.175.129/32 is a destination address in which all 32 bits are not Don't Care, and 129.60.83 / 24 is a valid destination address of the first 24 bits. The destination addresses of the packet headers 129.60.83.1 and 129.60.83.111 match the same destination address 129.60.83 / 24.

ルーティングテーブルはパケットヘッダの宛先アドレスをキーとして用いて検索する。ルーティングテーブルを検索する際に、CIDRでは最長一致と呼ばれるルーティングテーブル検索規則に基づく。最長一致とはキーに用いる宛先アドレスが最も長く一致するものを正解とするものである。例えば、ルーティングテーブルに宛先アドレス129.38.111/24と宛先アドレス129.38/16の二つの宛先アドレスがある場合に、129.38.111.2という宛先アドレスを持つパケットが到着した場合は、宛先アドレス129.38.111/24の方がより長い範囲で一致するので、それを正解とする。   The routing table is searched using the destination address of the packet header as a key. When searching the routing table, CIDR is based on a routing table search rule called longest match. The longest match is a correct answer when the destination address used for the key is the longest match. For example, when there are two destination addresses of destination address 129.38.11 / 24 and destination address 129.38 / 16 in the routing table, a packet having a destination address of 129.38.111.2 arrives Since the destination address 129.38.111 / 24 matches in a longer range, it is determined as the correct answer.

宛先アドレスを検索する従来例としてツリーを用いた方式とTCAM(Ternary
Content Addressable Memory)を用いた方式を紹介する。図10にツリーの中でもパトリシアツリーを用いて宛先アドレスを検索する例を示す。図中の円はツリーのノードを示す。ノードの中には宛先アドレスと次ノードへのポインタ、ルール番号が格納されている。なお、図は簡易な表記をするために、宛先アドレスは2進数で表記し、また*は検索時にはそれ以降のビットの値を無視することを示す。例えば、IPv4の宛先アドレスは本来32bitsあるが、宛先アドレスを10*と表記した場合には3bits目から32bits目は検索時には無視することになる(有効ビット長をプレフィック長と呼ぶ)。従ってパケットヘッダの中のIPv4の宛先アドレスが10000101…(全部で32bits)のようなパケットがパケット転送装置に到着した場合には、ルーティングテーブル上の宛先アドレスの項目に10*があれば、その項目とパケットヘッダの宛先アドレスは一致したことになる。逆にルーティングテーブル上に101*というものがあった場合には一致しないことになる。
As a conventional example of searching for a destination address, a tree-based method and TCAM (Ternary
Introducing a method using Content Addressable Memory. FIG. 10 shows an example of searching for a destination address using a Patricia tree among the trees. Circles in the figure indicate tree nodes. A node stores a destination address, a pointer to the next node, and a rule number. In the drawing, the destination address is expressed by a binary number for the sake of simple notation, and * indicates that the value of the subsequent bits is ignored during the search. For example, the IPv4 destination address is originally 32 bits, but if the destination address is written as 10 *, the 3rd to 32nd bits are ignored during the search (the effective bit length is called the prefix length). Accordingly, when a packet such as an IPv4 destination address 10000101... (32 bits in total) in the packet header arrives at the packet transfer device, if there is 10 * in the destination address item on the routing table, that item. And the destination address of the packet header match. Conversely, if there is a 101 * on the routing table, it will not match.

パトリシアツリーを利用した検索は、検索すべき宛先アドレスとノードに格納されている宛先アドレスとを比較しながら、ツリーを下方向へ分岐していく。検索はあるノードに検索すべきIPアドレスが到達したとき、そのノードが示す宛先アドレスと検索すべき宛先IPアドレスの上位から必要なビット分(*の直前のビット)までであり、100*ならば上位3ビット分を比較する。一致しない場合は、検索を終了する。一致した場合は、一致したノード中の処理を記録する。   In the search using the Patricia tree, the tree is branched downward while comparing the destination address to be searched with the destination address stored in the node. When the IP address to be searched reaches a certain node, the search is performed from the higher order of the destination address indicated by the node and the destination IP address to be searched (bits immediately before *) to 100 *. Compare the upper 3 bits. If they do not match, the search ends. If there is a match, the process in the matched node is recorded.

次に検索すべき宛先IPアドレスで、比較したビットの一番最後の次ビットに注目し、自分よりも下のノード(以下、子ノードと呼ぶ)が存在する場合は子ノードへ移り、検索を続け、子ノードが存在しない場合は、検索を終了し、記録したルール番号からポリシテーブル中の処理を実行する。以下では10000101…という宛先アドレスを検索する場合の具体例を図10を用いて示す。   At the destination IP address to be searched next, pay attention to the last bit of the compared bits, and if there is a node lower than itself (hereinafter referred to as a child node), move to the child node and search If no child node exists, the search is terminated and the process in the policy table is executed from the recorded rule number. Hereinafter, a specific example in the case of searching for a destination address of 10000101... Will be described with reference to FIG.

最初に宛先アドレスの最初の1ビット目を見て“0”であるか“1”であるかを判断する。本例では、“1”であるので、ノード100*へ移り上位3ビット分を比較する。一致しているので次に検査ビットとなるIPアドレスの4ビット目を調べる。検査ビットが0なのでノード10001*へ移るが、ここで一致しないため検索を終了し、ノード*とノード100*の2つが一致したことになる(例えば、特許文献1参照)。
特開2000−358064号公報
First, the first bit of the destination address is checked to determine whether it is “0” or “1”. In this example, since it is “1”, it moves to the node 100 * and compares the upper 3 bits. Since they match, the fourth bit of the IP address which is the next check bit is checked. Since the check bit is 0, the process moves to the node 10001 *. However, since the check bits do not match, the search is terminated, and the two nodes * and 100 * match (for example, refer to Patent Document 1).
JP 2000-358064 A

このようなツリーを用いた方式は、SRAMやDRAMといった汎用のメモリを用いることで実現可能であるため、経済的な装置を構築することが可能であり、大規模なエントリをサポートすることが可能であるという特徴を持つが、VPN識別子には送信元アドレスのようにDon‘t Careを含むようなものがあるので、単純にパトリシアツリーの検索ビット幅を増やすだけではVPNのルーティングテーブル検索を実現することができないという課題がある。   Since such a tree-based method can be realized by using a general-purpose memory such as SRAM or DRAM, it is possible to construct an economical device and support a large-scale entry. However, since there are VPN identifiers that include Don't Care like the source address, VPN routing table search is realized simply by increasing the search bit width of the Patricia tree. There is a problem that can not be done.

ルーティングテーブル検索にTCAM(Ternary-Content-Addressable-Memory)を使う方法がある。TCAMとはアドレスをキーとしてアクセスするのではなく、各番地に記録された値をキーとしてアクセスすることができる記憶素子である。TCAMの各番地には“0”と“1”のバイナリ(Binary)の値だけでなく、“Don‘t Care”も格納することができる。このようなTCAMを用いることで高速なルーティングテーブルの検索が可能となる。TCAMでは複数のものが同時にキーとして入力されたものに一致する場合は、最も若い番地にいるものが選ばれる。TCAMを用いて最長一致検索を行う場合はプレフィクス長が長い順番にTCAMの若番地に格納する必要がある。   There is a method of using TCAM (Ternary-Content-Addressable-Memory) for routing table search. A TCAM is a storage element that can be accessed using a value recorded at each address as a key, rather than using an address as a key. Not only binary values “0” and “1” but also “Don't Care” can be stored in each address of the TCAM. By using such a TCAM, a high-speed routing table can be searched. In the case of TCAM, when a plurality of items coincide with the ones input as keys at the same time, the one at the youngest address is selected. When the longest match search is performed using TCAM, it is necessary to store the prefix lengths in the order of increasing prefix length in the young address of TCAM.

最低条件は同じプレフィクス部分を共有する経路同士はプレフィクス長が長いものより若い番地に格納される必要がある。TCAMの格納領域をプレフィクス長毎に分割するのが簡便なやり方である。図11はそのような領域の分け方を示すものである。129.60.83.121/31はプレフィクス長が31の領域に格納し、129.60.83.121/30は30の領域に格納する。TCAMを用いる場合は、このように並べ替えが必要となり、更新に時間がかかるという問題がある。また商用のTCAMの多くは“0”と“1”と“Don‘t Care”をどの位置にでも配置することが可能で、単純にVPN識別子とルーティングテーブルのエントリを並べるだけで検索することは可能であるが、TCAMの容量には限界がありTCAM自体の構造が複雑で大規模にはできない。また原理的にアドレスを同時に多く探すので、非常に大きな消費電力を要し、かつ高価であるため経済的ではない。   The minimum condition is that paths that share the same prefix part need to be stored in a younger address than those having a longer prefix length. It is a simple way to divide the TCAM storage area for each prefix length. FIG. 11 shows how to divide such areas. 129.60.83.121/31 is stored in the area where the prefix length is 31, and 129.60.83.121/30 is stored in the area of 30. When TCAM is used, rearrangement is necessary in this way, and there is a problem that it takes time to update. Many commercial TCAMs can have “0”, “1”, and “Don't Care” placed at any position. Searching by simply arranging the VPN identifier and routing table entries is not possible. Although it is possible, the capacity of TCAM is limited and the structure of TCAM itself is complicated and cannot be made on a large scale. In principle, since many addresses are searched simultaneously, very large power consumption is required and the cost is not economical.

本発明は、このような背景に行われたものであって、IPルータなどのパケット転送装置において、VPNのルーティングテーブルの検索が遅く、また、更新が遅く、経済的かつ大規模なエントリを実現できないという課題を解決することを目的とする。   The present invention has been made against this background, and in a packet transfer device such as an IP router, the VPN routing table search is slow, the update is slow, and an economical and large-scale entry is realized. The purpose is to solve the problem of not being able to.

本発明は、入力回線から入力されたIPパケットを識別し、このパケットの次ホップを決定するためにツリーを用いるテーブル検索装置であって、本発明の特徴とするところは、入力IPパケットの属するVPNを識別するためのVPN識別子と、このVPNに対応するルーティングテーブル検索用ツリーへのポインタとを持つVPNテーブル検索ツリーを保持する手段と、この入力IPパケットの次ホップを決定するための次ホップ識別子を持つルーティングテーブル検索用ツリーをVPN毎にそれぞれ保持する手段とを備えたところにある。   The present invention is a table search apparatus that uses a tree to identify an IP packet input from an input line and determine the next hop of this packet. The present invention is characterized in that an input IP packet belongs to Means for holding a VPN table search tree having a VPN identifier for identifying a VPN and a pointer to a routing table search tree corresponding to this VPN, and a next hop for determining the next hop of this input IP packet And a means for holding a routing table search tree having an identifier for each VPN.

このように、VPN毎に個別に検索を実行するために、従来のように、VPN毎に分かれていない一つの大規模なツリーを一括検索する場合と比較して検索速度を高速化することができる。   As described above, in order to execute the search individually for each VPN, it is possible to increase the search speed as compared with the case where a single large tree that is not divided for each VPN is collectively searched as in the past. it can.

さらに、VPNテーブル検索ツリーとルーティングテーブル検索用ツリーとを別個に持つことにより、VPN識別子が更新された場合と、次ホップ識別子が更新された場合とで、それぞれ個別に識別子の更新を実行することができるため、更新速度を高速化することができる。   Furthermore, by separately having a VPN table search tree and a routing table search tree, the identifier is updated individually when the VPN identifier is updated and when the next hop identifier is updated. Therefore, the update speed can be increased.

このように、ポインタを用いてVPNテーブル検索ツリーとルーティングテーブル検索用ツリーとを接続する構成では、これら二つのツリーを物理的あるいは論理的に別個のメモリ領域に格納して実装することができる。   As described above, in the configuration in which the VPN table search tree and the routing table search tree are connected using the pointer, these two trees can be implemented by being stored in physically or logically separate memory areas.

また、IPパケットが入力された際にはこのIPパケットのVPNの識別に用いる情報とルーティングテーブル検索に用いる情報とをそれぞれ抽出する手段と、抽出した前記VPNの識別に用いる情報と前記VPNテーブル検索ツリーに格納されたVPN識別子とを比較する手段と、この比較する手段の比較結果として得られた前記ルーティングテーブル検索用ツリーへのポインタに対応する前記ルーティングテーブル検索用ツリーを選択する手段と、抽出した前記ルーティングテーブル検索に用いる情報と前記選択する手段により選択された前記ルーティングテーブル検索用ツリーに格納された次ホップ識別子とを比較して次ホップを検索する手段とを備えることができる。   Further, when an IP packet is input, means for extracting information used for identifying the VPN of the IP packet and information used for searching the routing table, information used for identifying the extracted VPN, and searching the VPN table Means for comparing VPN identifiers stored in the tree, means for selecting the routing table search tree corresponding to a pointer to the routing table search tree obtained as a comparison result of the comparing means, and extraction And means for searching for the next hop by comparing the information used for the routing table search with the next hop identifier stored in the routing table search tree selected by the selecting means.

一方、これら二つのツリーが物理的あるいは論理的に別個のメモリ領域に格納されていない場合には、ポインタを用いてこれら二つのツリーを接続する必要はなく、直接、VPNテーブル検索ツリーの末端ノードに、VPN毎にルーティングテーブル検索用ツリーを接続してもよい。   On the other hand, if these two trees are not stored in physically or logically separate memory areas, there is no need to connect these two trees using a pointer, and the end node of the VPN table search tree is directly used. In addition, a routing table search tree may be connected for each VPN.

すなわち、本発明のテーブル検索装置は、入力IPパケットの属するVPNを識別するためのVPN識別子をもつVPNテーブル検索ツリーと、このツリーの末端ノードにそれぞれ接続されたこの入力IPパケットの次ホップを決定するための次ホップ識別子を持つルーティングテーブル検索用ツリーとを保持する手段を備えたことを特徴とする。   That is, the table search apparatus of the present invention determines a VPN table search tree having a VPN identifier for identifying the VPN to which the input IP packet belongs, and the next hop of this input IP packet respectively connected to the end node of this tree. And a means for holding a routing table search tree having a next hop identifier.

また、IPパケットが入力された際にはこのIPパケットのVPNの識別に用いる情報とルーティングテーブル検索に用いる情報とをそれぞれ抽出する手段と、抽出した前記VPNの識別に用いる情報と前記VPNテーブル検索ツリーに格納されたVPN識別子とを比較する手段と、この比較する手段の比較結果として到達した前記末端ノードに接続された前記ルーティングテーブル検索用ツリーを用いて、抽出した前記ルーティングテーブル検索に用いる情報と当該末端ノードに接続された前記ルーティングテーブル検索用ツリーに格納された次ホップ識別子とを比較して次ホップを検索する手段とを備えることができる。   Further, when an IP packet is input, means for extracting information used for identifying the VPN of the IP packet and information used for searching the routing table, information used for identifying the extracted VPN, and searching the VPN table Information used for the routing table search extracted using the means for comparing the VPN identifier stored in the tree and the routing table search tree connected to the terminal node reached as a comparison result of the comparing means And a means for searching for a next hop by comparing the next hop identifier stored in the routing table search tree connected to the terminal node.

本発明の他の観点は、情報処理装置にインストールすることにより、その情報処理装置に、本発明のテーブル検索装置の各手段あるいは各ツリーに相応する機能を実現することを特徴とするプログラムである。   Another aspect of the present invention is a program characterized in that, when installed in an information processing apparatus, the information processing apparatus realizes functions corresponding to each means or each tree of the table search apparatus of the present invention. .

また、本発明のさらに他の観点は、本発明のプログラムが記録された前記情報処理装置読取可能な記録媒体である。本発明のプログラムは本発明の記録媒体に記録されることにより、前記情報処理装置は、この記録媒体を用いて本発明のプログラムをインストールすることができる。あるいは、本発明のプログラムを保持するサーバからネットワークを介して直接前記情報処理装置に本発明のプログラムをインストールすることもできる。   Still another aspect of the present invention is the information processing apparatus-readable recording medium on which the program of the present invention is recorded. By recording the program of the present invention on the recording medium of the present invention, the information processing apparatus can install the program of the present invention using this recording medium. Alternatively, the program of the present invention can be directly installed in the information processing apparatus via a network from a server holding the program of the present invention.

これにより、汎用の情報処理装置を用いて、IPルータなどのパケット転送装置においてツリーを用いたVPNのルーティングテーブルの検索を高速に、更新を高速に、経済的かつ大規模なエントリを実現することができるテーブル検索装置を実現することができる。   As a result, a general-purpose information processing device can be used to realize a high-speed and fast update of a VPN routing table using a tree in a packet transfer device such as an IP router, and an economical and large-scale entry. It is possible to realize a table search apparatus that can

本発明は、IPルータなどのパケット転送装置においてツリーを用いたVPNのルーティングテーブルの検索を高速に、更新を高速に、経済的かつ大規模なエントリを実現することができる。   The present invention can realize an economical and large-scale entry at a high speed, a high-speed update of a VPN routing table using a tree in a packet transfer apparatus such as an IP router.

以下本発明の実施例2つを説明する。   Two embodiments of the present invention will be described below.

図1は第一実施例のテーブル検索装置の構成図である。図1のように検索処理や各ツリーの更新処理を行う処理部1と、VPNを識別するためのVPNテーブル検索ツリーを格納するRAM2−1とVPN毎のルーティングテーブル検索用ツリーを格納するRAM2−2から成る。処理部1にパケットが入力されるとパケットのヘッダから、VPN識別をするための情報(例えば入力回線番号と送信元アドレス)と宛先パケットを抜き出す。   FIG. 1 is a block diagram of the table search apparatus of the first embodiment. As shown in FIG. 1, a processing unit 1 that performs search processing and update processing of each tree, a RAM 2-1 that stores a VPN table search tree for identifying a VPN, and a RAM 2 that stores a routing table search tree for each VPN It consists of two. When a packet is input to the processing unit 1, information (for example, an input line number and a source address) for identifying a VPN and a destination packet are extracted from the packet header.

まず初めにVPN識別をするための情報を検索キーとし、RAM2−1のVPNテーブル検索ツリーを用いて検索を行う。検索結果としてVPN毎のルーティングテーブル検索用ツリーのポインタを得る。   First, using the VPN table search tree in the RAM 2-1 as a search key, information for identifying the VPN is used as a search key. As a search result, a routing table search tree pointer for each VPN is obtained.

次に、このポインタによってVPN毎のルーティングテーブル検索用ツリーを識別し、抜き出した宛先アドレスをキーとしてRAM2−2のVPN毎のルーティングテーブル検索用ツリーを用いて検索を行う。検索結果として次ホップを得る。得られた次ホップに向けてパケットを送出する。図2にVPNテーブル検索ツリーを格納するRAM2−1に入れるべき情報を示す。なお、本例ではツリーとしてパトリシアツリーを採用した場合の例を示す。   Next, a routing table search tree for each VPN is identified by this pointer, and a search is performed using the routing table search tree for each VPN in the RAM 2-2 using the extracted destination address as a key. The next hop is obtained as a search result. A packet is transmitted toward the obtained next hop. FIG. 2 shows information to be put in the RAM 2-1 that stores the VPN table search tree. In this example, an example in which a Patricia tree is adopted as a tree is shown.

また、本例ではVPN識別をするための情報として入力回線番号と送信元アドレスを採用している。0E、1Eとは次ビットが0あるいは1の子ノードが存在するか否かを示すビットである。例えば図9の100*のノードには次ビットが0のノードが存在するので0Eは存在することを示すビットが立ち、同様に次ビットが1のノードが存在するので1Eは存在することを示すビットが立つ。   In this example, the input line number and the source address are used as information for identifying the VPN. 0E and 1E are bits indicating whether or not there is a child node whose next bit is 0 or 1. For example, since a node with the next bit of 0 exists in the node of 100 * in FIG. 9, a bit indicating that 0E exists is set. Similarly, since a node with the next bit of 1 exists, 1E exists. A bit stands.

0−Address、1−Addressは、子ノードが格納されているRAMの物理アドレスを示す。VPNEはVPN毎のルーティングテーブル検索用ツリーのポインタがそのノードに存在するかしないかを示す。Pointer of VPNはVPN毎のルーティングテーブル検索用ツリーへのポインタであり、具体的にはVPN毎のルーティングテーブル検索用ツリーが格納されているRAM2−2の物理アドレスである。これらの情報を利用してパトリシアツリーの検索を行う。   0-Address and 1-Address indicate the physical address of the RAM in which the child node is stored. VPNE indicates whether or not the pointer of the routing table search tree for each VPN exists in the node. Pointer of VPN is a pointer to a routing table search tree for each VPN, specifically, a physical address of the RAM 2-2 in which a routing table search tree for each VPN is stored. The Patricia tree is searched using this information.

検索キーとして回線番号と送信元アドレスで各ノードで検索を行い、子ノードへとさらに検索を進めるために0−Address、1−Addressを利用して子ノードが格納されているRAMの物理アドレスを得る。物理アドレスを元に子ノードへと検索を進め、最終的に検索結果として、ポインタを得ることが可能となる。   The search is performed at each node using the line number and the transmission source address as a search key, and the physical address of the RAM in which the child node is stored is used using 0-Address and 1-Address to further search to the child node. obtain. The search is advanced to the child node based on the physical address, and finally a pointer can be obtained as a search result.

図3はVPN毎のルーティングテーブル検索用ツリーを格納するRAM2−2に入れるべき情報を示す。なお、本例ではツリーとしてパトリシアツリーを採用した場合の例を示す。OUTEは次ホップがそのノードに存在するかしないかを示す。検索方法は図2の説明と変わらない。最終的な結果として次ホップを得ることができる。   FIG. 3 shows information to be put in the RAM 2-2 for storing a routing table search tree for each VPN. In this example, an example in which a Patricia tree is adopted as a tree is shown. OUTE indicates whether or not a next hop exists at the node. The search method is not different from the description of FIG. The final result is the next hop.

図4は本実施例の検索の論理的なイメージを図にしたものである。VPNテーブル検索ツリーを検索後、VPN毎のポインタを利用して各VPNのルーティングテーブル検索用ツリーを検索するというものである。VPNを識別するためのVPNテーブル検索ツリーを格納するRAM2−1とVPN毎のルーティングテーブル検索用ツリーを格納するRAM2−2とを分けるので、VPN内でのルーティングテーブルの更新はVPNに閉じて行うことが出来るので高速に更新を行うことが可能となる。また、ツリーを用いているので経済的な装置を構築が可能であり、大規模なエントリをサポートすることが可能であるという利点も持つ。   FIG. 4 is a diagram showing a logical image of the search in this embodiment. After searching the VPN table search tree, the routing table search tree of each VPN is searched using the pointer for each VPN. Since the RAM 2-1 for storing the VPN table search tree for identifying the VPN and the RAM 2-2 for storing the routing table search tree for each VPN are separated, the routing table in the VPN is updated by closing the VPN. Can be updated at high speed. In addition, since a tree is used, it is possible to construct an economical device and to support a large-scale entry.

図5は第二実施例のテーブル検索装置の構成図である。図5のように検索処理や各ツリーの更新処理を行う処理部1と、VPNルーティングテーブル一括検索用ツリーを格納するRAM3から成る。処理部1にパケットが入力されるとパケットのヘッダから、VPN識別をするための情報(例えば入力回線番号と送信元アドレス)と宛先アドレスを抜き出す。VPN識別をするための情報と宛先アドレスを繋げて、一つの検索キーとしてVPNルーティングテーブル一括検索用ツリーを利用し検索を行う。図6はVPNルーティングテーブル一括検索用ツリーの一例を示す図である。図6に示すように、VPNルーティングテーブル一括検索用ツリーは、図4に示したVPNテーブル検索ツリーの末端ノードに、さらに、図4に示したルーティングテーブル検索用ツリーがVPN毎に直接に接続された構成である。   FIG. 5 is a block diagram of the table search apparatus of the second embodiment. As shown in FIG. 5, it includes a processing unit 1 that performs search processing and update processing of each tree, and a RAM 3 that stores a VPN routing table batch search tree. When a packet is input to the processing unit 1, information (for example, an input line number and a source address) for identifying a VPN and a destination address are extracted from the packet header. The information for identifying the VPN and the destination address are connected, and a search is performed using the VPN routing table batch search tree as one search key. FIG. 6 is a diagram illustrating an example of a VPN routing table batch search tree. As shown in FIG. 6, the VPN routing table batch search tree is directly connected to the end node of the VPN table search tree shown in FIG. 4, and the routing table search tree shown in FIG. 4 is directly connected to each VPN. It is a configuration.

VPNを識別するための情報の種別として2種類ある。1つ目は入力回線番号などのように一意の値であるような情報である。2つ目は送信元アドレスのようにDon‘t Careの部分が存在し値が一意でない情報である。第二実施例では、VPN検索と次ホップ検索とを一本のツリーで行うため、Don’t Care部分が存在すると、その部分でツリーの接続が途切れてしまう。したがって、第二実施例では、このDon‘t Care部分を回避する対策が必要になる。なお、第一実施例では、VPN検索のためのツリーがDon’t Care部分で途切れたら、その時点でVPN検索を終了し、次ホップ検索のためのポインタを取得することができるので、Don‘t Care部分が存在してもよい。   There are two types of information for identifying the VPN. The first is information that is a unique value such as an input line number. The second is information in which the Don't Care portion exists and the value is not unique, such as the source address. In the second embodiment, since the VPN search and the next hop search are performed with a single tree, if there is a Don't Care part, the connection of the tree is interrupted at that part. Therefore, in the second embodiment, a measure for avoiding this Don't Care portion is required. In the first embodiment, if the tree for VPN search is interrupted at the Don't Care portion, the VPN search is terminated at that point, and a pointer for next hop search can be acquired. A t Care portion may be present.

ここで、Don‘t Care部分を回避するために、Don’t Careの部分が存在し値が一意でない情報を一意な情報に変換する方法を述べる。例えば、3bitの値で10*は100と101の2つと等価である。図7に一意でない送信元アドレスを増やすことで一意の情報にし、VPN用のルーティングテーブルを構築した例を示す。   Here, in order to avoid the Don't Care portion, a method of converting information having a Don't Care portion and having a non-unique value into unique information will be described. For example, with a 3-bit value, 10 * is equivalent to two of 100 and 101. FIG. 7 shows an example in which a non-unique source address is increased to make unique information and a VPN routing table is constructed.

すなわち、図7の例では、元々は送信元アドレスが192.168.1.180/30であり、30ビット目から32ビット目まではDon‘t Care部分である。これを回避するためには、192.168.1.180/32、192.168.1.181/32、192.168.1.182/32、192.168.1.183/32という複数の送信元アドレスを生成して対応する。つまり、Don’t Care部分とは、言い換えると「なんでもよい」部分ということである。したがって、このように、複数の送信元アドレスを適宜生成することによってツリー検索上で不都合が発生しないように対応することができる。   That is, in the example of FIG. 7, the source address is originally 192.168.1.180/30, and the 30th to 32nd bits are Don't Care portions. In order to avoid this, a plurality of 192.168.1.180/32, 192.168.1.181/32, 192.168.1.182/32, 192.168.1.183/32 Generate a source address and respond. In other words, the Don't Care part is an "anything" part. Therefore, it is possible to cope with the occurrence of inconvenience in the tree search by appropriately generating a plurality of transmission source addresses.

この例のようにVPNを識別するための情報の種別として一意でない情報が含まれていても、一意な情報の集合にすることが可能である。図8にVPNルーティングテーブル一括検索用ツリーを格納するRAM3に入れるべき情報を示す。このVPN用のルーティングテーブルを利用して、VPNルーティングテーブル一括検索用ツリーを構築することで一度にVPNの識別に用いる情報とルーティングテーブル検索に用いる情報を検索することが可能となる。一度に検索を行うことが可能であるため高速な検索が可能となる。ツリーを用いているので経済的な装置を構築が可能であり、大規模なエントリをサポートすることが可能であるという利点を持つ。   Even if non-unique information is included as a type of information for identifying the VPN as in this example, it is possible to make a set of unique information. FIG. 8 shows information to be stored in the RAM 3 that stores the VPN routing table batch search tree. By using this VPN routing table to construct a VPN routing table batch search tree, it is possible to search information used for VPN identification and information used for routing table search at a time. Since a search can be performed at a time, a high-speed search is possible. Since a tree is used, it is possible to construct an economical device and to support a large-scale entry.

本発明は、汎用の情報処理装置にインストールすることにより、その情報処理装置に本発明のテーブル検索装置に相応する機能を実現させるプログラムとして実現することができる。このプログラムは、記録媒体に記録されて情報処理装置にインストールされ、あるいは通信回線を介して情報処理装置にインストールされることにより当該情報処理装置に、処理部1に相応する機能を実現させることができる。   The present invention can be implemented as a program that, when installed in a general-purpose information processing apparatus, causes the information processing apparatus to realize a function corresponding to the table search apparatus of the present invention. The program is recorded on a recording medium and installed in the information processing apparatus, or installed in the information processing apparatus via a communication line, thereby causing the information processing apparatus to realize a function corresponding to the processing unit 1. it can.

本発明は、IPルータなどのパケット転送装置においてツリーを用いたVPNのルーティングテーブルの検索を高速に、更新を高速に、経済的かつ大規模なエントリを実現することができる。これにより、今後共、大きな需要が見込まれるVPNの運営に際し、ユーザあるいは管理者の利便性を向上させることができる。   The present invention can realize an economical and large-scale entry at a high speed, a high-speed update of a VPN routing table using a tree in a packet transfer apparatus such as an IP router. As a result, the convenience of the user or the administrator can be improved in the operation of a VPN that is expected to be highly demanded in the future.

第一実施例の装置構成例を示す図。The figure which shows the apparatus structural example of a 1st Example. VPNテーブル検索ツリーを格納するRAMに入れるべき情報を示す図。The figure which shows the information which should be put in RAM which stores a VPN table search tree. VPN毎のルーティングテーブル検索用ツリーを格納するRAMに入れるべき情報を示す図。The figure which shows the information which should be put in RAM which stores the routing table search tree for every VPN. 第一実施例の検索の論理イメージを示す図。The figure which shows the logical image of the search of a 1st Example. 第二実施例のテーブル検索装置の構成例を示す図。The figure which shows the structural example of the table search device of 2nd Example. VPNルーティングテーブル一括検索用ツリーの一例を示す図。The figure which shows an example of the tree for VPN routing table batch search. 一意でない送信元アドレスを増やすことで一意の情報にし、VPN用のルーティングテーブルを構築することを説明するための図。The figure for demonstrating making it into unique information by increasing the non-unique transmission source address, and building the routing table for VPN. VPNルーティングテーブル一括検索用ツリーを格納するRAMに入れるべき情報を示す図。The figure which shows the information which should be put in RAM which stores the tree for VPN routing table batch search. VPNサービスの実現例を説明するための図。The figure for demonstrating the implementation example of a VPN service. パトリシアツリーを説明するための図。The figure for demonstrating a Patricia tree. TCAMを用いて最長一致検索を行う場合にエントリをプリフィックス長に分けて格納することを説明するための図。The figure for demonstrating dividing an entry into prefix length when performing the longest match search using TCAM.

符号の説明Explanation of symbols

1 処理部
2−1、2−2、3 RAM
1 Processing unit 2-1, 2-2, 3 RAM

Claims (6)

入力回線から入力されたIP(Internet Protocol)パケットを識別し、このパケットの次ホップ(パケットを次に転送するルータのアドレス)を決定するためにツリーを用いるテーブル検索装置において、
入力IPパケットの属するVPN(Virtual Private Network)を識別するためのVPN識別子と、このVPNに対応するルーティングテーブル検索用ツリーへのポインタとを持つVPNテーブル検索ツリーを保持する手段と、
この入力IPパケットの次ホップを決定するための次ホップ識別子を持つルーティングテーブル検索用ツリーをVPN毎にそれぞれ保持する手段と
を備えた
ことを特徴とするテーブル検索装置。
In a table search apparatus that uses a tree to identify an IP (Internet Protocol) packet input from an input line and determine the next hop of this packet (the address of the router that forwards the packet next),
Means for holding a VPN table search tree having a VPN identifier for identifying a VPN (Virtual Private Network) to which the input IP packet belongs, and a pointer to a routing table search tree corresponding to the VPN;
A table search apparatus comprising: a means for holding a routing table search tree having a next hop identifier for determining a next hop of the input IP packet for each VPN.
IPパケットが入力された際にはこのIPパケットのVPNの識別に用いる情報とルーティングテーブル検索に用いる情報とをそれぞれ抽出する手段と、
抽出した前記VPNの識別に用いる情報と前記VPNテーブル検索ツリーに格納されたVPN識別子とを比較する手段と、
この比較する手段の比較結果として得られた前記ルーティングテーブル検索用ツリーへのポインタに対応する前記ルーティングテーブル検索用ツリーを選択する手段と、
抽出した前記ルーティングテーブル検索に用いる情報と前記選択する手段により選択された前記ルーティングテーブル検索用ツリーに格納された次ホップ識別子とを比較して次ホップを検索する手段と
を備えた請求項1記載のテーブル検索装置。
Means for extracting information used for identifying the VPN of the IP packet and information used for searching the routing table when the IP packet is input;
Means for comparing the extracted information used for identifying the VPN with a VPN identifier stored in the VPN table search tree;
Means for selecting the routing table search tree corresponding to the pointer to the routing table search tree obtained as a comparison result of the means for comparing;
2. A means for searching for a next hop by comparing the extracted information used for the routing table search with a next hop identifier stored in the routing table search tree selected by the selecting means. Table search device.
入力回線から入力されたIPパケットを識別し、このパケットの次ホップを決定するためにツリーを用いるテーブル検索装置において、
入力IPパケットの属するVPNを識別するためのVPN識別子をもつVPNテーブル検索ツリーと、このツリーの末端ノードにそれぞれ接続されたこの入力IPパケットの次ホップを決定するための次ホップ識別子を持つルーティングテーブル検索用ツリーとを保持する手段を備えた
ことを特徴とするテーブル検索装置。
In a table search apparatus that uses a tree to identify an IP packet input from an input line and determine the next hop of this packet,
A VPN table search tree having a VPN identifier for identifying the VPN to which the input IP packet belongs, and a routing table having a next hop identifier for determining the next hop of this input IP packet respectively connected to the end node of this tree A table search device comprising means for holding a search tree.
IPパケットが入力された際にはこのIPパケットのVPNの識別に用いる情報とルーティングテーブル検索に用いる情報とをそれぞれ抽出する手段と、
抽出した前記VPNの識別に用いる情報と前記VPNテーブル検索ツリーに格納されたVPN識別子とを比較する手段と、
この比較する手段の比較結果として到達した前記末端ノードに接続された前記ルーティングテーブル検索用ツリーを用いて、抽出した前記ルーティングテーブル検索に用いる情報と当該末端ノードに接続された前記ルーティングテーブル検索用ツリーに格納された次ホップ識別子とを比較して次ホップを検索する手段と
を備えた請求項3記載のテーブル検索装置。
Means for extracting information used for identifying the VPN of the IP packet and information used for searching the routing table when the IP packet is input;
Means for comparing the extracted information used for identifying the VPN with a VPN identifier stored in the VPN table search tree;
Using the routing table search tree connected to the terminal node reached as a comparison result of the comparing means, the information used for the routing table search extracted and the routing table search tree connected to the terminal node The table search device according to claim 3, further comprising means for searching for a next hop by comparing with a next hop identifier stored in.
情報処理装置にインストールすることにより、その情報処理装置に、請求項1ないし4のいずれかに記載のテーブル検索装置の各手段または各ツリーに相応する機能を実現させることを特徴とするプログラム。   A program that, when installed in an information processing apparatus, causes the information processing apparatus to realize a function corresponding to each means or each tree of the table search apparatus according to any one of claims 1 to 4. 請求項5記載のプログラムが記録された前記情報処理装置読み取り可能な記録媒体。   6. A recording medium readable by the information processing apparatus on which the program according to claim 5 is recorded.
JP2003283376A 2003-07-31 2003-07-31 Table search instrument Pending JP2005051650A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003283376A JP2005051650A (en) 2003-07-31 2003-07-31 Table search instrument

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003283376A JP2005051650A (en) 2003-07-31 2003-07-31 Table search instrument

Publications (1)

Publication Number Publication Date
JP2005051650A true JP2005051650A (en) 2005-02-24

Family

ID=34268280

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003283376A Pending JP2005051650A (en) 2003-07-31 2003-07-31 Table search instrument

Country Status (1)

Country Link
JP (1) JP2005051650A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007174583A (en) * 2005-12-26 2007-07-05 Mitsubishi Electric Corp Network repeater
KR101255857B1 (en) 2006-03-16 2013-04-17 리서치 파운데이션 오브 더 시티 유니버시티 오브 뉴욕 Tree-guided distributed link state routing method
WO2014061583A1 (en) * 2012-10-15 2014-04-24 日本電気株式会社 Communication node, control device, communication system, packet processing method, and program

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007174583A (en) * 2005-12-26 2007-07-05 Mitsubishi Electric Corp Network repeater
JP4615435B2 (en) * 2005-12-26 2011-01-19 三菱電機株式会社 Network relay device
KR101255857B1 (en) 2006-03-16 2013-04-17 리서치 파운데이션 오브 더 시티 유니버시티 오브 뉴욕 Tree-guided distributed link state routing method
US8638695B2 (en) 2006-03-16 2014-01-28 Samsung Electronics Co., Ltd. Tree-guided distributed link state routing method
WO2014061583A1 (en) * 2012-10-15 2014-04-24 日本電気株式会社 Communication node, control device, communication system, packet processing method, and program
JPWO2014061583A1 (en) * 2012-10-15 2016-09-05 日本電気株式会社 COMMUNICATION NODE, CONTROL DEVICE, COMMUNICATION SYSTEM, PACKET PROCESSING METHOD, AND PROGRAM

Similar Documents

Publication Publication Date Title
US6633548B2 (en) Method and apparatus for ternary content addressable memory (TCAM) table management
US7089240B2 (en) Longest prefix match lookup using hash function
US6778984B1 (en) Flexible and high-performance packet classification algorithm
US11687594B2 (en) Algorithmic TCAM based ternary lookup
US6792423B1 (en) Hybrid longest prefix match and fixed match searches
KR100586461B1 (en) Method, Hardware Architecture and Recording Medium for Searching IP Address by Using Pipeline Binary Tree
US8923298B2 (en) Optimized trie-based address lookup
US7624226B1 (en) Network search engine (NSE) and method for performing interval location using prefix matching
CN110460529B (en) Data processing method and chip for forwarding information base storage structure of content router
CN106803809B (en) Message forwarding method and device
US9485179B2 (en) Apparatus and method for scalable and flexible table search in a network switch
US20040044868A1 (en) Method and apparatus for high-speed longest prefix match of keys in a memory
US7299317B1 (en) Assigning prefixes to associative memory classes based on a value of a last bit of each prefix and their use including but not limited to locating a prefix and for maintaining a Patricia tree data structure
US10454825B2 (en) Hybrid routing table for routing network traffic
EP1657859B1 (en) Protocol speed increasing device
JP2005051650A (en) Table search instrument
JP3609358B2 (en) Flow identification search apparatus and method
JP3795881B2 (en) Table search method and apparatus
CN109194574B (en) IPv6 route searching method
JP3779619B2 (en) Packet transfer device, network, program, and recording medium
JP3779618B2 (en) Packet transfer device, network, program, and recording medium
JP4220330B2 (en) VPN table search device
JP4358244B2 (en) Protocol acceleration device
Lee et al. Packet classification using diagonal-based tuple space search
JPWO2005013566A1 (en) Data search method and apparatus

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060616

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060801

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080604

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080715

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080911

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20081028