JP2013013032A - 通信制御方法および通信制御プログラム - Google Patents

通信制御方法および通信制御プログラム Download PDF

Info

Publication number
JP2013013032A
JP2013013032A JP2011146055A JP2011146055A JP2013013032A JP 2013013032 A JP2013013032 A JP 2013013032A JP 2011146055 A JP2011146055 A JP 2011146055A JP 2011146055 A JP2011146055 A JP 2011146055A JP 2013013032 A JP2013013032 A JP 2013013032A
Authority
JP
Japan
Prior art keywords
router
virtual
switch
packet
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.)
Withdrawn
Application number
JP2011146055A
Other languages
English (en)
Inventor
Yuichi Zokumasui
雄一 属増
Takashi Kishibe
高志 岸部
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2011146055A priority Critical patent/JP2013013032A/ja
Publication of JP2013013032A publication Critical patent/JP2013013032A/ja
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】1組の通信装置の双方がリンクアグリゲーション機能を実装していなくても、複数の物理リンクを利用して通信容量を拡張できる通信制御方法を提供する。
【解決手段】複数の仮想IPアドレス/仮想MACアドレスが割り当てられている、複数のルータポートを有するルータは、L2スイッチから、宛先情報として第1の仮想IPアドレス/第1の仮想MACアドレスが設定されたパケットを受信する。ルータは、仮想IPアドレスと、仮想MACアドレスと、ルータポートとの対応関係を管理するテーブルを、第1の仮想IPアドレス/第1の仮想MACアドレスで参照して対応するルータポートを特定する。ルータは、特定したルータポートに対応する、L2スイッチが有する複数のスイッチポートの中の1つへ、第1の仮想MACアドレスを通知することにより、L2スイッチに、第1の仮想MACアドレスに対応するスイッチポートを認識させる。
【選択図】図11

Description

本発明は、複数の物理リンクを利用する通信を制御する方法およびそのためのプログラムに係わる。
通信容量の増加に対応するために、通信装置間に複数の物理リンクを設置し、それら複数の物理リンクを利用してデータ通信を行う構成が知られている。そのような技術の1つとして、複数の物理リンクを束ねて使用するリンクアグリゲーションが提案されている。リンクアグリゲーションに係わる規格は、例えば、IEEE 802.3ad Link Aggregationが存在する。
リンクアグリゲーションでは、通信を行う装置間(例えば、ルータとL2スイッチとの間)で使用するインタフェース、分散アルゴリズムなどが定義される。この場合、ルータとL2スイッチとの間のトラフィックは、所定のアルゴリズムに従って分散される。
リンクアグリゲーションの論理ポートを構成する複数の物理ポートにトラフィックを分散させるために、ハッシュ関数を用いて受信パケットの宛先アドレス及び送信元アドレスからハッシュ値を計算し、宛先の物理ポートを決定する装置が提案されている。この装置は、複数の物理ポートのそれぞれからのパケットの出力流量を計測する計測手段と、計測された出力流量について複数の物理ポート間の流量比を算出する算出手段と、算出された流量比を複数の物理ポート間の帯域分配比率にフィードバックして宛先の物理ポートを決定するためのハッシュ値の個数割当ての変更を行う制御手段と備える。(例えば、特許文献1)
また、特許文献2には、関連する技術が記載されている。
特開2006−5437号公報 特開2010−114657号公報
しかしながら、リンクアグリゲーションを採用する従来の通信システムにおいては、例えば、パケット毎にハッシュ計算が行われ、そのハッシュ値に応じてそのパケットを伝送する物理リンクが決定される。このため、ネットワーク設計者またはネットワーク管理者は、トラフィックがどの物理リンクを経由しているのかを正確に把握することは困難である。例えば、同じIPアドレス宛の通信であっても、送信元が異なるときには、その通信のトラフィックが異なる物理リンクに分散されてしまうことがある。あるいは、1組の装置(ここでは、装置Aおよび装置Bと呼ぶ。)間の通信であっても、装置Aから装置Bへのトラフィックと、装置Bから装置Aへのトラフィックが、異なる物理リンクに割り当てられることがある。
また、リンクアグリゲーションを採用する従来の通信システムにおいては、通信を行う1組の装置の双方が、複数の物理リンクを同一の論理リンクとして認識する必要がある。すなわち、通信を行う1組の装置の双方は、リンクアグリゲーション機能をサポートしている必要がある。この場合、通信装置および/または通信ソフトウェアを実装するためのコストが高額になるおそれがある。
本発明の課題は、通信を行う1組の装置の双方が複数の物理リンクを束ねて通信を行うための機能を実装していなくても、複数の物理リンクを利用して通信容量を拡張できる通信制御方法を提供することである。
本発明の1つの態様の通信制御方法においては、複数の仮想IPアドレスおよび前記複数の仮想IPアドレスに対応する複数の仮想MACアドレスが割り当てられている、複数のルータポートを有するルータは、L2スイッチから、宛先情報として第1の仮想IPアドレスおよび前記第1の仮想IPアドレスに対応する第1の仮想MACアドレスが設定されたパケットを、前記複数のルータポートの中の1つを介して受信する。前記ルータは、前記ルータの記憶部に記憶されている、前記複数の仮想IPアドレスと、前記複数の仮想MACアドレスと、前記複数のルータポートとの対応関係を管理するテーブルを、前記第1の仮想IPアドレスまたは前記第1の仮想MACアドレスの少なくとも一方で参照して、対応するルータポートを特定する。前記ルータは、前記特定したルータポートに対応する、前記L2スイッチが有する複数のスイッチポートの中の1つへ、前記第1の仮想MACアドレスを通知するパケットを送信することにより、前記L2スイッチに、前記第1の仮想MACアドレスに対応するスイッチポートを認識させる。
上述の態様によれば、通信を行う1組の装置の双方が複数の物理リンクを束ねて通信を行うための機能を実装していなくても、複数の物理リンクを利用して通信容量を拡張できる。
実施形態の通信制御方法が使用される通信システムの一例を示す図である。 ルータの構成を示す図である。 ルータの機能を説明する機能ブロック図である。 管理テーブルの一例を示す図である。 通信システムにおいて伝送されるパケットの形式を示す図である。 学習テーブルを作成する手順を説明する図(その1)である。 学習テーブルを作成する手順を説明する図(その2)である。 学習テーブルを作成する手順を説明する図(その3)である。 学習テーブルを作成する手順を説明する図(その4)である。 学習テーブルを作成する手順を説明する図(その5)である。 学習テーブルを作成する手順を説明する図(その6)である。 学習テーブルを作成する手順を説明する図(その7)である。 学習テーブルを作成する手順を説明する図(その8)である。 学習テーブルを作成する手順を説明する図(その9)である。 L2スイッチからパケットを受信したときのルータの処理を示すフローチャートである。 パケット送信時のルータの処理を示すフローチャートである。 物理リンクに障害が発生したときの処理を示す図(その1)である。 物理リンクに障害が発生したときの処理を示す図(その2)である。 G−ARPパケットの形式を示す図である。 リンクダウン時のルータの処理を示すフローチャートである。 リンクアップ時のルータの処理を示すフローチャートである。
図1は、実施形態の通信制御方法が使用される通信システムの一例を示す。図1に示す通信システム1は、パケットを伝送するパケット網であり、L2スイッチ10およびルータ20を含む。
L2スイッチ10は、レイヤ2の宛先情報に基づいてパケットのルートを制御する通信機器である。レイヤ2の宛先情報は、通信システム1では、MACアドレスである。すなわち、L2スイッチ10は、受信パケットのヘッダに設定されている宛先MACアドレスに応じて、そのパケットを宛先に向かうリンクへ出力する。
ルータ20は、レイヤ3の宛先情報に基づいてパケットのルートを制御する通信機器である。レイヤ3の宛先情報は、通信システム1では、IPアドレスである。すなわち、ルータ20は、受信パケットのヘッダに設定されている宛先IPアドレスに応じて、そのパケットを宛先に向かうリンクへ出力する。
L2スイッチ10とルータ20との間には、複数の物理リンク#0〜#nが設けられている。各物理リンクは、例えば、光ファイバ回線またはメタル回線である。そして、L2スイッチ10およびルータ20は、物理リンク#0〜#nを利用してパケットを送受信することができる。このとき、L2スイッチ10およびルータ20は、複数の物理リンク#0〜#nを、1本の論理リンクとして使用することができる。すなわち、L2スイッチ10およびルータ20は、複数の物理リンクを束ねて1本の論理リンクとして使用するリンクアグリゲーションを行う。ただし、後で詳しく説明するが、L2スイッチ10は、リンクアグリゲーションを実現するための専用の構成またはプログラムを備えていない。
ルータ20には、複数の仮想IPアドレスおよび複数の仮想MACアドレスが割り当てられている。図1においては、ルータ20に対して仮想IPアドレス#1、#2が割り当てられている。また、この実施例では、ルータ20に割り当てられている複数の仮想IPアドレスおよび複数の仮想MACアドレスは、互いに一意に対応づけられている。
ルータ20は、サーバシステムを収容している。図1に示す例では、ルータ20は、サーバシステム3およびサーバシステム4を収容している。サーバシステム3は、複数のサーバコンピュータ3a〜3cを含み、サーバシステム4は、複数のサーバコンピュータ4a〜4cを含む。また、サーバシステム3、4は、それぞれ、仮想IPアドレス#1、#2に対応づけられている。
上述した通信システム1において、例えば、クライアント2がサーバシステム3にアクセスする際には、クライアント2は、仮想IPアドレス#1および仮想IPアドレス#1に対応する仮想MACアドレスを宛先情報として設定したパケットを送信する。そうすると、通信システム1上のノード装置(すなわち、L2スイッチ、ルータ等)は、受信パケットの宛先情報に従ってそのパケットを転送する。これにより、このパケットは、L2スイッチ10に転送される。
L2スイッチ10は、上記パケットを受信すると、そのパケットをルータ20へ転送する。なお、L2スイッチ10が物理リンク#0〜#nの中のどのリンクを介して上記パケットをルータ20へ転送するのかについては、後で詳しく説明する。
ルータ20は、宛先情報として仮想IPアドレス#1が設定されたパケットを受信すると、サーバシステム3に属するサーバコンピュータ3a〜3cの中の1つを選択する。この選択処理は、例えば、サーバ負荷分散機能(SLB:Server Load Balancer)により実現される。以下の説明では、サーバ負荷分散機能によりサーバコンピュータ3aが選択されるものとする。また、ルータ20は、選択したサーバコンピュータ3aへパケットを転送するために、上記パケットの宛先情報を書き換える。この書換え処理は、例えば、アドレス変換機能(NAT:Network Address Translation)により実現される。これにより、クライアント2から送信されたパケットは、サーバシステム3に属するサーバコンピュータ3aに転送される。
サーバコンピュータ3aは、クライアント2へ応答パケットを返送する。この応答パケットは、いったん仮想IPアドレス#1へ送られる。そうすると、ルータ20は、宛先情報を書き換えた後、その応答パケットをL2スイッチ10へ送信する。なお、ルータ20が物理リンク#0〜#nの中のどのリンクを介して応答パケットをL2スイッチ10へ送信するのかについては、後で詳しく説明する。
L2スイッチ10は、応答パケットをクライアント2へ向かって転送する。この結果、クライアント2は、サーバシステム3からの応答を受信する。
図2は、ルータ20の構成を示す。ルータ20は、ポートP0〜Pm、バッファメモリ21、プロセッサ22、メモリ23を有する。
ポートP0〜P3(ルータポート)には、それぞれ物理リンク#0〜#3が接続されている。物理リンク#0〜#3は、L2スイッチ10とルータ20との間に設けられている。すなわち、ポートP0〜P3は、それぞれ、L2スイッチ10から物理リンク#0〜#3を介して伝送されてくるパケットを受信する。また、ポートP0〜P3は、それぞれ、L2スイッチ10へ伝送すべきパケットを物理リンク#0〜#3へ出力する。
なお、図2に示す例では、物理リンク#0〜#3は、それぞれ、L2スイッチ10のポートP0〜P3(スイッチポート)に接続されている。したがって、例えば、ルータ20がポートP0を介してパケットを送信すると、そのパケットは、L2スイッチ10のポートP0に到着する。同様に、ルータ20がポートP1、P2、P3を介してパケットを送信すると、各パケットは、それぞれ、L2スイッチ10のポートP1、P2、P3に到着する。
ポートP4〜Pmは、L2スイッチ10以外の相手装置とパケットを送受信するために使用される。ポートP4〜Pmの一部は、例えば、図1に示すサーバシステム3、4とパケットを送受信するために使用される。また、ポートP4〜Pmの他の一部は、例えば、他のルータとパケットを送受信するために使用される。
バッファメモリ21は、ポートP0〜Pmを介して受信するパケットを一時的に格納する。バッファメモリ21に格納されているパケットは、プロセッサ22により読み出されて、プロセッサ22により指定されるポートを介して送信される。なお、バッファメモリ21は、半導体メモリにより実現される。
プロセッサ22は、メモリ23に格納されている通信制御プログラムを実行することにより、ルータ20の動作を制御する。メモリ23は、上述の通信制御プログラムを格納する。また、メモリ23は、ルータ20の動作に必要な情報を格納する。さらに、メモリ23は、プロセッサ22の作業領域を提供する。なお、メモリ23は、例えば、半導体メモリにより実現される。また、バッファメモリ21は、メモリ23の一部として実現してもよい。
実施形態の通信制御プログラムは、例えば、下記の形態でルータ20に提供される。
(1)メモリ23に予めインストールされている。
(2)着脱可能記録媒体により提供される。この場合、ルータ20は、着脱可能記録媒体から情報を読み取るデバイスを備える。
(3)プログラムサーバから提供される。この場合、ルータ20は、不図示のインタフェースを介して、プログラムサーバから通信制御プログラムを受け取る。
図3は、ルータ20の機能を説明する機能ブロック図である。ルータ20は、リンク制御部31、管理テーブル32、転送制御部33、リンク状態監視部34を備える。
リンク制御部31は、L2スイッチ10とルータ20との間でリンクアグリゲーションを実現するための処理を実行する。このとき、リンク制御部31は、管理テーブル32を参照して、L2スイッチ10へパケットを送信する際に使用するポート(すなわち、使用する物理リンク)を選択する。
管理テーブル32は、ルータ20に割り当てられている複数の仮想IPアドレスと、ルータ20に割り当てられている複数の仮想MACアドレスと、L2スイッチ10とパケットを送受信するための複数のポートP0〜P3の識別番号との対応関係を管理する。なお、管理テーブル32は、図2に示すメモリ23に形成される。
図4は、管理テーブル32の一例を示す。図4に示す例では、ルータ20に対して7個の仮想IPアドレスおよび7個の仮想MACアドレスが割り当てられている。よって、管理テーブル32には、それら7個の仮想IPアドレスおよび7個の仮想MACアドレスが登録されている。ここで、7個の仮想IPアドレスおよび7個の仮想MACアドレスは、互いに一意に対応づけられている。例えば、仮想IPアドレス「192.168.1.10」は、仮想MACアドレス「00:11:22:33:44:11」に対応づけられている。以下、互いに対応づけられた仮想IPアドレスと仮想MACアドレスの組合せを、VIP/VMACペアと呼ぶことがある。
管理テーブル32には、各VIP/VMACペアに対して、定義ポートが登録される。定義ポートは、VIP/VMACペアに対して予め定義されている物理インタフェースを表す。例えば、VIP/VMACペア1「192.168.1.10/00:11:22:33:44:11」に対しては、ポートP0が定義されている。なお、定義ポートは、例えば、各物理リンク#0〜#3のトラフィックが略均等になるように決定されることが好ましい。また、定義ポートは、例えば、ネットワーク管理者により決定される。
管理テーブル32は、さらに、各VIP/VMACペアに対して、割り当てポートを管理するフィールドを有する。割り当てポートは、VIP/VMACペアに対して実際に割り当てられた物理インタフェースを表す。
ここで、定義ポートに対応する物理リンクが正常であれば、割り当てポートは、定義ポートと一致する。たとえば、ポートP0に接続する物理リンク#0が正常であるものとする。この場合、「定義ポート=P0」が設定されているVIP/VMACペア(例えば、VIP/VMACペア1、5)の割り当てポートは、定義ポートと同様に、「P0」である。これに対して、定義ポートに対応する物理リンクにおいて異常が検出されたときは、リンク制御部31は、割り当てポートとして、定義ポートとは異なるポートを選択する。例えば、ポートP2に接続する物理リンク#0において異常が検出されたものとする。この場合、「定義ポート=P2」が割り当てられているVIP/VMACペア(例えば、VIP/VMACペア4、7)の割り当てポートとして、定義ポートとは異なるポートが選択されている。
転送制御部33は、サーバ負荷分散処理、アドレス変換処理、ルーティング処理を実行する。サーバ負荷分散処理は、サーバコンピュータ3a〜3c、4a〜4cの負荷が分散されるように、クライアント2からの要求をサーバコンピュータ3a〜3c、4a〜4cに振り分ける。アドレス変換処理は、IPアドレスおよびMACアドレスの変換を行う。ルータ20においては、例えば、仮想IPアドレス/仮想MACアドレスと、サーバコンピュータ3a〜3c、4a〜4cのIPアドレス/MACアドレスとの間の変換が行われる。ルーティング処理は、入力パケットのヘッダに設定されているIPアドレスに基づいて、そのパケットを対応する出力ポートに導く。なお、サーバ負荷分散処理、アドレス変換処理、ルーティング処理は、公知の手順を利用してもよい。
リンク状態監視部34は、L2スイッチ10とルータ20との間の各物理リンク#0〜#3の状態を監視する。このとき、リンク状態監視部34は、例えばポーリングにより、各ポートP0〜P3において受信信号が検出されるか否かを監視する。そして、リンク状態監視部34は、あるポートにおいて受信信号を検出できなければ、そのポートに接続する物理リンクに異常(リンクダウン)が生じていると判定する。
なお、リンク制御部31、転送制御部33、リンク状態監視部34は、この例では、プロセッサ22を用いて通信制御プログラムを実行することにより実現される。ただし、リンク制御部31、転送制御部33、リンク状態監視部34は、ソフトウェアとハードウェアとの組合せで実現してもよい。
図5は、通信システム1において伝送されるパケットの形式を示す。このパケットは、MACヘッダ、IPヘッダ、データ(ペイロード)を有する。MACヘッダは、この実施例では、送信元MACアドレス(SA)および宛先MACアドレス(DA)を含む。IPヘッダは、RFC791で規定されており、送信元IPアドレス(Source Address)および宛先IPアドレス(Destination Address)を含む。なお、IPパケットの形式は公知なので、詳しい説明は省略する。
次に、図6〜図14を参照しながら、L2スイッチ10およびルータ20がパケットを中継する動作と連携して、ルータ20がL2スイッチ10に学習テーブルを作成させる手順を説明する。
図6は、L2スイッチ10とルータ20との間でパケットの送受信が開始される前の状態を示す。この実施例では、L2スイッチ10とルータ20との間には、4本の物理リンク#0〜#3が設けられている。物理リンク#0〜#3は、それぞれL2スイッチ10のポートP0〜P3に接続され、また、それぞれルータ20のポートP0〜P3に接続されている。クライアント2からサーバ3(3a)へ送信されるパケットは、L2スイッチ10のポートP10に到着するものとする。また、ルータ20は、ポートP10を介してサーバ3aとパケットを送受信するものとする。
L2スイッチ10は、入力パケットをMACアドレスでルーティングするための学習テーブル11を有する。学習テーブル11は、パケットを送受信するためのポートとMACアドレスとの対応関係を管理する。
ルータ20は、管理テーブル32を有する。この実施例では、ルータ20には、6個の仮想IPアドレスおよび6個の仮想MACアドレスが割り当てられている。よって、管理テーブル32には、VIP/VMACペア1〜6が登録されている。また、各VIP/VMACペアに対してそれぞれ「定義ポート」が登録されている。ただし、この時点では、「割り当てポート」は未だ登録されていないものとする。
図7は、クライアント側から仮想IPアドレス宛のパケットが送信されたときの動作を示す。ここでは、図1および図6に示すクライアント2が、サーバシステム3に対して処理を要求するものとする。
この場合、クライアント側から送信されたパケットには、図7に示すアドレス情報が設定される。送信元MACアドレスとしては、クライアント2に隣接するルータのMACアドレスが設定される。宛先MACアドレスとしては、ルータ20に割り当てられている仮想MACアドレスの1つが設定される。ここでは、宛先MACアドレスとして、サーバシステム3に対応する仮想MACアドレス「00:22:22:22:22:22」が設定されている。送信元IPアドレスとしては、クライアント2のIPアドレスが設定される。そして、宛先IPアドレスとしては、ルータ20に割り当てられている仮想IPアドレスの1つが設定される。ここでは、宛先IPアドレスとして、サーバシステム3に対応する仮想IPアドレス「192.168.2.1」が設定されている。なお、図7〜図14においては、他のヘッダ情報については記載を省略する。
クライアント2から送信された上記パケットは、宛先アドレスに応じてルーティングされる。この結果、上記パケットは、L2スイッチ10に到着するものとする。この実施例では、上記パケットは、L2スイッチ10のポートP10に到着するものとする。
図8は、L2スイッチ10がクライアント側から受信したパケットを転送するときの動作を示す。L2スイッチ10は、クライアント側からパケットを受信すると、そのパケットの宛先MACアドレスに応じてルーティングを行う。このとき、L2スイッチ10は、受信パケットの宛先MACアドレス「00:22:22:22:22:22」で学習テーブル11を参照する。ところが、この時点では、この宛先MACアドレスは学習テーブル11に登録されていない。この場合、L2スイッチ10は、パケットを受信したポート(すなわち、ポートP10)以外のすべてのポートを介して、そのパケットを送信する。すなわち、L2スイッチ10は、受信パケットをフラッディングする。この実施例では、L2スイッチ10のポートP0〜P3から同じパケットが送信される。
なお、L2スイッチ10は、クライアント側からパケットを受信したときに、学習テーブル11を更新する。すなわち、パケットを受信したポート(すなわち、ポートP10)に対応づけて、そのパケットの送信元MACアドレス「00:11:22:33:44:55」が登録される。
L2スイッチ10のポートP0〜P3から送信されたパケットは、それぞれ、物理リンク#0〜#3を介して伝送され、ルータ20のポートP0〜P3に到着する。この場合、ルータ20は、各受信パケットの宛先IPアドレスに基づいてそのパケットを処理する。すなわち、リンク制御部31は、宛先IPアドレスで管理テーブル32を参照する。このとき、宛先IPアドレスが仮想IPアドレスの1つとして登録されていた場合には、リンク制御部31は、対応する「定義ポート」を取得する。そして、リンク制御部31は、取得した「定義ポート」により識別されるポートを介して入力されたパケットを取り込み、他のポートを介して入力されたパケットを破棄する。
なお、ルータ20は、MACアドレスで管理テーブル32を参照してもよい。また、ルータ20は、IPアドレスおよびMACアドレスの組合せで管理テーブル32を参照してもよい。すなわち、ルータ20は、IPアドレスまたはMACアドレスの少なくとも一方で参照管理テーブル32を参照すればよい。
この実施例では、受信パケットの宛先IPアドレスおよび宛先MACアドレスは、管理テーブル32に登録されているVIP/VMACペア2に相当する。そして、管理テーブル32において、VIP/VMACペア2に対して「ポートP1」が登録されている。したがって、この場合、ルータ20は、ポートP0〜P3を介して受信した4個のパケットのうち、ポートP1を介して受信したパケットを取り込み、ポートP0、P2、P3を介して受信したパケットを破棄する。
なお、受信パケットの宛先IPアドレス/宛先MACアドレスが、ルータ20に割り当てられている仮想IPアドレス/仮想MACアドレスでなかったときは、ルータ20は、通常のルーティング処理を行う。このルーティングは、転送制御部33のルーティング機能により実現される。
図9は、ルータ20がL2スイッチ10から受信したパケットをサーバシステム3へ転送するときの動作を示す。ルータ20は、まず、サーバシステム3に属するサーバコンピュータ3a〜3cの中から、受信パケットを転送すべきサーバコンピュータ(ここでは、3a)を選択する。この選択は、転送制御部33のサーバ負荷分散機能により行われる。ここで、ルータ20がL2スイッチ10から受信したパケットの宛先アドレスには、ルータ20に割り当てられている仮想IPアドレス/仮想MACアドレスが設定されている。よって、ルータ20は、この宛先アドレスを書き換える。すなわち、転送制御部33のアドレス変換機能は、宛先MACアドレス/宛先IPアドレスを、サーバ負荷分散機能により選択されたサーバコンピュータ3aのMACアドレス/IPアドレスに書き換える。この実施例では、アドレス変換により、宛先MACアドレスに「00:aa:aa:aa:aa:aa」が設定され、宛先IPアドレスに「192.168.100.1」が設定される。
そして、ルータ20は、宛先アドレスを書き換えたパケットを、目標装置であるサーバコンピュータ3aへ送信する。これにより、クライアント2から送信されたパケットは、サーバシステム3に到着する。
図10は、サーバコンピュータ3aが応答パケットを送信したときの動作を示す。サーバコンピュータ3aは、クライアント2から受信したパケットに対応する応答パケットを作成して送信する。
この場合、サーバコンピュータ3aが送信する応答パケットには、図10に示すアドレス情報が設定される。送信元MACアドレス/送信元IPアドレスには、サーバコンピュータ3aのMACアドレス/IPアドレスが設定される。宛先MACアドレスには、ルータ20に割り当てられている、サーバシステム3に対応する仮想MACアドレスが設定される。この仮想MACアドレスは、図7〜図8においてクライアント側からルータ20へ送信されたパケットの宛先MACアドレスに相当する。すなわち、応答パケットの宛先MACアドレスには「00:22:22:22:22:22」が設定される。なお、クライアント2からのパケットを受信したサーバコンピュータ3aは、ルータ20に割り当てられている、サーバシステム3に対応する仮想MACアドレスを認識しているものとする。応答パケットの宛先IPアドレスには、クライアント2のIPアドレス「172.20.10.123」が設定される。
図11は、ルータ20がサーバコンピュータ3aから受信したパケットをL2スイッチ10へ転送するときの動作を示す。ルータ20は、サーバコンピュータ3aから送信された応答パケットをポートP10を介して受信する。そうすると、ルータ20は、応答パケットの送信元MACアドレス、宛先MACアドレス、送信元IPアドレスを書き換える。すなわち、転送制御部33のアドレス変換機能は、受信した応答パケットに設定されている宛先MACアドレスを、送信元MACアドレスに書き込む。すなわち、送信元MACアドレスには、仮想MACアドレス「00:22:22:22:22:22」が設定される。また、アドレス変換機能は、送信元IPアドレスには、書換えにより設定された送信元MACアドレスである仮想MACアドレスに一意に対応する仮想IPアドレスを書き込む。すなわち、送信元IPアドレスには、仮想IPアドレス「192.168.2.1」が設定される。さらに、アドレス変換機能は、宛先MACアドレスとして、クライアント2に隣接するルータのMACアドレスを書き込む。
続いて、ルータ20のリンク制御部31は、アドレス変換後の応答パケットの送信元IPアドレス/送信元MACアドレスで管理テーブル32を参照する。この実施例では、この参照により、管理テーブル32においてVIP/VMACペア2がヒットする。この場合、リンク制御部31は、VIP/VMACペア2に対応する「定義ポート=P1」を取得する。そして、リンク制御部31は、上記応答パケットを、ポートP1を介してL2スイッチ10へ送信する。このように、ルータ20は、サーバシステム3からクライアント2へ向かう応答パケットを、送信元の仮想IPアドレス/仮想MACアドレスに対応するポートを介して送信する。
ここで、L2スイッチ10のポートP0〜P3及びルータ20のポートP0〜P3は、一意に対応している。よって、ルータ20が管理テーブル32を参照して特定したルータ20のポート(P1)を介してパケットを送信すると、そのパケットは、L2スイッチ10において一意に対応するポート(P1)により受信される。すなわち、ルータ20の特定ポートを介してパケットを送信する動作は、実質的に、ルータ20の特定ポートに一意に対応するL2スイッチ10のポートへパケットを送信する動作を等価である。
リンク制御部31は、送信元アドレスとしてVIP/VMACペア2が設定された応答パケットを送信すると、そのパケット送信で使用したポートを管理テーブル32の「割り当てポート」に登録する。この実施例では、応答パケットは、ポートP1を介してL2スイッチ10へ送信されている。よって、管理テーブル32において、VIP/VMACペア2に対応づけて、「割り当てポート=P1」が登録される。
図12は、L2スイッチ10がルータ20から受信したパケットをクライアント側へ転送するときの動作を示す。ルータ20は、上述のように、ポートP1を介して応答パケットを送信する。そうすると、この応答パケットは、物理リンク#1を介して伝送され、L2スイッチ10のポートP1に到着する。
L2スイッチ10は、受信した応答パケットに設定されている宛先MACアドレスで学習テーブル11を参照して、「ポート=P10」を得る。そうすると、L2スイッチ10は、この応答パケットをポートP10を介して送信する。L2スイッチ10から送信された応答パケットは、ネットワーク上のノード装置により宛先アドレスに応じてルーティングされ、クライアント2まで転送される。
また、L2スイッチ10は、ルータ20から受信した応答パケットに応じて、学習テーブル11を更新する。このとき、L2スイッチ10は、応答パケットを受信したポートの識別番号と、その応答パケットに設定されている送信元MACアドレスとを対応づけて学習テーブル11に登録する。この実施例では、L2スイッチ10は、ポートP1を介して応答パケットを受信する。また、この応答パケットの送信元アドレスには、ルータ20に割り当てられている仮想IPアドレス「00:22:22:22:22:22」が設定されている。したがって、学習テーブル11には、図12に示すように、ポートP1に対応づけて仮想IPアドレス「00:22:22:22:22:22」が登録される。
図13は、図7〜図12に示す手順の後に、クライアント側から仮想IPアドレス宛の次のパケットが送信されたときの動作を示す。ここで、クライアント側から送信されるパケットの宛先アドレスおよび送信元アドレスは、いずれも図7に示すパケットと同じである。そして、このパケットは、L2スイッチ10のポートP10に到着する。
図14は、L2スイッチ10が図13に示すパケットを転送する動作を示す。L2スイッチ10は、ポートP10を介して上記パケットを受信すると、その宛先MACアドレスで学習テーブル11を参照する。このとき、学習テーブル11には、先に行われた図12に示す手順によって、MACアドレス「00:22:22:22:22:22」に対してポートP1が登録されている。したがって、L2スイッチ10は、このパケットをポートP1を介して送信する。このように、L2スイッチ10は、新たに受信したパケットの宛先MACアドレスについて既に学習しているので、登録されているポートを介してそのパケットをルータ20へ送信することができる。
上記パケットは、物理リンク#1を介して伝送され、ルータ20のポートP1に到着する。そうすると、ルータ20のリンク制御部31は、受信パケットの宛先IPアドレス/宛先MACアドレスで管理テーブル32を参照し、対応する「割り当てポート」を取得する。そして、リンク制御部31は、取得した割り当てポートと、パケットを受信したポートとが一致すれば、そのパケットを取り込む。以降の手順は、図9〜図12を参照しながら説明した手順と実質的に同じである。
このように、ルータ20は、送信元MACアドレスとしてルータ20に割り当てられているある1つの仮想MACアドレス(以下、仮想MACアドレスX)を設定したパケットをL2スイッチ10へ送信するときは、管理テーブル32において仮想MACアドレスXに対応づけられて登録されているポート(以下、ポートX)を使用する。そうすると、L2スイッチ10は、ルータ20において使用されたポートXに一意に対応するポート(以下、ポートY)を介して、そのパケットを受信する。そして、L2スイッチ10は、そのパケットを受信したポートYと対応づけて、そのパケットに設定されている送信元MACアドレス(すなわち、仮想MACアドレスX)を学習テーブル11に登録する。したがって、以降、L2スイッチ10は、宛先アドレスとして仮想MACアドレスXが設定されているパケットを受信すると、ポートYを介してそのパケットをルータ20へ転送する。すなわち、L2スイッチ10から仮想MACアドレスXへ向かうパケットは、ルータ20において仮想MACアドレスXに対して予め決められたポート(すなわち、物理リンク)を介して伝送される。
換言すれば、ルータ20において管理テーブル32を使用することにより、L2スイッチ10から仮想MACアドレスXへ向かうパケットが経由する物理リンクを指定することができる。したがって、L2スイッチ10とルータ20との間でリンクアグリゲーションを行うときに、ネットワーク設計者またはネットワーク管理者は、トラフィックがどの物理リンクを経由しているのかを正確に把握することができる。
また、ルータ20が仮想MACアドレスからL2スイッチ10へパケットを送信する際には、管理テーブル32に登録されているポートを使用する。したがって、この場合も、ネットワーク設計者またはネットワーク管理者は、トラフィックがどの物理リンクを経由しているのかを正確に把握することができる。
さらに、仮想MACアドレスXからL2スイッチ10へパケットを送信する際には、ルータ20は、仮想MACアドレスXに対応づけられているポートを使用する。一方、L2スイッチ10から仮想MACアドレスXへパケットを送信する際には、L2スイッチ10は、仮想MACアドレスXに対応づけられているポートと物理リンクを介して接続するポートを使用する。したがって、L2スイッチ10から仮想MACアドレスXへ向かうトラフィック、および仮想MACアドレスXからL2スイッチ10へ向かうトラフィックは、同じ物理リンクを介して流れる。
さらに、L2スイッチ10は、ルータ20から受信するパケットを利用して学習テーブル11を作成する。この学習テーブル11は、レイヤ2のスイッチングを実現するために公知の構成を利用することができる。すなわち、L2スイッチ10は、リンクアグリゲーションに係わる構成またはソフトウェアを実装している必要はない。このように、リンクアグリゲーションのための専用の構成またはソフトウェアをL2スイッチ10に実装しなくても、L2スイッチ10とルータ20との間でリンクアグリゲーションを実現できる。よって、従来技術と比較して、L2スイッチとルータとの間のリンクアグリゲーションを簡易におよび/または低コストで実現できる。
図15は、L2スイッチ10からパケットを受信したときのルータ20の処理を示すフローチャートである。ステップS1において、リンク制御部31は、受信パケットの宛先アドレスが、ルータ20に割り当てられている仮想IPアドレスか否かを判定する。受信パケットの宛先アドレスがルータ20に割り当てられている仮想IPアドレスであれば、リンク制御部31は、ステップS2において、その仮想IPアドレスで管理テーブル32を参照することにより、対応する物理インタフェース(すなわち、ポート)を特定する。そして、リンク制御部31は、上記パケットを受信したポートと、管理テーブル32を参照することで特定されたポートが一致するか判定する。
上記2つのポートが互いに一致するときは(ステップS2:Yes)、リンク制御部31は、ステップS3において、受信パケットを転送制御部33へ渡して処理を依頼する。この場合、転送制御部33は、サーバ負荷分散処理、アドレス変換処理、ルーティング処理等を実行する。一方、上記2つのポートが互いに一致しないときは(ステップS2:No)、リンク制御部31は、ステップS4において、受信パケットを破棄する。
受信パケットの宛先アドレスがルータ20に割り当てられている仮想IPアドレスでなかったときは(ステップS1:No)、リンク制御部31は、ステップS5において、代表ポートを介してそのパケットを受信したか否かを判定する。ここで、代表ポートは、ルータ20宛てのパケットを受信するために予め決められているものとする。そして、代表ポートを介してパケットを受信したときは、ステップS6において、リンク制御部31は、ルータ20宛てのパケットを処理するための上位処理部にそのパケットを渡す。この場合、上位処理部は、受信パケットにより指示された処理を実行する。一方、代表ポート以外のポートを介してパケットを受信したときは(ステップS5:No)、リンク制御部31は、ステップS4において、受信パケットを破棄する。
このように、リンク制御部31は、ルータ20に割り当てられている仮想IPアドレス宛てのパケットを受信したときに、その仮想IPアドレスに対応するポートを介して受信したパケットを取り込み、他のポートを介して受信したパケットを破棄する。すなわち、ルータ20は、仮想IPアドレスに対応していない物理リンクを介して伝送されるパケットを拒否できる。したがって、仮想IPアドレスとその仮想IPアドレス宛てのトラフィックが流れる物理リンクとの対応関係が保障される。
図16は、パケット送信時のルータ20の処理を示すフローチャートである。なお、このフローチャートにおいては、転送制御部33の処理は省略されている。
ステップS11において、リンク制御部31は、送信パケットの送信元アドレスが、ルータ20に割り当てられている仮想IPアドレスか判定する。送信元アドレスがルータ20に割り当てられている仮想IPアドレスであれば、リンク制御部31は、ステップS12において、管理テーブル32を参照し、送信元の仮想IPアドレスに対して既に物理インタフェース(すなわち、ポート)が割り当てられているか判定する。
送信元の仮想IPアドレスに対して既にポートが割り当てられていれば、リンク制御部31は、ステップS16において、その仮想IPアドレスに対して割り当てられているポートを介してパケットを送信する。一方、送信元の仮想IPアドレスに対してポートが割り当てられていなければ、リンク制御部31は、ステップS13において、その仮想IPアドレスに対して定義されているポートが使用可能か判定する。
送信元の仮想IPアドレスに対して定義されているポートが使用可能であれば、リンク制御部31は、ステップS14において、定義されているポートをその仮想IPアドレスに割り当てる。一方、送信元の仮想IPアドレスに対して定義されているポートが使用可能でないときは、リンク制御部31は、ステップS15において、使用可能なポートの中から、既に割り当てられている仮想IPアドレスの数が最も少ないポートを選択する。そして、送信パケットの送信元の仮想IPアドレスに対して、新たに選択したポートが割り当てられる。ステップS14またはS15によりポートが割り当てられた後、ステップS16の処理が実行される。
送信元アドレスがルータ20に割り当てられている仮想IPアドレスでないときは、リンク制御部31は、ステップS17において、代表ポートを介してそのパケットを送信する。例えば、ルータ20が自らパケットを生成して送信するときは、この代表ポートを介してパケットが送信される。
このように、パケットの送信元がルータ20に割り当てられている仮想IPアドレスであるときは、ルータ20は、その仮想IPアドレスに対して割り当てられているポートを介してそのパケットをL2スイッチ10へ送信する。すなわち、L2スイッチ10は、その仮想IPアドレスに対して割り当てられている物理リンクを介してそのパケットを受信する。ここで、仮想IPアドレスと仮想MACアドレスは、一意に対応している。したがって、L2スイッチ10は、ルータ20が備える管理テーブル32の対応関係に従って、宛先MACアドレスと出力ポートとの対応関係を記述した学習テーブル11を作成することができる。よって、L2スイッチ10がリンクアグリゲーション機能を実装していなくても、仮想IPアドレス宛てのトラフィックが流れる物理リンクは、ルータ20が備える管理テーブル32に従って制御される。
次に、L2スイッチ10とルータ20との間の物理リンクの状態が変化したときの処理を説明する。以下の説明では、図7〜図12の手順により、学習テーブル11および管理テーブル32が図12に示す状態に更新されているものとする。
図17〜図18は、物理リンクに障害が発生したときの処理を示す。この実施例では、物理リンク#1において障害が発生したものとする。
ルータ20のリンク状態監視部34は、常時、各物理リンク#0〜#3の状態を監視する。そして、図17において、リンク状態監視部34は、物理リンク#1において障害が発生したことを検出する。
そうすると、リンク制御部31は、管理テーブル32を参照し、障害が発生した物理リンク#1(すなわち、ポートP1)が割り当てられているVIP/VMACペアをサーチする。この実施例では、「割り当てポート=P1」に対してVIP/VMACペア2が対応づけられている。
この場合、リンク制御部31は、障害が発生していない物理リンク(すなわち、使用可能なポート)の中から、VIP/VMACペア2に対して新たに割り当てるポートを選択する。このとき、例えば、既に割り当てられているVIP/VMACペアの数の最も少ないポートが選択される。或いは、最もトラフィックの少ない物理リンクに対応するポートを選択してもよい。この実施例では、VIP/VMACペア2に対してポートP2が新たに割り当てられるものとする。すなわち、VIP/VMACペア2に割り当てられるポートが、ポートP1からポートP2へ変更される。
VIP/VMACペア2に割り当てられるポートを変更すると、ルータ20は、VIP/VMACペア2に対して新たに割り当てたポートへG−ARP(Gratuitous Address Resolution Protocol)パケットを導く。すなわち、ルータ20は、ポートP2を介して、L2スイッチ10へG−ARPパケットを送信する。
図19は、G−ARPパケットの形式を示す。G−ARPパケットの形式は、RFC826等で規定されているARPパケットと同じであり、MACヘッダおよびARPデータを有する。ARPは、IPアドレスからMACアドレスを得るためのプロトコルである。ARPを実装しているコンピュータは、IPアドレスとMACアドレスとの対応関係を保持するARPテーブルを有している。そして、G−ARPパケットは、他のコンピュータのARPテーブルを強制的に更新することができる。G−ARPパケットのARPデータには、Sender Hardware Address、Sender Protocol Address、Target Hardware Address、Target Protocol Addressが設定される。Hardware Addressは、MACアドレスに相当し、Protocol Addressは、IPアドレスに相当する。
ルータ20からL2スイッチ10へ送信されるG−ARPパケットの送信元MACアドレスには、ブロードキャストを表す「ff:ff:ff:ff:ff:ff」が設定される。また、宛先アドレスには、割り当てポートが変更されたVIP/VMACペアのMACアドレスが設定される。よって、この実施例では、仮想MACアドレス「00:22:22:22:22:22」が設定される。ここで、G−ARPパケットの「宛先MACアドレス」は、G−ARPパケットを受信したコンピュータに再学習させるアドレスである。すなわち、この実施例では、ルータ20は、L2スイッチ10に、仮想MACアドレス「00:22:22:22:22:22」を再学習させることになる。
ARPデータのSender MACアドレスおよびTarget MACアドレスには、宛先MACアドレスと同じ値が設定される。また、ARPデータのSender IPアドレスおよびTarget IPアドレスには、対応する仮想IPアドレス「192.168.2.1」が設定される。
上述のG−ARPパケットは、物理リンク#2を介してルータ20からL2スイッチ10へ伝送される。そして、L2スイッチ10は、ポートP2を介してそのG−ARPパケットを受信する。
そうすると、L2スイッチ10は、受信したG−ARPパケットに従って学習テーブル11を更新する。すなわち、図18に示すように、学習テーブル11において、受信したG−ARPパケットの宛先MACアドレス「00:22:22:22:22:22」に対して、そのG−ARPパケットを受信したポートP2が対応づけられる。
以降、L2スイッチ10は、宛先MACアドレスとして「00:22:22:22:22:22」が設定されているパケットを受信すると、更新された学習テーブル11に基づいて、ポートP2を介してそのパケットを送信する。このパケットは、物理リンク#2を介してルータ20へ伝送される。
このように、ルータ20は、ある物理リンク(以下、第1の物理リンク)の障害を検出すると、第1の物理リンクが割り当てられていたVIP/VMACペアに、新たな物理リンク(以下、第2の物理リンク)を割り当てる。そして、ルータ20は、第2の物理リンクを介して、第1の物理リンクが割り当てられていた仮想MACアドレスを通知するためのG−ARPパケットをL2スイッチ10へ送信する。よって、L2スイッチ10は、第1の物理リンクに障害が発生すると、即座に、学習テーブル11を更新できる。したがって、物理リンクに障害が発生した場合であっても、L2スイッチ10とルータ20との間でリンクアグリゲーションを実現しながら、クライアントとサーバとの間の通信を継続することができる。
図20は、リンクダウン時のルータ20の処理を示すフローチャートである。以下では、リンク状態監視部34がある物理リンクの障害を検出した後の手順を説明する。
ステップS21において、リンク制御部31は、管理テーブル32の「割り当てポート」を参照し、障害が検出された物理リンクに対応するポートが割り当てられていたVIP/VMACペアが存在するか否かを判定する。そのようなVIP/VMACペアが存在するときは、リンク制御部31は、ステップS22において、使用可能なポートの中から、既に割り当てられている仮想IPアドレスの数が最も少ないポートを選択する。そして、リンク制御部31は、管理テーブル32において、選択したポートを上述のVIP/VMACペアに対して割り当てる。
ステップS23において、リンク制御部31は、ポートの割り当てを変更したVIP/VMACペアについて、再学習パケットを作成する。再学習パケットは、図18に示す実施例では、G−ARPパケットである。そして、リンク制御部31は、このVIP/VMACペアに対して新たに割り当てたポートを介して再学習パケットを送信する。
図21は、リンクアップ時のルータ20の処理を示すフローチャートである。以下では、物理リンクが障害から回復したことをリンク状態監視部34により検出された後の手順を説明する。
ステップS31において、リンク制御部31は、管理テーブル32を参照し、障害から回復した物理リンクに接続するポートが定義ポートであって、且つ、定義ポートと割り当てポートが異なっているVIP/VMACペアが存在するか否かを判定する。例えば、図18に示す状態において、物理リンク#1が回復したものとする。このとき、管理テーブル32において、VIP/VMACペア2について、「定義ポート=P1」「割り当てポート=P2」である。よって、この場合、ステップS31は「Yes」と判定される。
上述のようなVIP/VMACペアが存在するときは、リンク制御部31は、ステップS32において、このVIP/VMACペアの割り当てポートとして「定義ポート」を設定する。すなわち、上記VIP/VMACペアに対して定義ポートが割り当てられる。
ステップS33において、リンク制御部31は、ポートの割り当てを変更したVIP/VMACペアについて、再学習パケット(G−ARPパケット)を送信する。このとき、リンク制御部31は、このVIP/VMACペアに対して新たに割り当てたポートを介して再学習パケットを送信する。
このように、実施形態の通信制御方法によれば、ルータ20は、クライアントとサーバとの間の通信を中継する動作を利用して、ルータ20に割り当てられている仮想MACアドレスとポートとの対応関係を、L2スイッチ10の学習テーブル11に反映させる。これにより、L2スイッチ10に専用の構成またはソフトウェアを実装することなく、L2スイッチ10とルータ20との間でリンクアグリゲーションを実現できる。
なお、ルータ20に割り当てられている仮想MACアドレスとポートとの対応関係をL2スイッチ10の学習テーブル11に反映させるためには、例えば、ルータ20からL2スイッチ10へ定期的にG−ARPパケットを送信する方法が考えられる。この場合、ルータ20は、管理テーブル32に登録されている各VIP/VMACペアについてそれぞれ対応するポートを介してG−ARPパケットを送信する。
しかし、例えば、L2スイッチ10に障害が発生して再起動した場合等においては、学習テーブル11が初期化されてしまう。このため、上述のようなG−ARPパケットを使用する方法では、L2スイッチ10は、ルータ20から次のG−ARPパケットを受信して学習テーブル11を作成するまでの期間、ルータ20へパケットを転送することができない。この問題は、例えば、G−ARPパケットの送信間隔を短くすれば、緩和される。しかし、G−ARPパケットの送信間隔を短くすることは、L2スイッチ10とルータ20との間のトラフィックを増加させるので、好ましくない。よって、クライアントとサーバとの間の通信を中継する動作を利用して、仮想MACアドレスとポートとの対応関係をL2スイッチ10に反映させる、実施形態の通信制御方法は、クライアントとサーバとの間のリンクアグリゲーション通信を維持する点で優れている。
10 L2スイッチ
11 学習テーブル
20 ルータ
22 プロセッサ
31 リンク制御部
32 管理テーブル
33 転送制御部
34 リンク状態監視部

Claims (7)

  1. 複数の仮想IPアドレスおよび前記複数の仮想IPアドレスに対応する複数の仮想MACアドレスが割り当てられている、複数のルータポートを有するルータは、L2スイッチから、宛先情報として第1の仮想IPアドレスおよび前記第1の仮想IPアドレスに対応する第1の仮想MACアドレスが設定されたパケットを、前記複数のルータポートの中の1つを介して受信し、
    前記ルータは、前記ルータの記憶部に記憶されている、前記複数の仮想IPアドレスと、前記複数の仮想MACアドレスと、前記複数のルータポートとの対応関係を管理するテーブルを、前記第1の仮想IPアドレスまたは前記第1の仮想MACアドレスの少なくとも一方で参照して、対応するルータポートを特定し、
    前記ルータは、前記特定したルータポートに対応する、前記L2スイッチが有する複数のスイッチポートの中の1つへ、前記第1の仮想MACアドレスを通知するパケットを送信することにより、前記L2スイッチに、前記第1の仮想MACアドレスに対応するスイッチポートを認識させる
    ことを特徴とする通信制御方法。
  2. 前記テーブルにおいて、前記複数の仮想IPアドレスおよび前記複数の仮想MACアドレスは一意に対応づけられており、仮想IPアドレスと仮想MACアドレスとのペアに対してそれぞれ1つのルータポートが対応づけられている
    ことを特徴とする請求項1に記載の通信制御方法。
  3. 前記ルータは、前記L2スイッチと前記ルータとの間の複数の物理リンクの状態を監視し、
    前記ルータは、前記テーブルにおいて、状態が変化した物理リンクに接続しているルータポートを識別する第1の識別番号を、他のルータポートを識別する第2の識別番号に変更し、
    前記ルータは、前記テーブルにおいて対応するルータポートの識別番号が変更された仮想MACアドレスを、前記第2の識別番号で識別されるルータポートを介して前記L2スイッチに通知して、前記L2スイッチに、通知した仮想MACアドレスとスイッチポートとの対応関係を再学習させる
    ことを特徴とする請求項1または2に記載の通信制御方法。
  4. 前記ルータは、前記L2スイッチからの受信パケットに設定されている宛先IPアドレスまたは宛先MACアドレスの少なくとも一方で前記テーブルを参照して、対応するルータポートをサーチし、
    前記ルータは、前記受信パケットが到着したルータポートと前記サーチにより特定されたルータポートとが一致すれば、前記受信パケットを取り込み、
    前記ルータは、前記受信パケットが到着したルータポートと前記サーチにより特定されたルータポートとが一致しなければ、前記受信パケットを破棄する
    ことを特徴とする請求項1〜3のいずれか1つに記載の通信制御方法。
  5. 複数の仮想IPアドレスおよび前記複数の仮想IPアドレスに対応する複数の仮想MACアドレスが割り当てられている、複数のルータポートを有するルータと、複数の物理リンクを介して前記複数のルータポートに接続する複数のスイッチポートを有するL2スイッチとの間の通信を制御する方法であって、
    前記ルータは、前記複数のルータポートのいずれかを介して、宛先情報として第1の仮想IPアドレスおよび第1の仮想MACアドレスが設定された第1のパケットを受信し、
    前記ルータは、前記第1のパケットに設定されている前記宛先情報に対応する目的装置へ前記第1のパケットを転送し、
    前記ルータは、宛先情報として前記第1の仮想MACアドレスが設定された、前記第1のパケットに応答する第2のパケットを前記目的装置から受信すると、前記第2のパケットの宛先情報を書き換えると共に、前記第2のパケットの送信元情報の中に前記第1の仮想MACアドレスを設定し、
    前記ルータは、前記ルータの記憶部に記憶されている、前記複数の仮想IPアドレスと、前記複数の仮想MACアドレスと、前記複数のルータポートとの対応関係を管理するテーブルを、前記第2のパケットの送信元情報を利用して参照して、対応するルータポートを特定し、
    前記ルータは、前記特定したルータポートを介して前記第2のパケットを前記L2スイッチへ送信することにより、前記L2スイッチに、前記複数のスイッチポートの中から前記第1の仮想MACアドレスに対応するスイッチポートを認識させる
    ことを特徴とする通信制御方法。
  6. 複数の仮想IPアドレスおよび前記複数の仮想IPアドレスに対応する複数の仮想MACアドレスが割り当てられている、複数のルータポートを有するルータと、複数の物理リンクを介して前記複数のルータポートに接続する複数のスイッチポートを有するL2スイッチとの間の通信を制御する方法であって、
    前記ルータは、前記複数の仮想IPアドレスの中の第1の仮想IPアドレスから送信するパケットに、前記第1の仮想IPアドレスに対応する第1の仮想MACアドレスを送信元MACアドレスとして設定し、
    前記ルータは、前記ルータの記憶部に記憶されている、前記複数の仮想IPアドレスと、前記複数の仮想MACアドレスと、前記複数のルータポートとの対応関係を管理するテーブルを、前記第1の仮想IPアドレスまたは前記第1の仮想MACアドレスの少なくとも一方で参照して、対応するルータポートを特定し、
    前記ルータは、前記特定したルータポートを介して前記パケットを前記L2スイッチへ送信することにより、前記L2スイッチに、前記複数のスイッチポートの中から前記第1の仮想MACアドレスに対応するスイッチポートを認識させる
    ことを特徴とする通信制御方法。
  7. 複数の仮想IPアドレスおよび前記複数の仮想IPアドレスに対応する複数の仮想MACアドレスが割り当てられている、複数のルータポートを有するルータに実装されているプロセッサに、
    L2スイッチから、宛先情報として第1の仮想IPアドレスおよび前記第1の仮想IPアドレスに対応する第1の仮想MACアドレスが設定されたパケットを、前記複数のルータポートの中の1つを介して受信する処理、
    前記ルータの記憶部に記憶されている、前記複数の仮想IPアドレスと、前記複数の仮想MACアドレスと、前記複数のルータポートとの対応関係を管理するテーブルを、前記第1の仮想IPアドレスまたは前記第1の仮想MACアドレスの少なくとも一方で参照して、対応するルータポートを特定する処理、
    前記特定したルータポートに対応する、前記L2スイッチが有する複数のスイッチポートの中の1つへ、前記第1の仮想MACアドレスを通知するパケットを送信することにより、前記L2スイッチに、前記第1の仮想MACアドレスに対応するスイッチポートを認識させる処理
    を実行させることを特徴とする通信制御プログラム。
JP2011146055A 2011-06-30 2011-06-30 通信制御方法および通信制御プログラム Withdrawn JP2013013032A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011146055A JP2013013032A (ja) 2011-06-30 2011-06-30 通信制御方法および通信制御プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011146055A JP2013013032A (ja) 2011-06-30 2011-06-30 通信制御方法および通信制御プログラム

Publications (1)

Publication Number Publication Date
JP2013013032A true JP2013013032A (ja) 2013-01-17

Family

ID=47686506

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011146055A Withdrawn JP2013013032A (ja) 2011-06-30 2011-06-30 通信制御方法および通信制御プログラム

Country Status (1)

Country Link
JP (1) JP2013013032A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018137570A (ja) * 2017-02-21 2018-08-30 日本電信電話株式会社 負荷制御システムおよび負荷制御方法
CN109819062A (zh) * 2019-01-25 2019-05-28 视联动力信息技术股份有限公司 一种利用虚拟mac地址入网的方法和装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018137570A (ja) * 2017-02-21 2018-08-30 日本電信電話株式会社 負荷制御システムおよび負荷制御方法
CN109819062A (zh) * 2019-01-25 2019-05-28 视联动力信息技术股份有限公司 一种利用虚拟mac地址入网的方法和装置
CN109819062B (zh) * 2019-01-25 2021-06-11 视联动力信息技术股份有限公司 一种利用虚拟mac地址入网的方法和装置

Similar Documents

Publication Publication Date Title
Li et al. OpenFlow based load balancing for fat-tree networks with multipath support
JP4840236B2 (ja) ネットワークシステム及びノード装置
JP5846221B2 (ja) ネットワークシステム、及びトポロジー管理方法
US20170005950A1 (en) Communication system, control device, processing rule setting method, packet transmission method, and program
US8780836B2 (en) Network system, controller, and network control method
EP3399703B1 (en) Method for implementing load balancing, apparatus, and network system
US20080069114A1 (en) Communication device and method
US9628324B2 (en) Openflow switch and failure recovery method in openflow network
JP5488979B2 (ja) コンピュータシステム、コントローラ、スイッチ、及び通信方法
US20120170477A1 (en) Computer, communication system, network connection switching method, and program
JP5861772B2 (ja) ネットワークアプライアンス冗長化システム、制御装置、ネットワークアプライアンス冗長化方法及びプログラム
US8908702B2 (en) Information processing apparatus, communication apparatus, information processing method, and relay processing method
JP2017092665A (ja) 通信装置および通信方法
CN106375355B (zh) 负载均衡处理方法及装置
JP4559512B2 (ja) パケット転送システムおよびパケット転送方法
US20120051364A1 (en) Distributed routing according to longest match principle
US10523629B2 (en) Control apparatus, communication system, communication method, and program
JPWO2013141191A1 (ja) 制御装置、通信システム、ノード制御方法及びプログラム
JP2013013032A (ja) 通信制御方法および通信制御プログラム
JP5426717B2 (ja) レイヤ2接続装置、通信システム、及び通信方法
US8732335B2 (en) Device communications over unnumbered interfaces
US10298458B2 (en) Distributed system partition
KR20090016281A (ko) 정적 경로 설정 방법 및 그 방법이 구현된 패킷 분배 장치
EP1995917A1 (en) Communication node and communication route selection method
JP5959489B2 (ja) レイヤ2接続装置

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20140902