(57)【要約】【課題】  ＡＲＰ等のデータベースのエージング処理を高速化し、管理モジュールにおける処理遅延やプロトコル上の遅延の発生を抑える必要がある。【解決手段】  ネットワーク間接続装置であって、プロトコルアドレスと物理デバイスアドレスとの対応関係を保持し、受信したパケットのプロトコルアドレスに基づいて前記対応関係を参照して前記パケットの転送処理を行うパケット転送部と、前記対応関係を管理する管理部とを備え、前記パケット転送部が、前記転送処理において参照されていないプロトコルアドレスを保持する第１の連想メモリと、前記転送処理において参照されたプロトコルアドレスを保持する第２の連想メモリとを備えることにより、連想メモリを用いてプロトコルアドレスが参照されたか否かを管理することができるネットワーク間接続装置を提供する。【選択図】  図１
2010098554.tif 000002
【特許請求の範囲】
【請求項１】
パケットを送受信するネットワーク間接続装置であって、
プロトコルアドレスと物理デバイスアドレスとの対応関係を保持し、受信したパケットのプロトコルアドレスに基づいて前記対応関係を参照して前記パケットの転送処理を行うパケット転送部と、
前記対応関係を管理する管理部とを備え、
前記パケット転送部は、前記転送処理において参照されていないプロトコルアドレスを保持する第１の連想メモリと、前記転送処理において参照されたプロトコルアドレスを保持する第２の連想メモリとを備えることを特徴とするネットワーク間接続装置。
【請求項２】
請求項１に記載のネットワーク間接続装置であって、
前記管理部は、
前記プロトコルアドレスと物理デバイスアドレスとの対応関係の満了時間を更に管理し、
前記第１の連想メモリに保持されている第１のプロトコルアドレスについての前記満了時間が経過したか否かを監視し、前記満了時間が経過している場合に前記第１のプロトコルアドレスと物理デバイスアドレスとの前記対応関係を削除することを特徴とするネットワーク間接続装置。
【請求項３】
請求項２に記載のネットワーク間接続装置であって、
前記管理部は、
前記第２の連想メモリに第２のプロトコルアドレスが保持されているか否かを更に監視し、前記第２のプロトコルアドレスが保持されている場合に、前記第２のプロトコルアドレスと物理デバイスアドレスとの対応関係についての満了時間をリセットするとともに、前記第２のプロトコルアドレスを前記第２の連想メモリから削除し前記第１の連想メモリに保持させることを特徴とするネットワーク間接続装置。
【請求項４】
請求項３に記載のネットワーク間接続装置であって、
前記リセットは、現在時間に所定の時間を加えた時間を前記満了時間として設定し直すことにより行うことを特徴とするネットワーク間接続装置。
【請求項５】
請求項２乃至請求項４のいずれかに記載のネットワーク間接続装置であって、
前記管理部は、前記監視を定期的に行うことを特徴とするネットワーク間接続装置。
【請求項６】
第１種のアドレスと第２種のアドレスとの対応関係を保持し、受信したパケットの第１種のアドレスに基づいて前記対応関係を参照して前記パケットの転送処理を行うパケット転送部と、前記対応関係を管理する管理部とを備えるネットワーク間接続装置における前記対応関係の管理方法であって、
前記パケット転送部が前記第１種のアドレスを第１の連想メモリに保持するステップと、前記転送処理において前記第１の連想メモリに保持された前記第１種のアドレスを参照すると前記第１種のアドレスを前記第１の連想メモリから削除し第２の連想メモリに保持するステップとを有することを特徴とする管理方法。
【請求項７】
請求項６に記載の管理方法であって、
前記ネットワーク間接続装置の前記管理部は前記第１種のアドレスと前記第２種のアドレスとの対応関係の満了時間を更に管理し、
前記管理部が前記第１の連想メモリに保持されている前記第１種のアドレスについての前記満了時間が経過したか否かを監視するステップと、前記満了時間が経過している場合に前記第１種のアドレスと前記第２種のアドレスとの前記対応関係を削除するステップとを有することを特徴とする管理方法。
【請求項８】
請求項７に記載の管理方法であって、
前記管理部が前記第２の連想メモリに前記第１種のアドレスが保持されているか否かを監視するステップと、前記第２の連想メモリに前記第１種のアドレスが保持されている場合に、前記第２の連想メモリに保持されている前記第１種のアドレスについての前記満了時間をリセットするとともに前記第２の連想メモリから前記第１種のアドレスを削除し前記第１の連想メモリに保持させるステップとを更に有することを特徴とする管理方法。
【請求項９】
請求項８に記載の管理方法であって、
前記リセットは、現在時間に所定の時間を加えた時間を前記満了時間として設定し直すことにより行うことを特徴とする管理方法。
【請求項１０】
請求項７乃至請求項９のいずれかに記載の管理方法であって、
前記監視するステップは、定期的に行うことを特徴とする管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信ネットワークにおけるネットワーク間接続装置に関し、特に、パケット中継における通信プロトコルのアドレスと物理デバイスのアドレス対応データベース管理を行うネットワーク間接続装置およびその管理方法に関するものである。
【背景技術】
【０００２】
通信ネットワークにおいて、各装置はイーサネット（登録商標）のような物理デバイスで接続されており、各プロトコルのパケットは物理デバイスのフレームにカプセル化して隣接する装置に送信される。従ってプロトコルアドレスに基づいた中継であっても、隣接する装置にパケットを渡す際は、プロトコルアドレスから物理デバイスのアドレスに変換するデータベースが必要となり、これを実現する代表的なものとしてＡＲＰ（Ａｄｄｒｅｓｓ  Ｒｅｓｏｌｕｔｉｏｎ  Ｐｒｏｔｏｃｏｌ）などが挙げられる。
【０００３】
図３は、従来のネットワーク間接続装置３００の構成を示すブロック図である。ネットワーク間接続装置３００は、他の装置と接続するためのイーサネット（登録商標）等の回線を収容する複数の回線収容部３０３と、回線収容部３０３を介して受信したパケットを宛先アドレスに基づいて他の装置へ転送する転送エンジン３０２と、装置の設定・複雑なプロトコル処理などを行う管理モジュール３０１を含む。転送エンジン３０２は高速なパケット転送処理を実現するためにＡＳＩＣ等のハードウェアで構成される。管理モジュール３０１はＣＰＵおよびメモリ等で構成され、複雑なプロトコル処理などをソフトウェアで行う。
【０００４】
管理モジュール３０１は、例えばＡＲＰ等のデータベース３１１を保持しており、プロトコル処理に基づいてエントリの管理（作成、削除、タイマ監視など）をソフトウェアで行っている。また、実際にパケットの転送処理を行う転送エンジン３０２もＡＲＰ等のデータベースの内容を保持しており、転送エンジン３０２は自身が保持するデータベースの内容を参照してパケットのハードウェア転送を行う。管理モジュール３０１のソフトウェア処理によって、管理モジュール３０１と転送エンジン３０２のそれぞれが保持するデータベースの内容は同期がとられている。
【０００５】
転送エンジン３０２では、パケット転送処理の際に行うテーブル検索を高速化するため、ＡＲＰデータベースに連想メモリ（ＣＡＭ：Ｃｏｎｔｅｎｔ  Ａｄｄｒｅｓｓａｂｌｅ  Ｍｅｍｏｒｙ）３２２を使用する。連想メモリ３２２はエントリを１つずつキーと一致するかを検索するのではなく、検索が並列実行されるため非常に高速に検索が可能であるが、検索結果として配列のアドレス３２３が返るため、検索のキー３２４となるプロトコルアドレスを連想メモリ３２２に格納するのに加え、物理デバイスアドレス等の属性情報を記録するために、別途テーブルメモリ３２５が必要であり、キー３２４のアドレス３２３の順にこれらの属性情報をテーブルメモリ３２５に格納することで、データベースとして機能させている。テーブルメモリ３２５は一般にＲＡＭ等で構成されるが、ＣＡＭに比べアクセス速度が遅いため、属性情報を読み書きする場合にはシステム負荷がかかる。
【０００６】
ＡＲＰなどのプロトコルによっては、データベースエントリに満了時間を設定し、最後に参照されてから設定した時間が経過するとエントリを削除するエージング処理を行う必要があるものがある。エージング処理では満了時間はエントリが参照されたらリセットする必要があり、転送エンジン３０２のデータベースにエントリが参照されたかを監視するためのロジックを組み込む必要がある。
【０００７】
監視するためのロジックとして一般的には、転送エンジン３０２のテーブルメモリ３２５上の各エントリの属性情報の1つにヒットビット３２７という領域を設け、エントリの新規作成時またはリセットされた直後にこれを「０」に設定しておく。そして、転送エンジン３０２がパケット転送時に当該エントリを参照した際に、ヒットビット３２７が「０」であったら「１」に変更するというロジックを組み込んでおく。これにより、転送エンジン３０２において、データベースのどのエントリが参照されたかを管理することができる。
【０００８】
エージング処理が必要なプロトコルでは、どのエントリが参照されたかを監視するため、管理モジュール３０１のソフトウェアにてタイマ処理を起動し、定期的にハードウェアの転送エンジン３０２にあるデータベースの全エントリを確認する必要がある。
【０００９】
図４は、管理モジュール３０１が行うエージング処理を示すフローチャートである。管理モジュール３０１はタイマによる定期処理にて、図４に示す処理を実行する。
【００１０】
管理モジュール３０１は、転送エンジン３０２の連想メモリ３２２からキー３２４であるプロトコルアドレスを検索する（ステップ４０１）。検索結果として連想メモリ３２２のアドレス３２３が返るため、当該アドレスからテーブルメモリ３２５の位置を計算し（ステップ４０２）、計算した位置にあるテーブルメモリ３２５のヒットビット３２７を参照する（ステップ４０３）。
【００１１】
ヒットビット３２７が「1」であれば、ステップ４０１で用いたキー３２４のプロトコルアドレスに合致するエントリを管理モジュール３０１のデータベース３１１から検索し、当該エントリ満了時間３１４を現在時間＋システム満了時間に再設定し、更に、転送エンジン３０２のヒットビット３２７を「0」にクリアする（ステップ４０４）。その後、ステップ４０７へ進む。
【００１２】
一方、ステップ４０３において、ヒットビット３２７が「0」であれば、ステップ４０１で用いたキー３２４のプロトコルアドレスに合致するエントリを管理モジュール３０１のデータベース３１１から検索し、当該エントリ満了時間３１４と現在時間を比較する（ステップ４０５）。現在時間が満了時間３１４を経過していれば、管理モジュール３０１のデータベース３１１および転送エンジン３０２の連想メモリ３２２、テーブルメモリ３２５から当該エントリに対応するエントリに格納された情報を全て削除し（ステップ４０６）、ステップ４０７へ進む。ステップ４０５において、現在時間が満了時間３１４を経過していなければ、そのままステップ４０７へ進む。
【００１３】
ステップ４０７では、次のエントリの有無を確認し、次のエントリがあればステップ４０１に戻り、エージング処理を継続する。
【００１４】
なお、連想メモリを使用したエージング処理高速化について特許文献１に記載されたものがあるが、こちらは単一の連想メモリにてエージング処理を行うもので、一定期間が経過した場合に自動的にハードウェアから削除されてしまうため、管理モジュールのソフトウェアで管理しているＡＲＰのようなデータベースのエージング処理には適用することができない。
【００１５】
【特許文献１】特開２００３−９１４５４
【発明の開示】
【発明が解決しようとする課題】
【００１６】
エージング処理は、データベース３１１の全エントリについて行わなければならない。しかし、図４を用いて説明した従来のエージング処理では、連想メモリ３２２へのアクセスに加え、テーブルメモリ３２５の位置計算（図４のステップ４０２）やアクセス速度の遅いテーブルメモリ３２５（ＲＡＭ）の参照（図４のステップ４０３）などを行う必要があり、システムに対する負荷が大きい。このため、エージング処理を行う対象のエントリ数が非常に多い場合はタイマ処理に時間がかかり、管理モジュール３０１の処理に遅延をもたらす場合がある。
【００１７】
これを回避するために、定期タイマ処理にて遅延が発生しない程度に同時に処理するエントリ数に制限を設ける必要があるが、この場合全てのエントリの監視を完了するには、定期タイマ処理が複数回実行されるのを待たなければならず、タイマの実行回数分だけプロトコル上の遅延が発生してしまう問題がある。
【００１８】
また、特許文献１記載の技術では、連想メモリのワードを一部エージング処理に使用することで、ハードウェアのエントリのみでエージングを実現することが可能であるが、ソフトウェアで管理するデータベースのエージング処理を高速化するには以下のような問題があるため適用することはできない。
（１）ハードウェアエントリが自動的に削除されてしまうため、ソフトウェアデータベースとの整合性がとれなくなる可能性がある。
（２）プロトコルによっては、ＩＰｖ６のＮＵＤ（Ｎｅｉｇｈｂｏｒ Ｕｎｒｅａｃｈａｂｉｌｉｔｙ Ｄｅｔｅｃｔｉｏｎ）のように、単純に一定時間経過後削除するのではなく、何らかの処理を必要とするものがある。
（３）汎用的な連想メモリではなく、特殊な連想メモリが必要となる。
【００１９】
そこで本発明の目的は、従来よりもソフトウェアデータベースのエージング処理を高速化し、管理モジュールにおける処理遅延やプロトコル上の遅延の発生を抑えることにある。
【課題を解決するための手段】
【００２０】
上記の目的を達成するために、本発明では、ネットワーク間接続装置であって、プロトコルアドレスと物理デバイスアドレスとの対応関係を保持し、受信したパケットのプロトコルアドレスに基づいて前記対応関係を参照して前記パケットの転送処理を行うパケット転送部と、前記対応関係を管理する管理部とを備え、前記パケット転送部が、前記転送処理において参照されていないプロトコルアドレスを保持する第１の連想メモリと、前記転送処理において参照されたプロトコルアドレスを保持する第２の連想メモリとを備えることにより、連想メモリを用いてプロトコルアドレスが参照されたか否かを管理することができるネットワーク間接続装置を提供する。
【発明の効果】
【００２１】
エージング処理を高速化し、管理モジュールにおける処理遅延やプロトコル上の遅延の発生を抑えることことができる。
【発明を実施するための最良の形態】
【００２２】
図１は、本実施形態におけるネットワーク間接続装置１００の構成を示すブロック図である。図３の従来のネットワーク間接続装置３００の構成と異なるのは、転送エンジン１０２に連想メモリＡ１２２と連想メモリＢ１２５の２式を備える点である。テーブルメモリ１２８は従来通り１式だが、連想メモリＡ１２２と連想メモリＢ１２５の双方からアクセスされ共有して使用される。
【００２３】
ネットワーク間接続装置１００は、他の装置と接続するためのイーサネット（登録商標）等の回線を収容する複数の回線収容部１０３と、回線収容部１０３を介して受信したパケットを宛先アドレスに基づいて他の装置へ転送する転送エンジン１０２と、装置の設定・複雑なプロトコル処理などを行う管理モジュール１０１を含む。転送エンジン１０２は高速なパケット転送処理を実現するためにＡＳＩＣ等のハードウェアで構成される。管理モジュール１０１はＣＰＵおよびメモリ等で構成され、複雑なプロトコル処理などをソフトウェア処理で行う。
【００２４】
管理モジュール１０１は、例えばＡＲＰ等のデータベース１１１を保持しており、プロトコル処理に基づいてエントリの管理（作成、削除、タイマ監視など）をソフトウェアで行っている。データベース１１１はプロトコルアドレス１１２と物理デバイスアドレス１１３とを含んでおり、これらはプロトコルアドレスに基づいたパケット中継において隣接する装置にパケットを転送する際に、プロトコルアドレス対応する物理デバイスアドレスを取得する際に必要な情報である。また、各エントリは満了時間１１４を含んでおり、各エントリは満了時間１１４を経過すると削除する必要がある。
【００２５】
また、実際にパケットの転送処理を行う転送エンジン１０２もＡＲＰ等のデータベースの内容を保持しており、転送エンジン１０２は自身が保持するデータベースの内容を参照してパケットのハードウェア転送を行う。例えば、受信したパケットの宛先プロトコルアドレスに基づいてパケット転送を行う場合は、当該宛先プロトコルアドレスに対応する物理デバイスアドレスを含んだヘッダーでカプセル化してから隣接する装置に転送する。なお、管理モジュール１０１のソフトウェア処理によって、管理モジュール１０１と転送エンジン１０２のそれぞれが保持するデータベースの内容は同期がとられている。
【００２６】
転送エンジン１０２では、パケット転送処理の際に行うテーブル検索を高速化するため、ＡＲＰデータベースに連想メモリ（ＣＡＭ：Ｃｏｎｔｅｎｔ  Ａｄｄｒｅｓｓａｂｌｅ  Ｍｅｍｏｒｙ）１２２、１２５を使用する。連想メモリ１２２，１２５はエントリを１つずつキーと一致するかを検索するのではなく、全てのエントリの検索が並列実行されるため非常に高速に検索が可能であるが、検索結果として配列のアドレス１２３，１２６が返るため、検索のキー１２４，１２７となるプロトコルアドレスを連想メモリ１２２，１２５に格納するのに加え、物理デバイスアドレス等の属性情報を記録するために、別途テーブルメモリ１２８が必要であり、キー１２４，１２７のアドレス１２３，１２６の順にこれらの属性情報をテーブルメモリ１２８に格納することで、データベースとして機能させている。
【００２７】
なお、本実施形態では、連想メモリＡ１２２と連想メモリＢ１２５の２式を備えているため、テーブルメモリ１２８は、連想メモリＡ１２２と連想メモリＢ１２５の双方からアクセスされ、共用される。管理モジュール１０１と転送エンジン１０２のそれぞれが保持するデータベースの内容は同期がとられており、管理モジュール１０１が保持するプロトコルアドレス１１２の情報は、転送エンジン１０２の連想メモリＡ１２２もしくは連想メモリＢ１２５のキー１２４もしくはキー１２７に保持され、管理モジュール１０１が保持する物理デバイスアドレス１１３の情報は、転送エンジン１０２のテーブルメモリ１２８に保持されている。
【００２８】
また、エージング処理行うためには、転送エンジン１０２のデータベースのエントリが参照されたか否かを監視するためのロジックが必要となるが、そのロジックとして、エントリの新規作成時は、連想メモリＡ１２２にエントリを作成し、転送エンジン１０２がパケット転送時に当該エントリを参照した際に、当該エントリを連想メモリＢの同列に書込み、連想メモリＡからは削除するという処理を行う。
【００２９】
例えば、連想メモリＡ１２２のアドレス１２３が「１」のエントリに書き込まれたキー１２４であるプロトコルアドレス「１９２．１６８．０．１」のエントリは、新規作成時に書き込まれた後、参照されていないエントリである。また、連想メモリＡ１２２のアドレス１２３が「２」のエントリは、新規作成時に連想メモリＡ１２２に書き込まれた後、パケット転送時に参照されたため、連想メモリＡ１２２から削除され、連想メモリＢ１２５の同列（即ち、連想メモリＢ１２５のアドレス１２６が「２」のエントリ）に書き込まれたエントリ（プロトコルアドレス「１９２．１６８．０．２」）である。
【００３０】
なお、プロトコルアドレスは連想メモリＡ１２２と連想メモリＢ１２５のいずれかに書き込まれているため、転送エンジン１０２は、パケット転送時に連想メモリＡ１２２および連想メモリＢ１２５の両者を検索する。
【００３１】
このロジックにより、パケット転送時に参照されたエントリは連想メモリＢ１２５に書き込まれ、参照されなかったエントリは連想メモリＡ１２２に残るため、転送エンジン１０２において、データベースのどのエントリが参照されたかを管理することができる。なお、本方式では、従来技術とは異なり、テーブルメモリ１２８にヒットビット３２７を設ける必要がない。
【００３２】
このロジックでは、データベースのエントリは新規作成後あるいは満了時間リセット後、転送エンジンに参照されなければ連想メモリＡに、参照されていれば連想メモリＢにといずれか一方に必ず存在し、どちらにも存在するまたは存在しない状態は発生しない。また、最初に連想メモリＡに新規作成されて以降、同一のエントリは削除されるまで連想メモリＡおよび連想メモリＢいずれにあっても、同列に存在する。これらにより、テーブルメモリ１２８上の付加情報（物理デバイスアドレス）との整合性は保たれる。
【００３３】
図２は、本実施形態における管理モジュール１０１が行うエージング処理を示すフローチャートである。管理モジュール１０１はタイマによる定期処理にて、図２に示す処理を実行する。
【００３４】
管理モジュール１０１は、転送エンジン１０２の連想メモリＡ１２２からキー１２４であるプロトコルアドレスを検索する（ステップ２０１）。
【００３５】
エントリが存在しない場合（当該エントリがパケット転送により参照され、連想メモリＢ１２５に書き込まれている場合）、当該エントリについての満了時間１１４を現在時間＋システム満了時間に再設定（満了時間リセット）し、その後、連想メモリＡ１２２で検索したプロトコルアドレスについて連想メモリＢ１２５を検索し、連想メモリＢ１２５の検索結果と同列の連想メモリＡ１２２に当該エントリを書き込み、連想メモリＢ１２５からは当該エントリを削除する（ステップ２０２）。その後、ステップ２０５へ進む。
【００３６】
一方、ステップ２０１において、エントリが存在した場合（当該エントリがまだ参照されず連想メモリＡ１２２に残っている場合）、ステップ２０１で用いたキー１２４のプロトコルアドレスに合致するエントリを管理モジュール１０１のデータベース１１１から検索し、当該エントリの満了時間１１４と現在時間を比較する（ステップ２０３）。現在時間が満了時間１１４を経過していれば、管理モジュール１０１のデータベース１１１および転送エンジン１０２の連想メモリＡ１２２、テーブルメモリ１２８から当該エントリに対応するエントリに格納された情報を全て削除し（ステップ２０４）、ステップ２０５へ進む。ステップ２０３において、現在時間が満了時間１１４を経過していなければ、そのままステップ２０５へ進む。
【００３７】
ステップ２０５では、次のエントリの有無を確認し、次のエントリがあればステップ２０１に戻り、エージング処理を継続する。当該エージング処理は、管理モジュール１０１のデータベース１１１の全エントリについて実行される。
【００３８】
以上のように、本実施形態によれば、満了時間１１４の検査はアクセス速度の遅いテーブルメモリ１２８を参照することなく、アクセス速度の速い連想メモリの検索のみで行えるようになるため、エージング処理を高速化し、管理モジュールにおける処理遅延やプロトコル上の遅延の発生を抑えることができる。
【００３９】
更に、本実施形態によれば以下のような効果も得られる。
（１）汎用的な連想メモリを用いるため、特許文献１の技術を用いることなく、ソフトウェアにて管理するデータベースでの処理を高速化できる。
（２）例えばＩＰｖ６のＮＵＤ（Ｎｅｉｇｈｂｏｒ Ｕｎｒｅａｃｈａｂｉｌｉｔｙ Ｄｅｔｅｃｔｉｏｎ）のように、単純にデータベースエントリを削除するエージング処理だけではなく、満了時間経過後に何らかの処理を行うプロトコルでも使用可能である。
（３）ハードウェアのロジックのみではなく、ソフトウェアの管理するプロトコルデータベースとの連携なので、新規のプロトコルサポート時などにも、ハードウェアを変更せずソフトウェアのみで応用可能である。
【００４０】
なお、本実施形態では、管理モジュール１０１が保持するデータベース１１１の全エントリを定期タイマ処理の対象としたが、一度の定期タイマ処理で処理するエントリ数に制限を設けてもよい。
【００４１】
また、データベース１１１はＡＲＰデータベースに限られず、その他のエージング処理が必要なデータベースに対しても適用可能である。また、本実施形態では、転送エンジン１０２が一つの構成について説明したが、転送エンジン１０２を複数個備える構成においても適用可能である。
【図面の簡単な説明】
【００４２】
【図１】本実施形態におけるネットワーク間接続装置１００の構成を示すブロック図である。
【図２】本実施形態における管理モジュール１０１が行うエージング処理を示すフローチャートである。
【図３】従来のネットワーク間接続装置３００の構成を示すブロック図である。
【図４】管理モジュール３０１が行うエージング処理を示すフローチャートである。
【符号の説明】
【００４３】
１００：ネットワーク間接続装置、１０１：管理モジュール、１０２：転送エンジン、１０３：回線収容部、１１１：データベース、１２２：連想メモリＡ、１２５：連想メモリＢ、１２３,１２６：アドレス、１２４,１２７：キー、１２８：テーブルメモリ
【図１】
2010098554.tif 000003
【図２】
2010098554.tif 000004
【図３】
2010098554.tif 000005
【図４】
2010098554.tif 000006