(57)【要約】【課題】ネットワーク中継装置のパケット処理部における処理能力の浪費を抑制することのできる技術を提供する。【解決手段】ネットワーク中継装置は、１つ以上の物理ポートを備え物理ポートを介して外部装置との間でパケットの入出力処理を実行する複数のパケット処理部と、複数の物理ポートを論理的に束ねることによって論理ポートを設定する論理ポート設定部と、経路情報に基づいて出力ポートを特定し、出力ポートに論理ポートが含まれる場合に、論理ポートを構成する複数の物理ポートの中から、物理ポートを所定の選択処理によって選択し、選択された物理ポートを備えるパケット処理部を、マルチキャストパケットの配布先として設定する配布先設定部と、配布先設定部によって設定されたパケット処理部に対して、マルチキャストパケットを配布する配布部とを備える。【選択図】図８
2011066792.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク中継装置であって、
１つ以上の物理ポートを備え、該物理ポートの少なくとも１つを介して外部装置との間でパケットの入出力処理を実行する複数のパケット処理部と、
複数の前記物理ポートを論理的に束ねることによって少なくとも１つの論理ポートを設定する論理ポート設定部と、
経路情報に基づいてマルチキャストパケットの出力先となる出力ポートを特定し、該出力ポートに前記論理ポートが含まれる場合に、該論理ポートを構成する複数の物理ポートの中から、前記マルチキャストパケットを出力する物理ポートを所定の選択処理によって選択し、該選択された物理ポートを備える前記パケット処理部を、前記マルチキャストパケットの配布先として設定する配布先設定部と、
前記配布先設定部によって設定された前記パケット処理部に対して、前記マルチキャストパケットを配布する配布部と
を備える
ネットワーク中継装置。
【請求項２】
請求項１に記載のネットワーク中継装置であって、さらに、
前記経路情報に基づいて前記マルチキャストパケットの出力先となる出力ポートを特定し、該出力ポートに前記論理ポートが含まれる場合に、該論理ポートを構成する複数の物理ポートの中から、前記マルチキャストパケットを出力する物理ポートを前記所定の選択処理によって選択し、該選択された物理ポートを備える前記パケット処理部に対して、前記論理ポートを前記マルチキャストパケットの出力ポートとして設定する出力ポート設定部を備え、
前記配布部から前記マルチキャストパケットを受信した前記各パケット処理部は、前記出力ポート設定部によって出力ポートとして設定された前記論理ポートを構成する複数の物理ポートの中から、前記マルチキャストパケットを出力する物理ポートを前記所定の選択処理によって選択し、該選択された物理ポートから前記マルチキャストパケットを出力する
ネットワーク中継装置。
【請求項３】
請求項１に記載のネットワーク中継装置であって、さらに、
前記経路情報に基づいて前記マルチキャストパケットの出力先となる出力ポートを特定し、該出力ポートに前記論理ポートが含まれる場合に、該論理ポートを構成する複数の物理ポートの中から、前記マルチキャストパケットを出力する物理ポートを前記所定の選択処理によって選択し、該選択された物理ポートを備える前記パケット処理部に対して、前記物理ポートを前記マルチキャストパケットの出力ポートとして設定する出力ポート設定部を備え、
前記配布部から前記マルチキャストパケットを受信した前記各パケット処理部は、前記出力ポート設定部によって設定された前記物理ポートから前記マルチキャストパケットを出力する
ネットワーク中継装置。
【請求項４】
ネットワーク中継装置であって、
１つ以上の物理ポートを備え、該物理ポートの少なくとも１つを介して外部装置との間でパケットの入出力処理を実行する複数のパケット処理部と、
複数の前記物理ポートを論理的に束ねることによって少なくとも１つの論理ポートを設定する論理ポート設定部と、
経路情報に基づいてマルチキャストパケットの出力先となる出力ポートを特定し、該出力ポートに前記論理ポートが含まれる場合に、該論理ポートを構成する物理ポートを備える全ての前記パケット処理部を、前記マルチキャストパケットの配布先として設定する配布先設定部と、
前記配布先設定部によって設定された前記パケット処理部に対して、前記マルチキャストパケットを配布する配布部と、
前記経路情報に基づいて前記マルチキャストパケットの出力先となる出力ポートを特定し、該出力ポートに前記論理ポートが含まれる場合に、該論理ポートを構成する複数の物理ポートの中から、前記マルチキャストパケットを出力する物理ポートを所定の選択処理によって選択し、該選択された物理ポートを備える前記パケット処理部に対して、前記論理ポートを前記マルチキャストパケットの出力ポートとして設定する出力ポート設定部と
を備え、
前記配布部から前記マルチキャストパケットを受信した前記各パケット処理部は、前記出力ポート設定部によって出力ポートとして設定された前記論理ポートを構成する複数の物理ポートの中から、前記マルチキャストパケットを出力する物理ポートを前記所定の選択処理によって選択し、該選択された物理ポートから前記マルチキャストパケットを出力する
ネットワーク中継装置。
【請求項５】
請求項１ないし４のいずれか一項に記載のネットワーク中継装置であって、
前記所定の選択処理は、前記経路情報から一意に定まる情報に基づいて、前記論理ポートを構成する複数の物理ポートの中から、前記マルチキャストパケットを出力する物理ポートを選択する処理である
ネットワーク中継装置。
【請求項６】
請求項５に記載のネットワーク中継装置であって、
前記所定の選択処理は、前記経路情報から一意に定まる情報を用いた所定のハッシュ関数によってハッシュ値を求め、該ハッシュ値に基づいて、前記論理ポートを構成する複数の物理ポートの中から、前記マルチキャストパケットを出力する物理ポートを選択する処理である
ネットワーク中継装置。
【請求項７】
請求項５又は６に記載のネットワーク中継装置であって、
前記経路情報から一意に定まる情報は、送信元アドレス情報及び宛先アドレス情報である
ネットワーク中継装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク中継装置に関するものである。
【背景技術】
【０００２】
ネットワーク機器間を配線するためには、リピータハブやレイヤ２スイッチといったネットワーク中継装置が利用されている。リピータハブは、複数のネットワーク機器を電気的に単純に接続するための装置である。一方、レイヤ２スイッチは、入力したパケットをその宛先アドレスに応じて最適な物理ポートに転送する機能を備えている。近年のオフィスでは、ネットワーク機器の増加に伴うトラフィックの増大を抑制するため、リピータハブではなく、レイヤ２スイッチが用いられることが多い。また、近年では、より大規模なネットワークを構築するため、レイヤ３スイッチと呼ばれるネットワーク中継装置も利用されている。レイヤ３スイッチは、レイヤ２スイッチのブリッジ機能に加え、ルータ機能も備えている。
【０００３】
上述したレイヤ２スイッチやレイヤ３スイッチの中には、リンクアグリゲーションと呼ばれる機能を備えるものもある。かかる機能は、ＬＡＮスイッチ間等に接続された複数の物理ポートを１つの論理ポートとして扱うことにより帯域の拡大や冗長性の確保を実現する機能である。
【０００４】
リンクアグリゲーション機能を備えたネットワーク中継装置としては、例えば、特許文献１に開示されたものが知られている。特許文献１に開示されたネットワーク中継装置は、複数のパケット処理部を備えており、マルチキャストパケットを受信したパケット処理部に負荷を集中させることなく、複数のパケット処理部から当該マルチキャストパケットを送信することが可能である。しかし、この技術では、最終的にマルチキャストパケットを送信しないパケット処理部においても、経路検索等の無駄な処理が発生しており、パケット処理部の処理能力を浪費してしまうという問題があった。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００５−２０４９２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明は、上述した従来の課題を解決するためになされたものであり、ネットワーク中継装置のパケット処理部における処理能力の浪費を抑制することのできる技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明は、上述の課題の少なくとも一部を解決するために、以下の形態または適用例を取ることが可能である。
【０００８】
[適用例１]
ネットワーク中継装置であって、
１つ以上の物理ポートを備え、該物理ポートの少なくとも１つを介して外部装置との間でパケットの入出力処理を実行する複数のパケット処理部と、
複数の前記物理ポートを論理的に束ねることによって少なくとも１つの論理ポートを設定する論理ポート設定部と、
経路情報に基づいてマルチキャストパケットの出力先となる出力ポートを特定し、該出力ポートに前記論理ポートが含まれる場合に、該論理ポートを構成する複数の物理ポートの中から、前記マルチキャストパケットを出力する物理ポートを所定の選択処理によって選択し、該選択された物理ポートを備える前記パケット処理部を、前記マルチキャストパケットの配布先として設定する配布先設定部と、
前記配布先設定部によって設定された前記パケット処理部に対して、前記マルチキャストパケットを配布する配布部と
を備える
ネットワーク中継装置。
【０００９】
適用例１のネットワーク中継装置によれば、マルチキャストパケットの出力先となる物理ポートを備えないパケット処理部に対しては、マルチキャストパケットを配布しないので、パケット処理部における処理能力の浪費を抑制することができる。
【００１０】
[適用例２]
適用例１に記載のネットワーク中継装置であって、さらに、
前記経路情報に基づいて前記マルチキャストパケットの出力先となる出力ポートを特定し、該出力ポートに前記論理ポートが含まれる場合に、該論理ポートを構成する複数の物理ポートの中から、前記マルチキャストパケットを出力する物理ポートを前記所定の選択処理によって選択し、該選択された物理ポートを備える前記パケット処理部に対して、前記論理ポートを前記マルチキャストパケットの出力ポートとして設定する出力ポート設定部を備え、
前記配布部から前記マルチキャストパケットを受信した前記各パケット処理部は、前記出力ポート設定部によって出力ポートとして設定された前記論理ポートを構成する複数の物理ポートの中から、前記マルチキャストパケットを出力する物理ポートを前記所定の選択処理によって選択し、該選択された物理ポートから前記マルチキャストパケットを出力する
ネットワーク中継装置。
【００１１】
適用例２のネットワーク中継装置によれば、マルチキャストパケットを出力しないパケット処理部に対しては、出力ポートとして論理ポートを設定しないので、パケット処理部における処理能力の浪費を抑制することができる。
【００１２】
[適用例３]
適用例１に記載のネットワーク中継装置であって、さらに、
前記経路情報に基づいて前記マルチキャストパケットの出力先となる出力ポートを特定し、該出力ポートに前記論理ポートが含まれる場合に、該論理ポートを構成する複数の物理ポートの中から、前記マルチキャストパケットを出力する物理ポートを前記所定の選択処理によって選択し、該選択された物理ポートを備える前記パケット処理部に対して、前記物理ポートを前記マルチキャストパケットの出力ポートとして設定する出力ポート設定部を備え、
前記配布部から前記マルチキャストパケットを受信した前記各パケット処理部は、前記出力ポート設定部によって設定された前記物理ポートから前記マルチキャストパケットを出力する
ネットワーク中継装置。
【００１３】
適用例３のネットワーク中継装置によれば、パケット処理部における物理ポートの選択処理を省略することができるので、パケット処理部における処理能力の浪費を抑制することができる。
【００１４】
[適用例４]
ネットワーク中継装置であって、
１つ以上の物理ポートを備え、該物理ポートの少なくとも１つを介して外部装置との間でパケットの入出力処理を実行する複数のパケット処理部と、
複数の前記物理ポートを論理的に束ねることによって少なくとも１つの論理ポートを設定する論理ポート設定部と、
経路情報に基づいてマルチキャストパケットの出力先となる出力ポートを特定し、該出力ポートに前記論理ポートが含まれる場合に、該論理ポートを構成する物理ポートを備える全ての前記パケット処理部を、前記マルチキャストパケットの配布先として設定する配布先設定部と、
前記配布先設定部によって設定された前記パケット処理部に対して、前記マルチキャストパケットを配布する配布部と、
前記経路情報に基づいて前記マルチキャストパケットの出力先となる出力ポートを特定し、該出力ポートに前記論理ポートが含まれる場合に、該論理ポートを構成する複数の物理ポートの中から、前記マルチキャストパケットを出力する物理ポートを所定の選択処理によって選択し、該選択された物理ポートを備える前記パケット処理部に対して、前記論理ポートを前記マルチキャストパケットの出力ポートとして設定する出力ポート設定部と
を備え、
前記配布部から前記マルチキャストパケットを受信した前記各パケット処理部は、前記出力ポート設定部によって出力ポートとして設定された前記論理ポートを構成する複数の物理ポートの中から、前記マルチキャストパケットを出力する物理ポートを前記所定の選択処理によって選択し、該選択された物理ポートから前記マルチキャストパケットを出力する
ネットワーク中継装置。
【００１５】
適用例４のネットワーク中継装置によれば、マルチキャストパケットを出力しないパケット処理部に対しては、出力ポートとして論理ポートを設定しないので、パケット処理部における処理能力の浪費を抑制することができる。
【００１６】
[適用例５]
適用例１ないし４のいずれか一項に記載のネットワーク中継装置であって、
前記所定の選択処理は、前記経路情報から一意に定まる情報に基づいて、前記論理ポートを構成する複数の物理ポートの中から、前記マルチキャストパケットを出力する物理ポートを選択する処理である
ネットワーク中継装置。
【００１７】
適用例５のネットワーク中継装置によれば、同一の経路情報を有するマルチキャストパケットに対しては、同一の物理ポートを選択することができる。したがって、経路設定時にマルチキャストパケットの配布先となるパケット処理部の設定や、パケット処理部に対する出力ポートの設定を行なっておくことによって、分散処理部２００の処理能力の浪費を抑制することができる。
【００１８】
[適用例６]
適用例５に記載のネットワーク中継装置であって、
前記所定の選択処理は、前記経路情報から一意に定まる情報を用いた所定のハッシュ関数によってハッシュ値を求め、該ハッシュ値に基づいて、前記論理ポートを構成する複数の物理ポートの中から、前記マルチキャストパケットを出力する物理ポートを選択する処理である
ネットワーク中継装置。
【００１９】
適用例６のネットワーク中継装置によれば、論理ポートを構成する複数の物理ポートの中から、マルチキャストパケットを出力する物理ポートを偏りなく選択することができる。
【００２０】
[適用例７]
適用例５又は６に記載のネットワーク中継装置であって、
前記経路情報から一意に定まる情報は、送信元アドレス情報及び宛先アドレス情報である
ネットワーク中継装置。
【００２１】
適用例７のネットワーク中継装置によれば、低負荷の処理によって、物理ポートを選択することができる。
【００２２】
なお、本発明は、種々の態様で実現することが可能である。例えば、ネットワーク中継方法および装置、ネットワーク中継システム、それらの方法または装置の機能を実現するための集積回路、コンピュータプログラム、そのコンピュータプログラムを記録した記録媒体等の形態で実現することができる。
【図面の簡単な説明】
【００２３】
【図１】本発明の一実施例としてのネットワーク中継装置１０の全体構成を示す説明図である。
【図２】分散処理部２００の内部構成を示す説明図である。
【図３】制御ユニット１００の内部構成を示す説明図である。
【図４】比較例におけるネットワーク中継装置１０の動作を示す説明図である。
【図５】比較例におけるビットマップテーブルＴＢを示す説明図である。
【図６】比較例における出力ポートテーブルＴＰを示す説明図である。
【図７】ＬＡＧテーブルＴＬを示す説明図である。
【図８】実施例におけるネットワーク中継装置１０の動作を示す説明図である。
【図９】実施例におけるビットマップテーブルＴＢを示す説明図である。
【図１０】実施例における出力ポートテーブルＴＰを示す説明図である。
【図１１】比較例におけるビットマップテーブルＴＢの設定処理を示すフローチャートである。
【図１２】マルチキャスト経路テーブルＴＭを示す説明図である。
【図１３】論理インターフェース変換テーブルＴＣを示す説明図である。
【図１４】実施例におけるビットマップテーブルＴＢの設定処理を示すフローチャートである。
【図１５】比較例における出力ポートテーブルＴＰの設定処理を示すフローチャートである。
【図１６】実施例における出力ポートテーブルＴＰの設定処理を示すフローチャートである。
【図１７】実施例における効果を示すグラフである。
【図１８】変形例における出力ポートテーブルＴＰの設定処理を示すフローチャートである。
【図１９】変形例における出力ポートテーブルＴＰを示す説明図である。
【図２０】変形例におけるネットワーク中継装置１０の動作を示す説明図である。
【発明を実施するための形態】
【００２４】
次に、本発明の実施の形態を実施例に基づいて説明する。
Ａ．ネットワーク中継装置１０の構成：
Ｂ．比較例におけるネットワーク中継装置の動作：
Ｃ．実施例におけるネットワーク中継装置の動作：
Ｄ．比較例におけるビットマップテーブルＴＢの設定：
Ｅ．実施例におけるビットマップテーブルＴＢの設定：
Ｆ．比較例における出力ポートテーブルＴＰの設定：
Ｇ．実施例における出力ポートテーブルＴＰの設定：
Ｈ．変形例：
【００２５】
Ａ．ネットワーク中継装置１０の構成：
図１は、本発明の一実施例としてのネットワーク中継装置１０の全体構成を示す説明図である。本実施例のネットワーク中継装置１０は、いわゆるＬＡＮスイッチであり、ブリッジ機能やルータ機能を備えるとともに、リンクアグリゲーション機能も備えている。リンクアグリゲーション（link aggregation: LAG）機能とは、複数の物理ポートを束ねて１つの論理ポート（ＬＡＧポート）として取り扱うことが可能な機能であり、帯域幅の拡大や冗長性の確保を図ることができる。
【００２６】
ネットワーク中継装置１０は、制御ユニット１００と、５つの分散処理部２００（ＤＰＵ＃１、＃２、＃３、＃４、＃５）と、クロスバスイッチ３００とを備えている。５つの分散処理部２００には、それぞれ識別番号（＃１、＃２、＃３、＃４、＃５）が付与されている。なお、本明細書では、ネットワーク中継装置１０が５つの分散処理部２００を備えているものとして説明するが、分散処理部２００の数は５つに限られない。すなわち、ネットワーク中継装置１０が備える分散処理部２００の数は、４つ以下であってもよく、６つ以上であってもよい。
【００２７】
制御ユニット１００は、ネットワーク中継装置１０の全体制御を行うユニットである。制御ユニット１００は、図示していないＰＣＩバス等によって各分散処理部２００と接続されており、このＰＣＩバス等経由で各分散処理部２００の制御を行う。また、制御ユニット１００は、ネットワークによって接続された管理用コンピュータに対して、Ｗｅｂベース等の設定用ユーザインタフェースを提供する。管理者は、このユーザインタフェースを利用することにより、経路に関するテーブルなどの設定を行うことができる。その他、制御ユニット１００は、各分散処理部２００に対するテーブルの配布やルーティングプロトコルの処理などを行う。
【００２８】
各分散処理部２００は、それぞれ複数の物理ポート（＃１、＃２…＃Ｎ）を備えており、パケットの受信・送信を行う。
【００２９】
クロスバスイッチ３００は、制御ユニット１００や分散処理部２００からの指示に基づいてパケットの中継を行うスイッチである。５つの分散処理部２００は、クロスバスイッチ３００を介してそれぞれ接続されている。ただし、クロスバスイッチ３００以外の接続回路を用いて、各分散処理部を相互に接続してもよい。
【００３０】
図２は、分散処理部２００の内部構成を示す説明図である。分散処理部２００は、受信側処理部２１０と、送信側処理部２２０とを備えている。
【００３１】
受信側処理部２１０は、受信側経路検索部２１２と、テーブル記憶部２１４とを備えている。テーブル記憶部２１４には、ビットマップテーブルＴＢが格納されている。受信側処理部２１０が物理ポートからマルチキャストパケットを受信すると、受信側経路検索部２１２は、当該マルチキャストパケットのヘッダに含まれる送信元アドレス及び宛先アドレス（マルチキャストグループアドレス）をキーとしてビットマップテーブルＴＢを検索する。ビットマップテーブルＴＢには、後述するように、どの分散処理部２００が当該マルチキャストパケットの送信先であるのかを識別するためのビットマップが記憶されている。受信側経路検索部２１２は、該検索によりキーに対応するビットマップを取得し、受信したパケットをクロスバスイッチ３００に送信する。なお、受信側経路検索部２１２がビットマップテーブルＴＢに従って、当該マルチキャストパケットを各分散処理部２００に対して１対１で複数回送信してもよく、クロスバスイッチ３００がビットマップテーブルＴＢに従って、当該マルチキャストパケットを各分散処理部２００に対して１対Ｎ（Ｎは、送信先となる分散処理部２００の数）で一度に送信してもよい。
【００３２】
受信側処理部２１０がユニキャストパケットを受信した場合には、受信側経路検索部２１２は、ビットマップテーブルＴＢを参照することなく経路検索を行い、当該ユニキャストパケットの出力先となる出力ポートを参照し、クロスバスイッチ３００を介して該出力ポートを備える分散処理部２００に当該ユニキャストパケットを送信する。なお、後述するように、ビットマップテーブルＴＢは、制御ユニット１００によって設定される。
【００３３】
送信側処理部２２０は、送信側経路検索部２２２と、テーブル記憶部２２６とを備えている。送信側経路検索部２２２は、出力ポート検索部２２３と、物理ポート選択部２２４とを備えている。テーブル記憶部２２６には、出力ポートテーブルＴＰと、リンクアグリゲーションテーブルＴＬ（ＬＡＧテーブルＴＬ）とが格納されている。
【００３４】
送信側処理部２２０がクロスバスイッチ３００からマルチキャストパケットを受信すると、出力ポート検索部２２３は、出力ポートテーブルＴＰを参照して、出力ポートのリストを取得する。出力ポートのリストの中に、ＬＡＧポートが含まれている場合には、物理ポート選択部２２４は、ＬＡＧテーブルＴＬを参照し、当該ＬＡＧポートに関連付けられた物理ポートの中から、１つの物理ポートを選択する。
【００３５】
送信側処理部２２０は、出力ポートのリストから得られた物理ポート及び物理ポート選択部２２４によって選択された物理ポートから、マルチキャストパケットを送信する。なお、後述するように、各分散処理部２００は、それぞれ内容が異なる出力ポートテーブルＴＰを格納している。なお、それぞれの出力ポートテーブルＴＰは、制御ユニット１００によって設定される。
【００３６】
図３は、制御ユニット１００の内部構成を示す説明図である。制御ユニット１００は、制御部１０５と、ビットマップテーブル設定部１１０と、出力ポートテーブル設定部１２０と、テーブル記憶部１３０とを備えている。制御部１０５は、ネットワーク中継装置１０の全体の制御や経路設定を行なっている。テーブル記憶部１３０は、マルチキャスト経路テーブルＴＭと、論理インターフェース変換テーブルＴＣと、ＬＡＧテーブルＴＬとを格納している。これらのテーブルの内容については後に詳述する。なお、テーブル記憶部１３０に格納されたＬＡＧテーブルＴＬと、テーブル記憶部２２６（図２）に格納されたＬＡＧテーブルＴＬとは同期しており、同じ内容となっている。
【００３７】
ビットマップテーブル設定部１１０は、テーブル記憶部１３０に格納された３つのテーブルを用いて、ビットマップテーブルＴＢ（図２）の設定及び更新を行う。出力ポートテーブル設定部１２０は、テーブル記憶部１３０に格納された３つのテーブルを用いて、出力ポートテーブルＴＰ（図２）の設定及び更新を行なう。
【００３８】
Ｂ．比較例におけるネットワーク中継装置の動作：
まず、比較例におけるネットワーク中継装置１０の動作を説明する。
【００３９】
図４は、比較例におけるネットワーク中継装置１０の動作を示す説明図である。この図４は、分散処理部ＤＰＵ＃１の物理ポート＃１からマルチキャストパケットを受信した場合における動作を示している。分散処理部ＤＰＵ＃１の受信側経路検索部２１２（図２）は、物理ポート＃１からマルチキャストパケットを受信すると、該マルチキャストパケットのヘッダに含まれる送信元アドレス及び宛先アドレス（マルチキャストグループアドレス）をキーとして、ビットマップテーブルＴＢを検索する。
【００４０】
図５は、比較例におけるビットマップテーブルＴＢを示す説明図である。このビットマップテーブルＴＢは、受信したマルチキャストパケットのヘッダに含まれる送信元アドレス及び宛先アドレス（マルチキャストグループアドレス）をキーとして、マルチキャストパケットの送信先となる分散処理部を検索するためのテーブルである。ビットマップテーブルＴＢのうち、分散処理部２００の識別番号に対応する欄に「１」が格納されていれば、その分散処理部に対してマルチキャストパケットを送信することを意味する。一方、ビットマップテーブルＴＢのうち、分散処理部２００の識別番号に対応する欄に「０」が格納されていれば、その分散処理部に対してはマルチキャストパケットを送信しないことを意味する。
【００４１】
以下では、比較例におけるネットワーク中継装置１０が、送信元アドレスがＳＡ１、宛先アドレスがＧＡ１であるマルチキャストパケットを受信した場合について説明する。すなわち、この比較例においては、分散処理部ＤＰＵ＃１が受信したマルチキャストパケットは、クロスバスイッチ３００を介して４つの分散処理部（ＤＰＵ＃２、ＤＰＵ＃３、ＤＰＵ＃４、ＤＰＵ＃５）に対して送信される。
【００４２】
なお、この比較例におけるビットマップテーブルＴＢは、分散処理部ＤＰＵ＃３に対してもマルチキャストパケットが送信されるように設定されている点が、後述する実施例におけるビットマップテーブルＴＢとは異なる。すなわち、実施例におけるビットマップテーブルＴＢは、分散処理部ＤＰＵ＃３に対してはマルチキャストパケットが送信されないように設定されている。また、ビットマップテーブルＴＢは、経路設定時にビットマップテーブル設定部１１０（図３）によって設定されるが、この設定方法については後述する。
【００４３】
分散処理部ＤＰＵ＃１からマルチキャストパケットを受信したクロスバスイッチ３００は、ビットマップテーブルＴＢに従い、４つの分散処理部（ＤＰＵ＃２、ＤＰＵ＃３、ＤＰＵ＃４、ＤＰＵ＃５）に対してマルチキャストパケットを送信する（図４参照）。マルチキャストパケットを受信した４つの分散処理部（ＤＰＵ＃２、ＤＰＵ＃３、ＤＰＵ＃４、ＤＰＵ＃５）におけるそれぞれの送信側経路検索部２２２は、受信したマルチキャストパケットのヘッダに含まれる送信元アドレス及び宛先アドレス（マルチキャストグループアドレス）をキーとして、それぞれのテーブル記憶部２２６に格納されている出力ポートテーブルＴＰを参照する。
【００４４】
図６は、比較例における出力ポートテーブルＴＰを示す説明図である。出力ポートテーブルＴＰは、５つの分散処理部２００に対してそれぞれ用意される。出力ポートテーブルＴＰは、受信したマルチキャストパケットのヘッダに含まれる送信元アドレス及び宛先アドレス（マルチキャストグループアドレス）をキーとして、マルチキャストパケットの出力先となる出力ポートを検索するためのテーブルである。出力ポートの欄に示す「１／１」は、分散処理部ＤＰＵ＃１の物理ポート＃１を意味しており、「２／１」は、分散処理部ＤＰＵ＃２の物理ポート＃１を意味している。「ＬＡＧ３」は、３番目のリンクアグリゲーションポート（ＬＡＧポート＃３）を意味している。以下で説明するテーブルにおいても同様である。上述したように、ＬＡＧポートは、複数の物理ポートが関連付けられて、１つのポートとして扱われる。
【００４５】
なお、この比較例は、分散処理部ＤＰＵ＃３の出力ポートテーブルＴＰ＃３及び分散処理部ＤＰＵ＃５の出力ポートテーブルＴＰ＃５に対しても「ＬＡＧ４」が設定されている点が、後述する実施例とは異なる。すなわち、実施例では、分散処理部ＤＰＵ＃３の出力ポートテーブルＴＰ＃３及び分散処理部ＤＰＵ＃５の出力ポートテーブルＴＰ＃５に対して「ＬＡＧ４」は設定されていない。また、出力ポートテーブルＴＰは、経路決定時に出力ポートテーブル設定部１２０（図３）によって設定されるが、この設定方法については後述する。
【００４６】
分散処理部ＤＰＵ＃２の送信側経路検索部２２２は、送信元アドレスＳＡ１及び宛先アドレスＧＡ１をキーとして、自身のテーブル記憶部２２６が格納する出力ポートテーブルＴＰ＃２を検索し、出力ポートのリスト（物理ポート２／１、ＬＡＧポート＃３）を取得する。
【００４７】
分散処理部ＤＰＵ＃３の送信側経路検索部２２２は、送信元アドレスＳＡ１及び宛先アドレスＧＡ１をキーとして、自身のテーブル記憶部２２６に格納された出力ポートテーブルＴＰ＃３を検索し、出力ポートのリスト（ＬＡＧポート＃４）を取得する。
【００４８】
分散処理部ＤＰＵ＃４の送信側経路検索部２２２は、送信元アドレスＳＡ１及び宛先アドレスＧＡ１をキーとして、自身のテーブル記憶部２２６に格納された出力ポートテーブルＴＰ＃４を検索し、出力ポートのリスト（ＬＡＧポート＃４）を取得する。
【００４９】
分散処理部ＤＰＵ＃５の送信側経路検索部２２２は、送信元アドレスＳＡ１及び宛先アドレスＧＡ１をキーとして、自身のテーブル記憶部２２６に格納された出力ポートテーブルＴＰ＃５を検索し、出力ポートのリスト（物理ポート５／２、ＬＡＧポート＃４）を取得する。
【００５０】
次に、取得した出力ポートのリストの中にＬＡＧポートが含まれる場合には、各分散処理部２００における物理ポート選択部２２４は、以下に説明するＬＡＧテーブルＴＬを参照する。
【００５１】
図７は、ＬＡＧテーブルＴＬを示す説明図である。ＬＡＧテーブルＴＬは、１つのＬＡＧポートに対して複数の物理ポートを関連付けるためのテーブルである。なお、後述する実施例において用いられるＬＡＧテーブルＴＬは、この図７に示すものと同じである。換言すれば、後述する実施例と比較例との違いは、ビットマップテーブルＴＢ及び出力ポートテーブルＴＰの内容と、ビットマップテーブルＴＢ及び出力ポートテーブルＴＰの設定方法だけである。
【００５２】
物理ポート選択部２２４（図２）は、ＬＡＧテーブルＴＬを参照し、ＬＡＧポートに関連付けられた複数の物理ポートの中から、１つの物理ポートを選択する。以下では、この物理ポートの選択を「ＬＡＧ処理」とも呼ぶ。ＬＡＧ処理は、以下の手順により行なわれる。
【００５３】
（１）送信元アドレスと宛先アドレスとを８ビットずつに区切り、それぞれを加算する。ただし、桁上がりは無視する。
（２）得られた加算値に対してビット逆順操作を行い、ハッシュ値とする。ハッシュ値の取り得る範囲は、０〜２５５である。なお、ビット逆順操作とは、対象となるデータのビットの並び順を逆にする操作である。
（３）得られたハッシュ値を用いて以下の式（１）に示す演算を行い、エントリ番号を算出する。ただし、計算結果の小数点以下は切り捨てる。
エントリ番号＝（（ハッシュ値）×（パス数））／２５６  …（１）
ここで、パス数は、当該ＬＡＧポートを構成する物理ポートの数を意味する。また、エントリ番号が取り得る値は、例えば当該ＬＡＧポートを構成する物理ポートの数（パス数）が３つの場合には、０、１、２の３種類となる。
（４）当該ＬＡＧポート及びエントリ番号をキーとしてＬＡＧテーブルＴＬを検索し、物理ポートを選択する。
このようにすれば、ＬＡＧポートを構成する複数の物理ポートの中から、偏りなく物理ポートを選択することができる。具体的には、各物理ポート選択部２２４は、以下のようにＬＡＧ処理を行なう。
【００５４】
分散処理部ＤＰＵ＃２の物理ポート選択部２２４は、送信元アドレスＳＡ１及び宛先アドレスＧＡ１に基づいてハッシュ値を求めるとともに、このハッシュ値とＬＡＧポート＃３のパス数「２」を用いて、エントリ番号「０」を算出する。そして、分散処理部ＤＰＵ＃２の物理ポート選択部２２４は、ＬＡＧポート＃３及びエントリ番号「０」をキーとしてＬＡＧテーブルＴＬを参照し、ＬＡＧポート＃３に関連付けられた２つの物理ポート（２／２、２／３）の中から、エントリ番号「０」に対応する物理ポート２／２を選択する（図４参照）。
【００５５】
分散処理部ＤＰＵ＃３の物理ポート選択部２２４は、送信元アドレスＳＡ１及び宛先アドレスＧＡ１に基づいてハッシュ値を求めるとともに、このハッシュ値とＬＡＧポート＃４のパス数「３」を用いて、エントリ番号「１」を算出する。そして、分散処理部ＤＰＵ＃３の物理ポート選択部２２４は、ＬＡＧポート＃４及びエントリ番号「１」をキーとしてＬＡＧテーブルＴＬを参照し、ＬＡＧポート＃４に関連付けられた３つの物理ポート（３／１、４／１、５／１）の中から、エントリ番号「１」に対応する物理ポート４／１を選択する。
【００５６】
分散処理部ＤＰＵ＃４及び分散処理部ＤＰＵ＃５は、分散処理部ＤＰＵ＃３と同様に、ＬＡＧポート＃４に関連付けられた３つの物理ポートの中から、エントリ番号「１」に対応する物理ポート４／１を選択する。すなわち、各分散処理部２００は、それぞれ同じＬＡＧ処理を行なっているため、同一のＬＡＧポートに対しては、同一の物理ポートを選択することになる。
【００５７】
出力ポートテーブルＴＰの参照及びＬＡＧ処理により、各分散処理部２００は、以下に示す物理ポートからパケットを出力しようとする。
分散処理部ＤＰＵ＃２：物理ポート２／１、物理ポート２／２
分散処理部ＤＰＵ＃３：物理ポート４／１
分散処理部ＤＰＵ＃４：物理ポート４／１
分散処理部ＤＰＵ＃５：物理ポート４／１、物理ポート５／２
【００５８】
ここで、各分散処理部２００は、パケットを出力しようとする物理ポートを自身が備えているか否かを判定する。各分散処理部２００は、パケットを出力しようとする物理ポートを備えていれば、当該物理ポートからそのパケットを出力し、パケットを出力しようとする物理ポートを備えていなければ、そのパケットを廃棄する。
【００５９】
この比較例では、分散処理部ＤＰＵ＃３は、物理ポート４／１を備えていないため、物理ポート４／１から出力するために用意されたパケットを廃棄する。同様に、分散処理部ＤＰＵ＃５は、物理ポート４／１を備えていないため、物理ポート４／１から出力するために用意されたパケットを廃棄する（図４参照）。
【００６０】
以上より、この比較例においては、以下の４つの物理ポートからマルチキャストパケットが出力される（図４参照）。
（１）分散処理部ＤＰＵ＃２の物理ポート＃１（物理ポート２／１）；
（２）分散処理部ＤＰＵ＃２の物理ポート＃２（物理ポート２／２）；
（３）分散処理部ＤＰＵ＃４の物理ポート＃１（物理ポート４／１）；
（４）分散処理部ＤＰＵ＃５の物理ポート＃２（物理ポート５／２）；
【００６１】
したがって、分散処理部ＤＰＵ＃３は、最終的にパケットを出力せずに廃棄するにもかかわらず、図４の破線Ｈ１で囲んだ一連の処理を行い、その処理能力を浪費している。同様に、分散処理部ＤＰＵ＃５は、物理ポート４／１から出力するためのパケットを廃棄するにもかかわらず、図４の破線Ｈ２で囲んだＬＡＧポート＃４に対するＬＡＧ処理を行ない、その処理能力を浪費している。
【００６２】
これに対して以下で説明する実施例では、図４の破線Ｈ１、Ｈ２で囲んだ処理の発生は抑制され、各分散処理部２００の処理能力の浪費は抑制される。
【００６３】
Ｃ．実施例におけるネットワーク中継装置の動作：
図８は、実施例におけるネットワーク中継装置１０の動作を示す説明図である。この図８は、図４に示した比較例と同様に、ネットワーク中継装置１０が、送信元アドレスがＳＡ１、宛先アドレスがＧＡ１であるマルチキャストパケットを、分散処理部ＤＰＵ＃１の物理ポート＃１から受信した場合における動作を示している。
【００６４】
本実施例は、以下の点において、図４に示した比較例と異なる。
相違点１：分散処理部ＤＰＵ＃３に対しては、マルチキャストパケットが送信されていない点
相違点２：分散処理部ＤＰＵ＃５においては、ＬＡＧ処理が行なわれていない点
相違点１が生じる理由は、実施例と比較例とにおいて、次に説明するビットマップテーブルＴＢが異なっているからである。相違点２が生じる理由は、実施例と比較例とにおいて、後述する出力ポートテーブルＴＰが異なっているからである。
【００６５】
図９は、実施例におけるビットマップテーブルＴＢを示す説明図である。上述したように、本実施例におけるビットマップテーブルＴＢでは、送信元アドレスＳＡ１及び宛先アドレスＧＡ１をキーとする分散処理部ＤＰＵ＃３の識別番号に対応する欄には、「０」が格納されている。すなわち、本実施例では、マルチキャストパケットは、分散処理部ＤＰＵ＃３には送信されない（図８参照）。
【００６６】
以上より、本実施例によれば、図４の破線Ｈ１で囲んだ分散処理部ＤＰＵ＃３における処理の発生を抑制し、分散処理部ＤＰＵ＃３の処理能力の浪費を抑制することができる。実施例におけるビットマップテーブルＴＢの設定方法については、後述する。
【００６７】
図１０は、実施例における出力ポートテーブルＴＰを示す説明図である。上述したように、本実施例における出力ポートテーブルＴＰでは、分散処理部ＤＰＵ＃３の出力ポートテーブルＴＰ＃３及び分散処理部ＤＰＵ＃５の出力ポートテーブルＴＰ＃５に対して「ＬＡＧ４」は設定されていない。すなわち、本実施例では、分散処理部ＤＰＵ＃５においてＬＡＧ処理は発生しないことになる（図８参照）。また、たとえマルチキャストパケットが分散処理部ＤＰＵ＃３に送信されていたとしても、分散処理部ＤＰＵ＃３においてＬＡＧ処理は発生しないことになる。
【００６８】
以上より、本実施例によれば、図４の破線Ｈ２で囲んだ分散処理部ＤＰＵ＃５におけるＬＡＧ処理の発生を抑制し、分散処理部ＤＰＵ＃５の処理能力の浪費を抑制することができる。実施例における出力ポートテーブルＴＰの設定方法については、後述する。
【００６９】
Ｄ．比較例におけるビットマップテーブルＴＢの設定：
図１１は、比較例におけるビットマップテーブルＴＢの設定処理を示すフローチャートである。ステップＳ１０では、ビットマップテーブル設定部１１０（図３）は、ビットマップテーブルＴＢを用意し、初期化を行なう。ステップＳ２０では、ビットマップテーブル設定部１１０は、テーブル記憶部１３０に記憶されているマルチキャスト経路テーブルＴＭを参照する。
【００７０】
図１２は、マルチキャスト経路テーブルＴＭを示す説明図である。マルチキャスト経路テーブルＴＭには、経路情報としての送信元アドレス及び宛先アドレスの組み合わせに対して、複数の論理インターフェースが格納されている。すなわち、図１１のステップＳ２０では、ビットマップテーブル設定部１１０は、送信元アドレス及び宛先アドレスをキーとしてマルチキャスト経路テーブルＴＭを検索し、対応する論理インターフェースのリストを取得する。
【００７１】
具体的には、ビットマップテーブル設定部１１０が、送信元アドレスＳＡ１及び宛先アドレスＧＡ１をキーとしてマルチキャスト経路テーブルＴＭを検索した場合には、４つの論理インターフェース（ＶＬＡＮ２、ＶＬＡＮ３、ＶＬＡＮ４、ＶＬＡＮ５）のリストを取得する。なお、後述する実施例において用いられるマルチキャスト経路テーブルＴＭは、この図１２に示すものと同じである。
【００７２】
ステップＳ３０では、ビットマップテーブル設定部１１０は、論理インターフェース変換テーブルＴＣを参照する。
【００７３】
図１３は、論理インターフェース変換テーブルＴＣを示す説明図である。論理インターフェース変換テーブルＴＣは、論理インターフェースをキーとして、対応する出力ポート（ＬＡＧポート及び物理ポート）を検索するためのテーブルである。すなわち、図１１のステップＳ３０では、ビットマップテーブル設定部１１０は、リストとして取得した全ての論理インターフェースをキーとして論理インターフェース変換テーブルＴＣを検索し、対応する全ての出力ポートのリストを取得する。
【００７４】
具体的には、ビットマップテーブル設定部１１０が、上述した４つの論理インターフェース（ＶＬＡＮ２、ＶＬＡＮ３、ＶＬＡＮ４、ＶＬＡＮ５）をキーとして論理インターフェース変換テーブルＴＣを検索した場合には、４つの出力ポート（物理ポート２／１、ＬＡＧポート＃３、ＬＡＧポート＃４、物理ポート５／２）のリストを取得する。なお、後述する実施例において用いられる論理インターフェース変換テーブルＴＣは、この図１３に示すものと同じである。
【００７５】
ステップＳ４０では、ビットマップテーブル設定部１１０は、出力ポートがＬＡＧポートであるか否かを判断する。出力ポートがＬＡＧポートであった場合（ステップＳ４０：Ｙｅｓ）には、ステップＳ５０Ｘにおいて、ビットマップテーブル設定部１１０は、ＬＡＧポートをキーとしてＬＡＧテーブルＴＬ（図７）を検索し、当該ＬＡＧポートに属する全ての物理ポートのリストを取得する。
【００７６】
具体的には、ＬＡＧポート＃３に属する物理ポートは、２つ（物理ポート２／２、物理ポート２／３）であり、ＬＡＧポート＃４に属する物理ポートは、３つ（物理ポート３／１、物理ポート４／１、物理ポート５／１）である。
【００７７】
ステップＳ６０Ｘでは、ビットマップテーブル設定部１１０は、取得したリストにおける物理ポートが属する分散処理部２００の識別番号に対応する全てのビットマップを、「１」に設定する。
【００７８】
具体的には、物理ポート２／２は、分散処理部ＤＰＵ＃２に属しているため、ビットマップテーブル設定部１１０は、分散処理部ＤＰＵ＃２の識別番号に対応するビットマップを「１」に設定する。ビットマップテーブル設定部１１０は、このようなビットマップの設定を、取得したリストにおける全ての物理ポートについて行なう。すなわち、ＬＡＧポート＃４に属する物理ポート３／１は、分散処理部ＤＰＵ＃３に属しているため、比較例におけるビットマップテーブル設定部１１０は、分散処理部ＤＰＵ＃３の識別番号に対応するビットマップも「１」に設定することになる。
【００７９】
ステップＳ４０において、出力ポートが物理ポートであった場合（ステップＳ４０：Ｎｏ）には、ビットマップテーブル設定部１１０は、当該物理ポートが属する分散処理部２００の識別番号に対応するビットマップを「１」に設定する（ステップＳ６２）。
【００８０】
具体的には、物理ポート２／１は、分散処理部ＤＰＵ＃２に属しているため、ビットマップテーブル設定部１１０は、分散処理部ＤＰＵ＃２の識別番号に対応するビットマップを「１」に設定する。同様に、物理ポート５／２は、分散処理部ＤＰＵ＃５に属しているため、ビットマップテーブル設定部１１０は、分散処理部ＤＰＵ＃５の識別番号に対応するビットマップを「１」に設定する。
【００８１】
ステップＳ７０では、ビットマップテーブル設定部１１０は、取得したリストの全ての出力ポートに対してステップＳ４０からステップＳ６０Ｘ（またはステップＳ６２）までの処理を行なったか否かを判定する。
【００８２】
全ての出力ポートに対して処理を行なっていない場合（ステップＳ７０：Ｎｏ）には、ビットマップテーブル設定部１１０は、取得したリスト中の次の出力ポートを指定して、再びステップＳ４０に戻る。次の出力ポートの指定は、取得したリスト中の出力ポートに連続番号を付与しておき、その連続番号を順番に指定することにより行なわれる。すなわち、取得したリストの全ての出力ポートに対して、ステップＳ４０からステップＳ６０Ｘ（またはステップＳ６２）までの処理が行なわれるように、ループ処理が行なわれる。
【００８３】
取得したリストの全ての出力ポートに対して、ステップＳ４０からステップＳ６０までの処理が行なわれた場合（ステップＳ７０：Ｙｅｓ）には、ビットマップテーブル設定部１１０は、全ての経路情報に対してステップＳ２０からステップＳ７０までの処理を行なったか否かを判定する（ステップＳ８０）。
【００８４】
全ての経路情報に対して処理を行なっていない場合（ステップＳ８０：Ｎｏ）には、ビットマップテーブル設定部１１０は、マルチキャスト経路テーブルＴＭ（図１２）中の次の経路情報を指定して、再びステップＳ２０に戻る。すなわち、全ての経路情報に対して、ステップＳ２０からステップＳ７０までの処理が行なわれるように、ループ処理が行なわれる。
【００８５】
全ての経路情報に対して、ステップＳ２０からステップＳ７０までの処理が行なわれた場合（ステップＳ８０：Ｙｅｓ）には、ビットマップテーブル設定部１１０は、設定したビットマップテーブルＴＢを全て（５つ）の分散処理部２００に設定する（ステップＳ９０）。
【００８６】
以上説明した方法により、比較例におけるビットマップテーブルＴＢ（図５）が設定される。このように、比較例では、分散処理部ＤＰＵ＃３に対してもマルチキャストパケットが送信されることになるため、分散処理部ＤＰＵ＃３において処理能力の浪費が発生することになる。
【００８７】
Ｅ．実施例におけるビットマップテーブルＴＢの設定：
図１４は、実施例におけるビットマップテーブルＴＢの設定処理を示すフローチャートである。実施例におけるビットマップテーブルＴＢの設定処理のうち、比較例におけるビットマップテーブルＴＢの設定処理と異なる部分は、ステップＳ５０とステップＳ６０における処理であり、その他の処理は同じである。したがって、ステップＳ１０〜ステップＳ３０までの処理については、説明を省略する。
【００８８】
ステップＳ４０では、ビットマップテーブル設定部１１０は、出力ポートがＬＡＧポートであるか否かを判断する。出力ポートがＬＡＧポートであった場合（ステップＳ４０：Ｙｅｓ）には、ステップＳ５０において、ビットマップテーブル設定部１１０は、上述した物理ポート選択部２２４が行なうＬＡＧ処理と同じＬＡＧ処理を行なって、ＬＡＧポートに属する複数の物理ポートの中から１つの物理ポートを選択する。
【００８９】
すなわち、ビットマップテーブル設定部１１０は、まず、送信元アドレスと宛先アドレスとに基づいてハッシュ値を求め、上記式（１）を用いてエントリ番号を算出する（ステップＳ５２）。
【００９０】
具体的には、ビットマップテーブル設定部１１０がＬＡＧポート＃３に対して算出するエントリ番号は、物理ポート選択部２２４が算出するエントリ番号と同じく、「０」となる。同様に、ビットマップテーブル設定部１１０がＬＡＧポート＃４に対して算出するエントリ番号は、物理ポート選択部２２４が算出するエントリ番号と同じく、「１」となる。
【００９１】
次に、ビットマップテーブル設定部１１０は、ＬＡＧポート及びエントリ番号をキーとして、テーブル記憶部１３０に格納されたＬＡＧテーブルＴＬ（図７）を検索し、対応する物理ポートを選択する（ステップＳ５４）。
【００９２】
具体的には、ビットマップテーブル設定部１１０は、ＬＡＧポート＃３に関連付けられた２つの物理ポートの中から、エントリ番号「０」に対応する物理ポート２／２を選択する。同様に、ビットマップテーブル設定部１１０は、ＬＡＧポート＃４に関連付けられた３つの物理ポートの中から、エントリ番号「１」に対応する物理ポート４／１を選択する。すなわち、ビットマップテーブル設定部１１０は、上述した物理ポート選択部２２４がＬＡＧポートの中から選択する物理ポートと同じ物理ポートを選択する。
【００９３】
ステップＳ６０では、ビットマップテーブル設定部１１０は、選択された物理ポートが属する分散処理部２００の識別番号に対応するビットマップを、「１」に設定する。
【００９４】
具体的には、物理ポート２／２は、分散処理部ＤＰＵ＃２に属しているため、ビットマップテーブル設定部１１０は、分散処理部ＤＰＵ＃２の識別番号に対応するビットマップを「１」に設定する。同様に、物理ポート４／１は、分散処理部ＤＰＵ＃４に属しているため、ビットマップテーブル設定部１１０は、分散処理部ＤＰＵ＃４の識別番号に対応するビットマップを「１」に設定する。すなわち、本実施例においては、分散処理部ＤＰＵ＃３の識別番号に対応するビットマップは「０」に設定されたままとなる。
【００９５】
ステップＳ４０において、出力ポートが物理ポートであった場合（ステップＳ４０：Ｎｏ）には、ビットマップテーブル設定部１１０は、当該物理ポートが属する分散処理部２００の識別番号に対応するビットマップを「１」に設定する（ステップＳ６２）。
【００９６】
具体的には、物理ポート２／１は、分散処理部ＤＰＵ＃２に属しているため、ビットマップテーブル設定部１１０は、分散処理部ＤＰＵ＃２の識別番号に対応するビットマップを「１」に設定する。同様に、物理ポート５／２は、分散処理部ＤＰＵ＃５に属しているため、ビットマップテーブル設定部１１０は、分散処理部ＤＰＵ＃５の識別番号に対応するビットマップを「１」に設定する。
【００９７】
ステップＳ７０以降の処理は、比較例におけるビットマップテーブルＴＢの設定処理（図１１）と同じであるため、説明を省略する。
【００９８】
以上説明した方法により、実施例におけるビットマップテーブルＴＢ（図９）が設定される。このように、本実施例によれば、分散処理部ＤＰＵ＃３に対してマルチキャストパケットが送信されないことになるので（図８参照）、分散処理部ＤＰＵ＃３における処理能力の浪費を抑制することができる。
【００９９】
Ｆ．比較例における出力ポートテーブルＴＰの設定：
図１５は、比較例における出力ポートテーブルＴＰの設定処理を示すフローチャートである。ステップＳ２１０では、出力ポートテーブル設定部１２０（図３）は、出力ポートテーブルＴＰを分散処理部２００の個数分用意し、初期化を行なう。ステップＳ２２０では、出力ポートテーブル設定部１２０は、送信元アドレス及び宛先アドレスをキーとしてマルチキャスト経路テーブルＴＭを検索し、対応する論理インターフェースのリストを取得する。
【０１００】
具体的には、出力ポートテーブル設定部１２０が、送信元アドレスＳＡ１及び宛先アドレスＧＡ１をキーとしてマルチキャスト経路テーブルＴＭを検索した場合には、４つの論理インターフェース（ＶＬＡＮ２、ＶＬＡＮ３、ＶＬＡＮ４、ＶＬＡＮ５）のリストを取得する。
【０１０１】
ステップＳ２３０では、出力ポートテーブル設定部１２０は、リストとして取得した全ての論理インターフェースをキーとして論理インターフェース変換テーブルＴＣ（図１３）を検索し、対応する全ての出力ポートのリストを取得する。
【０１０２】
具体的には、出力ポートテーブル設定部１２０が、上述した４つの論理インターフェース（ＶＬＡＮ２、ＶＬＡＮ３、ＶＬＡＮ４、ＶＬＡＮ５）をキーとして論理インターフェース変換テーブルＴＣを検索した場合には、４つの出力ポート（物理ポート２／１、ＬＡＧポート＃３、ＬＡＧポート＃４、物理ポート５／２）のリストを取得する。
【０１０３】
ステップＳ２４０では、出力ポートテーブル設定部１２０は、出力ポートがＬＡＧポートであるか否かを判断する。出力ポートがＬＡＧポートであった場合（ステップＳ２４０：Ｙｅｓ）には、ステップＳ２５０Ｘにおいて、出力ポートテーブル設定部１２０は、ＬＡＧポートをキーとしてＬＡＧテーブルＴＬ（図７）を検索し、当該ＬＡＧポートに属する全ての物理ポートのリストを取得する。
【０１０４】
具体的には、ＬＡＧポート＃３に属する物理ポートは、２つ（物理ポート２／２、物理ポート２／３）であり、ＬＡＧポート＃４に属する物理ポートは、３つ（物理ポート３／１、物理ポート４／１、物理ポート５／１）である。
【０１０５】
ステップＳ２６０Ｘでは、出力ポートテーブル設定部１２０は、取得したリストにおける物理ポートが属する全ての分散処理部２００の出力ポートテーブルＴＰに、当該ＬＡＧポートを設定する。
【０１０６】
具体的には、ＬＡＧポート＃３に属する物理ポート２／２は、分散処理部ＤＰＵ＃２に属しているため、出力ポートテーブル設定部１２０は、分散処理部ＤＰＵ＃２の出力ポートテーブルＴＰ＃２に、ＬＡＧポート＃３を設定する。同様にして、ＬＡＧポート＃３に属する物理ポート２／３は、分散処理部ＤＰＵ＃２に属しているため、出力ポートテーブル設定部１２０は、分散処理部ＤＰＵ＃２の出力ポートテーブルＴＰ＃２に、ＬＡＧポート＃３を設定する。ただし、この場合には、既に分散処理部ＤＰＵ＃２の出力ポートテーブルＴＰ＃２にはＬＡＧポート＃３が設定されているため、ＬＡＧポート＃３を二重に設定することは行なわない。
【０１０７】
同様にして、出力ポートテーブル設定部１２０は、ＬＡＧポート＃４を、分散処理部ＤＰＵ＃３の出力ポートテーブルＴＰ＃３と、分散処理部ＤＰＵ＃４の出力ポートテーブルＴＰ＃４と、分散処理部ＤＰＵ＃５の出力ポートテーブルＴＰ＃５とに設定する（図６参照）。
【０１０８】
ステップＳ２４０において、出力ポートが物理ポートであった場合（ステップＳ２４０：Ｎｏ）には、出力ポートテーブル設定部１２０は、当該物理ポートが属する分散処理部２００の出力ポートテーブルＴＰに、当該物理ポートを設定する。（ステップＳ２６２）。
【０１０９】
具体的には、物理ポート２／１は、分散処理部ＤＰＵ＃２に属しているため、出力ポートテーブル設定部１２０は、分散処理部ＤＰＵ＃２の出力ポートテーブルＴＰ＃２に対して物理ポート２／１を設定する。同様に、物理ポート５／２は、分散処理部ＤＰＵ＃５に属しているため、出力ポートテーブル設定部１２０は、分散処理部ＤＰＵ＃５の出力ポートテーブルＴＰ＃５に対して物理ポート５／２を設定する。
【０１１０】
ステップＳ２７０では、出力ポートテーブル設定部１２０は、取得したリストの全ての出力ポートに対してステップＳ２４０からステップＳ２６０Ｘ（またはステップＳ２６２）までの処理を行なったか否かを判定する。
【０１１１】
全ての出力ポートに対して処理を行なっていない場合（ステップＳ２７０：Ｎｏ）には、出力ポートテーブル設定部１２０は、取得したリスト中の次の出力ポートを指定して、再びステップＳ２４０に戻る。次の出力ポートの指定は、取得したリスト中の出力ポートに連続番号を付与しておき、その連続番号を順番に指定することにより行なわれる。すなわち、取得したリストの全ての出力ポートに対して、ステップＳ２４０からステップＳ２６０Ｘ（またはステップＳ２６２）までの処理が行なわれるように、ループ処理が行なわれる。
【０１１２】
取得したリストの全ての出力ポートに対して、ステップＳ２４０からステップＳ２６０Ｘ（またはステップＳ２６２）までの処理が行なわれた場合（ステップＳ２７０：Ｙｅｓ）には、出力ポートテーブル設定部１２０は、全ての経路情報に対してステップＳ２２０からステップＳ２７０までの処理を行なったか否かを判定する（ステップＳ２８０）。
【０１１３】
全ての経路情報に対して処理を行なっていない場合（ステップＳ２８０：Ｎｏ）には、出力ポートテーブル設定部１２０は、マルチキャスト経路テーブルＴＭ中の次の経路情報を指定して、再びステップＳ２２０に戻る。すなわち、全ての経路情報に対して、ステップＳ２２０からステップＳ２７０までの処理が行なわれるように、ループ処理が行なわれる。
【０１１４】
全ての経路情報に対して、ステップＳ２２０からステップＳ２７０までの処理が行なわれた場合（ステップＳ２８０：Ｙｅｓ）には、出力ポートテーブル設定部１２０は、設定した出力ポートテーブルＴＰを対応する分散処理部２００に設定する（ステップＳ２９０）。
【０１１５】
以上説明した方法により、比較例における出力ポートテーブルＴＰ（図６）が設定される。このように、比較例では、分散処理部ＤＰＵ＃３の出力ポートテーブルＴＰ＃３及び分散処理部ＤＰＵ＃５の出力ポートテーブルＴＰ＃５に対してもＬＡＧポート＃４が設定されることになるため、分散処理部ＤＰＵ＃３及び分散処理部ＤＰＵ＃５において処理能力の浪費が発生することになる（図４参照）。
【０１１６】
Ｇ．実施例における出力ポートテーブルＴＰの設定：
図１６は、実施例における出力ポートテーブルＴＰの設定処理を示すフローチャートである。実施例における出力ポートテーブルＴＰの設定処理のうち、比較例における出力ポートテーブルＴＰの設定処理と異なる部分は、ステップＳ２５０とステップＳ２６０における処理であり、その他の処理は同じである。したがって、ステップＳ２１０〜ステップＳ２３０までの処理については、説明を省略する。
【０１１７】
ステップＳ２４０では、出力ポートテーブル設定部１２０は、出力ポートがＬＡＧポートであるか否かを判断する。出力ポートがＬＡＧポートであった場合（ステップＳ２４０：Ｙｅｓ）には、ステップＳ２５０において、出力ポートテーブル設定部１２０は、上述した物理ポート選択部２２４が行なうＬＡＧ処理と同じＬＡＧ処理を行なって、ＬＡＧポートに属する複数の物理ポートの中から１つの物理ポートを選択する。
【０１１８】
すなわち、出力ポートテーブル設定部１２０は、まず、送信元アドレスと宛先アドレスとに基づいてハッシュ値を求め、上記式（１）を用いてエントリ番号を算出する（ステップＳ２５２）。
【０１１９】
具体的には、出力ポートテーブル設定部１２０がＬＡＧポート＃３に対して算出するエントリ番号は、物理ポート選択部２２４が算出するエントリ番号と同じく、「０」となる。同様に、出力ポートテーブル設定部１２０がＬＡＧポート＃４に対して算出するエントリ番号は、物理ポート選択部２２４が算出するエントリ番号と同じく、「１」となる。
【０１２０】
次に、出力ポートテーブル設定部１２０は、ＬＡＧポート及びエントリ番号をキーとして、テーブル記憶部１３０に格納されたＬＡＧテーブルＴＬを検索し、対応する物理ポートを選択する（ステップＳ２５４）。
【０１２１】
具体的には、出力ポートテーブル設定部１２０は、ＬＡＧポート＃３に関連付けられた２つの物理ポートの中から、エントリ番号「０」に対応する物理ポート２／２を選択する。同様に、出力ポートテーブル設定部１２０は、ＬＡＧポート＃４に関連付けられた３つの物理ポートの中から、エントリ番号「１」に対応する物理ポート４／１を選択する。すなわち、出力ポートテーブル設定部１２０は、上述した物理ポート選択部２２４がＬＡＧポートの中から選択する物理ポートと同じ物理ポートを選択する。
【０１２２】
ステップＳ２６０では、出力ポートテーブル設定部１２０は、選択された物理ポートが属する分散処理部２００の出力ポートテーブルＴＰに対して、当該ＬＡＧポートを設定する。
【０１２３】
具体的には、ＬＡＧポート＃３から選択された物理ポート２／２は、分散処理部ＤＰＵ＃２に属しているため、出力ポートテーブル設定部１２０は、分散処理部ＤＰＵ＃２の出力ポートテーブルＴＰ＃２にＬＡＧポート＃３を設定する。同様に、ＬＡＧポート＃４から選択された物理ポート４／１は、分散処理部ＤＰＵ＃４に属しているため、ビットマップテーブル設定部１１０は、分散処理部ＤＰＵ＃４の出力ポートテーブルＴＰ＃４にＬＡＧポート＃４を設定する。すなわち、本実施例においては、ＬＡＧポート＃４は、分散処理部ＤＰＵ＃３の出力ポートテーブルＴＰ＃３及び分散処理部ＤＰＵ＃５の出力ポートテーブルＴＰ＃５に対しては設定されないことになる。
【０１２４】
ステップＳ２４０において、出力ポートが物理ポートであった場合（ステップＳ２４０：Ｎｏ）には、出力ポートテーブル設定部１２０は、当該物理ポートが属する分散処理部２００の出力ポートテーブルＴＰに対して、当該物理ポートを設定する（ステップＳ２６２）。
【０１２５】
具体的には、物理ポート２／１は、分散処理部ＤＰＵ＃２に属しているため、出力ポートテーブル設定部１２０は、分散処理部ＤＰＵ＃２の出力ポートテーブ＃２に対して、物理ポート２／１を設定する。同様に、物理ポート５／２は、分散処理部ＤＰＵ＃５に属しているため、出力ポートテーブル設定部１２０は、分散処理部ＤＰＵ＃５の出力ポートテーブルＴＰ＃５に対して、物理ポート５／２を設定する。
【０１２６】
ステップＳ２７０以降の処理は、比較例における出力ポートテーブルＴＰの設定処理（図１５）と同じであるため、説明を省略する。
【０１２７】
以上説明した方法により、実施例における出力ポートテーブルＴＰ（図１０）が設定される。このように、本実施例によれば、ＬＡＧポート＃４は、分散処理部ＤＰＵ＃３の出力ポートテーブルＴＰ＃３及び分散処理部ＤＰＵ＃５の出力ポートテーブルＴＰ＃５に対しては設定されないので、分散処理部ＤＰＵ＃３及び分散処理部ＤＰＵ＃５における処理能力の浪費を抑制することができる（図８参照）。
【０１２８】
図１７は、実施例における効果を示すグラフである。この図１７は、実施例におけるネットワーク中継装置１０が、送信元アドレスＳＡ１及び宛先アドレスＧＡ１を経路情報として含むマルチキャストパケットを処理する場合における各分散処理部２００の余剰帯域を示している。この図１７から理解できるように、送信元アドレスＳＡ１及び宛先アドレスＧＡ１を経路情報として含むマルチキャストパケットをネットワーク中継装置１０が処理する場合には、単位時間当たりのパケットの処理数が増えても、分散処理部ＤＰＵ＃３の余剰帯域は常に１００％であることが理解できる。
【０１２９】
このように、本実施例によれば、分散処理部２００における処理能力の浪費を抑制することができる。また、処理工程が削減された分散処理部２００では消費電力が低減されるように構成しておけば、ネットワーク中継装置１０の消費電力の低減を実現することもできる。さらに、処理工程が削減された分散処理部２００において他のパケットの処理が実行されるように構成しておけば、効率よくパケットの処理を行うことのできるネットワーク中継装置１０を実現することもできる。
【０１３０】
Ｈ．変形例：
なお、この発明は上記の実施例や実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の態様において実施することが可能であり、例えば次のような変形も可能である。
【０１３１】
Ｈ１．変形例１：
上記実施例におけるＬＡＧ処理では、経路情報（送信元アドレス及び宛先アドレス）を用いてハッシュ値を求めていたが、宛先アドレスのみを用いてハッシュ値を求めてもよい。また、送信元アドレス及び宛先アドレスに加えて、送信元アドレス及び宛先アドレスをキーとして検索された論理インターフェースを用いて、ハッシュ値を求めることも可能である。
【０１３２】
このように、ＬＡＧ処理におけるハッシュキーとしては、経路情報から一意に定まる情報を用いることが好ましい。このようにすれば、経路設定時にビットマップテーブルＴＢや出力ポートテーブルＴＰを設定しておくことによって、分散処理部２００の処理能力の浪費を抑制することができる。
【０１３３】
さらに、マルチキャストパケットに含まれる送信元アドレス及び宛先アドレスに加えて、その他のヘッダ情報も抽出し、送信元アドレス及び宛先アドレス以外のヘッダ情報にマスクをかけ、当該ヘッダ情報を用いてハッシュ値を求めてもよい。この場合に求められるハッシュ値は、送信元アドレス及び宛先アドレスのみを用いて求められたハッシュ値と同じ値となる。また、ＬＡＧ処理では、上記実施例で説明したものとは異なる所定の選択処理によって、物理ポートを選択するものとしてもよい。
【０１３４】
Ｈ２．変形例２：
上記実施例におけるネットワーク中継装置１０では、実施例におけるビットマップテーブルＴＢ（図９）と実施例における出力ポートテーブルＴＰ（図１０）とを組み合わせて用いているが、いずれか一方を、比較例におけるビットマップテーブルＴＢ（図５）又は比較例における出力ポートテーブルＴＰ（図６）に置き換えて用いてもよい。このようにしても、分散処理部における処理能力の浪費を低減することができる。
【０１３５】
Ｈ３．変形例３：
上記実施例においてソフトウェアで実現されている機能の一部をハードウェアで実現してもよく、あるいは、ハードウェアで実現されている機能の一部をソフトウェアで実現してもよい。
【０１３６】
Ｈ４．変形例４：
図１８は、変形例における出力ポートテーブルＴＰの設定処理を示すフローチャートである。図１６に示した実施例と異なる処理は、ステップＳ２６０Ｙにおける処理だけである。すなわち、図１６に示した実施例では、ステップＳ２６０において、出力ポートテーブル設定部１２０は、論理ポートの中から選択された物理ポートが属する分散処理部２００の出力ポートテーブルＴＰに対して、当該ＬＡＧポートを設定している。これに対して、この変形例では、ステップＳ２６０Ｙにおいて、出力ポートテーブル設定部１２０は、論理ポートの中から選択された物理ポートが属する分散処理部２００の出力ポートテーブルＴＰに対して、当該物理ポートを設定する。これ以外の変形例における処理は、実施例における処理と同じである。
【０１３７】
図１９は、変形例における出力ポートテーブルＴＰを示す説明図である。図１０に示した実施例と異なる点は、分散処理部ＤＰＵ＃２の出力ポートテーブルＴＰ＃２に設定されているＬＡＧポート＃３の代わりに、物理ポート２／２が設定されている点と、分散処理部ＤＰＵ＃４の出力ポートテーブルＴＰ＃４に設定されているＬＡＧポート＃４の代わりに、物理ポート４／１が設定されている点だけである。
【０１３８】
図２０は、変形例におけるネットワーク中継装置１０の動作を示す説明図である。この変形例におけるネットワーク中継装置１０は、図１９に示した出力ポートテーブルＴＰを用いて処理を行なっている。図１９に示した出力ポートテーブルＴＰには、ＬＡＧポートが設定されていないので、破線Ｈ３で囲んで示したように、ＬＡＧ処理を省略することができる。このような変形例によっても、分散処理部ＤＰＵ＃２及び分散処理部ＤＰＵ＃４における処理能力の浪費をさらに抑制することができる。
【符号の説明】
【０１３９】
１０…ネットワーク中継装置
１００…制御ユニット
１０５…制御部
１１０…ビットマップテーブル設定部
１２０…出力ポートテーブル設定部
１３０…テーブル記憶部
２００…分散処理部
２１０…受信側処理部
２１２…受信側経路検索部
２１４…テーブル記憶部
２２０…送信側処理部
２２２…送信側経路検索部
２２３…出力ポート検索部
２２４…物理ポート選択部
２２６…テーブル記憶部
３００…クロスバスイッチ
ＴＢ…ビットマップテーブル
ＴＣ…論理インターフェース変換テーブル
ＴＬ…リンクアグリゲーションテーブル
ＴＭ…マルチキャスト経路テーブル
ＴＰ…出力ポートテーブル
【図１】
2011066792.tif 000003
【図２】
2011066792.tif 000004
【図３】
2011066792.tif 000005
【図４】
2011066792.tif 000006
【図５】
2011066792.tif 000007
【図６】
2011066792.tif 000008
【図７】
2011066792.tif 000009
【図８】
2011066792.tif 000010
【図９】
2011066792.tif 000011
【図１０】
2011066792.tif 000012
【図１１】
2011066792.tif 000013
【図１２】
2011066792.tif 000014
【図１３】
2011066792.tif 000015
【図１４】
2011066792.tif 000016
【図１５】
2011066792.tif 000017
【図１６】
2011066792.tif 000018
【図１７】
2011066792.tif 000019
【図１８】
2011066792.tif 000020
【図１９】
2011066792.tif 000021
【図２０】
2011066792.tif 000022