(57)【要約】【課題】ネットワーク中継装置において、複数のボード間に跨るリンクアグリゲーションでマルチキャストを行う。【解決手段】複数のパケット処理ボード間に跨るリンクアグリゲーションを行うポートにマルチキャストパケットを送出する場合、受信側のパケット処理ボードＰＰＵ＃０はパケットを送出するパケット処理ボードを指定するビットマップをつけてクロスバスイッチＣＳＷにパケットを送出する。その際、マルチキャストパケットを送出する全リンクアグリゲーションポートに属する全物理ポートが繋がるパケット処理ボードに対しパケットを送出するよう指示する。クロスバスイッチは該ビットマップで指示された送信側のパケット処理ボードＰＰＵ＃１、＃２にパケットを送出する。全送信側パケット処理ボードは同一のアルゴリズムで出力先物理ポートを選択し、出力先物理ポートが自ボードの下ならパケットを送出し、他ボードの下ならパケットを廃棄する。【選択図】  図９
2005020492.tif 000002
【特許請求の範囲】
【請求項１】
複数の物理ポートを論理的に束ねることにより１つの論理ポートとして取り扱うことが可能なネットワーク中継装置であって、
パケットを入力するパケット入力部と、
前記論理ポートに出力すべきパケットについて、該パケットに含まれる宛先アドレス情報と該パケットを用いるアプリケーションを特定するための識別情報とを抽出する抽出部と、
前記論理ポートを構成する物理ポートのうち、前記パケットの出力に用いる物理ポートを前記宛先アドレス情報と前記識別情報とに応じて選択する物理ポート選択部と、
前記選択された物理ポートを用いて前記パケットを前記宛先アドレスに出力するパケット出力部と、を備えるネットワーク中継装置。
【請求項２】
請求項１に記載のネットワーク中継装置であって、
前記物理ポート選択部は、前記宛先アドレス情報と前記識別情報とを用いた所定のハッシュ関数によってハッシュ値を求め、該ハッシュ値に対応付けられた物理ポートを選択する、ネットワーク中継装置。
【請求項３】
複数の物理ポートを論理的に束ねることにより１つの論理ポートとして取り扱うことが可能なネットワーク中継装置であって、
所定数の回線を収容するとともに、該各回線に対するパケットの入出力を制御するパケット制御部を複数備え、
該各パケット制御部は、
前記論理ポートに出力すべきパケットについて、該パケットが当該パケット制御部の処理対象であるか否かを判定する判定部と、
前記判定部が処理対象であると判定した場合に、前記パケットを出力するパケット出力部とを備える、ネットワーク中継装置。
【請求項４】
請求項３に記載のネットワーク中継装置であって、
前記パケット出力部は、前記判定部が処理対象でないと判定した場合に、前記パケットを破棄する、ネットワーク中継装置。
【請求項５】
請求項３に記載のネットワーク中継装置であって、
前記各パケット制御部は、更に、前記論理ポートを構成する物理ポートのうち前記パケットの出力に用いる物理ポートを所定の設定に基づき選択する物理ポート選択部を備え、
前記判定部は、前記選択された物理ポートが、当該パケット制御部の制御対象である場合に、前記パケットが、当該パケット制御部の処理対象であると判定する、ネットワーク中継装置。
【請求項６】
請求項５に記載のネットワーク中継装置であって、
前記物理ポート選択部は、前記パケットに含まれる宛先アドレス情報と該パケットを用いるアプリケーションを特定するための識別情報とを用いた所定のハッシュ関数によってハッシュ値を求め、該ハッシュ値に対応付けられた物理ポートを選択する、ネットワーク中継装置。
【請求項７】
複数の物理ポートによる通信を制御可能なネットワーク中継装置であって、
所定数の回線を収容するとともに、該各回線に対するパケットの入出力を制御するパケット制御部を複数備え、
該各パケット制御部は、
入力したパケットがユニキャストパケットであるかマルチキャストパケットであるかを判定するパケット種別判定部と、
ユニキャストパケットを入力した場合に、該ユニキャストパケットを転送すべき回線を所定の設定に基づき選択し、該回線を収容するパケット制御部に前記ユニキャストパケットを転送するユニキャスト出力回線選択部と、
マルチキャストパケットを入力した場合に、所定の設定に基づき、前記各パケット制御部の少なくとも一部に該マルチキャストパケットを配布するマルチキャストパケット配布部と、
前記マルチキャストパケットが配布された場合に、該マルチキャストパケットを出力する回線を、所定の設定に基づき選択するマルチキャスト出力回線選択部と、
を備えるネットワーク中継装置。
【請求項８】
請求項７に記載のネットワーク中継装置であって、
該ネットワーク中継装置は複数の物理ポートを論理的に束ねることにより１つの論理ポートとして取り扱うことが可能であり、
前記ユニキャスト出力回線選択部は、前記選択した回線が前記論理ポートであった場合に、更に、該論理ポートを構成する物理ポートのうち前記ユニキャストパケットの出力に用いる物理ポートを所定の設定に基づき選択する、ネットワーク中継装置。
【請求項９】
請求項７に記載のネットワーク中継装置であって、
該ネットワーク中継装置は複数の物理ポートを論理的に束ねることにより１つの論理ポートとして取り扱うことが可能であり、
前記マルチキャスト出力回線選択部は、前記選択した回線が前記論理ポートであった場合に、更に、該論理ポートを構成する物理ポートのうち前記マルチキャストパケットの出力に用いる物理ポートを所定の設定に基づき選択する、ネットワーク中継装置。
【請求項１０】
請求項９に記載のネットワーク中継装置であって、
前記マルチキャスト出力回線選択部は、前記選択された物理ポートが当該パケット制御部の制御対象外である場合に、前記配布されたマルチキャストパケットを破棄する、ネットワーク中継装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ネットワークの中継を行うネットワーク中継装置に関する。
【０００２】
【従来の技術】
一般的に、ネットワーク機器間を配線するためには、リピータハブやレイヤ２スイッチといったネットワーク中継装置が利用されている。リピータハブは、複数のネットワーク機器を電気的に単純に接続するための装置である。一方、レイヤ２スイッチは、入力したパケットをその宛先アドレスに応じて最適な物理ポートに転送する機能を備えている。近年のオフィスでは、ネットワーク機器の増加に伴うトラフィックの増大を抑制するため、リピータハブではなく、レイヤ２スイッチを用いることが多い。また、近年では、より大規模なネットワークを構築するため、レイヤ３スイッチと呼ばれるネットワーク中継装置も利用されている。レイヤ３スイッチは、レイヤ２スイッチのブリッジ機能に加え、ルータ機能も備えている。
【０００３】
上述したレイヤ２スイッチやレイヤ３スイッチの中には、リンクアグリゲーションと呼ばれる機能を備えるものもある。かかる機能は、ＬＡＮスイッチ間等に接続された複数の物理ポートを１つの論理ポートとして扱うことにより帯域の拡大や冗長性の確保を実現する機能である（特許文献１参照）。
【０００４】
【特許文献１】
特開２００２−９８６６号公報
【０００５】
【発明が解決しようとする課題】
ネットワーク中継装置は、１００Ｍｂｐｓ、１Ｇｂｐｓ、１０Ｇｂｐｓと益々高速化されるネットワークの伝送速度に対応する必要があり、また、マルチキャストを行うアプリケーションの増加やリンクアグリゲーション機能の搭載など、より複雑な処理を行う必要がある。そこで、本発明は、ネットワーク中継装置において、より効率的なネットワークの中継処理を可能とし、高速化に対応可能な技術を提供することを目的とする。
【０００６】
【課題を解決するための手段】
上記課題を解決するため、本発明の第１のネットワーク中継装置を次のように構成した。すなわち、複数の物理ポートを論理的に束ねることにより１つの論理ポートとして取り扱うことが可能なネットワーク中継装置であって、パケットを入力するパケット入力部と、前記論理ポートに出力すべきパケットについて、該パケットに含まれる宛先アドレス情報と該パケットを用いるアプリケーションを特定するための識別情報とを抽出する抽出部と、前記論理ポートを構成する物理ポートのうち、前記パケットの出力に用いる物理ポートを前記宛先アドレス情報と前記識別情報とに応じて選択する物理ポート選択部と、前記選択された物理ポートを用いて前記パケットを前記宛先アドレスに出力するパケット出力部と、を備えることを要旨とする。
【０００７】
アプリケーションを特定するための識別情報としては、例えば、ＴＣＰ／ＵＤＰポート番号を挙げることができる。本発明では、論理ポートによってパケットを出力する際、このような識別情報とパケットの宛先アドレス情報とに応じて実際にパケットを出力する物理ポートを選択する。こうすることにより、同一アドレス宛や同一アプリケーション宛のパケットを同じフローに属するパケットとして扱い、同じ物理ポートから出力することができる。同じフローに属するパケットを異なる物理ポートから出力した場合には、僅かなタイミングのずれによって、後から送信したパケットが先に送信したパケットよりも早く送信先に到達してしまうという、いわゆるパケットの追い越し問題が発生する場合がある。パケットの追い越しがあった場合には、そのパケットを受信した装置において、再度パケットの順序を復元する処理が発生してしまう。そのため、本発明によれば、このようなパケットの追い越し問題を避けることができるため、効率的にネットワークを中継することが可能となる。
【０００８】
上記第１のネットワーク中継装置において、前記物理ポート選択部は、前記宛先アドレス情報と前記識別情報とを用いた所定のハッシュ関数によってハッシュ値を求め、該ハッシュ値に対応付けられた物理ポートを選択するものとしてもよい。こうすることにより、宛先アドレス情報や識別情報に応じて効率的に物理ポートの使い分けを行うことが可能となる。
【０００９】
上記課題を解決するため、本発明の第２のネットワーク中継装置を次のように構成した。すなわち、複数の物理ポートを論理的に束ねることにより１つの論理ポートとして取り扱うことが可能なネットワーク中継装置であって、所定数の回線を収容するとともに、該各回線に対するパケットの入出力を制御するパケット制御部を複数備え、該各パケット制御部は、前記論理ポートに出力すべきパケットについて、該パケットが当該パケット制御部の処理対象であるか否かを判定する判定部と、前記判定部が処理対象であると判定した場合に、前記パケットを出力するパケット出力部とを備えることを要旨とする。
【００１０】
論理ポートは、複数の物理ポートによって構成される回線であるため、複数のパケット制御部に跨って設定されている場合がある。そのため、本発明では、論理ポートを用いたパケットの出力時には、各パケット制御部が、それぞれ独立してパケットを出力するか否かを判断するものとした。こうすることにより、処理の負担が分散され、効率的にパケットの出力を行うことが可能となる。
【００１１】
上記第２のネットワーク中継装置において、前記パケット出力部は、前記判定部が処理対象でないと判定した場合に、前記パケットを破棄するものとしてもよい。このような構成であれば、冗長なパケット出力に伴う混乱を回避することが可能となる。
【００１２】
パケット制御部が、出力すべきパケットが自分の処理対象であるか否かを判定するためには、例えば、上記第２のネットワーク中継装置において、前記各パケット制御部は、更に、前記論理ポートを構成する物理ポートのうち前記パケットの出力に用いる物理ポートを所定の設定に基づき選択する物理ポート選択部を備え、前記判定部は、前記選択された物理ポートが、当該パケット制御部の制御対象である場合に、前記パケットが、当該パケット制御部の処理対象であると判定するといった構成によって行うことができる。
【００１３】
かかる構成のネットワーク中継装置において、前記物理ポート選択部は、前記パケットに含まれる宛先アドレス情報と該パケットを用いるアプリケーションを特定するための識別情報とを用いた所定のハッシュ関数によってハッシュ値を求め、該ハッシュ値に対応付けられた物理ポートを選択するものとしてもよい。こうすることにより、同じフローに属するパケットを同じ物理ポートから出力することが可能となる。
【００１４】
上記課題を解決するため、本発明の第３のネットワーク中継装置を次のように構成した。すなわち、複数の物理ポートによる通信を制御可能なネットワーク中継装置であって、所定数の回線を収容するとともに、該各回線に対するパケットの入出力を制御するパケット制御部を複数備え、該各パケット制御部は、入力したパケットがユニキャストパケットであるかマルチキャストパケットであるかを判定するパケット種別判定部と、ユニキャストパケットを入力した場合に、該ユニキャストパケットを転送すべき回線を所定の設定に基づき選択し、該回線を収容するパケット制御部に前記ユニキャストパケットを転送するユニキャスト出力回線選択部と、マルチキャストパケットを入力した場合に、所定の設定に基づき、前記各パケット制御部の少なくとも一部に該マルチキャストパケットを配布するマルチキャストパケット配布部と、前記マルチキャストパケットが配布された場合に、該マルチキャストパケットを出力する回線を、所定の設定に基づき選択するマルチキャスト出力回線選択部と、を備えることを要旨とする。
【００１５】
本発明によれば、入力したパケットがユニキャストパケットであれば、入力側のパケット制御部でそのパケットの出力を行う回線を選択し、該回線が接続される出力側のパケット制御部にパケットを転送する。マルチキャストパケットであれば、入力側のパケット制御部から、マルチキャストパケット配布部経由で、一つあるいは複数の出力側のパケット制御部にパケットを転送する。各々の出力側のパケット制御部では、出力を行う一つあるいは複数の回線を選択する。従って、マルチキャストパケットは、マルチキャストパケット配布部と、出力側のパケット制御部の両方で、複数に展開されるため、装置内のトラフィックの増加を抑え、高性能なマルチキャスト中継を実現することができる。
【００１６】
上記第３のネットワーク中継装置において、該ネットワーク中継装置は複数の物理ポートを論理的に束ねることにより１つの論理ポートとして取り扱うことが可能であり、前記ユニキャスト出力回線選択部は、前記選択した回線が前記論理ポートであった場合に、更に、該論理ポートを構成する物理ポートのうち前記ユニキャストパケットの出力に用いる物理ポートを所定の設定に基づき選択するものとしてもよい。こうすることにより、論理ポートを用いてユニキャストパケットを出力することができる。
【００１７】
また、上記第３のネットワーク中継装置において、該ネットワーク中継装置は複数の物理ポートを論理的に束ねることにより１つの論理ポートとして取り扱うことが可能であり、前記マルチキャスト出力回線選択部は、前記選択した回線が前記論理ポートであった場合に、更に、該論理ポートを構成する物理ポートのうち前記マルチキャストパケットの出力に用いる物理ポートを所定の設定に基づき選択するものとしてもよい。こうすることにより、論理ポートを用いてマルチキャストパケットを出力することができる。
【００１８】
かかる構成のネットワーク中継装置において、前記マルチキャスト出力回線選択部は、前記選択した物理ポートが当該パケット制御部の制御対象外である場合に、前記配布されたマルチキャストパケットを破棄するものとしてもよい。このような構成であれば、複数の物理回線を束ねて一つの回線のごとく扱い、一つに束ねられた複数の物理回線のうちのいずれかの物理回線に障害が発生したときに出力先を、束ねられた複数の物理回線内の他の物理回線に切り替える際に、束ねられた複数の物理回線のいずれかを収容する全てのパケット制御部にパケットを送っておき、出力回線選択部で、束ねられた複数の物理回線のうちの一本だけからパケットを出力し、他の物理回線へは出力する前にパケットを廃棄するように制御することにより、高速に物理回線を切り替えることができる。
【００１９】
本発明において上述した種々の態様は、適宜、組み合わせたり、一部を省略して適用することができる。また、本発明は、上述した種々のネットワーク中継装置としての構成に限られず、例えば、ネットワークの中継方法やネットワークを中継するためのコンピュータプログラム、かかるプログラムを記録したコンピュータ読み取り可能な記録媒体等としても構成することができる。いずれの構成においても、上述した各態様を適宜、適用可能である。コンピュータが読み取り可能な記録媒体としては、例えば、フレキシブルディスクやＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、光磁気ディスク、メモリカード、ハードディスク等の種々の媒体を利用することができる。
【００２０】
【発明の実施の形態】
以下、本発明の実施の形態について実施例に基づき次の順序で説明する。
Ａ．ネットワーク中継装置の概略構成：
Ｂ．各テーブルの構造：
（Ｂ１）経路テーブル：
（Ｂ２）リンクアグリゲーションテーブル：
Ｃ．ネットワーク中継装置の動作概要：
（Ｃ１）ユニキャスト中継時：
（Ｃ２）マルチキャスト中継時：
Ｄ．パケット入力処理：
Ｅ．パケット出力処理：
【００２１】
Ａ．ネットワーク中継装置の概略構成：
図１は、実施例としてのネットワーク中継装置１００の概略構成を示す説明図である。本実施例のネットワーク中継装置１００は、いわゆるＬＡＮスイッチであり、ブリッジ機能やルータ機能を備えるとともに、リンクアグリゲーション機能も備えている。リンクアグリゲーションとは、複数の物理ポートを束ねて１つの論理ポートとして取り扱うことが可能な機能であり、帯域幅の拡大や冗長性の確保を図ることができる。図１では、５本の物理ポートを束ねて構成した論理ポートＬＡ１と、２本の物理ポートを束ねて構成した論理ポートＬＡ２とを示した。各論理ポートは、リンクアグリゲーションＩＤ（図中の「ＬＡ−ＩＤ」）と呼ばれる識別番号によって判別することができる。
【００２２】
ネットワーク中継装置１００は、大まかに分けて、制御ユニット１１０と、クロスバスイッチ１２０と、パケット制御部１３０（以下、「ＰＰＵ１３０」と記載。）と、ネットワークインターフェース部１４０（以下、「ＮＩＦ１４０」と記載。）により構成されている。本実施例では、クロスバスイッチ１２０に３つのＰＰＵ１３０が接続され、各ＰＰＵ１３０には、それぞれ、１つまたは２つのＮＩＦ１４０が接続されているものとした。
【００２３】
制御ユニット１１０は、ネットワーク中継装置１００の全体制御を行うユニットであり、内部には、ＣＰＵやメモリなどを備えている。制御ユニット１１０は、図示していないＰＣＩバスによって各ＰＰＵ１３０と接続されており、このＰＣＩバス経由で各ＰＰＵ１３０の制御を行う。また、制御ユニット１１０は、ネットワークによって接続された管理用コンピュータに対して、Ｗｅｂベースの設定用ユーザインタフェースを提供する。管理者は、このユーザインタフェースを利用することにより、経路テーブルなどの設定を行うことができる。その他、制御ユニット１１０は、各ＰＰＵ１３０に対する経路テーブルの配布やルーティングプロトコルの処理などを行う。
【００２４】
ＰＰＵ１３０は、パケットの入出力を制御するためのモジュールである。各ＰＰＵ１３０には、図中に＃０、＃１、＃２と示したように、それぞれに識別番号が付されている。各ＰＰＵ１３０は、ＣＰＵ１３１、ＲＯＭ１３２、ＲＡＭ１３３、検索エンジン１３４、テーブル記憶部１３５を備えている。ＲＯＭ１３３には、ＰＰＵ１３０を制御するためのプログラムが記録されており、ＣＰＵ１３１は、ＲＡＭ１３３をワークエリアとして用いることによりかかるプログラムを実行する。
【００２５】
検索エンジン１３４は、テーブル記憶部１３５に記録された各種テーブルを用いて経路検索を行う。本実施例において、経路検索とは、入力したパケットの宛先アドレス等に応じてそのパケットを出力するインタフェースを検索することをいう。検索エンジン１３４は、ソフトウェア的に実現することも可能であるが、処理を高速に行うために、経路検索用に専用に設計されたＡＳＩＣによって構成することが好ましい。
【００２６】
テーブル記憶部１３５には、経路テーブルやリンクアグリゲーションテーブル等が記録されている。これらのテーブルの詳細については後述する。テーブル記憶部１３５は、例えば、ＣＡＭ（Ｃｏｎｔｅｎｔ−Ａｄｄｒｅｓｓ  Ｍｅｍｏｒｙ）とよばれる特殊なメモリやＤＲＡＭ等によって構成することができる。
【００２７】
ＮＩＦ１４０は、１０ＢＡＳＥ−５や１０ＢＡＳＥ−Ｔ、１００ＢＡＳＥ−ＴＸ等のネットワーク回線をネットワーク中継装置１００に対して物理的に接続するためのモジュールである。ＮＩＦ１４０は、パケット転送エンジン１４１（以下、「ＰＦＰ」と称する。）と、ネットワーク回線を接続するための物理ポート１４２とを備えている。ＰＦＰ１４１は、ＰＰＵ１３０からの指示に基づいて物理ポート１４２に対するパケットの転送を制御する。各ＰＦＰ１４１および物理ポート１４２には、図示するようにそれぞれ識別番号が付されている。
【００２８】
クロスバスイッチ１２０は、ＰＰＵ１３０間でパケットの転送を行う際に、その伝送路を高速にスイッチングするための素子である。ＰＰＵ１３０は、クロスバスイッチ１２０を介してパケットの転送を行う際に、そのパケットに対して、ビットマップ、ＭＣフラグ、出力先情報といった付加情報を添付する。伝送路のスイッチングは、こうして付加されたビットマップを解析することによって行う。
【００２９】
図２は、付加情報とパケットの概略構造を示す説明図である。図示するビットマップの３つのビットは左側から順に、それぞれＰＰＵ＃０、ＰＰＵ＃１、ＰＰＵ＃２にパケットを転送するか否かを表している。そのため、例えば、ビットマップとして「００１」と設定されれば、そのパケットはクロスバスイッチ１２０によってＰＰＵ＃２に転送される。また、「１１０」と設定されれば、ＰＰＵ＃０とＰＰＵ＃１の両者に転送される。「ＭＣフラグ」は、転送するパケットの種別を表すためのフラグである。「０」であればユニキャストパケット、「１」であればマルチキャストパケットであることを表す。出力先情報とは、そのパケットを出力するＰＰＵ１３０、ＰＦＰ１４１、物理ポート１４２の各識別番号を指定するための情報である。この出力先情報は、ユニキャストパケットを転送する場合に用いられる。
【００３０】
パケットには、宛先ＭＡＣアドレス、送信元ＭＡＣアドレス、宛先ＩＰアドレス、送信元ＩＰアドレス、宛先ＴＣＰポート番号、送信元ＴＣＰポート番号、データ等の情報が含まれる。本実施例の説明において「宛先アドレス」とは、これらのうち宛先ＭＡＣアドレスのことをいうものとする。しかし、宛先ＩＰアドレスを適用しても特に差し支えはない。また、本実施例における「パケット」という用語は、いわゆる「イーサネット（登録商標）フレーム」と同義であるものとする。
【００３１】
Ｂ．各テーブルの構造：
（Ｂ１）経路テーブル：
図３は、テーブル記憶部１３５に記憶された経路テーブルの概略構造を示す説明図である。経路テーブルは、入力したパケットの宛先アドレスをキーとしてその出力先インタフェースを検索するためのテーブルである。
【００３２】
図示した例では、宛先アドレスＡに対しては、出力先インタフェースとして、ＰＰＵ＃０、ＰＦＰ＃０、物理ポート＃１が対応付けられ、宛先アドレスＢに対しては、リンクアグリゲーションＩＤ＃１の論理ポートが対応付けられているものとした。ここで、各ＰＰＵ１３０に割り当てられるＰＰＵ番号は、２進数で「００００」から「１１１０」までの値とし、「１１１１」は、その出力先インタフェースが論理ポートである旨を示す識別子として取り扱うものとした。
【００３３】
図示する宛先アドレスＣは、マルチキャストアドレスであるものとした。マルチキャストとは、予め登録した複数の宛先に同一内容のパケットを複製して配布することをいう。そのため、マルチキャストアドレスに対しては図示するように複数の出力先インタフェース対応付けられている場合がある。図では、以下の３つの出力先インタフェースが１つのマルチキャストアドレスＣに登録されている例を示した。
（１）ＰＰＵ＃１，ＰＦＰ＃０，物理ポート＃０；
（２）ＰＰＵ＃１，ＰＦＰ＃１，物理ポート＃０；
（３）リンクアグリゲーションＩＤ＃２の論理ポート；
【００３４】
マルチキャストアドレスに対しては、クロスバスイッチ１２０のスイッチングに用いるビットマップも経路テーブル内に予め登録されるものとした。こうすることにより、ＰＰＵ１３０は、出力先インタフェースとなる各ＰＰＵ１３０に迅速にマルチキャストパケットを転送することができる。
【００３５】
以上で説明した経路テーブルは、基本的に、上述した管理用コンピュータを用いて管理者が設定する。しかし、ここでは詳しい説明は省略するが、ユニキャストアドレスについてはＭＡＣアドレス学習処理によって、マルチキャストアドレスについてはＩＧＭＰスヌーピングによって自動的に設定することも可能である。ＭＡＣアドレス学習処理を行う場合には、図４に示すようなポートテーブルが用いられる。ポートテーブルには、物理ポート番号と、その物理ポートが属するＰＰＵ番号やＰＦＰ番号もしくはリンクアグリゲーションＩＤが対応付けて記録されている。従って、各ＰＰＵ１３０は、入力したパケットの送信元アドレスと、ポートテーブルを参照して得られたＰＰＵ番号やリンクアグリゲーションＩＤとを対応付けて経路テーブルに記録することにより、自動的に経路テーブルを設定することができる。
【００３６】
（Ｂ２）リンクアグリゲーションテーブル：
図５は、テーブル記憶部１３５に記録されたリンクアグリゲーションテーブルの概略構造を示す説明図である。リンクアグリゲーションテーブルには、リンクアグリゲーションＩＤ毎に、その論理ポートを構成する物理ポートの組とその数（パス数）が定義されている。図５には、図１で例示した論理ポートＬＡ１のリンクアグリゲーションテーブルを示した。図中、「Ｅｎ」とあるのは、「Ｅｎａｂｌｅ」の意であり、そのエントリが有効であるか否かを示すためのフラグである。「１」であれば有効であり、「０」であれば無効である旨を表す。このテーブルによれば、以下に挙げる５つの物理ポートによって論理ポートＬＡ２が構成されていることとなる。
【００３７】
（１）ＰＰＵ＃１、ＰＦＰ＃１、物理ポート＃１；
（２）ＰＰＵ＃１、ＰＦＰ＃１、物理ポート＃２；
（３）ＰＰＵ＃２、ＰＦＰ＃０、物理ポート＃０；
（４）ＰＰＵ＃２、ＰＦＰ＃０、物理ポート＃１；
（５）ＰＰＵ＃２、ＰＦＰ＃０、物理ポート＃２；
【００３８】
ネットワーク中継装置１００は、以上で説明した経路テーブルやリンクアグリゲーションテーブルを用いて経路検索を行うことにより、入力したパケットを最適な出力先インタフェースから出力することができる。
【００３９】
Ｃ．ネットワーク中継装置の動作概要：
（Ｃ１）ユニキャスト中継時：
図６は、ユニキャストパケット入力時のネットワーク中継装置１００の基本的な中継動作の概要を示す説明図である。まず、ユニキャストパケットを入力した入力側ＰＰＵ＃０は、そのパケットの宛先アドレスに対応付けられた出力先インタフェースを経路テーブルから検索する。そして、入力側ＰＰＵ＃０は、出力先インタフェースを付加情報によって指定して出力側のＰＰＵ＃２にパケットを転送する。パケットの転送を受けた出力側ＰＰＵ＃２は、こうして指定された出力先インタフェースからパケットを出力する。
【００４０】
図７は、上述した入力側ＰＰＵ＃０の経路検索において、出力先インタフェースとしてリンクアグリゲーションＩＤが検索された場合の動作を示す説明図である。この場合には、入力側ＰＰＵ＃０は、更に、そのリンクアグリゲーションＩＤに対応したリンクアグリゲーションテーブルを参照して、登録された出力先インタフェースの中から所定の方法により１つの出力先インタフェースを選択する。かかる選択方法については後述する。そして、ＰＰＵ＃０は、選択された出力先インタフェースを付加情報によって指定して出力側ＰＰＵ＃２にパケット転送する。パケットの転送を受けたＰＰＵ＃２は、こうして指定された出力先インタフェースからパケットを出力する。
【００４１】
以上で説明したように本実施例のネットワーク中継装置１００は、ユニキャストパケットを入力した場合には、そのパケットを入力した入力側ＰＰＵ１３０で、リンクアグリゲーションに伴う処理も含めた詳細な経路検索を行う。そのため、出力側ＰＰＵ１３０は、論理ポートの使用の有無にかかわらず、入力側ＰＰＵ１３０によって指定された物理ポートからパケットを出力すればよい。従って、出力側ＰＰＵ１３０の負荷を軽減することができる。
【００４２】
（Ｃ２）マルチキャスト中継時：
図８は、マルチキャストパケット入力時のネットワーク中継装置１００の基本的な中継動作の概要を示す説明図である。まず、マルチキャストパケットを入力した入力側ＰＰＵ＃０は、経路テーブルからビットマップを検索する。そして、そのビットマップを付加してパケットをクロスバスイッチ１２０に転送する。クロスバスイッチは、パケットに付加されたビットマップを解析し、そのビットマップに対応する各ＰＰＵ１３０に、パケットを複製して配布する。こうして、パケットの配布を受けた出力側ＰＰＵ＃１，＃２は、そのパケットの宛先アドレスをキーとして経路テーブルから出力先インタフェースを検索し、検索された物理ポートからパケットを出力する。ただし、マルチキャストパケットについては経路テーブルに複数の出力先インタフェースが対応付けられているため、各ＰＰＵ１３０は、検索された出力先インタフェースのうち、自分が管理する出力インタフェースについてのみパケットの出力を行えばよい。
【００４３】
図９は、出力側ＰＰＵ＃１、＃２の経路検索において出力先インタフェースとしてリンクアグリゲーションＩＤが検索された場合の動作を示す説明図である。この場合には、出力側ＰＰＵ＃１、＃２は、更に、そのリンクアグリゲーションＩＤに対応したリンクアグリゲーションテーブルを参照して、登録された出力先物理ポートの中から所定の方法により一つの出力先物理ポートを選択する。出力側ＰＰＵ＃１、＃２は、こうして選択された出力先物理ポートからパケットを出力する。ただし、選択された出力先物理ポートが、自分の管理下でない場合にはパケットを破棄する（図のＰＰＵ＃２参照）。
【００４４】
このようにリンクアグリゲーションの出力先物理ポート選択処理を行う場所を、ユニキャストの場合は入力側ＰＰＵ＃０であるのに対し、マルチキャストの場合は出力側ＰＰＵ＃１、＃２に変えている理由を以下で説明する。
【００４５】
ユニキャストの場合には、パケットを一つ受信したときに、装置から一つだけパケットを送出すれば良いため、リンクアグリゲーションの出力先物理ポート選択処理を１回だけ行えばよく、入力側ＰＰＵ＃０で処理を行っても処理性能ネックにならない。
【００４６】
これに対してマルチキャストの場合には、パケットを一つ受信したときに、一般に複数の物理ポート、および、複数のリンクアグリゲーションポートからパケットを送出する必要があり、さらに、複数のリンクアグリゲーションポート毎に、それぞれ一つの出力先物理ポートを選択する処理を行う必要があるため、入力側ＰＰＵ＃０で、全出力リンクアグリゲーションポートに対応する回数だけ、出力先物理ポートを選択する処理を行うと入力側ＰＰＵ＃０のパケット処理性能が、出力リンクアグリゲーションポート数に比例して低下してしまう、という問題があり、これを解決するためである。
【００４７】
出力側ＰＰＵ＃１、＃２で自分が管理する出力先物理ポートについてのみ、リンクアグリゲーションポートの出力先物理ポートを選択する処理を行うようにすることにより、マルチキャストで、複数のリンクアグリゲーションポートにパケットを送出する場合でも、出力先物理ポートを選択する処理を複数のＰＰＵ＃１、＃２で分散して行うことができ、装置のマルチキャスト中継性能を向上させることができる。
【００４８】
ここで、一つのリンクアグリゲーションポートに属する複数の物理ポートが、複数のＰＰＵ＃１、＃２に跨って存在する場合には、リンクアグリゲーションポートの出力先物理ポートを選択する処理を、複数のＰＰＵ間で同一のアルゴリズムに従って行う必要がある。
【００４９】
これは、複数のＰＰＵ＃１、＃２間で、もし異なるアルゴリズムに従って行ってしまうと、どのＰＰＵ＃１、＃２でも、自分の管理下の物理ポートが選択されず、該リンクアグリゲーションポートに属する物理ポートからパケットが１個も送出されない、という問題や、逆に、複数のＰＰＵ＃１、＃２で、それぞれ自分の管理下の物理ポートが選択され、一つのリンクアグリゲーションポートに属する複数の物理ポートから、パケットが合計で複数回送出されてしまう、という問題があるためである。
【００５０】
以上で説明したように、本実施例のネットワーク中継装置１００は、マルチキャストパケットを入力した場合には、そのパケットの出力側となるＰＰＵ１３０で詳細な経路検索およびリンクアグリゲーションに伴う処理を行う。従って、入力側ＰＰＵ１３０の負担を軽減し、負荷の分散を図ることが可能となる。
【００５１】
Ｄ．パケット入力処理：
以下では、上述した各中継動作を実現するための詳細な処理について説明する。図１０は、各ＰＰＵ１３０が実行するパケット入力処理のフローチャートである。まず、ＰＰＵ１３０は、ＮＩＦ１４０を介してパケットを入力すると（ステップＳ１０）、そのパケットの宛先アドレスをキーとして経路テーブルを検索する（ステップＳ１１）。検索の結果、ビットマップが検索された場合には（ステップＳ１２：１）、入力したパケットがマルチキャストパケットであると判定し、付加情報のＭＣフラグをオンにして（ステップＳ１３）、ステップＳ１７に処理を移行する。ＰＰＵ番号、ＰＦＰ番号、物理ポート番号が検索された場合には（ステップＳ１２：２）、ステップＳ１６に処理を移す。
【００５２】
上記ステップＳ１１の検索において、リンクアグリゲーションＩＤが検索された場合には（ステップＳ１２：３）、次のような処理を行う。まず、入力したパケットの宛先アドレスと宛先ＴＣＰポート番号を用いて、以下の手順によりハッシュ値を計算する（ステップＳ１４）。
【００５３】
（１）宛先アドレスと宛先ＴＣＰポート番号とを８ビットずつに区切り、それぞれを加算する。ただし、桁上がりは無視する。
（２）加算値をビット逆順し、ハッシュ値とする。ハッシュ値の取り得る範囲は０〜２５５である。
【００５４】
更に、このハッシュ値を用いて次の計算を行う。ただし、計算結果の小数点以下は切り捨てるものとする。
【００５５】
エントリ番号＝（（ハッシュ値）×（論理ポートを構成する物理ポートの数））／２５６；
【００５６】
そして、リンクアグリゲーションテーブルから、このエントリ番号に対応するＰＰＵ番号，ＰＦＰ番号，物理ポート番号を検索し（ステップＳ１５）、検索結果を出力先情報として付加情報に設定する（ステップＳ１６）。上記ステップＳ１１においてＰＰＵ番号，ＰＦＰ番号，物理ポート番号が検索された場合には、かかる検索結果を付加情報に設定する。
【００５７】
次に、ＰＰＵ１３０は、上記ステップＳ１１またはＳ１５によって検索されたＰＰＵ番号に応じてビットマップを付加情報に設定する（ステップＳ１７）。例えば、ＰＰＵ＃０が検索された場合には、ビットマップは「１００」となり、ＰＰＵ＃１が検索された場合には「０１０」となる。上記ステップＳ１１においてビットマップが検索された場合には、検索されたビットマップを付加情報に設定する。
【００５８】
最後に、ＰＰＵ１３０は、付加情報とともにパケットをクロスバスイッチ１２０に転送する（ステップＳ１８）。クロスバスイッチ１２０は、パケットの転送を受けると、付加情報内のビットマップにより指定されたＰＰＵ１３０に対してパケットと付加情報を転送する。ビットマップによって複数のＰＰＵ１３０が指定されていた場合には、付加情報とパケットを複製してそれぞれのＰＰＵ１３０に配布する。
【００５９】
Ｅ．パケット出力処理：
図１１は、各ＰＰＵ１３０が実行するパケット出力処理のフローチャートである。まず、ＰＰＵ１３０は、クロスバスイッチ１２０からパケットを入力すると（ステップＳ３０）、そのパケットの付加情報に設定されたＭＣフラグの状態をチェックする（ステップＳ３１）。ＭＣフラグがオフの場合（ステップＳ３１：Ｎｏ）、すなわち、入力したパケットがユニキャストパケットである場合には、その付加情報には上記パケット入力処理によって既に出力先情報が設定されているため、ＰＰＵ１３０は、付加情報を解析して（ステップＳ３２）、出力先インタフェースとして指定されたＰＦＰ１４１、物理ポート１４２からパケットを出力する（ステップＳ３３）。
【００６０】
ＭＣフラグがオンの場合には（ステップＳ３１：Ｙｅｓ）、入力したパケットはマルチキャストパケットであるため、入力側ＰＰＵ１３０によって出力先インタフェースは指定されていない。そこで、以下の処理により出力側ＰＰＵ１３０で経路検索を行う。まず、パケットの宛先アドレスをキーとして経路テーブルから出力先インタフェースを検索する（ステップＳ３４）。マルチキャストパケットについては、図３で示したように、複数の出力先インタフェースが検索される場合がある。次に、検索された出力先インタフェースの中に、リンクアグリゲーションＩＤが存在するか否かを判定する（ステップＳ３５）。リンクアグリゲーションＩＤが存在する場合には（ステップＳ３５：Ｙｅｓ）、入力したパケットの宛先アドレス、宛先ＴＣＰポート番号を用いて上述した方法によりハッシュ値を計算して（ステップＳ３６）、更に、エントリ番号を計算する。そして、このエントリ番号に対応したＰＰＵ番号、ＰＦＰ番号，物理ポート番号をリングアグリゲーションテーブルから検索する（ステップＳ３７）。リンクアグリゲーションＩＤが含まれない場合には（ステップＳ３５：Ｎｏ）、これらの処理（ステップＳ３６およびＳ３７）は行わない。
【００６１】
次に、ＰＰＵ１３０は、上述の処理により検索された出力先インタフェース毎に、そのインタフェースが自分の制御対象のインタフェースであるか否かをチェックする（ステップＳ３８）。かかるチェックは、検索された出力先インタフェースの番号が、自分のＰＰＵ番号および自分の管理するＰＦＰ番号であるか否かをチェックすることにより行う。出力先インタフェースが、自分の制御対象でない場合には（ステップＳ３８：Ｎｏ）、そのインタフェース宛のパケットは破棄する（ステップＳ３９）。自分の制御対象である場合には（ステップＳ３８：Ｙｅｓ）、そのインタフェースからパケットを出力する（ステップＳ４０）。
【００６２】
以上で説明したように、パケットの出力を行うＰＰＵ１３０は、ユニキャストパケットの転送を受けた場合には、予め入力側のＰＰＵ１３０によって指定されたインタフェースからパケットの出力を行い、マルチキャストパケットの転送を受けた場合には、リンクアグリゲーションに伴う処理も含めた詳細な経路検索を行う。こうすることにより、パケットの種別に応じて効率的に処理を分散させることができる。
【００６３】
なお、上述したパケット入力処理および出力処理では、ハッシュ値の計算において、宛先アドレスと宛先ＴＣＰポート番号を利用するものとした。しかし、ハッシュ値の計算は、他の情報、例えば、宛先ＭＡＣアドレスや送信元ＭＡＣアドレス、宛先ＩＰアドレス、送信元ＩＰアドレス、宛先ＴＣＰポート番号、送信元ＴＣＰポート番号、ＭＰＬＳプロトコルによる通信においてはラベル情報などを併せて用いるものとしてもよい。
【００６４】
【発明の効果】
本発明によれば、パケットを論理ポートから出力する場合には、その宛先アドレスやＴＣＰポート番号に応じてハッシュ値を計算し、実際に出力する物理ポートを選択する。従って、同じフローに属するパケットは同じ物理ポートから出力されることとなり、パケットの追い越しを避けることができる。
【００６５】
また、本発明によれば、入力したパケットがユニキャストパケットであるかマルチキャストパケットであるかによって経路検索を行う処理を各パケット制御部に分散させることができる。
【００６６】
また、本発明によれば、各パケット制御部は、マルチキャストパケット出力時に、他のパケット制御部宛に対するパケットの破棄を行う。従って、冗長なパケット出力による混乱を回避することができる。
【００６７】
以上のことから、本発明のネットワーク中継装置は、効率的にネットワークの中継を行うことができ、処理の高速化およびスループットの向上を図ることが可能となる。
【図面の簡単な説明】
【図１】ネットワーク中継装置１００の概略構成を示す説明図である。
【図２】付加情報とパケットの概略構造を示す説明図である。
【図３】経路テーブルの概略構造を示す説明図である。
【図４】ポートテーブルの概略構造を示す説明図である。
【図５】リンクアグリゲーションテーブルの概略構造を示す説明図である。
【図６】ユニキャストパケット入力時の基本的な中継動作の概要を示す説明図である。
【図７】ユニキャストパケット入力時に出力先インタフェースとしてリンクアグリゲーションＩＤが検索された場合の動作を示す説明図である。
【図８】マルチキャストパケット入力時の基本的な中継動作の概要を示す説明図である。
【図９】マルチキャストパケット入力時に出力先インタフェースとしてリンクアグリゲーションＩＤが検索された場合の動作を示す説明図である。
【図１０】パケット入力処理のフローチャートである。
【図１１】パケット出力処理のフローチャートである。
【符号の説明】
１００…ネットワーク中継装置
１１０…制御ユニット
１２０…クロスバスイッチ
１３０…パケット制御部
１３１…ＣＰＵ
１３２…ＲＯＭ
１３３…ＲＡＭ
１３４…検索エンジン
１３５…テーブル記憶部
１４０…ネットワークインターフェース部
１４１…パケット転送エンジン
１４２…物理ポート
【図１】
2005020492.tif 000003
【図２】
2005020492.tif 000004
【図３】
2005020492.tif 000005
【図４】
2005020492.tif 000006
【図５】
2005020492.tif 000007
【図６】
2005020492.tif 000008
【図７】
2005020492.tif 000009
【図８】
2005020492.tif 000010
【図９】
2005020492.tif 000011
【図１０】
2005020492.tif 000012
【図１１】
2005020492.tif 000013