(57)【要約】【課題】フローの性質に応じた負荷分散を実現すること。【解決手段】入力ポートがパケットを受信すると、該パケットにより構成されるフローが、ロングパケットが多い傾向のフロー又はショートパケットが多い傾向のフローのいずれであるかを示すフロー属性を判定する判定手段と、前記判定手段により判定されたフロー属性に応じて、複数のパケット転送装置のうち、前記フロー属性のフローによる負荷が少ないことを示す負荷状態のパケット転送装置に対して前記パケットを出力する出力手段と、を有することを特徴とする。【選択図】図１
2019146099.tif 000002
【特許請求の範囲】
【請求項１】
入力ポートがパケットを受信すると、該パケットにより構成されるフローが、ロングパケットが多い傾向のフロー又はショートパケットが多い傾向のフローのいずれであるかを示すフロー属性を判定する判定手段と、
前記判定手段により判定されたフロー属性に応じて、複数のパケット転送装置のうち、前記フロー属性のフローによる負荷が少ないことを示す負荷状態のパケット転送装置に対して前記パケットを出力する出力手段と、
を有することを特徴とする負荷分散システム。
【請求項２】
前記複数のパケット転送装置の各々について、前記ロングパケットに関するトラヒック流量を表すｂｐｓ値と、前記ショートパケットに関するトラヒック流量を表すｐｐｓ値とを監視する監視手段と、
前記監視手段により監視されている前記複数のパケット転送装置のうちの少なくとも１台のパケット転送装置について、前記ｂｐｓ値が所定の第１の閾値を超えた場合、前記少なくとも１台のパケット転送装置の負荷状態を、前記ロングパケットが多い傾向のフローによる負荷が高いことを示す負荷状態に変更する第１の変更手段と、
前記監視手段により監視されている前記複数のパケット転送装置のうちの少なくとも１台のパケット転送装置について、前記ｐｐｓ値が所定の第２の閾値を超えた場合、前記少なくとも１台のパケット転送装置の負荷状態を、前記ショートパケットが多い傾向のフローによる負荷が高いことを示す負荷状態に変更する第２の変更手段と、
を有することを特徴とする請求項１に記載の負荷分散システム。
【請求項３】
前記第１の変更手段は、
前記監視手段により監視されている前記複数のパケット転送装置のうちの少なくとも１台のパケット転送装置について、前記ｂｐｓ値が前記第１の閾値を下回った場合、前記少なくとも１台のパケット転送装置の負荷状態を、前記ロングパケットが多い傾向のフローによる負荷が低いことを示す負荷状態に変更し、
前記第２の変更手段は、
前記監視手段により監視されている前記複数のパケット転送装置のうちの少なくとも１台のパケット転送装置について、前記ｐｐｓ値が前記第２の閾値を下回った場合、前記少なくとも１台のパケット転送装置の負荷状態を、前記ショートパケットが多い傾向のフローによる負荷が低いことを示す負荷状態に変更する、
ことを特徴とする請求項２に記載の負荷分散システム。
【請求項４】
前記第１の変更手段及び前記第２の変更手段は、
前記複数のパケット転送装置それぞれの負荷状態を示す情報を更新する又は前記複数のパケット転送装置それぞれの識別情報を第１のテーブルから第２のテーブル若しくは第２のテーブルから第１のテーブルに移動させることで、前記負荷状態を変更する、
ことを特徴とする請求項２又は３に記載の負荷分散システム。
【請求項５】
前記判定手段は、
前記パケットの５−ｔｕｐｌｅ又はＬ７情報の少なくとも一方を用いて、前記フロー属性を判定する、ことを特徴とする請求項１乃至４の何れか一項に記載の負荷分散システム。
【請求項６】
前記入力ポートが受信したパケットの５−ｔｕｐｌｅからハッシュ値を生成するハッシュ手段を有し、
前記出力手段は、
前記パケットの５−ｔｕｐｌｅのハッシュ値と、前記複数のパケット転送装置のうち、前記５−ｔｕｐｌｅに含まれる宛先ＩＰアドレスに対応するネットワークにパケットを転送するパケット転送装置であって、前記フロー属性のフローによる負荷が少ないことを示す負荷状態のパケット転送装置の識別情報とが対応付けられたテーブルを参照して、前記ハッシュ手段により生成されたハッシュ値に対応する識別情報によって識別されるパケット転送装置に対して前記パケットを出力する、
ことを特徴とする請求項１乃至５の何れか一項に記載の負荷分散システム。
【請求項７】
入力ポートがパケットを受信すると、該パケットにより構成されるフローが、ロングパケットが多い傾向のフロー又はショートパケットが多い傾向のフローのいずれであるかを示すフロー属性を判定する判定手順と、
前記判定手順により判定されたフロー属性に応じて、複数のパケット転送装置のうち、前記フロー属性のフローによる負荷が少ないことを示す負荷状態のパケット転送装置に対して前記パケットを出力する出力手順と、
を負荷分散システムが実行することを特徴とする負荷分散方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、負荷分散システム及び負荷分散方法に関する。
【背景技術】
【０００２】
ルータ等のパケット転送装置の負荷を分散させる技術が従来から知られている。例えば、パケットの転送先として複数のパケット転送装置と複数の転送経路とを用意し、それぞれの転送経路にトラヒックを均等に印加することで、パケット転送装置の負荷を分散する技術が知られている。また、このような負荷分散技術として、ＥＣＭＰ（Equal Cost Multi Path）又はＥＣＭＰルーティングと呼ばれる技術も知られている。ＥＣＭＰでは、上述した複数の転送経路のうち、等コストとなる転送経路にトラヒックを均等に印加する負荷分散技術である。
【０００３】
更に、ＥＣＭＰを用いた負荷分散システムにおいて、パケット転送装置の出力物理ポートの出力バッファを監視し、この出力バッファの使用量又はパケット流量が閾値を超えた場合、転送経路を切り替える技術が知られている（例えば、特許文献１）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００４−３５００７８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、パケット転送装置における転送容量の指標として、ｂｐｓ（bits per second）で表されるデータ量の転送容量と、ｐｐｓ（packets per second）で表されるパケット数の転送容量とがある。また、これらの転送容量には、パケット転送装置に固有の上限値がある。例えば、パケット転送装置をネットワーク仮想化技術により実現した場合、ｂｐｓは物理ＮＩＣ（Network Interface Card）のラインレートに律速されることがあり、ｐｐｓはＯＳ（Operating System）やアプリケーション等のソフトウェアのパケット処理速度に律速されることがある。
【０００６】
しかしながら、上記の従来技術では、トラヒックの性質を考慮していないため、例えば、パケット転送装置に印加されるトラヒックの性質に偏りがある場合等に、当該パケット転送装置の転送容量を最大限に活用することができないことがあった。
【０００７】
例えば、動画等のトラヒックはロングパケットが多いという性質がある。このため、動画等のトラヒックが集中した場合、データ量の転送容量は枯渇する一方で、パケット数の転送容量には余裕がある状態となる。他方で、例えば、ＶｏＩＰ（Voice over Internet Protocol）やテレメトリング等のトラヒックはショートパケットが多いという性質がある。このため、ＶｏＩＰやテレメトリング等のトラヒックが集中した場合、データ量の転送容量には余裕がある一方で、パケット数の転送容量が枯渇する状態となる。
【０００８】
これに対して、或るトラヒックのフローにおけるパケット長の傾向（すなわち、ショートパケット又はロングパケットのいずれが多いか）は、当該フローを扱うアプリケーションの種類によっておおよその推定ができると考えられる。
【０００９】
本発明の実施の形態は、上記の点に鑑みてなされたもので、フローの性質に応じた負荷分散を実現することを目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成するため、本発明の実施の形態は、入力ポートがパケットを受信すると、該パケットにより構成されるフローが、ロングパケットが多い傾向のフロー又はショートパケットが多い傾向のフローのいずれであるかを示すフロー属性を判定する判定手段と、前記判定手段により判定されたフロー属性に応じて、複数のパケット転送装置のうち、前記フロー属性のフローによる負荷が少ないことを示す負荷状態のパケット転送装置に対して前記パケットを出力する出力手段と、を有することを特徴とする。
【発明の効果】
【００１１】
フローの性質に応じた負荷分散を実現することを目的とする。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施の形態における負荷分散システムの全体構成の一例を示す図である。
【図２】実施例１における負荷分散システムの機能構成の一例を示す図である。
【図３】実施例１におけるＥＣＭＰ経路テーブルの一例を示す図である。
【図４】実施例１におけるＥＣＭＰ経路テーブルの変更処理の流れの一例を説明するための図である。
【図５】実施例１におけるパケット転送処理の流れの一例を説明するための図である。
【図６】実施例２における負荷分散システムの機能構成の一例を示す図である。
【図７】実施例２におけるＥＣＭＰ経路テーブルの一例を示す図である。
【図８】実施例２におけるＥＣＭＰ経路テーブルの変更処理の流れの一例を説明するための図である。
【図９】実施例２におけるパケット転送処理の流れの一例を説明するための図である。
【図１０】コンピュータのハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【００１３】
以下、本発明の実施の形態について説明する。本発明の実施の形態では、フローの性質に応じて、負荷分散を行う負荷分散システム１について説明する。また、以降では、フローの性質のことを「フロー属性」と表し、フロー属性には、ロングパケットが多いフローであることを示す「高ｂｐｓフロー」と、ショートパケットが多いフローであることを示す「高ｐｐｓフロー」とがあるものとする。ここで、フローとは、フロー情報が同一のパケット（トラヒック）又はパケット群のことを言う。また、フロー情報は、このパケットに含まれるヘッダ情報により特定され、例えば、５−ｔｕｐｌｅ（送信元ＩＰ（Internet Protocol）アドレス、宛先ＩＰアドレス、送信元ポート番号、宛先ポート番号、プロトコルタイプ）のことを言う。
【００１４】
なお、ロングパケットが多いフローを扱うアプリケーションとしては、例えば、動画閲覧アプリケーション等が挙げられる。一方で、ショートパケットが多いフローを扱うアプリケーションとしては、例えば、ＶｏＩＰを用いた音声通話アプリケーション、テレメトリングを行うアプリケーション等が挙げられる。
【００１５】
＜全体構成＞
まず、本発明の実施の形態における負荷分散システム１の全体構成について、図１を参照しながら説明する。図１は、本発明の実施の形態における負荷分散システム１の全体構成の一例を示す図である。
【００１６】
図１に示すように、本発明の実施の形態における負荷分散システム１には、負荷監視装置１０と、第１のパケット転送装置２０と、第２のパケット転送装置３０とが含まれる。
【００１７】
負荷監視装置１０は、例えばコンピュータ又はコンピュータシステム等であり、負荷分散対象である第２のパケット転送装置３０のトラヒック流量を監視する。そして、負荷監視装置１０は、第２のパケット転送装置３０のトラヒック流量が所定の閾値を超えた場合（又は、所定の閾値を下回った場合）に、負荷分散の実施（又は負荷分散の解除）を示す命令を第１のパケット転送装置２０に送信する。
【００１８】
第１のパケット転送装置２０は、例えばルータ等であり、ネットワークＮ１側からのパケットを第２のパケット転送装置３０に転送する。このとき、第１のパケット転送装置２０は、負荷分散に用いられる所定のテーブルを参照して、複数の第２のパケット転送装置３０のうち、フロー属性に応じた第２のパケット転送装置３０に当該パケットを転送する。
【００１９】
また、第１のパケット転送装置２０は、負荷監視装置１０からの命令に応じて、負荷分散に用いられる所定のテーブルを変更する。
【００２０】
第２のパケット転送装置３０は、例えばルータ等であり、第１のパケット転送装置２０から転送されたパケットをネットワークＮ２側に転送する。以降では、複数の第２のパケット転送装置３０の各々を区別する場合は、「第２のパケット転送装置３０−１」、「第２のパケット転送装置３０−２」等と表す。
【００２１】
なお、図１に示す負荷分散システム１の構成は一例であって、他の構成であっても良い。例えば、第１のパケット転送装置２０及び第２のパケット転送装置３０は、ネットワーク仮想化技術によってコンピュータ上等に構築された仮想的なルータ等であっても良い。
【００２２】
（実施例１）
以降では、本発明の実施の形態における負荷分散システム１の実施例１について説明する。
【００２３】
＜機能構成＞
まず、実施例１における負荷分散システム１の機能構成について、図２を参照しながら説明する。図２は、実施例１における負荷分散システム１の機能構成の一例を示す図である。
【００２４】
図１に示すように、実施例１における負荷監視装置１０は、流量監視部１０１と、負荷分散決定部１０２と、命令送信部１０３とを有する。
【００２５】
流量監視部１０１は、第２のパケット転送装置３０の統計情報から、これらの第２のパケット転送装置３０のトラヒック流量をデータ量（ｂｐｓ）及びパケット数（ｐｐｓ）それぞれの観点で監視する。すなわち、流量監視部１０１は、各第２のパケット転送装置３０について、監視結果として、データ量（ｂｐｓ）及びパケット数（ｐｐｓ）を得る。以降では、監視結果とした得られたデータ量（ｂｐｓ）を「ｂｐｓ結果値」、監視結果として得られたパケット数（ｐｐｓ）を「ｐｐｓ結果値」と表す。
【００２６】
負荷分散決定部１０２は、負荷分散を実施又は解除するかを決定する。すなわち、負荷分散決定部１０２は、ｂｐｓ結果値が、予め設定されたｂｐｓ閾値を超えたか又は下回ったかを判定する。同様に、負荷分散決定部１０２は、ｐｐｓ結果値が、予め設定されたｐｐｓ閾値を超えたか又は下回ったかを判定する。
【００２７】
そして、負荷分散決定部１０２は、ｂｐｓ結果値がｂｐｓ閾値を超えたと判定した場合、負荷分散を実施すると決定する。一方で、負荷分散決定部１０２は、ｂｐｓ結果値がｂｐｓ閾値を下回ったと判定した場合、負荷分散を解除すると決定する。
【００２８】
同様に、負荷分散決定部１０２は、ｐｐｓ結果値がｐｐｓ閾値を超えたと判定した場合、負荷分散を実施すると決定する。一方で、負荷分散決定部１０２は、ｐｐｓ結果値がｐｐｓ閾値を下回ったと判定した場合、負荷分散を解除すると決定する。
【００２９】
命令送信部１０３は、負荷分散決定部１０２によって負荷分散を実施すると決定された場合又は負荷分散を解除すると判定された場合、所定の命令を第１のパケット転送装置２０に送信する。
【００３０】
ここで、命令には、「閾値種別」と、「命令種別」と、「対象装置の識別情報」とが含まれる。「閾値種別」は、監視結果が超えた閾値又は監視結果が下回った閾値の種別であり、ｂｐｓ閾値を示す情報又はｐｐｓ閾値を示す情報のいずれかが設定される。「命令種別」は、負荷分散の実施又は解除のいずれであるかを示す情報が設定される。「対象装置の識別情報」は、監視結果が閾値を超えた又は下回った第２のパケット転送装置３０の識別情報であり、例えば、当該第２のパケット転送装置３０のＩＰアドレスが設定される。ただし、「対象装置の識別情報」には、ＩＰアドレス以外にも、例えば、当該第２のパケット転送装置３０のＩＤ、ＭＡＣ（Media Access Control）アドレス、ホスト名等が設定されても良い。
【００３１】
また、図１に示すように、実施例１における第１のパケット転送装置２０は、命令受信部２０１と、経路テーブル変更部２０２と、入力ポート２０３と、フロー情報取得部２０４と、アプリ判定部２０５と、経路決定部２０６と、ルーティング部２０７と、出力ポート２０８と、入力バッファ２０９とを有する。これら各機能部は、例えば、第１のパケット転送装置２０にインストールされた１以上のプログラムがＣＰＵ等に実行させる処理により実現される。
【００３２】
命令受信部２０１は、負荷監視装置１０からの命令を受信する。経路テーブル変更部２０２は、命令受信部２０１が受信した命令に応じて、ＥＣＭＰ経路テーブル１０００を変更する。ＥＣＭＰ経路テーブル１０００は、エントリとして経路情報を格納しているテーブルである。なお、ＥＣＭＰ経路テーブル１０００は、例えば、補助記憶装置や専用のメモリ装置等に格納されている。実施例１におけるＥＣＭＰ経路テーブル１０００の詳細については後述する。
【００３３】
入力ポート２０３は、ネットワークＮ１側からのパケットを受信する。そして、入力ポート２０３は、受信したパケットを入力バッファ２０９に格納する。なお、入力バッファ２０９は、受信したパケットを一時的に格納しておくための記憶領域であり、例えばＲＡＭ（Random Access Memory）や補助記憶装置、専用のメモリ装置等により実現される。
【００３４】
フロー情報取得部２０４は、入力バッファ２０９に格納されているパケットのフロー情報（例えば、５−ｔｕｐｌｅ）からハッシュ値を生成する。また、フロー情報取得部２０４は、フローテーブル２０００を参照して、生成したハッシュ値と一致するハッシュ値が含まれるエントリが存在するか否かを判定する。フローテーブル２０００は、エントリとして、ハッシュ値と、出力ポート２０８を示す情報（出力ポート情報）とが対応付けられたフロー転送情報を格納しているテーブルである。出力ポート情報は、複数の出力ポート２０８のうちのいずれか１つの出力ポート２０８を特定するための情報である。なお、フローテーブル２０００は、例えば、ＲＡＭや補助記憶装置、専用のメモリ装置等に格納されている。
【００３５】
そして、フロー情報取得部２０４は、該当のエントリが存在すると判定した場合、当該エントリをルーティング部２０７に通知する。一方で、フロー情報取得部２０４は、該当のエントリが存在しないと判定した場合、当該パケットを新規フローのパケットと判断して、該当のエントリが存在しない旨をアプリ判定部２０５に通知する。このとき、フロー情報取得部２０４は、例えば、５−ｔｕｐｌｅ又は当該パケットのＬ７情報（例えば、Ｌ７のヘッダ情報等）とハッシュ値とをアプリ判定部２０５に通知する。
【００３６】
なお、フローテーブル２０００に格納されているエントリ（フロー転送情報）は、例えば、経路決定部２０６等によって所定の時間毎に削除（クリア）されても良い。
【００３７】
アプリ判定部２０５は、フロー情報取得部２０４からの通知に応じて、５−ｔｕｐｌｅ又はＬ７情報を用いて、新規フローのアプリケーションを特定し、当該新規フローのフロー属性（高ｂｐｓフロー又は高ｐｐｓフローのいずれか）を特定する。そして、アプリ判定部２０５は、特定したフロー属性を経路決定部２０６に通知する。このとき、アプリ判定部２０５は、例えば、５−ｔｕｐｌｅと、フロー属性と、ハッシュ値とを経路決定部２０６に通知する。
【００３８】
経路決定部２０６は、ＥＣＭＰ経路テーブル１０００を参照して、アプリ判定部２０５が特定したフロー属性から出力ポート２０８を決定する。また、経路決定部２０６は、決定した出力ポート２０８を示す情報と、ハッシュ値とを対応付けたフロー転送情報をフローテーブル２０００に格納する。そして、経路決定部２０６は、フローテーブル２０００に格納したエントリ（フロー転送情報）をルーティング部２０７に通知する。
【００３９】
ルーティング部２０７は、フロー情報取得部２０４又は経路決定部２０６から通知されたエントリ（フロー転送情報）に含まれる出力ポート情報を取得する。そして、ルーティング部２０７は、取得した出力ポート情報が示す出力ポート２０８に当該パケットを送信する。
【００４０】
出力ポート２０８は、ルーティング部２０７から受け取ったパケットを出力する。ここで、出力ポート２０８は、例えば、第２のパケット転送装置３０毎に存在する。例えば、出力ポート２０８には、第２のパケット転送装置３０−１に対応する出力ポート２０８−１、第２のパケット転送装置３０−２に対応する出力ポート２０８−２等がある。なお、出力ポート２０８は、物理ポートであっても良いし、論理ポートであっても良い。
【００４１】
ここで、実施例１におけるＥＣＭＰ経路テーブル１０００について、図３を参照しながら説明する。図３は、実施例１におけるＥＣＭＰ経路テーブル１０００の一例を示す図である。
【００４２】
図３に示すように、実施例１におけるＥＣＭＰ経路テーブル１０００には、エントリとして経路情報が格納されている。また、経路情報には、「宛先ネットワーク」と、「サブネットマスク」と、「ゲートウェイのリスト」と、「出力ポート情報」と、「データ量（ｂｐｓ）の負荷状態」と、「パケット数（ｐｐｓ）の負荷状態」とが含まれる。
【００４３】
「宛先ネットワーク」には、パケットの転送先のネットワークのＩＰアドレス又はｄｅｆａｕｌｔが設定される。「サブネットマスク」には、宛先ネットワークに対応するサブネットマスクが設定される。
【００４４】
「ゲートウェイのリスト」には、宛先ネットワークに対応するゲートウェイ（第２のパケット転送装置３０）のＩＰアドレスが設定される。なお、「ゲートウェイのリスト」には、１つの宛先ネットワークに対して、１つ以上のゲートウェイのＩＰアドレスが設定される。
【００４５】
「出力ポート情報」には、「ゲートウェイのリスト」に設定されている各ゲートウェイ（のＩＰアドレス）に対する出力ポート２０８を示す情報がそれぞれ設定される。
【００４６】
図３に示す例では、ゲートウェイ「１９２．１６８．１．０」に対して、出力ポート２０８−１を示す「ｅｔｈ０」が対応付けられている。これは、ゲートウェイ「１９２．１６８．１．０」からパケットを送信する場合、出力ポート２０８−１から送信されることを示している。
【００４７】
同様に、例えば、ゲートウェイ「１９２．１６８．１．１」に対して、出力ポート２０８−２を示す「ｅｔｈ１」が対応付けられている。これは、ゲートウェイ「１９２．１６８．１．１」からパケットを送信する場合、出力ポート２０８−２から送信されることを示している。他のゲートウェイについても同様である。
【００４８】
「データ量（ｂｐｓ）の負荷状態」には、「ゲートウェイのリスト」に設定されている各ゲートウェイ（のＩＰアドレス）に対して、当該ゲートウェイにおけるデータ量（ｂｐｓ）の負荷状態が設定される。ここで、図３に示す例では、「データ量（ｂｐｓ）の負荷状態」に「０」が設定されている場合、該当のゲートウェイにおけるデータ量（ｂｐｓ）の負荷状態が「低負荷」であることを示している。一方で、「データ量（ｂｐｓ）の負荷状態」に「１」が設定されている場合、該当のゲートウェイにおけるデータ量（ｂｐｓ）の負荷状態が「高負荷」であることを示している。
【００４９】
「パケット数（ｐｐｓ）の負荷状態」には、「ゲートウェイのリスト」に設定されている各ゲートウェイ（のＩＰアドレス）に対して、当該ゲートウェイにおけるパケット数（ｐｐｓ）の負荷状態が設定される。ここで、図３に示す例では、「パケット数（ｐｐｓ）の負荷状態」に「０」が設定されている場合、該当のゲートウェイにおけるパケット数（ｐｐｓ）の負荷状態が「低負荷」であることを示している。一方で、「パケット数（ｐｐｓ）の負荷状態」に「１」が設定されている場合、該当のゲートウェイにおけるパケット数（ｐｐｓ）の負荷状態が「高負荷」であることを示している。
【００５０】
このように、実施例１におけるＥＣＭＰ経路テーブル１０００には、宛先ネットワーク毎に、当該宛先ネットワークに対する１以上のゲートウェイと、これらの各ゲートウェイの出力ポート情報及び負荷状態とが含まれる経路情報が格納されている。
【００５１】
後述するように、実施例１では、各ゲートウェイ（第２のパケット転送装置３０）の負荷状態が閾値を超えた場合（又は下回った場合）に、当該ゲートウェイに対応する負荷状態を変更すると共に、パケットを転送する際に、フロー属性に応じて低負荷状態のゲートウェイからパケットを送信することで、負荷分散が行われる。
【００５２】
＜ＥＣＭＰ経路テーブルの変更処理＞
以降では、実施例１におけるＥＣＭＰ経路テーブル１０００の変更処理について、図４を参照しながら説明する。図４は、実施例１におけるＥＣＭＰ経路テーブル１０００の変更処理の流れの一例を説明するための図である。
【００５３】
まず、負荷監視装置１０の流量監視部１０１は、第２のパケット転送装置３０の統計情報から、これらの第２のパケット転送装置３０のｂｐｓ結果値及びｐｐｓ結果値を取得する（ステップＳ１０１）。ここで、流量監視部１０１は、例えば、所定の時間毎に、各第２のパケット転送装置３０のｂｐｓ結果値及びｐｐｓ結果値を取得する。なお、統計情報は、例えば、ｎｅｔｓｔａｔ等により取得することができる。
【００５４】
次に、負荷監視装置１０の負荷分散決定部１０２は、負荷分散を実施又は解除するかを決定する（ステップＳ１０２）。すなわち、負荷分散決定部１０２は、ｂｐｓ結果値がｂｐｓ閾値を超えたか又は下回ったかを判定する。同様に、負荷分散決定部１０２は、ｐｐｓ結果値がｐｐｓ閾値を超えたか又は下回ったかを判定する。なお、ｂｂｓ閾値及びｐｐｓ閾値は、全ての第２のパケット転送装置３０で同一の値が決められても良いし、第２のパケット転送装置３０毎に値が決められても良い。又は、例えば、１以上の第２のパケット転送装置３０を所定の基準でグループ化した上で、グループ毎に値が決められても良い。
【００５５】
そして、負荷分散決定部１０２は、ｂｐｓ結果値がｂｐｓ閾値を超えたと判定した場合、負荷分散を実施すると決定する。一方で、負荷分散決定部１０２は、ｂｐｓ結果値がｂｐｓ閾値を下回ったと判定した場合、負荷分散を解除すると決定する。
【００５６】
同様に、負荷分散決定部１０２は、ｐｐｓ結果値がｐｐｓ閾値を超えたと判定した場合、負荷分散を実施すると決定する。一方で、負荷分散決定部１０２は、ｐｐｓ結果値がｐｐｓ閾値を下回ったと判定した場合、負荷分散を解除すると決定する。
【００５７】
ステップＳ１０２において、負荷分散の実施及び負荷分散の解除のいずれも決定されなかった場合、負荷監視装置１０は、上記のステップＳ１０１に戻る。
【００５８】
一方で、ステップＳ１０２において、負荷分散の実施又は負荷分散の解除の少なくとも一方が決定された場合、負荷監視装置１０の命令送信部１０３は、所定の命令を第１のパケット転送装置２０に送信する（ステップＳ１０３）。
【００５９】
第１のパケット転送装置２０の命令受信部２０１は、負荷監視装置１０からの命令を受信する（ステップＳ１０４）。
【００６０】
次に、第１のパケット転送装置２０の経路テーブル変更部２０２は、命令受信部２０１が受信した命令に応じて、ＥＣＭＰ経路テーブル１０００を変更する（ステップＳ１０５）。
【００６１】
具体的には、例えば、「閾値種別」に「ｂｐｓ閾値」、「命令種別」に「負荷分散の実施」、「対象装置の識別情報」に「１９２．１６８．１．０」がそれぞれ設定されている通知を受信した場合、経路テーブル変更部２０２は、ＥＣＭＰ経路テーブル１０００の各エントリについて、ＩＰアドレスが「１９２．１６８．１．０」であるゲートウェイに対する「データ量（ｂｐｓ）の負荷状態」を「１」に変更する。
【００６２】
同様に、例えば、「閾値種別」に「ｂｐｓ閾値」、「命令種別」に「負荷分散の解除」、「対象装置の識別情報」に「１９２．１６８．１．２」がそれぞれ設定されている通知を受信した場合、経路テーブル変更部２０２は、ＥＣＭＰ経路テーブル１０００の各エントリについて、ＩＰアドレスが「１９２．１６８．１．２」であるゲートウェイに対する「データ量（ｂｐｓ）の負荷状態」を「０」に変更する。
【００６３】
同様に、例えば、「閾値種別」に「ｐｐｓ閾値」、「命令種別」に「負荷分散の実施」、「対象装置の識別情報」に「１９２．１６８．１．１」がそれぞれ設定されている通知を受信した場合、経路テーブル変更部２０２は、ＥＣＭＰ経路テーブル１０００の各エントリについて、ＩＰアドレスが「１９２．１６８．１．１」であるゲートウェイに対する「パケット数（ｐｐｓ）の負荷状態」を「１」に変更する。
【００６４】
同様に、例えば、「閾値種別」に「ｐｐｓ閾値」、「命令種別」に「負荷分散の解除」、「対象装置の識別情報」に「１９２．１６８．１．０」がそれぞれ設定されている通知を受信した場合、経路テーブル変更部２０２は、ＥＣＭＰ経路テーブル１０００の各エントリについて、ＩＰアドレスが「１９２．１６８．１．０」であるゲートウェイに対する「パケット数（ｐｐｓ）の負荷状態」を「０」に変更する。
【００６５】
以上のように、実施例１における負荷分散システム１は、負荷分散対象である第２のパケット転送装置３０のｂｐｓ結果値又はｐｐｓ結果値が閾値を超えた場合又は下回った場合、ＥＣＭＰ経路テーブル１０００に格納されている各エントリにおいて、これらの第２のパケット転送装置３０の負荷状態を変更する。これにより、ＥＣＭＰ経路テーブル１０００に格納されている各エントリによって、各第２のパケット転送装置３０の負荷状態（データ量（ｂｐｓ）の負荷状態及びパケット数（ｐｐｓ）の負荷状態）が管理される。
【００６６】
＜パケット転送処理＞
以降では、実施例２におけるパケット転送処理について、図５を参照しながら説明する。図５は、実施例１におけるパケット転送処理の流れの一例を説明するための図である。
【００６７】
まず、第１のパケット転送装置２０の入力ポート２０３は、ネットワークＮ１側からのパケットを受信する（ステップＳ２０１）。
【００６８】
次に、第１のパケット転送装置２０の入力ポート２０３は、上記のステップＳ２０１で受信したパケットを入力バッファ２０９に格納する（ステップＳ２０２）。
【００６９】
次に、第１のパケット転送装置２０のフロー情報取得部２０４は、入力バッファ２０９に格納されているパケットのフロー情報（例えば、５−ｔｕｐｌｅ）からハッシュ値を生成する（ステップＳ２０３）。なお、ハッシュ値の生成に用いられるハッシュ関数は任意のものを用いることができる。
【００７０】
次に、第１のパケット転送装置２０のフロー情報取得部２０４は、上記のステップＳ２０３で生成したハッシュ値と一致するハッシュ値が含まれるエントリ（フロー転送情報）がフローテーブル２０００に格納されているか否かを判定する（ステップＳ２０４）。
【００７１】
ステップＳ２０４において、当該エントリがフローテーブル２０００に格納されていると判定された場合、第１のパケット転送装置２０は、後述するステップＳ２０８の処理に進む。
【００７２】
一方で、ステップＳ２０４において、当該エントリがフローテーブル２０００に格納されていないと判定された場合、第１のパケット転送装置２０のアプリ判定部２０５は、５−ｔｕｐｌｅ又はＬ７情報を用いて、当該パケットのフロー属性を特定する（ステップＳ２０５）。すなわち、アプリ判定部２０５は、当該パケットによるフローのフロー属性が「高ｂｐｓフロー」又は「高ｐｐｓフロー」のいずれであるかを特定する。これは、例えば、５−ｔｕｐｌｅに含まれるプロトコルタイプやＬ７情報に含まれるアプリケーション情報等を用いて、当該フローを扱うアプリケーションの種別を判定することで特定することができる。
【００７３】
次に、第１のパケット転送装置２０の経路決定部２０６は、ＥＣＭＰ経路テーブル１０００を参照して、上記のステップＳ２０５で特定したフロー属性から出力ポート２０８を決定する（ステップＳ２０６）。経路決定部２０６は、例えば、次のＳ１〜Ｓ３の手順により出力ポート２０８を決定する。
【００７４】
Ｓ１）まず、経路決定部２０６は、アプリ判定部２０５から通知された５−ｔｕｐｌｅに含まれる宛先ＩＰアドレスのネットワークアドレスに対応するエントリをＥＣＭＰ経路テーブル１０００から検索する。このとき、経路決定部２０６は、例えば、ロンゲストマッチでエントリを検索する。当該ネットワークアドレスに対応するエントリが検索された場合、経路決定部２０６は、このエントリを参照する。一方で、当該ネットワークアドレスに対応するエントリが検索されなかった場合、経路決定部２０６は、宛先ネットワークに「ｄｅｆａｕｌｔ」が設定されているエントリを参照する。
【００７５】
Ｓ２）次に、経路決定部２０６は、フロー属性に応じて、参照しているエントリに含まれる「ゲートウェイのリスト」の中から低負荷状態のゲートウェイを検索する。
【００７６】
例えば、上記のステップＳ２０５で特定したフロー属性が「高ｂｐｓフロー」である場合、経路決定部２０６は、当該エントリに含まれる「ゲートウェイのリスト」のうち、「データ量（ｂｐｓ）の負荷状態」に「０」が設定されているゲートウェイを上から順番に検索する。
【００７７】
一方で、例えば、上記のステップＳ２０５で特定したフロー属性が「高ｐｐｓフロー」である場合、経路決定部２０６は、当該エントリに含まれる「ゲートウェイのリスト」のうち、「パケット数（ｐｐｓ）の負荷状態」に「０」が設定されているゲートウェイを上から順番に検索する。
【００７８】
Ｓ３）そして、経路決定部２０６は、上記のＳ２で検索されたゲートウェイに対応する出力ポート情報が示す出力ポート２０８を、当該パケットの出力ポート２０８に決定する。
【００７９】
なお、上記のＳ２でゲートウェイが検索されなかった場合、経路決定部２０６は、高負荷状態のゲートウェイに対応する出力ポート情報が示す出力ポート２０８を、当該パケットの出力ポート２０８に決定する。例えば、上記のステップＳ２０５で特定したフロー属性が「高ｂｐｓフロー」で、「データ量（ｂｐｓ）の負荷状態」に「０」が設定されているゲートウェイが存在しない場合、経路決定部２０６は、「データ量（ｂｐｓ）の負荷状態」に「１」が設定されているゲートウェイに対応する出力ポート情報が示す出力ポート２０８を、当該パケットの出力ポート２０８に決定する。同様に、例えば、上記のステップＳ２０５で特定したフロー属性が「高ｐｐｓフロー」で、「パケット数（ｐｐｓ）の負荷状態」に「０」が設定されているゲートウェイが存在しない場合、経路決定部２０６は、「パケット数（ｐｐｓ）の負荷状態」に「１」が設定されているゲートウェイに対応する出力ポート情報が示す出力ポート２０８を、当該パケットの出力ポート２０８に決定する。
【００８０】
ここで、同一の宛先ネットワークに対する出力ポート２０８をラウンドロビンで変更したい場合は、経路決定部２０６は、決定した出力ポート２０８に対応するゲートウェイを、「ゲートウェイのリスト」の最後尾に移動させても良い。例えば、図３に示すＥＣＭＰ経路テーブル１０００において、宛先ネットワーク「ｄｅｆａｕｌｔ」のゲートウェイ「１９２．１６８．１．０」の出力ポート情報「ｅｔｈ０」が出力ポート２０８に決定された場合、このゲートウェイ「１９２．１６８．１．０」をリストの最後尾（すなわち、ゲートウェイ「１９２．１６８．１．２」の後ろ）に移動させても良い。これにより、同一の宛先ネットワークに対する出力ポート２０８をラウンドロビンで変更することで、更なる負荷分散が期待できる。
【００８１】
次に、第１のパケット転送装置２０の経路決定部２０６は、アプリ判定部２０５から通知されたハッシュ値と、上記のステップＳ２０６で決定した出力ポート２０８を示す情報（出力ポート情報）とを対応付けたフロー転送情報をフローテーブル２０００に格納する（ステップＳ２０７）。
【００８２】
第１のパケット転送装置２０のルーティング部２０７は、該当のエントリ（上記のステップＳ２０４でハッシュ値が一致すると判定されたエントリ又は上記のステップＳ２０７で格納されたエントリ）から出力ポート情報を取得する（ステップＳ２０８）。そして、ルーティング部２０７は、取得した出力ポート情報が示す出力ポート２０８に当該パケットを送信する。
【００８３】
第１のパケット転送装置２０の出力ポート２０８は、ルーティング部２０７から受け取ったパケットを出力する（ステップＳ２０９）。
【００８４】
以上のように、実施例１における負荷分散システム１は、第１のパケット転送装置２０から第２のパケット転送装置３０にパケットを転送する際に、当該パケットによるフローのフロー属性に応じて、低負荷状態の第２のパケット転送装置３０に当該パケットを転送する。これにより、実施例１における負荷分散システム１では、第２のパケット転送装置３０の負荷分散を実現することができる。このため、例えば、或る第２のパケット転送装置３０に高ｂｐｓフローのパケットが集中する事態や高ｐｐｓフローのパケットが集中する事態を防止することができ、第２のパケット転送装置３０の転送容量を最大限に活かすことができるようになる。
【００８５】
（実施例２）
以降では、本発明の実施の形態における負荷分散システム１の実施例２について説明する。なお、実施例２では、主に、実施例１との相違点について説明し、実施例１と同様の構成要素については、適宜、その説明を省略する。
【００８６】
＜機能構成＞
まず、実施例２における負荷分散システム１の機能構成について、図６を参照しながら説明する。図６は、実施例２における負荷分散システム１の機能構成の一例を示す図である。なお、実施例２における負荷監視装置１０の機能構成は、実施例１と同様である、その説明を省略する。
【００８７】
図６に示すように、実施例２における第１のパケット転送装置２０は、命令受信部２０１と、経路テーブル変更部２０２と、入力ポート２０３と、アプリ判定部２０５と、経路決定部２０６と、ルーティング部２０７と、出力ポート２０８と、入力バッファ２０９とを有する。これらの各機能部のうち、経路テーブル変更部２０２と、アプリ判定部２０５と、経路決定部２０６と、ルーティング部２０７との機能が実施例１と異なる。そこで、以降では、これらの各機能部について説明する。
【００８８】
経路テーブル変更部２０２は、命令受信部２０１が受信した命令に応じて、ＥＣＭＰ経路テーブル３０００を変更する。ＥＣＭＰ経路テーブル３０００は、ＥＣＭＰ経路テーブル３０００−１と、ＥＣＭＰ経路テーブル３０００−２と、ＥＣＭＰ経路テーブル３０００−３と、ＥＣＭＰ経路テーブル３０００−４との４つのテーブルから構成されている。
【００８９】
ＥＣＭＰ経路テーブル３０００−１は、高ｂｐｓフロー用の経路情報のうち、高優先度の経路情報をエントリとして格納しているテーブルである。ＥＣＭＰ経路テーブル３０００−２は、高ｂｐｓフロー用の経路情報のうち、低優先度の経路情報をエントリとして格納しているテーブルである。ＥＣＭＰ経路テーブル３０００−３は、高ｐｐｓフロー用の経路情報のうち、高優先度の経路情報をエントリとして格納しているテーブルである。ＥＣＭＰ経路テーブル３０００−４は、高ｐｐｓフロー用の経路情報のうち、低優先度の経路情報をエントリとして格納しているテーブルである。なお、高優先度及び低優先度とは、出力ポート２０８の決定の際に参照される優先度のことであり、高優先度のエントリの方が低優先度のエントリよりも優先的に参照される。実施例２におけるＥＣＭＰ経路テーブル３０００の詳細については後述する。
【００９０】
アプリ判定部２０５は、入力バッファ２０９に格納されているパケットのフロー情報（例えば、５−ｔｕｐｌｅ）又は当該パケットのＬ７情報（例えば、Ｌ７のヘッダ情報等）を用いて、当該パケットによるフローのアプリケーションを特定し、当該フローのフロー属性（高ｂｐｓフロー又は高ｐｐｓフローのいずれか）を特定する。そして、アプリ判定部２０５は、特定したフロー属性を経路決定部２０６に通知する。このとき、アプリ判定部２０５は、例えば、５−ｔｕｐｌｅと、フロー属性とを経路決定部２０６に通知する。
【００９１】
経路決定部２０６は、ＥＣＭＰ経路テーブル３０００を参照して、アプリ判定部２０５が特定したフロー属性から出力ポート２０８を決定する。また、経路決定部２０６は、決定した出力ポート２０８を示す情報（出力ポート情報）をルーティング部２０７に通知する。
【００９２】
ルーティング部２０７は、経路決定部２０６から通知された出力ポート情報が示す出力ポート２０８に当該パケットを送信する。
【００９３】
ここで、実施例２におけるＥＣＭＰ経路テーブル３０００について、図７を参照しながら説明する。図７は、実施例２におけるＥＣＭＰ経路テーブル３０００の一例を示す図である。
【００９４】
図７に示すように、実施例２におけるＥＣＭＰ経路テーブル３０００は、ＥＣＭＰ経路テーブル３０００−１と、ＥＣＭＰ経路テーブル３０００−２と、ＥＣＭＰ経路テーブル３０００−３と、ＥＣＭＰ経路テーブル３０００−４との４つのテーブルから構成されている。また、各ＥＣＭＰ経路テーブル３０００には、エントリとして経路情報が格納されている。経路情報には、「宛先ネットワーク」と、「サブネットマスク」と、「ゲートウェイ」と、「出力ポート情報」とが含まれる。
【００９５】
「宛先ネットワーク」には、パケットの転送先のネットワークのＩＰアドレスが設定される。「サブネットマスク」には、宛先ネットワークに対応するサブネットマスクが設定される。
【００９６】
「ゲートウェイ」には、宛先ネットワークに対応するゲートウェイ（第２のパケット転送装置３０）のＩＰアドレスが設定される。
【００９７】
「出力ポート情報」には、「ゲートウェイ」に設定されているゲートウェイ（のＩＰアドレス）に対する出力ポート２０８を示す情報が設定される。
【００９８】
このように、実施例２におけるＥＣＭＰ経路テーブル３０００には、宛先ネットワーク毎に、当該宛先ネットワークに対するゲートウェイと、このゲートウェイの出力ポート情報とが含まれる経路情報が格納されている。
【００９９】
後述するように、実施例２では、各ゲートウェイ（第２のパケット転送装置３０）の負荷状態が閾値を超えた場合（又は下回った場合）に、当該ゲートウェイのＩＰアドレスが含まれる経路情報が格納されるテーブルを変更すると共に、パケットを転送する際に、フロー属性に応じて低負荷状態のゲートウェイからパケットを送信することで、負荷分散が行われる。
【０１００】
＜ＥＣＭＰ経路テーブルの変更処理＞
以降では、実施例２におけるＥＣＭＰ経路テーブル３０００の変更処理について、図８を参照しながら説明する。図８は、実施例２におけるＥＣＭＰ経路テーブル３０００の変更処理の流れの一例を説明するための図である。なお、図８のステップＳ３０１〜ステップＳ３０４の処理は、図４のステップＳ１０１〜ステップＳ１０４とそれぞれ同様であるため、その説明を省略する。
【０１０１】
ステップＳ３０４に続いて、第１のパケット転送装置２０の経路テーブル変更部２０２は、命令受信部２０１が受信した命令に応じて、ＥＣＭＰ経路テーブル３０００を変更する（ステップＳ３０５）。
【０１０２】
具体的には、例えば、「閾値種別」に「ｂｐｓ閾値」、「命令種別」に「負荷分散の実施」、「対象装置の識別情報」に「１９２．１６８．１．０」がそれぞれ設定されている通知を受信したとする。この場合、経路テーブル変更部２０２は、ＩＰアドレス「１９２．１６８．１．０」に対応するネットワークアドレスが「宛先ネットワーク」に設定された経路情報をＥＣＭＰ経路テーブル３０００−１から削除した上で、この削除した経路情報をＥＣＭＰ経路テーブル３０００−２に追加する。言い換えれば、経路テーブル変更部２０２は、当該経路情報を、高優先度から低優先度に変更する。
【０１０３】
同様に、例えば、「閾値種別」に「ｂｐｓ閾値」、「命令種別」に「負荷分散の解除」、「対象装置の識別情報」に「１９２．１６８．１．２」がそれぞれ設定されている通知を受信したとする。この場合、経路テーブル変更部２０２は、ＩＰアドレス「１９２．１６８．１．２」に対応するネットワークアドレスが「宛先ネットワーク」に設定された経路情報をＥＣＭＰ経路テーブル３０００−２から削除した上で、この削除した経路情報をＥＣＭＰ経路テーブル３０００−１に追加する。言い換えれば、経路テーブル変更部２０２は、当該経路情報を、低優先度から高優先度に変更する。
【０１０４】
同様に、例えば、「閾値種別」に「ｐｐｓ閾値」、「命令種別」に「負荷分散の実施」、「対象装置の識別情報」に「１９２．１６８．１．１」がそれぞれ設定されている通知を受信したとする。この場合、経路テーブル変更部２０２は、ＩＰアドレス「１９２．１６８．１．１」に対応するネットワークアドレスが「宛先ネットワーク」に設定された経路情報をＥＣＭＰ経路テーブル３０００−３から削除した上で、この削除した経路情報をＥＣＭＰ経路テーブル３０００−４に追加する。言い換えれば、経路テーブル変更部２０２は、当該経路情報を、高優先度から低優先度に変更する。
【０１０５】
同様に、例えば、「閾値種別」に「ｂｐｓ閾値」、「命令種別」に「負荷分散の解除」、「対象装置の識別情報」に「１９２．１６８．１．２」がそれぞれ設定されている通知を受信したとする。この場合、経路テーブル変更部２０２は、ＩＰアドレス「１９２．１６８．１．２」に対応するネットワークアドレスが「宛先ネットワーク」に設定された経路情報をＥＣＭＰ経路テーブル３０００−４から削除した上で、この削除した経路情報をＥＣＭＰ経路テーブル３０００−３に追加する。言い換えれば、経路テーブル変更部２０２は、当該経路情報を、低優先度から高優先度に変更する。
【０１０６】
以上のように、実施例２における負荷分散システム１は、負荷分散対象である第２のパケット転送装置３０のｂｐｓ結果値又はｐｐｓ結果値が閾値を超えた場合又は下回った場合、ｂｐｓ結果値又はｐｐｓ結果値に応じて、高ｂｐｓフロー用のＥＣＭＰ経路テーブル３０００又は高ｐｐｓフロー用のＥＣＭＰ経路テーブル３０００に格納されているエントリのうち、該当のエントリの優先度を変更する。
【０１０７】
＜パケット転送処理＞
以降では、実施例２におけるパケット転送処理について、図９を参照しながら説明する。図９は、実施例２におけるパケット転送処理の流れの一例を説明するための図である。なお、図９のステップＳ４０１〜ステップＳ４０２の処理は、図５のステップＳ２０１〜ステップＳ２０２の処理とそれぞれ同様であるため、その説明を省略する。
【０１０８】
ステップＳ２０２に続いて、第１のパケット転送装置２０のアプリ判定部２０５は、入力バッファ２０９に格納されているパケットのフロー情報（例えば、５−ｔｕｐｌｅ）又は当該パケットのＬ７情報（例えば、Ｌ７のヘッダ情報等）を用いて、当該パケットによるフローのフロー属性（高ｂｐｓフロー又は高ｐｐｓフローのいずれか）を特定する（ステップＳ４０３）。
【０１０９】
次に、第１のパケット転送装置２０の経路決定部２０６は、該当のＥＣＭＰ経路テーブル３０００を参照して、出力ポート２０８を決定する（ステップＳ４０４）。
【０１１０】
例えば、上記のステップＳ４０３で特定されたフロー属性が「高ｂｐｓフロー」である場合、経路決定部２０６は、ＥＣＭＰ経路テーブル３０００−１を参照して、当該パケットの宛先ＩＰアドレスに対応するネットワークアドレスが「宛先ネットワーク」に設定されているエントリが存在するか否かを判定する。
【０１１１】
そして、ＥＣＭＰ経路テーブル３０００−１に当該エントリが存在すると判定された場合、経路決定部２０６は、当該エントリの「出力ポート情報」に設定されている出力ポート情報が示す出力ポート２０８を、当該パケットの出力ポート２０８に決定する。なお、当該パケットの宛先ＩＰアドレスに対応するネットワークアドレスが「宛先ネットワーク」に設定されているエントリが複数存在する場合、経路決定部２０６は、ラウンドロビンにより、これら複数のエントリそれぞれの「出力ポート情報」に設定されている出力ポート情報から１つの出力ポートを決定すれば良い。
【０１１２】
一方で、ＥＣＭＰ経路テーブル３０００−１に当該エントリが存在しないと判定された場合、経路決定部２０６は、ＥＣＭＰ経路テーブル３０００−２を参照して、当該パケットの宛先ＩＰアドレスに対応するネットワークアドレスが「宛先ネットワーク」に設定されているエントリが存在するか否かを判定する。
【０１１３】
そして、ＥＣＭＰ経路テーブル３０００−２に当該エントリが存在すると判定された場合、経路決定部２０６は、当該エントリの「出力ポート情報」に設定されている出力ポート情報が示す出力ポート２０８を、当該パケットの出力ポート２０８に決定する。なお、当該パケットの宛先ＩＰアドレスに対応するネットワークアドレスが「宛先ネットワーク」に設定されているエントリが複数存在する場合、経路決定部２０６は、ラウンドロビンにより、これら複数のエントリそれぞれの「出力ポート情報」に設定されている出力ポート情報から１つの出力ポートを決定すれば良い。
【０１１４】
なお、ＥＣＭＰ経路テーブル３０００−２に当該エントリが存在しないと判定された場合、経路決定部２０６は、「宛先ネットワーク」に「ｄｅｆａｕｌｔ」が設定されているエントリの「出力ポート情報」に設定されている出力ポート情報が示す出力ポート２０８を、当該パケットの出力ポート２０８に決定すれば良い。
【０１１５】
同様に、例えば、上記のステップＳ４０３で特定されたフロー属性が「高ｐｐｓフロー」である場合、経路決定部２０６は、ＥＣＭＰ経路テーブル３０００−３を参照して、当該パケットの宛先ＩＰアドレスに対応するネットワークアドレスが「宛先ネットワーク」に設定されているエントリが存在するか否かを判定する。
【０１１６】
そして、ＥＣＭＰ経路テーブル３０００−３に当該エントリが存在すると判定された場合、経路決定部２０６は、当該エントリの「出力ポート情報」に設定されている出力ポート情報が示す出力ポート２０８を、当該パケットの出力ポート２０８に決定する。なお、当該パケットの宛先ＩＰアドレスに対応するネットワークアドレスが「宛先ネットワーク」に設定されているエントリが複数存在する場合、経路決定部２０６は、ラウンドロビンにより、これら複数のエントリそれぞれの「出力ポート情報」に設定されている出力ポート情報から１つの出力ポートを決定すれば良い。
【０１１７】
一方で、ＥＣＭＰ経路テーブル３０００−３に当該エントリが存在しないと判定された場合、経路決定部２０６は、ＥＣＭＰ経路テーブル３０００−４を参照して、当該パケットの宛先ＩＰアドレスに対応するネットワークアドレスが「宛先ネットワーク」に設定されているエントリが存在するか否かを判定する。
【０１１８】
そして、ＥＣＭＰ経路テーブル３０００−４に当該エントリが存在すると判定された場合、経路決定部２０６は、当該エントリの「出力ポート情報」に設定されている出力ポート情報が示す出力ポート２０８を、当該パケットの出力ポート２０８に決定する。なお、当該パケットの宛先ＩＰアドレスに対応するネットワークアドレスが「宛先ネットワーク」に設定されているエントリが複数存在する場合、経路決定部２０６は、ラウンドロビンにより、これら複数のエントリそれぞれの「出力ポート情報」に設定されている出力ポート情報から１つの出力ポートを決定すれば良い。
【０１１９】
なお、ＥＣＭＰ経路テーブル３０００−４に当該エントリが存在しないと判定された場合、経路決定部２０６は、「宛先ネットワーク」に「ｄｅｆａｕｌｔ」が設定されているエントリの「出力ポート情報」に設定されている出力ポート情報が示す出力ポート２０８を、当該パケットの出力ポート２０８に決定すれば良い。
【０１２０】
次に、第１のパケット転送装置２０のルーティング部２０７は、経路決定部２０６により決定された出力ポートを示す出力ポート情報を取得する（ステップＳ４０５）。そして、ルーティング部２０７は、取得した出力ポート情報が示す出力ポート２０８に当該パケットを送信する。
【０１２１】
第１のパケット転送装置２０の出力ポート２０８は、ルーティング部２０７から受け取ったパケットを出力する（ステップＳ４０６）。
【０１２２】
以上のように、実施例２における負荷分散システム１は、第１のパケット転送装置２０から第２のパケット転送装置３０にパケットを転送する際に、当該パケットによるフローのフロー属性に応じて、４つのＥＣＭＰ経路テーブル３０００のうち、優先度の高い順に、当該フロー属性に対応するＥＣＭＰ経路テーブル３０００を参照することで、低負荷状態の第２のパケット転送装置３０に当該パケットを転送する。これにより、実施例２における負荷分散システム１では、第２のパケット転送装置３０の負荷分散を実現することができる。このため、実施例１と同様に、例えば、或る第２のパケット転送装置３０に高ｂｐｓフローのパケットが集中する事態や高ｐｐｓフローのパケットが集中する事態を防止することができ、第２のパケット転送装置３０の転送容量を最大限に活かすことができるようになる。
【０１２３】
＜ハードウェア構成＞
最後に、本発明の実施の形態における負荷監視装置１０、第１のパケット転送装置２０及び第２のパケット転送装置３０のハードウェア構成について説明する。本発明の実施の形態における負荷監視装置１０、第１のパケット転送装置２０及び第２のパケット転送装置３０は、例えば図１０に示すコンピュータ５００を１台以上用いることにより実現される。図１０は、コンピュータ５００のハードウェア構成の一例を示す図である。
【０１２４】
図１０に示すコンピュータ５００は、ＣＰＵ（Central Processing Unit）５０１と、ＲＡＭ５０２と、ＲＯＭ（Read Only Memory）５０３と、外部Ｉ／Ｆ５０４と、通信Ｉ／Ｆ５０５と、補助記憶装置５０６とを有する。これら各ハードウェアは、それぞれがバスＢを介して通信可能に接続されている。
【０１２５】
ＣＰＵ５０１は、ＲＯＭ５０３や補助記憶装置５０６等からプログラムやデータをＲＡＭ５０２上に読み出して処理を実行する演算装置である。
【０１２６】
ＲＡＭ５０２は、プログラムやデータを一時保持する揮発性の半導体メモリである。ＲＯＭ５０３は、電源を切ってもプログラムやデータを保持することができる不揮発性の半導体メモリである。ＲＯＭ５０３には、例えば、ＯＳ設定やネットワーク設定等が格納されている。
【０１２７】
外部Ｉ／Ｆ５０４は、外部装置とのインタフェースである。外部装置には、記録媒体５０４ａ等がある。コンピュータ５００は、外部Ｉ／Ｆ５０４を介して、記録媒体５０４ａ等の読み取りや書き込み等を行うことができる。
【０１２８】
記録媒体５０４ａには、例えば、フレキシブルディスク、ＣＤ（Compact Disc）、ＤＶＤ（Digital Versatile Disk）、ＳＤメモリカード（Secure Digital memory card）、ＵＳＢ（Universal Serial Bus）メモリカード等がある。
【０１２９】
通信Ｉ／Ｆ５０５は、他の装置と通信を行うためのインタフェースである。なお、第１のパケット転送装置２０及び第２のパケット転送装置３０は、複数の通信Ｉ／Ｆ５０５を有する。
【０１３０】
補助記憶装置５０６は、例えばＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）等であり、プログラムやデータを格納している不揮発性の記憶装置である。補助記憶装置５０６に格納されているプログラムやデータには、例えば、ＯＳ、当該ＯＳ上において各種機能を実現するアプリケーションプログラム等がある。
【０１３１】
本発明の実施の形態における負荷監視装置１０、第１のパケット転送装置２０及び第２のパケット転送装置３０は、図１０に示すコンピュータ５００を１台以上用いることにより、上述した各種処理を実行することができる。例えば、負荷監視装置１０が有する各機能部は、補助記憶装置５０６に格納された１以上のプログラムがＣＰＵ５０１等に実行させる処理により実現される。また、例えば、第１のパケット転送装置２０が有する各機能部は、補助記憶装置５０６に格納された１以上のプログラムがＣＰＵ５０１等に実行させる処理や通信Ｉ／Ｆ５０５等により実現される。
【０１３２】
なお、負荷監視装置１０は、例えばディスプレイ等の表示装置と、例えばキーボードやマウス等の入力装置とのうちの少なくとも一方を有していても良い。
【０１３３】
本発明は、具体的に開示された上記の実施の形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。例えば、上記の実施の形態では、負荷分散を行うパケット転送装置を第１のパケット転送装置２０、負荷分散の対象となるパケット転送装置を第２のパケット転送装置３０としたが、これは、或るパケット転送装置が常に第１のパケット転送装置２０又は第２のパケット転送装置３０のいずれかとして機能することを意味するものではない。例えば、同一のパケット転送装置が第１のパケット転送装置２０として機能し、かつ、第２のパケット転送装置３０としても機能しても良い。
【符号の説明】
【０１３４】
１          負荷分散システム
１０        負荷監視装置
２０        第１のパケット転送装置
３０        第２のパケット転送装置
１０１      流量監視部
１０２      負荷分散決定部
１０３      命令送信部
２０１      命令受信部
２０２      経路テーブル変更部
２０３      入力ポート
２０４      フロー情報取得部
２０５      アプリ判定部
２０６      経路決定部
２０７      ルーティング部
２０８      出力ポート
２０９      入力バッファ
Ｎ１、Ｎ２  ネットワーク
【図１】
2019146099.tif 000003
【図２】
2019146099.tif 000004
【図３】
2019146099.tif 000005
【図４】
2019146099.tif 000006
【図５】
2019146099.tif 000007
【図６】
2019146099.tif 000008
【図７】
2019146099.tif 000009
【図８】
2019146099.tif 000010
【図９】
2019146099.tif 000011
【図１０】
2019146099.tif 000012