JP6446986B2 - 情報処理システム、制御装置、制御装置の制御プログラム、およびスイッチ装置 - Google Patents

情報処理システム、制御装置、制御装置の制御プログラム、およびスイッチ装置 Download PDF

Info

Publication number
JP6446986B2
JP6446986B2 JP2014210175A JP2014210175A JP6446986B2 JP 6446986 B2 JP6446986 B2 JP 6446986B2 JP 2014210175 A JP2014210175 A JP 2014210175A JP 2014210175 A JP2014210175 A JP 2014210175A JP 6446986 B2 JP6446986 B2 JP 6446986B2
Authority
JP
Japan
Prior art keywords
port
packet
unit
information
flow
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
JP2014210175A
Other languages
English (en)
Other versions
JP2016082333A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2014210175A priority Critical patent/JP6446986B2/ja
Priority to US14/825,440 priority patent/US10057192B2/en
Publication of JP2016082333A publication Critical patent/JP2016082333A/ja
Application granted granted Critical
Publication of JP6446986B2 publication Critical patent/JP6446986B2/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
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • H04L49/253Routing or path finding in a switch fabric using establishment or release of connections between ports
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3009Header conversion, routing tables or routing tags
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/50Overload detection or protection within a single switching element
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

Description

本発明は、情報処理システム、制御装置制御装置の制御プログラム、およびスイッチ装置に関する。
物理ネットワーク上に、トンネリングにより論理的な複数のネットワークを構築するオーバレイネットワークが知られている。このようなオーバレイネットワークにおいて、クライアントパケットは、カプセル化され、カプセル化されたパケットのヘッダに論理ネットワークの識別子が格納される。そして、カプセル化されたパケットは、ヘッダに含まれる識別子に対応する論理ネットワーク内で転送される。各論理ネットワークは、VTEP(VXLAN Tunnel End Point)等の終端装置で終端される。
また、パケットのヘッダ情報から算出されたハッシュ値に基づいて、パケットを送信する送信ポートを選択し、選択した送信ポートからパケットを送信するパケット伝送方法が知られている。ハッシュ値の計算には、例えばヘッダ情報内の5タプルが用いられる。5タプルとは、送信元IPアドレス、宛先IPアドレス、送信元ポート番号、宛先ポート番号、およびプロトコル番号である。これにより、ネットワーク内で、一連のパケットを含むフローの伝送経路の偏りを抑制することができる。
しかし、データセンタ等におけるオーバレイネットワークでは、トンネリングの終端装置間でパケットが伝送されるため、同一の終端装置のペアの間で伝送されるパケットのヘッダ情報は同一となる。そのため、ヘッダ情報から算出されるハッシュ値も同一となり、パケットの伝送経路が偏る場合がある。これを回避するため、カプセル化されたパケットのヘッダ内の送信元ポート番号を、クライアントパケットから算出したハッシュ値で置き換える技術が知られている。
特開2004−254132号公報
ところで、パケットのヘッダ情報から算出されたハッシュ値に基づいてパケットを送信するポートを選択する場合、長期的に見れば、理論的には各ポートが一様に選択されることになり、フローの伝送経路の偏りが抑制される。しかし、短期的にみると、各ポートが必ずしも一様に選択されるとは限らない。そのため、短期的には、一部のポートに選択が集中し、ネットワーク内の一部の伝送経路にフローが集中する場合がある。
また、オーバレイネットワークにおいて、クライアントパケットから算出したハッシュ値を、カプセル化されたパケットのヘッダ内に格納する場合、ハッシュ値の算出アルゴリズムは、カプセル化を行う装置に搭載されるハイパーバイザに依存している。そのため、カプセル化を行う装置のユーザは、クライアントパケットに対して、どのようなハッシュ値が算出されるかは分からず、クライアントパケットを含むパケットが、どのポートから送信されるかが分からない。そのため、経路毎にどのようなフローの分布になっているのかが分からない。
本願に開示の技術は、フローの偏りの抑制等、フローの伝送経路のきめ細かい運用管理を可能とする。
1つの側面では、情報処理システムは、複数のポートを有する第1のスイッチ装置と、複数のポートを介して第1のスイッチ装置に接続された第2のスイッチ装置と、第1のスイッチ装置を制御する制御装置とを有する。制御装置は、記憶部と、特定部と、変更指示送信部とを有する。記憶部は、一連のパケットを含むそれぞれのフローを識別するフロー情報に対応付けて、フローに含まれるパケットが送信されるポートのポート情報を格納するフローテーブルと、ポート毎の使用率を格納する使用率テーブルとを記憶する。特定部は、フローテーブルおよび使用率テーブルを参照して、送信するポートを変更するフローおよびフローが送信される変更後のポートのポート情報を特定する。変更指示送信部は、特定部が特定したフローのフロー情報と、変更後のポートのポート情報とを含む変更指示を、第1のスイッチ装置へ送信する。第1のスイッチ装置は、第1の受信部と、選択部と、パケット送信部と、書換部とを有する。第1の受信部は、パケットを受信する。選択部は、第1の受信部が受信したパケットのヘッダ情報に基づいて、パケットを送信するポートを選択する。パケット送信部は、第1の受信部が受信したパケットを、選択部が選択したポートから送信する。書換部は、変更指示を制御装置から受信した場合、変更指示内のフロー情報で特定されるフローに含まれるパケットのヘッダ情報内の情報を、選択部によって変更指示内のポート情報に対応するポートが選択される情報となるように書き換える。
1実施形態によれば、フローの偏りの抑制等、フローの伝送経路のきめ細かい運用管理が可能となる。
図1は、情報処理システムの一例を示す図である。 図2は、情報処理システムにおいて伝送されるパケットのヘッダの一例を示す図である。 図3は、実施例1における制御装置の一例を示すブロック図である。 図4は、負荷分散テーブルの一例を示す図である。 図5は、統計情報テーブルの一例を示す図である。 図6は、実施例1におけるスイッチ装置の一例を示すブロック図である。 図7は、ハッシュテーブルの一例を示す図である。 図8は、書き換えテーブルの一例を示す図である。 図9は、実施例1における制御装置の動作の一例を示すフローチャートである。 図10は、実施例1におけるスイッチ装置の動作の一例を示すフローチャートである。 図11は、実施例1におけるパケット転送処理の一例を示すフローチャートである。 図12は、ポート番号応答処理の一例を示すフローチャートである。 図13は、実施例1における書き換え設定処理の一例を示すフローチャートである。 図14は、実施例2におけるパケット転送処理の一例を示すフローチャートである。 図15は、実施例2における制御装置の動作の一例を示すフローチャートである。 図16は、実施例3における制御装置の一例を示すブロック図である。 図17は、スイッチテーブルの一例を示す図である。 図18は、実施例3におけるスイッチ装置の一例を示すブロック図である。 図19は、書き戻し依頼パケットのフォーマットの一例を示す図である。 図20は、実施例3における制御装置の動作の一例を示すフローチャートである。 図21は、実施例3におけるスイッチ装置の動作の一例を示すフローチャートである。 図22は、実施例3における書き換え設定処理の一例を示すフローチャートである。 図23は、制御装置の機能を実現するコンピュータの一例を示す図である。
以下に、本願の開示する情報処理システム、制御装置制御装置の制御プログラム、およびスイッチ装置の実施例を、図面に基づいて詳細に説明する。なお、以下の実施例は開示の技術を限定するものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
[情報処理システム10]
図1は、情報処理システム10の一例を示す図である。情報処理システム10は、制御装置20、複数のスイッチ装置30−1〜30−8、および複数の通信装置14−1〜14−8を有する。情報処理システム10は、例えばデータセンタに設けられる。複数の通信装置14−1〜14−8のそれぞれは、例えばサーバである。なお、以下では、複数のスイッチ装置30−1〜30−8のそれぞれを区別することなく総称する場合にスイッチ装置30と記載する。また、複数の通信装置14−1〜14−8のそれぞれを区別することなく総称する場合に通信装置14と記載する。
情報処理システム10は、複数のスイッチ装置30−1〜30−4を含む上位スイッチ群11と、複数のスイッチ装置30−5〜30−8を含む下位スイッチ群12を有する。複数のスイッチ装置30−1〜30−4は、例えばSpineスイッチである。また、複数のスイッチ装置30−5〜30−8は、例えばLeafスイッチである。下位スイッチ群12に含まれるスイッチ装置30−5〜30−8のそれぞれは、上位スイッチ群11に含まれる複数のスイッチ装置30−1〜30−4の中の2つ以上のスイッチ装置30に接続される。また、下位スイッチ群12に含まれるスイッチ装置30−5〜30−8のそれぞれは、通信装置14に接続される。複数のスイッチ装置30は、例えばファットツリーのトポロジーを構成する。
本実施例において、それぞれの通信装置14では、複数の仮想サーバが実現されている。それぞれの仮想サーバは、複数のスイッチ装置30で構築された物理ネットワーク上に実現された論理ネットワークを介して、他の通信装置14に設けられた仮想サーバと通信を行う。論理ネットワークは、通信装置14内に設けられたVTEP等の終端装置により終端される。論理ネットワークは、例えばVXLAN(Virtual eXtensible Local Area Network)により実現される。それぞれのスイッチ装置30は、例えば図1の実線で示したデータネットワークによって互いに接続される。また、それぞれのスイッチ装置30は、例えば図1の破線で示した管理ネットワークによって、制御装置20と接続される。
それぞれの通信装置14内に設けられた終端装置は、通信装置14内の仮想サーバが生成したオリジナルパケットのヘッダを用いてハッシュ値を算出する。そして、終端装置は、算出したハッシュ値を送信元ポート番号に設定したヘッダを生成し、生成したヘッダを有するパケットで、オリジナルパケットをカプセル化する。そして、オリジナルパケットをカプセル化したパケットを、データネットワークを介してスイッチ装置30へ送信する。各スイッチ装置30は、受信したパケットをパケットのヘッダの情報に従って他のスイッチ装置30へ転送する。
スイッチ装置30は、複数の送信ポートを有するアグリゲーションポートからパケットを送信する場合、オリジナルパケットから算出したハッシュ値に基づいて、アグリゲーションポートの中からパケットを送信する送信ポートを1つ選択する。そして、スイッチ装置30は、選択した送信ポートからパケットを送信する。スイッチ装置30によって転送されたパケットは、宛先の仮想サーバが実現された通信装置14へ送信され、通信装置14内の終端装置によってデカプセル化される。そして、オリジナルパケットの宛先の仮想サーバは、オリジナルパケットを受信する。
図2は、情報処理システム10において伝送されるパケットのヘッダの一例を示す図である。通信装置14内の仮想サーバから送信されたオリジナルパケットは、例えば通信装置14内に設けられたVTEPによりUDP(User Datagram Protocol)パケットとしてカプセル化される。例えば図2に示すように、パケットのヘッダ100内の送信元ポート番号102には、カプセル化されたオリジナルパケット101のヘッダから算出されたハッシュ値が格納される。以下では、オリジナルパケットをカプセル化し、情報処理システム10において伝送されるパケットを単にパケットと呼ぶ。
[制御装置20]
図3は、実施例1における制御装置20の一例を示すブロック図である。制御装置20は、制御部21、記憶部22、および管理ポート23を有する。制御部21は、収集部210、変更ポート特定部211、および変更指示送信部212を有する。記憶部22は、負荷分散テーブル220および統計情報テーブル221を記憶する。管理ポート23は、管理ネットワークを介して各スイッチ装置30に接続される。
図4は、負荷分散テーブル220の一例を示す図である。負荷分散テーブル220には、例えば図4に示すように、それぞれのスイッチ装置30を識別するスイッチID2200毎に、個別テーブル2201が格納される。それぞれの個別テーブル2201には、フローID2202、フロー情報2203、ポート番号2204、書き換え後のハッシュ値2205、変更後のポート番号2206、およびタイムスタンプ2207が対応付けて格納される。
フローID2202は、それぞれのフローを識別する情報である。フローとは、ネットワーク上を流れる共通の属性をもった一連のパケット群を指す。本実施例では、送信元IP(Internet Protocol)アドレス、宛先IPアドレス、送信元ポート番号、宛先ポート番号、およびプロトコル番号が共通のパケット群をフローと呼ぶ。本実施例において、送信元ポート番号には、カプセル化されたオリジナルパケットのヘッダから算出されたハッシュ値が格納される。
フロー情報2203は、フローに含まれるパケットが共通に有するヘッダの情報である。本実施例において、フロー情報2203には、送信元IPアドレス、宛先IPアドレス、送信元ポート番号、宛先ポート番号、およびプロトコル番号が含まれる。ポート番号2204は、フローに含まれるパケットが送信されるスイッチ装置30の送信ポートの番号である。書き換え後のハッシュ値2205は、パケットのヘッダ内の送信元ポート番号がスイッチ装置30によって書き換えられる場合の、送信元ポート番号に設定されるハッシュ値である。変更後のポート番号2206は、フローに含まれるパケットを送信する送信ポートが変更された後の送信ポートのポート番号である。タイムスタンプ2207は、タイムスタンプ2207に対応付けられたフローID2202、フロー情報2203、ポート番号2204、書き換え後のハッシュ値2205、または変更後のポート番号2206が更新された時刻を示す。
図5は、統計情報テーブル221の一例を示す図である。統計情報テーブル221には、例えば図5に示すように、スイッチID2210毎に、個別テーブル2211が格納される。それぞれの個別テーブル2211には、ポート番号2212、使用率2213、およびフラグ2214が対応付けて格納される。フラグ2214は、ポート番号2212に対応する送信ポートがアグリゲーションポートに割り当てられているか否かを示す情報である。フラグ2214には、対応するポート番号2212の送信ポートがアグリゲーションポートに割り当てられている場合には、例えば1が格納される。また、フラグ2214には、対応するポート番号2212の送信ポートがアグリゲーションポートに割り当てられていない場合には、例えば0が格納される。フラグ2214の値は、例えば情報処理システム10の管理者等によって設定される。
図3に戻って説明を続ける。収集部210は、情報処理システム10の管理者等からの指示に応じて、パケットのヘッダ情報を抽出する条件であるモニタリング条件を、管理ポート23を介してそれぞれのスイッチ装置30へ送信する。本実施例において、モニタリング条件とは、例えば、所定時間毎に受信したパケットのヘッダ情報を抽出するという条件である。なお、モニタリング条件は、所定数毎に受信したパケットのヘッダ情報を抽出するという条件等であってもよい。
また、収集部210は、管理ポート23を介してスイッチ装置30からヘッダ情報を受信した場合、受信したヘッダ情報から、フロー情報として、送信元IPアドレス、宛先IPアドレス、送信元ポート番号、宛先ポート番号、およびプロトコル番号を抽出する。そして、収集部210は、ヘッダ情報の送信元のスイッチ装置30に対応する個別テーブルを負荷分散テーブル220内で特定する。そして、収集部210は、特定した個別テーブル内に、ヘッダ情報から抽出したフロー情報が既に登録されているか否かを判定する。フロー情報が個別テーブル内に登録されていない場合、収集部210は、フロー情報に対応するフローIDを新たに生成する。そして、収集部210は、新たに生成したフローIDに対応付けて、フロー情報を個別テーブルに登録する。
フローIDに対応付けてフロー情報を個別テーブルに登録した場合、収集部210は、スイッチ装置30から受信したヘッダ情報から宛先MAC(Media Access Control)アドレスをさらに抽出する。そして、収集部210は、抽出したフロー情報に対応するフローに含まれるパケットが送信されるスイッチ装置30の送信ポートを問い合わせるためのパケットであるDestPhyPortGetパケットを生成する。そして、収集部210は、生成したDestPhyPortGetパケットを、管理ポート23を介して、ヘッダ情報の送信元のスイッチ装置30へ送信する。DestPhyPortGetパケットは、ポート問合せパケットの一例である。DestPhyPortGetパケットには、宛先MACアドレスと、フロー情報とが含まれる。
そして、管理ポート23を介してスイッチ装置30から送信ポートのポート番号を受信した場合、収集部210は、ポート番号の送信元のスイッチ装置30に対応する個別テーブルを負荷分散テーブル220内で特定する。そして、収集部210は、特定した個別テーブル内に、受信したポート番号を、DestPhyPortGetパケットに含まれるフロー情報に対応付けて登録する。
また、収集部210は、管理ポート23を介してスイッチ装置30から、送信ポート毎の使用率を受信した場合、送信ポート毎の使用率の送信元のスイッチ装置30に対応する個別テーブルを統計情報テーブル221内で特定する。そして、収集部210は、受信した送信ポート毎の使用率で、特定した個別テーブル内の使用率を更新する。
変更ポート特定部211は、記憶部22内の負荷分散テーブル220および統計情報テーブル221を参照して、送信ポートを変更するフロー、および、変更後の送信ポートのポート番号を特定する。例えば、変更ポート特定部211は、統計情報テーブル221を参照し、スイッチ装置30毎に、アグリゲーションポートに割り当てられた送信ポートの中で所定値以上の使用率が対応付けられている送信ポートのポート番号が存在するか否かを判定する。所定値とは、例えば90%の使用率である。
アグリゲーションポートに割り当てられた送信ポートの中に使用率が所定値以上の送信ポートが存在する場合、変更ポート特定部211は、アグリゲーションポートに割り当てられた送信ポートの中に、所定値未満の使用率の他の送信ポートが存在するか否かを判定する。アグリゲーションポートに割り当てられた送信ポートの中に所定値未満の使用率の他の送信ポートのポート番号が存在する場合、変更ポート特定部211は、使用率が所定値以上の送信ポートのポート番号を変更する送信ポートのポート番号として特定する。また、変更ポート特定部211は、使用率が所定値未満の他の送信ポートのポート番号を変更後の送信ポートのポート番号として特定する。
そして、変更ポート特定部211は、負荷分散テーブル220を参照して、変更する送信ポートのポート番号に対応付けられているフロー情報を、送信ポートを変更するフローのフロー情報として特定する。そして、変更ポート特定部211は、特定したフロー情報と、変更後の送信ポートのポート番号とを変更指示送信部212へ送信する。
変更指示送信部212は、変更ポート特定部211からフロー情報と送信ポートのポート番号とを受信した場合、受信したフロー情報とポート番号とを含むDestPhyPortSetパケットを作成する。そして、変更指示送信部212は、作成したDestPhyPortSetパケットを、管理ポート23を介してスイッチ装置30へ送信する。DestPhyPortSetパケットは、変更指示パケットの一例である。DestPhyPortSetパケットには、フロー情報として、送信元IPアドレス、宛先IPアドレス、送信元ポート番号、宛先ポート番号、およびプロトコル番号が含まれ、ポート番号として、変更後の送信ポートのポート番号が含まれる。
そして、変更指示送信部212は、DestPhyPortSetパケットに対する応答として、パケットのヘッダ内の送信元ポート番号に設定されるハッシュ値を、管理ポート23を介してスイッチ装置30から受信する。そして、変更指示送信部212は、受信したハッシュ値の送信元のスイッチ装置30に対応する個別テーブルを負荷分散テーブル220内で特定する。そして、変更指示送信部212は、特定した個別テーブル内に、DestPhyPortSetパケットに含まれるフロー情報に対応付けて、スイッチ装置30から受信したハッシュ値を、書き換え後のハッシュ値として登録する。また、変更指示送信部212は、特定した個別テーブル内に、DestPhyPortSetパケットに含まれるフロー情報に対応付けて、DestPhyPortSetパケットに含まれるポート番号を、変更後のポート番号として登録する。
[スイッチ装置30]
図6は、実施例1におけるスイッチ装置30の一例を示すブロック図である。スイッチ装置30は、制御部31、記憶部32、スイッチングモジュール33、複数の受信ポート34−1〜34−8、複数の送信キュー35−1〜35−8、複数の送信ポート36−1〜36−8、および管理ポート37を有する。複数の受信ポート34−1〜34−8のそれぞれは、データネットワークを介して、通信装置14または他のスイッチ装置30に接続される。複数の送信ポート36−1〜36−8のそれぞれは、データネットワークを介して、通信装置14または他のスイッチ装置30に接続される。管理ポート37は、管理ネットワークを介して制御装置20に接続される。
なお、以下では、複数の受信ポート34−1〜34−8のそれぞれを区別することなく総称する場合に受信ポート34と記載する。また、複数の送信キュー35−1〜35−8のそれぞれを区別することなく総称する場合に送信キュー35と記載する。また、複数の送信ポート36−1〜36−8のそれぞれを区別することなく総称する場合に送信ポート36と記載する。また、本実施例において、複数の受信ポート34、複数の送信キュー35、および複数の送信ポート36は、それぞれ8個ずつ設けられる。また、本実施例において、8個の送信ポート36の中の4個の送信ポート36は、アグリゲーションポートに割り当てられている。
記憶部32は、ハッシュテーブル320および書き換えテーブル321を記憶する。図7は、ハッシュテーブル320の一例を示す図である。ハッシュテーブル320には、例えば図7に示すように、インデックス3200に対応付けて、ハッシュ値3201が格納される。インデックス3200は、アグリゲーションポートに割り当てられた送信ポート36の数に対応している。本実施例において、アグリゲーションポートに割り当てられた送信ポート36は4個であるため、インデックス3200は、0から3の4個の値が割り当てられる。また、本実施例において、ハッシュ値3201は、情報処理システム10の管理者等によってインデックス3200毎に予め複数の値が算出されてハッシュテーブル320に格納される。
ここで、各インデックス3200に対応付けられたハッシュ値3201の算出方法について説明する。本実施例では、ハッシュ演算を例えばCRC(Cyclic Redundancy Check)演算を利用して行う。本実施例では、CRC演算として、例えばCRC16が用いられる。以下の計算では、CRC演算を利用したハッシュ演算を「LagHash()」で表す。
まず、16ビットの変数iの値を0から65535まで変化させ、それぞれの変数iについて、下記算出式(1)を計算することにより、65536個のハッシュ値tempを算出する。
temp=LagHash(0x0000000,0x00000000,i,0x0000,0x00) ・・・(1)
そして、算出したそれぞれのハッシュ値tempを、アグリゲーションポートに割り当てられた送信ポートの数で割り、余りを算出する。本実施例において、アグリゲーションポートに割り当てられた送信ポートの数は4である。そして、算出したそれぞれのハッシュ値tempを、算出した余りと等しい値のインデックに対応付けて、ハッシュテーブル320に登録する。これにより、図7に示すように、ハッシュ値3201が、ハッシュ値3201の下位2ビットの値のインデックス3200に対応付けられたハッシュテーブル320が生成される。
図8は、書き換えテーブル321の一例を示す図である。書き換えテーブル321には、例えば図8に示すように、フロー情報3210に対応付けて、ハッシュ値3211が格納される。本実施例において、フロー情報3210には、オリジナルパケットをカプセル化したパケットのヘッダに含まれる、送信元IPアドレス、宛先IPアドレス、送信元ポート番号、宛先ポート番号、およびプロトコル番号である。なお、フロー情報3210内の送信元ポート番号には、オリジナルパケットのヘッダから算出されたハッシュ値が格納されている。ハッシュ値3211は、フロー情報3210を含むヘッダを有するパケットをスイッチ装置30が受信した場合に、パケットのヘッダ内の送信元ポート番号がスイッチ装置30によって書き換えられる値である。
図6に戻って説明を続ける。スイッチングモジュール33は、パケット受信部330、ヘッダ情報抽出部331、ヘッダ書換部332、ポート特定部333、FDB334、ハッシュ計算部335、およびポート選択部336を有する。パケット受信部330は、通信装置14または他のスイッチ装置30から、それぞれの受信ポート34を介してパケットを受信する。そして、パケット受信部330は、受信したパケットを、ヘッダ情報抽出部331およびヘッダ書換部332へ送信する。
ヘッダ情報抽出部331は、パケット受信部330から受信したパケットの中で、制御部31から指示されたモニタリング条件に該当するパケットからヘッダ情報を抽出する。本実施例において、ヘッダ情報抽出部331は、パケット受信部330が受信したパケットを所定時間毎にサンプリングし、サンプリングしたパケットからヘッダ情報を抽出する。そして、ヘッダ情報抽出部331は、抽出したヘッダ情報を制御部31へ送信する。ヘッダ情報抽出部331は、例えばパケットの先頭から100バイト等の所定数分のビットのデータを機械的に切り取って、ヘッダ情報として制御部31へ送信してもよい。
ヘッダ書換部332は、パケット受信部330からパケットを受信した場合に、書き換えテーブル321を参照し、パケット受信部330から受信したパケットのヘッダに含まれるフロー情報を、書き換えテーブル321内で検索する。パケット受信部330から受信したパケットのヘッダに含まれるフロー情報が書き換えテーブル321内に存在しない場合、ヘッダ書換部332は、パケット受信部330から受信したパケットをポート特定部333へ送信する。
一方、パケット受信部330から受信したパケットのヘッダに含まれるフロー情報が書き換えテーブル321内に存在する場合、ヘッダ書換部332は、フロー情報に対応付けられているハッシュ値を書き換えテーブル321から取得する。そして、ヘッダ書換部332は、取得したハッシュ値で、パケット受信部330から受信したパケットのヘッダ内の送信元ポート番号を書き換える。そして、ヘッダ書換部332は、ヘッダ内の送信元ポート番号が書き換えられたパケットをポート特定部333へ送信する。
FDB334には、MACアドレスに対応付けて、送信ポート36のポート番号が格納されている。なお、アグリゲーションポートについては、MACアドレスに、アグリゲーションポートに割り当てられた複数の送信ポート36のポート番号が対応付けられている。
ポート特定部333は、ヘッダ書換部332からパケットを受信した場合、ヘッダ書換部332から受信したパケットのヘッダ内の宛先MACアドレスに対応付けられているポート番号を、FDB334を参照して特定する。そして、ポート特定部333は、特定したポート番号を、ヘッダ書換部332から受信したパケットと共に、ハッシュ計算部335へ送信する。ヘッダ書換部332から受信したパケットのヘッダ内の宛先MACアドレスに複数のポート番号が対応付けられている場合、ポート特定部333は、複数のポート番号を、FDB334を参照して特定し、パケットと共にハッシュ計算部335へ送信する。
また、ポート特定部333は、制御部31からMACアドレスを受信した場合、FDB334を参照して、制御部31から受信したMACアドレスに対応付けられているポート番号を特定する。そして、ポート特定部333は、特定したポート番号を制御部31へ送信する。
ハッシュ計算部335は、ポート特定部333からパケットと共にポート番号を受信した場合に、ポート特定部333から受信したポート番号が複数か否かを判定する。ポート特定部333から受信したポート番号が複数である場合、ハッシュ計算部335は、ポート特定部333から受信したパケットのヘッダ内のフロー情報を用いてハッシュ値を算出する。本実施例において、ハッシュ計算部335は、例えばCRC16等のCRC演算によりフロー情報からハッシュ値を算出する。そして、ハッシュ計算部335は、算出したハッシュ値を、ポート特定部333から受信した複数のポート番号およびパケットと共にポート選択部336へ送信する。一方、パケットと共にポート特定部333から受信したポート番号が1つである場合、ハッシュ計算部335は、ポート特定部333から受信したポート番号とパケットをポート選択部336へ送信する。
また、ハッシュ計算部335は、制御部31からフロー情報(送信元IPアドレス、宛先IPアドレス、宛先ポート番号、およびプロトコル番号)を受信した場合、受信したフロー情報を用いてハッシュ値を算出する。そして、ハッシュ計算部335は、算出したハッシュ値を制御部31へ送信する。また、ハッシュ計算部335は、制御部31から送信元IPアドレス、宛先IPアドレス、宛先ポート番号、およびプロトコル番号を受信した場合、送信元IPアドレス、宛先IPアドレス、宛先ポート番号、およびプロトコル番号を用いてハッシュ値を算出する。そして、ハッシュ計算部335は、算出したハッシュ値を制御部31へ送信する。
ポート選択部336は、ハッシュ計算部335からハッシュ値と共に、複数のポート番号とパケットを受信した場合、受信したハッシュ値に基づいて、受信した複数のポート番号の中から、ポート番号を1つ選択する。本実施例において、スイッチ装置30には、8個の送信ポート36が設けられており、8個の送信ポート36の中の4個の送信ポート36がアグリゲーションポートに割り当てられている。そして、それぞれのアグリゲーションポートには、0から3までのポート番号が割り当てられている。本実施例において、ポート選択部336は、ハッシュ計算部335から受信したハッシュ値の下位2ビットの値と同一のポート番号を1つ選択する。そして、ポート選択部336は、選択したポート番号に対応する送信ポート36に接続された送信キュー35に、ハッシュ計算部335から受信したパケットを格納する。
また、ポート選択部336は、ハッシュ計算部335からパケットと共に1つのポート番号を受信した場合、受信したポート番号に対応する送信ポート36に接続された送信キュー35に、受信したパケットを格納する。
また、ポート選択部336は、制御部31から複数のポート番号と共にハッシュ値を受信した場合、受信したハッシュ値に基づいて、受信した複数のポート番号の中からポート番号を1つ選択する。そして、ポート選択部336は、選択したポート番号を制御部31へ送信する。
送信キュー35は、それぞれの送信ポート36に対して1つずつ設けられる。送信キュー35は、ポート選択部336から格納されたパケットを、送信キュー35に接続された送信ポート36から送信する。
統計情報カウンタ337は、送信ポート36毎に、送信ポート36から送信されたパケット数を計数する。そして、統計情報カウンタ337は、送信ポート36毎に計数したパケット数に基づいて、送信ポート36毎の使用率を算出して保持する。そして、制御部31から使用率を要求された場合、統計情報カウンタ337は、送信ポート36毎の使用率を制御部31へ送信する。
制御部31は、ポート番号応答部310、ポート変更部311、モニタリング条件指示部312、統計情報送信部313、およびヘッダ情報送信部314を有する。ポート番号応答部310は、管理ポート37を介して制御装置20からDestPhyPortGetパケットを受信した場合、DestPhyPortGetパケットに含まれる宛先MACアドレスをポート特定部333へ送信する。そして、ポート番号応答部310は、ポート特定部333からポート番号を受信する。ポート特定部333から受信したポート番号が1つである場合、ポート番号応答部310は、ポート特定部333から受信したポート番号を、管理ポート37を介して制御装置20へ送信する。
一方、ポート特定部333から受信したポート番号が複数である場合、ポート番号応答部310は、DestPhyPortGetパケットに含まれるフロー情報をハッシュ計算部335へ送信する。そして、ポート番号応答部310は、ハッシュ計算部335からハッシュ値を受信する。そして、ポート番号応答部310は、ハッシュ計算部335から受信したハッシュ値を、ポート特定部333から受信した複数のポート番号と共にポート選択部336へ送信する。そして、ポート番号応答部310は、ポート選択部336からポート番号を1つ受信する。そして、ポート番号応答部310は、ポート選択部336から受信したポート番号を、管理ポート37を介して制御装置20へ送信する。
ポート変更部311は、管理ポート37を介して制御装置20からDestPhyPortSetパケットを受信した場合、DestPhyPortSetパケットに含まれるフロー情報に対応するフローに含まれるパケットのヘッダ内の送信元ポート番号と置き換えるハッシュ値を特定する。そして、ポート変更部311は、特定したハッシュ値を、DestPhyPortSetパケットに含まれるフロー情報に対応付けて、書き換えテーブル321に登録する。そして、ポート変更部311は、DestPhyPortSetパケットの応答として、書き換えテーブル321に登録したハッシュ値を、管理ポート37を介して制御装置20へ送信する。
ここで、ヘッダ内の送信元ポート番号と置き換えられるハッシュ値の特定方法について説明する。以下の計算では、CRC演算を利用したハッシュ演算を「LagHash()」で表す。また、32ビットの送信元IPアドレスを「SrcIP」で表し、32ビットの宛先IPアドレスを「DstIP」で表す。また、16ビットの送信元ポート番号を「SrcPort」で表し、16ビットの宛先ポート番号を「DstPort」で表し、8ビットのプロトコル番号を「Protocol」で表す。
まず、CRC演算の線形性により、以下の関係式(2)が成り立つ。
LagHash(SrcIP,DstIP,SrcPort,DstPort,Protocol)
=LagHash(SrcIP,DstIP,0x0000,DstPort,Protocol)
^LagHash(0x00000000,0x00000000,SrcPort,0x0000,0x00)
=temp1^temp2 ・・・(2)
ここで、temp1は、「SrcIP」、「DstIP」、「DstPort」、および「Protocol」の各値を用いて算出されたハッシュ値を表す。また、temp2は、「SrcPort」の値から算出されたハッシュ値を表す。また、「^」はXORを表す。
本実施例では、パケットが送信される送信ポート36のポート番号は、フロー情報を用いたハッシュ値の下位2ビットの値で選択される。そのため、ポート選択部336によって選択される送信ポート36のポート番号を「dest」で表すと、以下の関係式(3)が成り立つ。
dest=LagHash(SrcIP,DstIP,SrcPort,DstPort,Protocol) AND 0x0003
=(temp1^temp2) AND 0x0003 ・・・(3)
上記関係式(3)を変形すると、以下の関係式(4)が得られる。
temp1^dest=temp2 AND 0x0003 ・・・(4)
上記関係式(4)を参照すると、ハッシュ値temp1とポート番号destとのXORの計算結果と、下位2ビットが同じ値のハッシュ値temp2が「SrcPort」に設定されていれば、ポート番号destに対応する送信ポート36からパケットが送信されることが分かる。そのため、送信ポート36を変更する場合、ハッシュ値temp1と、変更後の送信ポート36のポート番号destとのXORと、下位2ビットが同じ値のハッシュ値temp2を「SrcPort」に設定すれば、変更後の送信ポート36からパケットが送信されることが分かる。下位2ビットの値をインデックスとする複数のハッシュ値は、図7に示したハッシュテーブル320に予め登録されている。そのため、ハッシュ値temp1と、変更後の送信ポート36のポート番号destとのXORと、下位2ビットが同じ値のハッシュ値temp2は、下位2ビットと同じ値のインデックスに対応付けられたハッシュ値の中から特定することができる。
本実施例において、ポート変更部311は、まず、制御装置20から受信したDestPhyPortSetパケットに含まれるフロー情報の中から、送信元IPアドレス、宛先IPアドレス、宛先ポート番号、およびプロトコル番号を抽出する。そして、ポート変更部311は、抽出した送信元IPアドレス、宛先IPアドレス、宛先ポート番号、およびプロトコル番号を、ハッシュ計算部335へ送信する。そして、ポート変更部311は、ハッシュ計算部335からハッシュ値temp1を受信する。
次に、ポート変更部311は、制御装置20から受信したDestPhyPortSetパケットに含まれている変更後の送信ポート36のポート番号と、ハッシュ計算部335から受信したハッシュ値temp1とのXORを計算する。そして、ポート変更部311は、ハッシュテーブル320を参照して、XORの計算結果の下位2ビットと同じ値のインデックスに対応付けられた複数のハッシュ値の中から、1つのハッシュ値をハッシュ値temp2として特定する。例えば、ポート変更部311は、ハッシュテーブル320内の複数のハッシュ値の中で、前回特定されてからの経過時間が最も長いハッシュ値を特定することが好ましい。そして、ポート変更部311は、特定したハッシュ値temp2を、DestPhyPortSetパケットに含まれるフロー情報に対応付けて、書き換えテーブル321に登録する。そして、ポート変更部311は、DestPhyPortSetパケットの応答として、書き換えテーブル321に登録したハッシュ値temp2を、管理ポート37を介して制御装置20へ送信する。
これにより、DestPhyPortSetパケットに含まれるフロー情報に対応するフローに含まれるパケットのヘッダ内の送信元ポート番号と置き換えられるハッシュ値temp2が、書き換えテーブル321に登録される。そして、ヘッダ書換部332は、書き換えテーブル321に登録されたフロー情報を含むヘッダを有するパケットについて、パケットのヘッダ内の送信元ポート番号を、書き換えテーブル321に格納されたハッシュ値temp2で書き換える。そして、ハッシュ計算部335は、送信元ポート番号が書き換えられたヘッダ内のフロー情報を用いてハッシュ値を算出し、ポート選択部336は、算出されたハッシュ値に基づいて送信ポート36を選択する。これにより、DestPhyPortSetパケットに含まれたフロー情報をヘッダに含むパケットが、DestPhyPortSetパケットに含まれたポート番号の送信ポート36から送信される。
これにより、制御装置20は、フローに含まれるパケットが送信される送信ポート36を任意に変更することができる。そのため、制御装置20は、複数のスイッチ装置30により構成された情報処理システム10において、フローの伝送経路の偏りを抑制することができる。また、制御装置20は、特定のスイッチ装置30を通るフローを増減させることも可能となる。このように、制御装置20は、フローの伝送経路のきめ細かい運用管理を行うことができる。
モニタリング条件指示部312は、管理ポート37を介して制御装置20からパケットのモニタリング条件を受信し、受信したモニタリング条件をヘッダ情報抽出部331に指示する。統計情報送信部313は、所定のタイミング毎に、統計情報カウンタ337に送信ポート36毎の使用率を要求し、送信ポート36毎の使用率を統計情報カウンタ337から受信する。そして、統計情報送信部313は、受信した送信ポート36毎の使用率を、管理ポート37を介して制御装置20へ送信する。ヘッダ情報送信部314は、ヘッダ情報抽出部331からヘッダ情報を受信する。そして、ヘッダ情報送信部314は、受信したヘッダ情報を、管理ポート37を介して制御装置20へ送信する。
[制御装置20の動作]
図9は、実施例1における制御装置20の動作の一例を示すフローチャートである。
まず、収集部210は、管理ポート23を介してスイッチ装置30からヘッダ情報を受信したか否かを判定する(S100)。スイッチ装置30からヘッダ情報を受信した場合(S100:Yes)、収集部210は、受信したヘッダ情報から、フロー情報として、送信元IPアドレス、宛先IPアドレス、送信元ポート番号、宛先ポート番号、およびプロトコル番号を抽出する。そして、収集部210は、ヘッダ情報の送信元のスイッチ装置30に対応する個別テーブルを負荷分散テーブル220内で特定する。そして、収集部210は、特定した個別テーブル内に、受信したヘッダ情報から抽出したフロー情報が既に登録されているか否かを判定する(S101)。
ヘッダ情報から抽出されたフロー情報が個別テーブル内に既に登録されている場合(S101:Yes)、変更ポート特定部211は、ステップS106に示す処理を実行する。一方、ヘッダ情報から抽出したフロー情報が個別テーブル内に登録されていない場合(S101:No)、収集部210は、負荷分散テーブル220内に空きがあるか否かを判定する(S102)。負荷分散テーブル220内に空きがある場合(S102:Yes)、収集部210は、ステップS103に示す処理を実行する。
一方、負荷分散テーブル220内に空きがない場合(S102:No)、収集部210は、負荷分散テーブル220内のエントリを1つ削除する(S105)。収集部210は、例えば、タイムスタンプが示す時刻からの経過時間が最も長いタイムスタンプを含むエントリを負荷分散テーブル220から削除する。負荷分散テーブル220内のエントリとは、フロー情報、ポート番号、書き換え後のハッシュ値、変更後のポート番号、およびタイムスタンプである。
次に、収集部210は、ヘッダ情報から宛先MACアドレスをさらに抽出し、ヘッダ情報から抽出した宛先MACアドレスおよびフロー情報を含むDestPhyPortGetパケットを生成する。そして、収集部210は、生成したDestPhyPortGetパケットをヘッダ情報の送信元のスイッチ装置30へ送信する(S103)。そして、収集部210は、スイッチ装置30からポート番号を受信する。そして、収集部210は、ヘッダ情報から抽出したフロー情報に対応するフローIDを生成し、生成したフローIDに対応付けて、フロー情報およびスイッチ装置30から受信したポート番号を負荷分散テーブル220内の個別テーブルに登録する(S104)。
次に、変更ポート特定部211は、フローに含まれるパケットが送信される送信ポート36を変更するか否かを判定する(S106)。変更ポート特定部211は、例えば、アグリゲーションポートに割り当てられた送信ポート36の中で、使用率が所定値以上の送信ポート36を、変更する送信ポート36と判定する。変更ポート特定部211が送信ポート36を変更しない場合(S106:No)、収集部210は、再びステップS100に示した処理を実行する。
一方、送信ポート36を変更する場合(S106:Yes)、変更ポート特定部211は、変更後の送信ポート36を特定する(S107)。変更ポート特定部211は、例えば、アグリゲーションポートに割り当てられた送信ポート36の中で、使用率が所定値未満の他の送信ポート36を、変更後の送信ポート36として特定する。そして、変更ポート特定部211は、送信するパケットが含まれるフローのフロー情報と、変更後の送信ポートのポート番号とを変更指示送信部212へ送信する。
次に、変更指示送信部212は、変更ポート特定部211から受信したフロー情報とポート番号とを含むDestPhyPortSetパケットを作成する。そして、変更指示送信部212は、作成したDestPhyPortSetパケットを、管理ポート23を介してスイッチ装置30へ送信する(S108)。そして、変更指示送信部212は、DestPhyPortSetパケットに対する応答として、パケットのヘッダ内の送信元ポート番号と置き換えられるハッシュ値を、スイッチ装置30から受信したか否かを判定する(S109)。
ハッシュ値をスイッチ装置30から受信した場合(S109:Yes)、変更指示送信部212は、受信したハッシュ値の送信元のスイッチ装置30のスイッチIDに対応する個別テーブルを負荷分散テーブル220内で特定する。そして、変更指示送信部212は、特定した個別テーブル内に、DestPhyPortSetパケットに含まれるフロー情報に対応付けて、スイッチ装置30から受信したハッシュ値を、書き換え後のハッシュ値として登録する。また、変更指示送信部212は、特定した個別テーブル内に、DestPhyPortSetパケットに含まれるフロー情報に対応付けて、DestPhyPortSetパケットに含まれるポート番号を、変更後のポート番号として登録する(S110)。そして、収集部210は、再びステップS100に示した処理を実行する。
収集部210がスイッチ装置30からヘッダ情報を受信していない場合(S100:No)、収集部210は、管理ポート23を介してスイッチ装置30から、送信ポート36毎の使用率を受信したか否かを判定する(S111)。送信ポート36毎の使用率を受信した場合(S111:Yes)、収集部210は、送信ポート36毎の使用率の送信元のスイッチ装置30に対応する個別テーブルを統計情報テーブル221内で特定する。そして、収集部210は、受信した送信ポート36毎の使用率で、特定した個別テーブル内の使用率を更新する(S112)。そして、収集部210は、再びステップS100に示した処理を実行する。
[スイッチ装置30の動作]
図10は、実施例1におけるスイッチ装置30の動作の一例を示すフローチャートである。なお、図10に示すフローチャートに先立って、モニタリング条件指示部312は、制御装置20からモニタリング条件を受信し、受信したモニタリング条件をヘッダ情報抽出部331に指示している。
まず、パケット受信部330は、受信ポート34を介してパケットを受信したか否かを判定する(S200)。パケットを受信した場合(S200:Yes)、パケット受信部330は、受信したパケットを、ヘッダ情報抽出部331およびヘッダ書換部332へ送信する。そして、スイッチ装置30は、後述するパケット転送処理を実行する(S210)。そして、パケット受信部330は、再びステップS200に示した処理を実行する。
一方、パケット受信部330がパケットを受信していない場合(S200:No)、ポート番号応答部310は、管理ポート37を介して制御装置20からDestPhyPortGetパケットを受信したか否かを判定する(S201)。ポート番号応答部310がDestPhyPortGetパケットを受信した場合(S201:Yes)、スイッチ装置30は、後述するポート番号応答処理を実行する(S230)。そして、パケット受信部330は、再びステップS200に示した処理を実行する。
一方、ポート番号応答部310がDestPhyPortGetパケットを受信していない場合(S201:No)、ポート変更部311は、管理ポート37を介して制御装置20からDestPhyPortSetパケットを受信したか否かを判定する(S202)。ポート変更部311がDestPhyPortSetパケットを受信した場合(S202:Yes)、スイッチ装置30は、後述する書き換え設定処理を実行する(S240)。そして、パケット受信部330は、再びステップS200に示した処理を実行する。
一方、ポート変更部311がDestPhyPortSetパケットを受信していない場合(S202:No)、統計情報送信部313は、送信ポート36毎の使用率の送信タイミングか否かを判定する(S203)。送信ポート36毎の使用率の送信タイミングではない場合(S203:No)、パケット受信部330は、再びステップS200に示した処理を実行する。
一方、送信ポート36毎の使用率の送信タイミングである場合(S203:Yes)、統計情報送信部313は、統計情報カウンタ337に送信ポート36毎の使用率を要求し、送信ポート36毎の使用率を統計情報カウンタ337から受信する。そして、統計情報送信部313は、受信した送信ポート36毎の使用率を、管理ポート37を介して制御装置20へ送信する(S204)。そして、パケット受信部330は、再びステップS200に示した処理を実行する。
[パケット転送処理]
図11は、実施例1におけるパケット転送処理の一例を示すフローチャートである。
まず、ヘッダ情報抽出部331は、パケット受信部330から受信したパケットが、制御部31から指示されたモニタリング条件に該当するか否かを判定する(S211)。パケット受信部330から受信したパケットがモニタリング条件に該当しない場合(S211:No)、ヘッダ書換部332は、ステップS214に示す処理を実行する。
一方、パケット受信部330から受信したパケットがモニタリング条件に該当する場合(S211:Yes)、ヘッダ情報抽出部331は、パケット受信部330から受信したパケットからヘッダ情報を抽出する(S212)。そして、ヘッダ情報抽出部331は、抽出したヘッダ情報を、ヘッダ情報送信部314へ送信する。ヘッダ情報送信部314は、ヘッダ情報抽出部331から受信したヘッダ情報を、管理ポート37を介して制御装置20へ送信する(S213)。
次に、ヘッダ書換部332は、パケット受信部330から受信したパケットのヘッダからフロー情報を抽出する。そして、ヘッダ書換部332は、抽出したフロー情報が、書き換えテーブル321に登録されているか否かを判定することにより、パケット受信部330から受信したパケットがヘッダの書き換え対象のパケットか否かを判定する(S214)。パケット受信部330から受信したパケットがヘッダの書き換え対象のパケットではない場合(S214:No)、ヘッダ書換部332は、パケット受信部330から受信したパケットを、ヘッダを書き換えることなくポート特定部333へ送信する。そして、ポート特定部333は、ステップS216に示す処理を実行する。
一方、パケット受信部330から受信したパケットがヘッダの書き換え対象のパケットである場合(S214:Yes)、ヘッダ書換部332は、ヘッダから抽出したフロー情報に対応付けて書き換えテーブル321に登録されているハッシュ値を取得する。そして、ヘッダ書換部332は、取得したハッシュ値で、パケット受信部330から受信したパケットのヘッダ内の送信元ポート番号を書き換える(S215)。そして、ヘッダ書換部332は、ヘッダ内の送信元ポート番号を書き換えたパケットをポート特定部333へ送信する。
次に、ポート特定部333は、FDB334を参照して、ヘッダ書換部332から受信したパケットのヘッダ内の宛先MACアドレスに対応付けられているポート番号を特定する(S216)。そして、ポート特定部333は、特定したポート番号を、ヘッダ書換部332から受信したパケットと共に、ハッシュ計算部335へ送信する。
次に、ハッシュ計算部335は、ポート特定部333によって複数のポート番号が特定されたか否かを判定する(S217)。ポート特定部333によって複数のポート番号が特定された場合(S217:Yes)、ハッシュ計算部335は、ポート特定部333から受信したパケットのヘッダ内のフロー情報を用いてハッシュ値を算出する(S218)。そして、ハッシュ計算部335は、算出したハッシュ値を、ポート特定部333から受信した複数のポート番号およびパケットと共にポート選択部336へ送信する。
次に、ポート選択部336は、ハッシュ計算部335から受信したハッシュ値に基づいて、ハッシュ計算部335から受信した複数のポート番号の中から、ポート番号を1つ選択する(S219)。そして、ポート選択部336は、選択したポート番号に対応する送信ポート36に接続された送信キュー35に、ハッシュ計算部335から受信したパケットを格納する。送信キュー35は、格納されたパケットを、送信キュー35に接続された送信ポート36から送信する(S220)。
一方、ポート特定部333によって1つのポート番号が特定された場合(S217:No)、ハッシュ計算部335は、ポート特定部333から受信したポート番号とパケットをポート選択部336へ送信する。ポート選択部336は、ポート特定部333によって特定されたポート番号に対応する送信ポート36に接続された送信キュー35に、ハッシュ計算部335から受信したパケットを格納する。送信キュー35は、格納されたパケットを、送信キュー35に接続された送信ポート36から送信する(S221)。
[ポート番号応答処理]
図12は、ポート番号応答処理の一例を示すフローチャートである。
まず、ポート番号応答部310は、管理ポート37を介して制御装置20から受信したDestPhyPortGetパケットに含まれる宛先MACアドレスをポート特定部333へ送信する。ポート特定部333は、FDB334を参照して、ポート番号応答部310から受信した宛先MACアドレスに対応付けられたポート番号を特定する(S231)。そして、ポート特定部333は、特定したポート番号をポート番号応答部310へ送信する。
ポート番号応答部310は、ポート特定部333によって複数のポート番号が特定されたか否かを判定する(S232)。ポート特定部333によって1つのポート番号が特定された場合(S232:No)、ポート番号応答部310は、ポート特定部333から受信したポート番号を、管理ポート37を介して制御装置20へ送信する(S235)。
一方、ポート特定部333によって複数のポート番号が特定された場合(S232:Yes)、ポート番号応答部310は、制御装置20から受信したDestPhyPortGetパケットに含まれるフロー情報をハッシュ計算部335へ送信する。ハッシュ計算部335は、ポート番号応答部310から受信したフロー情報を用いてハッシュ値を算出する(S233)。そして、ハッシュ計算部335は、算出したハッシュ値をポート番号応答部310へ送信する。
次に、ポート番号応答部310は、ハッシュ計算部335から受信したハッシュ値を、ポート特定部333から受信した複数のポート番号と共にポート選択部336へ送信する。ポート選択部336は、ポート番号応答部310から受信したハッシュ値に基づいて、ポート番号応答部310から受信した複数のポート番号の中からポート番号を1つ選択する(S234)。そして、ポート選択部336は、選択したポート番号をポート番号応答部310へ送信する。ポート番号応答部310は、ステップS235に示した処理を実行する。
[書き換え設定処理]
図13は、実施例1における書き換え設定処理の一例を示すフローチャートである。
まず、ポート変更部311は、管理ポート37を介して制御装置20から受信したDestPhyPortSetパケットに含まれるフロー情報の中から、送信元IPアドレス、宛先IPアドレス、宛先ポート番号、およびプロトコル番号を抽出する。そして、ポート変更部311は、抽出した送信元IPアドレス、宛先IPアドレス、宛先ポート番号、およびプロトコル番号を、ハッシュ計算部335へ送信する。ハッシュ計算部335は、ポート変更部311から受信した送信元IPアドレス、宛先IPアドレス、宛先ポート番号、およびプロトコル番号を用いて、前述のハッシュ値temp1を算出する(S241)。そして、ハッシュ計算部335は、算出したハッシュ値temp1をポート変更部311へ送信する。
次に、ポート変更部311は、制御装置20から受信したDestPhyPortSetパケットに含まれている変更後の送信ポート36のポート番号と、ハッシュ計算部335から受信したハッシュ値temp1とのXORを計算する(S242)。そして、ポート変更部311は、ハッシュテーブル320を参照して、XORの計算結果の下位2ビットと同じ値のインデックスに対応付けられた複数のハッシュ値の中から、1つのハッシュ値をハッシュ値temp2として特定する(S243)。そして、ポート変更部311は、特定したハッシュ値temp2を、DestPhyPortSetパケットに含まれるフロー情報に対応付けて、書き換えテーブル321に登録する(S244)。そして、ポート変更部311は、DestPhyPortSetパケットの応答として、書き換えテーブル321に登録したハッシュ値を、管理ポート37を介して制御装置20へ送信する(S245)。
[効果]
上述したように、本実施例の制御装置20は、サンプリングされたパケットのヘッダ情報を収集し、パケットが送信される送信ポートのポート番号に対応付けて、パケットを含むフローの情報を管理する。そして、フローに含まれるパケットを送信する送信ポートを変更する場合、制御装置20は、フローの情報と変更後の送信ポートのポート番号とをスイッチ装置30に指示する。スイッチ装置30は、制御装置20から指示されたフローに含まれるパケットが送信される送信ポートのポート番号として、制御装置20から指示されたポート番号が選択されるように、ヘッダ内の送信元ポート番号に設定されるハッシュ値を算出する。そして、スイッチ装置30は、制御装置20から指示されたフローに含まれるパケットを受信した場合、受信したパケットの送信元ポート番号を、算出したハッシュ値に書き換える。これにより、制御装置20から指示されたフローに含まれるパケットを含むフローが、制御装置20から指示された、変更後のポート番号に対応する送信ポートから送信される。これにより、制御装置20は、フローの伝送経路のきめ細かい運用管理を行うことができる。
実施例1におけるヘッダ情報抽出部331は、所定時間または所定個数毎に、パケット受信部330が受信したパケットのヘッダ情報を抽出する。これに対し、本実施例におけるヘッダ情報抽出部331は、受信部330が受信したパケットの中で、カプセル化されているオリジナルパケットの属性に応じて、パケットのヘッダ情報を抽出するか否かを判定する点が異なる。
本実施例におけるヘッダ情報抽出部331は、カプセル化されているオリジナルパケットが、例えばTCP等のコネクション型の通信に用いられるパケットであり、かつ、コネクションの確立または解放を示すパケットである場合、パケットのヘッダ情報を抽出する。なお、カプセル化されたオリジナルパケットが、UDP等のコネクションレス型の通信に用いられるパケットである場合、ヘッダ情報抽出部331は、実施例1と同様に、所定時間又は所定個数毎にパケット受信部330が受信したパケットのヘッダ情報を抽出する。
なお、本実施例における情報処理システム10、制御装置20、およびスイッチ装置30は、図1から図8を用いて説明した実施例1における情報処理システム10、制御装置20、およびスイッチ装置30と同様であるため、詳細な説明を省略する。また、本実施例におけるスイッチ装置30の動作は、図10を用いて説明した実施例1におけるスイッチ装置30の動作と同様であるため、詳細な説明を省略する。また、本実施例のスイッチ装置30におけるポート番号応答処理は、図12を用いて説明した実施例1のスイッチ装置30におけるポート番号応答処理と同様であるため、詳細な説明を省略する。また、本実施例のスイッチ装置30における書き換え設定処理は、図13を用いて説明した実施例1のスイッチ装置30における書き換え設定処理と同様であるため、詳細な説明を省略する。
[パケット転送処理]
図14は、実施例2におけるパケット転送処理の一例を示すフローチャートである。本実施例のスイッチ装置30におけるパケット転送処理は、以下に説明する点を除き、図11を用いて説明した実施例1のスイッチ装置30におけるパケット転送処理と同様である。そのため、以下では、主に、実施例1におけるパケット転送処理と異なる点について説明する。
まず、ヘッダ情報抽出部331は、パケット受信部330から受信したパケットにカプセル化されているオリジナルパケットのヘッダを抽出する。そして、ヘッダ情報抽出部331は、抽出したヘッダ内のプロトコル番号を参照して、オリジナルパケットがコネクションレス型の通信に用いられるパケットか否かを判定する(S225)。オリジナルパケットがコネクションレス型の通信に用いられるパケットである場合(S225:Yes)、ヘッダ情報抽出部331は、パケット受信部330から受信したパケットがモニタリング条件に該当するか否かを判定する(S211)。
パケット受信部330から受信したパケットがモニタリング条件に該当しない場合(S211:No)、ヘッダ書換部332は、図11のステップS214に示した処理を実行する。一方、パケット受信部330から受信したパケットがモニタリング条件に該当する場合(S211:Yes)、ヘッダ情報抽出部331は、パケット受信部330から受信したパケットからヘッダ情報を抽出する(S212)。そして、ヘッダ情報抽出部331は、抽出したヘッダ情報を、ヘッダ情報送信部314へ送信する。ヘッダ情報送信部314は、ヘッダ情報抽出部331から受信したヘッダ情報を、管理ポート37を介して制御装置20へ送信する(S213)。そして、スイッチ装置30は、図11において説明したステップS214〜S221の処理を実行する。
一方、オリジナルパケットがコネクション型の通信に用いられるパケットである場合(S225:No)、ヘッダ情報抽出部331は、オリジナルパケットのヘッダに含まれるコントロールフラグを参照する。そして、ヘッダ情報抽出部331は、オリジナルパケットがコネクションの確立を示すパケットであるか否かを判定する(S226)。ヘッダ情報抽出部331は、例えば、コントロールフラグ内のSYNビットおよびACKビットが1であるか否かを判定することにより、オリジナルパケットがコネクションの確立を示すパケットであるか否かを判定する。オリジナルパケットがコネクションの確立を示すパケットである場合(S226:Yes)、ヘッダ情報抽出部331は、ステップS212に示した処理を実行する。
一方、オリジナルパケットがコネクションの確立を示すパケットではない場合(S226:No)、ヘッダ情報抽出部331は、オリジナルパケットがコネクションの解放を示すパケットであるか否かを判定する(S227)。ヘッダ情報抽出部331は、例えば、コントロールフラグ内のFINビットおよびACKビットが1であるか否かを判定することにより、オリジナルパケットがコネクションの解放を示すパケットであるか否かを判定する。オリジナルパケットがコネクションの解放を示すパケットではない場合(S227:No)、スイッチ装置30は、図11において説明したステップS214〜S221の処理を実行する。
一方、オリジナルパケットがコネクションの解放を示すパケットである場合(S227:Yes)、ヘッダ情報抽出部331は、パケット受信部330から受信したパケットのヘッダ情報を抽出する(S228)。そして、ヘッダ情報抽出部331は、抽出したヘッダ情報と共に、コネクションの解放を示す情報を、ヘッダ情報送信部314へ送信する。ヘッダ情報送信部314は、ヘッダ情報抽出部331から受信したヘッダ情報と共に、ヘッダ情報抽出部331から受信したコネクションの解放を示す情報を、管理ポート37を介して制御装置20へ送信する(S229)。そして、スイッチ装置30は、図11において説明したステップS214〜S221の処理を実行する。
[制御装置20の動作]
図15は、実施例2における制御装置20の動作の一例を示すフローチャートである。本実施例における制御装置20の動作は、以下に説明する点を除き、図9を用いて説明した実施例1における制御装置20の動作と同様である。そのため、以下では、主に、実施例1における制御装置20の動作と異なる点について説明する。
まず、収集部210は、管理ポート23を介してスイッチ装置30からヘッダ情報を受信したか否かを判定する(S100)。収集部210がスイッチ装置30からヘッダ情報を受信していない場合(S100:No)、制御装置20は、図9において説明したステップS106〜S112の処理を実行する。
一方、スイッチ装置30からヘッダ情報を受信した場合(S100:Yes)、収集部210は、ヘッダ情報と共に、コネクションの解放を示す情報を受信したか否かを判定する(S120)。コネクションの解放を示す情報を受信していない場合(S120:No)、制御装置20は、図9において説明したステップS101〜S105の処理を実行する。
一方、ヘッダ情報と共にコネクションの解放を示す情報を受信した場合(S120:Yes)、収集部210は、受信したヘッダ情報から、フロー情報を抽出する。そして、収集部210は、ヘッダ情報の送信元のスイッチ装置30に対応する個別テーブルを負荷分散テーブル220内で特定する。そして、収集部210は、受信したヘッダ情報から抽出したフロー情報を含むエントリを、特定した個別テーブルから削除する(S121)。そして、収集部210は、再びステップS100に示した処理を実行する。
[効果]
上述したように、本実施例のスイッチ装置30は、カプセル化されたオリジナルパケットがコネクション型の通信に用いられるパケットであり、かつ、コネクションの確立を示すパケットである場合に、パケットのヘッダ情報を抽出して制御装置20へ送信する。これにより、制御装置20は、コネクション型の通信を行うフローについては、コネクションが確立されるタイミングで、フローに関する情報を負荷分散テーブル220に登録することができる。
また、本実施例のスイッチ装置30は、オリジナルパケットがコネクション型の通信に用いられるパケットであり、かつ、コネクションの解放を示すパケットである場合に、抽出したヘッダ情報と共に、コネクションの解放を示す情報を制御装置20へ送信する。これにより、制御装置20は、コネクション型の通信を行うフローについては、コネクションが解放されたフローの情報を負荷分散テーブル220から削除することができる。これにより、記憶部22内のデータ量の増大を抑えることができる。
また、本実施例のスイッチ装置30は、オリジナルパケットがコネクション型の通信に用いられるパケットである場合に、コネクションの確立または解放を示すパケットのヘッダ情報を抽出して制御装置20へ送信する。これにより、スイッチ装置30は、オリジナルパケットがコネクション型の通信に用いられるパケットである場合に、コネクションの確立または解放を示すパケット以外のパケットのヘッダ情報を制御装置20へ送信しない。そのため、ヘッダ情報の送信に伴う通信トラフィックの増加を抑えることができる。
本実施例では、パケットのヘッダ内の送信元ポートを書き換える場合、パケットの送信元の通信装置14に接続されたスイッチ装置30が、パケットのヘッダ内の送信元ポートを書き換える。そして、パケットの宛先の通信装置14に接続されたスイッチ装置30が、書き換えられたヘッダ内の送信元ポート番号を書き戻す(元のハッシュ値に戻す)。なお、本実施例における情報処理システム10は、図1を用いて説明した実施例1における情報処理システム10と同様であるため、詳細な説明を省略する。
[制御装置20]
図16は、実施例3における制御装置20の一例を示すブロック図である。制御装置20は、制御部21、記憶部22、および管理ポート23を有する。制御部21は、収集部210、変更ポート特定部211、および変更指示送信部212を有する。本実施例における記憶部22は、負荷分散テーブル220、統計情報テーブル221、およびスイッチテーブル222を記憶する。なお、以下に説明する点を除き、図16において、図3と同じ符号を付したブロックは、図3におけるブロックと同一または同様であるため説明を省略する。
図17は、スイッチテーブル222の一例を示す図である。スイッチテーブル222には、それぞれのスイッチ装置30を識別するスイッチID2220に対応付けて、スイッチ装置30のアドレス情報2221が格納される。本実施例において、アドレス情報2221は、スイッチ装置30のIPアドレスである。
ここで、それぞれの通信装置14内に設けられた論理チャネルの終端装置は、仮想サーバから送信されたオリジナルパケットのヘッダを用いて算出したハッシュ値を、オリジナルパケットをカプセル化したパケットのヘッダ内の送信元ポート番号に設定する。パケットの伝送経路の途中にあるスイッチ装置30がヘッダ内の送信元ポート番号を書き換えなければ、宛先の通信装置14が受信するパケットのヘッダ内の送信元ポート番号は、送信元の通信装置14が送信したパケットのヘッダ内の送信元ポート番号と同じ値である。
しかし、制御装置20からの指示により、パケットの伝送経路の途中にあるスイッチ装置30が、ヘッダ内の送信元ポート番号を書き換えた場合、宛先の通信装置14が受信するパケットのヘッダ内の送信元ポート番号は、送信元の通信装置14が送信したパケットのヘッダ内の送信元ポート番号とは異なる値となる。ネットワーク内を流れるパケットは、送信側の装置から送信されたパケットと同じパケットが、受信側の装置において受信されることが好ましい。これにより、ネットワーク内での改竄やデータの破損の検出等が可能となる。
そこで、本実施例では、送信元の通信装置14に接続されたスイッチ装置30がヘッダ内の送信元ポート番号を書き換え、宛先の通信装置14に接続されたスイッチ装置30が、書き換えられたヘッダ内の送信元ポート番号を元に戻す。これにより、送信元の通信装置14から送信されたパケットと同じパケットが、宛先の通信装置14において受信されることになる。以下では、ヘッダ内の送信元ポート番号を書き換えるスイッチ装置30を、第1のスイッチ装置30と呼び、書き換えられたヘッダ内の送信元ポート番号を元に戻すスイッチ装置30を、第2のスイッチ装置30と呼ぶ。
本実施例における変更ポート特定部211は、記憶部22内の負荷分散テーブル220および統計情報テーブル221を参照して、送信ポートを変更するフローを特定する。そして、変更ポート特定部211は、特定したフローにおいて、送信ポートの変更を指示する第1のスイッチ装置30と、送信ポートを元に戻す指示行う第2のスイッチ装置30とを特定する。制御装置20は、情報処理システム10のトポロジーに関する情報を保持しており、変更ポート特定部211は、例えばトポロジーに関する情報を参照して、フローの伝送経路上にある第1のスイッチ装置30と第2のスイッチ装置30とを特定する。そして、変更ポート特定部211は、送信ポートを変更するフローのフロー情報と、変更後の送信ポートのポート番号と、第1のスイッチ装置30のスイッチIDと、第2のスイッチ装置30のスイッチIDとを変更指示送信部212へ送信する。
変更指示送信部212は、変更ポート特定部211から、フロー情報、送信ポート、第1のスイッチ装置30のスイッチID、および第2のスイッチ装置30のスイッチIDを受信した場合、第2のスイッチ装置30のアドレス情報をスイッチテーブル222から取得する。そして、変更指示送信部212は、変更ポート特定部211から受信したフロー情報およびポート番号と、スイッチテーブル222から取得した第2のスイッチ装置30のアドレス情報とを含むDestPhyPortSetパケットを作成する。そして、変更指示送信部212は、作成したDestPhyPortSetパケットを、管理ポート23を介して第1のスイッチ装置30へ送信する。
[スイッチ装置30]
図18は、実施例3におけるスイッチ装置30の一例を示すブロック図である。スイッチ装置30は、制御部31、記憶部32、スイッチングモジュール33、複数の受信ポート34−1〜34−8、複数の送信キュー35−1〜35−8、複数の送信ポート36−1〜36−8、および管理ポート37を有する。本実施例における制御部31は、ポート番号応答部310、ポート変更部311、モニタリング条件指示部312、統計情報送信部313、ヘッダ情報送信部314、書き戻し依頼送信部315、および書き戻し設定部316を有する。なお、以下に説明する点を除き、図18において、図6と同じ符号を付したブロックは、図6におけるブロックと同一または同様であるため説明を省略する。
ポート変更部311は、管理ポート37を介して制御装置20からDestPhyPortSetパケットを受信した場合、パケットのヘッダ内の送信元ポート番号と置き換えるハッシュ値temp2を特定し、特定したハッシュ値temp2を書き換えテーブル321に登録する。そして、ポート変更部311は、書き換えテーブル321に登録したハッシュ値temp2を、管理ポート37を介して制御装置20へ送信する。そして、ポート変更部311は、制御装置20から受信したDestPhyPortSetパケットと、特定したハッシュ値temp2とを書き戻し依頼送信部315へ送信する。
書き戻し依頼送信部315は、ポート変更部311からDestPhyPortSetパケットとハッシュ値temp2とを受信した場合、DestPhyPortSetパケットからフロー情報と第2のスイッチ装置30のアドレス情報を抽出する。そして、書き戻し依頼送信部315は、例えば図19に示す書き戻し依頼パケット40を生成する。図19は、書き戻し依頼パケット40のフォーマットの一例を示す図である。書き戻し依頼パケット40には、ヘッダ41およびペイロード42が含まれる。
ヘッダ41内の宛先MACアドレス(Dst MAC)には、第2のスイッチ装置30のMACアドレスが格納される。ヘッダ41内の送信元MACアドレス(Src MAC)には、第1のスイッチ装置30のMACアドレスが格納される。ヘッダ41内のプロトコル番号(Protocol)には、UDPのプロトコル番号が格納される。ヘッダ41内の送信元IPアドレス(Src IP)には、第1のスイッチ装置30のIPアドレスが格納される。ヘッダ41内の宛先IPアドレス(Dst IP)には、第2のスイッチ装置30のIPアドレスが格納される。ヘッダ41内の送信元ポート番号(Src Port)には、後述するハッシュ値が格納される。ヘッダ41内の宛先ポート番号(Dst Port)には、第2のスイッチ装置30のUDPポート番号が格納される。
ペイロード42には、Command43、Hash value44、およびフロー情報45が含まれる。Command43には、書き換え依頼を示す情報が格納される。Hash value44には、DestPhyPortSetパケットから抽出したフロー情報に含まれる送信元ポート番号が格納される。フロー情報45には、DestPhyPortSetパケットから抽出したフロー情報に含まれる送信元IPアドレス、宛先IPアドレス、プロトコル番号、および送宛先ポート番号が格納される。また、フロー情報45には、送信元ポート番号として、ポート変更部311から受信したハッシュ値が格納される。つまり、Hash value44には、ヘッダ書換部332によって書き換えられる前の送信元ポート番号が格納され、フロー情報45には、ヘッダ書換部332によって書き換えられた後の送信元ポート番号を含むフロー情報が格納される。
ここで、ヘッダ41内の送信元ポート番号(Src Port)に格納されるハッシュ値の算出手順について説明する。書き戻し依頼送信部315は、書き戻し依頼パケット40のヘッダ41に格納する送信元IPアドレス、宛先IPアドレス、宛先ポート番号、およびプロトコル番号を特定する。そして、書き戻し依頼送信部315は、特定した送信元IPアドレス、宛先IPアドレス、宛先ポート番号、およびプロトコル番号を、ハッシュ計算部335へ送信する。そして、書き戻し依頼送信部315は、ハッシュ計算部335からハッシュ値temp1’を受信する。
次に、書き戻し依頼送信部315は、ポート変更部311から受信したDestPhyPortSetパケットに含まれている変更後の送信ポート36のポート番号と、ハッシュ計算部335から受信したハッシュ値temp1’とのXORを計算する。そして、書き戻し依頼送信部315は、ハッシュテーブル320を参照して、XORの計算結果の下位2ビットと同じ値のインデックスに対応付けられた複数のハッシュ値の中から、1つのハッシュ値をハッシュ値temp2’として特定する。そして、書き戻し依頼送信部315は、特定したハッシュ値temp2’を、ヘッダ41内の送信元ポート番号(Src Port)に格納する。そして、書き戻し依頼送信部315は、書き戻し依頼パケット40を生成し、生成した書き戻し依頼パケット40を、ポート特定部333へ送信する。
ポート特定部333は、書き戻し依頼送信部315から受信した書き戻し依頼パケット40の宛先MACアドレスに基づいて送信ポート36のポート番号を特定する。ハッシュ計算部335は、ポート特定部333によって複数の送信ポート36のポート番号が特定された場合に、ハッシュ値を算出する。ポート選択部336は、ハッシュ計算部335によって算出されたハッシュ値に基づいて、書き戻し依頼パケット40を送信する送信ポート36を1つ選択し、選択した送信ポート36に接続された送信キュー35に書き戻し依頼パケット40を格納する。これにより、書き戻し依頼パケット40は、ポート選択部336によって選択された送信ポート36から送信される。
このように、書き戻し依頼送信部315は、書き戻し依頼パケット40のヘッダ41内の送信元IPアドレス、宛先IPアドレス、宛先ポート番号、およびプロトコル番号を用いてハッシュ値temp1’をハッシュ計算部335に算出させる。そして、書き戻し依頼送信部315は、ハッシュ計算部335が算出したハッシュ値temp1’と、DestPhyPortSetパケットに含まれている変更後の送信ポート36のポート番号とのXORの下位2ビットに対応するハッシュ値temp2’を特定する。そして、書き戻し依頼送信部315は、特定したハッシュ値temp2’をヘッダ41内の送信元ポート番号に格納する。これにより、書き戻し依頼パケット40は、送信ポート36が変更された場合のフローに含まれるパケットが送信される送信ポート36と同じ送信ポート36から第2のスイッチ装置30へ送信される。これにより、書き戻し依頼パケット40を送信する段階から、トラフィックの偏りの抑制等の制御を行うことができる。
パケット受信部330は、受信ポート34を介して書き戻し依頼パケット40を受信した場合、受信した書き戻し依頼パケット40を書き戻し設定部316へ送信する。書き戻し設定部316は、パケット受信部330から書き戻し依頼パケット40を受信した場合、書き戻し依頼パケット40内のペイロード42から、Hash value44に格納されたハッシュ値と、フロー情報45に格納されたフロー情報とを抽出する。そして、書き戻し設定部316は、抽出したフロー情報に対応付けて、抽出したハッシュ値を、書き換えテーブル321に格納する。これにより、第1のスイッチ装置30から書き戻し依頼パケット40を受信した第2のスイッチ装置30のヘッダ書換部332は、第1のスイッチ装置30から受信したパケットのヘッダ内の送信元ポート番号を、第1のスイッチ装置30のヘッダ書換部332によって書き換えられる前の値に書き戻すことができる。
[制御装置20の動作]
図20は、実施例3における制御装置20の動作の一例を示すフローチャートである。なお、本実施例における制御装置20の動作は、以下に説明する点を除き、図9を用いて説明した実施例1における制御装置20の動作と同様である。そのため、以下では、主に、実施例1における制御装置20の動作と異なる点について説明する。
まず、収集部210は、管理ポート23を介してスイッチ装置30からヘッダ情報を受信したか否かを判定する(S100)。スイッチ装置30からヘッダ情報を受信していない場合(S100:No)、収集部210は、図9において説明したステップS111〜S112の処理を実行する。一方、スイッチ装置30からヘッダ情報を受信した場合(S100:Yes)、収集部210は、図9において説明したステップS101〜S105の処理を実行する。そして、変更ポート特定部211は、フローに含まれるパケットが送信される送信ポート36を変更するか否かを判定する(S106)。送信ポート36を変更しない場合(S106:No)、収集部210は、再びステップS100に示した処理を実行する。
一方、送信ポート36を変更する場合(S106:Yes)、変更ポート特定部211は、変更後の送信ポート36を特定する(S107)。そして、変更ポート特定部211は、例えば情報処理システム10のトポロジーに関する情報を参照して、フローの伝送経路上にある第1のスイッチ装置30と第2のスイッチ装置30とを特定する(S130)。そして、変更ポート特定部211は、送信ポートを変更するフローのフロー情報と、変更後の送信ポートのポート番号と、第1のスイッチ装置30のスイッチIDと、第2のスイッチ装置30のスイッチIDとを変更指示送信部212へ送信する。
次に、変更指示送信部212は、変更ポート特定部211から受信した第2のスイッチ装置30のアドレス情報をスイッチテーブル222から取得する。そして、変更指示送信部212は、変更ポート特定部211から受信したフロー情報およびポート番号と、スイッチテーブル222から取得した第2のスイッチ装置30のアドレス情報とを含むDestPhyPortSetパケットを作成する。そして、変更指示送信部212は、作成したDestPhyPortSetパケットを、管理ポート23を介して第1のスイッチ装置30へ送信する(S108)。そして、変更指示送信部212は、図9において説明したステップS109〜S110の処理を実行する。
[スイッチ装置30の動作]
図21は、実施例3におけるスイッチ装置30の動作の一例を示すフローチャートである。なお、本実施例におけるスイッチ装置30の動作は、以下に説明する点を除き、図10を用いて説明した実施例1におけるスイッチ装置30の動作と同様である。そのため、以下では、主に、実施例1におけるスイッチ装置30の動作と異なる点について説明する。
送信ポート36毎の使用率の送信タイミングではない場合(S203:No)、パケット受信部330は、書き戻し依頼パケット40を受信したか否かを判定する(S205)。パケット受信部330が書き戻し依頼パケット40を受信していない場合(S205:No)、パケット受信部330は、再びステップS200に示した処理を実行する。
一方、パケット受信部330が書き戻し依頼パケット40を受信した場合(S205:Yes)、パケット受信部330は、受信した書き戻し依頼パケット40を書き戻し設定部316へ送信する。書き戻し設定部316は、パケット受信部330から受信した書き戻し依頼パケット40内のペイロード42から、Hash value44に格納されたハッシュ値と、フロー情報45に格納されたフロー情報とを抽出する。そして、書き戻し設定部316は、抽出したフロー情報に対応付けて、抽出したハッシュ値を、書き換えテーブル321に格納することにより、書き戻しを設定する(S206)。そして、パケット受信部330は、再びステップS200に示した処理を実行する。
[書き換え設定処理]
図22は、実施例3における書き換え設定処理の一例を示すフローチャートである。なお、本実施例における書き換え設定処理は、以下に説明する点を除き、図13を用いて説明した実施例1における書き換え設定処理と同様である。そのため、以下では、主に、実施例1における書き換え設定処理と異なる点について説明する。
スイッチ装置30は、図13において説明したステップS241〜S245の処理を実行する。そして、ポート変更部311は、制御装置20から受信したDestPhyPortSetパケットと、特定したハッシュ値とを書き戻し依頼送信部315へ送信する。書き戻し依頼送信部315は、ポート変更部311から受信したPhyPortSetパケットからフロー情報と第2のスイッチ装置30のアドレス情報を抽出する。そして、書き戻し依頼送信部315は、書き戻し依頼パケット40のヘッダ41に格納する送信元IPアドレス、宛先IPアドレス、宛先ポート番号、およびプロトコル番号を特定する。そして、書き戻し依頼送信部315は、特定した送信元IPアドレス、宛先IPアドレス、宛先ポート番号、およびプロトコル番号を、ハッシュ計算部335へ送信する。ハッシュ計算部335は、書き戻し依頼送信部315から受信した送信元IPアドレス、宛先IPアドレス、宛先ポート番号、およびプロトコル番号を用いて、ハッシュ値temp1’を算出する(S250)。そして、ハッシュ計算部335は、算出したハッシュ値temp1’を書き戻し依頼送信部315へ送信する。
次に、書き戻し依頼送信部315は、ポート変更部311から受信したDestPhyPortSetパケットに含まれている変更後の送信ポート36のポート番号と、ハッシュ計算部335から受信したハッシュ値temp1’とのXORを計算する(S251)。そして、書き戻し依頼送信部315は、ハッシュテーブル320を参照して、XORの計算結果の下位2ビットと同じ値のインデックスに対応付けられた複数のハッシュ値の中から、1つのハッシュ値をハッシュ値temp2’として特定する(S252)。そして、書き戻し依頼送信部315は、特定したハッシュ値を、ヘッダ41内の送信元ポート番号(Src Port)に格納した書き戻し依頼パケット40を生成する(S253)。そして、書き戻し依頼送信部315は、生成した書き戻し依頼パケット40を、ポート特定部333へ送信する。
ポート特定部333は、書き戻し依頼送信部315から受信した書き戻し依頼パケット40の宛先MACアドレスに基づいて送信ポート36のポート番号を特定する。ハッシュ計算部335は、ポート特定部333によって複数の送信ポート36のポート番号が特定された場合に、ハッシュ値を算出する。ポート選択部336は、ハッシュ計算部335によって算出されたハッシュ値に基づいて、書き戻し依頼パケット40を送信する送信ポート36を1つ選択し、選択した送信ポート36に接続された送信キュー35に書き戻し依頼パケット40を格納する。これにより、書き戻し依頼パケット40は、ポート選択部336によって選択された送信ポート36から送信される(S254)。
[効果]
上述したように、本実施例の制御装置20は、パケットの送信元の通信装置14に接続されているスイッチ装置30にパケットのヘッダ内の送信元ポートを書き換えさせる。そして、本実施例の制御装置20は、パケットの宛先の通信装置14に接続されたスイッチ装置30にヘッダ内の送信元ポート番号を書き戻させる。これにより、受信側の通信装置14は、送信側の通信装置14から送信されたパケットと同じパケットを受信することができる。
[ハードウェア]
なお、これまで説明した図に示された各部の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各部の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
さらに、制御装置20で行われる各種処理機能は、CPU(Central Processing Unit)(又はMPU(Micro Processing Unit)、MCU(Micro Controller Unit)等のマイクロ・コンピュータ)上で、その全部又は任意の一部を実行するようにしてもよい。また、各種処理機能は、CPU(またはMPU、MCU等のマイクロ・コンピュータ)で解析実行するプログラム上、またはワイヤードロジックによるハードウェア上で、その全部または任意の一部を実行するようにしてもよいことは言うまでもない。
ところで、上記実施例1で説明した各種の処理は、予め用意されたプログラムを制御装置20が実行することで実現できる。そこで、以下では、上記した各実施例と同様の機能を有するプログラムを実行する制御装置20の一例を説明する。図23は、制御装置20の機能を実現する50の一例を示す図である。
図23に示すように、制御装置20は、通信インターフェイス51、操作インターフェイス52、表示インターフェイス53、ROM(Read Only Memory)54、およびCPU55を有する。また、制御装置20は、図23に示すように、RAM(Random Access Memory)56およびHDD(Hard disk drive)57を有する。通信インターフェイス51、操作インターフェイス52、表示インターフェイス53、ROM54、CPU55、RAM56、およびHDD57は、バス58を介して互いに接続されている。
HDD57には、スイッチ制御プログラム570が予め記憶される。CPU55は、スイッチ制御プログラム570をHDD57から読み出してRAM56に展開する。スイッチ制御プログラム570については、図3または図16に示した各々の構成要素と同様、適宜統合または分離してもよい。
CPU55は、HDD57からスイッチ制御プログラム570を読み出し、スイッチ制御プログラム570をスイッチ制御プロセス560としてRAM56に展開する。そして、CPU55は、上記した各実施例において、RAM56上に展開したスイッチ制御プロセス560を実行することにより、例えば、収集部210、変更ポート特定部211、および変更指示送信部212と同様の機能を発揮する。
また、CPU55は、上記した実施例1において、RAM56上に展開したスイッチ制御プロセス560を実行することにより、例えば図9に示した処理を実行する。また、CPU55は、上記した実施例2において、RAM56上に展開したスイッチ制御プロセス560を実行することにより、例えば図15に示した処理を実行する。また、CPU55は、上記した実施例3において、RAM56上に展開したスイッチ制御プロセス560を実行することにより、例えば図20に示した処理を実行する。
なお、CPU55によって仮想的に実現される各処理部は、全ての処理部がCPU55によって常に実現されていなくてもよく、処理に用いられる処理部のみが仮想的に実現されればよい。また、スイッチ制御プログラムは、必ずしも最初から全てをHDD57内に記憶させておかなくてもよい。例えば、制御装置20に挿入されるICカードなどの可搬型記録媒体に各プログラムが記憶され、制御装置20が可搬型記録媒体から各プログラムを取得して実行するようにしてもよい。また、各プログラムを記憶させた他のコンピュータまたはサーバ装置などから、無線通信回線、公衆回線、インターネット、LAN、WANなどを介して、制御装置20が各プログラムを取得して実行するようにしてもよい。
[その他]
上記した実施例1において、ヘッダ情報抽出部331は、所定時間または所定個数毎にパケット受信部330が受信したパケットのヘッダ情報を抽出する。また、実施例2において、ヘッダ情報抽出部331は、オリジナルパケットがコネクション型の通信に用いられるパケットについては、コネクションの確立または解放を示すパケットのヘッダ情報を抽出する。しかし、本願に開示の技術はこれに限られない。例えば、ヘッダ情報抽出部331は、カプセル化されているオリジナルパケットが特定のドメインに属するパケットである場合に、パケットのヘッダ情報を抽出してもよい。また、ヘッダ情報抽出部331は、データ量の多いElephantフロー、または、データ量の少ないMiceフローのいずれかに属するパケットのヘッダ情報を抽出してもよい。
また、上記した実施例3において、制御装置20は、パケットの送信元の通信装置14に接続されたスイッチ装置30にパケットのヘッダ内の送信元ポートを書き換えさせる。そして、上記した実施例3において、制御装置20は、パケットの宛先の通信装置14に接続されたスイッチ装置30にヘッダ内の送信元ポート番号を書き戻させる。しかし、ヘッダ内の送信元ポートを書き換えさせる第1の制御装置20は、パケットの送信元の通信装置14に接続されたスイッチ装置30でなくもよい。また、ヘッダ内の送信元ポートを書き戻させる第2の制御装置20は、パケットの宛先の通信装置14に接続されたスイッチ装置30でなくもよい。ただし、第2の制御装置20は、パケットの伝送経路上において、第1の制御装置20と、パケットの宛先の通信装置14との間に設けられた制御装置20である。
また、各スイッチ装置30は、書き換えテーブル321内に登録されたフロー情報を含むヘッダを有するパケットを受信した場合であっても、オリジナルパケットをカプセル化していないパケットについては、ヘッダ内の送信元ポート番号を書き換えない。これにより、オリジナルパケットをカプセル化していないパケットのヘッダ情報が書き換えられることを防止することができる。
また、上記した各実施例において、各スイッチ装置30は、オリジナルパケットをカプセル化したパケットのヘッダに含まれるフロー情報に基づいて、ヘッダ内のハッシュ値を書き換えるパケットを特定するが、本願に開示の技術はこれに限られない。例えば、オリジナルパケットのヘッダを認識することが可能なスイッチ装置30であれば、オリジナルパケットをカプセル化したパケットのヘッダに加えて、オリジナルパケットのヘッダに含まれる情報に基づいて、ヘッダ内のハッシュ値を書き換えるパケットを特定してもよい。
以上、実施の形態を説明したが、本発明の技術的範囲は上記実施例に記載された範囲には限定されない。上記実施例に多様な変更または改良を加えることが可能であることが当業者には明らかである。また、そのような変更または改良を加えた形態も本発明の技術的範囲に含まれ得る。
20 制御装置
22 記憶部
220 負荷分散テーブル
221 統計情報テーブル
211 変更ポート特定部
212 変更指示送信部

Claims (8)

  1. 複数のポートを有する第1のスイッチ装置と、前記複数のポートを介して前記第1のスイッチ装置に接続された第2のスイッチ装置と、前記第1のスイッチ装置を制御する制御装置とを有する情報処理システムにおいて、
    前記制御装置は、
    一連のパケットを含むそれぞれのフローについて、前記フローを識別するフロー情報と、前記フローに含まれる前記パケットが送信されるポートのポート情報とを格納するフローテーブルと、前記ポート毎の使用率を格納する使用率テーブルとを記憶する記憶部と、
    前記フローテーブルおよび前記使用率テーブルを参照して、送信されるポートを変更するフローおよび変更後のポートのポート情報を特定する特定部と、
    前記特定部が特定したフローのフロー情報と、変更後のポートのポート情報とを含む変更指示パケットを、前記第1のスイッチ装置へ送信する変更指示送信部と
    を有し、
    前記第1のスイッチ装置は、
    前記パケットを受信する第1の受信部と、
    前記第1の受信部が受信した前記パケットのヘッダ情報に基づいて、前記パケットを送信するポートを選択する選択部と、
    前記第1の受信部が受信した前記パケットを、前記選択部が選択したポートから送信するパケット送信部と、
    前記変更指示パケットを前記制御装置から受信した場合、前記変更指示パケット内のフロー情報で特定されるフローに含まれる前記パケットのヘッダ情報内のオリジナルパケットのハッシュ値を、前記選択部によって前記変更指示パケット内のポート情報に対応するポートが選択されるハッシュ値に書き換える書換部と
    を有することを特徴とする情報処理システム。
  2. 前記第1のスイッチ装置は、
    前記第1の受信部が受信した前記パケットのヘッダ情報を抽出する抽出部と、
    前記抽出部が抽出した前記ヘッダ情報を前記制御装置へ送信するヘッダ情報送信部と、
    前記フロー情報を含むポート問合せパケットを前記制御装置から受信した場合、前記ポート問合せパケット内の前記フロー情報に対応するフローに含まれるパケットが送信されるポートのポート情報を前記制御装置へ送信するポート情報送信部と
    を有し、
    前記制御装置は、
    前記ヘッダ情報送信部から前記ヘッダ情報を受信した場合、前記ヘッダ情報を有するパケットを含むフローのフロー情報を含む前記ポート問合せパケットを前記第1のスイッチ装置へ送信する問合せ送信部と、
    前記ポート情報送信部から前記ポート情報を受信した場合、受信した前記ポート情報を、前記ヘッダ情報送信部から受信したヘッダ情報を有する前記パケットを含むフローのフロー情報に対応付けて、前記フローテーブルに登録する登録部と
    を有することを特徴とする請求項1に記載の情報処理システム。
  3. 前記抽出部は、
    前記第1の受信部が受信した前記パケットの中で、前記パケットがカプセル化しているオリジナルパケットの属性に応じて、前記パケットのヘッダ情報を抽出することを特徴とする請求項2に記載の情報処理システム。
  4. 前記フローテーブルには、
    それぞれのフローについて、前記フローに含まれる前記パケットの前記ヘッダ情報の中で、前記書換部が書き換える前のハッシュ値が格納されており、
    前記変更指示送信部は、
    前記変更指示パケットに、前記第2のスイッチ装置の識別情報と、前記書換部が書き換える前のハッシュ値とをさらに含めて、前記第1のスイッチ装置へ送信し、
    前記第1のスイッチ装置は、
    前記書換部が書き換えたハッシュ値を含むヘッダ情報を有する前記パケットを含むフローのフロー情報と、前記書換部が書き換える前のハッシュ値とを含む書き戻し依頼パケットを、前記変更指示パケットに含まれる識別情報に対応する前記第2のスイッチ装置へ送信する書き戻し依頼送信部
    を有し、
    前記第2のスイッチ装置は、
    前記パケットおよび前記書き戻し依頼パケットを受信する第2の受信部と、
    前記第2の受信部が受信した前記パケットの中で、前記第2の受信部が受信した前記書き戻し依頼パケットに含まれるフロー情報に対応するフローに含まれるパケットについて、前記パケットのヘッダ情報に含まれる、前記書換部によって書き換えられたハッシュ値を、前記書き戻し依頼パケットに含まれる、前記書換部が書き換える前のハッシュ値に書き戻す書き戻し部と
    を有することを特徴とする請求項1から3のいずれか一項に記載の情報処理システム。
  5. 前記書き戻し依頼送信部は、
    前記書き戻し依頼パケットが送信されるポートとして、前記変更指示パケット内のポート情報に対応するポートが選択されるヘッダ情報となるハッシュ値を、前記書き戻し依頼パケットのヘッダ情報に含め、
    前記選択部は、
    前記書き戻し依頼パケットのヘッダ情報に基づいて、前記書き戻し依頼パケットを送信するポートを選択し、
    前記パケット送信部は、
    前記選択部が選択したポートから前記書き戻し依頼パケットを送信することを特徴とする請求項に記載の情報処理システム。
  6. 複数のポートを有するスイッチ装置と、前記スイッチ装置を制御する制御装置とを有する情報処理システムに用いられる前記制御装置において、
    一連のパケットを含むそれぞれのフローについて、前記フローを識別するフロー情報と、前記フローに含まれる前記パケットが送信されるポートのポート情報とを格納するフローテーブルと、前記ポート毎の使用率を格納する使用率テーブルとを記憶する記憶部と、
    前記フローテーブルおよび前記使用率テーブルを参照して、送信するポートを変更するフローおよび前記フローが送信される変更後のポートのポート情報を特定する特定部と、
    前記特定部が特定したフローのフロー情報と、変更後のポートのポート情報とを含む変更指示パケットを、前記スイッチ装置へ送信することにより、前記スイッチ装置に、前記変更指示パケット内のフロー情報で特定されるフローに含まれる前記パケットのヘッダ情報内の情報を、前記変更指示パケット内のポート情報に対応するポートが選択される情報となるように書き換えさせる変更指示送信部と
    を有することを特徴とする制御装置。
  7. 複数のポートを有するスイッチ装置と、前記スイッチ装置を制御する制御装置とを有する情報処理システムに用いられる前記制御装置の制御プログラムにおいて、
    前記制御装置に、
    一連のパケットを含むそれぞれのフローについて、前記フローを識別するフロー情報と、前記フローに含まれる前記パケットが送信されるポートのポート情報とを格納するフローテーブルと、前記ポート毎の使用率を格納する使用率テーブルとを参照して、送信するポートを変更するフローおよび前記フローが送信される変更後のポートのポート情報を特定させ、
    特定したフローのフロー情報と、変更後のポートのポート情報とを含む変更指示パケットを、前記スイッチ装置へ送信することにより、前記スイッチ装置に、前記変更指示パケット内のフロー情報で特定されるフローに含まれる前記パケットのヘッダ情報内の情報を、前記変更指示パケット内のポート情報に対応するポートが選択される情報となるように書き換えさせる
    ことを特徴とする制御装置の制御プログラム。
  8. 複数のポートを有する複数のスイッチ装置と、それぞれの前記スイッチ装置を制御する制御装置とを有する情報処理システムに用いられる前記スイッチ装置おいて、
    パケットを受信する受信部と、
    前記受信部が受信した前記パケットのヘッダ情報に基づいて、前記パケットを送信するポートを選択する選択部と、
    前記受信部が受信した前記パケットを、前記選択部が選択したポートから送信する送信部と、
    送信されるポートが変更されるフローを特定するフロー情報と変更後のポートのポート情報とを含む変更指示パケットを前記制御装置から受信した場合、前記変更指示パケット内のフロー情報で特定されるフローに含まれる前記パケットのヘッダ情報内のオリジナルパケットのハッシュ値を、前記選択部によって前記変更指示パケット内のポート情報に対応するポートが選択されるハッシュ値に書き換える書換部と
    を有することを特徴とするスイッチ装置。
JP2014210175A 2014-10-14 2014-10-14 情報処理システム、制御装置、制御装置の制御プログラム、およびスイッチ装置 Active JP6446986B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014210175A JP6446986B2 (ja) 2014-10-14 2014-10-14 情報処理システム、制御装置、制御装置の制御プログラム、およびスイッチ装置
US14/825,440 US10057192B2 (en) 2014-10-14 2015-08-13 Information processing system, control device and control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014210175A JP6446986B2 (ja) 2014-10-14 2014-10-14 情報処理システム、制御装置、制御装置の制御プログラム、およびスイッチ装置

Publications (2)

Publication Number Publication Date
JP2016082333A JP2016082333A (ja) 2016-05-16
JP6446986B2 true JP6446986B2 (ja) 2019-01-09

Family

ID=55656249

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014210175A Active JP6446986B2 (ja) 2014-10-14 2014-10-14 情報処理システム、制御装置、制御装置の制御プログラム、およびスイッチ装置

Country Status (2)

Country Link
US (1) US10057192B2 (ja)
JP (1) JP6446986B2 (ja)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9596126B2 (en) 2013-10-10 2017-03-14 Nicira, Inc. Controller side method of generating and updating a controller assignment list
US9948473B2 (en) * 2015-02-04 2018-04-17 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Seamless connection handshake for a reliable multicast session
CN106209648B (zh) 2015-05-04 2019-06-14 新华三技术有限公司 跨虚拟可扩展局域网的组播数据报文转发方法和设备
CN106209554B (zh) * 2015-05-04 2019-12-13 新华三技术有限公司 跨虚拟可扩展局域网的报文转发方法和设备
CN106209636B (zh) * 2015-05-04 2019-08-02 新华三技术有限公司 从vlan至vxlan的组播数据报文转发方法和设备
CN106209637B (zh) * 2015-05-04 2019-07-05 新华三技术有限公司 从虚拟可扩展局域网至虚拟局域网的报文转发方法和设备
CN106209689B (zh) 2015-05-04 2019-06-14 新华三技术有限公司 从vxlan至vlan的组播数据报文转发方法和设备
JP2016219882A (ja) * 2015-05-14 2016-12-22 富士通株式会社 伝送装置及び伝送方法
US10084752B2 (en) * 2016-02-26 2018-09-25 Microsoft Technology Licensing, Llc Hybrid hardware-software distributed threat analysis
US11184327B2 (en) 2018-07-05 2021-11-23 Vmware, Inc. Context aware middlebox services at datacenter edges
US10999220B2 (en) 2018-07-05 2021-05-04 Vmware, Inc. Context aware middlebox services at datacenter edge
WO2020009784A1 (en) * 2018-07-05 2020-01-09 Vmware, Inc. Context aware middlebox services at datacenter edges
CN109743262B (zh) * 2019-01-30 2021-07-27 电子科技大学 一种基于流表虚拟化的mice flow聚合方法
US11641305B2 (en) 2019-12-16 2023-05-02 Vmware, Inc. Network diagnosis in software-defined networking (SDN) environments
CN112583722B (zh) * 2021-02-26 2021-05-28 紫光恒越技术有限公司 一种数据处理的方法、装置、云设备和存储设备
JP2022191014A (ja) * 2021-06-15 2022-12-27 株式会社東芝 スイッチ装置、方法及びプログラム
CN114629862B (zh) * 2022-03-17 2023-09-19 树根互联股份有限公司 一种端口连接系统、方法及计算机设备
CN115334046B (zh) * 2022-07-04 2023-09-01 超聚变数字技术有限公司 一种mac地址删除方法及装置
US11785086B1 (en) * 2022-10-05 2023-10-10 Netapp, Inc. Cross-site high-availability distributed cloud storage system to monitor virtual channels between storage nodes and prevent channel sharing of a receive queue

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004254132A (ja) 2003-02-20 2004-09-09 Telecommunication Advancement Organization Of Japan パケット伝送方法及びパケット伝送装置
US8285881B2 (en) * 2003-09-10 2012-10-09 Broadcom Corporation System and method for load balancing and fail over
JP4383216B2 (ja) * 2004-03-24 2009-12-16 富士通株式会社 通信端末
US7864818B2 (en) * 2008-04-04 2011-01-04 Cisco Technology, Inc. Multinode symmetric load sharing
US8274980B2 (en) * 2009-02-26 2012-09-25 International Business Machines Corporation Ethernet link aggregation
US8238250B2 (en) * 2009-10-16 2012-08-07 Hei Tao Fung QoS-aware flow-based dynamic load balancing for link aggregation
JP5853378B2 (ja) * 2011-03-04 2016-02-09 日本電気株式会社 通信切替システム、通信切替方法、及びプログラム
US8446910B2 (en) * 2011-04-14 2013-05-21 Cisco Technology, Inc. Methods for even hash distribution for port channel with a large number of ports
US8879397B2 (en) * 2011-05-13 2014-11-04 Polytechnic Institute Of New York University Balancing load in a network, such as a data center network, using flow based routing
JP2013046134A (ja) * 2011-08-23 2013-03-04 Nec Corp パケット転送ノード、その制御装置、パケット転送方法およびプログラム
WO2014084216A1 (ja) * 2012-11-27 2014-06-05 日本電気株式会社 制御装置、通信システム、通信方法及びプログラム
US20140301226A1 (en) * 2013-04-09 2014-10-09 Electronics And Telecommunications Research Institute Apparatus and method for network monitoring and packet inspection

Also Published As

Publication number Publication date
US10057192B2 (en) 2018-08-21
JP2016082333A (ja) 2016-05-16
US20160105377A1 (en) 2016-04-14

Similar Documents

Publication Publication Date Title
JP6446986B2 (ja) 情報処理システム、制御装置、制御装置の制御プログラム、およびスイッチ装置
US10862871B2 (en) Hardware-accelerated payload filtering in secure communication
US9769074B2 (en) Network per-flow rate limiting
US10230825B2 (en) Dynamic port type detection
JP4658098B2 (ja) フロー情報制限装置および方法
EP2978174B1 (en) Interest return control message
CN109314666A (zh) 用于拥塞感知负载均衡的虚拟隧道端点
WO2019223661A1 (zh) 一种识别应用标识的方法、设备及系统
CN108206781B (zh) 选择转发路径的方法和设备
US9699101B2 (en) Switch device, information processing system, and method for controlling switch device
JP6417865B2 (ja) 情報処理システム、情報処理システムの制御方法およびスイッチ装置
US11316804B2 (en) Forwarding entry update method and apparatus in a memory
EP3148136B1 (en) Flow control with network named fragments
US8953600B2 (en) Telemetry data routing
WO2017157318A1 (zh) 链路发现方法及装置
US20140208115A1 (en) Communication apparatus, method for controlling communication apparatus, and program
JP5534033B2 (ja) 通信システム、ノード、パケット転送方法およびプログラム
JP2016100721A (ja) 制御装置
US10812391B1 (en) Methods and apparatus for load balancing in a network
US10256992B2 (en) Tunnel encapsulation
JP6279970B2 (ja) プロセッサ、通信装置、通信システム、通信方法およびコンピュータプログラム
JP4489714B2 (ja) パケット集約方法、装置、およびプログラム
JP4669485B2 (ja) フロー計測項目の自動選択機能を有するトラヒック計測方法、トラヒック情報受信機器、トラヒック情報送信機器、およびプログラム
JP2011049757A (ja) フロー情報生成装置、記憶方法及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170704

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180514

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180619

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180815

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181119

R150 Certificate of patent or registration of utility model

Ref document number: 6446986

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150