(57)【要約】【課題】Ｌ３終端を行う通信装置のスケールアウトのための設定作業の手間やコストを低減する。【解決手段】サーバ５０は、Ｌ２スイッチ経由でＬ３終端を行ういずれかのロードバランサからパケットを受信するパケット受信部５４３と、記憶部５３のＭＡＣ／ＭＡＲＫ番号対応表を参照して、受信パケットに、送信元ＭＡＣアドレスに対応するＭＡＲＫ番号を付与する付与部５４４と、コネクション／ＭＡＲＫ番号対応表に、受信パケットのコネクションに対するＭＡＲＫ番号を記録する記録部５４５と、受信パケットに対する返信パケットを送信する場合、受信パケットのコネクションに対応するＭＡＲＫ番号に対応するロードバランサのＩＰアドレスを記憶部５３のＭＡＲＫ番号／ＧＷ対応表から取得して、Ｌ２スイッチ経由でパケットをルーティングするパケット送信部５４６と、を有する。【選択図】図３
2019176323.tif 000002
【特許請求の範囲】
【請求項１】
Ｌ２（レイヤ２）スイッチにより接続され、Ｌ３（レイヤ３）終端を行ういずれかの第１の通信装置経由でパケットの送受信を行う第２の通信装置であって、
前記Ｌ２スイッチ経由でいずれかの前記第１の通信装置から、送信元ＭＡＣ（Media  Access  Control）アドレスにパケットの送信元である前記第１の通信装置のＭＡＣアドレスが設定されたパケットを受信するパケット受信部と、
前記第１の通信装置のＭＡＣアドレスと前記パケットのコネクションに付与される識別番号とが対応付けられた第１の対応表と、前記パケット受信部が受信したパケットのコネクションに対して前記識別番号が記録される第２の対応表と、前記第１の通信装置のＩＰアドレスと前記識別番号とが対応付けられた第３の対応表と、を記憶する記憶部と、
前記第１の対応表を参照して、前記パケット受信部が受信したパケットのコネクションに対し、前記受信したパケットの送信元ＭＡＣアドレスに対応する前記識別番号を付与する付与部と、
前記第２の対応表に、前記受信したパケットのコネクションに対して前記付与部が付与した前記識別番号を記録する記録部と、
前記受信したパケットに対する返信パケットを送信する場合、前記受信したパケットのコネクションに対応する識別番号を前記第２の対応表から取得し、該取得した識別番号に対応する前記第１の通信装置のＩＰアドレスを前記第３の対応表から取得し、該取得した前記第１の通信装置のＩＰアドレスに、前記Ｌ２スイッチ経由でパケットをルーティングするパケット送信部と、
を有することを特徴とする通信装置。
【請求項２】
１以上の第１の通信装置のうちいずれかの第１の通信装置へパケットの転送を行うＬ３（レイヤ３）スイッチと、Ｌ３終端を行う前記１以上の第１の通信装置と、Ｌ２（レイヤ２）スイッチにより接続されたいずれかの第１の通信装置経由でパケットの送受信を行う第２の通信装置とを備える通信制御システムであって、
各第１の通信装置は、
受信したパケットを転送する際、送信元ＭＡＣ（Media  Access  Control）アドレスに、自装置の第１の通信装置のＭＡＣアドレスを設定して転送する通信部を有し、
前記第２の通信装置は、
前記Ｌ２スイッチ経由でいずれかの前記第１の通信装置から、送信元ＭＡＣアドレスにパケットの送信元である前記第１の通信装置のＭＡＣアドレスが設定されたパケットを受信するパケット受信部と、
前記第１の通信装置のＭＡＣアドレスと前記パケットのコネクションに付与される識別番号とが対応付けられた第１の対応表と、前記パケット受信部が受信したパケットのコネクションに対して前記識別番号が記録される第２の対応表と、前記第１の通信装置のＩＰアドレスと前記識別番号とが対応付けられた第３の対応表と、を記憶する記憶部と、
前記第１の対応表を参照して、前記パケット受信部が受信したパケットのコネクションに対し、前記受信したパケットの送信元ＭＡＣアドレスに対応する前記識別番号を付与する付与部と、
前記第２の対応表に、前記受信したパケットのコネクションに対して前記付与部が付与した前記識別番号を記録する記録部と、
前記受信したパケットに対する返信パケットを送信する場合、前記受信したパケットのコネクションに対応する識別番号を前記第２の対応表から取得し、該取得した識別番号に対応する前記第１の通信装置のＩＰアドレスを前記第３の対応表から取得し、該取得した前記第１の通信装置のＩＰアドレスに、前記Ｌ２スイッチ経由でパケットをルーティングするパケット送信部と、
を有することを特徴とする通信制御システム。
【請求項３】
前記第１の通信装置の前記ＭＡＣアドレスは、予め設定されたＭＡＣアドレス付与ルールにしたがって設定されることを特徴とする請求項２に記載の通信制御システム。
【請求項４】
Ｌ２（レイヤ２）スイッチにより接続され、Ｌ３（レイヤ３）終端を行ういずれかの第１の通信装置経由でパケットの送受信を行う第２の通信装置が実行する通信制御方法であって、
前記第２の通信装置は、前記第１の通信装置のＭＡＣ（Media  Access  Control）アドレスと前記パケットのコネクションに付与される識別番号とが対応付けられた第１の対応表と、受信したパケットのコネクションに対して前記識別番号が記録される第２の対応表と、前記第１の通信装置のＩＰアドレスと前記識別番号とが対応付けられた第３の対応表と、を記憶する記憶部を有し、
前記Ｌ２スイッチ経由でいずれかの前記第１の通信装置から、送信元ＭＡＣアドレスにパケットの送信元である前記第１の通信装置のＭＡＣアドレスが設定されたパケットを受信する工程と、
前記第１の対応表を参照して、受信したパケットのコネクションに対し、前記受信したパケットの送信元ＭＡＣアドレスに対応する前記識別番号を付与する工程と、
前記第２の対応表に、前記受信したパケットのコネクションに対して付与された前記識別番号を記録する工程と、
前記受信したパケットに対する返信パケットを送信する場合、前記受信したパケットのコネクションに対応する識別番号を前記第２の対応表から取得し、該取得した識別番号に対応する前記第１の通信装置のＩＰアドレスを前記第３の対応表から取得し、該取得した前記第１の通信装置のＩＰアドレスに、前記Ｌ２スイッチ経由でパケットをルーティングする工程と、
を含んだことを特徴とする通信制御方法。
【請求項５】
コンピュータを、請求項１に記載の通信装置として機能させるための通信制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置、通信制御システム、通信制御方法及び通信制御プログラムに関する。
【背景技術】
【０００２】
例えば、ロードバランサやファイアウォール等のＬ３（レイヤ３）終端を行う通信装置が性能の限界を超えた際の対応策として、当該通信装置を追加する（スケールアウトする）方法がある。ここで、例えば、ロードバランサのスケールアウトを行いう場合、各ロードバランサ間での負荷分散を行うため、ＤＮＳ（Domain  Name  System）ラウンドロビンを用いる方法がある。ＤＮＳラウンドロビンを用いる場合、同じドメインに対し、各ロードバランサに異なるＶＩＰ（Virtual  Internet  Protocol）を設定する。また、ロードバランサごとに、当該ロードバランサが負荷分散処理を行うサーバ群を割り当てておく。
【０００３】
そして、例えば、ＤＮＳラウンドロビンによりパケットの転送先のロードバランサが決定されると、当該パケットを受信したロードバランサは自身のロードバランサに割り当てられたいずれかのサーバへパケットを転送する。
【０００４】
ここで、ロードバランサは、例えば、ＶＩＰを物理サーバのＩＰアドレスにＮＡＴ（Network  Address  Translation）したり、ＤＨ（ディフィー・ヘルマン）鍵交換方式のＳＳＬ（Secure  Sockets  Layer）／ＴＬＳ（Transport  Layer  Security）を終端させたり、Ｌ７（レイヤ７）ロードバランスを実行したりする、ステートフルな装置である。そのため、サーバへのパケット（上りパケット）も当該サーバからの応答パケット（下りパケット）も同じロードバランサを経由する必要がある。ここで、ＤＮＳラウンドロビンを用いる方法の場合、上記のようにロードバランサごとにサーバ群を割り当てることで、上りパケットと下りパケットとで同じロードバランサを経由させることができる。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】Maglev：A  Fast  and  Reliable  Software  Network  Load  Balancer、［online］、［平成３０年３月１６日検索］、インターネット＜ＵＲＬ：https://research.google.com/pubs/pub44824.html＞
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、ロードバランサのスケールアウトに上記のＤＮＳラウンドロビンを用いる場合、追加されたロードバランサに対するサーバ群の新規割り当てや各ロードバランサに割り当てるサーバ群の収容替えを要するため、設定作業に手間やコストがかかるという問題がある。
【０００７】
本発明は、上記に鑑みてなされたものであって、Ｌ３終端を行う通信装置のスケールアウトのための設定作業の手間やコストを低減することができる通信装置、通信制御システム、通信制御方法及び通信制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上述した課題を解決し、目的を達成するために、本発明に係る通信装置は、Ｌ２スイッチにより接続され、Ｌ３終端を行ういずれかの第１の通信装置経由でパケットの送受信を行う第２の通信装置であって、Ｌ２スイッチ経由でいずれかの第１の通信装置から、送信元ＭＡＣ（Media  Access  Control）アドレスにパケットの送信元である第１の通信装置のＭＡＣアドレスが設定されたパケットを受信するパケット受信部と、第１の通信装置のＭＡＣアドレスとパケットのコネクションに付与される識別番号とが対応付けられた第１の対応表と、パケット受信部が受信したパケットのコネクションに対して識別番号が記録される第２の対応表と、第１の通信装置のＩＰアドレスと識別番号とが対応付けられた第３の対応表と、を記憶する記憶部と、第１の対応表を参照して、パケット受信部が受信したパケットのコネクションに対し、受信したパケットの送信元ＭＡＣアドレスに対応する識別番号を付与する付与部と、第２の対応表に、受信したパケットのコネクションに対して付与部が付与した識別番号を記録する記録部と、受信したパケットに対する返信パケットを送信する場合、受信したパケットのコネクションに対応する識別番号を第２の対応表から取得し、該取得した識別番号に対応する第１の通信装置のＩＰアドレスを第３の対応表から取得し、該取得した第１の通信装置のＩＰアドレスに、Ｌ２スイッチ経由でパケットをルーティングするパケット送信部と、を有することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、Ｌ３終端を行う通信装置のスケールアウトのための設定作業の手間やコストを低減することができる。
【図面の簡単な説明】
【００１０】
【図１】図１は、実施の形態に係る通信制御システムの構成の一例を示す図である。
【図２】図２は、実施の形態に係る通信制御システムの具体的な構成例を示す図である。
【図３】図３は、図２に示すサーバの構成の一例を示す図である。
【図４】図４は、ＭＡＣ／ＭＡＲＫ番号対応表のデータ構成の一例を示す図である。
【図５】図５は、コネクション／ＭＡＲＫ番号対応表のデータ構成の一例を示す図である。
【図６】図６は、ＭＡＲＫ番号／ゲートウェイ（gateway：ＧＷ）対応表のデータ構成の一例を示す図である。
【図７】図７は、図２に示す通信制御システムにおけるパケット処理の流れについて説明する図である。
【図８】図８は、図３に示すサーバにおけるパケットの送受信処理の流れについて説明する図である。
【図９】図９は、図３に示すサーバにおけるパケットの送受信処理の流れについて説明する図である。
【図１０】図１０は、図３に示すサーバにおけるパケット受信処理の処理手順を示すフローチャートである。
【図１１】図１１は、図３に示すサーバにおけるパケット送信処理の処理手順を示すフローチャートである。
【図１２】図１２は、ロードバランサのスケールアップ及びＤＮＳラウンドロビンによるロードバランサのスケールアウトの一例を示す図である。
【図１３】図１３は、図３に示す記憶部が記憶する対応表のデータ構成の一例を示す図である。
【図１４】図１４は、プログラムが実行されることにより、サーバが実現されるコンピュータの一例を示す図である。
【発明を実施するための形態】
【００１１】
以下、図面を参照して、本発明の一実施形態を詳細に説明する。なお、この実施の形態により本発明が限定されるものではない。また、図面の記載において、同一部分には同一の符号を付して示している。
【００１２】
［実施の形態］
本発明の実施の形態について説明する。まず、本実施の形態に係る通信制御システムの基本的な構成例を、図１を用いて説明する。図１は、実施の形態に係る通信制御システムの構成の一例を示す図である。
【００１３】
図１に示すように、本実施の形態に係る通信制御システム１は、例えば、スケールアウトの対象となる通信装置（第１の通信装置）と、この第１の通信装置経由でパケットの送受信を行う通信装置（第２の通信装置）とを有する。この第１の通信装置は、例えば、Ｌ３（レイヤ３）スイッチ２０経由でクライアント１０と接続される。また、第１の通信装置は、例えば、Ｌ２（レイヤ２）スイッチ４０経由で第２の通信装置と接続される。
【００１４】
［通信制御システムの概要］
次に、図２を用いて、通信制御システム１の具体的な構成を説明する。図２は、実施の形態に係る通信制御システムの具体的な構成例を示す図である。
【００１５】
ここで、以下の説明では、図２に示すように、スケールアウトの対象となる第１の通信装置が、ロードバランサ３０である場合について説明する。また、第２の通信装置は、ロードバランサ３０経由でパケットの送受信を行うサーバ５０である場合について説明する。ただし、この第１の通信装置及び第２の通信装置は、Ｌ３終端を行う通信装置であれば、ロードバランサ３０やサーバ５０に限定されない。例えば、第１の通信装置及び第２の通信装置は、Ｃａｒｒｉｅｒ  Ｇｒａｄｅ  ＮＡＴやＶＰＮ（Virtual  Private  Network）装置、Ｗｅｂ  Ａｐｐｌｉｃａｔｉｏｎ  Ｆｉｒｅｗａｌｌ等であってもよい。
【００１６】
図２に示すように、通信制御システム１は、例えば、クライアント１０と、Ｌ３スイッチ２０と、１以上のロードバランサ３０と、Ｌ２スイッチ４０と、１以上のサーバ５０（サーバ群）とを有する。ここでは、Ｌ３スイッチ２０とＬ２スイッチ４０との間には３台のロードバランサ３０（ロードバランサ３０−１，３０−２，３０−３）が設置される場合を例に説明する。なお、以下の説明において、クライアント１０からサーバ５０へのパケットを上りパケットと称し、サーバ５０からクライアント１０へのパケットを下りパケットと称する。
【００１７】
クライアント１０は、サーバ５０との通信を行う装置である。Ｌ３スイッチ２０は、受信パケットのルーティングを行う。例えば、Ｌ３スイッチ２０は、クライアント１０から受信したパケットを、自身に接続されるいずれかのロードバランサ３０へ転送する。このＬ３スイッチ２０は、例えば、ｐｅｒ−ｆｌｏｗ  ＥＣＭＰ（Equal  Cost  Multi  Path）により、クライアント１０からの受信パケットの転送先のロードバランサ３０を決定する。
【００１８】
ロードバランサ３０は、サーバ群へのパケットの負荷分散処理を行う。このロードバランサ３０には、例えば、それぞれ同じＶＩＰが設定され、Ｌ３モードで動作する。また、ロードバランサ３０は、例えば、自身のロードバランサ３０に設定されたＶＩＰをサーバ５０のＩＰアドレスにＮＡＴしたり、Ｌ７（レイヤ７）ロードバランスを実行したりする、ステートフルな装置である。なお、各ロードバランサ３０には同じＶＩＰが設定される。また、各ロードバランサ３０は、Ｌ２スイッチ４０経由でサーバ群に接続される。
【００１９】
このように、スケールアウトで追加されたロードバランサ３０を含む各ロードバランサ３０に同じＶＩＰを設定しておき、Ｌ３スイッチ２０は、例えば、ｐｅｒ−ｆｌｏｗ  ＥＣＭＰにより、各ロードバランサ３０の中から、上りパケットの転送先のロードバランサ３０を決定する。これにより、同じＴＣＰ（Transmission  Control  Protocol）コネクションの上りパケットを同じロードバランサ３０に転送しつつ、上りパケットの負荷をできるだけ各ロードバランサ３０に分散させる。
【００２０】
また、各ロードバランサ３０には、それぞれ異なるＭＡＣアドレス及びＩＰアドレスが、設定される。本実施の形態では、各ロードバランサ３０に、例えば、フローティングＩＰ（ＦＩＰ）が割り当てられる場合を例に説明する。また、ロードバランサ３０のＭＡＣアドレスは、予め設定されたＭＡＣアドレス付与ルールにしたがって設定される。ロードバランサ３０が増設された際には、ＭＡＣアドレス付与ルールにしたがい、自動的に、該ロードバランサ３０にＭＡＣアドレスが付与される。
【００２１】
ロードバランサ３０は、上りパケットをＬ２スイッチ４０経由でサーバ５０へ転送する際、この上りパケットの送信元ＭＡＣアドレスに、自装置のＭＡＣアドレスを設定し、転送する通信部を有する。また、ロードバランサ３０が、Ｌ２スイッチ４０経由でサーバ５０からの下りパケットを受け取った際には、この下りパケットをＬ３スイッチ２０経由で宛先のクライアント１０等へ送信する。
【００２２】
Ｌ２スイッチ４０は、各ロードバランサ３０とサーバ群とを接続する。Ｌ２スイッチ４０は、各ロードバランサ３０からの上りパケットをサーバ５０へ転送し、サーバ５０からの下りパケットを宛先ＭＡＣアドレスに対応するロードバランサ３０へ転送する。
【００２３】
サーバ５０は、例えば、クライアント１０からの受信パケットに基づき種々の処理を行った後、この受信パケットの返信パケットを、クライアント１０へ送信する。サーバ５０は、返信パケットを送信する際、該受信パケットが経由したロードバランサ３０を経由させる。
【００２４】
ここで、サーバ５０における受信パケット（到着パケット）のＬ２ヘッダのＳｒｃ  ＭＡＣアドレス（送信元ＭＡＣアドレス）には、ロードバランサ３０（例えば、ロードバランサ３０−１）のＭＡＣアドレスが設定され、Ｄｓｔ  ＭＡＣアドレス（宛先ＭＡＣアドレス）にはサーバ５０のＭＡＣアドレスが設定される。
【００２５】
そして、サーバ５０では、予め、各ロードバランサ３０のＭＡＣアドレスに対応させて、パケットのコネクションに付与する識別番号（ＭＡＲＫ番号）を設定し、保持している。また、サーバ５０では、予め、ＭＡＲＫ番号に、ロードバランサのＩＰアドレスを対応付けて保持している。
【００２６】
サーバ５０は、これらの保持情報を基に、パケット受信時には、受信したパケットのコネクションに、受信したパケットの送信元ＭＡＣアドレスに対応するＭＡＲＫ番号を付与する。そして、サーバ５０は、受信したパケットに対する返信パケットを送信する場合、受信したパケットのコネクションに付与されたＭＡＲＫ番号に対応するロードバランサ３０のＩＰアドレスを取得し、該取得したロードバランサ３０のＩＰアドレスに、Ｌ２スイッチ経由でパケットをルーティングする。
【００２７】
これによって、サーバ５０は、上りパケットに対する下りパケット（返信パケット）を、上りパケットと同じロードバランサ３０へ送信する。この結果、システムにおいてロードバランサ３０のスケールアウトが行われた場合でも、クライアント１０からサーバ５０への上りパケットと、サーバ５０からクライアント１０への下りパケットとで同じロードバランサ３０を経由させることができる。
【００２８】
このように、サーバ５０では、ロードバランサ３０のＭＡＣアドレスをユーザが指定し、さらに、送信元ＭＡＣアドレスと、その戻りパケットのルーティングとを事前に設定しておくことによって、サーバ５０に一切作業を行うことなく、ロードバランサのスケールアウトを行うことができる。したがって、通信制御システム１は、ロードバランサ３０のスケールアウトを行う際に、上りパケットの負荷分散と、下りパケットと上りパケットとで同じロードバランサ３０を経由させることを実現することができる。
【００２９】
［サーバの構成］
次に、図３を用いて、サーバ５０の構成を説明する。図３は、図２に示すサーバ５０の構成の一例を示す図である。図３に示すように、サーバ５０は、通信部５１、入出力部５２、記憶部５３及び制御部５４を有する。
【００３０】
通信部５１は、他の装置との間で、各種情報を送受信する通信インタフェースである。通信部５１は、例えば、ＮＩＣ（Network  Interface  Card）等で実現され、ＬＡＮ（Local  Area  Network）やインターネットなどの電気通信回線を介した他の装置と制御部５４（後述）との間の通信を行う。通信部５１は、例えば、Ｌ２スイッチ４０経由で上りパケットを受信したり、制御部５４から出力された下りパケットをＬ２スイッチ４０経由で送信したりする。
【００３１】
入出力部５２は、サーバ５０への各種情報の入出力を司る。入出力部５２は、例えば、サーバ５０への設定情報等の入力を受け付ける。
【００３２】
記憶部５３は、例えば、ＲＡＭ（Random  Access  Memory）、フラッシュメモリ（Flash  Memory）等の半導体メモリ素子、又は、ハードディスク、光ディスク等の記憶装置によって実現され、サーバ５０を動作させる処理プログラムや、処理プログラムの実行中に使用されるデータなどが記憶される。記憶部５３は、ＭＡＣ／ＭＡＲＫ番号対応表記憶部５３１、コネクション／ＭＡＲＫ番号対応表記憶部５３２及びＭＡＲＫ番号／ＧＷ対応表記憶部５３３を有する。
【００３３】
ＭＡＣ／ＭＡＲＫ番号対応表記憶部５３１は、ＭＡＣ／ＭＡＲＫ番号対応表（第１の対応表）を記憶する。図４は、ＭＡＣ／ＭＡＲＫ番号対応表のデータ構成の一例を示す図である。図４に示すように、ＭＡＣ／ＭＡＲＫ番号対応表Ｔ５３１は、パケットのＳｒｃ  ＭＡＣアドレス（送信元ＭＡＣアドレス）と、ＭＡＲＫ番号（識別番号）とが対応付けられる。ＭＡＣ／ＭＡＲＫ番号対応表Ｔ５３１は、予め、ユーザによって設定され、ＭＡＣ／ＭＡＲＫ番号対応表記憶部５３１に記憶される。言い換えると、ＭＡＣ／ＭＡＲＫ番号対応表は、サーバ５０に対して静的に設定された設定表である。
【００３４】
ＭＡＣ／ＭＡＲＫ番号対応表Ｔ５３１に示す送信元ＭＡＣアドレスは、パケットの送信元であるロードバランサ３０のＭＡＣアドレスである。ＭＡＣアドレスは、ロードバランサ３０ごとにそれぞれ割り当てられるものであり、予め設定されたＭＡＣアドレス付与ルールにしたがって設定される。例えば、ロードバランサ３０−１には、Ｓｒｃ  ＭＡＣアドレス「ＭＣ−ＬＢ−１」が設定されており、ロードバランサ３０−２には、Ｓｒｃ  ＭＡＣアドレス「ＭＣ−ＬＢ−２」が設定されており、ロードバランサ３０−３には、Ｓｒｃ  ＭＡＣアドレス「ＭＣ−ＬＢ−３」が設定される。
【００３５】
また、ＭＡＣ／ＭＡＲＫ番号対応表Ｔ５３１に示すＭＡＲＫ番号は、パケットのコネクションに付与される識別番号である。このＭＡＲＫ番号は、ロードバランサ３０ごとに設定された番号であり、ロードバランサ３０間で重複しなければ、どのような番号であってもよい。ＭＡＣ／ＭＡＲＫ番号対応表Ｔ５３１の例では、ロードバランサ３０−１のＳｒｃ  ＭＡＣＭＡＣアドレス「ＭＣ−ＬＢ−１」には、ＭＡＲＫ番号「１」が設定される。
【００３６】
なお、ＭＡＣアドレスとＭＡＲＫ番号との対応付けは、ロードバランサ３０の増設にも対応できるよう、現在設置されているロードバランサ３０の数に限定するものではない。言い換えると、ユーザは、ＭＡＣアドレスとして、ユーザが所望するものを所望数設定すればよく、それぞれのＭＡＣアドレスに、重複しないＭＡＲＫ番号を対応付けておけばよい。
【００３７】
コネクション／ＭＡＲＫ番号対応表記憶部５３２は、コネクション／ＭＡＲＫ番号対応表（第２の対応表）を記憶する。図５は、コネクション／ＭＡＲＫ番号対応表のデータ構成の一例を示す図である。
【００３８】
図５に示すように、コネクション／ＭＡＲＫ番号対応表Ｔ５３２は、パケット受信部５４３（後述）が受信したパケットのコネクションに対してＭＡＲＫ番号が記録される表である。
【００３９】
コネクション／ＭＡＲＫ番号対応表Ｔ５３２のコネクション欄には、パケット受信時に、パケットのコネクションを識別するためのキー（src  IP、dst  IP、src  port、dst  port、protocol.no）が、パケット受信部５４３（後述）によって記録される。コネクション／ＭＡＲＫ番号対応表Ｔ５３２のＭＡＲＫ番号欄には、キーによって識別されたパケットのコネクションに対応するＭＡＲＫ番号が、記録部５４５（後述）によって記録される。言い換えると、コネクション／ＭＡＲＫ番号対応表は、サーバ５０がパケット処理中に動的に追加削除を行うデータである。
【００４０】
ＭＡＲＫ番号／ＧＷ対応表記憶部５３３は、ＭＡＲＫ番号／ＧＷ対応表（第３の対応表）を記憶する。図６は、ＭＡＲＫ番号／ＧＷ対応表のデータ構成の一例を示す図である。図６に示すように、ＭＡＲＫ番号／ＧＷ対応表Ｔ５３３は、ルーティング先（ＧＷ）のＩＰアドレスとＭＡＲＫ番号とが対応付けられる。ＭＡＲＫ番号／ＧＷ対応表Ｔ５３３は、予め設定され、ＭＡＲＫ番号／ＧＷ対応表記憶部５３３に記憶される。言い換えると、ＭＡＲＫ番号／ＧＷ対応表は、サーバ５０に対して静的に設定された設定表である。
【００４１】
ＭＡＲＫ番号／ＧＷ対応表Ｔ５３３のｇａｔｅｗａｙ欄には、各ＭＡＲＫ番号に対応するパケットの宛先であるＧＷのＦＩＰが設定される。例えば、ＭＡＲＫ番号／ＧＷ対応表Ｔ５３３の例では、ロードバランサ３０−１のＳｒｃ  ＭＡＣアドレス「ＭＣ−ＬＢ−１」には、ＭＡＲＫ番号「１」には、ロードバランサ３０−１のＦＩＰ「ＩＰ−ＬＢ−１」が設定される。
【００４２】
このように、サーバ５０は、ＭＡＲＫ番号を介して、ロードバランサ３０のＭＡＣアドレスと、ＩＰアドレスとを対応付けて記憶する。言い換えると、サーバ５０は、ＭＡＲＫ番号を介して、受信パケットの送信元のロードバランサ３０のＭＡＣアドレスと、該パケットに対する返信パケットを送信する際に付与すべきロードバランサ３０のＩＰアドレスと、を対応付けて保持する。
【００４３】
次に、制御部５４について説明する。制御部５４は、サーバ５０全体を制御する。制御部５４は、各種の処理手順などを規定したプログラム及び所要データを格納するための内部メモリを有し、これらによって種々の処理を実行する。例えば、制御部５４は、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）などの電子回路である。また、制御部５４は、各種のプログラムが動作することにより各種の処理部として機能する。制御部５４は、通信制御部５４１及びアプリケーション部５４２を有する。
【００４４】
通信制御部５４１は、パケットの受信、受信パケットのコネクションの記録、ＭＡＲＫ番号の付与及び記録、送信パケットの宛先設定、パケットの送信を行う。通信制御部５４１は、パケット受信部５４３、付与部５４４、記録部５４５及びパケット送信部５４６を有する。
【００４５】
パケット受信部５４３は、通信部５１経由で、当該サーバ５０宛のパケット（上りパケット）を受信する。なお、この上りパケットの送信元ＭＡＣアドレスには、当該上りパケットを転送したロードバランサ３０のＭＡＣアドレスが設定される。また、パケット受信部５４３は、コネクション／ＭＡＲＫ番号対応表記憶部５３２が記憶するコネクション／ＭＡＲＫ番号対応表のコネクション欄に、受信したパケットのキー（src  IP、dst  IP、src  port、dst  port、protocol.no）を記録する。
【００４６】
付与部５４４は、ＭＡＣ／ＭＡＲＫ番号対応表記憶部５３１が記憶するＭＡＣ／ＭＡＲＫ番号対応表を参照して、パケット受信部５４３が受信したパケットの送信元ＭＡＣアドレスに対応するＭＡＲＫ番号を、該受信したパケットのコネクションに付与する。
【００４７】
記録部５４５は、コネクション／ＭＡＲＫ番号対応表記憶部５３２が記憶するコネクション／ＭＡＲＫ番号対応表に、受信したパケットのコネクションに対して付与部５４４が付与したＭＡＲＫ番号を記録する。記録部５４５は、コネクション／ＭＡＲＫ番号対応表のＭＡＲＫ番号欄のうち、受信したパケットのコネクションキーに対応するＭＡＲＫ欄に、付与部５４４が付与したＭＡＲＫ番号を記録する。
【００４８】
パケット送信部５４６は、上りパケットに対する下りパケット（返信パケット）を通信部５１経由で送信する。パケット送信部５４６は、受信したパケットに対する返信パケットを送信する場合、受信したパケットのコネクションに対応するＭＡＲＫ番号を、コネクション／ＭＡＲＫ番号対応表から取得する。そして、パケット送信部５４６は、該取得したＭＡＲＫ番号に対応するロードバランサ３０のＩＰアドレスを、ＭＡＲＫ番号／ＧＷ対応表記憶部５３３が記憶するＭＡＲＫ番号／ＧＷ対応表から取得する。そして、パケット送信部５４６は、該取得したロードバランサ３０のＩＰアドレスに、Ｌ２スイッチ経由でパケットをルーティングする。
【００４９】
なお、上記の上りパケットのコネクションとＭＡＲＫ番号との結びつけや、下りパケットに対する宛先ＩＰアドレスの設定は、例えば、ｎｅｔｆｉｌｔｅｒと呼ばれるＬｉｎｕｘ（登録商標）  Ｋｅｒｎｅｌが持つＡＰＩを用いる。具体的には、上りパケットのコネクションへのＭＡＲＫ番号の付与や下りパケットに対する宛先ＩＰアドレスの付与は、ｉｐｔａｂｌｅｓのＣＯＮＮＭＡＲＫというＯＳ（Operating  System）の機能を用いる。そして、サーバ５０は、ＭＡＣアドレスとＭＲＡＫ番号との対応を、ｉｐｔａｂｌｅｓコマンドを用いて予め設定しておく。
【００５０】
アプリケーション部５４２は、受信パケットに対し種々の処理を行う。例えば、パケット受信部５４３で受信した上りパケットに対し種々の処理を行い、その処理結果をパケット送信部５４６へ出力する。
【００５１】
［処理の流れ］
次に、図７を参照して、通信制御システム１におけるパケット処理の流れについて説明する。図７は、図２に示す通信制御システム１におけるパケット処理の流れについて説明する図である。通信制御システムには、Ｎ台のクライアント１０が設置される。また、ロードバランサ３０−１のＭＡＣアドレスは「ＭＣ−ＬＢ−１」であり、ＩＰアドレスは「ＩＰ−ＬＢ−１」であるものとする。各ロードバランサ３０−１〜３０−３のＭＡＣアドレスは、ユーザが設定可能である。また、サーバ５０は３台設置される。それぞれのサーバ５０は、Ｌ２スイッチ４０経由でロードバランサ３０−１〜３０−２に接続される。
【００５２】
このような通信制御システムにおいて、Ｌ３スイッチ２０がクライアント１０から上りパケットを受信した場合を考える。この場合、まず、Ｌ３スイッチ２０は、ｐｅｒ−ｆｌｏｗ  ＥＣＭＰにより、当該パケットの転送先のロードバランサ３０を決定する。これにより、上りパケットの処理負荷を各ロードバランサ３０に分散させることができる。
【００５３】
例えば、Ｌ３スイッチ２０が、上りパケットの転送先をロードバランサ３０−１に決定した場合、Ｌ３スイッチ２０は、この上りパケットをロードバランサ３０−１に転送する。その後、ロードバランサ３０−１は、転送されたパケットのＬ２ヘッダのＳｒｃ  ＭＡＣアドレス（送信元ＭＡＣアドレス）を、自装置のＭＡＣアドレス「ＭＣ−ＬＢ−１」に設定して（枠Ｗ１参照）、Ｌ２スイッチ４０へ送信する。
【００５４】
そして、サーバ５０は、Ｌ２スイッチ４０経由でこのパケット（上りパケット）を受信すると、この上りパケットのＬ２ヘッダから、Ｓｒｃ  ＭＡＣアドレス（送信元ＭＡＣアドレス）を読み出す。この送信元ＭＡＣアドレスは、上りパケットを転送したロードバランサ３０のＭＡＣアドレスである。そして、サーバ５０は、ＭＡＣ／ＭＡＲＫ番号対応表Ｔ５３１（枠Ｗ２参照）を参照し、読み出したＭＡＣアドレスに対応するＭＡＲＫ番号を、受信したパケットのコネクションに付与する。例えば、サーバ５０は、Ｓｒｃ  ＭＡＣアドレスがＭＡＣアドレス「ＭＣ−ＬＢ−１」である上りパケットについては、ＭＡＣ／ＭＡＲＫ番号対応表Ｔ５３１（枠Ｗ２参照）を参照し、ＭＡＲＫ番号「１」を付与する。
【００５５】
次に、サーバ５０がアプリケーション部５４２からの要求に応じて、上記の上りパケットに対する下りパケットを送信する場合について説明する。この場合、サーバ５０は、ＭＡＲＫ番号に応じて下りパケットをルーティングする（枠Ｗ３参照）。具体的には、サーバ５０は、受信したパケットのコネクションに付与されたＭＡＲＫ番号「１」に対応するロードバランサ３０−１のＩＰアドレス「ＩＰ−ＬＢ−１」を、ＭＡＲＫ番号／ＧＷ対応表Ｔ５３３（枠Ｗ３参照）から取得し（矢印Ｙ１参照）、取得したロードバランサ３０のＩＰアドレスに、Ｌ２スイッチ経由でパケットをルーティングする。
【００５６】
この際、サーバ５０は、ｉｐｔａｂｌｅｓ  ＣＯＮＮＭＡＲＫ機能を用いることで、パケット受信時に付与したＭＡＲＫ番号を、戻りパケット送信時に付与することが可能になる（図７の（１）参照）。そして、サーバ５０は、戻りパケットに付与されているＭＡＲＫ番号に応じてルーティングを行うことで、上りパケット同じロードバランサ３０−１に下りパケットをルーティング可能である（図７の（２）参照）。
【００５７】
これにより、サーバ５０から送信された下りパケットは、上りパケットの経由したロードバランサ３０−１に到達し、ロードバランサ３０−１から、下りパケットの宛先のクライアント１０に到達する。
【００５８】
このようにすることによって、通信制御システム１は、上りパケットの負荷を各ロードバランサ３０に分散させることができ、また、下りパケットについて、上りパケットと同じロードバランサ３０を経由させることができる。この結果、通信制御システム１は、ロードバランサ３０のスケールアウトを実現することができる。
【００５９】
また、ロードバランサ３０のＭＡＣアドレスは、ＭＡＣアドレス付与ルールにしたがって自動的に設定される。そして、ユーザは、予め、サーバ５０に、ＭＡＣアドレス、ＭＡＲＫ番号及びルーティング先(Ｇａｔｅｗａｙ)の対応関係を静的に指定しておけば、ロードバランサ３０のスケールアウト時に、サーバ５０に作業を行う必要がない。したがって、通信制御システム１によれば、ロードバランサ３０のスケールアウトを行うための設定作業の手間やコストを低減することができる。
【００６０】
［処理の流れの具体例］
次に、図８及び図９を参照して、サーバ５０におけるパケットの送受信処理の流れについて説明する。図８及び図９は、図３に示すサーバ５０におけるパケットの送受信処理の流れについて説明する図である。
【００６１】
まず、図８に示すように、ユーザは、予め、ＭＡＣアドレスとＭＡＲＫ番号との対応をｉｐｔａｂｌｅｓコマンドにより設定しておく（ｉｐｔａｂｌｅｓの設定値）（図８の枠Ｗ１１内（Ａ）参照）。具体的には、ユーザは、サーバ５０に、ロードバランサ３０のＭＡＣアドレスと識別番号であるＭＡＲＫ番号とを対応付けたＭＡＣ／ＭＡＲＫ番号対応表Ｔ５３１（静的な設定値）（図８の枠Ｗ１１参照）を設定する。
【００６２】
ここで、ユーザは、予めロードバランサにアサインするＭＡＣアドレスを決めて、それを設定しておく。この場合、ユーザは、所望の仮想ＭＡＣアドレスを振り分けるために、ＶＲＲＰ（Virtual  Router  Redundancy  Protocol）を使う必要がある（図８の（１）参照）。なお、パケットにつけるＭＡＲＫ番号は、ロードバランサ３０同士で重複しなければなんでもよい（図８の（２）参照）。
【００６３】
また、ユーザは、予め、ＭＡＲＫ番号と、ＧＷのＩＰアドレスとを対応付けたＭＡＲＫ番号／ＧＷ対応表Ｔ５３３（静的な設定値）（図８の枠Ｗ１２内（Ｂ）参照）を設定する。この場合、ユーザは、予め、今後のロードバランサにアサインするＦＩＰを決めておき、それを設定しておく（図８の（３）参照）。
【００６４】
そして、サーバ５０が実際にパケットを受信した場合には、サーバ５０は、ｎｅｔｆｉｌｔｅｒ（ＭＡＲＫ機能）が、ＭＡＣ／ＭＡＲＫ番号対応表Ｔ５３１を参照して、受信パケットＰ１１の送信元ＭＡＣアドレスに対応するＭＡＲＫ番号を取得する。続いて、サーバ５０では、ｎｅｔｆｉｌｔｅｒ（ＣＯＮＮＭＡＲＫ機能）が、受信パケットＰ１１についたＭＡＲＫ番号を、該受信パケットのコネクションに結び付ける（図８の（４）参照）。
【００６５】
続いて、Ａｐｐｌｉｃａｔｉｏｎから、受信パケットに対する処理結果に応じた送信パケットＰ１２が出力されると、ｎｅｔｆｉｌｔｅｒ（ＣＯＮＮＭＡＲＫ機能）が、送信パケットにＭＡＲＫ番号を付ける（図８の（５）参照）。
【００６６】
ここで、サーバ５０は、パケット受信時に付与したＭＡＲＫ番号をパケット送信時に引き継がなければならないが、下記のような動的なテーブル（コネクション／ＭＡＲＫ番号対応表Ｔ５３２）を用いて行う（図９の（６）参照）。図の例だと、サーバ５０は、ｉｐｔａｂｌｅｓのＣＯＮＮＭＡＲＫという機能を用いる。
【００６７】
具体的には、サーバ５０は、ＣＯＮＮＭＡＲＫ機能を用いて、受信パケットＰ１１の送信元ＭＡＣアドレス「ＭＣ−ＬＢ−１」に対応するＭＡＲＫ番号「１」（枠Ｗ１１の領域Ｒ１参照）を取得し、コネクション／ＭＡＲＫ番号対応表Ｔ５３２の、コネクションを一意に識別するキーＫ１のＭＡＲＫ欄に、取得した「１」を記録する（図９のＲ２参照）（図９の（７）参照）。
【００６８】
そして、サーバ５０は、受信パケットに付与されたＭＡＲＫ番号に基づいてＰｏｌｉｃｙ  Ｒｏｕｔｉｎｇを行う（図９の枠Ｗ１２内（Ｂ）参照）。この際、サーバ５０は、ＭＲＡＫ番号「１」のＧＷのＦＩＰアドレス「ＩＰ−ＬＢ−１」を取得して（図９の（８）参照）、このＩＰアドレス「ＩＰ−ＬＢ−１」に、Ｌ２スイッチ経由で送信パケットをルーティングする（図９の（９）参照）。
【００６９】
［パケット受信処理の処理手順］
次に、サーバ５０におけるパケット受信処理の処理手順について説明する。図１０は、図３に示すサーバ５０におけるパケット受信処理の処理手順を示すフローチャートである。
【００７０】
図１０に示すように、パケット受信部５４３がパケットを受信すると（ステップＳ１）、付与部５４４は、ＭＡＣ／ＭＡＲＫ番号対応表を参照して（ステップＳ２）、パケット受信部５４３が受信パケットの送信元ＭＡＣアドレスに対応するＭＡＲＫ番号を、該受信パケットのコネクションに付与する（ステップＳ３）。続いて、記録部５４５は、コネクション／ＭＡＲＫ番号対応表に、受信したパケットのコネクションに対して付与されたＭＡＲＫ番号を記録する（ステップＳ４）。
【００７１】
［パケット送信処理の処理手順］
次に、サーバ５０におけるパケット送信処理の処理手順について説明する。図１１は、図３に示すサーバ５０におけるパケット送信処理の処理手順を示すフローチャートである。
【００７２】
図１１に示すように、パケット送信部５４６は、受信したパケットに対する返信パケットの送信指示を受けると（ステップＳ１１）、コネクション／ＭＡＲＫ番号対応表を参照し（ステップＳ１２）、コネクション／ＭＡＲＫ番号対応表から、受信したパケットのコネクションに対応するＭＡＲＫ番号を取得する（ステップＳ１３）。
【００７３】
パケット送信部５４６は、ＭＡＲＫ番号／ＧＷ対応表を参照し（ステップＳ１４）、該取得したＭＡＲＫ番号に対応するロードバランサ３０のＩＰアドレスを取得する（ステップＳ１５）。パケット送信部５４６は、該取得したロードバランサ３０のＩＰアドレスに、Ｌ２スイッチ経由でパケットをルーティングする（ステップＳ１６）。
【００７４】
［実施の形態の効果］
次に、実施の形態に係る通信制御システム１の効果を、既存技術であるロードバランサのスケールアップ及びＤＮＳラウンドロビンによるロードバランサのスケールアウトと対比しながら説明する。図１２は、ロードバランサのスケールアップ及びＤＮＳラウンドロビンによるロードバランサのスケールアウトの一例を示す図である。
【００７５】
ロードバランサのスケールアップは、例えば、図１２の（ａ）に示すように、既存のロードバランサ３０−４をより性能の高いロードバランサ３０−５にリプレースする、または、既存のロードバランサ３０−４に対しモジュールを追加することにより行われる。
【００７６】
また、ＤＮＳラウンドロビンによるロードバランサのスケールアウトは、図１２の（ｂ）に示すように、同一ドメインに対する解決先ＶＩＰ（例えば、ＶＩＰ３）を増やし、ＤＮＳラウンドロビンによる負荷分散を行う。例えば、ロードバランサ３０−６（ＶＩＰ１）、ロードバランサ３０−７（ＶＩＰ２）に対し、ロードバランサ３０−８を追加した場合、このロードバランサ３０−８にＶＩＰ３を設定する。また、ロードバランサ３０−８を追加した場合、ロードバランサ３０−６，３０−７，３０−８間で、各ロードバランサ３０の配下のサーバ群のグルーピングを再度行う。
【００７７】
（１）スケール作業時間について
ロードバランサ３０−４のスケールアップを行う場合、ロードバランサ配下の全サーバ５０のＧＷ変更が必要である。また、ＤＮＳラウンドロビンによりロードバランサ３０のスケールアウトを行う場合、追加ロードバランサに組み込むサーバ全台とＤＮＳの作業が必要である。これに対し、本実施の形態では、ロードバランサ３０を追加するのみで足りる。
【００７８】
（２）設定作業及び設定コストについて
ロードバランサ３０−４のスケールアップを行う場合、サーバ群のＧＷの設定変更が必要であり、ＤＮＳラウンドロビンによりロードバランサ３０のスケールアウトを行う場合、追加するロードバランサ３０−８に割り当てるサーバ群の設定と、ＤＮＳサーバの設定変更が必要である。これに対し、本実施の形態では、ロードバランサ３０のＭＡＣアドレスは、ＭＡＣアドレス付与ルールにしたがって自動的に設定される。そして、本実施の形態は、ユーザは、ＭＡＣ／ＭＡＲＫ番号対応表及びＭＡＲＫ番号／ＧＷ対応表を予め設定するのみでよく、ロードバランサ３０のスケールアウト時に、サーバ５０に作業を行わずともよい。
【００７９】
（３）サーバ分割損について
上記のロードバランサ３０−４のスケールアップを行う場合、サーバ群の再分割は発生しないのでいわゆるサーバの分割損は発生しないが、ＤＮＳラウンドロビンによりロードバランサ３０のスケールアウトを行う場合、３０−６，３０−７，３０−８に対し割り当てるサーバ群の再グルーピングを行う必要があるのでサーバの分割損が発生する。一方、本実施形態のシステムの場合、上記のサーバ分割損は発生しない。
【００８０】
（４）切り戻しについて
上記のロードバランサ３０−４のスケールアップを行う場合において、切り戻しを行う際には長い時間を要する。また、ＤＮＳラウンドロビンによりロードバランサ３０のスケールアウトを行う場合において、切り戻しを行う際には、ＤＮＳサーバのレコード削除とサーバの戻し作業が発生するため作業の手間がかかる。また、ＤＮＳサーバのキャッシュのＴＴＬ（Time  To  Live）があるため、作業結果の反映にも時間がかかる。一方、本実施形態のシステムの場合、切り戻しを行う際には、Ｌ３スイッチ２０のルーティング情報を削除すればよいので切り戻しに要する作業は少ない。
【００８１】
（５）サーバのオーバーヘッド
上記のロードバランサ３０−４のスケールアップを行う場合及びＤＮＳラウンドロビンによりロードバランサ３０のスケールアウトを行う場合において、サーバのオーバーヘッドは発生しない。本実施の形態では、パケットごとにテーブル読み書き等は行わないため、サーバのオーバーヘッドは発生しない。
【００８２】
（６）開発要否
上記のロードバランサ３０−４のスケールアップを行う場合及びＤＮＳラウンドロビンによりロードバランサ３０のスケールアウトを行う場合において、プログラム製造は不要である。本実施の形態では、ｉｐｔａｂｌｅｓ（ＣＯＮＮＭＡＲＫ）等、主要なＬｉｎｕｘディストリビューションが持つ機能のみで実現可能であるため、新たにプログラムを製造する必要はない。
【００８３】
以上説明したとおり、本実施の形態では、サーバ５０に、ロードバランサ３０のＭＡＣアドレスをユーザが指定し、さらに、送信元ＭＡＣアドレスと、その戻りパケットのルーティングを事前に設定しておく。これによって、本実施の形態では、ユーザは、サーバ５０に一切作業を行うことなく、ロードバランサのスケールアウト（もしくは故障／切り離し）を行うことができるようになる。この結果、本実施の形態によれば、ロードバランサ３０のスケールアウトを行うための設定作業の手間やコストを低減することができる。
【００８４】
また、本実施の形態では、静的にＭＡＣアドレスの情報を設定しておくことによって、パケットごとの処理負荷を低減することができる。また、本実施の形態では、テーブルの並列操作のような複雑な機構を用いる必要もない。そして、本実施の形態によれば、ロードバランサ３０の配下のサーバ群の分割損も発生せず、また切り戻しを行う際の設定作業及び設定コストも低減することができる。
【００８５】
なお、図１３は、図３に示す記憶部５３が記憶する対応表のデータ構成の一例を示す図である。本実施の形態では、サーバ５０が、ＭＡＣ／ＭＡＲＫ番号対応表及びＭＡＲＫ番号／ＧＷ対応表をそれぞれ保持する場合を例に説明したが、これに限らない。サーバ５０は、例えば、図１３に示す対応表Ｔ５３１´のように、ロードバランサ３０のＭＡＣアドレス、ＭＡＲＫ番号及びＧＷのＩＰ番号を対応付けた対応表のみを保持していてもよい。
【００８６】
［その他の実施の形態］
なお、典型的なクライアント〜サーバ間のネットワーク構成として、クライアント−ファイアウォール−ロードバランサ−サーバという構成がある。このような構成において、ファイアウォールのスケールアウトを行う場合もある。ここで、ファイアウォールもステートフルな装置であるので、上記の構成においてファイアウォールのスケールアウトを行う場合に、ロードバランサに上記の実施の形態で述べた技術を適用してもよい。つまり、図１に示したシステム構成図における、第１の通信装置をファイアウォール、第２の通信装置をロードバランサとしてもよい。
【００８７】
この場合、第２の通信装置であるロードバランサは、ファイアウォールのＭＡＣアドレスとＭＡＲＫ番号とが対応付けられたＭＡＣ／ＭＡＲＫ番号対応表、及び、ＭＡＲＫ番号／ＧＷ対応表を保持する。ファイアウォール経由で受信したパケット（受信パケット）のＬ２ヘッダに設定された送信元ＭＡＣアドレスにより、当該受信パケットの送信元ＭＡＣアドレス（つまり、当該受信パケットが経由したファイアウォールのＭＡＣアドレス）を得る。
【００８８】
そして、ロードバランサは、当該受信パケットの送信元ＭＡＣアドレスに対応するＭＡＲＫ番号を取得する。そして、ロードバランサは、当該受信パケットに対する返信パケットをファイアウォール側へ送信する際、当該受信パケットのＭＡＲＫ番号に対応するＧＷのＩＰアドレスを取得し、このＩＰアドレスに、Ｌ２スイッチ４０経由でパケットをルーティングする。これにより、返信パケット（下りパケット）は、当該受信パケット（上りパケット）が経由したファイアウォールと同じファイアウォールに到達する。つまり、システムにおいてファイアウォールのスケールアウトが行われた場合でも、上りパケットと下りパケットとで同じファイアウォールを経由させることができる。  
【００８９】
［システム構成等］
図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部又は任意の一部が、ＣＰＵ及び当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００９０】
また、本実施の形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的に行なうこともでき、あるいは、手動的に行なわれるものとして説明した処理の全部又は一部を公知の方法で自動的に行なうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【００９１】
［プログラム］
図１４は、プログラムが実行されることにより、サーバ５０が実現されるコンピュータの一例を示す図である。コンピュータ１０００は、例えば、メモリ１０１０、ＣＰＵ１０２０を有する。また、コンピュータ１０００は、ハードディスクドライブインタフェース１０３０、ディスクドライブインタフェース１０４０、シリアルポートインタフェース１０５０、ビデオアダプタ１０６０、ネットワークインタフェース１０７０を有する。これらの各部は、バス１０８０によって接続される。
【００９２】
メモリ１０１０は、ＲＯＭ（Read  Only  Memory）１０１１及びＲＡＭ１０１２を含む。ＲＯＭ１０１１は、例えば、ＢＩＯＳ（Basic  Input  Output  System）等のブートプログラムを記憶する。ハードディスクドライブインタフェース１０３０は、ハードディスクドライブ１０９０に接続される。ディスクドライブインタフェース１０４０は、ディスクドライブ１１００に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ１１００に挿入される。シリアルポートインタフェース１０５０は、例えばマウス１１１０、キーボード１１２０に接続される。ビデオアダプタ１０６０は、例えばディスプレイ１１３０に接続される。
【００９３】
ハードディスクドライブ１０９０は、例えば、ＯＳ１０９１、アプリケーションプログラム１０９２、プログラムモジュール１０９３、プログラムデータ１０９４を記憶する。すなわち、サーバ５０の各処理を規定するプログラムは、コンピュータにより実行可能なコードが記述されたプログラムモジュール１０９３として実装される。プログラムモジュール１０９３は、例えばハードディスクドライブ１０９０に記憶される。例えば、サーバ５０における機能構成と同様の処理を実行するためのプログラムモジュール１０９３が、ハードディスクドライブ１０９０に記憶される。なお、ハードディスクドライブ１０９０は、ＳＳＤ（Solid  State  Drive）により代替されてもよい。
【００９４】
また、上述した実施形態の処理で用いられる設定データは、プログラムデータ１０９４として、例えばメモリ１０１０やハードディスクドライブ１０９０に記憶される。そして、ＣＰＵ１０２０が、メモリ１０１０やハードディスクドライブ１０９０に記憶されたプログラムモジュール１０９３やプログラムデータ１０９４を必要に応じてＲＡＭ１０１２に読み出して実行する。
【００９５】
なお、プログラムモジュール１０９３やプログラムデータ１０９４は、ハードディスクドライブ１０９０に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ１１００等を介してＣＰＵ１０２０によって読み出されてもよい。あるいは、プログラムモジュール１０９３及びプログラムデータ１０９４は、ネットワーク（ＬＡＮ、ＷＡＮ（Wide  Area  Network）等）を介して接続された他のコンピュータに記憶されてもよい。そして、プログラムモジュール１０９３及びプログラムデータ１０９４は、他のコンピュータから、ネットワークインタフェース１０７０を介してＣＰＵ１０２０によって読み出されてもよい。
【００９６】
以上、本発明者によってなされた発明を適用した実施形態について説明したが、本実施形態による本発明の開示の一部をなす記述及び図面により本発明は限定されることはない。すなわち、本実施形態に基づいて当業者等によりなされる他の実施形態、実施例及び運用技術等は全て本発明の範疇に含まれる。
【符号の説明】
【００９７】
１  通信制御システム
１０  クライアント
２０  Ｌ３スイッチ
３０，３０−１〜３０−８  ロードバランサ
４０  Ｌ２スイッチ
５０  サーバ
５１  通信部
５２  入出力部
５３  記憶部
５４  制御部
５３１  ＭＡＣ／ＭＡＲＫ番号対応表記憶部
５３２  コネクション／ＭＡＲＫ番号対応表記憶部
５３３  ＭＡＲＫ番号／ＧＷ対応表記憶部
５４１  通信制御部
５４２  アプリケーション部
５４３  パケット受信部
５４４  付与部
５４５  記録部
５４６  パケット送信部
【図１】
2019176323.tif 000003
【図２】
2019176323.tif 000004
【図３】
2019176323.tif 000005
【図４】
2019176323.tif 000006
【図５】
2019176323.tif 000007
【図６】
2019176323.tif 000008
【図７】
2019176323.tif 000009
【図８】
2019176323.tif 000010
【図９】
2019176323.tif 000011
【図１０】
2019176323.tif 000012
【図１１】
2019176323.tif 000013
【図１２】
2019176323.tif 000014
【図１３】
2019176323.tif 000015
【図１４】
2019176323.tif 000016