JP2008048010A - パケットを中継する装置および方法 - Google Patents

パケットを中継する装置および方法 Download PDF

Info

Publication number
JP2008048010A
JP2008048010A JP2006219455A JP2006219455A JP2008048010A JP 2008048010 A JP2008048010 A JP 2008048010A JP 2006219455 A JP2006219455 A JP 2006219455A JP 2006219455 A JP2006219455 A JP 2006219455A JP 2008048010 A JP2008048010 A JP 2008048010A
Authority
JP
Japan
Prior art keywords
relay device
network relay
port
ports
arithmetic expression
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.)
Granted
Application number
JP2006219455A
Other languages
English (en)
Other versions
JP5086585B2 (ja
Inventor
Daiki Yano
大機 矢野
Kazuo Sukai
和雄 須貝
Shinichi Akaha
真一 赤羽
Kosei Nara
孝生 奈良
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 JP2006219455A priority Critical patent/JP5086585B2/ja
Priority to US11/830,903 priority patent/US7969880B2/en
Publication of JP2008048010A publication Critical patent/JP2008048010A/ja
Priority to US13/169,363 priority patent/US8625423B2/en
Application granted granted Critical
Publication of JP5086585B2 publication Critical patent/JP5086585B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/24Multipath
    • H04L45/245Link aggregation, e.g. trunking
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Abstract

【課題】通信負荷の偏りを緩和することができる技術を提供することを目的とする。
【解決手段】受信されたパケットに関連付けられた宛先情報および送信元情報の少なくとも一方の情報を含む種情報を用いた演算処理を実行する。そして、複数の物理ポートの中の宛先情報によって特定される宛先に到達し得る複数の候補ポートの中から、受信パケットを送信すべき物理ポートを、演算結果に基づいて選択する。また、候補ポートを含む1以上の物理ポートから構成されるポートグループであって、互いに異なる候補ポートを含む複数のポートグループの中から、受信パケットの送信に利用すべきポートグループを、演算結果に基づいて選択してもよい。ここで、演算処理で利用される演算式は変更可能である。
【選択図】図2

Description

本発明は、パケットを中継する装置および方法に関するものである。
従来より、ネットワークの冗長構成として、IEEE802.3adで標準化されているリンクアグリゲーション(Link Aggregation)が知られている。また、複数のネットワーク中継装置(例えば、スイッチ装置、あるいは、ルータ装置)を用いることによって冗長な通信経路を構築する方法も知られている。ここで、通信負荷を分散させる場合に、送信すべきフレームのヘッダ等の情報を関数を用いて出力値に変換し、出力値に基づいて複数のリンクのうちの一つのリンクに対応する送信キューを選択する方法が知られている(例えば、特許文献1参照)。
特開2005−252758号公報 特開2006−5437号公報
ところが、ネットワークシステムの利用状況としては、種々の状況があり得る。その結果、通信負荷の偏りが緩和されない場合があった。特に、複数のネットワーク中継装置が直接に接続される場合には、前段のネットワーク中継装置における通信負荷の偏りと、後段のネットワーク中継装置における通信負荷の偏りと、が積み重なって通信負荷の偏りが大きくなる場合があった。
本発明は、上記の課題を解決するためになされたものであり、通信負荷の偏りを緩和することができる技術を提供することを目的とする。
上述の課題の少なくとも一部を解決するため、本発明の第1の態様に係るネットワーク中継装置は、パケットを中継するネットワーク中継装置であって、回線との接続のための複数の物理ポートを有するとともに、前記回線を介してパケットを送受信するインターフェース部と、受信されたパケットに関連付けられた宛先情報および送信元情報の少なくとも一方の情報を含む種情報を用いた演算処理を実行する演算部と、前記複数の物理ポートの中の前記宛先情報によって特定される宛先に到達し得る複数の候補ポートの中から、前記受信パケットを送信すべき物理ポートを、前記演算結果に基づいて選択する宛先検索部と、前記演算処理で利用される演算式を変更する変更部と、を備える。
このネットワーク中継装置によれば、演算式を変更することによって、選択される物理ポートの偏りの傾向を変えることができる。その結果、通信負荷の偏りを緩和することができる。
上記ネットワーク中継装置において、前記宛先検索部は、複数の物理ポートを集約して仮想的な1つのポートとして扱うリンクアグリゲーション機能を有し、前記複数の候補ポートは、前記リンクアグリゲーション機能によって構築された仮想的な1つのポートに含まれることとしてもよい。
この構成によれば、仮想的な1つのポートに含まれる複数の物理ポートの中で通信負荷が偏ることを抑制することができる。
上記ネットワーク中継装置において、前記宛先検索部は、前記複数の物理ポートのそれぞれに選択の優先順位を設定し、前記複数の候補ポートのそれぞれの優先順位は同じであることとしてもよい。
この構成によれば、優先順位が同じである複数の物理ポートの中で通信負荷が偏ることを抑制することができる。
また、この発明による第2の態様に係るネットワーク中継装置は、パケットを中継するネットワーク中継装置であって、回線との接続のための複数の物理ポートを有するとともに、前記回線を介してパケットを送受信するインターフェース部と、受信されたパケットに関連付けられた宛先情報および送信元情報の少なくとも一方の情報を含む種情報を用いた演算処理を実行する演算部と、前記宛先情報によって特定される宛先に到達し得る候補ポートを含む1以上の物理ポートから構成されるポートグループであって、互いに異なる候補ポートを含む複数のポートグループの中から、前記受信パケットの送信に利用すべきポートグループを、前記演算結果に基づいて選択する宛先検索部と、前記演算処理で利用される演算式を変更する変更部と、を備える。
このネットワーク中継装置によれば、演算式を変更することによって、選択されるポートグループの偏りの傾向を変えることができる。その結果、通信負荷の偏りを緩和することができる。
上記ネットワーク中継装置において、前記ポートグループは、前記複数の物理ポートによって構成されるネットワークを仮想的な部分ネットワークに分割するための仮想LANを構成するグループであることとしてもよい。
この構成によれば、パケット送信のために選択される仮想LANの偏りの傾向を変えることができる。その結果、通信負荷の偏りを緩和することができる。
上記第1および第2の態様に係るネットワーク中継装置において、前記演算式はハッシュ関数であることが好ましい。
この構成によれば、選択される物理ポートが特定の物理ポートに偏ることを抑制することが容易となる。
上記第1および第2の態様に係る各ネットワーク中継装置において、前記変更部は、ユーザの指示に基づいて、前記演算式を変更することとしてもよい。
この構成によれば、通信負荷分散にユーザの意図を反映させることが可能となる。
上記第1および第2の態様に係る各ネットワーク中継装置において、前記変更部は、前記ネットワーク中継装置に接続された別のネットワーク中継装置との通信によって前記別のネットワーク中継装置で利用される演算式を特定し、前記演算処理で利用される演算式を、前記特定された演算式とは異なる演算式に自動的に変更することとしてもよい。
この構成によれば、このネットワーク中継装置における通信負荷の偏りの傾向を、別のネットワーク中継装置における通信負荷の偏りの傾向と、異ならせることが可能である。その結果、このネットワーク中継装置における通信負荷の偏りが別のネットワーク中継装置における通信負荷の偏りと積み重なって通信負荷の偏りが大きくなることを抑制できる。
なお、本発明は、種々の形態で実現することが可能であり、例えば、ネットワーク中継方法および装置、それらの方法または装置の機能を実現するためのコンピュータプログラム、そのコンピュータプログラムを記録した記録媒体、そのコンピュータプログラムを含み搬送波内に具現化されたデータ信号、等の形態で実現することができる。
次に、この発明の実施の形態を実施例に基づいて以下の順序で説明する。
A.第1実施例:
B.第2実施例:
C.第3実施例:
D.第4実施例:
E.変形例:
A.第1実施例:
図1は、本発明の一実施例としてのスイッチ装置を用いたネットワークシステムを示す説明図である。このネットワークシステム900は、6つのスイッチ装置SW10〜SW60を有している。第1実施例では、これらのスイッチ装置SW10〜SW60は、いずれも、いわゆる「レイヤ2スイッチ」として機能している。
第3スイッチ装置SW30には、3つのスイッチ装置SW20、SW40、SW60が接続されている。第3スイッチ装置SW30と、各スイッチ装置SW20、SW40、SW60とは、それぞれ、2本の回線によって接続されている。また、第1スイッチ装置SW10と第2スイッチ装置SW20とは、1本の回線L121によって接続され、第5スイッチ装置SW50と第6スイッチ装置SW60とは、1本の回線L561によって接続されている。
各スイッチ装置SW10〜SW60は、回線を接続するための物理ポートを有している。図1では、物理ポートを識別する物理ポート番号が、記号「#」と番号との組み合わせによって示されている。例えば、第1スイッチ装置SW10と第2スイッチ装置SW20とを接続する回線L121は、第1スイッチ装置SW10の第1物理ポート(#1)と、第2スイッチ装置SW20の第3物理ポート(#3)とに、接続されている。
ところで、第2スイッチ装置SW20と第3スイッチ装置SW30とは、2本の回線L231、L232によって接続されている。これらの2本の回線L231、L232は、リンクアグリゲーション機能によって、仮想的な1本の回線として利用される。リンクアグリゲーション機能とは、複数の物理ポートを集約して仮想的な1つのポート(「論理ポート」とも呼ばれる)として利用する機能である。このリンクアグリゲーション機能は、帯域の拡大や冗長性の確保を実現するために利用される。図1の例では、第2スイッチ装置SW20の2つの物理ポート#1、#2が、リンクアグリゲーション機能によって、1つの論理ポートとして利用される。そして、これらのポート#1、#2の接続相手である第3スイッチ装置SW30の2つの物理ポート#3、#4も、リンクアグリゲーション機能によって、1つの論理ポートとして利用される。
同様に、第3スイッチ装置SW30と第6スイッチ装置SW60とを接続する2本の回線L631、L632も、リンクアグリゲーション機能によって仮想的な1本の回線として利用される。そして、第3スイッチ装置SW30と第4スイッチ装置SW40とを接続する2本の回線L341、L342も、リンクアグリゲーション機能によって仮想的な1本の回線として利用される。
以下、リンクアグリゲーション機能によって構成される論理ポート、および、いずれの論理ポートにも含まれていない物理ポート(以下「単独物理ポート」とも呼ぶ)、のそれぞれのことを「回線ポート」とも呼ぶ。すなわち、スイッチ装置SWにおいては、回線ポートは、独立な1本の回線(仮想的な1本の回線を含む)が接続されるポートとして利用される。
図2は、スイッチ装置SWの構成を示す説明図である。第1実施例では、各スイッチ装置SW10〜SW60(図1)として、同じスイッチ装置SWを用いている。このスイッチ装置SWは、パケット受信回路/送信回路100(以下、「インターフェース回路100」とも呼ぶ)と、ヘッダ処理部200と、メモリ300と、を有している。これらの構成要素100、200、300は、図示しないバスによって接続されている。
インターフェース回路100は、パケットの受信および送信を行う電子回路であり、回線を接続するための複数の物理ポートを有している。図2の例では、3つの物理ポート#1〜#3が示されている。そして、2つのポート#1、#2が、リンクアグリゲーション機能によって、1つの論理ポートとして利用されている。
ヘッダ処理部200は、受信されたパケットを送信すべき物理ポート(以下「出力物理ポート」とも呼ぶ)を決定する処理(「宛先検索処理」とも呼ぶ)を実行する。ヘッダ処理部200は、後述する種々の機能を実現するために設計されたASIC(Application Specific Integrated Circuit:特定用途向け集積回路)である。また、このヘッダ処理部200は、宛先検索部210と、ハッシュ値生成部220と、設定値制御部230と、を有している。
メモリ300は、宛先検索処理に利用される種々のデータを格納する。図2の例では、メモリ300は、リンクアグリゲーションテーブル400とフィルタテーブル410とを格納している。図3(A)は、リンクアグリゲーションテーブル400の一例を示す説明図である。リンクアグリゲーションテーブル400は、論理ポートを定義するテーブルである。リンクアグリゲーションテーブル400は、論理ポートに固有なリンクアグリゲーション番号(「LA番号」あるいは「テーブル番号」とも呼ぶ)と、その論理ポートに含まれる物理ポートの総数と、その論理ポートに含まれる物理ポートと、の対応関係を定めている。図3(A)に示す例では、第1物理ポート#1と第2物理ポート#2との2つの物理ポートの全体が、仮想的な1つのポート(論理ポート)として利用される。そして、その論理ポートのLA番号が「0」に設定されている。
なお、1つの論理ポートに含まれる複数の物理ポートのそれぞれには、各物理ポートを特定するための選択番号が付される。選択番号は0から始まる整数値である。図3(A)の例では、第1物理ポート#1の選択番号が「0」に設定され、第2物理ポート#2の選択番号が「1」に設定されている。この選択番号は、後述する宛先検索処理で利用される。
宛先検索部210は、リンクアグリゲーションテーブル400の各項目の値を、ユーザの指示に従って設定する。ユーザの指示は、例えば、スイッチ装置SWの操作パネル(図示せず)、あるいは、スイッチ装置SWに接続された管理端末(図示せず)を介して入力され得る。
なお、1つの論理ポートに含まれる物理ポートの総数としては、「2」に限らず、任意の数を採用可能である。また、1台のスイッチ装置SWで利用される論理ポートの総数としては、「1」に限らず、任意の数を採用可能である。
図3(B)は、フィルタテーブル410の一例を示す説明図である。フィルタテーブル410は、VLAN−IDと、回線ポートと、その回線ポートに接続されたネットワーク機器のレイヤ2のアドレス(MACアドレス)と、の対応関係を格納する。
VLAN−IDは、VLAN(仮想LAN(仮想ローカルエリアネットワーク))の識別番号である。VLANは、レイヤ2レベルで互いに通信可能な1以上の回線ポートで構成されるグループを表している。すなわち、第1実施例では、宛先検索部210は、異なるVLANの間ではパケットを中継せずに、同じVLANに属している回線ポートの間でのみパケットを中継する。このように、複数の回線ポートを複数のVLANに分割すれば、意図しない回線ポート(他のVLAN)に通信負荷が広がることを抑制できる。すなわち、複数の物理ポートによって構成されるネットワークを仮想的な部分ネットワーク(「ネットワークセグメント」とも呼ばれる)に分割することができる。
図3(B)の例では、第0論理ポート(LA#0)および第3物理ポート(Port#3)のそれぞれのVLAN−IDが「291」に設定されている。宛先検索部210は、回線ポートとVLAN−IDとの対応関係を、リンクアグリゲーションテーブル400と同様に、ユーザの指示に従って設定する。なお、1台のスイッチ装置で利用されるVLANの総数としては「1」に限らず任意の数を採用可能である。また、VLAN−IDとしては、「291」に限らず任意の番号を採用可能である。
また、このフィルタテーブル410の回線ポートとMACアドレスとの対応関係は、宛先検索部210によって自動的に設定される。具体的には、宛先検索部210は、スイッチ装置SWによって受信されたパケットのヘッダ情報を参照することによって、送信元MACアドレスを取得する。そして、宛先検索部210は、送信元MACアドレスと、そのパケットを受信した回線ポートと、の対応関係をフィルタテーブル410に登録する。パケットを受信した物理ポートが単独物理ポートである場合には、物理ポート番号が登録される。パケットを受信した物理ポートが論理ポートに含まれている場合には、その論理ポートのLA番号が登録される。図3(B)の例では、第0論理ポート(LA#0)と第1アドレス(address1)との対応関係と、第3物理ポート(Port#3)と第2アドレス(address2)との対応関係と、が登録されている。
なお、1つの回線ポートには、複数のネットワーク機器が接続され得る。この場合には、1つの回線ポートに関連して複数のアドレスが登録され得る。また、フィルタテーブル410には、さらに、登録されたデータの有効期限を定める期限情報を登録してもよい。有効期限の過ぎたデータをフィルタテーブル410から削除すれば、ネットワーク構成の変化に応じてフィルタテーブル410を更新することが容易となる。また、メモリ300の利用効率を向上させることもできる。このような有効期限としては、登録されてから所定時間の経過時を採用可能である。なお、論理ポートに含まれる物理ポートに関しても、LA番号の代わりに物理ポート番号を登録してもよい。
図4は、宛先検索処理の手順を示すフローチャートである。最初のステップS100では、宛先検索部210(図2)は、受信パケットのヘッダ情報と、フィルタテーブル410(図2、図3(B))とを参照することによって、受信パケットを送信すべき回線ポートを検索する。具体的には、宛先検索部210は、ヘッダ情報から宛先MACアドレスを取得し、その宛先MACアドレスの属する回線ポートをフィルタテーブル410から検索する。この際、パケットを受信した回線ポートと同じVLANに含まれる回線ポートの中から回線ポートが検索される。すなわち、異なるVLANからは回線ポートは検索されない。
次のステップS110では、宛先検索部210は、検索された回線ポートが論理ポート(リンクアグリゲーションポート)と通常ポート(単独物理ポート)とのいずれであるかを判定する。検索された回線ポートが通常のポート(単独物理ポート)である場合には、宛先検索部210は、その物理ポートを出力物理ポートとして採用する(ステップS130)。
検索された回線ポートが論理ポートである場合には、次のステップS120で、宛先検索部210は、その論理ポートに含まれる複数の物理ポートの中から1つの物理ポートを選択する。そして、選択された物理ポートが出力物理ポートとして採用される(S130)。物理ポートの選択には、ハッシュ値生成部220に(図2)よって生成されたハッシュ値が利用される。ハッシュ値生成部220は、受信されたパケットのヘッダ情報、および、インターフェース回路100によって提供される制御情報に基づいて、ハッシュ値を算出する。なお、ハッシュ値を利用した物理ポートの選択の詳細については後述する。
出力物理ポートが決定されたら、宛先検索部210(図2)は、出力物理ポートをインターフェース回路100に通知する。インターフェース回路100は、通知された出力物理ポートからパケットを送信する。
なお、検索された回線ポートと、そのパケットを受信した回線ポートとが同じである場合には、パケットの中継が不要であるので、宛先検索部210はパケットの送信を中止する。また、フィルタテーブル410から回線ポートが検索されなかった場合には、宛先検索部210は、そのパケットを受信した回線ポート以外の全ての回線ポートを、パケットを送信すべき回線ポートとして選択する(「フラッディング」とも呼ばれる)。ただし、この場合には、パケットを受信した回線ポートと同じVLANに含まれる回線ポートのみが選択される。
図5は、ハッシュ値生成部220(図2)の内部構成を示す説明図である。ハッシュ値生成部220は、計算部222と設定値蓄積部(メモリ)224とを有している。
設定値蓄積部224は、設定値制御部230(図2)によって設定された8つの設定値SV1〜SV8を格納する。8つの設定値SV1〜SV8のそれぞれは、8ビットのデータであり、ハッシュ値の算出に利用される。以下、これらの設定値のことを「ハッシュ設定値」とも呼ぶ。設定値制御部230は、8つの設定値SV1〜SV8のそれぞれを、ユーザの指示に従って設定する。ユーザの指示は、例えば、スイッチ装置SWの操作パネル(図示せず)、あるいは、スイッチ装置SWに接続された管理端末(図示せず)を介して入力され得る。また、この代わりに、設定値制御部230が自動的に各設定値SV1〜SV8を設定してもよい。例えば、設定値制御部230は、ランダムにデータを生成し、得られたデータを各設定値SV1〜SV8として利用してもよい。
計算部222には、インターフェース回路100から制御情報520とヘッダ情報521とが供給される。また、計算部222には、設定値蓄積部224から8つの設定値SV1〜SV8が供給される。計算部222は、供給されたデータを用いてハッシュ値を算出し、算出されたハッシュ値を宛先検索部210へ供給する。
図6(A)は、制御情報520を示す説明図である。制御情報520は、インターフェース回路100によって受信された各パケット毎に提供される。すなわち、制御情報520は、パケットに関連付けられた情報である。制御情報520は、受信VLAN500と、内部パケット長501と、入力回線番号502と、入力L2ヘッダ長503と、を含んでいる。受信VLAN500は、パケットを受信した回線ポートが属するVLAN(仮想LAN)の番号(図3(B):VLAN−ID)を示している。内部パケット長501は、パケットのサイズを示している。入力回線番号502は、パケットを受信した物理ポートの番号を示している。入力L2ヘッダ長503は、後述するL2ヘッダ部522のサイズを示している。これらのデータは、通常は、パケットの整合性のチェック等に適宜利用される(詳細は省略)。
図6(B)は、ヘッダ情報521を示す説明図である。ヘッダ情報521は、インターフェース回路100によって受信されたパケットに含まれるヘッダである。ヘッダ情報521は、L2(Layer 2)ヘッダ部522と、L3(Layer 3)ヘッダ部523と、L4(Layer 4)ヘッダ部524と、を含んでいる。L2ヘッダ部522は、送信元MACアドレス504と宛先MACアドレス505とを含んでいる。L3ヘッダ部523は、送信元IPアドレス506と宛先IPアドレス507とを含んでいる。L4ヘッダ部524は、送信元ポート508と宛先ポート509とを含んでいる。各ポート508、509は、いわゆるレイヤ4のポート(以下「L4ポート」とも呼ぶ)を示すデータであり、スイッチ装置SWの回線ポートとは無関係である。
図7は、計算部222の内部構成を示す説明図である。計算部222は、4つの蓄積部(バッファメモリ)602〜608と、加算処理部610と、8つの積−和処理部631〜638と、を有している。
図8は、計算部222によるハッシュ値の算出の手順を示すフローチャートである。また、図9は、ハッシュ値の算出の具体例を示す説明図である。最初のステップS200では、4つの蓄積部602〜608(図7)が、制御情報520と、L2ヘッダ部522と、L3ヘッダ部523と、L4ヘッダ部524と、をそれぞれ一時的に格納する。図9のステップS200のフィールドには、格納されたデータの内の演算に利用される対象データの具体的な値が示されている。第1実施例では、受信VLANと、送信元および宛先のMACアドレス、送信元および宛先のIPアドレス、送信元および宛先のL4ポートが演算に利用される。
なお、図9において、値の先頭に付された符号「0x」は、その値が16進法で表されていることを示している。同様に、値の先頭に付された符号「0b」は、その値が2進法で表されていることを示している。以下の説明、及び、他の図面においても、これらの符号「0x」「0b」の意味は同じである。
次のステップS210では、加算処理部610(図7)が、各蓄積部602〜608に格納された対象データを加算することによって8ビットの加算結果を出力する。この際、加算処理部610は、まず、全ての対象データを8ビット毎に区切る。そして、加算処理部610は、8ビットのデータの全てを加算する。この際、桁上げは省略される。これにより、8ビットの加算結果が得られる。例えば、図9の例では、受信VLAN(0x123)は、2つの8ビットデータ「0x01」および「0x23」に分割される。他のデータについても、同様に、8ビットデータに分割される。そして、得られた8ビットデータの全てが加算される。その結果、8ビットの加算結果RS10が算出される。
次のステップS220では、8つの積−和処理部631〜638(図7)が、それぞれ、8ビットの加算結果と設定値蓄積部224から供給された8ビットの設定値とを用いた論理積演算を実行する。そして、次のステップS230では、8つの積−和処理部631〜638が、それぞれ、論理積演算結果の各ビットの排他的論理和を算出する。この際、8つの設定値SV1〜SV8は、8つの積−和処理部631〜638によって、それぞれ利用される。例えば、第1設定値SV1は第1積−和処理部631によって利用され、第2設定値SV2は第2積−和処理部632に利用される。
第1積−和処理部631は、まず、第1設定値SV1と加算結果RS10とから論理積演算結果RS21を算出する(図9)。この際、各ビット毎に論理積が算出される。図7に示すように、第1積−和処理部631は、7つの論理積処理部620〜627を有している。各論理積処理部620〜627は、互いに異なるビット位置の1ビットの論理積演算を実行する。これらの論理積処理部620〜627の演算結果(1ビット)を合わせたものが、第1論理積結果RS21(8ビット)である。なお、図9のステップS220のフィールドにおける演算子「|」は、論理積を意味している。
次のステップS230では、第1積−和処理部631は、第1論理積結果RS21の各ビットの排他的論理和を算出する。図7に示すように第1積−和処理部631は、排他的論理和処理部629を有している。排他的論理和処理部629は、各論理積処理部620〜627から供給された8つの演算結果(1ビット)を用いて、排他的論理和演算を実行する。その結果、1ビットの第1排他的論理和結果RS31(図9:S230)が算出される。なお、図9のステップS230のフィールドにおける演算子「^」は、排他的論理和を意味している。
他の積−和処理部632〜638(図7)の内部構成、および、動作も、第1積−和処理部631と同じである。すなわち、ステップS220では、各積−和処理部631〜638によって、論理積演算結果RS21〜RS28が、それぞれ算出される。ステップS230では、各積−和処理部631〜638によって、排他的論理和演算結果RS31〜RS38が、それぞれ、算出される。
計算部222は、8つの排他的論理和結果RS31〜RS38(1ビット)を、まとめて、1つの算出結果RS40(8ビット)として扱う。そして、計算部222は、この8ビットの算出結果RS40を、ハッシュ値として宛先検索部210へ出力する。
図10(A)は、出力物理ポートとハッシュ値との対応関係を定める関係式である。宛先検索部210は、この関係式に従って出力物理ポートを選択する(図4:ステップS120)。具体的には、宛先検索部210は、まず、この関係式に従い、「ハッシュ値*物理ポート総数」を256で割ることによって商を算出する。「256」は、ハッシュ値の値域の大きさである。また商は、リンクアグリゲーションテーブル400(図3(A))の選択番号に相当する。商が「0」の場合には、選択番号が「0」である物理ポートが選択される。商が「1」の場合には、選択番号が「1」である物理ポートが選択される。商が「2」以上の場合も同様である。
図10(B)は、ハッシュ値と選択番号との関係を示す説明図である。図10(B)には、論理ポートに含まれる物理ポートの総数が2の場合の例が示されている。この場合には、「ハッシュ値*ポート総数」は、0〜510の範囲の値である。従って、商は、0と1とのいずれかである。具体的には、ハッシュ値が0〜127の範囲内である場合には、選択番号が0である。ハッシュ値が128〜255の範囲内である場合には、選択番号が1である。
このように、ハッシュ値に応じて、論理ポートに含まれる複数の物理ポートの中から1つの出力物理ポートが選択される。ハッシュ値は、ハッシュ値の算出に利用されるデータ(種情報)に応じて、種々の値となり得る。また、第1実施例では、ハッシュ値が、送信元を表すデータ(MACアドレス、IPアドレス、L4ポート、受信VLAN)と、宛先を表すデータ(MACアドレス、IPアドレス、L4ポート)とに基づいて算出される。従って、送信元と宛先との組み合わせに応じて、通信負荷(出力物理ポート)を分散させることができる。これは、論理ポートに含まれる物理ポートの総数が3以上である場合も同様である。
図11は、ネットワークシステム900におけるパケット中継の比較例を示す説明図である。ネットワークシステム900の利用状況によっては、出力物理ポートが一部の物理ポートに偏る場合がある。この比較例は、このような場合を示している。
図11には、第6スイッチ装置SW60から第3スイッチ装置SW30を介して第4スイッチ装置SW40へ、第1パケットP1が中継される様子が示されている。また、図11には、第2スイッチ装置SW20から第3スイッチ装置SW30を介して第4スイッチ装置SW40へ、第2パケットP2が中継される様子が示されている。このように、このネットワーク構成は、第3スイッチ装置SW30の前に第2スイッチ装置SW20および第6スイッチ装置SW60が接続された多段構成である。
図11には、第3スイッチ装置SW30に設定された8つの設定値SV1〜SV8(以下、これらの設定値のセットを「第1設定値セットSS1」と呼ぶ)が示されている。また、図11には、第1パケットP1に関する対象データ(制御情報、および、ヘッダ情報)が示されている。第3スイッチ装置SW30は、これらのデータに基づいてハッシュ値を算出する。そして、第3スイッチ装置SW30は、算出されたハッシュ値に基づいて、第1物理ポート#1と第2物理ポート#2との中から、第1パケットP1を送信する物理ポートを選択する。図11の例では、第1パケットP1に関するハッシュ値が「0x07」であり、第1物理ポート#1が選択されている。
第2パケットP2についても同様に出力物理ポートが選択される。図11には、第2パケットP2に関する対象データ(制御情報、および、ヘッダ情報)が示されている。また、図11の例では、第2パケットP2に関するハッシュ値が「0x45」であり、第1物理ポート#1が選択されている。
なお、この比較例では、第6スイッチ装置SW60に設定されたハッシュ設定値も、第1設定値セットSS1と同じである。従って、第6スイッチ装置SW60は、第3スイッチ装置SW30と同様に、第1パケットP1の出力物理ポートとして第1物理ポート#1を選択する。さらに、第2スイッチ装置SW20に設定されたハッシュ設定値も、第1設定値セットSS1と同じである。従って、第2スイッチ装置SW20は、第3スイッチ装置SW30と同様に、第2パケットP2の出力物理ポートとして第1物理ポート#1を選択する。
ここで、第6スイッチ装置SW60から第3スイッチ装置SW30を介して第4スイッチ装置SW40へ、種々のパケットが中継される場合について検討する。第6スイッチ装置SW60からパケットが送信される際に、第2物理ポート#2が選択される割合よりも第1物理ポート#1が選択される割合が多いと仮定する。このような出力物理ポート(トラフィック)の偏りは、ネットワーク機器のアドレス設定等の種々の原因によって起こり得る。すると、これらのパケットが第3スイッチ装置SW30から送信される際にも、第2物理ポート#2が選択される割合よりも第1物理ポート#1が選択される割合が多くなる。これは、第6スイッチ装置SW60および第3スイッチ装置SW30が、同じ第1設定値セットSS1を利用しているからである。
同様に、第2スイッチ装置SW20から第3スイッチ装置SW30を介して第4スイッチ装置SW40へ、種々のパケットが中継される場合について検討する。第2スイッチ装置SW20からパケットが送信される際に、第2物理ポート#2が選択される割合よりも第1物理ポート#1が選択される割合が多いと仮定する。すると、これらのパケットが第3スイッチ装置SW30から送信される際にも、第2物理ポート#2が選択される割合よりも第1物理ポート#1が選択される割合が多くなる。これは、第2スイッチ装置SW20と第3スイッチ装置SW30とが、同じ第1設定値セットSS1を利用しているからである。
このように、ネットワークシステム900では、3つのスイッチ装置SW20、SW30、SW60がツリー状に接続されている。その結果、後段の第3スイッチ装置SW30における出力物理ポートの偏りは、前段の2つのスイッチ装置SW20、SW60における出力物理ポートの偏りを重ね合わせたものとなる。ここで、比較例では、3つのスイッチ装置SW20、SW30、SW60によって同じハッシュ設定値(すなわち、同じ演算式)が利用されている。その結果、3つのスイッチ装置SW20、SW30、SW60における出力物理ポートの偏りの傾向は同じである。従って、同じ傾向の偏りが積み重ねられた結果である後段の第3スイッチ装置SW30における出力物理ポートの偏り(トラフィックの偏り)は、大きくなる。このような偏りは、スイッチ装置SWの段数が多いほど、大きくなりやすい。
図12は、ネットワークシステム900におけるパケット中継の実施例を示す説明図である。図11に示した比較例との際は、第3スイッチ装置SW30によって利用される第2設定値セットSS2が、第1設定値セットSS1と異なっている点だけである。他の構成は、図11の比較例と同じである。第2スイッチ装置SW20、および、第6スイッチ装置SW60は、上述の第1設定値セットSS1を利用する。
図12には、第2設定値セットSS2の具体例が示されている。この第2設定値セットSS2は、図11に示す第1設定値セットSS1と異なっている。より厳密に言えば、第2設定値セットSS2の少なくとも一部が、第1設定値セットSS1と異なっている。第1設定値セットSS1は、2つのビットが1に設定された第8設定値SV8を含んでいるが、第2設定値セットSS2には、このような設定値が含まれていない。
図12には、2つのパケットP1、P2のそれぞれに関する、ハッシュ値および出力物理ポートが示されている。これらのハッシュ値および出力物理ポートは、第3スイッチ装置SW30によって決定されたものである。2つのパケットP1、P2は、図11に示した2つのパケットP1、P2とそれぞれ同じである。ところが、比較例とは異なる演算式(第2設定値セットSS2)が利用されるので、比較例とは異なるハッシュ値が算出される。図12の例では、第1パケットP1に関するハッシュ値は「0xE0」であり、第2パケットP2に関するハッシュ値は「0x22」である。その結果、第1パケットP1に関しては、第2物理ポート#2が選択され、第2パケットP2に関しては、第1物理ポート#1が選択されている。
以上のように、ハッシュ設定値の少なくとも一部が異なっていれば、すなわち、演算式が異なっていれば、同じパケットに対して異なるハッシュ値が算出され得る。その結果、出力物理ポートの偏りの傾向を変えることが可能となる。例えば、図11の比較例では、第3スイッチ装置SW30では、2つのパケットP1、P2のそれぞれに対して同じ第1物理ポートが選択されたが、図12の実施例では、2つのパケットP1、P2のそれぞれに対して互いに異なる物理ポートが選択されている。このように、出力物理ポートに偏りが生じ得る場合であっても、演算式(ハッシュ設定値セット)を変えるだけで、容易に、出力物理ポートの偏りを緩和することが可能となる。ユーザは、出力物理ポートの偏りが大きい場合に、ハッシュ設定値を変更する指示を設定値制御部230(図2)に入力すればよい。
また、ネットワークシステムの利用状況は、しばしば、変更される。例えば、新しいネットワーク機器(例えば、クライアント装置あるいはサーバ装置)がネットワークに接続される場合がある。また、利用されていたネットワーク機器がネットワークから外される場合がある。ところで、第1実施例では、出力物理ポートの偏りを緩和するために演算式が変えられる。従って、演算式を変えた後にネットワークシステム900の利用状況が変化した場合に出力物理ポートの偏りが増大することが抑制される。
これは、以下のように説明できる。例えば、出力物理ポートの偏りが小さくなるように、演算式を変えずに、演算結果と出力物理ポートとの対応関係を変えると仮定する。この場合には、各物理ポートに対応付けられる演算結果の範囲の大きさが不均等になる。すなわち、通信負荷の小さい物理ポートには、通信負荷を上げるために、広い範囲の演算結果が対応付けられる。逆に、通信負荷の大きな物理ポートには、通信負荷を下げるために、狭い範囲の演算結果が対応付けられる。ここで、ネットワークシステムの利用状況が変化したと仮定する。すると、利用状況が変化した後であるにも拘わらずに、出力物理ポートの選択が、変化前の利用状況に適合する不均等な対応関係に基づいて実行される。その結果、出力物理ポートの偏りが大きくなる可能性が高い。ところが、第1実施例では、演算結果と出力物理ポートとの対応関係を変えずに演算式を変えることによって、演算式を変えた後にネットワークシステム900の利用状況が変化した場合に出力物理ポートの偏りが大きくなることを抑制することができる。
また、図12に示す実施例では、第3スイッチ装置SW30によって利用される演算式(第2設定値セットSS2)が、前段のスイッチ装置SW20、SW60によって利用される演算式(第1設定値セットSS1)と異なっている。従って、後段の第3スイッチ装置SW30における出力物理ポートの偏りの傾向は、前段のスイッチ装置SW20、SW60における出力物理ポートの偏りの傾向とは異なっている。その結果、前段のスイッチ装置SW20、SW60における偏りが後段の第3スイッチ装置SW30における偏りと積み重なることに起因する偏りの過剰な増大を抑制することができる。
ここで、ハッシュ設定値セットの設定、すなわち、演算式の選択(変更)は、ネットワークシステム900の運用開始前に行うことが好ましい。運用開始前に、後段の第3スイッチ装置SW30の演算式を、前段のスイッチ装置SW20、SW60の演算式と異ならせておけば、通信負荷が偏ることを未然に防ぐことが可能となる。例えば、ユーザは、運用開始前に、後段あるいは前段のスイッチ装置に、演算式変更指示を入力すればよい。
なお、第1実施例では、ハッシュ値生成部220(図2)が本発明における「演算部」に相当する。そして、設定値制御部230が本発明における「変更部」に相当する。また、図9のステップS200で挙げられたデータが、「種情報」に相当する。なお、第1実施例では、互いに異なる設定値セットの数と同じ数の演算式が利用可能である。
B.第2実施例:
図13は、第2実施例におけるネットワークシステム900cを示す説明図である。このネットワークシステム900cは、9つのスイッチ装置RT10〜RT90を有している。第2実施例では、これらのスイッチ装置RT10〜RT90は、いずれも、いわゆる「レイヤ3スイッチ(「ルータ」とも呼ばれる)」として機能している。
このネットワークシステム900cでは、第1スイッチ装置RT10と第7スイッチ装置RT70との間が、4つの経路PT1〜PT4で繋がれている。第1経路PT1は、第1スイッチ装置RT10から、3つのスイッチ装置RT20、RT30、RT50をこの順番に通って、第7スイッチ装置RT70へ至る経路である。第2経路PT2は、第1スイッチ装置RT10から、3つのスイッチ装置RT20、RT30、RT60をこの順番に通って、第7スイッチ装置RT70へ至る経路である。第3経路PT3は、第1スイッチ装置RT10から、2つのスイッチ装置RT20、RT40をこの順番に通って、第7スイッチ装置RT70へ至る経路である。第4経路PT4は、第1スイッチ装置RT10から、2つのスイッチ装置RT80、RT90をこの順番に通って、第7スイッチ装置RT70へ至る経路である。なお、図13の例では、スイッチ装置間は物理的な1本の回線のみで接続されている。
図中の各スイッチ装置RT10〜RT90には、記号「#」と番号との組み合わせによって物理ポート番号が示されている。また、図中の各スイッチ装置RT10〜RT90に接続された回線には、記号「Lc」と3桁の数字とで構成される符号が付されている。ここで、百の位は、第1スイッチ装置RT10に近い方のスイッチ装置の番号を表している。十の位は、第7スイッチ装置RT70に近い方のスイッチ装置の番号を表している。一の位は、第1スイッチ装置RT10に近い方のスイッチ装置の物理ポート番号を示している。例えば、回線Lc471は、第4スイッチ装置RT40と第7スイッチ装置RT70とを接続する回線であり、第4スイッチ装置RT40の第1物理ポート#1に接続されている。他の回線についても同様である。
各スイッチ装置RT10〜RT90のハードウェア構成は、図2に示すスイッチ装置SWと同じである。ただし、メモリ300には、リンクアグリゲーションテーブル400(図3)とフィルタテーブル410とに加えて、ルーティングテーブルとARPテーブルとが格納されている。図14は、ルーティングテーブルと、ARPテーブルと、フィルタテーブルと、の一例を示す説明図である。図14には、第1スイッチ装置RT10で利用されるテーブルの一例が示されている。
図14(A)に示すルーティングテーブル430は、宛先IPアドレスと、論理インターフェースと、ネクストホップのIPアドレスと、メトリックと、の対応関係を格納している。宛先IPアドレスは、パケットの最終的な宛先のIPアドレスを表している。この宛先IPアドレスとしては、単一のIPアドレスに限らず、2以上のIPアドレスを含む範囲を設定可能である。IPアドレスの範囲は、通常は、いわゆるネットワークアドレスとサブネットマスクとの組み合わせによって表される。
論理インターフェースは、宛先IPアドレスに到達し得る論理インターフェースを表している。第2実施例では、複数の物理ポートの中からのパケットを送信すべき物理ポートの絞り込みが、最初に、1以上の物理ポートで構成されるグループを単位として行われる。このグループが論理インターフェースである。第2実施例では、このようなグループ(論理インターフェース)として、上述のVLANが利用される。すなわち、最初に、パケットの中継に利用されるVLAN(ネットワークセグメント)が選択される。
なお、複数の論理インターフェースが、同じ宛先IPアドレスに対応付けられてもよい。図14(A)の例では、2つの論理インターフェース(「第1のVLAN291」「第2のVLAN292」)が、同じ第1IPアドレス範囲IPrange1に対応付けられている(第1および第2エントリRE1、RE2参照)。これは、2つの論理インターフェースの内の任意の一方からパケットを送信しても、そのパケットが同じ宛先IPアドレスに到達し得ることを意味している。例えば、図13の例では、第1スイッチ装置RT10において、第1物理ポート#1は第1のVLAN291に属し、第2物理ポート#2は第2のVLAN292に属している。ここで、第1IPアドレス範囲IPrange1内の宛先へのパケットが、第1スイッチ装置RT10から第7スイッチ装置RT70へ中継される場合を考える。この場合には、第1のVLAN291と第2のVLAN292との任意の一方(すなわち、第1物理ポート#1と第2物理ポート#2との任意の一方)からパケットが送信され得る。ただし、パケットを送信する際には、まず、1つの論理インターフェースが選択される。そして、選択された論理インターフェースに含まれる複数の回線ポートの中から1つの回線ポートが選択される。これらの詳細については後述する。
ネクストホップは、次のスイッチ装置を意味している。すなわち、ネクストホップにパケットを送信すれば、そのパケットは最終的な宛先IPアドレスに到達することができる。ルーティングテーブル430の各論理インターフェースには、その論理インターフェースから到達可能な1つのネクストホップのIPアドレスが対応付けられている。例えば、図14(A)の例では、第1のVLAN291には、第2スイッチ装置RT20のIPアドレスIPaRT20が対応付けられている(第1エントリRE1)。そして、第2のVLAN292には、第8スイッチ装置RT80のIPアドレスIPaRT80が対応付けられている(第2エントリRE2)。
メトリックは、論理インターフェースの選択の優先順位を表している。図14の例では、メトリックが小さいほど、優先順位が高い。このようなメトリックとしては、例えば、ホップ数(通過するルータの総数)や、OSPFのコストを採用可能である。
宛先検索部210は、ユーザの指示に従ってルーティングテーブル430を設定する。このような指示は、スイッチ装置の操作パネル(図示せず)から入力されてもよく、また、スイッチ装置に接続された管理端末(図示せず)から入力されてもよい。また、宛先検索部210が、自動的にルーティングテーブル430を構築(あるいは、修正)してもよい。この際、宛先検索部210は、RIP(Routing Information Protocol)や、OSPF(Open Shortest Path First)などのルーティングプロトコルによって伝達される情報に基づいて、ルーティングテーブルを構築(あるいは、修正)すればよい。
図14(B)には、ARPテーブル440の一例が示されている。このARPテーブルは、IPアドレスとMACアドレスとの対応関係を格納している。図14(B)の例では、第2スイッチ装置RT20、および、第8スイッチ装置RT80に関する対応関係が格納されている。宛先検索部210は、自動的にARPテーブル440を構築する。具体的には、宛先検索部210は、スイッチ装置SWによって受信されたパケットのヘッダ情報を参照することによって、送信元IPアドレスと送信元MACアドレスとを取得する。そして、宛先検索部210は、これらのアドレスの対応関係をARPテーブル440に格納する。また、宛先検索部210は、ARP(Address Resolution Protocol)によって伝達される情報に基づいて、ARPテーブル440を構築してもよい。
図14(C)には、フィルタテーブル410の一例が示されている。この例では、第2スイッチ装置RT20のMACアドレスMACaRT20と、第8スイッチ装置RT80のMACアドレスMACaRT80と、に関する対応関係が示されている。第2スイッチ装置RT20は、第1のVLAN291に含まれる第1物理ポート#1に接続されている。また、スイッチ装置RT80は、第2のVLAN292に含まれる第2物理ポート#2に接続されている。
図15は、第2実施例における宛先検索処理の手順を示すフローチャートである。最初のステップS300では、宛先検索部210(図2)は、ルーティングテーブル430(図14(A))を参照することによって、受信パケットの宛先IPアドレスに対応付けられた論理インターフェース(VLAN)を検索する。ここで、同じ宛先IPアドレスに対応する複数の論理インターフェースが検索される場合がある。この場合には、宛先検索部210は、優先順位の最も高い(メトリックの最も小さい)論理インターフェースを選択する。
次のステップS310では、宛先検索部210は、選択された論理インターフェースの総数が2以上であるか否かを判断する。ステップS300で選択された論理インターフェースの総数が「1」である場合には、宛先検索部210は、その論理インターフェースを、出力用の論理インターフェースとして採用する(ステップS330)。例えば、図14(A)の例において、宛先IPアドレスが第2IPアドレス範囲IPrange2に含まれている場合には、第3のVLAN300が採用される。
ステップS300で、優先順位(メトリック)が同じ複数の論理インターフェースが選択される場合がある。例えば、図14(A)の例で、宛先IPアドレスが第1IPアドレス範囲IPrange1に含まれている場合には、第1のVLAN291と第2のVLAN292とが選択される。この場合には、次のステップS320で、宛先検索部210は、ハッシュ値に基づいて1つの論理インターフェースを選択する。この選択は、第1実施例で説明した、論理ポートに含まれる複数の物理ポートの中からの1つの物理ポートの選択と、同様に行われる。具体的には、まず、ハッシュ値生成部220(図2)が、制御情報とヘッダ情報とを用いてハッシュ値を生成する。そして、宛先検索部210は、算出されたハッシュ値に基づいて1つの論理インターフェースを選択する。この選択は、図10(A)に示す関係式を用いる方法と同様に行われる。
以上のように選択された1つの論理インターフェース(VLAN)が、受信パケットの送信に利用すべき論理インターフェースとして採用される(ステップS330)。ここで、ある論理インターフェースを受信パケットの送信に利用するとは、その論理インターフェースに含まれる物理ポートからパケットを送信することを意味している。なお、本実施例では、論理インターフェースが本発明における「ポートグループ」に相当する。
次のステップS340では、宛先検索部210は、ルーティングテーブル430(図13(A))を参照し、出力用の論理インターフェースに対応付けられたネクストホップのIPアドレスを取得する。そして、宛先検索部210は、ARPテーブル440(図14(B))を参照することによって、ネクストホップのIPアドレスから、ネクストホップのMACアドレスを取得する。
次のステップS350では、宛先検索部210は、パケットをネクストホップへ送信するための物理ポートを決定する。この決定は、図4に示す第1実施例と同様に行われる。この際、ステップS330で決定されたVLAN(論理インターフェース)の中から、ネクストホップのMACアドレスの属する回線ポートが選択される。そして、選択された回線ポートから、最終的な出力物理ポートが選択される。そして、選択された出力物理ポートからネクストホップへパケットが送信される。
次に、図13の例において、第1スイッチ装置RT10から第7スイッチ装置RT70へパケットが中継される場合を考える。ここで、説明を簡単にするために、リンクアグリゲーション機能(論理ポート)は利用されていないこととする。また、図14(A)の第1IPアドレス範囲IPrange1は、受信パケットの宛先IPアドレスを含んでいることとする。
この場合、第1スイッチ装置RT10では、まず、宛先検索部210は、2つの論理インターフェースVLAN291、292の中から1つの論理インターフェースを、ハッシュ値に基づいて選択する。そして、宛先検索部210は、選択された1つの論理インターフェースに対応するネクストホップにパケットを送信するために、1つの物理ポートを選択する。例えば、第1のVLAN291が選択された場合には、ネクストホップRT20に接続された第1物理ポート#1が選択される(図14(C))。そして、第1物理ポート#1から第2スイッチ装置RT20へパケットが送信される。一方、第2のVLAN292が選択された場合には、第8スイッチ装置RT80に接続された第2物理ポート#2が選択される。そして、第2物理ポート#2から第8スイッチ装置RT80へパケットが送信される。なお、フィルタテーブル410(図14(C))において、ネクストホップのMACアドレスに対応付けられた回線ポートが論理ポートである場合には、宛先検索部210は、論理ポートに含まれる複数の物理ポートの中から1つの物理ポートを選択する。この選択は、第1実施例と同様に行われる。
第2スイッチ装置RT20、第3スイッチ装置RT30においても、2つの物理ポート#1、#2が選択され得る。ここで、第2実施例では、各スイッチ装置RT20、RT30においても、2つの物理ポート#1、#2が互いに異なる論理インターフェース(VLAN)に含まれており、そして、これら2つの論理インターフェースの優先順位(メトリック)が同じであることとする。その結果、各スイッチ装置RT20、RT30においても、第1スイッチ装置RT10と同様に、物理ポートの選択が行われる。
さらに、第1スイッチ装置RT10から第7スイッチ装置RT70へ、種々のパケットが中継される場合について検討する。ここで、3つのスイッチ装置RT10、RT20、RT30において、同じ演算式(ハッシュ設定値)が利用されると仮定する。この場合には、図11に示した比較例と同様に、パケット転送経路が特定の経路に偏る可能性が高くなる。例えば、第1スイッチ装置RT10において、第1物理ポート#1が選択される割合が高いと仮定する。すると、同じ演算式を利用する第2スイッチ装置RT20においても、出力物理ポートが特定の物理ポートに偏る可能性が高い。ここで、第1物理ポート#1が選択される割合が高いと仮定する。同様に、同じ演算式を利用する第3スイッチ装置RT30においても、出力物理ポートが特定の物理ポートに偏る可能性が高い。ここで、第1物理ポート#1が選択される割合が高いと仮定する。この場合には、パケット転送経路が第1経路PT1に偏ってしまう。
次に、3つのスイッチ装置RT10、RT20、RT30において、互いに異なる演算式(ハッシュ設定値)が利用される場合について検討する。この場合には、各スイッチ装置RT10、RT20、RT30における出力物理ポートの偏りの傾向が互いに異なっている。従って、図12に示した第1実施例と同様に、出力物理ポートの偏り、すなわち、パケット中継経路の偏りを緩和することが可能となる。
以上のように、第2実施例のスイッチ装置RT10〜RT90では、ハッシュ値の演算式(ハッシュ設定値)が可変である。その結果、第1実施例と同様に、パケット送信用の論理インターフェース(VLAN)の偏りの傾向を変えることができる。その結果、パケットの中継に利用されるネットワークセグメントの偏りの傾向を変えることが可能であるので、通信負荷の偏りを緩和することができる。
また、図13に示すように、複数のスイッチ装置を直列に接続することによって、冗長な通信経路を構築する場合がある。この場合にも、本実施例では、前段のスイッチ装置での演算式(ハッシュ設定値)を、後段のスイッチ装置での演算式(ハッシュ設定値)と、異ならせることができる。これにより、前段スイッチ装置での偏りが後段スイッチ装置での偏りと積み重なって通信負荷の偏りが大きくなることを、抑制できる。
なお、図13に示す第2実施例では、スイッチ装置間が物理的な1本の回線のみで接続されていたが、論理ポートを用いてスイッチ装置間を接続してもよい。また、1つの論理インターフェースに複数の物理ポートが含まれている場合には、それらの複数の物理ポートのそれぞれに、同じ優先順位(メトリック)が設定されていると考えることができる。
なお、本実施例では、LAハッシュ値とマルチパスハッシュ値との両方が、同じハッシュ値生成部220(図2)によって生成されている。この代わりに、LAハッシュ値を生成する第1ハッシュ値生成部と、マルチパスハッシュ値を生成する第2ハッシュ値生成部とを、独立に設けてもよい。ここで、LAハッシュ値とは、1つの論理ポートの中から出力物理ポートを選択するためのハッシュ値を意味している。また、マルチパスハッシュ値とは、優先順位が同じである複数の論理インターフェースの中から出力用の論理インターフェースを選択するためのハッシュ値を意味している。なお、第1および第2のハッシュ値生成部が、互いに異なる演算式を利用することが好ましい。また、第1および第2のハッシュ値生成部が、互いに異なる種情報を利用することも好ましい。これらによれば、出力用の論理インターフェースと、論理ポートから選択される物理ポートとが、同じように偏ることを抑制できる。
ここで、LAハッシュ値のために利用可能な演算式の数が1であってもよい。ただし、通信負荷の偏りを緩和するためには、LAハッシュ値のために利用可能な演算式の数が2以上であることが好ましい。
なお、本実施例において、ハッシュ値に基づいて1つの論理ポートが選択された場合にその論理ポートに含まれる複数の物理ポートの中から出力物理ポートを選択する方法としては、任意の方法を採用可能である。例えば、ユーザによって指定された所定の物理ポートを選択してもよい。いずれの場合も、出力物理ポートを含む論理インターフェースがハッシュ値に基づいて選択されているので、最終的に選択される物理ポートも、ハッシュ値に基づいて選択されているということができる。このように、「複数の候補ポートの中から、受信パケットを送信すべき物理ポートを、演算結果に基づいて選択する」とは、演算結果のみから出力物理ポートが特定される場合と、演算結果に加えて他の情報を用いることによって出力物理ポートが特定される場合と、を含む広い概念を意味している。ここで、後者の場合には、演算結果のみに基づいて、複数の候補ポートの中から、より少ない数の候補ポートが特定(選択)されることが好ましい。
C.第3実施例:
図16は、第3実施例におけるヘッダ処理部200aの構成を示す説明図である。図2に示す第1実施例のヘッダ処理部200との差違は、2点ある。第1の差違は、設定値制御部230の代わりに関数セレクタ240が設けられている点である。第2の差違は、ハッシュ値生成部220aが、互いに異なる3つのハッシュ関数HF1〜HF3を利用可能な点である。スイッチ装置の他の構成は、図2に示す第1実施例のスイッチ装置SWと同じである。なお、図16では、スイッチ装置の構成要素としてヘッダ処理部200aのみが図示されており、他の構成要素の図示は省略されている。
関数セレクタ240は、3つのハッシュ関数HF1〜HF3の中から1つのハッシュ関数を選択する。ハッシュ値生成部220aは、関数セレクタ240によって選択されたハッシュ関数に基づいてハッシュ値を算出する。各ハッシュ関数HF1〜HF3としては、互いに異なる種々のハッシュ関数を採用可能である。なお、関数セレクタ240は、ユーザの指示に従って1つのハッシュ関数を選択する。この代わりに、関数セレクタ240が自動的に1つのハッシュ関数を選択してもよい。例えば、ランダムにハッシュ関数が選択されてもよい。
なお、第3実施例では、ハッシュ値生成部220aが、本発明における「演算部」に相当する。そして、関数セレクタ240が、本発明における「変更部」に相当する。なお、利用可能な演算式の総数としては、3に限らず、2以上の任意の数を採用可能である。
D.第4実施例:
図17は、第4実施例におけるヘッダ処理部200bの構成を示す説明図である。図2に示す第1実施例のヘッダ処理部200との差違は、設定値制御部230の代わりに、修正制御部250とデータ修正部260とが設けられている点だけである。ハッシュ値生成部220は、所定のハッシュ関数に従って、ハッシュ値を生成する。
データ修正部260は、ハッシュ値の算出に利用される種情報(本実施例では、ヘッダ情報および制御情報)の少なくとも一部を修正する。例えば、送信元MACアドレスと宛先MACアドレスとのそれぞれの所定のビット位置のビットデータを反転させてもよい。さらに、受信VLANに予め設定された加算値を加算してもよい(この際、桁上がりを省略すればよい)。その結果、同じパケットに対するハッシュ値を生成する場合であっても、ハッシュ値生成部220に供給されるデータを修正することによって、生成されるハッシュ値を変えることができる。すなわち、第4実施例では、演算式は、データ修正部260によるデータ修正と、ハッシュ値生成部220が利用するハッシュ関数との、全体によって定められる。
なお、データ修正部260による修正は、修正制御部250によって制御される。例えば、上述のビットデータを反転させるビット位置および加算値は、修正制御部250によって設定される。これらのパラメータが変えられることによって、演算式が変更される。修正制御部250は、ユーザの指示に従って、このような設定(変更)を行う。この代わりに、修正制御部250が自動的にこのような設定を行っても良い。例えば、修正制御部250が、ランダムにビット位置および加算値を決定してもよい。
なお、第4実施例では、ハッシュ値生成部220とデータ修正部260との全体が、本発明における「演算部」に相当する。そして、修正制御部250が、本発明における「変更部」に相当する。また、このような種情報の修正方法としては、所定のビット位置のビットデータを反転させる方法や、加算値を加算する方法に限らず、種々の方法を採用可能である。例えば、除算によってデータを修正してもよい。
E.変形例:
なお、上記各実施例における構成要素の中の、独立クレームでクレームされた要素以外の要素は、付加的な要素であり、適宜省略可能である。また、この発明は上記の実施例や実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の態様において実施することが可能であり、例えば次のような変形も可能である。
変形例1:
上述の各実施例において、論理ポートに含まれる複数の物理ポートの内からの出力(送信)用の物理ポートの選択に利用される演算式としては、図8、図9に示した演算式に限らず、種情報から代表値を算出する種々の演算式を採用可能である。ただし、演算式としては、ハッシュ関数を採用することが好ましい。ハッシュ関数とは、種情報から固定長の疑似乱数(ハッシュ値)を生成する関数である。ハッシュ関数としては、図8、図9に示した関数(演算式)に限らず、MD5(Message Digest 5)や、SHA−1(Secure Hash Algorithm 1)やSHA−2など、種々の関数を採用可能である。ハッシュ関数を用いる場合には、演算結果(ハッシュ値)における値域上の偏りが小さくなる。さらに、似た種情報から近しい演算結果(ハッシュ値)が生成されにくい。従って、演算式としてハッシュ関数を採用すれば、選択される物理ポートが特定の物理ポートに偏ることを抑制することが容易となる。これらは、複数の論理インターフェースからの出力(送信)用の論理インターフェースの選択に利用される演算式についても同様である。
変形例2:
上記各実施例において、論理ポートに含まれる複数の物理ポートの内からの出力用の物理ポートの選択に利用される演算の種情報としては、図9のステップS200に示した情報に限らず、パケットに関連付けられた宛先情報および送信元情報の少なくとも一方の情報を含む種々の情報を採用可能である。例えば、宛先情報を用いずに送信元情報のみを用いて演算を行っても良い。こうすれば、複数の物理ポートを送信元に応じて使い分けることができる。逆に、送信元情報を用いずに宛先情報のみを用いて演算を行っても良い。こうすれば、複数の物理ポートを宛先に応じて使い分けることができる。また、制御情報を用いずにヘッダ情報のみを用いて演算を行っても良い。
宛先情報および送信元情報の少なくとも一方の情報を種情報として用いる理由は、以下の通りである。すなわち、ネットワーク中継装置によるパケットの中継によって、2つのネットワーク機器の間で転送される複数のパケットの転送順序が入れ替わることを抑制するためである。
なお、パケットの通信方法としては、イーサネット(登録商標)を用いる方法や、さらに、インターネットプロトコルを用いる方法に限らず、任意の通信方法を採用可能である。いずれの場合も、宛先情報としては宛先に関連する種々の情報(例えば、宛先MACアドレス、宛先IPアドレス、宛先ポート(L4ポート)の中の任意の情報)を採用可能である。また、送信元情報としては、送信元に関連する種々の情報(例えば、送信元MACアドレス、送信元IPアドレス、送信元ポート(L4ポート)の中の任意の情報)を採用可能である。
以上の説明は、複数の論理インターフェースからの出力用論理インターフェースの選択に利用される演算の種情報についても同様である。
変形例3:
上述の各実施例において、演算結果から物理ポートを選択する方法としては、図10に示す方法に限らず、種々の方法を採用可能である。例えば、候補ポートの総数が「n(nは2以上の整数)」の場合には、演算結果を「n」で割った余りを、選択番号として採用してもよい。一般には、演算結果と物理ポートとの対応関係を、任意の方法で決定することができる。ただし、ネットワークシステムの種々の利用状況において、選択されるポートが特定のポートに偏ることを抑制するためには、各物理ポートに対応付けられる演算結果の範囲の大きさが均等であることが好ましい。これらは、演算結果から論理インターフェースを選択する方法についても同様である。
変形例4:
上記各実施例において、演算部は、少なくとも2つの互いに異なる演算式を利用できればよい。ただし、ネットワークシステムの種々の利用状況において出力物理ポートの偏りを抑えるためには、演算部が、3つ以上の互いに異なる演算式を利用できることが好ましい。これらは、演算結果から論理インターフェースを選択する場合についても同様である。
変形例5:
上記各実施例において、演算部が利用する演算式としては、利用可能な複数の演算式の中の任意の演算式を採用可能である。ただし、出力物理ポートの偏りが小さくなるような演算式を選択することが好ましい。例えば、宛先検索部210が、各物理ポートのトラフィック量(例えば、送信されたパケット数)を、ユーザに提示するために、メモリに記録してもよい。そして、ユーザは、提示されたトラフィック量の偏りが大きい場合に、演算式を変更する指示を変更部に入力すればよい。トラフィック量の提示、および、演算式変更指示の入力は、スイッチ装置の操作パネル(図示せず)や、スイッチ装置に接続された管理端末(図示せず)を介して、行われ得る。
また、変更部が自動的に演算式を変更してもよい。例えば、トラフィック量の偏りが所定の偏りよりも大きくなった場合に、変更部が自動的に演算式を変更してもよい。具体的には、所定の期間(例えば、1日)における、各物理ポートの積算トラフィック量の最大値と最小値との差分が所定の閾値以上である場合に、変更部が自動的に演算式を変更すればよい。
以上の説明は、演算結果から論理インターフェースを選択する場合についても同様である。
変形例6:
上述の各実施例のように、複数のスイッチ装置(ネットワーク中継装置)が、互いに直接に接続される場合がある。この場合には、互いに接続される2つのスイッチ装置の間で、演算式が異なることが好ましい。こうすれば、前段のスイッチ装置における出力物理ポートの偏りが後段のスイッチ装置における出力物理ポートの偏りと積み重なることに起因する偏りの増大を抑制することができる。
なお、2つのスイッチ装置が互いに接続される場合には、ユーザが、2つのスイッチ装置の演算式を互いに異なる演算式に設定すればよい。具体的には、2つのスイッチ装置のうちの少なくとも一方に、ユーザが演算式変更指示を入力すればよい。このような演算式の設定(変更)は、ネットワークシステムの運用開始前に実行されることが好ましい。
また、この代わりに、2つのスイッチ装置の少なくとも一方が自動的に演算式を変更することによって、2つのスイッチ装置の間で演算式を互いに異ならせても良い。例えば、各スイッチ装置の変更部が、自己の属するスイッチ装置で利用される演算式に関する情報を交換すればよい。このような情報の交換は、スイッチ装置を接続する回線を介して行えばよい。そして、一方の変更部が、他方のスイッチ装置で利用される演算式を特定し、自己のスイッチ装置で利用される演算式を、特定された演算式と異なる演算式に自動的に変更すればよい。この際、2つの変更部の中から演算式を変更する変更部を選択する方法としては、任意の方法を採用可能である。例えば、スイッチ装置に固有な識別番号の小さいスイッチ装置の変更部が選択されてもよい。
なお、このような2つのスイッチ装置(変更部)によって実行される演算式の変更処理は、ネットワークシステムの運用開始前に自動的に実行されることが好ましい。例えば、2つのスイッチ装置が回線によって接続されたことに応じて変更処理が開始されることとしてもよい。ただし、ユーザの指示に応じて変更処理が開始されることとしてもよい。なお、このような変更処理としては、各スイッチ装置で利用される演算式を互いに異ならせるような任意の処理を採用可能である。また、変更処理のための通信方法としては、任意の方法を採用可能である。例えば、HTTPプロトコルを利用して情報を交換してもよい。
ところで、このような偏りの積み重ねによる偏りの増大は、直列に接続されるスイッチ装置の数が多いほど顕著である。従って、直列に接続されるスイッチ装置の数が3以上である場合には、互いに接続される2つのスイッチ装置の間で演算式が異なることが好ましい。さらに、直列に接続された全てのスイッチ装置の任意の2つの組み合わせの間で、演算式が互いに異なることが特に好ましい。
変形例7:
図13〜図15に示した第2実施例において、論理インターフェース(ポートグループ)としては、VLANに限らず、任意に設定された物理ポートのグループを採用可能である。例えば、上述の論理ポートをポートグループとして採用してもよい。この場合には、受信パケットの宛先に到達可能な物理ポート(候補ポート)を含む複数の論理ポートの中から、受信パケットの送信に利用すべき論理ポートを、演算結果に基づいて選択すればよい。ただし、VLANによってネットワークを分割するスイッチ装置を利用する場合には、パケットの通信経路が、パケットの送信に利用されるVLANに応じて大きく変わる場合が多い。従って、論理インターフェースとしてVLANを採用すれば、演算結果に基づいてVLANが選択されるので、通信経路の偏りを緩和することが容易である。また、1つの物理ポートが複数のポートグループ(論理インターフェース)に属していても良い。例えば、いわゆる「Tag−VLAN」を利用した場合には、1つの物理ポートが複数のVLAN(論理インターフェース)に含まれ得る。
変形例8:
ネットワークシステムの構成としては、図1に示したネットワークシステム900や、図13に示したネットワークシステム900cに限らず、任意の構成を採用可能である。スイッチ装置(ネットワーク中継装置)の数、および、回線の数は、任意に選択可能である。また、経路も任意に構築され得る。例えば、図13の第2実施例において、1つのスイッチ装置を通って同じ宛先IPアドレスへ至る経路が、そのスイッチ装置の3以上の互いに異なる物理ポートによって分岐してもよい。そして、それらの複数の物理ポートが、互いに異なる論理インターフェース(例えば、VLAN)に含まれていても良い。また、スイッチ装置(ネットワーク中継装置)の構成としても、図2、図16、図17に示す構成に限らず、種々の構成を採用可能である。例えば、変更部の構成としては、手動あるいは自動で演算式を変更する種々の構成を採用可能である。
また、上記各実施例において、スイッチ装置(ネットワーク中継装置)が、レイヤ2スイッチとしての処理と、レイヤ3スイッチ(ルータ)としての処理と、の両方を実行してもよい。この場合には、レイヤ2スイッチとしての処理を実行する第1ヘッダ処理部と、レイヤ3スイッチとしての処理を実行する第2ヘッダ処理部とを、独立に設けてもよい。
変形例9:
上記各実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部をハードウェアに置き換えるようにしてもよい。例えば、図2のヘッダ処理部200を、CPUとメモリとを有するコンピュータに置き換えてもよい。この場合には、CPUがプログラムを実行することによって、ヘッダ処理部200の種々の機能を実現する。
本発明の一実施例としてのスイッチ装置を用いたネットワークシステムを示す説明図である。 スイッチ装置SWの構成を示す説明図である。 リンクアグリゲーションテーブル400とフィルタテーブル410とを示す説明図である。 宛先検索処理の手順を示すフローチャートである。 ハッシュ値生成部220(図2)の内部構成を示す説明図である。 制御情報520とヘッダ情報521とを示す説明図である。 計算部222の内部構成を示す説明図である。 計算部222によるハッシュ値の算出の手順を示すフローチャートである。 ハッシュ値の算出の具体例を示す説明図である。 出力物理ポートとハッシュ値との関係を示す説明図である。 ネットワークシステム900におけるパケット中継の比較例を示す説明図である。 ネットワークシステム900におけるパケット中継の実施例を示す説明図である。 第2実施例におけるネットワークシステム900cを示す説明図である。 ルーティングテーブルと、ARPテーブルと、フィルタテーブルと、の一例を示す説明図である。 第2実施例における宛先検索処理の手順を示すフローチャートである。 第3実施例におけるヘッダ処理部200aの構成を示す説明図である。 第4実施例におけるヘッダ処理部200bの構成を示す説明図である。
符号の説明
100...インターフェース回路
200、200a、200b...ヘッダ処理部
210...宛先検索部
220、220a...ハッシュ値生成部
222...計算部
224...設定値蓄積部
230...設定値制御部
240...関数セレクタ
250...修正制御部
260...データ修正部
300...メモリ
400...リンクアグリゲーションテーブル
410...フィルタテーブル
602...制御情報蓄積部
604...L2ヘッダ情報蓄積部
606...L3ヘッダ情報蓄積部
608...L4ヘッダ情報蓄積部
610...加算処理部
620...論理積処理部
629...排他的論理和処理部
631〜638...積−和処理部
900、900c...ネットワークシステム
SW、SW10〜SW60、RT10〜RT90...スイッチ装置

Claims (16)

  1. パケットを中継するネットワーク中継装置であって、
    回線との接続のための複数の物理ポートを有するとともに、前記回線を介してパケットを送受信するインターフェース部と、
    受信されたパケットに関連付けられた宛先情報および送信元情報の少なくとも一方の情報を含む種情報を用いた演算処理を実行する演算部と、
    前記複数の物理ポートの中の前記宛先情報によって特定される宛先に到達し得る複数の候補ポートの中から、前記受信パケットを送信すべき物理ポートを、前記演算結果に基づいて選択する宛先検索部と、
    前記演算処理で利用される演算式を変更する変更部と、
    を備える、ネットワーク中継装置。
  2. 請求項1に記載のネットワーク中継装置であって、
    前記宛先検索部は、複数の物理ポートを集約して仮想的な1つのポートとして扱うリンクアグリゲーション機能を有し、
    前記複数の候補ポートは、前記リンクアグリゲーション機能によって構築された仮想的な1つのポートに含まれる、
    ネットワーク中継装置。
  3. 請求項1に記載のネットワーク中継装置であって、
    前記宛先検索部は、前記複数の物理ポートのそれぞれに選択の優先順位を設定し、
    前記複数の候補ポートのそれぞれの優先順位は同じである、
    ネットワーク中継装置。
  4. パケットを中継するネットワーク中継装置であって、
    回線との接続のための複数の物理ポートを有するとともに、前記回線を介してパケットを送受信するインターフェース部と、
    受信されたパケットに関連付けられた宛先情報および送信元情報の少なくとも一方の情報を含む種情報を用いた演算処理を実行する演算部と、
    前記宛先情報によって特定される宛先に到達し得る候補ポートを含む1以上の物理ポートから構成されるポートグループであって、互いに異なる候補ポートを含む複数のポートグループの中から、前記受信パケットの送信に利用すべきポートグループを、前記演算結果に基づいて選択する宛先検索部と、
    前記演算処理で利用される演算式を変更する変更部と、
    を備える、ネットワーク中継装置。
  5. 請求項4に記載のネットワーク中継装置であって、
    前記ポートグループは、前記複数の物理ポートによって構成されるネットワークを仮想的な部分ネットワークに分割するための仮想LANを構成するグループである、ネットワーク中継装置。
  6. 請求項1ないし請求項5のいずれかに記載のネットワーク中継装置であって、
    前記演算式はハッシュ関数である、ネットワーク中継装置。
  7. 請求項1ないし請求項6のいずれかに記載のネットワーク中継装置であって、
    前記変更部は、ユーザの指示に基づいて、前記演算式を変更する、
    ネットワーク中継装置。
  8. 請求項1ないし請求項6のいずれかに記載のネットワーク中継装置であって、
    前記変更部は、前記ネットワーク中継装置に接続された別のネットワーク中継装置との通信によって前記別のネットワーク中継装置で利用される演算式を特定し、前記演算処理で利用される演算式を、前記特定された演算式とは異なる演算式に自動的に変更する、ネットワーク中継装置。
  9. 回線との接続のための複数の物理ポートを有するとともに前記回線を介してパケットを送受信するインターフェース部を備えるネットワーク中継装置を用いてパケットを中継する方法であって、
    (A)前記ネットワーク中継装置が、受信されたパケットに関連付けられた宛先情報および送信元情報の少なくとも一方の情報を含む種情報を用いた演算処理で利用される演算式を変更する工程と、
    (B)前記ネットワーク中継装置が、変更後の演算式に従って前記演算処理を実行する工程と、
    (C)前記ネットワーク中継装置が、前記複数の物理ポートの中の前記宛先情報によって特定される宛先に到達し得る複数の候補ポートの中から、前記受信パケットを送信すべき物理ポートを、前記演算結果に基づいて選択する工程と、
    を備える、方法。
  10. 請求項9に記載の方法であって、
    前記複数の候補ポートは、複数の物理ポートを集約して仮想的な1つのポートとして扱うリンクアグリゲーション機能によって構築された仮想的な1つのポートに含まれる、方法。
  11. 請求項9に記載の方法であって、
    前記複数の物理ポートのそれぞれには選択の優先順位が設定されており、
    前記複数の候補ポートのそれぞれの優先順位は同じである、
    方法。
  12. 回線との接続のための複数の物理ポートを有するとともに前記回線を介してパケットを送受信するインターフェース部を備えるネットワーク中継装置を用いてパケットを中継する方法であって、
    (A)前記ネットワーク中継装置が、受信されたパケットに関連付けられた宛先情報および送信元情報の少なくとも一方の情報を含む種情報を用いた演算処理で利用される演算式を変更する工程と、
    (B)前記ネットワーク中継装置が、変更後の演算式に従って前記演算処理を実行する工程と、
    (C)前記ネットワーク中継装置が、前記宛先情報によって特定される宛先に到達し得る候補ポートを含む1以上の物理ポートから構成されるポートグループであって、互いに異なる候補ポートを含む複数のポートグループの中から、前記受信パケットの送信に利用すべきポートグループを、前記演算結果に基づいて選択する工程と、
    を備える、方法。
  13. 請求項12に記載の方法であって、
    前記ポートグループは、前記複数の物理ポートによって構成されるネットワークを仮想的な部分ネットワークに分割するための仮想LANを構成するグループである、方法。
  14. 請求項9ないし請求項13のいずれかに記載の方法であって、
    前記演算式はハッシュ関数である、方法。
  15. 請求項9ないし請求項14のいずれかに記載の方法であって、
    前記演算式の変更は、ユーザの指示に基づいて行われる、方法。
  16. 請求項9ないし請求項14のいずれかに記載の方法であって、
    前記演算式の変更工程は、
    前記ネットワーク中継装置が、前記ネットワーク中継装置に接続された別のネットワーク中継装置との通信によって前記別のネットワーク中継装置で利用される演算式を特定する工程と、
    前記ネットワーク中継装置が、前記演算処理で利用される演算式を、前記特定された演算式とは異なる演算式に自動的に変更する工程と、
    を含む、方法。
JP2006219455A 2006-08-11 2006-08-11 ネットワーク中継装置 Active JP5086585B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2006219455A JP5086585B2 (ja) 2006-08-11 2006-08-11 ネットワーク中継装置
US11/830,903 US7969880B2 (en) 2006-08-11 2007-07-31 Device and method for relaying packets
US13/169,363 US8625423B2 (en) 2006-08-11 2011-06-27 Device and method for relaying packets

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006219455A JP5086585B2 (ja) 2006-08-11 2006-08-11 ネットワーク中継装置

Publications (2)

Publication Number Publication Date
JP2008048010A true JP2008048010A (ja) 2008-02-28
JP5086585B2 JP5086585B2 (ja) 2012-11-28

Family

ID=39050700

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006219455A Active JP5086585B2 (ja) 2006-08-11 2006-08-11 ネットワーク中継装置

Country Status (2)

Country Link
US (2) US7969880B2 (ja)
JP (1) JP5086585B2 (ja)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009010834A (ja) * 2007-06-29 2009-01-15 Fujitsu Ltd パケット伝送負荷分散制御方法及び装置
JP2009212879A (ja) * 2008-03-05 2009-09-17 Fujitsu Ltd 通信装置および通信方法
JP2010278551A (ja) * 2009-05-26 2010-12-09 Fujitsu Ltd ネットワークスイッチ装置及びその方法
JP2011004025A (ja) * 2009-06-17 2011-01-06 Alaxala Networks Corp パケット振り分け方法及び装置
JP2011103614A (ja) * 2009-11-12 2011-05-26 Hitachi Ltd パケット振り分け機能を有する装置及びパケット振り分け方式
JP2011259007A (ja) * 2010-06-04 2011-12-22 Alaxala Networks Corp ロードバランス機能を備えたパケット転送方法およびパケット転送装置
US8111615B2 (en) 2008-07-07 2012-02-07 Intel Corporation Dynamic update of route table
JP2013504913A (ja) * 2009-09-15 2013-02-07 ナパテック アクティーゼルスカブ データパケットを分析するための装置、データパケット処理システム、及び処理方法
JP2013546245A (ja) * 2010-10-29 2013-12-26 テレフオンアクチーボラゲット エル エム エリクソン(パブル) 最短パスブリッジングネットワークにおける負荷バランシング
JPWO2019172310A1 (ja) * 2018-03-07 2021-02-12 日本電気株式会社 端末装置、スイッチ、ネットワークシステム、試験方法及びプログラム

Families Citing this family (76)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7596139B2 (en) * 2000-11-17 2009-09-29 Foundry Networks, Inc. Backplane interface adapter with error control and redundant fabric
US7236490B2 (en) * 2000-11-17 2007-06-26 Foundry Networks, Inc. Backplane interface adapter
US7468975B1 (en) * 2002-05-06 2008-12-23 Foundry Networks, Inc. Flexible method for processing data packets in a network routing system for enhanced efficiency and monitoring capability
US7266117B1 (en) 2002-05-06 2007-09-04 Foundry Networks, Inc. System architecture for very fast ethernet blade
US20120155466A1 (en) * 2002-05-06 2012-06-21 Ian Edward Davis Method and apparatus for efficiently processing data packets in a computer network
US20090279558A1 (en) * 2002-05-06 2009-11-12 Ian Edward Davis Network routing apparatus for enhanced efficiency and monitoring capability
US7187687B1 (en) * 2002-05-06 2007-03-06 Foundry Networks, Inc. Pipeline method and system for switching packets
US7649885B1 (en) 2002-05-06 2010-01-19 Foundry Networks, Inc. Network routing system for enhanced efficiency and monitoring capability
US6901072B1 (en) * 2003-05-15 2005-05-31 Foundry Networks, Inc. System and method for high speed packet transmission implementing dual transmit and receive pipelines
US7817659B2 (en) * 2004-03-26 2010-10-19 Foundry Networks, Llc Method and apparatus for aggregating input data streams
US8730961B1 (en) 2004-04-26 2014-05-20 Foundry Networks, Llc System and method for optimizing router lookup
US7657703B1 (en) 2004-10-29 2010-02-02 Foundry Networks, Inc. Double density content addressable memory (CAM) lookup scheme
US8448162B2 (en) 2005-12-28 2013-05-21 Foundry Networks, Llc Hitless software upgrades
US20070288690A1 (en) * 2006-06-13 2007-12-13 Foundry Networks, Inc. High bandwidth, high capacity look-up table implementation in dynamic random access memory
US7903654B2 (en) * 2006-08-22 2011-03-08 Foundry Networks, Llc System and method for ECMP load sharing
US8238255B2 (en) 2006-11-22 2012-08-07 Foundry Networks, Llc Recovering from failures without impact on data traffic in a shared bus architecture
EP1931085B1 (en) * 2006-12-06 2012-07-18 Genexis B.V. Modular network connection equipment
US20090279441A1 (en) * 2007-01-11 2009-11-12 Foundry Networks, Inc. Techniques for transmitting failure detection protocol packets
EP1973270B1 (en) * 2007-03-22 2018-01-03 PacketFront Software Solutions AB Broadband service delivery
EP1998505B1 (en) * 2007-05-29 2010-05-12 PacketFront Systems AB Method of connecting VLAN systems to other networks via a router
US8271859B2 (en) * 2007-07-18 2012-09-18 Foundry Networks Llc Segmented CRC design in high speed networks
US8037399B2 (en) * 2007-07-18 2011-10-11 Foundry Networks, Llc Techniques for segmented CRC design in high speed networks
ATE447278T1 (de) * 2007-08-08 2009-11-15 Packetfront Systems Ab Vlan-datenrahmen und -übertragung
EP2031806A1 (en) * 2007-08-31 2009-03-04 PacketFront Systems AB Method and system for managing transmission of fragmented data packets
US8509236B2 (en) 2007-09-26 2013-08-13 Foundry Networks, Llc Techniques for selecting paths and/or trunk ports for forwarding traffic flows
EP2048848B1 (en) 2007-10-12 2013-12-18 PacketFront Network Products AB Optical data communications
ATE464733T1 (de) * 2007-10-12 2010-04-15 Packetfront Systems Ab Konfiguration von routern für dhcp-dienstanfragen
US8279867B2 (en) * 2008-03-02 2012-10-02 Jeffrey Alan Carley Method and apparatus for reducing flood traffic in switches
US8639356B2 (en) 2008-05-07 2014-01-28 Cardiac Pacemakers, Inc. Lead assembly and related methods
US9265936B2 (en) 2008-05-07 2016-02-23 Cardiac Pacemakers, Inc. Lead assembly and related methods
WO2009143886A1 (en) * 2008-05-28 2009-12-03 Packetfront Systems Ab Data retrieval in a network of tree structure
US9237100B1 (en) 2008-08-06 2016-01-12 Marvell Israel (M.I.S.L.) Ltd. Hash computation for network switches
EP2377273B1 (en) * 2009-01-12 2015-08-26 Hewlett-Packard Development Company, L.P. Reducing propagation of message floods in computer networks
CN101605091B (zh) * 2009-02-13 2012-02-22 华为技术有限公司 一种多端口负载分担方法、装置和网络系统
US8351448B1 (en) 2009-03-24 2013-01-08 Qlogic, Corporation Method and system for extended port addressing
US8385335B2 (en) * 2009-05-13 2013-02-26 Avaya Inc. Method and apparatus for providing fast reroute of a unicast packet within a network element to an available port associated with a multi-link trunk
US8351429B2 (en) * 2009-05-13 2013-01-08 Avaya Inc. Method and apparatus for providing fast reroute of a packet that may be forwarded on one of a plurality of equal cost multipath routes through a network
US8090901B2 (en) 2009-05-14 2012-01-03 Brocade Communications Systems, Inc. TCAM management approach that minimize movements
US8401026B2 (en) * 2009-05-18 2013-03-19 Cisco Technology, Inc. Achieving about an equal number of active links across chassis in a virtual port-channel environment
CN101610217B (zh) 2009-06-05 2011-08-24 中兴通讯股份有限公司 实现在扩展处理器和交换芯片之间传输报文的方法和系统
US8665879B2 (en) * 2009-07-14 2014-03-04 Broadcom Corporation Flow based path selection randomization using parallel hash functions
US8565239B2 (en) * 2009-07-14 2013-10-22 Broadcom Corporation Node based path selection randomization
US8599850B2 (en) 2009-09-21 2013-12-03 Brocade Communications Systems, Inc. Provisioning single or multistage networks using ethernet service instances (ESIs)
US8260986B2 (en) 2009-09-29 2012-09-04 Hitachi, Ltd. Methods and apparatus for managing virtual ports and logical units on storage systems
US8780911B2 (en) * 2009-10-08 2014-07-15 Force10 Networks, Inc. Link aggregation based on port and protocol combination
US8942217B2 (en) 2009-10-12 2015-01-27 Dell Products L.P. System and method for hierarchical link aggregation
US8559307B2 (en) * 2009-12-28 2013-10-15 Empire Technology Development Llc Routing packets in on-chip networks
US8804733B1 (en) 2010-06-02 2014-08-12 Marvell International Ltd. Centralized packet processor for a network
US8964742B1 (en) 2010-07-28 2015-02-24 Marvell Israel (M.I.S.L) Ltd. Linked list profiling and updating
US9164725B2 (en) * 2010-11-19 2015-10-20 International Business Machines Corporation Apparatus and method for calculating an SHA-2 hash function in a general purpose processor
US8660005B2 (en) 2010-11-30 2014-02-25 Marvell Israel (M.I.S.L) Ltd. Load balancing hash computation for network switches
US8798077B2 (en) 2010-12-29 2014-08-05 Juniper Networks, Inc. Methods and apparatus for standard protocol validation mechanisms deployed over a switch fabric system
US8780896B2 (en) * 2010-12-29 2014-07-15 Juniper Networks, Inc. Methods and apparatus for validation of equal cost multi path (ECMP) paths in a switch fabric system
US9246810B2 (en) * 2011-03-11 2016-01-26 Broadcom Corporation Hash-based load balancing with per-hop seeding
US9171030B1 (en) 2012-01-09 2015-10-27 Marvell Israel (M.I.S.L.) Ltd. Exact match lookup in network switch devices
US9036629B2 (en) 2012-04-27 2015-05-19 Hewlett-Packard Development Company, L.P. Switch module
CN105122745B (zh) 2013-02-27 2019-06-28 马维尔国际贸易有限公司 用于网络设备的高效最长前缀匹配技术
US9237093B2 (en) * 2013-03-14 2016-01-12 Silicon Graphics International Corp. Bandwidth on-demand adaptive routing
US9537771B2 (en) 2013-04-04 2017-01-03 Marvell Israel (M.I.S.L) Ltd. Exact match hash lookup databases in network switch devices
US9906592B1 (en) 2014-03-13 2018-02-27 Marvell Israel (M.I.S.L.) Ltd. Resilient hash computation for load balancing in network switches
US10587516B1 (en) 2014-07-15 2020-03-10 Marvell Israel (M.I.S.L) Ltd. Hash lookup table entry management in a network device
US10536389B1 (en) * 2014-11-03 2020-01-14 Amazon Technologies, Inc. Biased selection of dedicated physical connections to provider network
WO2016142774A1 (en) 2015-03-06 2016-09-15 Marvell Israel (M.I.S.L) Ltd. Method and apparatus for load balancing in network switches
WO2017022235A1 (ja) * 2015-08-03 2017-02-09 日本電気株式会社 伝送装置、伝送制御方法、及び、記録媒体
US10904150B1 (en) 2016-02-02 2021-01-26 Marvell Israel (M.I.S.L) Ltd. Distributed dynamic load balancing in network systems
KR102565005B1 (ko) * 2016-08-04 2023-08-07 에스케이하이닉스 주식회사 저항 변화 메모리의 수명 연장 방법 및 그 방법을 이용하는 데이터 저장 시스템
US10243857B1 (en) 2016-09-09 2019-03-26 Marvell Israel (M.I.S.L) Ltd. Method and apparatus for multipath group updates
US10237198B2 (en) 2016-12-06 2019-03-19 Hewlett Packard Enterprise Development Lp Shared-credit arbitration circuit
US10944694B2 (en) 2016-12-06 2021-03-09 Hewlett Packard Enterprise Development Lp Predictive arbitration circuit
US10721185B2 (en) 2016-12-06 2020-07-21 Hewlett Packard Enterprise Development Lp Age-based arbitration circuit
US10452573B2 (en) 2016-12-06 2019-10-22 Hewlett Packard Enterprise Development Lp Scripted arbitration circuit
US10594576B2 (en) * 2017-01-31 2020-03-17 Splunk Inc. Visualizing network activity involving networked computing devices distributed across network address spaces
JP6793056B2 (ja) * 2017-02-15 2020-12-02 アラクサラネットワークス株式会社 通信装置及びシステム及び方法
JP2019125914A (ja) * 2018-01-16 2019-07-25 アラクサラネットワークス株式会社 通信装置及びプログラム
US10693811B2 (en) 2018-09-28 2020-06-23 Hewlett Packard Enterprise Development Lp Age class based arbitration
US20230006918A1 (en) * 2021-06-30 2023-01-05 Fortinet, Inc. Automatic link aggregation for incompatible data ports on a computer network

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10308774A (ja) * 1997-05-09 1998-11-17 Hitachi Ltd マルチリンク通信方法
JP2000059377A (ja) * 1998-08-07 2000-02-25 Hitachi Ltd 通信装置
WO2005015851A1 (ja) * 2003-08-06 2005-02-17 Fujitsu Limited ノード,rprインタフェースカードおよび光ネットワークシステム
JP2005136589A (ja) * 2003-10-29 2005-05-26 Hitachi Cable Ltd アグリゲーション機能付き中継装置
JP2005318222A (ja) * 2004-04-28 2005-11-10 Mitsubishi Electric Corp パケット伝送システム及びパケット伝送方法
JP2006005437A (ja) * 2004-06-15 2006-01-05 Fujitsu Ltd トラフィック分散制御装置
JP2007053564A (ja) * 2005-08-17 2007-03-01 Fujitsu Ltd ネットワークスイッチ装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7042842B2 (en) * 2001-06-13 2006-05-09 Computer Network Technology Corporation Fiber channel switch
US7327748B2 (en) * 2002-01-28 2008-02-05 Alcatel Lucent Enterprise switching device and method
JP4157403B2 (ja) * 2003-03-19 2008-10-01 株式会社日立製作所 パケット通信装置
JP4149393B2 (ja) 2004-03-05 2008-09-10 日本電信電話株式会社 通信負荷分散方法、装置及びプログラム
US20070121660A1 (en) * 2005-11-04 2007-05-31 Robert Ayrapetian Load balanced architecture of cascading of MxM Ethernet packet based switches that supports up to 4 levels of QoS

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10308774A (ja) * 1997-05-09 1998-11-17 Hitachi Ltd マルチリンク通信方法
JP2000059377A (ja) * 1998-08-07 2000-02-25 Hitachi Ltd 通信装置
WO2005015851A1 (ja) * 2003-08-06 2005-02-17 Fujitsu Limited ノード,rprインタフェースカードおよび光ネットワークシステム
JP2005136589A (ja) * 2003-10-29 2005-05-26 Hitachi Cable Ltd アグリゲーション機能付き中継装置
JP2005318222A (ja) * 2004-04-28 2005-11-10 Mitsubishi Electric Corp パケット伝送システム及びパケット伝送方法
JP2006005437A (ja) * 2004-06-15 2006-01-05 Fujitsu Ltd トラフィック分散制御装置
JP2007053564A (ja) * 2005-08-17 2007-03-01 Fujitsu Ltd ネットワークスイッチ装置

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009010834A (ja) * 2007-06-29 2009-01-15 Fujitsu Ltd パケット伝送負荷分散制御方法及び装置
JP2009212879A (ja) * 2008-03-05 2009-09-17 Fujitsu Ltd 通信装置および通信方法
US8111615B2 (en) 2008-07-07 2012-02-07 Intel Corporation Dynamic update of route table
US8693476B2 (en) 2008-07-07 2014-04-08 Intel Corporation Dynamic update of route table
JP2010278551A (ja) * 2009-05-26 2010-12-09 Fujitsu Ltd ネットワークスイッチ装置及びその方法
JP2011004025A (ja) * 2009-06-17 2011-01-06 Alaxala Networks Corp パケット振り分け方法及び装置
JP2013504913A (ja) * 2009-09-15 2013-02-07 ナパテック アクティーゼルスカブ データパケットを分析するための装置、データパケット処理システム、及び処理方法
US8565087B2 (en) 2009-11-12 2013-10-22 Hitachi, Ltd. Apparatus having packet allocation function and packet allocation method
JP2011103614A (ja) * 2009-11-12 2011-05-26 Hitachi Ltd パケット振り分け機能を有する装置及びパケット振り分け方式
JP2011259007A (ja) * 2010-06-04 2011-12-22 Alaxala Networks Corp ロードバランス機能を備えたパケット転送方法およびパケット転送装置
JP2013546245A (ja) * 2010-10-29 2013-12-26 テレフオンアクチーボラゲット エル エム エリクソン(パブル) 最短パスブリッジングネットワークにおける負荷バランシング
JPWO2019172310A1 (ja) * 2018-03-07 2021-02-12 日本電気株式会社 端末装置、スイッチ、ネットワークシステム、試験方法及びプログラム
US11431604B2 (en) 2018-03-07 2022-08-30 Nec Corporation Terminal apparatus, switch, network system, test method and program

Also Published As

Publication number Publication date
US20080037544A1 (en) 2008-02-14
US7969880B2 (en) 2011-06-28
JP5086585B2 (ja) 2012-11-28
US8625423B2 (en) 2014-01-07
US20110255534A1 (en) 2011-10-20

Similar Documents

Publication Publication Date Title
JP5086585B2 (ja) ネットワーク中継装置
JP4908969B2 (ja) パケットを中継する装置および方法
US8248925B2 (en) Method and apparatus for selecting between multiple equal cost paths
US9246810B2 (en) Hash-based load balancing with per-hop seeding
US8576721B1 (en) Local forwarding bias in a multi-chassis router
CN103210617B (zh) 用于减少网络中的消息和计算开销的方法和系统
EP2614618B1 (en) Automated traffic engineering for multi-protocol label switching (mpls) with link utilization as feedback into the tie-breaking mechanism
US8036126B2 (en) System and method for compressing internet protocol routing tables
US11095553B2 (en) Method, apparatus and system for controlling routing information advertising
US20120177036A1 (en) Simple fairness protocols for daisy chain interconnects
Lei et al. Multipath routing in SDN-based data center networks
US10855572B2 (en) Area abstraction extensions to routing protocols
US9203744B2 (en) Convergence of multi-destination traffic in a network environment
US11070472B1 (en) Dynamically mapping hash indices to member interfaces
WO2023011153A1 (zh) 负载均衡的哈希算法信息的确定方法、装置及存储介质
JP5374290B2 (ja) ネットワーク中継装置
KR101489674B1 (ko) 부하 분산을 위한 다중 경로 지역 최적화 기법
US20240031271A1 (en) Equal-cost multi-path (ecmp) routing with resiliency and consistent ordering
US11736385B1 (en) Distributed flooding technique
US20230068443A1 (en) Dynamic packet routing using prioritized groups
CN115941676A (zh) 多节点高性能计算集群网络流量负载均衡调度方法及装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081211

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110523

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110531

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110719

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111206

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120508

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120803

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

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20120814

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: 20120904

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120907

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 5086585

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150914

Year of fee payment: 3

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