JP2020136743A - 通信制御装置、通信制御プログラム、通信制御システム及び通信制御方法 - Google Patents

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

Info

Publication number
JP2020136743A
JP2020136743A JP2019023996A JP2019023996A JP2020136743A JP 2020136743 A JP2020136743 A JP 2020136743A JP 2019023996 A JP2019023996 A JP 2019023996A JP 2019023996 A JP2019023996 A JP 2019023996A JP 2020136743 A JP2020136743 A JP 2020136743A
Authority
JP
Japan
Prior art keywords
packet
switch
mac address
communication control
information
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.)
Pending
Application number
JP2019023996A
Other languages
English (en)
Inventor
宗之 川谷
Muneyuki Kawatani
宗之 川谷
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2019023996A priority Critical patent/JP2020136743A/ja
Priority to PCT/JP2020/003537 priority patent/WO2020166362A1/ja
Publication of JP2020136743A publication Critical patent/JP2020136743A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)

Abstract

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

Description

本発明は、通信制御装置、通信制御プログラム、通信制御システム及び通信制御方法に関する。
従来、ロードバランサやファイアウォール等のL3(レイヤ3)終端を行う通信装置が性能の限界を超えた際の対応策として、当該通信装置をスケールアウトする方法が知られている。ここで、例えば、ロードバランサのスケールアウトを行う場合、各ロードバランサ間での負荷分散を行うために、DNSラウンドロビンを用いる方法が知られている。DNSラウンドロビンを用いる場合、同じドメインの複数のロードバランサに異なるVIPが設定される。
ここで、各ロードバランサには、負荷分散処理を行うサーバ群が割り当てられているものとする。そして、例えば、DNSラウンドロビンによりパケットの転送先のロードバランサが決定されると、当該パケットを受信したロードバランサは、自身に割り当てられたいずれかのサーバへパケットを転送する。
ここで、ロードバランサは、例えば、VIP(Virtual IP:仮想IPアドレス)を物理サーバのIPアドレスにNAT(Network Address Translation)したり、DH(Diffie-Hellman)鍵交換方式のSSL/TSLを終端させたり、L7(レイヤ7)ロードバランスを実行したりする、ステートフルな装置である。そのため、サーバへのパケット(上りパケット)も当該サーバからの応答パケット(下りパケット)も同じロードバランサを経由する必要がある。ここで、DNSラウンドロビンを用いる方法によれば、上記のようにロードバランサごとにサーバ群が割り当てられるため、上りパケットと下りパケットとで同じロードバランサを経由させることができる。
Maglev: A Fast and Reliable Software Network Load Balancer、[平成31年2月4日検索]、インターネット<URL:https://static.googleusercontent.com/media/research.google.com/ja//pubs/archive/44824.pdf>
しかしながら、従来の技術には、通信装置のスケールアウトのための設定作業に多大な手間やコストを要するという問題がある。例えば、ロードバランサが上記のDNSラウンドロビンを用いて負荷分散を行う場合、スケールアウトにより追加されたロードバランサに対するサーバ群の新規割り当てや各ロードバランサに割り当てるサーバ群の収容替えといった作業が生じる場合がある。
前記した課題を解決するため、本発明の通信制御装置は、L2スイッチに収容された通信装置を宛先とする第1のパケットが前記L2スイッチによって受信された場合に、前記第1のパケットの送信元MACアドレス及び前記第1のパケットのセッションを特定する情報を記憶部に格納する格納部と、前記L2スイッチに収容された通信装置から送信され、前記L2スイッチによって受信された第2のパケットのセッションを特定する情報が、前記記憶部に格納された前記第1のパケットのセッションを特定する情報と一致する場合、前記第2のパケットの宛先MACアドレスを、前記第1のパケットの送信元MACアドレスに更新する更新部と、を有することを特徴とする。
本発明によれば、通信装置のスケールアウトのための設定作業の手間やコストを低減することができる。
図1は、第1の実施形態に係る通信制御システムの構成例を示す図である。 図2は、第1の実施形態に係るL2スイッチの構成例を示す図である。 図3は、第1の実施形態に係るL2スイッチの上り方向の通信に対する処理の流れを示すフローチャートである。 図4は、第1の実施形態に係るL2スイッチの下り方向の通信に対する処理の流れを示すフローチャートである。 図5は、通信制御システムの1の上り方向の通信に対する処理手順の具体例を説明するための図である。 図6は、通信制御システムの1の下り方向の通信に対する処理手順の具体例を説明するための図である。 図7は、スケールアップについて説明するための図である。 図8は、DNSラウンドロビンについて説明するための図である。 図9は、通信制御プログラムを実行するコンピュータの一例を示す図である。
以下に、本願に係る通信制御装置、通信制御プログラム、通信制御システム及び通信制御方法の実施形態を図面に基づいて詳細に説明する。なお、本発明は、以下に説明する実施形態により限定されるものではない。
[第1の実施形態の構成]
まず、図1を用いて、第1の実施形態に係る通信制御システムの構成について説明する。図1は、第1の実施形態に係る通信制御システムの構成例を示す図である。図1に示すように、通信制御システム1は、クライアント10、L3スイッチ20、複数のロードバランサ30、L2スイッチ40及びサーバ50を有する。サーバ50は、サーバ群に含まれる。L2スイッチ40は、通信制御装置の一例である。
図1の例では、クライアント10は、L3スイッチ20と接続されている。また、L3スイッチ20は、ロードバランサ30a、ロードバランサ30b及びロードバランサ30cと接続されている。以降、各ロードバランサに共通の事項について説明する場合には、単にロードバランサ30と表記する。
ロードバランサ30はL2スイッチ40と接続されている。また、サーバ群は、L2スイッチ40の配下にあるものとする。つまり、L2スイッチ40は、サーバ群を収容している。
通信制御システム1の各装置は、物理マシンであってもよいし仮想マシンであってもよい。また、ロードバランサ30及びサーバ群は、CGN(Carrier Grade NAT)、VPN装置、WAF(Web Application Firewall)、IPS(Intrusion Prevention System)等の他のネットワーク機能を有する装置に置き換えられてもよい。
通信制御システム1では、ロードバランサの性能アップが必要になる場合がある。ロードバランサの性能アップのための手法には、例えばロードバランサを新たに追加するスケールアウトがある。なお、図1のロードバランサの数は一例であり、ロードバランサの数は図示のものに限られない。さらに、ロードバランサの数はスケールアウト等により変動する。
ここで、クライアント10からサーバ群へ向かう通信の方向を上り方向とする。逆に、サーバ群からクライアント10へ向かう通信の方向を下り方向とする。また、上り方向に送信されるパケットを上りパケットと呼ぶ。また、下り上り方向に送信されるパケットを下りパケットと呼ぶ。
クライアント10は、サーバ50との通信を行う装置である。L3スイッチ20は、受信パケットのルーティングを行う。例えば、L3スイッチ20は、クライアント10から受信した上りパケットを、自身に接続されているいずれかのロードバランサへ転送する。
ロードバランサ30は、L3モードで動作し、サーバ群へのパケットの負荷分散処理を行う。また、ロードバランサ30は、例えば、自身に設定されたVIPをサーバ50のIPアドレスにNATしたり、L7(レイヤ7)ロードバランスを実行したりする、ステートフルな装置である。
ここで、ロードバランサ30のそれぞれには同一のIPアドレスが設定されているものとする。L3スイッチ20は、クライアント10から送信された上りパケットをロードバランサ30に送信する際に、per-flow ECMP(Equal Cost Multi Path)により送信先のロードバランサを決定する。なお、上りパケットは、第1のパケットの一例である。また、ロードバランサ30が仮想マシンである場合、ロードバランサ30のそれぞれにはVIPが設定される。
また、ロードバランサ30のそれぞれには異なるMAC(Media Access Control)アドレスが設定されているものとする。ロードバランサ30は、サーバ群に含まれるサーバを宛先とする上りパケットの送信元MACアドレスを、自身に設定されたMACアドレスに更新する。
ここで、上りパケットはクライアント10からサーバ50に向けて送信されるものとする。また、下りパケットはサーバ50からクライアント10に向けて送信されるものとする。ロードバランサ30は、送信元MACアドレスを更新した上りパケットをL2スイッチ40へ送信する。また、ロードバランサ30は、L2スイッチ40から送信された下りパケットを受信した場合、当該下りパケットをL3スイッチ20に送信する。なお、下りパケットは、第2のパケットの一例である。
L2スイッチ40は、ロードバランサ30とサーバ群とを接続する。このL2スイッチ40は、ロードバランサ30から送信されたパケットを受信し、当該受信したパケットをルーティングしサーバ群に送信する。また、L2スイッチ40は、サーバ50からの下りパケットを宛先MACアドレスに対応するロードバランサ30へ転送する。図1の例では、L2スイッチ40は、サーバ50へ上りパケットを送信し、サーバ50から下りパケットを受信する。
サーバ50は、例えば、クライアント10からの受信した上りパケットに基づき種々の処理を行った後、当該受信したパケットに対する返信パケットを、下りパケットとして当該クライアント10へ送信する。ここで、ロードバランサがステートフルな装置であることから、返信パケットは、対応する上りパケットが経由したロードバランサと同じロードバランサを経由する必要がある。一方で、サーバ50は、上りパケットが経由したロードバランサ認識することができない。
そこで、L2スイッチ40は、サーバ50から受信した返信パケットの宛先MACアドレスを、当該返信パケットに対応する上りパケットが経由したロードバランサのMACアドレスに書き換える。これにより、L2スイッチ40によってMACアドレスが書き換えられた返信パケットは、対応する上りパケットが経由したロードバランサと同じロードバランサを経由して、L3スイッチ20及びクライアント10に送信されることになる。
図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アドレスを取得することができる。
図2を用いて、L2スイッチ40の構成について説明する。図2は、第1の実施形態に係るL2スイッチの構成例を示す図である。図2に示すように、L2スイッチ40は、通信部41、入出力部42、記憶部43及び制御部44を有する。
通信部41は、外部装置との通信インタフェースを司る。通信部41は、例えば、ロードバランサ30経由で上りパケットを受信したり、制御部44から出力された下りパケットをサーバ群に送信したりする。入出力部42は、当該L2スイッチ40への各種情報の入出力を司る。入出力部42は、例えば、当該L2スイッチ40への設定情報等の入力を受け付ける。
記憶部43は、制御部44が動作する際に参照する各種情報を記憶する。記憶部43は、例えば、ルーティング情報431及びセッションテーブル432を記憶する領域を備える。ルーティング情報431は、L2がルーティングを行うための情報である。例えば、ルーティング情報431は、ポート番号とMACアドレスが対応付けられたルーティングテーブルである。セッションテーブル432は、セッション情報を記憶する。セッション情報は、L2スイッチ40に収容されたサーバを宛先とする上りパケットの送信元MACアドレス及び当該上りパケットのセッションを特定する情報である。
制御部44は、L2スイッチ40全体の制御を司る。制御部44は、受信部441、格納部442、更新部443及び送信部444を有する。
受信部441は、上りパケット及び下りパケットを通信部41経由で受信する。また、送信部444は、上りパケット及び下りパケットをルーティングを行った上で通信部41経由で送信する。ここで、受信部441が受信したサーバ群宛ての上りパケットに対しては、後述する格納部442による処理が行われる。また、受信部441が受信したサーバ群からの下りパケットに対しては、後述する更新部443による処理が行われる。
格納部442は、L2スイッチ40に収容されたサーバを宛先とする上りパケットがL2スイッチ40によって受信された場合に、当該上りパケットの送信元MACアドレス及び当該上りパケットのセッションを特定する情報を記憶部43に格納する。
更新部443は、L2スイッチ40に収容されたサーバから送信され、L2スイッチ40によって受信された下りパケットのセッションを特定する情報が、記憶部43に格納された上りパケットのセッションを特定する情報と一致する場合、当該下りパケットの宛先MACアドレスを、当該上りパケットの送信元MACアドレスに更新する。また、例えば、更新部443は、netfilterと呼ばれるLinux(登録商標) Kernelが持つAPIや、libnetfilter_queueと呼ばれる類似のライブラリ等を用いてMACアドレスの更新を行うことができる。
例えば、格納部442は、上りパケットのセッションを特定する情報として、上りパケットの送信元IPアドレス、送信元ポート番号及びプロトコル番号を記憶部43に格納する。このとき、更新部443は、下りパケットの宛先IPアドレス、宛先ポート番号及びプロトコル番号が、それぞれ記憶部43に格納された上りパケットの送信元IPアドレス、送信元ポート番号及びプロトコル番号と一致する場合、下りパケットの宛先MACアドレスを、上りパケットの送信元MACアドレスに更新する。
[第1の実施形態の処理手順]
図3を用いて、L2スイッチ40の上り方向の通信に対する処理の流れを説明する。図3は、第1の実施形態に係るL2スイッチの上り方向の通信に対する処理の流れを示すフローチャートである。
図3に示すように、まず、L2スイッチ40は、配下のサーバ宛てのパケットを受信する(ステップS11)。次に、L2スイッチ40は、パケットの送信元IPアドレス、送信元ポート番号、プロトコル番号及び返却用MACアドレスを取得する(ステップS12)。ここで、送信元IPアドレス、送信元ポート番号及びプロトコル番号は、セッションを特定する情報の一例である。また、返却用MACアドレスは、送信元MACアドレスである。
ここで、L2スイッチ40は、取得した情報をセッションテーブル432に格納する(ステップS13)。そして、L2スイッチ40は、ルーティング情報431にしたがいパケットを送信する(ステップS14)。
図4を用いて、L2スイッチ40の下り方向の通信に対する処理の流れを説明する。図4は、第1の実施形態に係るL2スイッチの下り方向の通信に対する処理の流れを示すフローチャートである。
図4に示すように、まず、L2スイッチ40は、配下のサーバから送信されたパケットを受信する(ステップS21)。次に、L2スイッチは、パケットの宛先IPアドレス、宛先ポート番号、プロトコル番号でセッションテーブル432を検索し、一致するレコードの返却用MACアドレスを取得する(ステップS22)。
ここで、L2スイッチ40は、パケットの宛先MACアドレスを、取得した返却用MACアドレスに更新する(ステップS23)。そして、L2スイッチ40は、ルーティング情報431にしたがいパケットを送信する(ステップS24)。
[第1の実施形態の処理手順の具体例]
図5を用いて、通信制御システムの1の上り方向の通信に対する処理手順の具体例を説明する。図5は、通信制御システムの上り方向の通信に対する処理手順の具体例を説明するための図である。
図5に示すように、通信制御システム1には、N台のクライアント10が設置され、クライアント10それぞれのIPアドレスは「IP−C−1〜N」、MACアドレスは「MC−C−1〜N」であるものとする。
また、L3スイッチ20のIPアドレスは「IP−L3」、MACアドレスは「MC−L3」であるものとする。さらに、L3スイッチ20とL2スイッチ40との間には、ロードバランサ30a、30b、30cが設置される。
ロードバランサ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」であるものとする。
また、サーバ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に接続される。
なお、図5における「TO MAC」は、宛先MACアドレスを示し、「TO IP」は宛先IPアドレスを示し、「TO Port」は宛先ポート番号を示す。また、図5における「FM MAC」は、送信元MACアドレスを示し、「FM IP」は送信元IPアドレスを示し、「FM Port」は送信元ポート番号を示す。
通信制御システム1において、L3スイッチ20がIPアドレス「IP−C−1」のクライアント10から、VIP「VP」宛のパケット(上りパケット)を受信した場合を考える。この場合、まず、L3スイッチ20は、per-flow ECMPにより、当該パケットの転送先のロードバランサ30を決定する。これにより、上りパケットの処理負荷を各ロードバランサ30に分散させることができる。
ここで、例えば、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へ送信する。
そして、L2スイッチ40は、受信した上りパケットのIPヘッダ及びL2ヘッダから、送信元IPアドレス、送信元ポート番号、プロトコル番号、返却用MACアドレスを学習する。つまり、L2スイッチ40は、受信パケットのIPヘッダ及びL2ヘッダから、送信元IPアドレス、送信元ポート番号、プロトコル番号、送信元MACアドレス取得し、取得した情報をセッション番号とともにセッションテーブル432に記録する。
ここで、図5に示すように、セッションテーブル432の項目には、セッション識別情報#、送信元ポート番号、プロトコル番号及び返却用MACアドレスが含まれる。図5の例では、セッションテーブル432には、セッション識別情報#として「1」が格納され、送信元ポート番号として「IP−C−1」が格納され、プロトコル番号として「xxxx」が格納され、返却用MACアドレスとしてtcpプロトコルを示す「6」が格納され、返却用MACアドレスとして「MC−LB−1」が格納される。ただし、「xxxx」は所定の数値であるものとする。
図6を用いて、通信制御システムの1の下り方向の通信に対する処理手順の具体例を説明する。図6は、通信制御システムの1の下り方向の通信に対する処理手順の具体例を説明するための図である。図6における各装置に設定されたアドレス等は、図5のもとの同様である。
まず、L2スイッチ40は、宛先IPアドレスが「IP−C−1」、宛先ポート番号が「xxxx」、プロトコル番号が「6」である下りパケットをサーバ50aから受信する。このとき、下りパケットの送信先MACアドレスには任意の値が設定されていてよい。
そして、L2スイッチ40は、セッションテーブル432から下りパケットと同じセッションを特定する情報を検索し、返却用MACアドレスを取得する。ここでは、L2スイッチ40は、セッションテーブル432から、送信元IPアドレスが「IP−C−1」、送信先ポート番号「xxxx」、プロトコル番号「6」であるレコードを検索し、返却用MACアドレスとして「MC−LB−1」を取得する。
さらに、L2スイッチ40は、サーバ50から受信した下りパケットに符号503に示すヘッダ情報を設定する。つまり、L2スイッチ40は、送信先MACアドレスを、返却用MACアドレスとして取得した「MC−LB−1」に更新する。これにより、上りパケットは、ロードバランサ30aを経由するようになる。
[第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アドレスに更新する。
このように、L2スイッチ40は、上りパケットに対する返信パケットの宛先MACアドレスを、上りパケットが経由した装置のMACアドレスに自動的に書き換えることができる。このため、第1の実施形態によれば、ロードバランサ30のスケールアウトを行う際、DNSサーバの設定変更や、追加されたロードバランサ30に対するサーバ群の新規割り当てや各ロードバランサ30に割り当てるサーバ群の収容替えが不要になり、設定作業の手間やコストを低減することができる。
また、同様の宛先MACアドレスをサーバに直接実装することが困難な場合であっても、第1の実施形態によれば、上りパケットと返信パケットが同一のロードバランサを経由するようにする制御を実現することができる。
また、L2スイッチ40は、第1のパケットのセッションを特定する情報として、第1のパケットの送信元IPアドレス、送信元ポート番号及びプロトコル番号を記憶部43に格納する。また、L2スイッチ40は、第2のパケットの宛先IPアドレス、宛先ポート番号及びプロトコル番号が、それぞれ記憶部43に格納された第1のパケットの送信元IPアドレス、送信元ポート番号及びプロトコル番号と一致する場合、第2のパケットの宛先MACアドレスを、第1のパケットの送信元MACアドレスに更新する。このように、第1の実施形態では、上りパケットである第1のパケットのヘッダに設定された各値を使って、容易にセッションを特定することができる。
また、ロードバランサ30のそれぞれには異なるMACアドレスが設定される。また、各ロードバランサは、サーバを宛先とする第1のパケットの送信元MACアドレスを、自身に設定されたMACアドレスに更新する。これにより、第1の実施形態では、ロードバランサのMACアドレスを一意に特定することが可能になる。
ロードバランサ30のそれぞれには同一のIPアドレスが設定され、かつ異なるMACアドレスが設定される。また、L3スイッチ20は、同一のIPアドレスが設定された複数のロードバランサに第1のパケットを送信する際に、per-flow ECMPにより送信先のロードバランサを決定する。これにより、第1の実施形態では、上りパケットの負荷分散が可能になる。
ここで、第1の実施形態の効果を、既存技術であるロードバランサのスケールアップ及びDNSラウンドロビンによるロードバランサのスケールアウトと対比しながら説明する。図7は、スケールアップについて説明するための図である。図8は、DNSラウンドロビンについて説明するための図である。
図7に示すように、ロードバランサのスケールアップにおいては、既存のロードバランサ30dがより性能の高いロードバランサ30eにリプレースされる。また、スケールアップは、既存のロードバランサ30dに対しモジュールを追加することにより行われてもよい。
また、図8に示すように、DNSラウンドロビンによるロードバランサのスケールアウトにおいては、同一ドメインに対する解決先VIP(例えば、VIP3)が追加され、DNSラウンドロビンによる負荷分散が行われる。例えば、ロードバランサ30f(VIP1)、ロードバランサ30g(VIP2)に対し、ロードバランサ30hを追加した場合、ロードバランサ30hにVIP3が設定される。また、ロードバランサ30hを追加した場合、ロードバランサ30f、30g、30hの間で、各ロードバランサ30の配下のサーバ群のグルーピングが再度行われる。
(1)設定作業及び設定コストについて
上記のロードバランサ30dのスケールアップを行う場合、サーバ群のゲートウェイの設定変更が必要であり、DNSラウンドロビンによりロードバランサ30のスケールアウトを行う場合、追加するロードバランサ30hに割り当てるサーバ群の設定と、DNSサーバの設定変更が必要である。しかし、第1の実施形態の場合、上記の設定変更等は不要である。
(2)サーバ分割損について
上記のロードバランサ30dのスケールアップを行う場合、サーバ群の再分割は発生しないのでいわゆるサーバの分割損は発生しないが、DNSラウンドロビンによりロードバランサ30のスケールアウトを行う場合、30f、30g、30hに対し割り当てるサーバ群の再グルーピングを行う必要があるのでサーバの分割損が発生する。一方、第1の実施形態の場合、上記のサーバ分割損は発生しない。
(3)切り戻しについて
上記のロードバランサ30dのスケールアップを行う場合において、切り戻しを行う際には長い時間を要する。また、DNSラウンドロビンによりロードバランサ30のスケールアウトを行う場合において、切り戻しを行う際には、DNSサーバのレコード削除とサーバの戻し作業が発生するため作業の手間がかかる。また、DNSサーバのキャッシュのTTL(Time To Live)があるため、作業結果の反映にも時間がかかる。一方、第1の実施形態の場合、切り戻しを行う際には、L3スイッチ20のルーティング情報を削除すればよいので切り戻しに要する作業は少ない。
以上説明したとおり、本実施形態のシステムによれば、ロードバランサ30のスケールアウト時の設定作業及び設定コストを低減することができる。また、ロードバランサ30の配下のサーバ群の分割損も発生せず、また切り戻しを行う際の設定作業及び設定コストも低減することができる。
[その他の実施形態]
なお、典型的なクライアント〜サーバ間のネットワーク構成として、クライアント−ファイアウォール−ロードバランサ−サーバという構成がある。このような構成において、ファイアウォールのスケールアウトを行う場合もある。ここで、ファイアウォールもステートフルな装置であるので、上記の構成においてファイアウォールのスケールアウトを行う場合に、ロードバランサに上記の実施形態で述べた技術を適用してもよい。つまり、図1に示した構成図におけるロードバランサをファイアウォールに置き換え、サーバをロードバランサに置き換えてもよい。
この場合、L2スイッチ40は、ファイアウォール経由で受信した上りパケットのL2ヘッダに設定された送信元MACアドレスにより、当該上りパケットの送信元MACアドレスを得る。ここで得たMACアドレスは、当該上りパケットが経由したファイアウォールのMACアドレスである。そして、L2スイッチ40は、当該受信パケットの送信元MACアドレスを返却用MACアドレスとして記憶しておく。そして、L2スイッチ40は、当該上りパケットに対する返信パケットをファイアウォール側へ送信する際、当該返信パケットの宛先MACアドレスを、返却用MACアドレスに更新する。これにより、返信パケットは、上りパケットが経由したファイアウォールと同じファイアウォールを経由することになる。
また、上記の実施形態では、下りパケットの宛先MACアドレスの更新に関する処理をL2スイッチ40が行うものとして説明した。一方で、下りパケットの宛先MACアドレスの更新に関する処理は、L2スイッチ40と接続された外部の通信制御装置によって行われてもよい。
ここで、外部の通信制御装置は、少なくともL2スイッチ40の格納部442、更新部443及びセッションテーブル432と同等の機能を有する。そして、外部の通信制御装置は、L2スイッチ40から上りパケットを受け取り、受け取った上りパケットからセッションを特定する情報及び返却用MACアドレスを取得し、取得した情報を記憶しておく。さらに、外部の通信制御装置は、L2スイッチ40から下りパケットを受け取り、当該下りパケットとセッションを特定する情報が一致する返却用MACアドレスで当該下りパケットの宛先MACアドレスを更新し、更新済みの下りパケットをL2スイッチ40に返す。
[システム構成等]
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示のように構成されていることを要しない。すなわち、各装置の分散及び統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散又は統合して構成することができる。さらに、各装置にて行われる各処理機能は、その全部又は任意の一部が、CPU(Central Processing Unit)及び当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
また、本実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部又は一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
[プログラム]
一実施形態として、通信制御装置(例えば、L2スイッチ40)は、パッケージソフトウェアやオンラインソフトウェアとして上記の通信制御を実行する通信制御プログラムを所望のコンピュータにインストールさせることによって実装できる。例えば、上記の通信制御プログラムを情報処理装置に実行させることにより、情報処理装置を通信制御装置として機能させることができる。ここで言う情報処理装置には、デスクトップ型又はノート型のパーソナルコンピュータが含まれる。また、その他にも、情報処理装置にはスマートフォン、携帯電話機やPHS(Personal Handyphone System)等の移動体通信端末、さらには、PDA(Personal Digital Assistant)等のスレート端末等がその範疇に含まれる。
図9は、通信制御プログラムを実行するコンピュータの一例を示す図である。コンピュータ1000は、例えば、メモリ1010、CPU1020を有する。また、コンピュータ1000は、ハードディスクドライブインタフェース1030、ディスクドライブインタフェース1040、シリアルポートインタフェース1050、ビデオアダプタ1060、ネットワークインタフェース1070を有する。これらの各部は、バス1080によって接続される。
メモリ1010は、ROM(Read Only Memory)1011及びRAM1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、ハードディスクドライブ1090に接続される。ディスクドライブインタフェース1040は、ディスクドライブ1100に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ1100に挿入される。シリアルポートインタフェース1050は、例えばマウス1110、キーボード1120に接続される。ビデオアダプタ1060は、例えばディスプレイ1130に接続される。
ハードディスクドライブ1090は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093、プログラムデータ1094を記憶する。すなわち、通信制御の各処理を規定するプログラムは、コンピュータにより実行可能なコードが記述されたプログラムモジュール1093として実装される。プログラムモジュール1093は、例えばハードディスクドライブ1090に記憶される。例えば、通信制御における機能構成と同様の処理を実行するためのプログラムモジュール1093が、ハードディスクドライブ1090に記憶される。なお、ハードディスクドライブ1090は、SSDにより代替されてもよい。
また、上述した実施形態の処理で用いられる設定データは、プログラムデータ1094として、例えばメモリ1010やハードディスクドライブ1090に記憶される。そして、CPU1020は、メモリ1010やハードディスクドライブ1090に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出して、上述した実施形態の処理を実行する。
なお、プログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1090に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ1100等を介してCPU1020によって読み出されてもよい。あるいは、プログラムモジュール1093及びプログラムデータ1094は、ネットワーク(LAN(Local Area Network)、WAN(Wide Area Network)等)を介して接続された他のコンピュータに記憶されてもよい。そして、プログラムモジュール1093及びプログラムデータ1094は、他のコンピュータから、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
10 クライアント
20 L3スイッチ
30、30a、30b、30c ロードバランサ
40 L2スイッチ
41 通信部
42 入出力部
43 記憶部
44 制御部
431 ルーティング情報
432 セッションテーブル
441 受信部
442 格納部
443 更新部
444 送信部
50、50a、50b、50c サーバ

Claims (6)

  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-flow ECMPにより送信先のロードバランサを決定する決定部を有することを特徴とする請求項4に記載の通信制御システム。
  6. 通信装置を配下に持つL2スイッチを制御する通信制御装置と、前記L2スイッチと接続され、それぞれにMACアドレスが設定された複数のロードバランサと、を有する通信制御システムによって実行される通信制御方法であって、
    前記ロードバランサのそれぞれが、前記通信装置を宛先とする第1のパケットの送信元MACアドレスを、自身に設定されたMACアドレスに更新する第1の更新工程と、
    前記通信制御装置が、前記第1のパケットが前記L2スイッチによって受信された場合に、前記第1のパケットの送信元MACアドレス及び前記第1のパケットのセッションを特定する情報を記憶部に格納する格納工程と、
    前記通信制御装置が、前記L2スイッチに収容された通信装置から送信され、前記L2スイッチによって受信された第2のパケットのセッションを特定する情報が、前記記憶部に格納された前記第1のパケットのセッションを特定する情報と一致する場合、前記第2のパケットの宛先MACアドレスを、前記第1のパケットの送信元MACアドレスに更新する第2の更新工程と、
    を含むことを特徴とする通信制御方法。
JP2019023996A 2019-02-13 2019-02-13 通信制御装置、通信制御プログラム、通信制御システム及び通信制御方法 Pending JP2020136743A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2019023996A JP2020136743A (ja) 2019-02-13 2019-02-13 通信制御装置、通信制御プログラム、通信制御システム及び通信制御方法
PCT/JP2020/003537 WO2020166362A1 (ja) 2019-02-13 2020-01-30 通信制御装置、通信制御プログラム、通信制御システム及び通信制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019023996A JP2020136743A (ja) 2019-02-13 2019-02-13 通信制御装置、通信制御プログラム、通信制御システム及び通信制御方法

Publications (1)

Publication Number Publication Date
JP2020136743A true JP2020136743A (ja) 2020-08-31

Family

ID=72044938

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019023996A Pending JP2020136743A (ja) 2019-02-13 2019-02-13 通信制御装置、通信制御プログラム、通信制御システム及び通信制御方法

Country Status (2)

Country Link
JP (1) JP2020136743A (ja)
WO (1) WO2020166362A1 (ja)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7606929B2 (en) * 2003-06-30 2009-10-20 Microsoft Corporation Network load balancing with connection manipulation
JP2013016044A (ja) * 2011-07-04 2013-01-24 Fujitsu Ltd ファイアウォール装置およびファイアウォール装置の制御方法
US10038626B2 (en) * 2013-04-16 2018-07-31 Amazon Technologies, Inc. Multipath routing in a distributed load balancer
JP6693925B2 (ja) * 2017-10-02 2020-05-13 日本電信電話株式会社 サーバ、通信制御システム、および、通信制御方法
JP6705857B2 (ja) * 2018-03-28 2020-06-03 日本電信電話株式会社 通信装置、通信制御システム、通信制御方法及び通信制御プログラム

Also Published As

Publication number Publication date
WO2020166362A1 (ja) 2020-08-20

Similar Documents

Publication Publication Date Title
US10320895B2 (en) Live migration of load balanced virtual machines via traffic bypass
US9935920B2 (en) Virtualization gateway between virtualized and non-virtualized networks
US20180139101A1 (en) Flow sate transfer for live migration of virtual machine
US10616321B2 (en) Distributed stateful load balancer
US11070475B2 (en) Transparent migration of virtual network functions
US20180041437A1 (en) Management apparatus and management method
JP6693925B2 (ja) サーバ、通信制御システム、および、通信制御方法
JP2020048127A (ja) 制御装置、制御方法、及びプログラム
AU2015313050B2 (en) Control device, control system, control method, and control program
US11595304B2 (en) Communication device, communication control system, communication control method, and communication control program
US20160127232A1 (en) Management server and method of controlling packet transfer
WO2020166362A1 (ja) 通信制御装置、通信制御プログラム、通信制御システム及び通信制御方法
KR101445255B1 (ko) 부하 분산 설정을 자동으로 제공하기 위한 방법, 장치, 시스템 및 컴퓨터 판독 가능한 기록 매체
JP6053032B2 (ja) 通信制御装置、通信制御方法及び通信制御プログラム
US20240007386A1 (en) Route aggregation for virtual datacenter gateway
WO2020166314A1 (ja) 通信制御方法