JP5374290B2 - ネットワーク中継装置 - Google Patents

ネットワーク中継装置 Download PDF

Info

Publication number
JP5374290B2
JP5374290B2 JP2009217206A JP2009217206A JP5374290B2 JP 5374290 B2 JP5374290 B2 JP 5374290B2 JP 2009217206 A JP2009217206 A JP 2009217206A JP 2009217206 A JP2009217206 A JP 2009217206A JP 5374290 B2 JP5374290 B2 JP 5374290B2
Authority
JP
Japan
Prior art keywords
port
physical
packet
output
output port
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.)
Active
Application number
JP2009217206A
Other languages
English (en)
Other versions
JP2011066792A (ja
Inventor
智彦 河野
哲朗 西田
和雄 須貝
紀夫 城子
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.)
Alaxala Networks Corp
Original Assignee
Alaxala Networks Corp
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 Alaxala Networks Corp filed Critical Alaxala Networks Corp
Priority to JP2009217206A priority Critical patent/JP5374290B2/ja
Publication of JP2011066792A publication Critical patent/JP2011066792A/ja
Application granted granted Critical
Publication of JP5374290B2 publication Critical patent/JP5374290B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、ネットワーク中継装置に関するものである。
ネットワーク機器間を配線するためには、リピータハブやレイヤ2スイッチといったネットワーク中継装置が利用されている。リピータハブは、複数のネットワーク機器を電気的に単純に接続するための装置である。一方、レイヤ2スイッチは、入力したパケットをその宛先アドレスに応じて最適な物理ポートに転送する機能を備えている。近年のオフィスでは、ネットワーク機器の増加に伴うトラフィックの増大を抑制するため、リピータハブではなく、レイヤ2スイッチが用いられることが多い。また、近年では、より大規模なネットワークを構築するため、レイヤ3スイッチと呼ばれるネットワーク中継装置も利用されている。レイヤ3スイッチは、レイヤ2スイッチのブリッジ機能に加え、ルータ機能も備えている。
上述したレイヤ2スイッチやレイヤ3スイッチの中には、リンクアグリゲーションと呼ばれる機能を備えるものもある。かかる機能は、LANスイッチ間等に接続された複数の物理ポートを1つの論理ポートとして扱うことにより帯域の拡大や冗長性の確保を実現する機能である。
リンクアグリゲーション機能を備えたネットワーク中継装置としては、例えば、特許文献1に開示されたものが知られている。特許文献1に開示されたネットワーク中継装置は、複数のパケット処理部を備えており、マルチキャストパケットを受信したパケット処理部に負荷を集中させることなく、複数のパケット処理部から当該マルチキャストパケットを送信することが可能である。しかし、この技術では、最終的にマルチキャストパケットを送信しないパケット処理部においても、経路検索等の無駄な処理が発生しており、パケット処理部の処理能力を浪費してしまうという問題があった。
特開2005−20492号公報
本発明は、上述した従来の課題を解決するためになされたものであり、ネットワーク中継装置のパケット処理部における処理能力の浪費を抑制することのできる技術を提供することを目的とする。
本発明は、上述の課題の少なくとも一部を解決するために、以下の形態または適用例を取ることが可能である。
[形態1]
ネットワーク中継装置であって、
1つ以上の物理ポートを備え、該物理ポートの少なくとも1つを介して外部装置との間でパケットの入出力処理を実行する複数のパケット処理部と、
複数の前記物理ポートを論理的に束ねることによって少なくとも1つの論理ポートを設定する論理ポート設定部と、
経路情報に基づいてマルチキャストパケットの出力先となる出力ポートを特定し、該出力ポートに前記論理ポートが含まれる場合に、該論理ポートを構成する複数の物理ポートの中から、前記マルチキャストパケットを出力する物理ポートを所定の選択処理によって選択し、該選択された物理ポートを備える前記パケット処理部を、前記マルチキャストパケットの配布先として設定する配布先設定部と、
前記配布先設定部によって設定された前記パケット処理部に対して、前記マルチキャストパケットを、前記物理ポートを介した前記外部装置からの入力に応じて、配布する配布部と
前記経路情報に基づいて前記マルチキャストパケットの出力先となる出力ポートを特定し、該出力ポートに前記論理ポートが含まれる場合に、該論理ポートを構成する複数の物理ポートの中から、前記マルチキャストパケットを出力する物理ポートを前記所定の選択処理によって選択し、該選択された物理ポートを備える前記パケット処理部に対して、前記論理ポートを前記マルチキャストパケットの出力ポートとして設定する出力ポート設定部と
を備え、
前記各パケット処理部は、前記配布部から前記マルチキャストパケットを受信した場合、前記出力ポート設定部によって出力ポートとして設定された前記論理ポートを構成する複数の物理ポートの中から、前記マルチキャストパケットを出力する物理ポートを前記所定の選択処理によって選択し、該選択された物理ポートから前記マルチキャストパケットを出力する
ネットワーク中継装置。
[適用例1]
ネットワーク中継装置であって、
1つ以上の物理ポートを備え、該物理ポートの少なくとも1つを介して外部装置との間でパケットの入出力処理を実行する複数のパケット処理部と、
複数の前記物理ポートを論理的に束ねることによって少なくとも1つの論理ポートを設定する論理ポート設定部と、
経路情報に基づいてマルチキャストパケットの出力先となる出力ポートを特定し、該出力ポートに前記論理ポートが含まれる場合に、該論理ポートを構成する複数の物理ポートの中から、前記マルチキャストパケットを出力する物理ポートを所定の選択処理によって選択し、該選択された物理ポートを備える前記パケット処理部を、前記マルチキャストパケットの配布先として設定する配布先設定部と、
前記配布先設定部によって設定された前記パケット処理部に対して、前記マルチキャストパケットを配布する配布部と
を備える
ネットワーク中継装置。
適用例1のネットワーク中継装置によれば、マルチキャストパケットの出力先となる物理ポートを備えないパケット処理部に対しては、マルチキャストパケットを配布しないので、パケット処理部における処理能力の浪費を抑制することができる。
[適用例2]
適用例1に記載のネットワーク中継装置であって、さらに、
前記経路情報に基づいて前記マルチキャストパケットの出力先となる出力ポートを特定し、該出力ポートに前記論理ポートが含まれる場合に、該論理ポートを構成する複数の物理ポートの中から、前記マルチキャストパケットを出力する物理ポートを前記所定の選択処理によって選択し、該選択された物理ポートを備える前記パケット処理部に対して、前記論理ポートを前記マルチキャストパケットの出力ポートとして設定する出力ポート設定部を備え、
前記配布部から前記マルチキャストパケットを受信した前記各パケット処理部は、前記出力ポート設定部によって出力ポートとして設定された前記論理ポートを構成する複数の物理ポートの中から、前記マルチキャストパケットを出力する物理ポートを前記所定の選択処理によって選択し、該選択された物理ポートから前記マルチキャストパケットを出力する
ネットワーク中継装置。
適用例2のネットワーク中継装置によれば、マルチキャストパケットを出力しないパケット処理部に対しては、出力ポートとして論理ポートを設定しないので、パケット処理部における処理能力の浪費を抑制することができる。
[適用例3]
適用例1に記載のネットワーク中継装置であって、さらに、
前記経路情報に基づいて前記マルチキャストパケットの出力先となる出力ポートを特定し、該出力ポートに前記論理ポートが含まれる場合に、該論理ポートを構成する複数の物理ポートの中から、前記マルチキャストパケットを出力する物理ポートを前記所定の選択処理によって選択し、該選択された物理ポートを備える前記パケット処理部に対して、前記物理ポートを前記マルチキャストパケットの出力ポートとして設定する出力ポート設定部を備え、
前記配布部から前記マルチキャストパケットを受信した前記各パケット処理部は、前記出力ポート設定部によって設定された前記物理ポートから前記マルチキャストパケットを出力する
ネットワーク中継装置。
適用例3のネットワーク中継装置によれば、パケット処理部における物理ポートの選択処理を省略することができるので、パケット処理部における処理能力の浪費を抑制することができる。
[適用例4]
ネットワーク中継装置であって、
1つ以上の物理ポートを備え、該物理ポートの少なくとも1つを介して外部装置との間でパケットの入出力処理を実行する複数のパケット処理部と、
複数の前記物理ポートを論理的に束ねることによって少なくとも1つの論理ポートを設定する論理ポート設定部と、
経路情報に基づいてマルチキャストパケットの出力先となる出力ポートを特定し、該出力ポートに前記論理ポートが含まれる場合に、該論理ポートを構成する物理ポートを備える全ての前記パケット処理部を、前記マルチキャストパケットの配布先として設定する配布先設定部と、
前記配布先設定部によって設定された前記パケット処理部に対して、前記マルチキャストパケットを配布する配布部と、
前記経路情報に基づいて前記マルチキャストパケットの出力先となる出力ポートを特定し、該出力ポートに前記論理ポートが含まれる場合に、該論理ポートを構成する複数の物理ポートの中から、前記マルチキャストパケットを出力する物理ポートを所定の選択処理によって選択し、該選択された物理ポートを備える前記パケット処理部に対して、前記論理ポートを前記マルチキャストパケットの出力ポートとして設定する出力ポート設定部と
を備え、
前記配布部から前記マルチキャストパケットを受信した前記各パケット処理部は、前記出力ポート設定部によって出力ポートとして設定された前記論理ポートを構成する複数の物理ポートの中から、前記マルチキャストパケットを出力する物理ポートを前記所定の選択処理によって選択し、該選択された物理ポートから前記マルチキャストパケットを出力する
ネットワーク中継装置。
適用例4のネットワーク中継装置によれば、マルチキャストパケットを出力しないパケット処理部に対しては、出力ポートとして論理ポートを設定しないので、パケット処理部における処理能力の浪費を抑制することができる。
[適用例5]
適用例1ないし4のいずれか一項に記載のネットワーク中継装置であって、
前記所定の選択処理は、前記経路情報から一意に定まる情報に基づいて、前記論理ポートを構成する複数の物理ポートの中から、前記マルチキャストパケットを出力する物理ポートを選択する処理である
ネットワーク中継装置。
適用例5のネットワーク中継装置によれば、同一の経路情報を有するマルチキャストパケットに対しては、同一の物理ポートを選択することができる。したがって、経路設定時にマルチキャストパケットの配布先となるパケット処理部の設定や、パケット処理部に対する出力ポートの設定を行なっておくことによって、分散処理部200の処理能力の浪費を抑制することができる。
[適用例6]
適用例5に記載のネットワーク中継装置であって、
前記所定の選択処理は、前記経路情報から一意に定まる情報を用いた所定のハッシュ関数によってハッシュ値を求め、該ハッシュ値に基づいて、前記論理ポートを構成する複数の物理ポートの中から、前記マルチキャストパケットを出力する物理ポートを選択する処理である
ネットワーク中継装置。
適用例6のネットワーク中継装置によれば、論理ポートを構成する複数の物理ポートの中から、マルチキャストパケットを出力する物理ポートを偏りなく選択することができる。
[適用例7]
適用例5又は6に記載のネットワーク中継装置であって、
前記経路情報から一意に定まる情報は、送信元アドレス情報及び宛先アドレス情報である
ネットワーク中継装置。
適用例7のネットワーク中継装置によれば、低負荷の処理によって、物理ポートを選択することができる。
なお、本発明は、種々の態様で実現することが可能である。例えば、ネットワーク中継方法および装置、ネットワーク中継システム、それらの方法または装置の機能を実現するための集積回路、コンピュータプログラム、そのコンピュータプログラムを記録した記録媒体等の形態で実現することができる。
本発明の一実施例としてのネットワーク中継装置10の全体構成を示す説明図である。 分散処理部200の内部構成を示す説明図である。 制御ユニット100の内部構成を示す説明図である。 比較例におけるネットワーク中継装置10の動作を示す説明図である。 比較例におけるビットマップテーブルTBを示す説明図である。 比較例における出力ポートテーブルTPを示す説明図である。 LAGテーブルTLを示す説明図である。 実施例におけるネットワーク中継装置10の動作を示す説明図である。 実施例におけるビットマップテーブルTBを示す説明図である。 実施例における出力ポートテーブルTPを示す説明図である。 比較例におけるビットマップテーブルTBの設定処理を示すフローチャートである。 マルチキャスト経路テーブルTMを示す説明図である。 論理インターフェース変換テーブルTCを示す説明図である。 実施例におけるビットマップテーブルTBの設定処理を示すフローチャートである。 比較例における出力ポートテーブルTPの設定処理を示すフローチャートである。 実施例における出力ポートテーブルTPの設定処理を示すフローチャートである。 実施例における効果を示すグラフである。 変形例における出力ポートテーブルTPの設定処理を示すフローチャートである。 変形例における出力ポートテーブルTPを示す説明図である。 変形例におけるネットワーク中継装置10の動作を示す説明図である。
次に、本発明の実施の形態を実施例に基づいて説明する。
A.ネットワーク中継装置10の構成:
B.比較例におけるネットワーク中継装置の動作:
C.実施例におけるネットワーク中継装置の動作:
D.比較例におけるビットマップテーブルTBの設定:
E.実施例におけるビットマップテーブルTBの設定:
F.比較例における出力ポートテーブルTPの設定:
G.実施例における出力ポートテーブルTPの設定:
H.変形例:
A.ネットワーク中継装置10の構成:
図1は、本発明の一実施例としてのネットワーク中継装置10の全体構成を示す説明図である。本実施例のネットワーク中継装置10は、いわゆるLANスイッチであり、ブリッジ機能やルータ機能を備えるとともに、リンクアグリゲーション機能も備えている。リンクアグリゲーション(link aggregation: LAG)機能とは、複数の物理ポートを束ねて1つの論理ポート(LAGポート)として取り扱うことが可能な機能であり、帯域幅の拡大や冗長性の確保を図ることができる。
ネットワーク中継装置10は、制御ユニット100と、5つの分散処理部200(DPU#1、#2、#3、#4、#5)と、クロスバスイッチ300とを備えている。5つの分散処理部200には、それぞれ識別番号(#1、#2、#3、#4、#5)が付与されている。なお、本明細書では、ネットワーク中継装置10が5つの分散処理部200を備えているものとして説明するが、分散処理部200の数は5つに限られない。すなわち、ネットワーク中継装置10が備える分散処理部200の数は、4つ以下であってもよく、6つ以上であってもよい。
制御ユニット100は、ネットワーク中継装置10の全体制御を行うユニットである。制御ユニット100は、図示していないPCIバス等によって各分散処理部200と接続されており、このPCIバス等経由で各分散処理部200の制御を行う。また、制御ユニット100は、ネットワークによって接続された管理用コンピュータに対して、Webベース等の設定用ユーザインタフェースを提供する。管理者は、このユーザインタフェースを利用することにより、経路に関するテーブルなどの設定を行うことができる。その他、制御ユニット100は、各分散処理部200に対するテーブルの配布やルーティングプロトコルの処理などを行う。
各分散処理部200は、それぞれ複数の物理ポート(#1、#2…#N)を備えており、パケットの受信・送信を行う。
クロスバスイッチ300は、制御ユニット100や分散処理部200からの指示に基づいてパケットの中継を行うスイッチである。5つの分散処理部200は、クロスバスイッチ300を介してそれぞれ接続されている。ただし、クロスバスイッチ300以外の接続回路を用いて、各分散処理部を相互に接続してもよい。
図2は、分散処理部200の内部構成を示す説明図である。分散処理部200は、受信側処理部210と、送信側処理部220とを備えている。
受信側処理部210は、受信側経路検索部212と、テーブル記憶部214とを備えている。テーブル記憶部214には、ビットマップテーブルTBが格納されている。受信側処理部210が物理ポートからマルチキャストパケットを受信すると、受信側経路検索部212は、当該マルチキャストパケットのヘッダに含まれる送信元アドレス及び宛先アドレス(マルチキャストグループアドレス)をキーとしてビットマップテーブルTBを検索する。ビットマップテーブルTBには、後述するように、どの分散処理部200が当該マルチキャストパケットの送信先であるのかを識別するためのビットマップが記憶されている。受信側経路検索部212は、該検索によりキーに対応するビットマップを取得し、受信したパケットをクロスバスイッチ300に送信する。なお、受信側経路検索部212がビットマップテーブルTBに従って、当該マルチキャストパケットを各分散処理部200に対して1対1で複数回送信してもよく、クロスバスイッチ300がビットマップテーブルTBに従って、当該マルチキャストパケットを各分散処理部200に対して1対N(Nは、送信先となる分散処理部200の数)で一度に送信してもよい。
受信側処理部210がユニキャストパケットを受信した場合には、受信側経路検索部212は、ビットマップテーブルTBを参照することなく経路検索を行い、当該ユニキャストパケットの出力先となる出力ポートを参照し、クロスバスイッチ300を介して該出力ポートを備える分散処理部200に当該ユニキャストパケットを送信する。なお、後述するように、ビットマップテーブルTBは、制御ユニット100によって設定される。
送信側処理部220は、送信側経路検索部222と、テーブル記憶部226とを備えている。送信側経路検索部222は、出力ポート検索部223と、物理ポート選択部224とを備えている。テーブル記憶部226には、出力ポートテーブルTPと、リンクアグリゲーションテーブルTL(LAGテーブルTL)とが格納されている。
送信側処理部220がクロスバスイッチ300からマルチキャストパケットを受信すると、出力ポート検索部223は、出力ポートテーブルTPを参照して、出力ポートのリストを取得する。出力ポートのリストの中に、LAGポートが含まれている場合には、物理ポート選択部224は、LAGテーブルTLを参照し、当該LAGポートに関連付けられた物理ポートの中から、1つの物理ポートを選択する。
送信側処理部220は、出力ポートのリストから得られた物理ポート及び物理ポート選択部224によって選択された物理ポートから、マルチキャストパケットを送信する。なお、後述するように、各分散処理部200は、それぞれ内容が異なる出力ポートテーブルTPを格納している。なお、それぞれの出力ポートテーブルTPは、制御ユニット100によって設定される。
図3は、制御ユニット100の内部構成を示す説明図である。制御ユニット100は、制御部105と、ビットマップテーブル設定部110と、出力ポートテーブル設定部120と、テーブル記憶部130とを備えている。制御部105は、ネットワーク中継装置10の全体の制御や経路設定を行なっている。テーブル記憶部130は、マルチキャスト経路テーブルTMと、論理インターフェース変換テーブルTCと、LAGテーブルTLとを格納している。これらのテーブルの内容については後に詳述する。なお、テーブル記憶部130に格納されたLAGテーブルTLと、テーブル記憶部226(図2)に格納されたLAGテーブルTLとは同期しており、同じ内容となっている。
ビットマップテーブル設定部110は、テーブル記憶部130に格納された3つのテーブルを用いて、ビットマップテーブルTB(図2)の設定及び更新を行う。出力ポートテーブル設定部120は、テーブル記憶部130に格納された3つのテーブルを用いて、出力ポートテーブルTP(図2)の設定及び更新を行なう。
B.比較例におけるネットワーク中継装置の動作:
まず、比較例におけるネットワーク中継装置10の動作を説明する。
図4は、比較例におけるネットワーク中継装置10の動作を示す説明図である。この図4は、分散処理部DPU#1の物理ポート#1からマルチキャストパケットを受信した場合における動作を示している。分散処理部DPU#1の受信側経路検索部212(図2)は、物理ポート#1からマルチキャストパケットを受信すると、該マルチキャストパケットのヘッダに含まれる送信元アドレス及び宛先アドレス(マルチキャストグループアドレス)をキーとして、ビットマップテーブルTBを検索する。
図5は、比較例におけるビットマップテーブルTBを示す説明図である。このビットマップテーブルTBは、受信したマルチキャストパケットのヘッダに含まれる送信元アドレス及び宛先アドレス(マルチキャストグループアドレス)をキーとして、マルチキャストパケットの送信先となる分散処理部を検索するためのテーブルである。ビットマップテーブルTBのうち、分散処理部200の識別番号に対応する欄に「1」が格納されていれば、その分散処理部に対してマルチキャストパケットを送信することを意味する。一方、ビットマップテーブルTBのうち、分散処理部200の識別番号に対応する欄に「0」が格納されていれば、その分散処理部に対してはマルチキャストパケットを送信しないことを意味する。
以下では、比較例におけるネットワーク中継装置10が、送信元アドレスがSA1、宛先アドレスがGA1であるマルチキャストパケットを受信した場合について説明する。すなわち、この比較例においては、分散処理部DPU#1が受信したマルチキャストパケットは、クロスバスイッチ300を介して4つの分散処理部(DPU#2、DPU#3、DPU#4、DPU#5)に対して送信される。
なお、この比較例におけるビットマップテーブルTBは、分散処理部DPU#3に対してもマルチキャストパケットが送信されるように設定されている点が、後述する実施例におけるビットマップテーブルTBとは異なる。すなわち、実施例におけるビットマップテーブルTBは、分散処理部DPU#3に対してはマルチキャストパケットが送信されないように設定されている。また、ビットマップテーブルTBは、経路設定時にビットマップテーブル設定部110(図3)によって設定されるが、この設定方法については後述する。
分散処理部DPU#1からマルチキャストパケットを受信したクロスバスイッチ300は、ビットマップテーブルTBに従い、4つの分散処理部(DPU#2、DPU#3、DPU#4、DPU#5)に対してマルチキャストパケットを送信する(図4参照)。マルチキャストパケットを受信した4つの分散処理部(DPU#2、DPU#3、DPU#4、DPU#5)におけるそれぞれの送信側経路検索部222は、受信したマルチキャストパケットのヘッダに含まれる送信元アドレス及び宛先アドレス(マルチキャストグループアドレス)をキーとして、それぞれのテーブル記憶部226に格納されている出力ポートテーブルTPを参照する。
図6は、比較例における出力ポートテーブルTPを示す説明図である。出力ポートテーブルTPは、5つの分散処理部200に対してそれぞれ用意される。出力ポートテーブルTPは、受信したマルチキャストパケットのヘッダに含まれる送信元アドレス及び宛先アドレス(マルチキャストグループアドレス)をキーとして、マルチキャストパケットの出力先となる出力ポートを検索するためのテーブルである。出力ポートの欄に示す「1/1」は、分散処理部DPU#1の物理ポート#1を意味しており、「2/1」は、分散処理部DPU#2の物理ポート#1を意味している。「LAG3」は、3番目のリンクアグリゲーションポート(LAGポート#3)を意味している。以下で説明するテーブルにおいても同様である。上述したように、LAGポートは、複数の物理ポートが関連付けられて、1つのポートとして扱われる。
なお、この比較例は、分散処理部DPU#3の出力ポートテーブルTP#3及び分散処理部DPU#5の出力ポートテーブルTP#5に対しても「LAG4」が設定されている点が、後述する実施例とは異なる。すなわち、実施例では、分散処理部DPU#3の出力ポートテーブルTP#3及び分散処理部DPU#5の出力ポートテーブルTP#5に対して「LAG4」は設定されていない。また、出力ポートテーブルTPは、経路決定時に出力ポートテーブル設定部120(図3)によって設定されるが、この設定方法については後述する。
分散処理部DPU#2の送信側経路検索部222は、送信元アドレスSA1及び宛先アドレスGA1をキーとして、自身のテーブル記憶部226が格納する出力ポートテーブルTP#2を検索し、出力ポートのリスト(物理ポート2/1、LAGポート#3)を取得する。
分散処理部DPU#3の送信側経路検索部222は、送信元アドレスSA1及び宛先アドレスGA1をキーとして、自身のテーブル記憶部226に格納された出力ポートテーブルTP#3を検索し、出力ポートのリスト(LAGポート#4)を取得する。
分散処理部DPU#4の送信側経路検索部222は、送信元アドレスSA1及び宛先アドレスGA1をキーとして、自身のテーブル記憶部226に格納された出力ポートテーブルTP#4を検索し、出力ポートのリスト(LAGポート#4)を取得する。
分散処理部DPU#5の送信側経路検索部222は、送信元アドレスSA1及び宛先アドレスGA1をキーとして、自身のテーブル記憶部226に格納された出力ポートテーブルTP#5を検索し、出力ポートのリスト(物理ポート5/2、LAGポート#4)を取得する。
次に、取得した出力ポートのリストの中にLAGポートが含まれる場合には、各分散処理部200における物理ポート選択部224は、以下に説明するLAGテーブルTLを参照する。
図7は、LAGテーブルTLを示す説明図である。LAGテーブルTLは、1つのLAGポートに対して複数の物理ポートを関連付けるためのテーブルである。なお、後述する実施例において用いられるLAGテーブルTLは、この図7に示すものと同じである。換言すれば、後述する実施例と比較例との違いは、ビットマップテーブルTB及び出力ポートテーブルTPの内容と、ビットマップテーブルTB及び出力ポートテーブルTPの設定方法だけである。
物理ポート選択部224(図2)は、LAGテーブルTLを参照し、LAGポートに関連付けられた複数の物理ポートの中から、1つの物理ポートを選択する。以下では、この物理ポートの選択を「LAG処理」とも呼ぶ。LAG処理は、以下の手順により行なわれる。
(1)送信元アドレスと宛先アドレスとを8ビットずつに区切り、それぞれを加算する。ただし、桁上がりは無視する。
(2)得られた加算値に対してビット逆順操作を行い、ハッシュ値とする。ハッシュ値の取り得る範囲は、0〜255である。なお、ビット逆順操作とは、対象となるデータのビットの並び順を逆にする操作である。
(3)得られたハッシュ値を用いて以下の式(1)に示す演算を行い、エントリ番号を算出する。ただし、計算結果の小数点以下は切り捨てる。
エントリ番号=((ハッシュ値)×(パス数))/256 …(1)
ここで、パス数は、当該LAGポートを構成する物理ポートの数を意味する。また、エントリ番号が取り得る値は、例えば当該LAGポートを構成する物理ポートの数(パス数)が3つの場合には、0、1、2の3種類となる。
(4)当該LAGポート及びエントリ番号をキーとしてLAGテーブルTLを検索し、物理ポートを選択する。
このようにすれば、LAGポートを構成する複数の物理ポートの中から、偏りなく物理ポートを選択することができる。具体的には、各物理ポート選択部224は、以下のようにLAG処理を行なう。
分散処理部DPU#2の物理ポート選択部224は、送信元アドレスSA1及び宛先アドレスGA1に基づいてハッシュ値を求めるとともに、このハッシュ値とLAGポート#3のパス数「2」を用いて、エントリ番号「0」を算出する。そして、分散処理部DPU#2の物理ポート選択部224は、LAGポート#3及びエントリ番号「0」をキーとしてLAGテーブルTLを参照し、LAGポート#3に関連付けられた2つの物理ポート(2/2、2/3)の中から、エントリ番号「0」に対応する物理ポート2/2を選択する(図4参照)。
分散処理部DPU#3の物理ポート選択部224は、送信元アドレスSA1及び宛先アドレスGA1に基づいてハッシュ値を求めるとともに、このハッシュ値とLAGポート#4のパス数「3」を用いて、エントリ番号「1」を算出する。そして、分散処理部DPU#3の物理ポート選択部224は、LAGポート#4及びエントリ番号「1」をキーとしてLAGテーブルTLを参照し、LAGポート#4に関連付けられた3つの物理ポート(3/1、4/1、5/1)の中から、エントリ番号「1」に対応する物理ポート4/1を選択する。
分散処理部DPU#4及び分散処理部DPU#5は、分散処理部DPU#3と同様に、LAGポート#4に関連付けられた3つの物理ポートの中から、エントリ番号「1」に対応する物理ポート4/1を選択する。すなわち、各分散処理部200は、それぞれ同じLAG処理を行なっているため、同一のLAGポートに対しては、同一の物理ポートを選択することになる。
出力ポートテーブルTPの参照及びLAG処理により、各分散処理部200は、以下に示す物理ポートからパケットを出力しようとする。
分散処理部DPU#2:物理ポート2/1、物理ポート2/2
分散処理部DPU#3:物理ポート4/1
分散処理部DPU#4:物理ポート4/1
分散処理部DPU#5:物理ポート4/1、物理ポート5/2
ここで、各分散処理部200は、パケットを出力しようとする物理ポートを自身が備えているか否かを判定する。各分散処理部200は、パケットを出力しようとする物理ポートを備えていれば、当該物理ポートからそのパケットを出力し、パケットを出力しようとする物理ポートを備えていなければ、そのパケットを廃棄する。
この比較例では、分散処理部DPU#3は、物理ポート4/1を備えていないため、物理ポート4/1から出力するために用意されたパケットを廃棄する。同様に、分散処理部DPU#5は、物理ポート4/1を備えていないため、物理ポート4/1から出力するために用意されたパケットを廃棄する(図4参照)。
以上より、この比較例においては、以下の4つの物理ポートからマルチキャストパケットが出力される(図4参照)。
(1)分散処理部DPU#2の物理ポート#1(物理ポート2/1);
(2)分散処理部DPU#2の物理ポート#2(物理ポート2/2);
(3)分散処理部DPU#4の物理ポート#1(物理ポート4/1);
(4)分散処理部DPU#5の物理ポート#2(物理ポート5/2);
したがって、分散処理部DPU#3は、最終的にパケットを出力せずに廃棄するにもかかわらず、図4の破線H1で囲んだ一連の処理を行い、その処理能力を浪費している。同様に、分散処理部DPU#5は、物理ポート4/1から出力するためのパケットを廃棄するにもかかわらず、図4の破線H2で囲んだLAGポート#4に対するLAG処理を行ない、その処理能力を浪費している。
これに対して以下で説明する実施例では、図4の破線H1、H2で囲んだ処理の発生は抑制され、各分散処理部200の処理能力の浪費は抑制される。
C.実施例におけるネットワーク中継装置の動作:
図8は、実施例におけるネットワーク中継装置10の動作を示す説明図である。この図8は、図4に示した比較例と同様に、ネットワーク中継装置10が、送信元アドレスがSA1、宛先アドレスがGA1であるマルチキャストパケットを、分散処理部DPU#1の物理ポート#1から受信した場合における動作を示している。
本実施例は、以下の点において、図4に示した比較例と異なる。
相違点1:分散処理部DPU#3に対しては、マルチキャストパケットが送信されていない点
相違点2:分散処理部DPU#5においては、LAG処理が行なわれていない点
相違点1が生じる理由は、実施例と比較例とにおいて、次に説明するビットマップテーブルTBが異なっているからである。相違点2が生じる理由は、実施例と比較例とにおいて、後述する出力ポートテーブルTPが異なっているからである。
図9は、実施例におけるビットマップテーブルTBを示す説明図である。上述したように、本実施例におけるビットマップテーブルTBでは、送信元アドレスSA1及び宛先アドレスGA1をキーとする分散処理部DPU#3の識別番号に対応する欄には、「0」が格納されている。すなわち、本実施例では、マルチキャストパケットは、分散処理部DPU#3には送信されない(図8参照)。
以上より、本実施例によれば、図4の破線H1で囲んだ分散処理部DPU#3における処理の発生を抑制し、分散処理部DPU#3の処理能力の浪費を抑制することができる。実施例におけるビットマップテーブルTBの設定方法については、後述する。
図10は、実施例における出力ポートテーブルTPを示す説明図である。上述したように、本実施例における出力ポートテーブルTPでは、分散処理部DPU#3の出力ポートテーブルTP#3及び分散処理部DPU#5の出力ポートテーブルTP#5に対して「LAG4」は設定されていない。すなわち、本実施例では、分散処理部DPU#5においてLAG処理は発生しないことになる(図8参照)。また、たとえマルチキャストパケットが分散処理部DPU#3に送信されていたとしても、分散処理部DPU#3においてLAG処理は発生しないことになる。
以上より、本実施例によれば、図4の破線H2で囲んだ分散処理部DPU#5におけるLAG処理の発生を抑制し、分散処理部DPU#5の処理能力の浪費を抑制することができる。実施例における出力ポートテーブルTPの設定方法については、後述する。
D.比較例におけるビットマップテーブルTBの設定:
図11は、比較例におけるビットマップテーブルTBの設定処理を示すフローチャートである。ステップS10では、ビットマップテーブル設定部110(図3)は、ビットマップテーブルTBを用意し、初期化を行なう。ステップS20では、ビットマップテーブル設定部110は、テーブル記憶部130に記憶されているマルチキャスト経路テーブルTMを参照する。
図12は、マルチキャスト経路テーブルTMを示す説明図である。マルチキャスト経路テーブルTMには、経路情報としての送信元アドレス及び宛先アドレスの組み合わせに対して、複数の論理インターフェースが格納されている。すなわち、図11のステップS20では、ビットマップテーブル設定部110は、送信元アドレス及び宛先アドレスをキーとしてマルチキャスト経路テーブルTMを検索し、対応する論理インターフェースのリストを取得する。
具体的には、ビットマップテーブル設定部110が、送信元アドレスSA1及び宛先アドレスGA1をキーとしてマルチキャスト経路テーブルTMを検索した場合には、4つの論理インターフェース(VLAN2、VLAN3、VLAN4、VLAN5)のリストを取得する。なお、後述する実施例において用いられるマルチキャスト経路テーブルTMは、この図12に示すものと同じである。
ステップS30では、ビットマップテーブル設定部110は、論理インターフェース変換テーブルTCを参照する。
図13は、論理インターフェース変換テーブルTCを示す説明図である。論理インターフェース変換テーブルTCは、論理インターフェースをキーとして、対応する出力ポート(LAGポート及び物理ポート)を検索するためのテーブルである。すなわち、図11のステップS30では、ビットマップテーブル設定部110は、リストとして取得した全ての論理インターフェースをキーとして論理インターフェース変換テーブルTCを検索し、対応する全ての出力ポートのリストを取得する。
具体的には、ビットマップテーブル設定部110が、上述した4つの論理インターフェース(VLAN2、VLAN3、VLAN4、VLAN5)をキーとして論理インターフェース変換テーブルTCを検索した場合には、4つの出力ポート(物理ポート2/1、LAGポート#3、LAGポート#4、物理ポート5/2)のリストを取得する。なお、後述する実施例において用いられる論理インターフェース変換テーブルTCは、この図13に示すものと同じである。
ステップS40では、ビットマップテーブル設定部110は、出力ポートがLAGポートであるか否かを判断する。出力ポートがLAGポートであった場合(ステップS40:Yes)には、ステップS50Xにおいて、ビットマップテーブル設定部110は、LAGポートをキーとしてLAGテーブルTL(図7)を検索し、当該LAGポートに属する全ての物理ポートのリストを取得する。
具体的には、LAGポート#3に属する物理ポートは、2つ(物理ポート2/2、物理ポート2/3)であり、LAGポート#4に属する物理ポートは、3つ(物理ポート3/1、物理ポート4/1、物理ポート5/1)である。
ステップS60Xでは、ビットマップテーブル設定部110は、取得したリストにおける物理ポートが属する分散処理部200の識別番号に対応する全てのビットマップを、「1」に設定する。
具体的には、物理ポート2/2は、分散処理部DPU#2に属しているため、ビットマップテーブル設定部110は、分散処理部DPU#2の識別番号に対応するビットマップを「1」に設定する。ビットマップテーブル設定部110は、このようなビットマップの設定を、取得したリストにおける全ての物理ポートについて行なう。すなわち、LAGポート#4に属する物理ポート3/1は、分散処理部DPU#3に属しているため、比較例におけるビットマップテーブル設定部110は、分散処理部DPU#3の識別番号に対応するビットマップも「1」に設定することになる。
ステップS40において、出力ポートが物理ポートであった場合(ステップS40:No)には、ビットマップテーブル設定部110は、当該物理ポートが属する分散処理部200の識別番号に対応するビットマップを「1」に設定する(ステップS62)。
具体的には、物理ポート2/1は、分散処理部DPU#2に属しているため、ビットマップテーブル設定部110は、分散処理部DPU#2の識別番号に対応するビットマップを「1」に設定する。同様に、物理ポート5/2は、分散処理部DPU#5に属しているため、ビットマップテーブル設定部110は、分散処理部DPU#5の識別番号に対応するビットマップを「1」に設定する。
ステップS70では、ビットマップテーブル設定部110は、取得したリストの全ての出力ポートに対してステップS40からステップS60X(またはステップS62)までの処理を行なったか否かを判定する。
全ての出力ポートに対して処理を行なっていない場合(ステップS70:No)には、ビットマップテーブル設定部110は、取得したリスト中の次の出力ポートを指定して、再びステップS40に戻る。次の出力ポートの指定は、取得したリスト中の出力ポートに連続番号を付与しておき、その連続番号を順番に指定することにより行なわれる。すなわち、取得したリストの全ての出力ポートに対して、ステップS40からステップS60X(またはステップS62)までの処理が行なわれるように、ループ処理が行なわれる。
取得したリストの全ての出力ポートに対して、ステップS40からステップS60までの処理が行なわれた場合(ステップS70:Yes)には、ビットマップテーブル設定部110は、全ての経路情報に対してステップS20からステップS70までの処理を行なったか否かを判定する(ステップS80)。
全ての経路情報に対して処理を行なっていない場合(ステップS80:No)には、ビットマップテーブル設定部110は、マルチキャスト経路テーブルTM(図12)中の次の経路情報を指定して、再びステップS20に戻る。すなわち、全ての経路情報に対して、ステップS20からステップS70までの処理が行なわれるように、ループ処理が行なわれる。
全ての経路情報に対して、ステップS20からステップS70までの処理が行なわれた場合(ステップS80:Yes)には、ビットマップテーブル設定部110は、設定したビットマップテーブルTBを全て(5つ)の分散処理部200に設定する(ステップS90)。
以上説明した方法により、比較例におけるビットマップテーブルTB(図5)が設定される。このように、比較例では、分散処理部DPU#3に対してもマルチキャストパケットが送信されることになるため、分散処理部DPU#3において処理能力の浪費が発生することになる。
E.実施例におけるビットマップテーブルTBの設定:
図14は、実施例におけるビットマップテーブルTBの設定処理を示すフローチャートである。実施例におけるビットマップテーブルTBの設定処理のうち、比較例におけるビットマップテーブルTBの設定処理と異なる部分は、ステップS50とステップS60における処理であり、その他の処理は同じである。したがって、ステップS10〜ステップS30までの処理については、説明を省略する。
ステップS40では、ビットマップテーブル設定部110は、出力ポートがLAGポートであるか否かを判断する。出力ポートがLAGポートであった場合(ステップS40:Yes)には、ステップS50において、ビットマップテーブル設定部110は、上述した物理ポート選択部224が行なうLAG処理と同じLAG処理を行なって、LAGポートに属する複数の物理ポートの中から1つの物理ポートを選択する。
すなわち、ビットマップテーブル設定部110は、まず、送信元アドレスと宛先アドレスとに基づいてハッシュ値を求め、上記式(1)を用いてエントリ番号を算出する(ステップS52)。
具体的には、ビットマップテーブル設定部110がLAGポート#3に対して算出するエントリ番号は、物理ポート選択部224が算出するエントリ番号と同じく、「0」となる。同様に、ビットマップテーブル設定部110がLAGポート#4に対して算出するエントリ番号は、物理ポート選択部224が算出するエントリ番号と同じく、「1」となる。
次に、ビットマップテーブル設定部110は、LAGポート及びエントリ番号をキーとして、テーブル記憶部130に格納されたLAGテーブルTL(図7)を検索し、対応する物理ポートを選択する(ステップS54)。
具体的には、ビットマップテーブル設定部110は、LAGポート#3に関連付けられた2つの物理ポートの中から、エントリ番号「0」に対応する物理ポート2/2を選択する。同様に、ビットマップテーブル設定部110は、LAGポート#4に関連付けられた3つの物理ポートの中から、エントリ番号「1」に対応する物理ポート4/1を選択する。すなわち、ビットマップテーブル設定部110は、上述した物理ポート選択部224がLAGポートの中から選択する物理ポートと同じ物理ポートを選択する。
ステップS60では、ビットマップテーブル設定部110は、選択された物理ポートが属する分散処理部200の識別番号に対応するビットマップを、「1」に設定する。
具体的には、物理ポート2/2は、分散処理部DPU#2に属しているため、ビットマップテーブル設定部110は、分散処理部DPU#2の識別番号に対応するビットマップを「1」に設定する。同様に、物理ポート4/1は、分散処理部DPU#4に属しているため、ビットマップテーブル設定部110は、分散処理部DPU#4の識別番号に対応するビットマップを「1」に設定する。すなわち、本実施例においては、分散処理部DPU#3の識別番号に対応するビットマップは「0」に設定されたままとなる。
ステップS40において、出力ポートが物理ポートであった場合(ステップS40:No)には、ビットマップテーブル設定部110は、当該物理ポートが属する分散処理部200の識別番号に対応するビットマップを「1」に設定する(ステップS62)。
具体的には、物理ポート2/1は、分散処理部DPU#2に属しているため、ビットマップテーブル設定部110は、分散処理部DPU#2の識別番号に対応するビットマップを「1」に設定する。同様に、物理ポート5/2は、分散処理部DPU#5に属しているため、ビットマップテーブル設定部110は、分散処理部DPU#5の識別番号に対応するビットマップを「1」に設定する。
ステップS70以降の処理は、比較例におけるビットマップテーブルTBの設定処理(図11)と同じであるため、説明を省略する。
以上説明した方法により、実施例におけるビットマップテーブルTB(図9)が設定される。このように、本実施例によれば、分散処理部DPU#3に対してマルチキャストパケットが送信されないことになるので(図8参照)、分散処理部DPU#3における処理能力の浪費を抑制することができる。
F.比較例における出力ポートテーブルTPの設定:
図15は、比較例における出力ポートテーブルTPの設定処理を示すフローチャートである。ステップS210では、出力ポートテーブル設定部120(図3)は、出力ポートテーブルTPを分散処理部200の個数分用意し、初期化を行なう。ステップS220では、出力ポートテーブル設定部120は、送信元アドレス及び宛先アドレスをキーとしてマルチキャスト経路テーブルTMを検索し、対応する論理インターフェースのリストを取得する。
具体的には、出力ポートテーブル設定部120が、送信元アドレスSA1及び宛先アドレスGA1をキーとしてマルチキャスト経路テーブルTMを検索した場合には、4つの論理インターフェース(VLAN2、VLAN3、VLAN4、VLAN5)のリストを取得する。
ステップS230では、出力ポートテーブル設定部120は、リストとして取得した全ての論理インターフェースをキーとして論理インターフェース変換テーブルTC(図13)を検索し、対応する全ての出力ポートのリストを取得する。
具体的には、出力ポートテーブル設定部120が、上述した4つの論理インターフェース(VLAN2、VLAN3、VLAN4、VLAN5)をキーとして論理インターフェース変換テーブルTCを検索した場合には、4つの出力ポート(物理ポート2/1、LAGポート#3、LAGポート#4、物理ポート5/2)のリストを取得する。
ステップS240では、出力ポートテーブル設定部120は、出力ポートがLAGポートであるか否かを判断する。出力ポートがLAGポートであった場合(ステップS240:Yes)には、ステップS250Xにおいて、出力ポートテーブル設定部120は、LAGポートをキーとしてLAGテーブルTL(図7)を検索し、当該LAGポートに属する全ての物理ポートのリストを取得する。
具体的には、LAGポート#3に属する物理ポートは、2つ(物理ポート2/2、物理ポート2/3)であり、LAGポート#4に属する物理ポートは、3つ(物理ポート3/1、物理ポート4/1、物理ポート5/1)である。
ステップS260Xでは、出力ポートテーブル設定部120は、取得したリストにおける物理ポートが属する全ての分散処理部200の出力ポートテーブルTPに、当該LAGポートを設定する。
具体的には、LAGポート#3に属する物理ポート2/2は、分散処理部DPU#2に属しているため、出力ポートテーブル設定部120は、分散処理部DPU#2の出力ポートテーブルTP#2に、LAGポート#3を設定する。同様にして、LAGポート#3に属する物理ポート2/3は、分散処理部DPU#2に属しているため、出力ポートテーブル設定部120は、分散処理部DPU#2の出力ポートテーブルTP#2に、LAGポート#3を設定する。ただし、この場合には、既に分散処理部DPU#2の出力ポートテーブルTP#2にはLAGポート#3が設定されているため、LAGポート#3を二重に設定することは行なわない。
同様にして、出力ポートテーブル設定部120は、LAGポート#4を、分散処理部DPU#3の出力ポートテーブルTP#3と、分散処理部DPU#4の出力ポートテーブルTP#4と、分散処理部DPU#5の出力ポートテーブルTP#5とに設定する(図6参照)。
ステップS240において、出力ポートが物理ポートであった場合(ステップS240:No)には、出力ポートテーブル設定部120は、当該物理ポートが属する分散処理部200の出力ポートテーブルTPに、当該物理ポートを設定する。(ステップS262)。
具体的には、物理ポート2/1は、分散処理部DPU#2に属しているため、出力ポートテーブル設定部120は、分散処理部DPU#2の出力ポートテーブルTP#2に対して物理ポート2/1を設定する。同様に、物理ポート5/2は、分散処理部DPU#5に属しているため、出力ポートテーブル設定部120は、分散処理部DPU#5の出力ポートテーブルTP#5に対して物理ポート5/2を設定する。
ステップS270では、出力ポートテーブル設定部120は、取得したリストの全ての出力ポートに対してステップS240からステップS260X(またはステップS262)までの処理を行なったか否かを判定する。
全ての出力ポートに対して処理を行なっていない場合(ステップS270:No)には、出力ポートテーブル設定部120は、取得したリスト中の次の出力ポートを指定して、再びステップS240に戻る。次の出力ポートの指定は、取得したリスト中の出力ポートに連続番号を付与しておき、その連続番号を順番に指定することにより行なわれる。すなわち、取得したリストの全ての出力ポートに対して、ステップS240からステップS260X(またはステップS262)までの処理が行なわれるように、ループ処理が行なわれる。
取得したリストの全ての出力ポートに対して、ステップS240からステップS260X(またはステップS262)までの処理が行なわれた場合(ステップS270:Yes)には、出力ポートテーブル設定部120は、全ての経路情報に対してステップS220からステップS270までの処理を行なったか否かを判定する(ステップS280)。
全ての経路情報に対して処理を行なっていない場合(ステップS280:No)には、出力ポートテーブル設定部120は、マルチキャスト経路テーブルTM中の次の経路情報を指定して、再びステップS220に戻る。すなわち、全ての経路情報に対して、ステップS220からステップS270までの処理が行なわれるように、ループ処理が行なわれる。
全ての経路情報に対して、ステップS220からステップS270までの処理が行なわれた場合(ステップS280:Yes)には、出力ポートテーブル設定部120は、設定した出力ポートテーブルTPを対応する分散処理部200に設定する(ステップS290)。
以上説明した方法により、比較例における出力ポートテーブルTP(図6)が設定される。このように、比較例では、分散処理部DPU#3の出力ポートテーブルTP#3及び分散処理部DPU#5の出力ポートテーブルTP#5に対してもLAGポート#4が設定されることになるため、分散処理部DPU#3及び分散処理部DPU#5において処理能力の浪費が発生することになる(図4参照)。
G.実施例における出力ポートテーブルTPの設定:
図16は、実施例における出力ポートテーブルTPの設定処理を示すフローチャートである。実施例における出力ポートテーブルTPの設定処理のうち、比較例における出力ポートテーブルTPの設定処理と異なる部分は、ステップS250とステップS260における処理であり、その他の処理は同じである。したがって、ステップS210〜ステップS230までの処理については、説明を省略する。
ステップS240では、出力ポートテーブル設定部120は、出力ポートがLAGポートであるか否かを判断する。出力ポートがLAGポートであった場合(ステップS240:Yes)には、ステップS250において、出力ポートテーブル設定部120は、上述した物理ポート選択部224が行なうLAG処理と同じLAG処理を行なって、LAGポートに属する複数の物理ポートの中から1つの物理ポートを選択する。
すなわち、出力ポートテーブル設定部120は、まず、送信元アドレスと宛先アドレスとに基づいてハッシュ値を求め、上記式(1)を用いてエントリ番号を算出する(ステップS252)。
具体的には、出力ポートテーブル設定部120がLAGポート#3に対して算出するエントリ番号は、物理ポート選択部224が算出するエントリ番号と同じく、「0」となる。同様に、出力ポートテーブル設定部120がLAGポート#4に対して算出するエントリ番号は、物理ポート選択部224が算出するエントリ番号と同じく、「1」となる。
次に、出力ポートテーブル設定部120は、LAGポート及びエントリ番号をキーとして、テーブル記憶部130に格納されたLAGテーブルTLを検索し、対応する物理ポートを選択する(ステップS254)。
具体的には、出力ポートテーブル設定部120は、LAGポート#3に関連付けられた2つの物理ポートの中から、エントリ番号「0」に対応する物理ポート2/2を選択する。同様に、出力ポートテーブル設定部120は、LAGポート#4に関連付けられた3つの物理ポートの中から、エントリ番号「1」に対応する物理ポート4/1を選択する。すなわち、出力ポートテーブル設定部120は、上述した物理ポート選択部224がLAGポートの中から選択する物理ポートと同じ物理ポートを選択する。
ステップS260では、出力ポートテーブル設定部120は、選択された物理ポートが属する分散処理部200の出力ポートテーブルTPに対して、当該LAGポートを設定する。
具体的には、LAGポート#3から選択された物理ポート2/2は、分散処理部DPU#2に属しているため、出力ポートテーブル設定部120は、分散処理部DPU#2の出力ポートテーブルTP#2にLAGポート#3を設定する。同様に、LAGポート#4から選択された物理ポート4/1は、分散処理部DPU#4に属しているため、ビットマップテーブル設定部110は、分散処理部DPU#4の出力ポートテーブルTP#4にLAGポート#4を設定する。すなわち、本実施例においては、LAGポート#4は、分散処理部DPU#3の出力ポートテーブルTP#3及び分散処理部DPU#5の出力ポートテーブルTP#5に対しては設定されないことになる。
ステップS240において、出力ポートが物理ポートであった場合(ステップS240:No)には、出力ポートテーブル設定部120は、当該物理ポートが属する分散処理部200の出力ポートテーブルTPに対して、当該物理ポートを設定する(ステップS262)。
具体的には、物理ポート2/1は、分散処理部DPU#2に属しているため、出力ポートテーブル設定部120は、分散処理部DPU#2の出力ポートテーブ#2に対して、物理ポート2/1を設定する。同様に、物理ポート5/2は、分散処理部DPU#5に属しているため、出力ポートテーブル設定部120は、分散処理部DPU#5の出力ポートテーブルTP#5に対して、物理ポート5/2を設定する。
ステップS270以降の処理は、比較例における出力ポートテーブルTPの設定処理(図15)と同じであるため、説明を省略する。
以上説明した方法により、実施例における出力ポートテーブルTP(図10)が設定される。このように、本実施例によれば、LAGポート#4は、分散処理部DPU#3の出力ポートテーブルTP#3及び分散処理部DPU#5の出力ポートテーブルTP#5に対しては設定されないので、分散処理部DPU#3及び分散処理部DPU#5における処理能力の浪費を抑制することができる(図8参照)。
図17は、実施例における効果を示すグラフである。この図17は、実施例におけるネットワーク中継装置10が、送信元アドレスSA1及び宛先アドレスGA1を経路情報として含むマルチキャストパケットを処理する場合における各分散処理部200の余剰帯域を示している。この図17から理解できるように、送信元アドレスSA1及び宛先アドレスGA1を経路情報として含むマルチキャストパケットをネットワーク中継装置10が処理する場合には、単位時間当たりのパケットの処理数が増えても、分散処理部DPU#3の余剰帯域は常に100%であることが理解できる。
このように、本実施例によれば、分散処理部200における処理能力の浪費を抑制することができる。また、処理工程が削減された分散処理部200では消費電力が低減されるように構成しておけば、ネットワーク中継装置10の消費電力の低減を実現することもできる。さらに、処理工程が削減された分散処理部200において他のパケットの処理が実行されるように構成しておけば、効率よくパケットの処理を行うことのできるネットワーク中継装置10を実現することもできる。
H.変形例:
なお、この発明は上記の実施例や実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の態様において実施することが可能であり、例えば次のような変形も可能である。
H1.変形例1:
上記実施例におけるLAG処理では、経路情報(送信元アドレス及び宛先アドレス)を用いてハッシュ値を求めていたが、宛先アドレスのみを用いてハッシュ値を求めてもよい。また、送信元アドレス及び宛先アドレスに加えて、送信元アドレス及び宛先アドレスをキーとして検索された論理インターフェースを用いて、ハッシュ値を求めることも可能である。
このように、LAG処理におけるハッシュキーとしては、経路情報から一意に定まる情報を用いることが好ましい。このようにすれば、経路設定時にビットマップテーブルTBや出力ポートテーブルTPを設定しておくことによって、分散処理部200の処理能力の浪費を抑制することができる。
さらに、マルチキャストパケットに含まれる送信元アドレス及び宛先アドレスに加えて、その他のヘッダ情報も抽出し、送信元アドレス及び宛先アドレス以外のヘッダ情報にマスクをかけ、当該ヘッダ情報を用いてハッシュ値を求めてもよい。この場合に求められるハッシュ値は、送信元アドレス及び宛先アドレスのみを用いて求められたハッシュ値と同じ値となる。また、LAG処理では、上記実施例で説明したものとは異なる所定の選択処理によって、物理ポートを選択するものとしてもよい。
H2.変形例2:
上記実施例におけるネットワーク中継装置10では、実施例におけるビットマップテーブルTB(図9)と実施例における出力ポートテーブルTP(図10)とを組み合わせて用いているが、いずれか一方を、比較例におけるビットマップテーブルTB(図5)又は比較例における出力ポートテーブルTP(図6)に置き換えて用いてもよい。このようにしても、分散処理部における処理能力の浪費を低減することができる。
H3.変形例3:
上記実施例においてソフトウェアで実現されている機能の一部をハードウェアで実現してもよく、あるいは、ハードウェアで実現されている機能の一部をソフトウェアで実現してもよい。
H4.変形例4:
図18は、変形例における出力ポートテーブルTPの設定処理を示すフローチャートである。図16に示した実施例と異なる処理は、ステップS260Yにおける処理だけである。すなわち、図16に示した実施例では、ステップS260において、出力ポートテーブル設定部120は、論理ポートの中から選択された物理ポートが属する分散処理部200の出力ポートテーブルTPに対して、当該LAGポートを設定している。これに対して、この変形例では、ステップS260Yにおいて、出力ポートテーブル設定部120は、論理ポートの中から選択された物理ポートが属する分散処理部200の出力ポートテーブルTPに対して、当該物理ポートを設定する。これ以外の変形例における処理は、実施例における処理と同じである。
図19は、変形例における出力ポートテーブルTPを示す説明図である。図10に示した実施例と異なる点は、分散処理部DPU#2の出力ポートテーブルTP#2に設定されているLAGポート#3の代わりに、物理ポート2/2が設定されている点と、分散処理部DPU#4の出力ポートテーブルTP#4に設定されているLAGポート#4の代わりに、物理ポート4/1が設定されている点だけである。
図20は、変形例におけるネットワーク中継装置10の動作を示す説明図である。この変形例におけるネットワーク中継装置10は、図19に示した出力ポートテーブルTPを用いて処理を行なっている。図19に示した出力ポートテーブルTPには、LAGポートが設定されていないので、破線H3で囲んで示したように、LAG処理を省略することができる。このような変形例によっても、分散処理部DPU#2及び分散処理部DPU#4における処理能力の浪費をさらに抑制することができる。
10…ネットワーク中継装置
100…制御ユニット
105…制御部
110…ビットマップテーブル設定部
120…出力ポートテーブル設定部
130…テーブル記憶部
200…分散処理部
210…受信側処理部
212…受信側経路検索部
214…テーブル記憶部
220…送信側処理部
222…送信側経路検索部
223…出力ポート検索部
224…物理ポート選択部
226…テーブル記憶部
300…クロスバスイッチ
TB…ビットマップテーブル
TC…論理インターフェース変換テーブル
TL…リンクアグリゲーションテーブル
TM…マルチキャスト経路テーブル
TP…出力ポートテーブル

Claims (6)

  1. ネットワーク中継装置であって、
    1つ以上の物理ポートを備え、該物理ポートの少なくとも1つを介して外部装置との間でパケットの入出力処理を実行する複数のパケット処理部と、
    複数の前記物理ポートを論理的に束ねることによって少なくとも1つの論理ポートを設定する論理ポート設定部と、
    経路情報に基づいてマルチキャストパケットの出力先となる出力ポートを特定し、該出力ポートに前記論理ポートが含まれる場合に、該論理ポートを構成する複数の物理ポートの中から、前記マルチキャストパケットを出力する物理ポートを所定の選択処理によって選択し、該選択された物理ポートを備える前記パケット処理部を、前記マルチキャストパケットの配布先として設定する配布先設定部と、
    前記配布先設定部によって設定された前記パケット処理部に対して、前記マルチキャストパケットを、前記物理ポートを介した前記外部装置からの入力に応じて、配布する配布部と
    前記経路情報に基づいて前記マルチキャストパケットの出力先となる出力ポートを特定し、該出力ポートに前記論理ポートが含まれる場合に、該論理ポートを構成する複数の物理ポートの中から、前記マルチキャストパケットを出力する物理ポートを前記所定の選択処理によって選択し、該選択された物理ポートを備える前記パケット処理部に対して、前記論理ポートを前記マルチキャストパケットの出力ポートとして設定する出力ポート設定部と
    を備え、
    前記各パケット処理部は、前記配布部から前記マルチキャストパケットを受信した場合、前記出力ポート設定部によって出力ポートとして設定された前記論理ポートを構成する複数の物理ポートの中から、前記マルチキャストパケットを出力する物理ポートを前記所定の選択処理によって選択し、該選択された物理ポートから前記マルチキャストパケットを出力する
    ネットワーク中継装置。
  2. 請求項1に記載のネットワーク中継装置であって、さらに、
    前記経路情報に基づいて前記マルチキャストパケットの出力先となる出力ポートを特定し、該出力ポートに前記論理ポートが含まれる場合に、該論理ポートを構成する複数の物理ポートの中から、前記マルチキャストパケットを出力する物理ポートを前記所定の選択処理によって選択し、該選択された物理ポートを備える前記パケット処理部に対して、前記物理ポートを前記マルチキャストパケットの出力ポートとして設定する出力ポート設定部を備え、
    前記各パケット処理部は、前記配布部から前記マルチキャストパケットを受信した場合、前記出力ポート設定部によって設定された前記物理ポートから前記マルチキャストパケットを出力する
    ネットワーク中継装置。
  3. ネットワーク中継装置であって、
    1つ以上の物理ポートを備え、該物理ポートの少なくとも1つを介して外部装置との間でパケットの入出力処理を実行する複数のパケット処理部と、
    複数の前記物理ポートを論理的に束ねることによって少なくとも1つの論理ポートを設定する論理ポート設定部と、
    経路情報に基づいてマルチキャストパケットの出力先となる出力ポートを特定し、該出力ポートに前記論理ポートが含まれる場合に、該論理ポートを構成する物理ポートを備える全ての前記パケット処理部を、前記マルチキャストパケットの配布先として設定する配布先設定部と、
    前記配布先設定部によって設定された前記パケット処理部に対して、前記マルチキャストパケットを、前記物理ポートを介した前記外部装置からの入力に応じて、配布する配布部と、
    前記経路情報に基づいて前記マルチキャストパケットの出力先となる出力ポートを特定し、該出力ポートに前記論理ポートが含まれる場合に、該論理ポートを構成する複数の物理ポートの中から、前記マルチキャストパケットを出力する物理ポートを所定の選択処理によって選択し、該選択された物理ポートを備える前記パケット処理部に対して、前記論理ポートを前記マルチキャストパケットの出力ポートとして設定する出力ポート設定部と
    を備え、
    前記各パケット処理部は、前記配布部から前記マルチキャストパケットを受信した場合、前記出力ポート設定部によって出力ポートとして設定された前記論理ポートを構成する複数の物理ポートの中から、前記マルチキャストパケットを出力する物理ポートを前記所定の選択処理によって選択し、該選択された物理ポートから前記マルチキャストパケットを出力する
    ネットワーク中継装置。
  4. 請求項1から請求項3のいずれか一項に記載のネットワーク中継装置であって、
    前記所定の選択処理は、前記経路情報から一意に定まる情報に基づいて、前記論理ポートを構成する複数の物理ポートの中から、前記マルチキャストパケットを出力する物理ポートを選択する処理である
    ネットワーク中継装置。
  5. 請求項4に記載のネットワーク中継装置であって、
    前記所定の選択処理は、前記経路情報から一意に定まる情報を用いた所定のハッシュ関数によってハッシュ値を求め、該ハッシュ値に基づいて、前記論理ポートを構成する複数の物理ポートの中から、前記マルチキャストパケットを出力する物理ポートを選択する処理である
    ネットワーク中継装置。
  6. 請求項4または請求項5に記載のネットワーク中継装置であって、
    前記経路情報から一意に定まる情報は、送信元アドレス情報及び宛先アドレス情報である
    ネットワーク中継装置。
JP2009217206A 2009-09-18 2009-09-18 ネットワーク中継装置 Active JP5374290B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009217206A JP5374290B2 (ja) 2009-09-18 2009-09-18 ネットワーク中継装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009217206A JP5374290B2 (ja) 2009-09-18 2009-09-18 ネットワーク中継装置

Publications (2)

Publication Number Publication Date
JP2011066792A JP2011066792A (ja) 2011-03-31
JP5374290B2 true JP5374290B2 (ja) 2013-12-25

Family

ID=43952524

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009217206A Active JP5374290B2 (ja) 2009-09-18 2009-09-18 ネットワーク中継装置

Country Status (1)

Country Link
JP (1) JP5374290B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5369069B2 (ja) * 2010-09-02 2013-12-18 アラクサラネットワークス株式会社 パケット中継装置,パケット中継方法,及びコンピュータプログラム
WO2015040690A1 (ja) * 2013-09-18 2015-03-26 富士通株式会社 情報処理装置及び方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005020492A (ja) * 2003-06-27 2005-01-20 Hitachi Ltd ネットワーク中継装置
US7697525B2 (en) * 2006-12-21 2010-04-13 Corrigent Systems Ltd. Forwarding multicast traffic over link aggregation ports

Also Published As

Publication number Publication date
JP2011066792A (ja) 2011-03-31

Similar Documents

Publication Publication Date Title
CN107819695B (zh) 一种基于sdn的分布式控制负载均衡系统与方法
JP6369698B2 (ja) トラフィック切り替え方法、デバイス、およびシステム
US10924409B2 (en) Method for implementing load balancing, apparatus, and network system
EP2850517B1 (en) System and method for routing traffic between distinct infiniband subnets based on source routing
JP4908969B2 (ja) パケットを中継する装置および方法
WO2016045411A1 (zh) 一种片上网络系统,及片上网络通信链路的建立方法
EP2523402A1 (en) Communication system, control apparatus, processing rule setting method, packet transmitting method and program
JP2015136168A (ja) ネットワークにおけるメッセージおよび計算オーバーヘッドの軽減
JP6323547B2 (ja) 通信システム、制御装置、通信制御方法、および、プログラム
CN101820395A (zh) 基于mpls的路由信息配置和私网标签添加方法及装置
CN111147372B (zh) 下行报文发送、转发方法和装置
JP2013546269A (ja) ルーティング情報更新の優先順位付け
WO2015079616A1 (ja) 通信システム、通信方法、ネットワーク情報結合装置およびネットワーク情報結合プログラム
JP5374290B2 (ja) ネットワーク中継装置
CN101714940A (zh) 路径计算及建立方法、路径计算单元和节点、网络
JP6379702B2 (ja) データ転送システム、データ転送サーバ、データ転送方法、および、プログラム
JP2013198077A (ja) ネットワーク及びブリッジ
Ren et al. Flowtable-free routing for data center networks: A software-defined approach
CN101577680B (zh) 一种隧道路由信息的更新方法、装置及系统
JP2016103697A (ja) ネットワークシステム、制御装置、通信装置、通信装置の制御方法及びプログラム
US10476805B2 (en) Network communication method, device, and internet system
JP6292292B2 (ja) 通信ノード、制御装置、通信システム、通信方法及びプログラム
CN113852553B (zh) 流量调度方法及系统、sdn控制器
WO2012155351A1 (zh) 一种生成隧道转发表项的方法和网络设备
JP4879728B2 (ja) 検索装置およびデータ処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20111124

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120926

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121002

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121203

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130528

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130819

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20130827

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130917

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130920

R150 Certificate of patent or registration of utility model

Ref document number: 5374290

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250