JP6705857B2 - 通信装置、通信制御システム、通信制御方法及び通信制御プログラム - Google Patents
通信装置、通信制御システム、通信制御方法及び通信制御プログラム Download PDFInfo
- Publication number
- JP6705857B2 JP6705857B2 JP2018062554A JP2018062554A JP6705857B2 JP 6705857 B2 JP6705857 B2 JP 6705857B2 JP 2018062554 A JP2018062554 A JP 2018062554A JP 2018062554 A JP2018062554 A JP 2018062554A JP 6705857 B2 JP6705857 B2 JP 6705857B2
- Authority
- JP
- Japan
- Prior art keywords
- packet
- correspondence table
- communication device
- identification number
- address
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/66—Layer 2 routing, e.g. in Ethernet based MAN's
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Description
本発明は、通信装置、通信制御システム、通信制御方法及び通信制御プログラムに関する。
例えば、ロードバランサやファイアウォール等のL3(レイヤ3)終端を行う通信装置が性能の限界を超えた際の対応策として、当該通信装置を追加する(スケールアウトする)方法がある。ここで、例えば、ロードバランサのスケールアウトを行いう場合、各ロードバランサ間での負荷分散を行うため、DNS(Domain Name System)ラウンドロビンを用いる方法がある。DNSラウンドロビンを用いる場合、同じドメインに対し、各ロードバランサに異なるVIP(Virtual Internet Protocol)を設定する。また、ロードバランサごとに、当該ロードバランサが負荷分散処理を行うサーバ群を割り当てておく。
そして、例えば、DNSラウンドロビンによりパケットの転送先のロードバランサが決定されると、当該パケットを受信したロードバランサは自身のロードバランサに割り当てられたいずれかのサーバへパケットを転送する。
ここで、ロードバランサは、例えば、VIPを物理サーバのIPアドレスにNAT(Network Address Translation)したり、DH(ディフィー・ヘルマン)鍵交換方式のSSL(Secure Sockets Layer)/TLS(Transport Layer Security)を終端させたり、L7(レイヤ7)ロードバランスを実行したりする、ステートフルな装置である。そのため、サーバへのパケット(上りパケット)も当該サーバからの応答パケット(下りパケット)も同じロードバランサを経由する必要がある。ここで、DNSラウンドロビンを用いる方法の場合、上記のようにロードバランサごとにサーバ群を割り当てることで、上りパケットと下りパケットとで同じロードバランサを経由させることができる。
Maglev:A Fast and Reliable Software Network Load Balancer、[online]、[平成30年3月16日検索]、インターネット<URL:https://research.google.com/pubs/pub44824.html>
しかし、ロードバランサのスケールアウトに上記のDNSラウンドロビンを用いる場合、追加されたロードバランサに対するサーバ群の新規割り当てや各ロードバランサに割り当てるサーバ群の収容替えを要するため、設定作業に手間やコストがかかるという問題がある。
本発明は、上記に鑑みてなされたものであって、L3終端を行う通信装置のスケールアウトのための設定作業の手間やコストを低減することができる通信装置、通信制御システム、通信制御方法及び通信制御プログラムを提供することを目的とする。
上述した課題を解決し、目的を達成するために、本発明に係る通信装置は、L2スイッチにより接続され、L3終端を行ういずれかの第1の通信装置経由でパケットの送受信を行う第2の通信装置であって、L2スイッチ経由でいずれかの第1の通信装置から、送信元MAC(Media Access Control)アドレスにパケットの送信元である第1の通信装置のMACアドレスが設定されたパケットを受信するパケット受信部と、第1の通信装置のMACアドレスとパケットのコネクションに付与される識別番号とが対応付けられた第1の対応表と、パケット受信部が受信したパケットのコネクションに対して識別番号が記録される第2の対応表と、第1の通信装置のIPアドレスと識別番号とが対応付けられた第3の対応表と、を記憶する記憶部と、第1の対応表を参照して、パケット受信部が受信したパケットのコネクションに対し、受信したパケットの送信元MACアドレスに対応する識別番号を付与する付与部と、第2の対応表に、受信したパケットのコネクションに対して付与部が付与した識別番号を記録する記録部と、受信したパケットに対する返信パケットを送信する場合、受信したパケットのコネクションに対応する識別番号を第2の対応表から取得し、該取得した識別番号に対応する第1の通信装置のIPアドレスを第3の対応表から取得し、該取得した第1の通信装置のIPアドレスに、L2スイッチ経由でパケットをルーティングするパケット送信部と、を有することを特徴とする。
本発明によれば、L3終端を行う通信装置のスケールアウトのための設定作業の手間やコストを低減することができる。
以下、図面を参照して、本発明の一実施形態を詳細に説明する。なお、この実施の形態により本発明が限定されるものではない。また、図面の記載において、同一部分には同一の符号を付して示している。
[実施の形態]
本発明の実施の形態について説明する。まず、本実施の形態に係る通信制御システムの基本的な構成例を、図1を用いて説明する。図1は、実施の形態に係る通信制御システムの構成の一例を示す図である。
本発明の実施の形態について説明する。まず、本実施の形態に係る通信制御システムの基本的な構成例を、図1を用いて説明する。図1は、実施の形態に係る通信制御システムの構成の一例を示す図である。
図1に示すように、本実施の形態に係る通信制御システム1は、例えば、スケールアウトの対象となる通信装置(第1の通信装置)と、この第1の通信装置経由でパケットの送受信を行う通信装置(第2の通信装置)とを有する。この第1の通信装置は、例えば、L3(レイヤ3)スイッチ20経由でクライアント10と接続される。また、第1の通信装置は、例えば、L2(レイヤ2)スイッチ40経由で第2の通信装置と接続される。
[通信制御システムの概要]
次に、図2を用いて、通信制御システム1の具体的な構成を説明する。図2は、実施の形態に係る通信制御システムの具体的な構成例を示す図である。
次に、図2を用いて、通信制御システム1の具体的な構成を説明する。図2は、実施の形態に係る通信制御システムの具体的な構成例を示す図である。
ここで、以下の説明では、図2に示すように、スケールアウトの対象となる第1の通信装置が、ロードバランサ30である場合について説明する。また、第2の通信装置は、ロードバランサ30経由でパケットの送受信を行うサーバ50である場合について説明する。ただし、この第1の通信装置及び第2の通信装置は、L3終端を行う通信装置であれば、ロードバランサ30やサーバ50に限定されない。例えば、第1の通信装置及び第2の通信装置は、Carrier Grade NATやVPN(Virtual Private Network)装置、Web Application Firewall等であってもよい。
図2に示すように、通信制御システム1は、例えば、クライアント10と、L3スイッチ20と、1以上のロードバランサ30と、L2スイッチ40と、1以上のサーバ50(サーバ群)とを有する。ここでは、L3スイッチ20とL2スイッチ40との間には3台のロードバランサ30(ロードバランサ30−1,30−2,30−3)が設置される場合を例に説明する。なお、以下の説明において、クライアント10からサーバ50へのパケットを上りパケットと称し、サーバ50からクライアント10へのパケットを下りパケットと称する。
クライアント10は、サーバ50との通信を行う装置である。L3スイッチ20は、受信パケットのルーティングを行う。例えば、L3スイッチ20は、クライアント10から受信したパケットを、自身に接続されるいずれかのロードバランサ30へ転送する。このL3スイッチ20は、例えば、per−flow ECMP(Equal Cost Multi Path)により、クライアント10からの受信パケットの転送先のロードバランサ30を決定する。
ロードバランサ30は、サーバ群へのパケットの負荷分散処理を行う。このロードバランサ30には、例えば、それぞれ同じVIPが設定され、L3モードで動作する。また、ロードバランサ30は、例えば、自身のロードバランサ30に設定されたVIPをサーバ50のIPアドレスにNATしたり、L7(レイヤ7)ロードバランスを実行したりする、ステートフルな装置である。なお、各ロードバランサ30には同じVIPが設定される。また、各ロードバランサ30は、L2スイッチ40経由でサーバ群に接続される。
このように、スケールアウトで追加されたロードバランサ30を含む各ロードバランサ30に同じVIPを設定しておき、L3スイッチ20は、例えば、per−flow ECMPにより、各ロードバランサ30の中から、上りパケットの転送先のロードバランサ30を決定する。これにより、同じTCP(Transmission Control Protocol)コネクションの上りパケットを同じロードバランサ30に転送しつつ、上りパケットの負荷をできるだけ各ロードバランサ30に分散させる。
また、各ロードバランサ30には、それぞれ異なるMACアドレス及びIPアドレスが、設定される。本実施の形態では、各ロードバランサ30に、例えば、フローティングIP(FIP)が割り当てられる場合を例に説明する。また、ロードバランサ30のMACアドレスは、予め設定されたMACアドレス付与ルールにしたがって設定される。ロードバランサ30が増設された際には、MACアドレス付与ルールにしたがい、自動的に、該ロードバランサ30にMACアドレスが付与される。
ロードバランサ30は、上りパケットをL2スイッチ40経由でサーバ50へ転送する際、この上りパケットの送信元MACアドレスに、自装置のMACアドレスを設定し、転送する通信部を有する。また、ロードバランサ30が、L2スイッチ40経由でサーバ50からの下りパケットを受け取った際には、この下りパケットをL3スイッチ20経由で宛先のクライアント10等へ送信する。
L2スイッチ40は、各ロードバランサ30とサーバ群とを接続する。L2スイッチ40は、各ロードバランサ30からの上りパケットをサーバ50へ転送し、サーバ50からの下りパケットを宛先MACアドレスに対応するロードバランサ30へ転送する。
サーバ50は、例えば、クライアント10からの受信パケットに基づき種々の処理を行った後、この受信パケットの返信パケットを、クライアント10へ送信する。サーバ50は、返信パケットを送信する際、該受信パケットが経由したロードバランサ30を経由させる。
ここで、サーバ50における受信パケット(到着パケット)のL2ヘッダのSrc MACアドレス(送信元MACアドレス)には、ロードバランサ30(例えば、ロードバランサ30−1)のMACアドレスが設定され、Dst MACアドレス(宛先MACアドレス)にはサーバ50のMACアドレスが設定される。
そして、サーバ50では、予め、各ロードバランサ30のMACアドレスに対応させて、パケットのコネクションに付与する識別番号(MARK番号)を設定し、保持している。また、サーバ50では、予め、MARK番号に、ロードバランサのIPアドレスを対応付けて保持している。
サーバ50は、これらの保持情報を基に、パケット受信時には、受信したパケットのコネクションに、受信したパケットの送信元MACアドレスに対応するMARK番号を付与する。そして、サーバ50は、受信したパケットに対する返信パケットを送信する場合、受信したパケットのコネクションに付与されたMARK番号に対応するロードバランサ30のIPアドレスを取得し、該取得したロードバランサ30のIPアドレスに、L2スイッチ経由でパケットをルーティングする。
これによって、サーバ50は、上りパケットに対する下りパケット(返信パケット)を、上りパケットと同じロードバランサ30へ送信する。この結果、システムにおいてロードバランサ30のスケールアウトが行われた場合でも、クライアント10からサーバ50への上りパケットと、サーバ50からクライアント10への下りパケットとで同じロードバランサ30を経由させることができる。
このように、サーバ50では、ロードバランサ30のMACアドレスをユーザが指定し、さらに、送信元MACアドレスと、その戻りパケットのルーティングとを事前に設定しておくことによって、サーバ50に一切作業を行うことなく、ロードバランサのスケールアウトを行うことができる。したがって、通信制御システム1は、ロードバランサ30のスケールアウトを行う際に、上りパケットの負荷分散と、下りパケットと上りパケットとで同じロードバランサ30を経由させることを実現することができる。
[サーバの構成]
次に、図3を用いて、サーバ50の構成を説明する。図3は、図2に示すサーバ50の構成の一例を示す図である。図3に示すように、サーバ50は、通信部51、入出力部52、記憶部53及び制御部54を有する。
次に、図3を用いて、サーバ50の構成を説明する。図3は、図2に示すサーバ50の構成の一例を示す図である。図3に示すように、サーバ50は、通信部51、入出力部52、記憶部53及び制御部54を有する。
通信部51は、他の装置との間で、各種情報を送受信する通信インタフェースである。通信部51は、例えば、NIC(Network Interface Card)等で実現され、LAN(Local Area Network)やインターネットなどの電気通信回線を介した他の装置と制御部54(後述)との間の通信を行う。通信部51は、例えば、L2スイッチ40経由で上りパケットを受信したり、制御部54から出力された下りパケットをL2スイッチ40経由で送信したりする。
入出力部52は、サーバ50への各種情報の入出力を司る。入出力部52は、例えば、サーバ50への設定情報等の入力を受け付ける。
記憶部53は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、又は、ハードディスク、光ディスク等の記憶装置によって実現され、サーバ50を動作させる処理プログラムや、処理プログラムの実行中に使用されるデータなどが記憶される。記憶部53は、MAC/MARK番号対応表記憶部531、コネクション/MARK番号対応表記憶部532及びMARK番号/GW対応表記憶部533を有する。
MAC/MARK番号対応表記憶部531は、MAC/MARK番号対応表(第1の対応表)を記憶する。図4は、MAC/MARK番号対応表のデータ構成の一例を示す図である。図4に示すように、MAC/MARK番号対応表T531は、パケットのSrc MACアドレス(送信元MACアドレス)と、MARK番号(識別番号)とが対応付けられる。MAC/MARK番号対応表T531は、予め、ユーザによって設定され、MAC/MARK番号対応表記憶部531に記憶される。言い換えると、MAC/MARK番号対応表は、サーバ50に対して静的に設定された設定表である。
MAC/MARK番号対応表T531に示す送信元MACアドレスは、パケットの送信元であるロードバランサ30のMACアドレスである。MACアドレスは、ロードバランサ30ごとにそれぞれ割り当てられるものであり、予め設定されたMACアドレス付与ルールにしたがって設定される。例えば、ロードバランサ30−1には、Src MACアドレス「MC−LB−1」が設定されており、ロードバランサ30−2には、Src MACアドレス「MC−LB−2」が設定されており、ロードバランサ30−3には、Src MACアドレス「MC−LB−3」が設定される。
また、MAC/MARK番号対応表T531に示すMARK番号は、パケットのコネクションに付与される識別番号である。このMARK番号は、ロードバランサ30ごとに設定された番号であり、ロードバランサ30間で重複しなければ、どのような番号であってもよい。MAC/MARK番号対応表T531の例では、ロードバランサ30−1のSrc MACMACアドレス「MC−LB−1」には、MARK番号「1」が設定される。
なお、MACアドレスとMARK番号との対応付けは、ロードバランサ30の増設にも対応できるよう、現在設置されているロードバランサ30の数に限定するものではない。言い換えると、ユーザは、MACアドレスとして、ユーザが所望するものを所望数設定すればよく、それぞれのMACアドレスに、重複しないMARK番号を対応付けておけばよい。
コネクション/MARK番号対応表記憶部532は、コネクション/MARK番号対応表(第2の対応表)を記憶する。図5は、コネクション/MARK番号対応表のデータ構成の一例を示す図である。
図5に示すように、コネクション/MARK番号対応表T532は、パケット受信部543(後述)が受信したパケットのコネクションに対してMARK番号が記録される表である。
コネクション/MARK番号対応表T532のコネクション欄には、パケット受信時に、パケットのコネクションを識別するためのキー(src IP、dst IP、src port、dst port、protocol.no)が、パケット受信部543(後述)によって記録される。コネクション/MARK番号対応表T532のMARK番号欄には、キーによって識別されたパケットのコネクションに対応するMARK番号が、記録部545(後述)によって記録される。言い換えると、コネクション/MARK番号対応表は、サーバ50がパケット処理中に動的に追加削除を行うデータである。
MARK番号/GW対応表記憶部533は、MARK番号/GW対応表(第3の対応表)を記憶する。図6は、MARK番号/GW対応表のデータ構成の一例を示す図である。図6に示すように、MARK番号/GW対応表T533は、ルーティング先(GW)のIPアドレスとMARK番号とが対応付けられる。MARK番号/GW対応表T533は、予め設定され、MARK番号/GW対応表記憶部533に記憶される。言い換えると、MARK番号/GW対応表は、サーバ50に対して静的に設定された設定表である。
MARK番号/GW対応表T533のgateway欄には、各MARK番号に対応するパケットの宛先であるGWのFIPが設定される。例えば、MARK番号/GW対応表T533の例では、ロードバランサ30−1のSrc MACアドレス「MC−LB−1」には、MARK番号「1」には、ロードバランサ30−1のFIP「IP−LB−1」が設定される。
このように、サーバ50は、MARK番号を介して、ロードバランサ30のMACアドレスと、IPアドレスとを対応付けて記憶する。言い換えると、サーバ50は、MARK番号を介して、受信パケットの送信元のロードバランサ30のMACアドレスと、該パケットに対する返信パケットを送信する際に付与すべきロードバランサ30のIPアドレスと、を対応付けて保持する。
次に、制御部54について説明する。制御部54は、サーバ50全体を制御する。制御部54は、各種の処理手順などを規定したプログラム及び所要データを格納するための内部メモリを有し、これらによって種々の処理を実行する。例えば、制御部54は、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などの電子回路である。また、制御部54は、各種のプログラムが動作することにより各種の処理部として機能する。制御部54は、通信制御部541及びアプリケーション部542を有する。
通信制御部541は、パケットの受信、受信パケットのコネクションの記録、MARK番号の付与及び記録、送信パケットの宛先設定、パケットの送信を行う。通信制御部541は、パケット受信部543、付与部544、記録部545及びパケット送信部546を有する。
パケット受信部543は、通信部51経由で、当該サーバ50宛のパケット(上りパケット)を受信する。なお、この上りパケットの送信元MACアドレスには、当該上りパケットを転送したロードバランサ30のMACアドレスが設定される。また、パケット受信部543は、コネクション/MARK番号対応表記憶部532が記憶するコネクション/MARK番号対応表のコネクション欄に、受信したパケットのキー(src IP、dst IP、src port、dst port、protocol.no)を記録する。
付与部544は、MAC/MARK番号対応表記憶部531が記憶するMAC/MARK番号対応表を参照して、パケット受信部543が受信したパケットの送信元MACアドレスに対応するMARK番号を、該受信したパケットのコネクションに付与する。
記録部545は、コネクション/MARK番号対応表記憶部532が記憶するコネクション/MARK番号対応表に、受信したパケットのコネクションに対して付与部544が付与したMARK番号を記録する。記録部545は、コネクション/MARK番号対応表のMARK番号欄のうち、受信したパケットのコネクションキーに対応するMARK欄に、付与部544が付与したMARK番号を記録する。
パケット送信部546は、上りパケットに対する下りパケット(返信パケット)を通信部51経由で送信する。パケット送信部546は、受信したパケットに対する返信パケットを送信する場合、受信したパケットのコネクションに対応するMARK番号を、コネクション/MARK番号対応表から取得する。そして、パケット送信部546は、該取得したMARK番号に対応するロードバランサ30のIPアドレスを、MARK番号/GW対応表記憶部533が記憶するMARK番号/GW対応表から取得する。そして、パケット送信部546は、該取得したロードバランサ30のIPアドレスに、L2スイッチ経由でパケットをルーティングする。
なお、上記の上りパケットのコネクションとMARK番号との結びつけや、下りパケットに対する宛先IPアドレスの設定は、例えば、netfilterと呼ばれるLinux(登録商標) Kernelが持つAPIを用いる。具体的には、上りパケットのコネクションへのMARK番号の付与や下りパケットに対する宛先IPアドレスの付与は、iptablesのCONNMARKというOS(Operating System)の機能を用いる。そして、サーバ50は、MACアドレスとMRAK番号との対応を、iptablesコマンドを用いて予め設定しておく。
アプリケーション部542は、受信パケットに対し種々の処理を行う。例えば、パケット受信部543で受信した上りパケットに対し種々の処理を行い、その処理結果をパケット送信部546へ出力する。
[処理の流れ]
次に、図7を参照して、通信制御システム1におけるパケット処理の流れについて説明する。図7は、図2に示す通信制御システム1におけるパケット処理の流れについて説明する図である。通信制御システムには、N台のクライアント10が設置される。また、ロードバランサ30−1のMACアドレスは「MC−LB−1」であり、IPアドレスは「IP−LB−1」であるものとする。各ロードバランサ30−1〜30−3のMACアドレスは、ユーザが設定可能である。また、サーバ50は3台設置される。それぞれのサーバ50は、L2スイッチ40経由でロードバランサ30−1〜30−2に接続される。
次に、図7を参照して、通信制御システム1におけるパケット処理の流れについて説明する。図7は、図2に示す通信制御システム1におけるパケット処理の流れについて説明する図である。通信制御システムには、N台のクライアント10が設置される。また、ロードバランサ30−1のMACアドレスは「MC−LB−1」であり、IPアドレスは「IP−LB−1」であるものとする。各ロードバランサ30−1〜30−3のMACアドレスは、ユーザが設定可能である。また、サーバ50は3台設置される。それぞれのサーバ50は、L2スイッチ40経由でロードバランサ30−1〜30−2に接続される。
このような通信制御システムにおいて、L3スイッチ20がクライアント10から上りパケットを受信した場合を考える。この場合、まず、L3スイッチ20は、per−flow ECMPにより、当該パケットの転送先のロードバランサ30を決定する。これにより、上りパケットの処理負荷を各ロードバランサ30に分散させることができる。
例えば、L3スイッチ20が、上りパケットの転送先をロードバランサ30−1に決定した場合、L3スイッチ20は、この上りパケットをロードバランサ30−1に転送する。その後、ロードバランサ30−1は、転送されたパケットのL2ヘッダのSrc MACアドレス(送信元MACアドレス)を、自装置のMACアドレス「MC−LB−1」に設定して(枠W1参照)、L2スイッチ40へ送信する。
そして、サーバ50は、L2スイッチ40経由でこのパケット(上りパケット)を受信すると、この上りパケットのL2ヘッダから、Src MACアドレス(送信元MACアドレス)を読み出す。この送信元MACアドレスは、上りパケットを転送したロードバランサ30のMACアドレスである。そして、サーバ50は、MAC/MARK番号対応表T531(枠W2参照)を参照し、読み出したMACアドレスに対応するMARK番号を、受信したパケットのコネクションに付与する。例えば、サーバ50は、Src MACアドレスがMACアドレス「MC−LB−1」である上りパケットについては、MAC/MARK番号対応表T531(枠W2参照)を参照し、MARK番号「1」を付与する。
次に、サーバ50がアプリケーション部542からの要求に応じて、上記の上りパケットに対する下りパケットを送信する場合について説明する。この場合、サーバ50は、MARK番号に応じて下りパケットをルーティングする(枠W3参照)。具体的には、サーバ50は、受信したパケットのコネクションに付与されたMARK番号「1」に対応するロードバランサ30−1のIPアドレス「IP−LB−1」を、MARK番号/GW対応表T533(枠W3参照)から取得し(矢印Y1参照)、取得したロードバランサ30のIPアドレスに、L2スイッチ経由でパケットをルーティングする。
この際、サーバ50は、iptables CONNMARK機能を用いることで、パケット受信時に付与したMARK番号を、戻りパケット送信時に付与することが可能になる(図7の(1)参照)。そして、サーバ50は、戻りパケットに付与されているMARK番号に応じてルーティングを行うことで、上りパケット同じロードバランサ30−1に下りパケットをルーティング可能である(図7の(2)参照)。
これにより、サーバ50から送信された下りパケットは、上りパケットの経由したロードバランサ30−1に到達し、ロードバランサ30−1から、下りパケットの宛先のクライアント10に到達する。
このようにすることによって、通信制御システム1は、上りパケットの負荷を各ロードバランサ30に分散させることができ、また、下りパケットについて、上りパケットと同じロードバランサ30を経由させることができる。この結果、通信制御システム1は、ロードバランサ30のスケールアウトを実現することができる。
また、ロードバランサ30のMACアドレスは、MACアドレス付与ルールにしたがって自動的に設定される。そして、ユーザは、予め、サーバ50に、MACアドレス、MARK番号及びルーティング先(Gateway)の対応関係を静的に指定しておけば、ロードバランサ30のスケールアウト時に、サーバ50に作業を行う必要がない。したがって、通信制御システム1によれば、ロードバランサ30のスケールアウトを行うための設定作業の手間やコストを低減することができる。
[処理の流れの具体例]
次に、図8及び図9を参照して、サーバ50におけるパケットの送受信処理の流れについて説明する。図8及び図9は、図3に示すサーバ50におけるパケットの送受信処理の流れについて説明する図である。
次に、図8及び図9を参照して、サーバ50におけるパケットの送受信処理の流れについて説明する。図8及び図9は、図3に示すサーバ50におけるパケットの送受信処理の流れについて説明する図である。
まず、図8に示すように、ユーザは、予め、MACアドレスとMARK番号との対応をiptablesコマンドにより設定しておく(iptablesの設定値)(図8の枠W11内(A)参照)。具体的には、ユーザは、サーバ50に、ロードバランサ30のMACアドレスと識別番号であるMARK番号とを対応付けたMAC/MARK番号対応表T531(静的な設定値)(図8の枠W11参照)を設定する。
ここで、ユーザは、予めロードバランサにアサインするMACアドレスを決めて、それを設定しておく。この場合、ユーザは、所望の仮想MACアドレスを振り分けるために、VRRP(Virtual Router Redundancy Protocol)を使う必要がある(図8の(1)参照)。なお、パケットにつけるMARK番号は、ロードバランサ30同士で重複しなければなんでもよい(図8の(2)参照)。
また、ユーザは、予め、MARK番号と、GWのIPアドレスとを対応付けたMARK番号/GW対応表T533(静的な設定値)(図8の枠W12内(B)参照)を設定する。この場合、ユーザは、予め、今後のロードバランサにアサインするFIPを決めておき、それを設定しておく(図8の(3)参照)。
そして、サーバ50が実際にパケットを受信した場合には、サーバ50は、netfilter(MARK機能)が、MAC/MARK番号対応表T531を参照して、受信パケットP11の送信元MACアドレスに対応するMARK番号を取得する。続いて、サーバ50では、netfilter(CONNMARK機能)が、受信パケットP11についたMARK番号を、該受信パケットのコネクションに結び付ける(図8の(4)参照)。
続いて、Applicationから、受信パケットに対する処理結果に応じた送信パケットP12が出力されると、netfilter(CONNMARK機能)が、送信パケットにMARK番号を付ける(図8の(5)参照)。
ここで、サーバ50は、パケット受信時に付与したMARK番号をパケット送信時に引き継がなければならないが、下記のような動的なテーブル(コネクション/MARK番号対応表T532)を用いて行う(図9の(6)参照)。図の例だと、サーバ50は、iptablesのCONNMARKという機能を用いる。
具体的には、サーバ50は、CONNMARK機能を用いて、受信パケットP11の送信元MACアドレス「MC−LB−1」に対応するMARK番号「1」(枠W11の領域R1参照)を取得し、コネクション/MARK番号対応表T532の、コネクションを一意に識別するキーK1のMARK欄に、取得した「1」を記録する(図9のR2参照)(図9の(7)参照)。
そして、サーバ50は、受信パケットに付与されたMARK番号に基づいてPolicy Routingを行う(図9の枠W12内(B)参照)。この際、サーバ50は、MRAK番号「1」のGWのFIPアドレス「IP−LB−1」を取得して(図9の(8)参照)、このIPアドレス「IP−LB−1」に、L2スイッチ経由で送信パケットをルーティングする(図9の(9)参照)。
[パケット受信処理の処理手順]
次に、サーバ50におけるパケット受信処理の処理手順について説明する。図10は、図3に示すサーバ50におけるパケット受信処理の処理手順を示すフローチャートである。
次に、サーバ50におけるパケット受信処理の処理手順について説明する。図10は、図3に示すサーバ50におけるパケット受信処理の処理手順を示すフローチャートである。
図10に示すように、パケット受信部543がパケットを受信すると(ステップS1)、付与部544は、MAC/MARK番号対応表を参照して(ステップS2)、パケット受信部543が受信パケットの送信元MACアドレスに対応するMARK番号を、該受信パケットのコネクションに付与する(ステップS3)。続いて、記録部545は、コネクション/MARK番号対応表に、受信したパケットのコネクションに対して付与されたMARK番号を記録する(ステップS4)。
[パケット送信処理の処理手順]
次に、サーバ50におけるパケット送信処理の処理手順について説明する。図11は、図3に示すサーバ50におけるパケット送信処理の処理手順を示すフローチャートである。
次に、サーバ50におけるパケット送信処理の処理手順について説明する。図11は、図3に示すサーバ50におけるパケット送信処理の処理手順を示すフローチャートである。
図11に示すように、パケット送信部546は、受信したパケットに対する返信パケットの送信指示を受けると(ステップS11)、コネクション/MARK番号対応表を参照し(ステップS12)、コネクション/MARK番号対応表から、受信したパケットのコネクションに対応するMARK番号を取得する(ステップS13)。
パケット送信部546は、MARK番号/GW対応表を参照し(ステップS14)、該取得したMARK番号に対応するロードバランサ30のIPアドレスを取得する(ステップS15)。パケット送信部546は、該取得したロードバランサ30のIPアドレスに、L2スイッチ経由でパケットをルーティングする(ステップS16)。
[実施の形態の効果]
次に、実施の形態に係る通信制御システム1の効果を、既存技術であるロードバランサのスケールアップ及びDNSラウンドロビンによるロードバランサのスケールアウトと対比しながら説明する。図12は、ロードバランサのスケールアップ及びDNSラウンドロビンによるロードバランサのスケールアウトの一例を示す図である。
次に、実施の形態に係る通信制御システム1の効果を、既存技術であるロードバランサのスケールアップ及びDNSラウンドロビンによるロードバランサのスケールアウトと対比しながら説明する。図12は、ロードバランサのスケールアップ及びDNSラウンドロビンによるロードバランサのスケールアウトの一例を示す図である。
ロードバランサのスケールアップは、例えば、図12の(a)に示すように、既存のロードバランサ30−4をより性能の高いロードバランサ30−5にリプレースする、または、既存のロードバランサ30−4に対しモジュールを追加することにより行われる。
また、DNSラウンドロビンによるロードバランサのスケールアウトは、図12の(b)に示すように、同一ドメインに対する解決先VIP(例えば、VIP3)を増やし、DNSラウンドロビンによる負荷分散を行う。例えば、ロードバランサ30−6(VIP1)、ロードバランサ30−7(VIP2)に対し、ロードバランサ30−8を追加した場合、このロードバランサ30−8にVIP3を設定する。また、ロードバランサ30−8を追加した場合、ロードバランサ30−6,30−7,30−8間で、各ロードバランサ30の配下のサーバ群のグルーピングを再度行う。
(1)スケール作業時間について
ロードバランサ30−4のスケールアップを行う場合、ロードバランサ配下の全サーバ50のGW変更が必要である。また、DNSラウンドロビンによりロードバランサ30のスケールアウトを行う場合、追加ロードバランサに組み込むサーバ全台とDNSの作業が必要である。これに対し、本実施の形態では、ロードバランサ30を追加するのみで足りる。
ロードバランサ30−4のスケールアップを行う場合、ロードバランサ配下の全サーバ50のGW変更が必要である。また、DNSラウンドロビンによりロードバランサ30のスケールアウトを行う場合、追加ロードバランサに組み込むサーバ全台とDNSの作業が必要である。これに対し、本実施の形態では、ロードバランサ30を追加するのみで足りる。
(2)設定作業及び設定コストについて
ロードバランサ30−4のスケールアップを行う場合、サーバ群のGWの設定変更が必要であり、DNSラウンドロビンによりロードバランサ30のスケールアウトを行う場合、追加するロードバランサ30−8に割り当てるサーバ群の設定と、DNSサーバの設定変更が必要である。これに対し、本実施の形態では、ロードバランサ30のMACアドレスは、MACアドレス付与ルールにしたがって自動的に設定される。そして、本実施の形態は、ユーザは、MAC/MARK番号対応表及びMARK番号/GW対応表を予め設定するのみでよく、ロードバランサ30のスケールアウト時に、サーバ50に作業を行わずともよい。
ロードバランサ30−4のスケールアップを行う場合、サーバ群のGWの設定変更が必要であり、DNSラウンドロビンによりロードバランサ30のスケールアウトを行う場合、追加するロードバランサ30−8に割り当てるサーバ群の設定と、DNSサーバの設定変更が必要である。これに対し、本実施の形態では、ロードバランサ30のMACアドレスは、MACアドレス付与ルールにしたがって自動的に設定される。そして、本実施の形態は、ユーザは、MAC/MARK番号対応表及びMARK番号/GW対応表を予め設定するのみでよく、ロードバランサ30のスケールアウト時に、サーバ50に作業を行わずともよい。
(3)サーバ分割損について
上記のロードバランサ30−4のスケールアップを行う場合、サーバ群の再分割は発生しないのでいわゆるサーバの分割損は発生しないが、DNSラウンドロビンによりロードバランサ30のスケールアウトを行う場合、30−6,30−7,30−8に対し割り当てるサーバ群の再グルーピングを行う必要があるのでサーバの分割損が発生する。一方、本実施形態のシステムの場合、上記のサーバ分割損は発生しない。
上記のロードバランサ30−4のスケールアップを行う場合、サーバ群の再分割は発生しないのでいわゆるサーバの分割損は発生しないが、DNSラウンドロビンによりロードバランサ30のスケールアウトを行う場合、30−6,30−7,30−8に対し割り当てるサーバ群の再グルーピングを行う必要があるのでサーバの分割損が発生する。一方、本実施形態のシステムの場合、上記のサーバ分割損は発生しない。
(4)切り戻しについて
上記のロードバランサ30−4のスケールアップを行う場合において、切り戻しを行う際には長い時間を要する。また、DNSラウンドロビンによりロードバランサ30のスケールアウトを行う場合において、切り戻しを行う際には、DNSサーバのレコード削除とサーバの戻し作業が発生するため作業の手間がかかる。また、DNSサーバのキャッシュのTTL(Time To Live)があるため、作業結果の反映にも時間がかかる。一方、本実施形態のシステムの場合、切り戻しを行う際には、L3スイッチ20のルーティング情報を削除すればよいので切り戻しに要する作業は少ない。
上記のロードバランサ30−4のスケールアップを行う場合において、切り戻しを行う際には長い時間を要する。また、DNSラウンドロビンによりロードバランサ30のスケールアウトを行う場合において、切り戻しを行う際には、DNSサーバのレコード削除とサーバの戻し作業が発生するため作業の手間がかかる。また、DNSサーバのキャッシュのTTL(Time To Live)があるため、作業結果の反映にも時間がかかる。一方、本実施形態のシステムの場合、切り戻しを行う際には、L3スイッチ20のルーティング情報を削除すればよいので切り戻しに要する作業は少ない。
(5)サーバのオーバーヘッド
上記のロードバランサ30−4のスケールアップを行う場合及びDNSラウンドロビンによりロードバランサ30のスケールアウトを行う場合において、サーバのオーバーヘッドは発生しない。本実施の形態では、パケットごとにテーブル読み書き等は行わないため、サーバのオーバーヘッドは発生しない。
上記のロードバランサ30−4のスケールアップを行う場合及びDNSラウンドロビンによりロードバランサ30のスケールアウトを行う場合において、サーバのオーバーヘッドは発生しない。本実施の形態では、パケットごとにテーブル読み書き等は行わないため、サーバのオーバーヘッドは発生しない。
(6)開発要否
上記のロードバランサ30−4のスケールアップを行う場合及びDNSラウンドロビンによりロードバランサ30のスケールアウトを行う場合において、プログラム製造は不要である。本実施の形態では、iptables(CONNMARK)等、主要なLinuxディストリビューションが持つ機能のみで実現可能であるため、新たにプログラムを製造する必要はない。
上記のロードバランサ30−4のスケールアップを行う場合及びDNSラウンドロビンによりロードバランサ30のスケールアウトを行う場合において、プログラム製造は不要である。本実施の形態では、iptables(CONNMARK)等、主要なLinuxディストリビューションが持つ機能のみで実現可能であるため、新たにプログラムを製造する必要はない。
以上説明したとおり、本実施の形態では、サーバ50に、ロードバランサ30のMACアドレスをユーザが指定し、さらに、送信元MACアドレスと、その戻りパケットのルーティングを事前に設定しておく。これによって、本実施の形態では、ユーザは、サーバ50に一切作業を行うことなく、ロードバランサのスケールアウト(もしくは故障/切り離し)を行うことができるようになる。この結果、本実施の形態によれば、ロードバランサ30のスケールアウトを行うための設定作業の手間やコストを低減することができる。
また、本実施の形態では、静的にMACアドレスの情報を設定しておくことによって、パケットごとの処理負荷を低減することができる。また、本実施の形態では、テーブルの並列操作のような複雑な機構を用いる必要もない。そして、本実施の形態によれば、ロードバランサ30の配下のサーバ群の分割損も発生せず、また切り戻しを行う際の設定作業及び設定コストも低減することができる。
なお、図13は、図3に示す記憶部53が記憶する対応表のデータ構成の一例を示す図である。本実施の形態では、サーバ50が、MAC/MARK番号対応表及びMARK番号/GW対応表をそれぞれ保持する場合を例に説明したが、これに限らない。サーバ50は、例えば、図13に示す対応表T531´のように、ロードバランサ30のMACアドレス、MARK番号及びGWのIP番号を対応付けた対応表のみを保持していてもよい。
[その他の実施の形態]
なお、典型的なクライアント〜サーバ間のネットワーク構成として、クライアント−ファイアウォール−ロードバランサ−サーバという構成がある。このような構成において、ファイアウォールのスケールアウトを行う場合もある。ここで、ファイアウォールもステートフルな装置であるので、上記の構成においてファイアウォールのスケールアウトを行う場合に、ロードバランサに上記の実施の形態で述べた技術を適用してもよい。つまり、図1に示したシステム構成図における、第1の通信装置をファイアウォール、第2の通信装置をロードバランサとしてもよい。
なお、典型的なクライアント〜サーバ間のネットワーク構成として、クライアント−ファイアウォール−ロードバランサ−サーバという構成がある。このような構成において、ファイアウォールのスケールアウトを行う場合もある。ここで、ファイアウォールもステートフルな装置であるので、上記の構成においてファイアウォールのスケールアウトを行う場合に、ロードバランサに上記の実施の形態で述べた技術を適用してもよい。つまり、図1に示したシステム構成図における、第1の通信装置をファイアウォール、第2の通信装置をロードバランサとしてもよい。
この場合、第2の通信装置であるロードバランサは、ファイアウォールのMACアドレスとMARK番号とが対応付けられたMAC/MARK番号対応表、及び、MARK番号/GW対応表を保持する。ファイアウォール経由で受信したパケット(受信パケット)のL2ヘッダに設定された送信元MACアドレスにより、当該受信パケットの送信元MACアドレス(つまり、当該受信パケットが経由したファイアウォールのMACアドレス)を得る。
そして、ロードバランサは、当該受信パケットの送信元MACアドレスに対応するMARK番号を取得する。そして、ロードバランサは、当該受信パケットに対する返信パケットをファイアウォール側へ送信する際、当該受信パケットのMARK番号に対応するGWのIPアドレスを取得し、このIPアドレスに、L2スイッチ40経由でパケットをルーティングする。これにより、返信パケット(下りパケット)は、当該受信パケット(上りパケット)が経由したファイアウォールと同じファイアウォールに到達する。つまり、システムにおいてファイアウォールのスケールアウトが行われた場合でも、上りパケットと下りパケットとで同じファイアウォールを経由させることができる。
[システム構成等]
図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部又は任意の一部が、CPU及び当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部又は任意の一部が、CPU及び当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
また、本実施の形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的に行なうこともでき、あるいは、手動的に行なわれるものとして説明した処理の全部又は一部を公知の方法で自動的に行なうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
[プログラム]
図14は、プログラムが実行されることにより、サーバ50が実現されるコンピュータの一例を示す図である。コンピュータ1000は、例えば、メモリ1010、CPU1020を有する。また、コンピュータ1000は、ハードディスクドライブインタフェース1030、ディスクドライブインタフェース1040、シリアルポートインタフェース1050、ビデオアダプタ1060、ネットワークインタフェース1070を有する。これらの各部は、バス1080によって接続される。
図14は、プログラムが実行されることにより、サーバ50が実現されるコンピュータの一例を示す図である。コンピュータ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を記憶する。すなわち、サーバ50の各処理を規定するプログラムは、コンピュータにより実行可能なコードが記述されたプログラムモジュール1093として実装される。プログラムモジュール1093は、例えばハードディスクドライブ1090に記憶される。例えば、サーバ50における機能構成と同様の処理を実行するためのプログラムモジュール1093が、ハードディスクドライブ1090に記憶される。なお、ハードディスクドライブ1090は、SSD(Solid State Drive)により代替されてもよい。
また、上述した実施形態の処理で用いられる設定データは、プログラムデータ1094として、例えばメモリ1010やハードディスクドライブ1090に記憶される。そして、CPU1020が、メモリ1010やハードディスクドライブ1090に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出して実行する。
なお、プログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1090に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ1100等を介してCPU1020によって読み出されてもよい。あるいは、プログラムモジュール1093及びプログラムデータ1094は、ネットワーク(LAN、WAN(Wide Area Network)等)を介して接続された他のコンピュータに記憶されてもよい。そして、プログラムモジュール1093及びプログラムデータ1094は、他のコンピュータから、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
以上、本発明者によってなされた発明を適用した実施形態について説明したが、本実施形態による本発明の開示の一部をなす記述及び図面により本発明は限定されることはない。すなわち、本実施形態に基づいて当業者等によりなされる他の実施形態、実施例及び運用技術等は全て本発明の範疇に含まれる。
1 通信制御システム
10 クライアント
20 L3スイッチ
30,30−1〜30−8 ロードバランサ
40 L2スイッチ
50 サーバ
51 通信部
52 入出力部
53 記憶部
54 制御部
531 MAC/MARK番号対応表記憶部
532 コネクション/MARK番号対応表記憶部
533 MARK番号/GW対応表記憶部
541 通信制御部
542 アプリケーション部
543 パケット受信部
544 付与部
545 記録部
546 パケット送信部
10 クライアント
20 L3スイッチ
30,30−1〜30−8 ロードバランサ
40 L2スイッチ
50 サーバ
51 通信部
52 入出力部
53 記憶部
54 制御部
531 MAC/MARK番号対応表記憶部
532 コネクション/MARK番号対応表記憶部
533 MARK番号/GW対応表記憶部
541 通信制御部
542 アプリケーション部
543 パケット受信部
544 付与部
545 記録部
546 パケット送信部
Claims (5)
- L2(レイヤ2)スイッチにより接続され、L3(レイヤ3)終端を行ういずれかの第1の通信装置経由でパケットの送受信を行う第2の通信装置であって、
前記L2スイッチ経由でいずれかの前記第1の通信装置から、送信元MAC(Media Access Control)アドレスにパケットの送信元である前記第1の通信装置のMACアドレスが設定されたパケットを受信するパケット受信部と、
前記第1の通信装置のMACアドレスと前記パケットのコネクションに付与される識別番号とが対応付けられた第1の対応表と、前記パケット受信部が受信したパケットのコネクションに対して前記識別番号が記録される第2の対応表と、前記第1の通信装置のIPアドレスと前記識別番号とが対応付けられた第3の対応表と、を記憶する記憶部と、
前記第1の対応表を参照して、前記パケット受信部が受信したパケットのコネクションに対し、前記受信したパケットの送信元MACアドレスに対応する前記識別番号を付与する付与部と、
前記第2の対応表に、前記受信したパケットのコネクションに対して前記付与部が付与した前記識別番号を記録する記録部と、
前記受信したパケットに対する返信パケットを送信する場合、前記受信したパケットのコネクションに対応する識別番号を前記第2の対応表から取得し、該取得した識別番号に対応する前記第1の通信装置のIPアドレスを前記第3の対応表から取得し、該取得した前記第1の通信装置のIPアドレスに、前記L2スイッチ経由でパケットをルーティングするパケット送信部と、
を有することを特徴とする通信装置。 - 1以上の第1の通信装置のうちいずれかの第1の通信装置へパケットの転送を行うL3(レイヤ3)スイッチと、L3終端を行う前記1以上の第1の通信装置と、L2(レイヤ2)スイッチにより接続されたいずれかの第1の通信装置経由でパケットの送受信を行う第2の通信装置とを備える通信制御システムであって、
各第1の通信装置は、
受信したパケットを転送する際、送信元MAC(Media Access Control)アドレスに、自装置の第1の通信装置のMACアドレスを設定して転送する通信部を有し、
前記第2の通信装置は、
前記L2スイッチ経由でいずれかの前記第1の通信装置から、送信元MACアドレスにパケットの送信元である前記第1の通信装置のMACアドレスが設定されたパケットを受信するパケット受信部と、
前記第1の通信装置のMACアドレスと前記パケットのコネクションに付与される識別番号とが対応付けられた第1の対応表と、前記パケット受信部が受信したパケットのコネクションに対して前記識別番号が記録される第2の対応表と、前記第1の通信装置のIPアドレスと前記識別番号とが対応付けられた第3の対応表と、を記憶する記憶部と、
前記第1の対応表を参照して、前記パケット受信部が受信したパケットのコネクションに対し、前記受信したパケットの送信元MACアドレスに対応する前記識別番号を付与する付与部と、
前記第2の対応表に、前記受信したパケットのコネクションに対して前記付与部が付与した前記識別番号を記録する記録部と、
前記受信したパケットに対する返信パケットを送信する場合、前記受信したパケットのコネクションに対応する識別番号を前記第2の対応表から取得し、該取得した識別番号に対応する前記第1の通信装置のIPアドレスを前記第3の対応表から取得し、該取得した前記第1の通信装置のIPアドレスに、前記L2スイッチ経由でパケットをルーティングするパケット送信部と、
を有することを特徴とする通信制御システム。 - 前記第1の通信装置の前記MACアドレスは、予め設定されたMACアドレス付与ルールにしたがって設定されることを特徴とする請求項2に記載の通信制御システム。
- L2(レイヤ2)スイッチにより接続され、L3(レイヤ3)終端を行ういずれかの第1の通信装置経由でパケットの送受信を行う第2の通信装置が実行する通信制御方法であって、
前記第2の通信装置は、前記第1の通信装置のMAC(Media Access Control)アドレスと前記パケットのコネクションに付与される識別番号とが対応付けられた第1の対応表と、受信したパケットのコネクションに対して前記識別番号が記録される第2の対応表と、前記第1の通信装置のIPアドレスと前記識別番号とが対応付けられた第3の対応表と、を記憶する記憶部を有し、
前記L2スイッチ経由でいずれかの前記第1の通信装置から、送信元MACアドレスにパケットの送信元である前記第1の通信装置のMACアドレスが設定されたパケットを受信する工程と、
前記第1の対応表を参照して、受信したパケットのコネクションに対し、前記受信したパケットの送信元MACアドレスに対応する前記識別番号を付与する工程と、
前記第2の対応表に、前記受信したパケットのコネクションに対して付与された前記識別番号を記録する工程と、
前記受信したパケットに対する返信パケットを送信する場合、前記受信したパケットのコネクションに対応する識別番号を前記第2の対応表から取得し、該取得した識別番号に対応する前記第1の通信装置のIPアドレスを前記第3の対応表から取得し、該取得した前記第1の通信装置のIPアドレスに、前記L2スイッチ経由でパケットをルーティングする工程と、
を含んだことを特徴とする通信制御方法。 - コンピュータを、請求項1に記載の通信装置として機能させるための通信制御プログラム。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018062554A JP6705857B2 (ja) | 2018-03-28 | 2018-03-28 | 通信装置、通信制御システム、通信制御方法及び通信制御プログラム |
US17/042,015 US11595304B2 (en) | 2018-03-28 | 2019-03-26 | Communication device, communication control system, communication control method, and communication control program |
PCT/JP2019/012818 WO2019189156A1 (ja) | 2018-03-28 | 2019-03-26 | 通信装置、通信制御システム、通信制御方法及び通信制御プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018062554A JP6705857B2 (ja) | 2018-03-28 | 2018-03-28 | 通信装置、通信制御システム、通信制御方法及び通信制御プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2019176323A JP2019176323A (ja) | 2019-10-10 |
JP6705857B2 true JP6705857B2 (ja) | 2020-06-03 |
Family
ID=68058973
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018062554A Active JP6705857B2 (ja) | 2018-03-28 | 2018-03-28 | 通信装置、通信制御システム、通信制御方法及び通信制御プログラム |
Country Status (3)
Country | Link |
---|---|
US (1) | US11595304B2 (ja) |
JP (1) | JP6705857B2 (ja) |
WO (1) | WO2019189156A1 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11811674B2 (en) | 2018-10-20 | 2023-11-07 | Netapp, Inc. | Lock reservations for shared storage |
JP2020136743A (ja) * | 2019-02-13 | 2020-08-31 | 日本電信電話株式会社 | 通信制御装置、通信制御プログラム、通信制御システム及び通信制御方法 |
CN113422844B (zh) * | 2021-06-21 | 2022-12-27 | 浪潮云信息技术股份公司 | 一种实现双活网络地址转换网关的方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2003009539A1 (fr) * | 2001-07-10 | 2003-01-30 | Fujitsu Limited | Systeme de communication a terminal mobile et procede de communication |
US7380002B2 (en) * | 2002-06-28 | 2008-05-27 | Microsoft Corporation | Bi-directional affinity within a load-balancing multi-node network interface |
JP5660049B2 (ja) * | 2009-12-17 | 2015-01-28 | 日本電気株式会社 | 負荷分散システム、負荷分散方法、負荷分散システムを構成する装置およびプログラム |
JP2012099961A (ja) * | 2010-10-29 | 2012-05-24 | Mitsubishi Electric Corp | ゲートウェイ装置およびsip応答経路確立方法 |
JP6032031B2 (ja) * | 2013-01-30 | 2016-11-24 | 富士通株式会社 | 中継装置 |
JP6364761B2 (ja) * | 2013-12-18 | 2018-08-01 | 日本電気株式会社 | ネットワークシステムおよび通信方法 |
JP2016158011A (ja) * | 2015-02-23 | 2016-09-01 | ルネサスエレクトロニクス株式会社 | 配信制御装置、データ配信システム、配信制御方法及びプログラム |
CN107026890B (zh) * | 2016-02-02 | 2020-10-09 | 华为技术有限公司 | 一种基于服务器集群的报文生成方法和负载均衡器 |
-
2018
- 2018-03-28 JP JP2018062554A patent/JP6705857B2/ja active Active
-
2019
- 2019-03-26 US US17/042,015 patent/US11595304B2/en active Active
- 2019-03-26 WO PCT/JP2019/012818 patent/WO2019189156A1/ja active Application Filing
Also Published As
Publication number | Publication date |
---|---|
US20210044523A1 (en) | 2021-02-11 |
JP2019176323A (ja) | 2019-10-10 |
WO2019189156A1 (ja) | 2019-10-03 |
US11595304B2 (en) | 2023-02-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11502920B1 (en) | Multi-carrier access to provider substrate extensions | |
US11409550B2 (en) | Low latency connections to workspaces in a cloud computing environment | |
CN109937401B (zh) | 经由业务旁路进行的负载均衡虚拟机的实时迁移 | |
US11848800B2 (en) | Connecting virtual computer networks with overlapping IP addresses using transit virtual computer network | |
CN111512611B (zh) | Mptcp感知的负载均衡器的设计方法和使用该设计的负载均衡器 | |
US20180139101A1 (en) | Flow sate transfer for live migration of virtual machine | |
US20090063706A1 (en) | Combined Layer 2 Virtual MAC Address with Layer 3 IP Address Routing | |
US11470047B1 (en) | Managed virtual networks for computing cloud edge locations | |
JP6705857B2 (ja) | 通信装置、通信制御システム、通信制御方法及び通信制御プログラム | |
US11159344B1 (en) | Connectivity of cloud edge locations to communications service provider networks | |
US11070475B2 (en) | Transparent migration of virtual network functions | |
JP6693925B2 (ja) | サーバ、通信制御システム、および、通信制御方法 | |
Chen et al. | A scalable multi-datacenter layer-2 network architecture | |
US11516125B2 (en) | Handling packets travelling towards logical service routers (SRs) for active-active stateful service insertion | |
US11595347B1 (en) | Dual-stack network addressing in cloud provider network edge locations | |
KR20230108254A (ko) | 인라인 투명 컴퓨터 네트워킹 장치의 효율적인 가상화를 위한 방법 및 시스템 | |
Cisco | Configuring CLAW and TCP/IP Offload Support | |
WO2020166362A1 (ja) | 通信制御装置、通信制御プログラム、通信制御システム及び通信制御方法 | |
WO2020254838A1 (en) | Large scale nat system | |
US20240205051A1 (en) | Resource sharing between cloud-hosted virtual networks | |
Marttila | Design and Implementation of the clusterf Load Balancer for Docker Clusters | |
US20160381132A1 (en) | Sysplexport allocation across a z/os sysplex | |
CN116457756A (zh) | 用于内联透明计算机网络设备的高效虚拟化的方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20190801 |
|
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: 20200512 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20200514 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6705857 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |