図面 (/)

技術 通信制御装置、通信制御プログラム、通信制御システム及び通信制御方法

出願人 日本電信電話株式会社
発明者 川谷宗之
出願日 2019年2月13日 (1年9ヶ月経過) 出願番号 2019-023996
公開日 2020年8月31日 (2ヶ月経過) 公開番号 2020-136743
状態 未査定
技術分野 広域データ交換 小規模ネットワーク(3)ループ,バス以外
主要キーワード 設定コスト 下り上り ポート番 再グルーピング スケールアウト 物理IPアドレス オンラインソフト 収容替え
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(2020年8月31日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (10)

課題

通信装置スケールアウトのための設定作業の手間やコストを低減すること。

解決手段

通信制御装置(例えば、L2スイッチ自体)は、L2スイッチに収容されたサーバを宛先とする第1のパケットがL2スイッチによって受信された場合に、第1のパケットの送信元MACアドレス及び第1のパケットのセッションを特定する情報を記憶部に格納する。また、通信制御装置は、L2スイッチに収容されたサーバから送信され、L2スイッチによって受信された第2のパケットのセッションを特定する情報が、記憶部に格納された第1のパケットのセッションを特定する情報と一致する場合、第2のパケットの宛先MACアドレスを、第1のパケットの送信元MACアドレスに更新する。

概要

背景

従来、ロードバランサファイアウォール等のL3(レイヤ3)終端を行う通信装置が性能の限界を超えた際の対応策として、当該通信装置をスケールアウトする方法が知られている。ここで、例えば、ロードバランサのスケールアウトを行う場合、各ロードバランサ間での負荷分散を行うために、DNSラウンドロビンを用いる方法が知られている。DNSラウンドロビンを用いる場合、同じドメインの複数のロードバランサに異なるVIPが設定される。

ここで、各ロードバランサには、負荷分散処理を行うサーバ群割り当てられているものとする。そして、例えば、DNSラウンドロビンによりパケット転送先のロードバランサが決定されると、当該パケットを受信したロードバランサは、自身に割り当てられたいずれかのサーバへパケットを転送する。

ここで、ロードバランサは、例えば、VIP(Virtual IP:仮想IPアドレス)を物理サーバIPアドレスにNAT(Network Address Translation)したり、DH(Diffie-Hellman)鍵交換方式SSL/TSLを終端させたり、L7(レイヤ7)ロードバランスを実行したりする、ステートフルな装置である。そのため、サーバへのパケット(上りパケット)も当該サーバからの応答パケット下りパケット)も同じロードバランサを経由する必要がある。ここで、DNSラウンドロビンを用いる方法によれば、上記のようにロードバランサごとにサーバ群が割り当てられるため、上りパケットと下りパケットとで同じロードバランサを経由させることができる。

概要

通信装置のスケールアウトのための設定作業の手間やコストを低減すること。通信制御装置(例えば、L2スイッチ自体)は、L2スイッチに収容されたサーバを宛先とする第1のパケットがL2スイッチによって受信された場合に、第1のパケットの送信元MACアドレス及び第1のパケットのセッションを特定する情報を記憶部に格納する。また、通信制御装置は、L2スイッチに収容されたサーバから送信され、L2スイッチによって受信された第2のパケットのセッションを特定する情報が、記憶部に格納された第1のパケットのセッションを特定する情報と一致する場合、第2のパケットの宛先MACアドレスを、第1のパケットの送信元MACアドレスに更新する。

目的

効果

実績

技術文献被引用数
0件
牽制数
0件

この技術が所属する分野

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

L2スイッチに収容された通信装置を宛先とする第1のパケットが前記L2スイッチによって受信された場合に、前記第1のパケットの送信元MACアドレス及び前記第1のパケットのセッションを特定する情報を記憶部に格納する格納部と、前記L2スイッチに収容された通信装置から送信され、前記L2スイッチによって受信された第2のパケットのセッションを特定する情報が、前記記憶部に格納された前記第1のパケットのセッションを特定する情報と一致する場合、前記第2のパケットの宛先MACアドレスを、前記第1のパケットの送信元MACアドレスに更新する更新部と、を有することを特徴とする通信制御装置

請求項2

前記格納部は、前記第1のパケットのセッションを特定する情報として、前記第1のパケットの送信元IPアドレス送信元ポート番号及びプロトコル番号を前記記憶部に格納し、前記更新部は、第2のパケットの宛先IPアドレス宛先ポート番号及びプロトコル番号が、それぞれ前記記憶部に格納された前記第1のパケットの送信元IPアドレス、送信元ポート番号及びプロトコル番号と一致する場合、前記第2のパケットの宛先MACアドレスを、前記第1のパケットの送信元MACアドレスに更新することを特徴とする請求項1に記載の通信制御装置。

請求項3

L2スイッチに収容された通信装置を宛先とする第1のパケットが前記L2スイッチによって受信された場合に、前記第1のパケットの送信元MACアドレス及び前記第1のパケットのセッションを特定する情報を記憶部に格納する格納ステップと、前記L2スイッチに収容された通信装置から送信され、前記L2スイッチによって受信された第2のパケットのセッションを特定する情報が、前記記憶部に格納された前記第1のパケットのセッションを特定する情報と一致する場合、前記第2のパケットの宛先MACアドレスを、前記第1のパケットの送信元MACアドレスに更新する更新ステップと、をコンピュータに実行させることを特徴とする通信制御プログラム

請求項4

通信装置を配下に持つL2スイッチを制御する通信制御装置と、前記L2スイッチと接続され、それぞれにMACアドレスが設定された複数のロードバランサと、を有する通信制御システムであって、前記ロードバランサのそれぞれは、前記通信装置を宛先とする第1のパケットの送信元MACアドレスを、自身に設定されたMACアドレスに更新する第1の更新部を有し、前記通信制御装置は、前記第1のパケットが前記L2スイッチによって受信された場合に、前記第1のパケットの送信元MACアドレス及び前記第1のパケットのセッションを特定する情報を記憶部に格納する格納部と、前記L2スイッチに収容された通信装置から送信され、前記L2スイッチによって受信された第2のパケットのセッションを特定する情報が、前記記憶部に格納された前記第1のパケットのセッションを特定する情報と一致する場合、前記第2のパケットの宛先MACアドレスを、前記第1のパケットの送信元MACアドレスに更新する第2の更新部と、を有することを特徴とする通信制御システム。

請求項5

前記複数のロードバランサと接続されたL3スイッチをさらに有し、前記複数のロードバランサのそれぞれには同一のIPアドレスが設定され、前記L3スイッチは、同一のIPアドレスが設定された前記複数のロードバランサに前記第1のパケットを送信する際に、per-flowECMPにより送信先のロードバランサを決定する決定部を有することを特徴とする請求項4に記載の通信制御システム。

請求項6

通信装置を配下に持つL2スイッチを制御する通信制御装置と、前記L2スイッチと接続され、それぞれにMACアドレスが設定された複数のロードバランサと、を有する通信制御システムによって実行される通信制御方法であって、前記ロードバランサのそれぞれが、前記通信装置を宛先とする第1のパケットの送信元MACアドレスを、自身に設定されたMACアドレスに更新する第1の更新工程と、前記通信制御装置が、前記第1のパケットが前記L2スイッチによって受信された場合に、前記第1のパケットの送信元MACアドレス及び前記第1のパケットのセッションを特定する情報を記憶部に格納する格納工程と、前記通信制御装置が、前記L2スイッチに収容された通信装置から送信され、前記L2スイッチによって受信された第2のパケットのセッションを特定する情報が、前記記憶部に格納された前記第1のパケットのセッションを特定する情報と一致する場合、前記第2のパケットの宛先MACアドレスを、前記第1のパケットの送信元MACアドレスに更新する第2の更新工程と、を含むことを特徴とする通信制御方法。

技術分野

背景技術

0002

従来、ロードバランサファイアウォール等のL3(レイヤ3)終端を行う通信装置が性能の限界を超えた際の対応策として、当該通信装置をスケールアウトする方法が知られている。ここで、例えば、ロードバランサのスケールアウトを行う場合、各ロードバランサ間での負荷分散を行うために、DNSラウンドロビンを用いる方法が知られている。DNSラウンドロビンを用いる場合、同じドメインの複数のロードバランサに異なるVIPが設定される。

0003

ここで、各ロードバランサには、負荷分散処理を行うサーバ群割り当てられているものとする。そして、例えば、DNSラウンドロビンによりパケット転送先のロードバランサが決定されると、当該パケットを受信したロードバランサは、自身に割り当てられたいずれかのサーバへパケットを転送する。

0004

ここで、ロードバランサは、例えば、VIP(Virtual IP:仮想IPアドレス)を物理サーバIPアドレスにNAT(Network Address Translation)したり、DH(Diffie-Hellman)鍵交換方式SSL/TSLを終端させたり、L7(レイヤ7)ロードバランスを実行したりする、ステートフルな装置である。そのため、サーバへのパケット(上りパケット)も当該サーバからの応答パケット下りパケット)も同じロードバランサを経由する必要がある。ここで、DNSラウンドロビンを用いる方法によれば、上記のようにロードバランサごとにサーバ群が割り当てられるため、上りパケットと下りパケットとで同じロードバランサを経由させることができる。

先行技術

0005

Maglev: A Fast and Reliable Software NetworkLoad Balancer、[平成31年2月4日検索]、インターネット<URL:https://static.googleusercontent.com/media/research.google.com/ja//pubs/archive/44824.pdf>

発明が解決しようとする課題

0006

しかしながら、従来の技術には、通信装置のスケールアウトのための設定作業に多大な手間やコストを要するという問題がある。例えば、ロードバランサが上記のDNSラウンドロビンを用いて負荷分散を行う場合、スケールアウトにより追加されたロードバランサに対するサーバ群の新規割り当てや各ロードバランサに割り当てるサーバ群の収容替えといった作業が生じる場合がある。

課題を解決するための手段

0007

前記した課題を解決するため、本発明の通信制御装置は、L2スイッチに収容された通信装置を宛先とする第1のパケットが前記L2スイッチによって受信された場合に、前記第1のパケットの送信元MACアドレス及び前記第1のパケットのセッションを特定する情報を記憶部に格納する格納部と、前記L2スイッチに収容された通信装置から送信され、前記L2スイッチによって受信された第2のパケットのセッションを特定する情報が、前記記憶部に格納された前記第1のパケットのセッションを特定する情報と一致する場合、前記第2のパケットの宛先MACアドレスを、前記第1のパケットの送信元MACアドレスに更新する更新部と、を有することを特徴とする。

発明の効果

0008

本発明によれば、通信装置のスケールアウトのための設定作業の手間やコストを低減することができる。

図面の簡単な説明

0009

図1は、第1の実施形態に係る通信制御システムの構成例を示す図である。
図2は、第1の実施形態に係るL2スイッチの構成例を示す図である。
図3は、第1の実施形態に係るL2スイッチの上り方向の通信に対する処理の流れを示すフローチャートである。
図4は、第1の実施形態に係るL2スイッチの下り方向の通信に対する処理の流れを示すフローチャートである。
図5は、通信制御システムの1の上り方向の通信に対する処理手順の具体例を説明するための図である。
図6は、通信制御システムの1の下り方向の通信に対する処理手順の具体例を説明するための図である。
図7は、スケールアップについて説明するための図である。
図8は、DNSラウンドロビンについて説明するための図である。
図9は、通信制御プログラムを実行するコンピュータの一例を示す図である。

実施例

0010

以下に、本願に係る通信制御装置、通信制御プログラム、通信制御システム及び通信制御方法の実施形態を図面に基づいて詳細に説明する。なお、本発明は、以下に説明する実施形態により限定されるものではない。

0011

[第1の実施形態の構成]
まず、図1を用いて、第1の実施形態に係る通信制御システムの構成について説明する。図1は、第1の実施形態に係る通信制御システムの構成例を示す図である。図1に示すように、通信制御システム1は、クライアント10、L3スイッチ20、複数のロードバランサ30、L2スイッチ40及びサーバ50を有する。サーバ50は、サーバ群に含まれる。L2スイッチ40は、通信制御装置の一例である。

0012

図1の例では、クライアント10は、L3スイッチ20と接続されている。また、L3スイッチ20は、ロードバランサ30a、ロードバランサ30b及びロードバランサ30cと接続されている。以降、各ロードバランサに共通の事項について説明する場合には、単にロードバランサ30と表記する。

0013

ロードバランサ30はL2スイッチ40と接続されている。また、サーバ群は、L2スイッチ40の配下にあるものとする。つまり、L2スイッチ40は、サーバ群を収容している。

0014

通信制御システム1の各装置は、物理マシンであってもよいし仮想マシンであってもよい。また、ロードバランサ30及びサーバ群は、CGN(Carrier Grade NAT)、VPN装置、WAF(Web Application Firewall)、IPS(Intrusion Prevention System)等の他のネットワーク機能を有する装置に置き換えられてもよい。

0015

通信制御システム1では、ロードバランサの性能アップが必要になる場合がある。ロードバランサの性能アップのための手法には、例えばロードバランサを新たに追加するスケールアウトがある。なお、図1のロードバランサの数は一例であり、ロードバランサの数は図示のものに限られない。さらに、ロードバランサの数はスケールアウト等により変動する。

0016

ここで、クライアント10からサーバ群へ向かう通信の方向を上り方向とする。逆に、サーバ群からクライアント10へ向かう通信の方向を下り方向とする。また、上り方向に送信されるパケットを上りパケットと呼ぶ。また、下り上り方向に送信されるパケットを下りパケットと呼ぶ。

0017

クライアント10は、サーバ50との通信を行う装置である。L3スイッチ20は、受信パケットルーティングを行う。例えば、L3スイッチ20は、クライアント10から受信した上りパケットを、自身に接続されているいずれかのロードバランサへ転送する。

0018

ロードバランサ30は、L3モードで動作し、サーバ群へのパケットの負荷分散処理を行う。また、ロードバランサ30は、例えば、自身に設定されたVIPをサーバ50のIPアドレスにNATしたり、L7(レイヤ7)ロードバランスを実行したりする、ステートフルな装置である。

0019

ここで、ロードバランサ30のそれぞれには同一のIPアドレスが設定されているものとする。L3スイッチ20は、クライアント10から送信された上りパケットをロードバランサ30に送信する際に、per-flow ECMP(Equal Cost Multi Path)により送信先のロードバランサを決定する。なお、上りパケットは、第1のパケットの一例である。また、ロードバランサ30が仮想マシンである場合、ロードバランサ30のそれぞれにはVIPが設定される。

0020

また、ロードバランサ30のそれぞれには異なるMAC(Media Access Control)アドレスが設定されているものとする。ロードバランサ30は、サーバ群に含まれるサーバを宛先とする上りパケットの送信元MACアドレスを、自身に設定されたMACアドレスに更新する。

0021

ここで、上りパケットはクライアント10からサーバ50に向けて送信されるものとする。また、下りパケットはサーバ50からクライアント10に向けて送信されるものとする。ロードバランサ30は、送信元MACアドレスを更新した上りパケットをL2スイッチ40へ送信する。また、ロードバランサ30は、L2スイッチ40から送信された下りパケットを受信した場合、当該下りパケットをL3スイッチ20に送信する。なお、下りパケットは、第2のパケットの一例である。

0022

L2スイッチ40は、ロードバランサ30とサーバ群とを接続する。このL2スイッチ40は、ロードバランサ30から送信されたパケットを受信し、当該受信したパケットをルーティングしサーバ群に送信する。また、L2スイッチ40は、サーバ50からの下りパケットを宛先MACアドレスに対応するロードバランサ30へ転送する。図1の例では、L2スイッチ40は、サーバ50へ上りパケットを送信し、サーバ50から下りパケットを受信する。

0023

サーバ50は、例えば、クライアント10からの受信した上りパケットに基づき種々の処理を行った後、当該受信したパケットに対する返信パケットを、下りパケットとして当該クライアント10へ送信する。ここで、ロードバランサがステートフルな装置であることから、返信パケットは、対応する上りパケットが経由したロードバランサと同じロードバランサを経由する必要がある。一方で、サーバ50は、上りパケットが経由したロードバランサ認識することができない。

0024

そこで、L2スイッチ40は、サーバ50から受信した返信パケットの宛先MACアドレスを、当該返信パケットに対応する上りパケットが経由したロードバランサのMACアドレスに書き換える。これにより、L2スイッチ40によってMACアドレスが書き換えられた返信パケットは、対応する上りパケットが経由したロードバランサと同じロードバランサを経由して、L3スイッチ20及びクライアント10に送信されることになる。

0025

図1に示すように、クライアント10からサーバ50宛てに送信され、ロードバランサ30cを経由してL2スイッチ40に到着した上りパケットのIPヘッダには、送信元IPアドレスとしてクライアント10のIPアドレスが記載され、宛先IPアドレスとしてサーバ50の物理IPアドレスが記載されている。さらに、当該パケットのL2ヘッダの送信元MACアドレスには、送信元MACアドレスとしてロードバランサ30cのMACアドレスが記載され、宛先MACアドレスとしてサーバ50のMACアドレスが記載されている。このため、L2スイッチ40は、上りパケットのL2ヘッダから、経由したロードバランサのMACアドレスを取得することができる。

0026

図2を用いて、L2スイッチ40の構成について説明する。図2は、第1の実施形態に係るL2スイッチの構成例を示す図である。図2に示すように、L2スイッチ40は、通信部41、入出力部42、記憶部43及び制御部44を有する。

0027

通信部41は、外部装置との通信インタフェースを司る。通信部41は、例えば、ロードバランサ30経由で上りパケットを受信したり、制御部44から出力された下りパケットをサーバ群に送信したりする。入出力部42は、当該L2スイッチ40への各種情報の入出力を司る。入出力部42は、例えば、当該L2スイッチ40への設定情報等の入力を受け付ける。

0028

記憶部43は、制御部44が動作する際に参照する各種情報を記憶する。記憶部43は、例えば、ルーティング情報431及びセッションテーブル432を記憶する領域を備える。ルーティング情報431は、L2がルーティングを行うための情報である。例えば、ルーティング情報431は、ポート番号とMACアドレスが対応付けられたルーティングテーブルである。セッションテーブル432は、セッション情報を記憶する。セッション情報は、L2スイッチ40に収容されたサーバを宛先とする上りパケットの送信元MACアドレス及び当該上りパケットのセッションを特定する情報である。

0029

制御部44は、L2スイッチ40全体の制御を司る。制御部44は、受信部441、格納部442、更新部443及び送信部444を有する。

0030

受信部441は、上りパケット及び下りパケットを通信部41経由で受信する。また、送信部444は、上りパケット及び下りパケットをルーティングを行った上で通信部41経由で送信する。ここで、受信部441が受信したサーバ群宛ての上りパケットに対しては、後述する格納部442による処理が行われる。また、受信部441が受信したサーバ群からの下りパケットに対しては、後述する更新部443による処理が行われる。

0031

格納部442は、L2スイッチ40に収容されたサーバを宛先とする上りパケットがL2スイッチ40によって受信された場合に、当該上りパケットの送信元MACアドレス及び当該上りパケットのセッションを特定する情報を記憶部43に格納する。

0032

更新部443は、L2スイッチ40に収容されたサーバから送信され、L2スイッチ40によって受信された下りパケットのセッションを特定する情報が、記憶部43に格納された上りパケットのセッションを特定する情報と一致する場合、当該下りパケットの宛先MACアドレスを、当該上りパケットの送信元MACアドレスに更新する。また、例えば、更新部443は、netfilterと呼ばれるLinux(登録商標) Kernelが持つAPIや、libnetfilter_queueと呼ばれる類似のライブラリ等を用いてMACアドレスの更新を行うことができる。

0033

例えば、格納部442は、上りパケットのセッションを特定する情報として、上りパケットの送信元IPアドレス、送信元ポート番号及びプロトコル番号を記憶部43に格納する。このとき、更新部443は、下りパケットの宛先IPアドレス、宛先ポート番号及びプロトコル番号が、それぞれ記憶部43に格納された上りパケットの送信元IPアドレス、送信元ポート番号及びプロトコル番号と一致する場合、下りパケットの宛先MACアドレスを、上りパケットの送信元MACアドレスに更新する。

0034

[第1の実施形態の処理手順]
図3を用いて、L2スイッチ40の上り方向の通信に対する処理の流れを説明する。図3は、第1の実施形態に係るL2スイッチの上り方向の通信に対する処理の流れを示すフローチャートである。

0035

図3に示すように、まず、L2スイッチ40は、配下のサーバ宛てのパケットを受信する(ステップS11)。次に、L2スイッチ40は、パケットの送信元IPアドレス、送信元ポート番号、プロトコル番号及び返却用MACアドレスを取得する(ステップS12)。ここで、送信元IPアドレス、送信元ポート番号及びプロトコル番号は、セッションを特定する情報の一例である。また、返却用MACアドレスは、送信元MACアドレスである。

0036

ここで、L2スイッチ40は、取得した情報をセッションテーブル432に格納する(ステップS13)。そして、L2スイッチ40は、ルーティング情報431にしたがいパケットを送信する(ステップS14)。

0037

図4を用いて、L2スイッチ40の下り方向の通信に対する処理の流れを説明する。図4は、第1の実施形態に係るL2スイッチの下り方向の通信に対する処理の流れを示すフローチャートである。

0038

図4に示すように、まず、L2スイッチ40は、配下のサーバから送信されたパケットを受信する(ステップS21)。次に、L2スイッチは、パケットの宛先IPアドレス、宛先ポート番号、プロトコル番号でセッションテーブル432を検索し、一致するレコードの返却用MACアドレスを取得する(ステップS22)。

0039

ここで、L2スイッチ40は、パケットの宛先MACアドレスを、取得した返却用MACアドレスに更新する(ステップS23)。そして、L2スイッチ40は、ルーティング情報431にしたがいパケットを送信する(ステップS24)。

0040

[第1の実施形態の処理手順の具体例]
図5を用いて、通信制御システムの1の上り方向の通信に対する処理手順の具体例を説明する。図5は、通信制御システムの上り方向の通信に対する処理手順の具体例を説明するための図である。

0041

図5に示すように、通信制御システム1には、N台のクライアント10が設置され、クライアント10それぞれのIPアドレスは「IP−C−1〜N」、MACアドレスは「MC−C−1〜N」であるものとする。

0042

また、L3スイッチ20のIPアドレスは「IP−L3」、MACアドレスは「MC−L3」であるものとする。さらに、L3スイッチ20とL2スイッチ40との間には、ロードバランサ30a、30b、30cが設置される。

0043

ロードバランサ30a、ロードバランサ30b及びロードバランサ30cのIPアドレスは、それぞれ「IP−LB−1」、「IP−LB−2」及び「IP−LB−3」であるものとする。また、ロードバランサ30a、ロードバランサ30b及びロードバランサ30cのMACアドレスは、それぞれ「MC−LB−1」、「MC−LB−2」及び「MC−LB−3」であるものとする。なお、ロードバランサ30a、30b、30cのVIPは、いずれも「VP」であるものとする。

0044

また、サーバ50は3台設置され、サーバ50a、サーバ50b及びサーバ50cのIPアドレスは、それぞれ「IP−SV−1」、「IP−SV−2」及び「IP−SV−3」であるものとする。また、サーバ50a、サーバ50b及びサーバ50cのMACアドレスは、それぞれ「MC−SV−1」、「MC−SV−2」及び「MC−SV−3」であるものとする。それぞれのサーバ50は、L2スイッチ40経由でロードバランサ30a、30b、30cに接続される。

0045

なお、図5における「TO MAC」は、宛先MACアドレスを示し、「TO IP」は宛先IPアドレスを示し、「TO Port」は宛先ポート番号を示す。また、図5における「FMMAC」は、送信元MACアドレスを示し、「FM IP」は送信元IPアドレスを示し、「FM Port」は送信元ポート番号を示す。

0046

通信制御システム1において、L3スイッチ20がIPアドレス「IP−C−1」のクライアント10から、VIP「VP」宛のパケット(上りパケット)を受信した場合を考える。この場合、まず、L3スイッチ20は、per-flow ECMPにより、当該パケットの転送先のロードバランサ30を決定する。これにより、上りパケットの処理負荷を各ロードバランサ30に分散させることができる。

0047

ここで、例えば、L3スイッチ20が、当該パケットの転送先をロードバランサ30aに決定した場合、L3スイッチ20は、符号501に示すヘッダ情報を当該パケットに設定してロードバランサ30aに転送する。その後、ロードバランサ30aは、転送されたパケットに符号502に示すヘッダ情報を設定してL2スイッチ40へ送信する。つまり、ロードバランサ30aは、L3スイッチ20から転送されたパケットの宛先MACアドレスを「MC−SV−1」に変換し、宛先IPアドレスを「IP−SV−1」に変換し、送信元MACアドレスを「MC−LB−1」に変換して、L2スイッチ40へ送信する。

0048

そして、L2スイッチ40は、受信した上りパケットのIPヘッダ及びL2ヘッダから、送信元IPアドレス、送信元ポート番号、プロトコル番号、返却用MACアドレスを学習する。つまり、L2スイッチ40は、受信パケットのIPヘッダ及びL2ヘッダから、送信元IPアドレス、送信元ポート番号、プロトコル番号、送信元MACアドレス取得し、取得した情報をセッション番号とともにセッションテーブル432に記録する。

0049

ここで、図5に示すように、セッションテーブル432の項目には、セッション識別情報#、送信元ポート番号、プロトコル番号及び返却用MACアドレスが含まれる。図5の例では、セッションテーブル432には、セッション識別情報#として「1」が格納され、送信元ポート番号として「IP−C−1」が格納され、プロトコル番号として「xxxx」が格納され、返却用MACアドレスとしてtcpプロトコルを示す「6」が格納され、返却用MACアドレスとして「MC−LB−1」が格納される。ただし、「xxxx」は所定の数値であるものとする。

0050

図6を用いて、通信制御システムの1の下り方向の通信に対する処理手順の具体例を説明する。図6は、通信制御システムの1の下り方向の通信に対する処理手順の具体例を説明するための図である。図6における各装置に設定されたアドレス等は、図5のもとの同様である。

0051

まず、L2スイッチ40は、宛先IPアドレスが「IP−C−1」、宛先ポート番号が「xxxx」、プロトコル番号が「6」である下りパケットをサーバ50aから受信する。このとき、下りパケットの送信先MACアドレスには任意の値が設定されていてよい。

0052

そして、L2スイッチ40は、セッションテーブル432から下りパケットと同じセッションを特定する情報を検索し、返却用MACアドレスを取得する。ここでは、L2スイッチ40は、セッションテーブル432から、送信元IPアドレスが「IP−C−1」、送信先ポート番号「xxxx」、プロトコル番号「6」であるレコードを検索し、返却用MACアドレスとして「MC−LB−1」を取得する。

0053

さらに、L2スイッチ40は、サーバ50から受信した下りパケットに符号503に示すヘッダ情報を設定する。つまり、L2スイッチ40は、送信先MACアドレスを、返却用MACアドレスとして取得した「MC−LB−1」に更新する。これにより、上りパケットは、ロードバランサ30aを経由するようになる。

0054

[第1の実施形態の効果]
これまで説明してきたように、L2スイッチ40は、L2スイッチ40に収容されたサーバを宛先とする第1のパケットがL2スイッチ40によって受信された場合に、第1のパケットの送信元MACアドレス及び第1のパケットのセッションを特定する情報を記憶部43に格納する。また、L2スイッチ40は、L2スイッチ40に収容されたサーバから送信され、L2スイッチ40によって受信された第2のパケットのセッションを特定する情報が、記憶部43に格納された第1のパケットのセッションを特定する情報と一致する場合、第2のパケットの宛先MACアドレスを、第1のパケットの送信元MACアドレスに更新する。

0055

このように、L2スイッチ40は、上りパケットに対する返信パケットの宛先MACアドレスを、上りパケットが経由した装置のMACアドレスに自動的に書き換えることができる。このため、第1の実施形態によれば、ロードバランサ30のスケールアウトを行う際、DNSサーバ設定変更や、追加されたロードバランサ30に対するサーバ群の新規割り当てや各ロードバランサ30に割り当てるサーバ群の収容替えが不要になり、設定作業の手間やコストを低減することができる。

0056

また、同様の宛先MACアドレスをサーバに直接実装することが困難な場合であっても、第1の実施形態によれば、上りパケットと返信パケットが同一のロードバランサを経由するようにする制御を実現することができる。

0057

また、L2スイッチ40は、第1のパケットのセッションを特定する情報として、第1のパケットの送信元IPアドレス、送信元ポート番号及びプロトコル番号を記憶部43に格納する。また、L2スイッチ40は、第2のパケットの宛先IPアドレス、宛先ポート番号及びプロトコル番号が、それぞれ記憶部43に格納された第1のパケットの送信元IPアドレス、送信元ポート番号及びプロトコル番号と一致する場合、第2のパケットの宛先MACアドレスを、第1のパケットの送信元MACアドレスに更新する。このように、第1の実施形態では、上りパケットである第1のパケットのヘッダに設定された各値を使って、容易にセッションを特定することができる。

0058

また、ロードバランサ30のそれぞれには異なるMACアドレスが設定される。また、各ロードバランサは、サーバを宛先とする第1のパケットの送信元MACアドレスを、自身に設定されたMACアドレスに更新する。これにより、第1の実施形態では、ロードバランサのMACアドレスを一意に特定することが可能になる。

0059

ロードバランサ30のそれぞれには同一のIPアドレスが設定され、かつ異なるMACアドレスが設定される。また、L3スイッチ20は、同一のIPアドレスが設定された複数のロードバランサに第1のパケットを送信する際に、per-flow ECMPにより送信先のロードバランサを決定する。これにより、第1の実施形態では、上りパケットの負荷分散が可能になる。

0060

ここで、第1の実施形態の効果を、既存技術であるロードバランサのスケールアップ及びDNSラウンドロビンによるロードバランサのスケールアウトと対比しながら説明する。図7は、スケールアップについて説明するための図である。図8は、DNSラウンドロビンについて説明するための図である。

0061

図7に示すように、ロードバランサのスケールアップにおいては、既存のロードバランサ30dがより性能の高いロードバランサ30eにリプレースされる。また、スケールアップは、既存のロードバランサ30dに対しモジュールを追加することにより行われてもよい。

0062

また、図8に示すように、DNSラウンドロビンによるロードバランサのスケールアウトにおいては、同一ドメインに対する解決先VIP(例えば、VIP3)が追加され、DNSラウンドロビンによる負荷分散が行われる。例えば、ロードバランサ30f(VIP1)、ロードバランサ30g(VIP2)に対し、ロードバランサ30hを追加した場合、ロードバランサ30hにVIP3が設定される。また、ロードバランサ30hを追加した場合、ロードバランサ30f、30g、30hの間で、各ロードバランサ30の配下のサーバ群のグルーピングが再度行われる。

0063

(1)設定作業及び設定コストについて
上記のロードバランサ30dのスケールアップを行う場合、サーバ群のゲートウェイの設定変更が必要であり、DNSラウンドロビンによりロードバランサ30のスケールアウトを行う場合、追加するロードバランサ30hに割り当てるサーバ群の設定と、DNSサーバの設定変更が必要である。しかし、第1の実施形態の場合、上記の設定変更等は不要である。

0064

(2)サーバ分割損について
上記のロードバランサ30dのスケールアップを行う場合、サーバ群の再分割は発生しないのでいわゆるサーバの分割損は発生しないが、DNSラウンドロビンによりロードバランサ30のスケールアウトを行う場合、30f、30g、30hに対し割り当てるサーバ群の再グルーピングを行う必要があるのでサーバの分割損が発生する。一方、第1の実施形態の場合、上記のサーバ分割損は発生しない。

0065

(3)切り戻しについて
上記のロードバランサ30dのスケールアップを行う場合において、切り戻しを行う際には長い時間を要する。また、DNSラウンドロビンによりロードバランサ30のスケールアウトを行う場合において、切り戻しを行う際には、DNSサーバのレコード削除とサーバの戻し作業が発生するため作業の手間がかかる。また、DNSサーバのキャッシュTTL(Time To Live)があるため、作業結果の反映にも時間がかかる。一方、第1の実施形態の場合、切り戻しを行う際には、L3スイッチ20のルーティング情報を削除すればよいので切り戻しに要する作業は少ない。

0066

以上説明したとおり、本実施形態のシステムによれば、ロードバランサ30のスケールアウト時の設定作業及び設定コストを低減することができる。また、ロードバランサ30の配下のサーバ群の分割損も発生せず、また切り戻しを行う際の設定作業及び設定コストも低減することができる。

0067

[その他の実施形態]
なお、典型的なクライアント〜サーバ間のネットワーク構成として、クライアント−ファイアウォール−ロードバランサ−サーバという構成がある。このような構成において、ファイアウォールのスケールアウトを行う場合もある。ここで、ファイアウォールもステートフルな装置であるので、上記の構成においてファイアウォールのスケールアウトを行う場合に、ロードバランサに上記の実施形態で述べた技術を適用してもよい。つまり、図1に示した構成図におけるロードバランサをファイアウォールに置き換え、サーバをロードバランサに置き換えてもよい。

0068

この場合、L2スイッチ40は、ファイアウォール経由で受信した上りパケットのL2ヘッダに設定された送信元MACアドレスにより、当該上りパケットの送信元MACアドレスを得る。ここで得たMACアドレスは、当該上りパケットが経由したファイアウォールのMACアドレスである。そして、L2スイッチ40は、当該受信パケットの送信元MACアドレスを返却用MACアドレスとして記憶しておく。そして、L2スイッチ40は、当該上りパケットに対する返信パケットをファイアウォール側へ送信する際、当該返信パケットの宛先MACアドレスを、返却用MACアドレスに更新する。これにより、返信パケットは、上りパケットが経由したファイアウォールと同じファイアウォールを経由することになる。

0069

また、上記の実施形態では、下りパケットの宛先MACアドレスの更新に関する処理をL2スイッチ40が行うものとして説明した。一方で、下りパケットの宛先MACアドレスの更新に関する処理は、L2スイッチ40と接続された外部の通信制御装置によって行われてもよい。

0070

ここで、外部の通信制御装置は、少なくともL2スイッチ40の格納部442、更新部443及びセッションテーブル432と同等の機能を有する。そして、外部の通信制御装置は、L2スイッチ40から上りパケットを受け取り、受け取った上りパケットからセッションを特定する情報及び返却用MACアドレスを取得し、取得した情報を記憶しておく。さらに、外部の通信制御装置は、L2スイッチ40から下りパケットを受け取り、当該下りパケットとセッションを特定する情報が一致する返却用MACアドレスで当該下りパケットの宛先MACアドレスを更新し、更新済みの下りパケットをL2スイッチ40に返す。

0071

システム構成等]
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示のように構成されていることを要しない。すなわち、各装置の分散及び統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷使用状況等に応じて、任意の単位で機能的又は物理的に分散又は統合して構成することができる。さらに、各装置にて行われる各処理機能は、その全部又は任意の一部が、CPU(Central Processing Unit)及び当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。

0072

また、本実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部又は一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。

0073

[プログラム]
一実施形態として、通信制御装置(例えば、L2スイッチ40)は、パッケージソフトウェアオンラインソフトウェアとして上記の通信制御を実行する通信制御プログラムを所望のコンピュータにインストールさせることによって実装できる。例えば、上記の通信制御プログラムを情報処理装置に実行させることにより、情報処理装置を通信制御装置として機能させることができる。ここで言う情報処理装置には、デスクトップ型又はノート型パーソナルコンピュータが含まれる。また、その他にも、情報処理装置にはスマートフォン携帯電話機やPHS(Personal Handyphone System)等の移動体通信端末、さらには、PDA(Personal Digital Assistant)等のスレート端末等がその範疇に含まれる。

0074

図9は、通信制御プログラムを実行するコンピュータの一例を示す図である。コンピュータ1000は、例えば、メモリ1010、CPU1020を有する。また、コンピュータ1000は、ハードディスクドライブインタフェース1030、ディスクドライブインタフェース1040、シリアルポートインタフェース1050、ビデオアダプタ1060、ネットワークインタフェース1070を有する。これらの各部は、バス1080によって接続される。

0075

メモリ1010は、ROM(Read Only Memory)1011及びRAM1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、ハードディスクドライブ1090に接続される。ディスクドライブインタフェース1040は、ディスクドライブ1100に接続される。例えば磁気ディスク光ディスク等の着脱可能な記憶媒体が、ディスクドライブ1100に挿入される。シリアルポートインタフェース1050は、例えばマウス1110、キーボード1120に接続される。ビデオアダプタ1060は、例えばディスプレイ1130に接続される。

0076

ハードディスクドライブ1090は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093、プログラムデータ1094を記憶する。すなわち、通信制御の各処理を規定するプログラムは、コンピュータにより実行可能なコードが記述されたプログラムモジュール1093として実装される。プログラムモジュール1093は、例えばハードディスクドライブ1090に記憶される。例えば、通信制御における機能構成と同様の処理を実行するためのプログラムモジュール1093が、ハードディスクドライブ1090に記憶される。なお、ハードディスクドライブ1090は、SSDにより代替されてもよい。

0077

また、上述した実施形態の処理で用いられる設定データは、プログラムデータ1094として、例えばメモリ1010やハードディスクドライブ1090に記憶される。そして、CPU1020は、メモリ1010やハードディスクドライブ1090に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出して、上述した実施形態の処理を実行する。

0078

なお、プログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1090に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ1100等を介してCPU1020によって読み出されてもよい。あるいは、プログラムモジュール1093及びプログラムデータ1094は、ネットワーク(LAN(Local Area Network)、WAN(Wide Area Network)等)を介して接続された他のコンピュータに記憶されてもよい。そして、プログラムモジュール1093及びプログラムデータ1094は、他のコンピュータから、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。

0079

10クライアント
20 L3スイッチ
30、30a、30b、30cロードバランサ
40 L2スイッチ
41通信部
42入出力部
43 記憶部
44 制御部
431ルーティング情報
432セッションテーブル
441 受信部
442 格納部
443更新部
444 送信部
50、50a、50b、50c サーバ

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

関連する公募課題

ページトップへ

技術視点だけで見ていませんか?

この技術の活用可能性がある分野

分野別動向を把握したい方- 事業化視点で見る -

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

この 技術と関連性が強い技術

関連性が強い 技術一覧

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

関連する挑戦したい社会課題一覧

この 技術と関連する公募課題

関連する公募課題一覧

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ