(57)【要約】【課題】スイッチ等のパケット転送装置に関し、特に、パケット装置に備えられる転送情報の誤った検索を防止することのできるパケット装置に関するものである。【解決手段】パケットの転送先に関する検索キー及び該検索キーから生成された照合情報を転送情報記憶部104に記憶される転送情報の記憶位置に関連して記憶する検索キー記憶部101を備え、転送情報取得部103は、前記ヘッダ情報に基づいて生成された検索キー及び該検索キーから生成された照合情報を用いて検索キー記憶部101を検索し、検索キー記憶部101に記憶された検索キー及び照合情報と一致すると、検索キー記憶部101から転送情報の記憶位置情報を取得し、前記取得した記憶位置情報に基づいて転送情報記憶部104に記憶された転送情報を取得し、転送部106は前記取得した転送情報に基づいてパケットを転送する。【選択図】      図２
2005117171.tif 000002
【特許請求の範囲】
【請求項１】
パケットを送受信する入出力部と、
受信したパケットからヘッダ情報を抽出し、前記パケットの転送先を決定する転送部と、
前記パケットの転送先を決定するための転送情報を記憶する転送情報記憶部と、
前記パケットの転送情報を前記転送情報記憶部から取得する転送情報取得部と、を備えたパケット転送装置において、
前記パケットの転送先に関する検索キー及び該検索キーから生成された照合情報を、前記転送情報記憶部に記憶される転送情報の記憶位置に関連して記憶する検索キー記憶部を備え、
前記転送情報取得部は、
前記ヘッダ情報に基づいて生成された検索キー及び該検索キーから生成された照合情報を用いて前記検索キー記憶部を検索し、
前記検索キー記憶部に記憶された検索キー及び照合情報と一致すると、前記検索キー記憶部から前記転送情報の記憶位置情報を取得し、
前記取得した記憶位置情報に基づいて前記転送情報記憶部に記憶された転送情報を取得し、
前記転送部は、前記取得した転送情報に基づいて、受信したパケットを転送することを特徴とするパケット転送装置。
【請求項２】
前記検索キー記憶部は、前記検索キー及び前記照合情報を、複数の領域に記憶し、
前記転送情報取得部は、該複数の領域に記憶された検索キー及び照合情報の全てが一致すると、前記検索キー記憶部から前記転送情報の記憶位置情報を取得することを特徴とする請求項１に記載のパケット転送装置。
【請求項３】
前記照合情報は、前記検索キーの複数のビットの値を演算して生成されることを特徴とする請求項１又は２に記載のパケット転送装置。
【請求項４】
前記照合情報は、前記検索キーの複数のビットの値を演算して生成される第１照合情報と、前記複数のビット以外のビットの値を演算して生成される第２照合情報とによって構成されることを特徴とする請求項１又は２に記載のパケット転送装置。
【請求項５】
前記検索キー記憶部に記憶される検索キー及び照合情報の複製を記憶する複製記憶部、
前記検索キー記憶部に記憶される検索キー及び照合情報と、前記複製記憶部に記憶される検索キー及び照合情報とを比較し、両者の記憶内容が異なる場合には、前記複製記憶部に記憶された検索キー及び照合情報によって、前記検索キー記憶部に記憶される検索キー及び照合情報を書き換える検索キー修正部を備えることを特徴とする請求項１から４のいずれか一つに記載のパケット転送装置。
【請求項６】
パケットを送受信する入出力部と、前記パケットの転送先を決定する転送部と、前記パケットの転送先を決定するための転送情報を記憶する転送情報記憶部と、前記パケットの転送情報を前記転送情報記憶部から取得する転送情報取得部と、前記パケットの転送先に関する検索キー及び該検索キーから生成された照合情報を、前記転送情報記憶部に記憶される転送情報の記憶位置に関連して記憶する検索キー記憶部と、を備えたパケット転送装置において用いられる転送情報の取得方法であって、
受信したパケットから抽出されたヘッダ情報に基づいて生成された検索キー及び該検索キーから生成された照合情報を用いて前記検索キー記憶部を検索し、
前記検索キー記憶部に記憶された検索キー及び照合情報が一致すると、前記検索キー記憶部から前記転送情報の記憶位置情報を取得し、
前記取得した記憶位置情報に基づいて前記転送情報記憶部に記憶された転送情報を取得することを特徴とする転送情報の取得方法。
【請求項７】
パケットを送受信する入出力部と、前記パケットの転送先を決定する転送部と、前記パケットの転送先を決定するための転送情報を記憶する転送情報記憶部と、前記パケットの転送情報を前記転送情報記憶部から取得する転送情報取得部と、前記パケットの転送先に関する検索キー及び該検索キーから生成された照合情報を、前記転送情報記憶部に記憶される転送情報の記憶位置に関連して記憶する検索キー記憶部と、を備えたパケット転送装置において用いられる検索キーの生成方法であって、
前記パケットの転送先となりうる転送情報を前記転送情報記憶部に記憶し、
前記転送情報記憶部に記憶した転送情報に基づいて検索キーを生成し、
該検索キーの複数のビットの値を演算して照合情報を生成し、
前記生成された検索キー及び照合情報を前記検索キー記憶部に記憶することを特徴とする検索キーの登録方法。
【請求項８】
前記検索キー及び前記照合情報は、前記検索キー記憶部の複数の領域に記憶されることを特徴とする請求項７に記載の検索キーの登録方法。
【請求項９】
前記検索キーの複数のビットの値を演算して生成される第１照合情報と、前記複数のビット以外のビットの値を演算して生成される第２照合情報とが、前記照合情報として、前記検索キー記憶部に記憶されることを特徴とする請求項７に記載の検索キーの登録方法。
【請求項１０】
パケットを送受信する入出力部と、前記パケットの転送先を決定する転送部と、前記パケットの転送先を決定するための転送情報を記憶する転送情報記憶部と、前記パケットの転送情報を前記転送情報記憶部から取得する転送情報取得部と、前記パケットの転送先に関する検索キー及び該検索キーから生成された照合情報を、前記転送情報記憶部に記憶される転送情報の記憶位置に関連して記憶する検索キー記憶部と、前記検索キー記憶部に記憶される検索キー及び照合情報の複製を記憶する複製記憶部と、を備えたパケット転送装置において用いられる検索キーの誤り訂正方法であって、
前記検索キー記憶部に記憶される検索キー及び照合情報と、前記複製記憶部に記憶される検索キー及び照合情報とを比較し、
両者の記憶内容が異なる場合には、前記複製記憶部に記憶された検索キー及び照合情報によって、前記検索キー記憶部に記憶される検索キー及び照合情報を書き換えることを特徴とする検索キーの誤り訂正方法。
【請求項１１】
前記書き換えられた検索キー及び照合情報を読み出し、
前記読み出した検索キー及び照合情報と、前記複製記憶部に記憶される検索キー及び照合情報とを比較し、
両者の記憶内容が一致するか否かを判定することを特徴とする検索キーの誤り訂正方法。
【請求項１２】
パケットを送受信するサーバと、パケットを転送するパケット転送装置が接続されて構成されるネットワークシステムであって、
前記パケット転送装置は、パケットを送受信する入出力部と、受信したパケットからヘッダ情報を抽出し前記パケットの転送先を決定する転送部と、前記パケットの転送先を決定するための転送情報を記憶する転送情報記憶部と、前記パケットの転送情報を前記転送情報記憶部から取得する転送情報取得部と、前記パケットの転送先に関する検索キー及び該検索キーから生成された照合情報を、前記転送情報記憶部に記憶される転送情報の記憶位置に関連して記憶する検索キー記憶部と、を備え、
前記転送情報取得部は、前記ヘッダ情報に基づいて生成された検索キー及び該検索キーから生成された照合情報を用いて前記検索キー記憶部を検索し、前記検索キー記憶部に記憶された検索キー及び照合情報が一致すると、前記検索キー記憶部から前記転送情報の記憶位置を取得し、前記取得した記憶位置に基づいて前記転送情報記憶部に記憶された転送情報を取得し、
前記転送部は、前記取得した転送情報に基づいて、受信したパケットを転送することを特徴とするネットワークシステム。
【請求項１３】
前記サーバ及び前記パケット転送装置によって仮想私設網を構成していることを特徴とする請求項１２に記載のネットワークシステム。
【請求項１４】
パケットを送受信する入出力部と、前記パケットの転送先を決定する転送部と、前記パケットの転送先を決定するための転送情報を記憶する転送情報記憶部と、前記パケットの転送情報を前記転送情報記憶部から取得する転送情報取得部と、前記パケットの転送先に関する検索キー及び該検索キー内の仮想私設網識別子から生成された照合情報を、前記転送情報記憶部に記憶される転送情報の記憶位置に関連して記憶する検索キー記憶部と、を備えたパケット転送装置において用いられる転送情報の取得方法であって、
受信したパケットから抽出されたヘッダ情報に基づいて生成された検索キー及び該検索キー内の仮想私設網識別子から生成された照合情報を用いて前記検索キー記憶部を検索し、
前記検索キー記憶部に記憶された検索キー及び照合情報が一致すると、前記検索キー記憶部から前記転送情報の記憶位置情報を取得し、
前記取得した記憶位置情報に基づいて前記転送情報記憶部に記憶された転送情報を取得することを特徴とする転送情報の取得方法。
【請求項１５】
パケットを送受信する入出力部と、前記パケットの転送先を決定する転送部と、前記パケットの転送先を決定するための転送情報を記憶する転送情報記憶部と、前記パケットの転送情報を前記転送情報記憶部から取得する転送情報取得部と、前記パケットの転送先に関する検索キー及び該検索キー内のＶｉｒｔｕａｌ  ＬＡＮ識別子から生成された照合情報を、前記転送情報記憶部に記憶される転送情報の記憶位置に関連して記憶する検索キー記憶部と、を備えたパケット転送装置において用いられる転送情報の取得方法であって、
受信したパケットから抽出されたヘッダ情報に基づいて生成された検索キー及び該検索キー内のＶｉｒｔｕａｌ  ＬＡＮ識別子から生成された照合情報を用いて前記検索キー記憶部を検索し、
前記検索キー記憶部に記憶された検索キー及び照合情報が一致すると、前記検索キー記憶部から前記転送情報の記憶位置情報を取得し、
前記取得した記憶位置情報に基づいて前記転送情報記憶部に記憶された転送情報を取得することを特徴とする転送情報の取得方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スイッチ等のパケット転送装置に関し、特に、パケット装置に備えられる転送情報の誤った検索を防止することのできるパケット装置に関するものである。
【背景技術】
【０００２】
サーバやクライアント端末等のコンピュータ装置が接続されるネットワークを接続して、サーバ間で送受信するパケットを目的のサーバに適切に送るためにＬＡＮスイッチが用いられる。
【０００３】
ＬＡＮスイッチは、各サーバが接続されるネットワークをそれぞれ物理的に異なるポートに接続する。そして、あるサーバから送られたパケットを受信すると、そのパケットを解析し、パケットの宛先を判別して、宛先のサーバへの経路となるネットワークが接続されているポートにそのパケットを送出する。
【０００４】
ＬＡＮスイッチは、受け取ったパケットをどのポートに対して送るかを決定するために使用する転送情報をフォワーディングデータベース（ＦＤＢ：Forwarding Data Base）として保有している。ＬＡＮスイッチは、パケットを受け取り、受け取ったパケットのヘッダを解析し、解析した内容からＦＤＢを検索して、パケットの送り先を決定し、決定した送り先のポートにパケットを送出する。
【０００５】
特に近年、ネットワークの高速化、広帯域化に伴って、このＬＡＮスイッチの動作にも高速性が要求されている。ＬＡＮスイッチは、受け取ったパケットを一時的に保存するバッファを備えているが、パケットが同時に多く到着しその処理に時間がかかってしまうと、バッファのオーバーフロー等が発生し、パケットが転送できなくなるパケットロスが発生する場合もある。
【０００６】
そこで、ＦＤＢの検索を高速化するために、ＦＤＢの内容を直接検索し取得するのではなく、パケットに対応するＦＤＢのエントリを記憶しているアドレスと、パケットから生成する一意の文字列（検索キー）とを別のメモリに記憶し、検索キーが記憶される高速アクセス可能なメモリからＦＤＢのエントリが記憶されているアドレスを取得することで、ＦＤＢを高速に検索可能とする方法が提案されている。
【０００７】
この高速なメモリにはＣＡＭ（Content Addressable Memory：連想メモリ）が用いられる。ＣＡＭは、記録されている内容をアドレス（ＲＡＷ、ＣＯＬＵＭ）ではなく記録されている内容そのもので呼び出すことのできるメモリである。具体的には、ＣＡＭのデータを検索する場合、ＣＡＭに入力されたデータとＣＡＭに記録されているデータとが一致した場合に、そのデータが記録されているアドレスを検索結果として取得することができる。
【０００８】
しかし、チップに含まれる不純物から発生するアルファ線や宇宙線（ガンマ線）等の放射線の影響によって、ＣＡＭに記録されているデータにビット反転が生じ、データが変化するソフトエラーが発生する場合がある。このソフトエラーを検知し、データを修正するために、パリティを使用したＣＡＭも知られている（例えば、特許文献１参照。）。
【特許文献１】米国特許第５４９１７０３号明細書
【発明の開示】
【発明が解決しようとする課題】
【０００９】
ＬＡＮスイッチのＦＤＢ検索にＣＡＭを用いることで、ＬＡＮスイッチの動作を高速化でき、バッファのオーバーフローやパケットロス等を防ぐことができる。このＬＡＮスイッチに用いられたＣＡＭにソフトエラーが発生した場合、ＣＡＭに保存されているデータが変化する可能性があり、パケットが誤った宛先に転送されてしまう。特に、ＬＡＮスイッチをＶＰＮ（Virtual Private Network）やＶＭＡＮ（Virtual Metropolitan Area Network）等のＶＬＡＮ（Virtual Local Area Network）に用いた場合、ＶＬＡＮ番号によって宛先を識別するので、ソフトエラーによるビット反転によって誤った検索キーが検索され、前記ＦＤＢから誤ったエントリが得られることで、宛先のネットワークとは異なる他のネットワークに対してパケットが転送されてしまう問題がある。
【００１０】
また、前記従来技術のようにＣＡＭにパリティ等のエラー訂正の仕組みを用いたとしても、どのタイミングでエラーを訂正するかという点が問題となる。すなわち、ＣＡＭに保存されているデータを任意のタイミングでパリティ等によるエラー訂正を行ったとしても、前記ＦＤＢの検索の直前にソフトエラーが発生してしまうとエラーを訂正できない。また、ＦＤＢ検索時にパリティによるエラーを訂正することも可能であるが、エラー訂正のための処理に時間がかかってしまい、データを高速に検索できるというＣＡＭの利点を損なってしまう。
【００１１】
本発明は前記の問題点に鑑みてなされたものであり、ＬＡＮスイッチのＦＤＢに用いられるＣＡＭのエラーによる誤転送を防止するＬＡＮスイッチを提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明は、パケットを送受信する入出力部と、受信したパケットからヘッダ情報を抽出し、前記パケットの転送先を決定する転送部と、前記パケットの転送先を決定するための転送情報を記憶する転送情報記憶部と、前記パケットの転送情報を前記転送情報記憶部から取得する転送情報取得部と、を備えたパケット転送装置において、前記パケットの転送先に関する検索キー及び該検索キーから生成された照合情報を、前記転送情報記憶部に記憶される転送情報の記憶位置に関連して記憶する検索キー記憶部を備え、前記転送情報取得部は、前記ヘッダ情報に基づいて生成された検索キー及び該検索キーから生成された照合情報を用いて前記検索キー記憶部を検索し、前記検索キー記憶部に記憶された検索キー及び照合情報と一致すると、前記検索キー記憶部から前記転送情報の記憶位置情報を取得し、前記取得した記憶位置情報に基づいて前記転送情報記憶部に記憶された転送情報を取得し、前記転送部は、前記取得した転送情報に基づいて、受信したパケットを転送することを特徴とする。
【発明の効果】
【００１３】
本発明によると、検索キー記憶部に記憶された検索キー及び照合情報と一致すると、検索キー記憶部から前記転送情報の記憶位置情報を取得し、前記取得した記憶位置情報に基づいて転送情報記憶部に記憶された転送情報を取得するので、検索キー記憶部に記憶されている位置情報にソフトエラーが発生しデータが異なるものとなってしまった場合にも、照合情報によって誤った転送情報の取得を防止することができ、パケットの誤転送を防止することができる。
【発明を実施するための最良の形態】
【００１４】
本発明の実施の形態を図面に基づいて説明する。
【００１５】
図１は、本発明の第１の実施の形態のネットワークシステムの構成を表すブロック図である。
【００１６】
コア網１１００に対して複数のエッジ網（１２００、１３００）が接続されている。このコア網１１００は、例えば通信事業者により提供される広域網で構成され、エッジ網１２００、１３００は、例えば通信事業者により提供されるアクセス網や集線網で構成されている。
【００１７】
コア網１１００には、複数のＬＡＮスイッチ（１１０１ａ、１１０１ｂ、１１０１ｃ、１１０１ｄ）及びゲートウェイ（１１０２Ａ、１１０２Ｂ）が備えられており、各々がネットワークによって接続されている。ＬＡＮスイッチ（１１０１ａ〜１１０１ｄ）及びゲートウェイ（１１０２Ａ、１１０２Ｂ）はパケット転送装置として機能する。
【００１８】
エッジ網１２００にはゲートウェイ１３０２、ＬＡＮスイッチ（１２０１ａ、１２０１ｂ、１０２１ｃ）が備えられており、各々がネットワークによって接続されている。
【００１９】
エッジ網１３００にはゲートウェイ１３０２、ＬＡＮスイッチ（１３０１ａ、１３０１ｂ、１３０１ｃ）が備えられており、各々がネットワークによって接続されている。
【００２０】
企業などのユーザは、これらコア網１１００やそれに連なるエッジ網（１２００、１３００）を使って拠点間を結ぶことで、仮想私設網１４００を構築する。
例えば、ある拠点に置かれた通信事業者側ＬＡＮスイッチ１２０１ａにはユーザ側ＬＡＮスイッチ１４０１ａが接続されており、別の拠点に置かれた通信事業者側ＬＡＮスイッチ１２０１ｃにはユーザ側ＬＡＮスイッチ１４０１ｂが接続されている。さらに遠く離れた拠点に置かれた通信事業者側ＬＡＮスイッチ１３０１ａにはユーザ側ＬＡＮスイッチ１４０１ｃが接続されている。
【００２１】
通信事業者が、ユーザ側ＬＡＮスイッチ１４０１ａ、１４０１ｂ、１４０１ｃの間のパケットが通信事業者網上をトンネリングするようなトンネリングネットワーク１５００を提供することで、ユーザ側ＬＡＮスイッチ１４０１ａ、１４０１ｂ及び１４０１ｃの間に仮想私設網１４００が構成される。
【００２２】
ここでは、仮想私設網を構成する技術としてＶＬＡＮ（Virtual LAN）技術を使った例を示している。
【００２３】
すなわち、ユーザ側ＬＡＮスイッチ１４０１ａ、１４０１ｂ及び１４０１ｃ間で転送されるパケットは、パケットに付されたＶＬＡＮタグ（１２ビット）に従って、ＬＡＮスイッチに設定された宛先に転送される。
【００２４】
次に、ＬＡＮスイッチ（１１０１、１２０１、１３０１）の構成を図２のブロック図を参照して説明する。
【００２５】
以下の説明は、ＬＡＮスイッチの例を用いて行うが、同様の概念・説明は、ルータなどの他のパケット転送装置にも適用され得るのは明らかである。
【００２６】
本発明の第１の実施の形態のＬＡＮスイッチは、複数のＬＡＮスイッチカード１００がバックプレーン２００に接続され、一つのＬＡＮスイッチとして機能する。
【００２７】
各ＬＡＮスイッチカード１００には、検索キーを記憶する検索テーブルを記憶するＣＡＭ（Content Addressable Memory：連想メモリ）１０１、ＣＡＭ１０１やＲＡＭ１０４等に記憶されるデータの書き込み、消去等の処理を行うＣＰＵ１０２、ＣＡＭ１０１に対して検索キーの登録や検索処理を行い、該検索結果に基づいてパケットの転送先を決定する検索エンジン１０３、ＦＤＢやその他のデータを記憶するＲＡＭ１０４、ネットワークに接続されパケットを送受信するポートを構成する物理層処理部（Physical）１０５、入出力されるパケットを一時的に記憶する他、パケットのヘッダ情報を抽出し、ＦＤＢに記憶された情報に基づいてパケットの転送先を決定する転送エンジン１０６、パケットを他のＬＡＮスイッチカード１００と送受信するスイッチ１０７等が備えられている。
【００２８】
すなわち、物理層処理部１０５がパケットを送受信することで入出力部が構成され、ＲＡＭ１０４が転送情報であるＦＤＢを記憶することで転送情報記憶部が構成され、転送エンジン１０６がパケットの転送先を決定することで転送部が構成され、検索エンジン１０３が転送情報取得することで転送情報取得部が構成される。
【００２９】
また、バックプレーン２００には、バックプレーンスイッチ２０１及びルーティングプロセッサ２０２が備えられている。バックプレーンスイッチ２０１は、各ＬＡＮスイッチカードのスイッチ１０７と接続されており、各ＬＡＮスイッチカード１００からのパケットを目的のＬＡＮスイッチカード１００に対して転送する。ルーティングプロセッサ２０２は、各ＬＡＮスイッチカードのＣＰＵ１０２と接続されており、ＬＡＮスイッチカード１００の情報等を記憶し、パケットの転送先を制御する。
【００３０】
次に、本発明の第１の実施の形態の動作をＬＡＮスイッチの動作に即して説明する。
【００３１】
まず、ＬＡＮスイッチにパケットが入力されると、物理層処理部１０５は受け取ったパケットを転送エンジン１０６に送る。転送エンジン１０６では、受け取ったパケットの送信元ＭＡＣアドレス、宛先ＭＡＣアドレス、ＶＬＡＮ識別子等の転送情報を含むヘッダ情報を抽出し、抽出したヘッダ情報（転送情報）を検索エンジン１０３に送る。
【００３２】
検索エンジン１０３は、転送情報を受け取ると、ＣＡＭ１０１を検索するための検索キーを生成する。この検索キーは、パケットから生成される所定の文字列であり、パケットの送り元又は送り先に対して一意であることが必要であるため、例えば、転送情報から、ＶＬＡＮ識別子やＭＡＣ（Media Access Control）アドレスを抽出することで検索キーが生成される。
【００３３】
そして生成された検索キーを用いてＣＡＭ１０１に記憶されている検索テーブルを検索する。検索の結果、転送情報に対応するＦＤＢエントリがＲＡＭ１０４に記憶されていれば、該ＦＤＢエントリに従ってパケットの転送処理を行う。
【００３４】
検索の結果、転送情報に対応するＦＤＢエントリがＲＡＭ１０４に登録されていない場合は、標準に従った学習プロセスに従って、新たにＦＤＢエントリを作成し、作成したＦＤＢエントリをＲＡＭ１０４に記憶する。この際に、ＦＤＢエントリに対するＥＣＣ（Error Check and Correct）を演算し、演算されたＥＣＣをＦＤＢエントリと共にＲＡＭ１０４に記憶する。そして、該ＦＤＢエントリに対応する検索キーをＣＡＭ１０１の検索テーブルに記憶する。このとき、検索キーがＣＡＭ１０１に記憶されるアドレスと、ＲＡＭ１０４に記憶されるＦＤＢエントリのアドレスとが等しくなるように、両者を対応させて記憶する。よって、次にパケットを受信した際には該パケットより生成した検索キーに基づいてＣＡＭ１０１の検索テーブルを検索し、検索結果からＲＡＭ１０４のアドレスを取得し、取得したアドレスからＲＡＭ１０４に記憶したＦＤＢエントリ（転送情報）を取得することができる。
【００３５】
本実施の形態のＣＡＭ１０１に記憶されている検索テーブルの例を図３に示す。
【００３６】
図３に示すように、“Database_Entry”は、ＣＡＭ１０１のアドレスであり、Ｎビットのデータから構成される検索キー及び１ビットのパリティ（本実施の形態では、該Ｎビットの検索キーに対する奇数パリティ）がアドレス毎に記憶されている。このパリティは、ＣＡＭ１０１に新たに検索キーを記憶する際に、検索エンジン１０３によって演算され、演算されたパリティの付された検索キーをＣＡＭ１０１に記憶する。
【００３７】
前述したように、この“Database_Entry”（アドレス）が、ＲＡＭ１０４に記憶されているＦＤＢのアドレスと対応するように、検索キーが記憶されており、検索キーに対応する“Database_Entry”（アドレス）を用いてＲＡＭ１０４に記憶されたデータを読み込むことによって、該検索キーに対応するＦＤＢのエントリ（転送情報）を取得することができる。
【００３８】
すなわち、ＣＡＭ１０１がＦＤＢに記憶する転送情報の記憶位置を示す“Database_Entry”のアドレスを記憶することで転送情報取得部が構成される。
【００３９】
ここで、物理層処理部１０５に新たなパケットが到達した場合、物理層処理部１０５はパケットを転送エンジン１０６に送る。転送エンジン１０６は受け取ったパケットのヘッダ情報を抽出し、検索エンジン１０３に送る。検索エンジン１０３は、受け取ったパケットのヘッダ情報から検索キーを生成し、パリティを計算する。そして、検索エンジンによって、生成した検索キーをＣＡＭ１０１に送り、検索命令を発行することで、ＣＡＭ１０１の検索テーブルを検索し、検索結果としてＣＡＭ１０１のアドレスを得る。
【００４０】
このＣＡＭによって行われる検索は、検索キーの各ビットとＣＡＭに記憶されている検索キーの各ビットとの排他的論理和の演算結果として、マスクを用いて予め検索範囲として定義されたビット領域の中の全てのビットが正である場合（すなわち、全ビットが同じである場合）に、検索キーとＣＡＭに記憶されている検索キーとが一致（ヒット）したと判断し、該検索キーが記憶されているアドレス（Database_Entry）を検索結果として出力する。また、ヒットしていない場合には検索結果を出力しない。
【００４１】
図３に示す例では、ＣＡＭ検索キーの第０ビット及び第１ビットが“１”であるため、検索キーと一致（ヒット）し、検索テーブルのアドレス“0x0_0002”を結果として返し、検索が完了する。
【００４２】
ここで、ＣＡＭ１０１にチップに含まれる不純物から発生するアルファ線や、宇宙線（ガンマ線）等の放射線等の影響によって、記録されているデータにビット反転が生じ、データが変化するソフトエラーが発生し、ＣＡＭ１０１の検索テーブルにビット反転が発生したとする。図４は、ＣＡＭ１０１の検索テーブルのアドレス“0x0_0001”に記憶されている検索キーの第０ビットが“０”から“１”に反転した状態を示す。この場合、前述したように到達したパケットのヘッダ情報から生成した検索キーを用いて検索テーブルを検索すると、ソフトエラーによるビット反転のために、検索キーの内容と一致する項目が、アドレス“0x0_0001”及びアドレス“0x0_0002”の２箇所存在するが、該ソフトエラーが発生した検索キー（アドレス“0x0_0001”）は、パリティビットが一致しないことから、検索キーがヒットしない。一方、正しいエントリは、パリティビットも含めて一致することから、検索キーがヒットする。よって、正しい検索キーのアドレス“0x0_0002”を検索の結果として取得することができる。
【００４３】
前述のような機構によって、ソフトエラーの場合に検索キーがヒットしない場合、ＬＡＮスイッチは、パケットヘッダに書かれたＭＡＣ宛先に向けてブロードキャストを行い、その応答を得て、宛先アドレスの登録を行う学習プロセスを開始することになる。学習が終了すれば、正しい内容を有するエントリが再びＣＡＭ１０１とＲＡＭ１０４に登録される。
【００４４】
ソフトエラーにより誤ったエントリは、例えば後述の実施例に述べる方法で削除される。
【００４５】
特に仮想閉域網を提供するサービスにおいては、閉域性を保つために、ＣＡＭ１０１に記憶されるデータで仮想閉域網を識別するためのＶＬＡＮ識別子にパリティを付与することが有効である。パリティも含めて一致するかを検索することで、ＣＡＭ１０１に発生したソフトエラーによって仮想閉域網の識別子が変化した検索キーが、誤ってヒットして、誤った転送情報を取得して、誤った宛先に対してパケットが転送されることがない。
【００４６】
この場合も検索キーにヒットしなかったパケットは、パケットヘッダに書かれた宛先に向けてブロードキャストを行うが、ブロードキャストを行う範囲は当該パケットを所属するＶＬＡＮ網内に限られており、閉域性を保証することができる。
【００４７】
また、ソフトエラーによる誤ったヒットを防止するために、パリティだけではなく、検索テーブルに記憶される同一の検索キーに対応する検索キーを複数登録する方法も考えられる。
【００４８】
図５は、ＣＡＭ１０１に記憶される検索テーブルに、一つの検索キーを２箇所（二つのアドレス）に記憶して構成した例である。この場合、ＣＡＭ１０１の検索テーブルのアドレスと、ＲＡＭ１０４のＦＤＢのアドレスとを一致させる必要があるので、ＲＡＭ１０４に記憶されるＦＤＢエントリも２箇所（二つのアドレス）に記憶する。
【００４９】
この場合、図６に示すように、一対として記憶されている二つの検索キーのうち一方の検索キーにソフトエラー発生じてビット反転が発生した場合には、他方の検索キー（ソフトエラー発生じていない検索キー）と検索キーが一致する。検索結果としてはもう一方のアドレスが得られ、そちらのＦＤＢエントリにヒットすることで、重要な検索アドレスに対する冗長化が可能となる。
【００５０】
なお、前述した図３及び図５に示す例においては、１ビットの奇数パリティを用いた例を示したが、偶数パリティを用いてもよいし、他の方法のパリティでもよい。また、複数のパリティビットを設定してもよい。例えば、一つの検索キーに対して一つのパリティを生成するのではなく、検索キーの所定のビットの組み合わせを用いてパリティを生成してもよい。具体的には、検索キーを構成するビットのうち、奇数ビットから第１のパリティを生成し、偶数ビットから第２のパリティを生成する。このようにすることで、検索キーに複数のソフトエラーが発生した場合の、誤った検索キーのヒットを防止することができる。
【００５１】
次に、本発明の第１の実施の形態の検索エンジン１０３が行う、ＣＡＭ１０１の検索テーブルの検索処理を、図７のフローチャートを参照してＬＡＮスイッチを例にとって説明する。
【００５２】
まず、検索エンジン１０３は、物理層処理部１０５が受け取ったパケットから抽出されたヘッダ情報を解析する（Ｓ１０１）。そして、受信したパケットのヘッダ情報から前述した検索キーを生成する（Ｓ１０２）。
【００５３】
次に、検索キーを構成するデータの全ビットの奇数パリティを算出して、パリティを生成する（Ｓ１０３）。そして、算出したパリティを、Ｓ１０２で生成した検索キーに付加し、これをＣＡＭ１０１のCompareレジスタに書き込む（Ｓ１０４）。そして、ＣＡＭ１０１に対してCompare命令を発行する（Ｓ１０５）。ＣＡＭ１０１は、記憶された検索キーのうち、Compareレジスタに書き込まれた検索キーと一致（完全一致又は部分一致）するものがあるかを検索する。そして、検索の結果、ヒットした検索キーがあれば、ＣＡＭ１０１は一致した検索キーのアドレスを出力する。検索エンジン１０３は、検索結果としてアドレスを受け取ると、ヒットした検索キーがあると判定して、Ｓ１０７に移行する。一方、検索結果としてアドレスを受け取れないと、ヒットした検索キーがないと判定して、Ｓ１０９に移行する（Ｓ１０６）。
【００５４】
Ｓ１０７では、検索キーによって検索されたアドレスを用いて、ＲＡＭ１０４から該アドレスに対応するＦＤＢのエントリを読み出して、転送情報を取得する。そして、該転送情報に従って、転送エンジンに対して転送命令を発行する（Ｓ１０８）。
【００５５】
一方、Ｓ１０９では、ＬＡＮスイッチの場合、宛先ＭＡＣアドレスの学習処理（図８）が起動される。ＬＡＮスイッチの場合には、パケットヘッダに書かれたＭＡＣ宛先に向けてブロードキャスト（Ｓ１１０）を行う。ブロードキャストされたパケットに対して応答があれば、応答のあった物理ポートに当該ＭＡＣアドレスの登録を行い、ＭＡＣアドレスの学習処理（学習プロセス）を終了する。
【００５６】
以上の処理が終われば、検索エンジン１０３は、パケットのヘッダ情報からから生成した検索キーによる検索結果に基づいて、ＦＤＢから転送情報を取得して転送エンジン１０６に転送命令をすることで、目的の宛先にパケットを送ることができる。
【００５７】
次に、検索エンジン１０３が行う未登録宛先ＭＡＣアドレスの学習処理を、図８のフローチャートを参照して説明する。
【００５８】
まず、検索エンジン１０３は、宛先ＭＡＣアドレスの学習処理によって受け取ったパケットのルートが発見されたか否かを判定する。（Ｓ２０１）
この判定は、パケットヘッダに書かれたＭＡＣ宛先に向けてブロードキャスト（Ｓ１１０）を行い、そのブロードキャストされたパケットに対して応答があるか否かにより行う。
応答があった場合には、当該ＭＡＣアドレスを応答のあった物理ポートに関連付けるＦＤＢエントリを生成し（Ｓ２０２）、生成したＦＤＢエントリのＥＣＣを演算する（Ｓ２０３）。次に、生成したＦＤＢエントリを記憶するＲＡＭ１０４のアドレスを決定し（Ｓ２０４）、ＲＡＭ１０４に対してＦＤＢエントリを送り、Write命令を発行して、ＲＡＭ１０４の、Ｓ２０４で決定したアドレスに、新たなＦＤＢエントリを登録する（Ｓ２０５）。
【００５９】
次に、生成したＦＤＢエントリに基づいてＣＡＭ１０１の検索テーブルに登録する検索キーを生成し（Ｓ２０６）、生成した検索キーのパリティを演算する（Ｓ２０７）。
【００６０】
次に、生成した検索キーにパリティを付加した検索キーをＣＡＭ１０１に送り、Write命令を発行して、Ｓ２０４で決定したＦＤＢエントリを記憶したＲＡＭ１０４のアドレスに対応するアドレスに、新たな検索キーを登録する（Ｓ２０８）。
【００６１】
なお、これらＳ２０１からＳ２０８にかけての処理はソフトウェアで処理を行ってもよい。
【００６２】
以上説明したように、本発明の第１の実施の形態では、ＣＡＭ１０１に記憶される検索キーにパリティを付加したので、ＣＡＭ１０１の誤検索を防止し、誤った転送情報を取得して、パケットが誤った宛先に転送されることを防止することができる。特に、ＶＬＡＮやＶＭＡＮによって構成されるＶＰＮにおいて、本発明のＬＡＮスイッチを用いると、ＣＡＭ１０１に記憶されるデータが反転した際に、対応するＶＬＡＮ番号が存在する可能性が高いが、ソフトエラーが生じても誤ったＶＬＡＮ番号のネットワークへのパケットの転送を防止することができる。
【００６３】
また、ＣＡＭ１０１に記憶するデータ（検索キー）にパリティを付すので、別なハードウェア構成によってパリティを設ける必要がない。
【００６４】
次に、本発明の第１の実施の形態の動作の変形例として、ＬＡＮスイッチではなく、ルータの動作に即して説明する。
【００６５】
まず、図２に示されるルータにパケットが入力されると、物理層処理部１０５は受け取ったパケットを転送エンジン１０６に送る。転送エンジン１０６では、受け取ったパケットの送信元ＩＰアドレス、宛先ＩＰアドレス、ポート情報、ルート情報、ＶＰＮ識別子等の転送情報を含むヘッダ情報を抽出し、抽出したヘッダ情報（転送情報）を検索エンジン１０３に送る。
【００６６】
検索エンジン１０３は、転送情報を受け取ると、ＣＡＭ１０１を検索するための検索キーを生成する。この検索キーは、パケットから生成される所定の文字列であり、パケットの送り元又は送り先に対して一意であることが必要であるため、例えば、転送情報から、ＶＬＡＮ識別子やＭＡＣ（Media Access Control）アドレスを抽出することで検索キーが生成される。
【００６７】
そして生成された検索キーを用いてＣＡＭ１０１に記憶されている検索テーブルを検索する。検索の結果、転送情報に対応するＦＤＢエントリがＲＡＭ１０４に記憶されていれば、該ＦＤＢエントリに従ってパケットの転送処理を行う。
【００６８】
検索の結果、転送情報に対応するＦＤＢエントリがＲＡＭ１０４に登録されていない場合は、例えば、予め設定されたデフォルトルート（Default Route）に転送処理を行ってデフォルトルート上の他のルータに処理を委ねることができる。
【００６９】
本実施の変形例のＣＡＭ１０１に記憶されている検索テーブルの例を図３に示す。
【００７０】
図３に示すように、“Database_Entry”は、ＣＡＭ１０１のアドレスであり、Ｎビットのデータから構成される検索キー及び１ビットのパリティ（本実施の形態では、該Ｎビットの検索キーに対する奇数パリティ）がアドレス毎に記憶されている。このパリティは、ＣＡＭ１０１に新たに検索キーを記憶する際に、検索エンジン１０３によって演算され、演算されたパリティの付された検索キーをＣＡＭ１０１に記憶する。
【００７１】
前述したように、この“Database_Entry”（アドレス）が、ＲＡＭ１０４に記憶されているＦＤＢのアドレスと対応するように、検索キーが記憶されており、検索キーに対応する“Database_Entry”（アドレス）を用いてＲＡＭ１０４に記憶されたデータを読み込むことによって、該検索キーに対応するＦＤＢのエントリ（転送情報）を取得することができる。
【００７２】
ここで、物理層処理部１０５に新たなパケットが到達した場合、物理層処理部１０５はパケットを転送エンジン１０６に送る。転送エンジン１０６は受け取ったパケットのヘッダ情報を抽出し、検索エンジン１０３に送る。検索エンジン１０３は、受け取ったパケットのヘッダ情報から検索キーを生成し、パリティを計算する。そして、検索エンジンによって、生成した検索キーをＣＡＭ１０１に送り、検索命令を発行することで、ＣＡＭ１０１の検索テーブルを検索し、検索結果としてＣＡＭ１０１のアドレスを得る。
【００７３】
このＣＡＭによって行われる検索は、検索キーの各ビットとＣＡＭに記憶されている検索キーの各ビットとの排他的論理和の演算結果として、マスクを用いて予め検索範囲として定義されたビット領域の中の全てのビットが正である場合（すなわち、全ビットが同じである場合）に、検索キーとＣＡＭに記憶されている検索キーとが一致（ヒット）したと判断し、該検索キーが記憶されているアドレス（Database_Entry）を検索結果として出力する。また、ヒットしていない場合には検索結果を出力しない。
【００７４】
図３に示す例では、ＣＡＭ検索キーの第０ビット及び第１ビットが“１”であるため、検索キーと一致（ヒット）し、検索テーブルのアドレス“0x0_0002”を結果として返し、検索が完了する。
【００７５】
ここで、ＣＡＭ１０１にソフトエラーが発生し、ＣＡＭ１０１の検索テーブルにビット反転が発生したとする。図４は、ＣＡＭ１０１の検索テーブルのアドレス“0x0_0001”に記憶されている検索キーの第０ビットが“０”から“１”に反転した状態を示す。この場合、前述したように到達したパケットのヘッダ情報から生成した検索キーを用いて検索テーブルを検索すると、ソフトエラーによるビット反転のために、検索キーの内容と一致する項目が、アドレス“0x0_0001”及びアドレス“0x0_0002”の２箇所存在するが、該ソフトエラーが発生した検索キー（アドレス“0x0_0001”）は、パリティビットが一致しないことから、検索キーがヒットしない。一方、正しいエントリは、パリティビットも含めて一致することから、検索キーがヒットする。よって、正しい検索キーのアドレス“0x0_0002”を検索の結果として取得することができる。
【００７６】
上記のような機構によってソフトエラーの場合に検索キーがヒットしない場合、ルータは、例えば、予め設定されたデフォルトルート（Default Route）に転送処理を行ってデフォルトルート上の他のルータに処理を委ねることができる。
【００７７】
また、ソフトエラーによる誤ったヒットを防止するために、パリティだけではなく、検索テーブルに記憶される同一の検索キーに対応する検索キーを図５に示すように、複数登録する方法も考えられる。
【００７８】
この場合、図６に示すように、一対として記憶されている二つの検索キーのうち一方の検索キーにソフトエラー発生じてビット反転が発生した場合には、他方の検索キー（ソフトエラーの発生じていない検索キー）と検索キーが一致する。検索結果としてはもう一方のアドレスが得られ、そちらのＦＤＢエントリにヒットすることで、重要な検索アドレスに対する冗長構成が可能となる。
【００７９】
特にデフォルトルートは、ＣＡＭの最後付近のアドレスに、所定のビットに対してマスクを“Do Not Care”に設定することで、他にヒットするエントリがなかった場合に必ずヒットするように設定されるが、これを図６のように二つの検索キーを一対として記憶するのが有効である。
【００８０】
また、仮想閉域網を提供するサービスにおいては、閉域性を保つために、ＣＡＭ１０１に記憶されるデータで仮想閉域網を識別するためのＶＰＮ識別子にパリティを付与することが有効である。
パリティも含めて一致するかを検索することで、ＣＡＭ１０１に発生したソフトエラーによって仮想閉域網の識別子が変化した検索キーが、誤ってヒットして、誤った転送情報を取得して、誤った宛先に対してパケットが転送されることがない。
【００８１】
次に、本発明の変形例の検索エンジン１０３が行う、ＣＡＭ１０１の検索テーブルの検索処理を、図７のフローチャートを参照してルータを例にとって説明する。この場合、前述した図７とは、Ｓ１０９及びＳ１１０の動作が異なる。
【００８２】
まず、検索エンジン１０３は、物理層処理部１０５が受け取ったパケットから抽出されたヘッダ情報を解析する（Ｓ１０１）。そして、受信したパケットのヘッダ情報から前述した検索キーを生成する（Ｓ１０２）。
【００８３】
次に、検索キーを構成するデータの全ビットの奇数パリティを算出して、パリティを生成する（Ｓ１０３）。そして、算出したパリティを、Ｓ１０２で生成した検索キーに付加し、これをＣＡＭ１０１のCompareレジスタに書き込む（Ｓ１０４）。そして、ＣＡＭ１０１に対してCompare命令を発行する（Ｓ１０５）。ＣＡＭ１０１は、記憶された検索キーのうち、Compareレジスタに書き込まれた検索キーと一致（完全一致又は部分一致）するものがあるかを検索する。そして、検索の結果、ヒットした検索キーがあれば、ＣＡＭ１０１は一致した検索キーのアドレスを出力する。検索エンジン１０３は、検索結果としてアドレスを受け取ると、ヒットした検索キーがあると判定して、Ｓ１０７に移行する。一方、検索結果としてアドレスを受け取れないと、ヒットした検索キーがないと判定して、Ｓ１０９に移行する（Ｓ１０６）。
【００８４】
Ｓ１０７では、検索キーによって検索されたアドレスを用いて、ＲＡＭ１０４から該アドレスに対応するＦＤＢのエントリを読み出して、転送情報を取得する。そして、該転送情報に従って、転送エンジンに対して転送命令を発行する（Ｓ１０８）。
【００８５】
一方、Ｓ１０９では、前述した図３の処理とは異なり、宛先ＩＰアドレスに対する経路情報がないとして、パケット廃棄などの障害処理が行われ、インターネットコントロールメッセージプロトコル（ＩＣＭＰ）により、到達不能のメッセージを送信ホストへの返送する（Ｓ１１０）。
【００８６】
次に、ルータが行う経路検索テーブルのメンテナンス処理を、図８のフローチャートを参照して説明する。
【００８７】
まず、ルーティングプロセッサ２０２は、静的なコンフィグレーション設定の追加やＯＳＰＦなどの動的ルーティングプロトコルを通じて、新たなルートの追加・削除などの変更があったかどうかを判断（Ｓ２０１）する。変更があった場合には新たな経路情報を用いて経路計算を行い、ＦＤＢの内容の見直しを行って、その結果をＣＰＵ１０２に指示する。この指示に従って、ＣＰＵ１０２はＦＤＢエントリを生成し（Ｓ２０２）、生成したＦＤＢエントリのＥＣＣを演算する（Ｓ２０３）。次に、生成したＦＤＢエントリを記憶するＲＡＭ１０４のアドレスを決定（Ｓ２０４）する。ＲＡＭ内のアドレス決定では、ＣＡＭ１０１内のエントリのアドレスがＲＡＭ内のＦＤＢエントリのアドレスと一致していることと、ＣＡＭ検索の際に“longest MatchとなるようにＣＡＭ内でエントリの並べなければならないこととを考慮する必要がある。ＲＡＭ内のアドレス決定が終わるとＲＡＭ１０４に対してＦＤＢエントリを送り、Write命令を発行して、ＲＡＭ１０４の、Ｓ２０４で決定したアドレスに、新たなＦＤＢエントリを登録する（Ｓ２０５）。
【００８８】
次に、生成したＦＤＢエントリに基づいてＣＡＭ１０１の検索テーブルに登録する検索キーを生成し（Ｓ２０６）、生成した検索キーのパリティを演算する（Ｓ２０７）。
【００８９】
次に、生成した検索キーにパリティを付加した検索キーをＣＡＭ１０１に送り、Write命令を発行して、Ｓ２０４で決定したＦＤＢエントリを記憶したＲＡＭ１０４のアドレスに対応するアドレスに、新たな検索キーを登録する（Ｓ２０８）。
【００９０】
なお、これらＳ２０１からＳ２０８にかけての処理はソフトウェアで処理を行ってもよい。
【００９１】
次に、本発明の第２の実施の形態について説明する。
【００９２】
第２の実施の形態のＬＡＮスイッチでは、ＣＡＭ１０１に記憶される検索テーブルの複製（マスターデータ）を、異なるメモリに記憶する。そして、所定のタイミングでマスターデータと検索テーブルとを比較し、両者の相異（検索テーブルのエラー）が発見された場合には、マスターデータの内容を検索テーブルに書き込むことによって、検索テーブルのエラーを修正する。なお第１の実施の形態と同一の構成には同一の符号を付し、その説明を省略する。
【００９３】
図９は、第２の実施の形態のＬＡＮスイッチカードの構成を示すブロック図である。
【００９４】
ＲＡＭ１１２は、ＣＰＵ１０２に接続されており、ＣＡＭ１０１に記憶された検索テーブルと同一内容の複製（マスターデータ）を記憶する。このマスターデータは、ＣＡＭ１０１の検索テーブルに新たな検索キーが登録されたときに（例えば、前述した図８のＳ２０８の際）、ＣＡＭ１０１への登録内容（又は、ＣＡＭ１０１に記憶される検索テーブル全体）をそのまま複写して、ＲＡＭ１１２に記憶される。すなわち、このＲＡＭ１１２によって検索テーブルの複製を記憶することで複製記憶部が構成される。
【００９５】
このＣＡＭ１０１に記憶された検索テーブルは、所定のタイミング（例えば、ＣＡＭ１０１に対する処理が一定時間行われていない場合）に、ＣＰＵ１０２によって、ＣＡＭ１０１に記憶されている検索テーブルとＲＡＭ１１２に記憶されているマスターデータとが照合される。この際、ソフトエラー等によるデータの誤りが発見された場合には、ＲＡＭ１１２のマスターデータによって、ＣＡＭ１０１の検索テーブルの誤りを修正する。
【００９６】
次に、本発明の第２の実施の形態のＣＰＵ１０２が行う、ＣＡＭ１０１に記憶されている検索テーブルの誤り修正処理を、図１０のフローチャートを用いて説明する。
【００９７】
ＣＰＵ１０２は、検索エンジン１０３がＣＡＭ１０１に対する処理（検索、書き込み等）が行われたか否かを、タイマを用いて監視して、ＣＡＭ１０１の非検索状態を検出する（Ｓ３０１）。すなわち、ＣＡＭ１０１に対する処理が行われた際にはタイマをリセットし、タイマが所定の時間を超えた場合（ＣＡＭ１０１に対する処理が所定の時間行われていない場合）には、ＣＡＭ１０１は非検索状態であると判定する。そして、ＣＡＭ１０１の検索テーブルの所定のアドレスの検索キーに対してRead命令を発行し、ＣＡＭ１０１の当該アドレスの記憶内容を読み込んで、検索キーを取得する（Ｓ３０２）。次に、ＲＡＭ１１２に記憶されているマスターデータから該当するアドレスの記憶内容を読み込んで、検索キーを取得する（Ｓ３０３）。そして、取得した検索キー同士を比較し、両者が一致しているか否かを判定する（Ｓ３０４）。比較の結果、両者が一致していれば、Ｓ３０５からＳ３０８の処理を行うことなく、Ｓ３０９に移行し、一致していなければＳ３０５に移行する。
【００９８】
Ｓ３０５では、ＣＡＭ１０１にWrite命令を発行し、ＲＡＭ１１２のマスターテーブルから取得した検索キーを該当するアドレスに上書きする。次に、書き込んだ検索キーのアドレスRead命令を発行し、ＣＡＭ１０１の当該アドレスの記憶内容を読み込んで、Ｓ３０５で書き込んだ検索キーを取得する（Ｓ３０６）。次に、ＲＡＭ１１２に記憶されているマスターテーブルから該当するアドレスの記憶内容を読み込んで、検索キーを取得し（Ｓ３０７）、取得した検索キー同士を比較する（Ｓ３０８）。比較の結果、両者が一致していればＳ３０９に移行し、一致していなければＳ３１０に移行する。Ｓ３０９では、Ｓ３０１において設定した所定のアドレスに１を加算（インクリメント）して、Ｓ３０１に移行する。そして、更新されたアドレスに対して、Ｓ３０１からＳ３０８の処理を行うことによって、検索テーブルの全ての検索キーを順次比較して、検索テーブルの内容に異常があった場合にはこれを修正する。
【００９９】
Ｓ３１０では、メモリに障害が発生した旨の警告を通知する等のハード障害処理を行い、処理を終了する。
【０１００】
これらＳ３０１からＳ３０９にかけての処理はソフトウェアによって行ってもよい。
【０１０１】
以上のように構成された本発明の第２の実施の形態では、第１の実施の形態の効果に加え、ＣＡＭ１０１の検索テーブルの複製を記憶しておき、ＣＡＭ１００に記憶されている検索テーブルにソフトエラーが発生した場合にも、バックグラウンドの処理によってエラーを検出し、エラーを修正することができる。また、ＣＡＭ１０１にハードウェア上の障害が発生した場合には、その障害を検知することができる。
【図面の簡単な説明】
【０１０２】
【図１】本発明の第１の実施の形態の、ネットワークシステムの構成を示すブロック図である。
【図２】本発明の第１の実施の形態の、ＬＡＮスイッチの構成を示すブロック図である。
【図３】本発明の第１の実施の形態の、ＣＡＭ１０１に記憶されている検索テーブルの説明図である。
【図４】本発明の第１の実施の形態の、図３に示す検索テーブルにソフトエラーが発生した状態の説明図である。
【図５】本発明の第１の実施の形態の、ＣＡＭ１０１に記憶されている検索テーブルの別の例の説明図である。
【図６】図５に示す検索テーブルにソフトエラーが発生した状態の説明図である。
【図７】本発明の第１の実施の形態の、ＣＡＭ１０１の検索テーブルの検索処理を示すフローチャートである。
【図８】本発明の第１の実施の形態の、未登録宛先のルート発見処理を示すフローチャートである。
【図９】本発明の第２の実施の形態の、ＬＡＮスイッチの構成を示すブロック図である。
【図１０】本発明の第２の実施の形態の、ＣＡＭ１０１に記憶されている検索テーブルの誤り修正処理のフローチャートである。
【符号の説明】
【０１０３】
１００  ＬＡＮスイッチカード
１０１  ＣＡＭ
１０２  ＣＰＵ
１０３  検索エンジン
１０４  ＲＡＭ
１０５  物理層処理部
１０６  転送エンジン
１０７  スイッチ
２００  バックプレーン
２０１  バックプレーンスイッチ
２０２  ルーティングプロセッサ
１１００  コア網
１２００、１３００  エッジ網
１１０１ａ、１１０１ｂ、１１０１ｃ、１１０１ｄ、１２０１ａ、１２０１ｂ、１２０１ｃ、１３０１ａ、１３０１ｂ、１３０１ｃ、  スイッチ
１１０２Ａ、１１０２Ｂ  ゲートウェイ
１３０２  ゲートウェイ
１４００  ＶＰＮ
１４０１ａ、１４０１ｂ、１４０１ｃ  サーバ
１５００  トンネリングネットワーク
【図１】
2005117171.tif 000003
【図２】
2005117171.tif 000004
【図３】
2005117171.tif 000005
【図４】
2005117171.tif 000006
【図５】
2005117171.tif 000007
【図６】
2005117171.tif 000008
【図７】
2005117171.tif 000009
【図８】
2005117171.tif 000010
【図９】
2005117171.tif 000011
【図１０】
2005117171.tif 000012