以下、図面と共に本発明に係る移動体通信システム及びその制御方法の好適な実施形態について詳細に説明する。なお、図面の説明においては同一要素には同一符号を付し、重複する説明を省略する。
まず、図1を参照して、本実施形態に係る制御ノードであるオープンフローコントローラ5を含む移動体通信システム1の構成を示す。図1に示すように、本実施形態に係る移動体通信システム1は、通信端末(UE)2と、ルータ3と、P−GW4と、オープンフローコントローラ5と、オープンフローネットワーク6と、を備えて構成される。移動体通信システム1は、LTE網において機能する移動体通信システムである。
通信端末2は、ユーザが利用する情報通信端末であって、例えば、ノート型PCや、タブレット型コンピュータなどを用いることができる。通信端末2には固定IPアドレスが用いられる(設定される)。通信端末2に固定IPアドレスが用いられるケースとして、例えば、通常は企業LANで用いられているPC端末と同一のIPアドレスを、外出時にノート型PCに割り当てる場合などが考えられる。また、通信端末2はP−GW4に接続する際は、P−GW4に対してAPN(Access Point Name)を指定することで接続先のルータ3を指定する。以下、通信端末2とは移動体通信端末であるものとして説明を行う。よって、後述するP−GW4等も、移動体通信端末に対応しているものである。
ルータ3は、通信端末2を外部ネットワークであるPDN(例えば、企業内LAN)に接続させる機能を有するものである。ルータ3は、後述するオープンフローネットワーク6を介して、P−GW4と接続される、通信端末2の通信相手である。なお、通信相手とは必ずしもルータ3に限定されず、ルータ3がさらにパケットを転送する相手(通信端末2のユーザがパケットを届けたい相手)であってもよい。また、ルータ3は例えばユーザネットワーク(企業内LANなど)におけるルータである。
P−GW4は、LTE網において、通信端末2を外部ネットワークであるPDNに接続するための装置であり、接続された通信端末よって送受信されるパケットの中継を行う中継装置である。同一のPDNに接続するためのP−GW4は、複数台で多重化することによって、通信の信頼性を向上させるとともに、各P−GW4の処理量を分散し、スループットの低下を防止している。図1中では、P−GW4a、P−GW4bの二台で多重化されている。P−GW4a、4bは、いずれも運用状態(両系運用系(両系act))としており、いずれかを予備系として待機させるといった利用のしかたはしていない。P−GW4a、4bは、それぞれ異なるIPプールを管理しているが、通信端末2には固定IPアドレスが設定されているため、P−GW4a、4bの固定IPアドレス用のIPプールは重複しており、その帯域からIPアドレスが通信端末2に設定されている。通信端末2のP−GW4の接続時に、接続先として多重化されたP−GW4a又は4bのいずれかが選択される。通信端末2がP−GW4aとP−GW4bの何れに接続されるかは、移動体通信網おいて判断されて制御される。この判断は、例えば、P−GW4a及びP−GW4bに接続されている通信端末の比率(分散比率)に従って決定される。
P−GW4(P−GW4a及び4b)は図1に示すように、ゲートウェイ部41、検出部42、送信部43を備えている。
ゲートウェイ部41は、P−GW4のゲートウェイとしての機能を有する。ゲートウェイ部41は、通信端末2から当該通信端末2に応じたプロトコル形式のパケットを受信して、必要に応じて適切なプロトコルに変換を行い、パケットを転送(中継)する。ゲートウェイ部41が有するゲートウェイとしての機能は、従来のP−GW4が有しているものと同様である。
検出部42は、通信端末2が自装置(P−GW4)に接続されたことを検出する検出手段である。検出部42は、P−GW4に在圏する移動体通信網に通信端末2が接続される(より具体的には例えば、通信端末2に係る接続に用いられる信号が受信される)ことにより、通信端末2が接続されたことを検出する。検出部42は、通信端末2が接続されたことを検出するとその旨を送信部43に通知する。また、通信端末2による接続において通信端末2からAPNを指定する信号が送信された場合には、そのAPNを送信部43に通知する。
送信部43は、検出部42が通信端末2の接続を検出したことを契機として、通信相手であるルータ3に向かってパケットを送信する送信手段である。当該パケットとして、例えばICMPパケット(ICMP_Echo Request)が考えられる。P−GW4は、接続するPDNを指定する文字列であるAPNを、PDN毎に保持しており、通信端末2がP−GW4に接続した際には、通信端末2によってAPNが指定される。送信部43は、該指定されたAPNを参照して、当該通信端末2が接続したいPDNを特定し、当該PDNのルータを宛先として決定する。なお、通信端末2によってAPNの指定がなかった場合には、送信部43が通信端末2毎に予め記憶したデフォルトのAPNが用いられる。例えば、デフォルトのAPNは、移動体通信網の管理者等によって入力されている。なお、送信部43によって送信されるパケットに含められる送信元アドレスについては、接続された通信端末2のIPアドレスが、宛先アドレスについては、特定されたPDNのルータのIPアドレスが、それぞれ設定される。
オープンフローコントローラ5は、移動体通信システムに含まれる制御ノードであって、オープンフローネットワーク6におけるパケットの送受信に関する制御を行う。オープンフローコントローラ5は従来のオープンフローコントローラが有する機能を有しており、また、図1に示すように、トポロジ情報格納部51と、取得部52と、制御部53と、を備える。
トポロジ情報格納部51は、複数のオープンフロースイッチ間の物理的なつながりを示すトポロジ情報を記憶するトポロジ情報格納手段である。トポロジ情報とは、各オープンフロースイッチ6a〜6dの物理的なつながり情報等であり、具体的には、各オープンフロースイッチ6a〜6dをつなぐケーブルが、それぞれ各オープンフロースイッチ6a〜6dのどのポート同士をつないでいるかという情報や、オープンフローネットワーク6のオープンフロースイッチの数(本実施形態であれば6a〜6dの4つ)の情報などがある。トポロジ情報を有することにより、経路として整合性のあるフロー制御が可能となる。
取得部52は、通信端末2が接続されたP−GW4からルータ3に向けて送信される上りパケットが該P−GW4に接続されたオープンフロースイッチ6a〜6dによって受信された際に、上りパケット情報を取得する取得手段である。上りパケット情報は、該上りパケットが入力された該オープンフロースイッチ6a〜6dのポートを示すポート情報、並びに該上りパケットの送信元アドレス及び宛先アドレスを含む。ここで、オープンフロースイッチのポートとは、物理ポートをいう。取得部52によって取得される上りパケット情報には、通信端末2が接続されたP−GW4から送信される上りパケットが、該P−GW4に接続されたオープンフロースイッチ6a〜6dによって直接、受信された際の上りパケット情報を含む。即ち、該上りパケット情報に含まれるポート情報は、P−GW4に接続されて、通信端末2が接続されたP−GW4から上りパケットが入力された該オープンフロースイッチ6a〜6dのポートを示す。
具体的に、ポート情報及び送信元アドレス、宛先アドレスの取得イメージを図1で説明する。例えば、通信端末2からルータ3を介して接続されるPDN内のサーバに向けて送信されたパケット(上りパケット)をオープンフロースイッチ6aが受信したような場合を考える。いま、通信端末2がP−GW4aに接続されているとすると、オープンフロースイッチ6aは、ポートAから、P−GW4aからの上りパケットが入力されることになる。よって、上りパケットが入力されたオープンフロースイッチ6aのポートとは、Aになる。また、オープンフロースイッチ6aが受信した上りパケットのヘッダ情報から、送信元アドレスは通信端末のアドレス(192.168.1.1)であり、宛先アドレスは、例えば、ルータ3を介して接続されるPDN内のサーバのアドレスであることが特定できる。なお、アドレスとはIPアドレスである。また、パケットのヘッダに格納された、送信元アドレス及び宛先アドレスの設定のされ方は、従来、通信端末2がPDNにパケット送信を行う場合と同様である。
取得部52は、オープンフロースイッチ6a〜6dから送信されたオープンフローコントローラ5への問い合わせを受信することで上りパケット情報を取得する。この問い合わせは、後述するようにオープンフロースイッチ6a〜6dがテーブルに設定されていない内容の上りパケットを受信した場合に行われる。また、この問い合わせには、上りパケット情報の取得元のオープンフロースイッチ6a〜6dを特定する情報が含まれている。取得部52は、取得した上りパケット情報及び取得元のオープンフロースイッチ6a〜6dを特定する情報を、制御部53に出力する。
制御部53は、取得部52によって取得された上りパケット情報及び上りパケット情報の取得元のオープンフロースイッチ6a〜6dを特定する情報と、トポロジ情報格納部51によって格納されたトポロジ情報とから、ルータ3から通信端末2に送信される下りパケットを該通信端末2が接続されたP−GW4に出力するように複数のオープンフロースイッチを制御する制御手段である。制御部53は、下りパケットを、上りパケット情報に含まれるポート情報によって示される、P−GW4に接続されて、通信端末2が接続されたP−GW4から上りパケットが入力された該オープンフロースイッチ6a〜6dのポートから、通信端末2が接続されたP−GW4に出力するように制御する。
具体的には、制御部53は、P−GW4に接続されたオープンフロースイッチ6a〜6dを含む各オープンフロースイッチ6a〜6dについて、上りパケット情報に含まれる宛先アドレス及び上りパケット情報の取得元のオープンフロースイッチ6a〜6dを特定する情報とトポロジ情報とから、上りパケットの出力を行うポートを決定する。出力先のポートの決定は、従来のルーティング技術を用いて行うことができる。制御部53は、該出力を行うポートから該上りパケット情報に含まれる送信元アドレス及び宛先アドレスそれぞれが宛先アドレス及び送信元アドレスとした下りパケットが入力された場合に、該上りパケット情報に含まれるポート情報に示されるポートから下りパケットを出力するように制御する。
また、制御部53は、上りパケット情報に含まれる宛先アドレスのアドレス帯域を特定し、該上りパケットの出力を行うポートから、該上りパケット情報に含まれる送信元アドレスを宛先アドレスとし、該上りパケット情報に含まれる宛先アドレスのアドレス帯域に含まれるアドレスを送信元アドレスとした下りパケットが入力された場合に、該上りパケット情報に含まれるポート情報に示されるポートから下りパケットを出力するように制御する。
制御部53は、各オープンフロースイッチ6a〜6dについて、パケットが入力されたポート、並びに該パケットの送信元アドレス及び宛先アドレスに該パケットを出力するポートを対応付けたテーブル(フローテーブル)を生成して生成したフローテーブルを各オープンフロースイッチ6a〜6dに送信することで、当該フローテーブルに従ってパケットの転送を行うように制御する。
フローテーブルについて、図2(a)により説明する。図2(a)に示すように、フローテーブルは、入力ポートと送信元アドレスと宛先アドレスと出力ポートとを含んでおり、これらの対応表を記録している。フローテーブルを構成する一レコードは、フローエントリという。図2(a)は、P−GW4に接続された通信端末2と、ルータ3を介して接続されるPDN内のサーバとで、送受信されるパケットについてのフローエントリを含んだフローテーブルである。各フローエントリは、入力ポート、送信元アドレス、宛先アドレス(マッチングフィールド)の組合せに該当したパケットを、どの出力ポート(アクション)から転送するか、を規定する情報である。すなわち、図2(a)のフローテーブルにあっては、入力ポートがAであり、送信元アドレスが192.168.1.1、であり、宛先アドレスが、PDN内のサーバである場合(マッチングフィールドがすべて一致した場合)には、出力ポートをCとするものである。
制御部53は、上りパケット情報の取得元のオープンフロースイッチ6a〜6dのフローテーブルに、該上りパケットのフローエントリを生成する。このフローエントリは、取得部52によって取得された上りパケット情報に含まれる入力ポートと送信元アドレスと宛先アドレスとをマッチングフィールドの値とし、決定した出力ポートをアクションとするものである。そして、該上りパケットに対応する下りパケットのフローエントリを生成する。下りパケットのフローエントリは、マッチングフィールドの入力ポートを上りパケットのフローエントリの出力ポートとし、送信元アドレスを、上りパケットのフローエントリの宛先アドレスとし、宛先アドレスを、上りパケットのフローエントリの送信元アドレスとし、アクションの出力ポートを上りパケットのフローエントリの入力ポートとするものである。上記のように、下りパケットのフローエントリは、上りパケットのフローエントリを逆にしたものである。即ち、制御部53は、この下りパケットのフローエントリによって、パケットの出力を行うポートから上りパケット情報に含まれる送信元アドレス及び宛先アドレスそれぞれが宛先アドレス及び送信元アドレスとした下りパケットが入力された場合に、該上りパケット情報に含まれるポート情報に示されるポートから下りパケットを出力するように制御する。
また、フローエントリの生成の際に、生成するフローエントリと競合を生じるフローエントリがフローテーブル中に存在してか否か判断して、競合を生じるフローエントリが存在していると判断した場合には競合を生じるフローエントリを削除することとしてもよい。例えば、上りパケット情報に含まれる送信元アドレス及び宛先アドレスと同一の上りパケットに係るフローエントリがある場合には(パケットに係る通信端末2と通信相手とが同じ場合)、該上りパケットに係るフローエントリと、該上りパケットに対応する下りパケットに係るフローエントリを削除してからフローエントリの生成を生成することとしてもよい。
なお、上記はフローエントリに適合しない上りパケットがオープンフロースイッチ6a〜6dによって受信された場合に該上りパケットに対応する下りパケットに係るフローエントリを作成するものである。フローエントリに適合しない下りパケットがオープンフロースイッチ6a〜6dによって受信された場合には、上述したフローエントリに適合しない上りパケットがオープンフロースイッチ6a〜6dによって受信された場合と同様、該下りパケットに対応する上りパケットに係るフローエントリを作成する。この場合、制御部53は、パケットが、上りパケットであるか下りパケットであるかの判断を行う必要はない。なお、フローエントリに適合しない下りパケットがオープンフロースイッチ6a〜6dによって受信された場合には、必ずしも下りパケットに対応する上りパケットのフローエントリを作成する必要はない(該下りパケットのみのフローエントリを作成してもよい)。この場合、制御部53は、パケットが、上りパケットであるか下りパケットであるかの判断を行う。この判断は、例えば、パケットの宛先アドレス又は送信元アドレスに基づいて行うこととすればよい。あるいは、上りパケットであるか下りパケットであるかの判断は、オープンフロースイッチ6a〜6dによって行われて、オープンフローコントローラ5に通知されてもよい。
具体的に、制御部53によるテーブル設定のイメージについて、図1及び図2を用いて説明する。前提として、取得部52によって、オープンフロースイッチ6aが受信した、通信端末2からルータ3を介して接続されるPDN内のサーバに向けて送信されたパケット(上りパケット)の情報が取得されていたとする。また、トポロジ情報格納部51によって、図1の複数のオープンフロースイッチ間の物理的なつながりが格納されているとする。この場合、上りパケットのヘッダ情報より、宛先アドレスは、PDN内のサーバのアドレスであることが特定できる。また、オープンフロースイッチ6aからルータ3に向けて転送されるパケットは、トポロジ情報より、オープンフロースイッチ6cに転送されるべきであることが特定できる。よって、宛先アドレスとトポロジ情報から、上りパケットの出力を行うオープンフロースイッチ6aのポートはCに決定される。ここまでで、上りパケットについての、入力ポート(A)、出力ポート(C)、送信元アドレス(192.168.1.1)、宛先アドレス(PDN内のサーバのアドレス帯域)が決まる。
通常、一つのPDN内には複数のサーバがあるため、フローテーブルでは、宛先アドレスであるPDN内のサーバのアドレスは、帯域で設定する。当該アドレス帯域には、PDNに対応するルータ3のアドレスも含まれる。アドレス帯域は、ルータ3を含む一つのPDNのアドレス範囲を示すものである。制御部53は、上りパケット情報に含まれる宛先アドレスからアドレス帯域を決定するビットマスク値を特定して、特定したビットマスク値により決定されるアドレス帯域を、フローエントリの宛先アドレスとして設定する。なお、PDN内のサーバが単一である場合には、該単一のサーバのアドレスを宛先アドレスとしてもよい。下りパケットは、上りパケットの入力ポートを出力ポートに、出力ポートを入力ポートに、送信元アドレスを宛先アドレスに、宛先アドレスを送信元アドレスに、それぞれ設定したものとなる。なお、上りパケットについて、宛先アドレスであるPDN内のサーバのアドレスを帯域で設定したのと同様、下りパケットについても、送信元アドレスであるPDN内のサーバのアドレスは帯域で設定する。このようにして設定したオープンフロースイッチ6aのフローテーブルは、図2(a)に示すようになる。
フローテーブルについて、図2(a)により説明する。図2(a)に示すように、フローテーブルは、入力ポートと送信元アドレスと宛先アドレスと出力ポートとを含んでおり、これらの対応表を記録している。フローテーブルを構成する一レコードは、フローエントリという。図2(a)は、P−GW4に接続された通信端末2と、ルータ3を介して接続されるPDN内のサーバとで、送受信されるパケットについてのフローエントリを含んだフローテーブルである。各フローエントリは、入力ポート、送信元アドレス、宛先アドレス(マッチングフィールド)の組合せに該当したパケットを、どの出力ポート(アクション)から転送するか、を規定する情報である。すなわち、図2(a)のフローテーブルにあっては、入力ポートがAであり、送信元アドレスが192.168.1.1、であり、宛先アドレスが、PDN内のサーバである場合(マッチングフィールドがすべて一致した場合)には、出力ポートをCとするものである。
オープンフローネットワーク6は、パケットの転送を行う複数の転送ノードであるオープンフロースイッチを含んで構成される転送網である。オープンフローネットワーク6は、ネットワークの制御技術であり、アドレス情報やポート番号などの組み合わせにより決定される一連の通信を「フロー」として定義して、フロー単位での経路制御を実現するフロー制御ネットワークある。オープンフローネットワーク6は、P−GW4a、4bとルータ3との間に位置してフロー制御を行う。
オープンフローネットワーク6は、複数のオープンフロースイッチ6a〜6dからなる。オープンフロースイッチ6a〜6dは、オープンフローコントローラ5の制御部53からの制御内容に従って、パケットの転送を行う転送ノードである。オープンフロースイッチ6a〜6dは、複数の物理的なポートを備えており、当該ポートを介して別の装置であるルータ3、P−GW4、別のオープンフロースイッチ6a〜6dと接続されており、パケットの送受信を行うことができる。また、オープンフロースイッチ6a〜6dは、オープンフローコントローラ5にも接続されており、情報の送受信を行うことができる。
オープンフロースイッチ6a〜6dは、転送対象のパケットを受信すると、該パケットが自身のフローテーブルに設定されている内容のものか否かを判断する。具体的には、オープンフロースイッチ6a〜6dは、受信された(入力された)パケットが入力した入力ポートを検出すると共に、受信されたパケットのヘッダから該パケットの送信元アドレス及び宛先アドレスを抽出する。オープンフロースイッチ6a〜6dは、取得した入力ポート、の送信元アドレス及び宛先アドレスの組に一致する情報が、自身のフローテーブルに含まれているか否かを判断する。
オープンフロースイッチ6a〜6dは、自身のフローテーブルに設定されている内容の上りパケットを受信したと判断した場合には、当該フローテーブルに従ってパケットの転送(出力)を行う。
オープンフロースイッチ6a〜6dは、自身のフローテーブルに設定されていない内容の上りパケットを受信したと判断した場合に、オープンフローコントローラ5に問い合わせを行う。この問い合わせには、受信したパケットに係る入力ポート、の送信元アドレス及び宛先アドレスが含められる。また、この問い合わせには、オープンフロースイッチ6a〜6d自身を特定する情報が含められる。その後、オープンフローコントローラ5により、当該上りパケットの情報をもとにフローテーブルの情報が更新される。
オープンフロースイッチによる、フローテーブルに従ったパケットのフロー制御について、図2(a)に示したフローテーブルが設定されているオープンフロースイッチ6aの例で説明する。いま、図1に示す通信端末2がP−GW4aに接続されている場合に、通信端末2から、ルータ3を介して接続されるPDN内のサーバに転送されるパケットをオープンフロースイッチ6aが受信したとする。当該受信したパケットの入力ポートはAであり、また、パケットのヘッダ情報から、送信元アドレスは192.168.1.1、であり、宛先アドレスは、PDN内のサーバであると特定できる。図2(a)に示したフローテーブルと比較すると、上りパケット用(図2(a)中の上側)のフローエントリと、マッチングフィールドである入力ポート、送信元アドレス、宛先アドレスの全てが一致するため、出力ポートとして、同フローエントリの出力ポートであるCが選択される。よって、オープンフロースイッチ6aは、当該パケットを出力ポートCから転送する。以上は、オープンフロースイッチのフローテーブルに設定されている内容のパケットを受信した場合のフロー制御である。
一方で、例えば図1中のP−GW4aが何らかの理由で故障していたような場合には、通信端末2は、P−GW4aを使った接続からP−GW4bを使った接続に変更される。この場合に、通信端末2から、ルータ3を介して接続されるPDN内のサーバに転送されるパケットをオープンフロースイッチ6bが受信したとする。なお、オープンフロースイッチ6cには、オープンフロースイッチ6aと同様、図2(a)に示したフローテーブルが設定されているとして説明を行う。オープンフロースイッチ6bが受信したパケットの入力ポートはBであり、また、パケットのヘッダ情報から、送信元アドレスは192.168.1.1、であり、宛先アドレスは、PDN内のサーバであると特定できる。この場合、上りパケットのヘッダ情報より、宛先アドレスは、PDN内のサーバのアドレスであることが特定できる。また、オープンフロースイッチ6bからルータ3に向けて転送されるパケットは、トポロジ情報より、オープンフロースイッチ6cに転送されるべきであることが特定できる。よって、宛先アドレスとトポロジ情報から、上りパケットの出力を行うオープンフロースイッチ6bのポートはCに決定される。ここまでで、上りパケットについての、入力ポート(B)、出力ポート(C)、送信元アドレス(192.168.1.1)、宛先アドレス(PDN内のサーバのアドレス)が決まる。下りパケットは、上りパケットの入力ポートを出力ポートに、出力ポートを入力ポートに、送信元アドレスを宛先アドレスに、宛先アドレスを送信元アドレスに、それぞれ設定したものとなる。このようにして設定したオープンフロースイッチ6bのフローテーブルは、図2(d)に示すようになる。すなわち、上りパケットは、オープンフロースイッチ6bからオープンフロースイッチ6cへ出力される。オープンフロースイッチ6cのフローテーブルである図2(a)に示したフローテーブルと比較すると、上りパケット用(図2(a)中の上側)のフローエントリの入力ポート(A)と、受信したパケットの入力ポート(B)とが一致していないことがわかる。
この場合、オープンフロースイッチ6cは、オープンフローコントローラ5の取得部52に問い合わせを行う。そして、制御部53は、取得部52が取得した上りパケットの情報、オープンフロースイッチ6cを特定する情報及びトポロジ情報格納部51が格納しているトポロジ情報に基づいて、新たなフローテーブルを設定する。具体的には、上りパケットのヘッダ情報より、宛先アドレスは、PDN内のサーバのアドレスであることが特定できる。また、オープンフロースイッチ6cからルータ3に向けて転送されるパケットは、トポロジ情報より、ルータ3に転送されるべきであることが特定できる。よって、宛先アドレスとトポロジ情報から、上りパケットの出力を行うオープンフロースイッチ6cのポートはCに決定される。ここまでで、上りパケットについての、入力ポート(B)、出力ポート(C)、送信元アドレス(192.168.1.1)、宛先アドレス(PDN内のサーバのアドレス)が決まる。下りパケットは、上りパケットの入力ポートを出力ポートに、出力ポートを入力ポートに、送信元アドレスを宛先アドレスに、宛先アドレスを送信元アドレスに、それぞれ設定したものとなる。このようにして設定したオープンフロースイッチ6cのフローテーブルは、図2(d)に示すようになる。なお、図2(d)に示す新たなフローテーブルを設定する前提として、図2(a)に示した元のフローテーブルが削除される。
また、オープンフローネットワーク6は、必ずしも複数のオープンフロースイッチを有する必要はなく、オープンフロースイッチが単体であっても良い。即ち、一つのオープンフロースイッチにおける異なるポートそれぞれに多重化されたP−GW4それぞれが接続されていてもよい。この場合の、オープンフロースイッチの機能や、フローテーブルとして保持する情報については、オープンフロースイッチを複数構成としたときと同様である。
図3は、本発明の実施形態に係る制御ノードであるオープンフローコントローラのハードウェア構成を示す図である。図3に示すようにオープンフローコントローラは、CPU101、主記憶装置であるRAM102及びROM103、通信を行うための通信モジュール104、並びにハードディスク等の補助記憶装置105等のハードウェアを備えるコンピュータを含むものとして構成される。これらの構成要素がプログラム等により動作することにより、上述した各機能が発揮される。
引き続いて、図4のシーケンス図を用いて、本実施形態に係る移動体通信システムのパケット転送処理である通信制御方法について説明する。
なお、当該処理の前提条件として、通信端末2には固定IPアドレス(192.168.1.1)が設定されており、P−GW4a、4bは両系運用系(両系act)で構成されているものとし、また、本処理の開始時には各オープンフローテーブル6a〜6dにはフローテーブルが設定されていないものとする。また、本処理では、P−GW4は、検出部42及び送信部43を備えない構成とする。
まず、通信端末2が移動体通信網に在圏して、接続されるP−GW4として決定されたP−GW4aと接続する。宛先アドレスとして、ルータ3を介して接続されるPDN内のサーバのアドレスを指定したパケットを送信する(S01)。通信端末2がP−GW4aと接続した際に最初に送信するパケットは、例えば、PDNである企業LANへ接続するための認証要求のパケット等である。P−GW4aとP−GW4bのいずれに通信端末2が接続されるかは、P−GW4a及びP−GW4bに接続されている通信端末の比率(分散比率)に従って決定される。P−GW4aは、パケットを、接続されたオープンフロースイッチであるオープンフロースイッチ6aに転送する(S02)。この場合には、オープンフロースイッチ6aのポートAが入力ポートとなる。
次に、オープンフロースイッチ6aは自身のフローテーブルに、転送されたパケットの入力ポート、送信元アドレス、宛先アドレスに対応するフローエントリが存在するか判断する。前提条件に示したように、各オープンフローテーブル6a〜6dにはフローテーブルが設定されていないため、オープンフロースイッチ6aは、当該パケットがフローテーブルにマッチしないことを認識する(S03)。
オープンフロースイッチ6aは、転送されたパケットがフローテーブルにマッチしないため、オープンフローコントローラ5に、フローテーブルの設定を要求するための問い合わせを行う(S04)。オープンフローコントローラ5では、取得部52が該問い合わせを受信することで取得する(S04、取得ステップ)。取得部52は受信した該問い合わせを制御部53に入力する。
オープンフローコントローラ5の制御部53は、オープンフロースイッチ6aからの要求に基づいて、フローテーブルを設定する。フローテーブルの設定の仕方は上述したとおりである。制御部53は、図2(a)に示した、上りパケットのフローエントリ及び下りパケットのフローエントリを設定し、オープンフロースイッチ6aのフローテーブルとして、当該フローテーブルを更新(設定)する(S05、制御ステップ)。
S05において、オープンフロースイッチ6aのフローテーブルが設定されたため、オープンフロースイッチ6aは、当該フローテーブルに基づいて、出力ポートCからパケットを転送し(S06)、パケットはオープンフロースイッチ6cに転送される。
オープンフロースイッチ6cは入力ポートAからパケットを受信すると、フローテーブルが設定されていない状態であるため、当該パケットがフローテーブルにマッチしないことを認識し(S07)、オープンフローコントローラ5に、フローテーブルの設定を要求するための問い合わせを行う(S08)。オープンフローコントローラ5では、取得部52が該問い合わせを受信することで取得する(S08、取得ステップ)。取得部52は受信した該問い合わせを制御部53に入力する。
オープンフローコントローラ5の制御部53は、オープンフロースイッチ6cからの要求に基づいて、フローテーブルを設定する。上述したとおり、トポロジ情報から通信経路を決定し、制御部53は、トポロジ情報から決定した通信経路に基づいて、オープンフロースイッチ6cのフローテーブルとして、上りパケットを転送する際の、「入力ポート:A、送信元アドレス:192.168.1.1、宛先アドレス:サーバ側のアドレス、出力ポートC」というフローエントリと、下りパケットを転送する際の、「入力ポート:C、送信元アドレス:サーバ側のアドレス、宛先アドレス:192.168.1.1、出力ポートA」というフローエントリを設定する。当該フローテーブルは図2(a)に示すようになる。そして、制御部53は、オープンフロースイッチ6cのフローテーブルとして、当該フローテーブルを更新(設定)する(S09、制御ステップ)。
S09において、オープンフロースイッチ6cのフローテーブルが設定されたため、オープンフロースイッチ6cは、当該フローテーブルに基づいて、出力ポートCからパケットを転送し(S10)、パケットはルータ3に転送される。ルータ3からPDN内のサーバへのパケット転送は、ルータ3のルーティングテーブルに従って行われる。
その後、PDN内のサーバ側から通信端末2に向けてパケットが転送されてきた場合には、ルータ3は、自身のルーティングテーブルに従って、オープンフロースイッチ6cにパケットを転送する(S11)。
オープンフロースイッチ6cは、上りS09においてオープンフローコントローラ5から設定されたフローテーブルの下りパケット転送用のフローエントリに従って、出力ポートAからパケットを転送するため(S12)、パケットはオープンフロースイッチ6aに転送される。オープンフロースイッチ6aは入力ポートCからパケットを受信すると、S05において設定されたフローテーブルの、下りパケット転送時のフローエントリに従って、出力ポートAからパケットを転送する(S13)。
オープンフロースイッチ6aから転送されたパケットは、P−GW4aにおいて受信され、通信端末に転送される(S14)。
以上が、オープンフローコントローラ5によるフローテーブルの設定及びオープンフローネットワーク6の各オープンフロースイッチによるパケット転送処理である。なお、フローテーブルの設定後、通信端末2から後続パケットが転送された場合には、設定済みのフローテーブルに従って、同一のルートでパケット転送処理が行われる(S15)。
次に、下りパケットについて、何らかの理由でルータ3が通常と異なるオープンフロースイッチにパケットを転送した場合の処理について説明する。
上述したとおり、ルータ3から下りパケットを通信端末2に転送する際は、まず、オープンフロースイッチ6cにパケットが転送されるのが通常である。いま、何らかの理由により(例えばオープンフロースイッチ6cとルータ3間の断線による障害などの要因によって)、ルータ3がパケットをオープンフロースイッチ6dに転送したような場合を考える。
ルータ3は、下りパケットをオープンフロースイッチ6dに転送する(S16)。オープンフロースイッチ6dは、フローテーブルが存在しない状態なので、当該パケットがオープンフロースイッチ6dのフローテーブルにマッチしないことを認識する(S17)。
オープンフロースイッチ6dは、転送されたパケットがフローテーブルにマッチしないため、オープンフローコントローラ5に、フローテーブルの設定を要求するための問い合わせを行う(S18)。
オープンフローコントローラ5の制御部53は、トポロジ情報から決定した通信経路に基づいて、オープンフロースイッチ6dのフローテーブルとして、上りパケットを転送する際の、「入力ポート:A、送信元アドレス:192.168.1.1、宛先アドレス:サーバ側のアドレス、出力ポートB」というフローエントリと、下りパケットを転送する際の、「入力ポート:B、送信元アドレス:サーバ側のアドレス、宛先アドレス:192.168.1.1、出力ポートA」というフローエントリを設定する。当該フローテーブルは図2(b)に示すようになる。そして、制御部53が、オープンフロースイッチ6dのフローテーブルとして、当該フローテーブルを更新(設定)する(S19)。
S19において、オープンフロースイッチ6dのフローテーブルが設定されたため、オープンフロースイッチ6dは、当該フローテーブルに基づいて、下りパケットを出力ポートAから転送する(S20)。
オープンフロースイッチ6cは入力ポートDからパケットを受信する。いま、障害などの要因がない状態では、オープンフロースイッチ6cは、図2(a)に示すフローテーブルが設定されている。図2(a)に示すように、オープンフロースイッチ6cのフローテーブルには、送信元アドレスがPDN内のサーバであって、宛先アドレスが通信端末のものである場合に、入力ポートはDとなっていないため、パケットを転送することはできない(フローテーブルが設定されていない状態である)。よって、当該パケットがフローテーブルにマッチしないことを認識し(S21)、オープンフローコントローラ5に、フローテーブルの設定を要求するための問い合わせを行う(S22)。
オープンフローコントローラ5の制御部53は、オープンフロースイッチ6cからの要求に基づいて、フローテーブルを設定する。上述したとおり、オープンフローコントローラ5はトポロジ情報から通信経路を決定するため、通信端末2への下りパケットはオープンフロースイッチ6cのポートAから転送することを決定できる。
制御部53は、トポロジ情報から決定した通信経路に基づいて、オープンフロースイッチ6cのフローテーブルとして、下りパケットを転送する際の、「入力ポート:D、送信元アドレス:サーバ側のアドレス、宛先アドレス:192.168.1.1、出力ポートA」というフローエントリと、上りパケットを転送する際の、「入力ポート:A、送信元アドレス:192.168.1.1、宛先アドレス:サーバ側のアドレス、出力ポートD」を作成し、当該フローテーブルを設定する。当該フローテーブルは図2(c)に示すようになる。そして、制御部53が、オープンフロースイッチ6cのフローテーブルとして、当該フローテーブルを更新(設定)する(S23)。なお、図2(c)に示す新たなフローテーブルを設定する前提として、図2(a)に示した元のフローテーブルが削除される。
S23において、オープンフロースイッチ6cのフローテーブルが設定されたため、オープンフロースイッチ6cは、当該フローテーブルに基づいて、出力ポートAからパケットを転送し(S24)、パケットはオープンフロースイッチ6aに転送される。オープンフロースイッチ6aは入力ポートCからパケットを受信すると、S05において設定されたフローテーブルの、下りパケット転送時のフローエントリ(図2(a))に従って、出力ポートAからパケットを転送する(S25)。
オープンフロースイッチ6aから転送されたパケットは、P−GW4aにおいて受信され、通信端末2に転送される(S26)。
次に、P−GW4a、又はP−GW4bからルータ3を介して接続されるPDN内のサーバに向けての所定のパケット送信処理について説明する。即ち、P−GW4が検出部42及び送信部43を備えない構成である。ここまで説明した処理は、通信端末2がP−GW4a、又はP−GW4bに接続したタイミングで、必ず通信端末2からルータ3方向に流れるパケット(上りパケット)があることを期待している。よって、通信端末2からルータ3方向に流れるパケットが始めに無ければ、適切なフローテーブルがオープンフローネットワーク6の各オープンフロースイッチに設定されず、ルータ3から通信端末2方向へパケットを転送することができないという制限がある。
上記制限への対応として、通信端末2がP−GW4a又はP−GW4bに接続されたタイミングで、該接続されたP−GW4a又はP−GW4bからルータ3に向かって所定のパケットを送信する。このことにより、初めに上りパケットを送信し、適切なフローテーブルを設定することができる。なお、当該所定のパケットは中継装置であるP−GW4a又はP−GW4bから送信されるが、送信元アドレスは通信端末2のアドレスである。また、宛先アドレスは、ルータ3のアドレスである。
当該処理を行う場合は、上述したS01〜S14の処理において、以下の処理が異なる。S01においては通信端末2がサーバ側のアドレスを指定したパケットを送信する必要があったが、当該処理においては、通信端末2がP−GW4a又はP−GW4bに接続されたタイミングで、P−GW4の検出部42が自装置に接続されたことを検出する(検出ステップ)。続いて、P−GW4a又はP−GW4bの送信部43から所定のパケットであるICMP(Internet Control Message Protocol)パケット(ICMP_Echo Request)が送信される(図4のS02,S06のパケットがICMPパケットとなる)(送信ステップ)。また、S10における、オープンフロースイッチからルータ3へのパケット送信についても、所定のパケットである、ICMP_Echo Requestが送信される。また、S11におけるルータ3側からオープンフロースイッチへの下りパケット送信及び、S12、S13におけるオープンフロースイッチからP−GW4aへの下りパケット送信においては、所定のパケットである、ICMP_Echo Replyが送信される。上りパケットが確実に送信されることで、各オープンフロースイッチのフローテーブルが設定され、下りパケットがルータ3側から送られた場合にも、確実に適切なP−GW4にパケットを転送することができる。
次に、本実施形態に係る移動体通信システム1の作用・効果について説明する。このオープンフローコントローラ5(制御ノード)では、制御部53が、上りパケット情報とトポロジ情報とに基づいて、オープンフロースイッチが下りパケットを通信端末2が接続されたP−GW4に出力できるように制御するため、P−GW4が多重化されており、通信端末2に固定IPアドレスが設定されている場合にも、下りパケットを、適切なP−GW4に確実に転送することができる。
以上より、本オープンフローコントローラ5によれば、多重化されたP−GW4に接続された通信端末2に固定IPアドレスが設定されている場合にも、ルータ3から通信端末2へのパケット転送を確実に行うことができる。
また、本実施形態に係るオープンフローコントローラ5において、制御部53は、P−GW4に接続されたオープンフロースイッチについて、上りパケット情報に含まれる宛先アドレスとトポロジ情報とから、上りパケットの出力を行うポートを決定し、該出力を行うポートから該上りパケット情報に含まれる送信元アドレス及び宛先アドレスそれぞれが宛先アドレス及び送信元アドレスとした下りパケットが入力された場合に、該上りパケット情報に含まれるポート情報に示されるポートから下りパケットを出力するように制御することにより、上りパケット情報に基づいて、下りパケットを転送することを確実に実施することができる。
また、本実施形態に係るオープンフローコントローラ5において、制御部53は、上りパケット情報に含まれる宛先アドレスのアドレス帯域を特定し、該上りパケットの出力を行うポートから、該上りパケット情報に含まれる送信元アドレスを宛先アドレスとし、該上りパケット情報に含まれる宛先アドレスのアドレス帯域に含まれるアドレスを送信元アドレスとした下りパケットが入力された場合に、該上りパケット情報に含まれるポート情報に示されるポートから下りパケットを出力するように制御することにより、特定のアドレス帯域に含まれるアドレスを送信元アドレスとした下りパケットを、確実に転送することができる。
また、本実施形態に係るオープンフローコントローラ5において、制御部53は、各オープンフロースイッチについて、パケットが入力されたポート、並びに該パケットの送信元アドレス及び宛先アドレスに該パケットを出力するポートを対応付けたテーブルを生成して、当該テーブルに従ってパケットの転送を行うように制御することにより、設定したテーブルに従って簡易にフロー制御を行うことができる。
また、本実施形態に係るオープンフローコントローラ5において、取得部52は、オープンフロースイッチがテーブルに設定されていない内容の上りパケットを受信した場合に行うオープンフローコントローラ5への問い合わせを受信することで上りパケット情報を取得することで、直前の通信をもとに、簡易かつタイムリーに上りパケット情報を取得することができ、テーブルの最新化を容易に行うことができる。
また、本実施形態に係る移動体通信システム1において、オープンフローコントローラ5と多重化されP−GW4とを含む通信システムであって、P−GW4は、通信端末2が接続されたことを検出する検出部42と、検出部42による検出を契機として、ルータ3の方向にパケットを送信する送信部43と、を備えることで、テーブルの設定を下りパケットの送信前に確実に行うことができ、ルータ3から通信端末2へのパケットが転送できないという事態を防止できる。なお、P−GW4とオープンフローコントローラ5間において、専用に特別なインターフェース(プロトコル)を実装することでも、通信端末2がP−GW4に接続したことを通知することはできるが、本方式であれば、オープンフローの枠組みの中で実装でき、簡潔な制御となる。
以上、本発明の好適な実施形態について説明したが、本発明は上記実施形態に限られるものではなく、各請求項に記載した要旨を変更しない範囲で変形し、又は他ものに適用したものであってもよい。
例えば、ゲートウェイ装置はP−GW4としたが、これに限定されるものではなく、他のゲートウェイ装置、又は同様の機能を有する中継装置であってもよい。
また、移動体通信システム1は、LTE網において機能する移動体通信システムとしたが、これに限定されるものではなく、他の通信網においても用いることができる。
また、図1に示すように、多重化されたP−GW4a及びP−GW4bと接続されたオープンフロースイッチはそれぞれ、オープンフロースイッチ6aとオープンフロースイッチ6bとし、別のオープンフロースイッチとしたが、同一のオープンフロースイッチとしてもよく、この場合にも、P−GW4a及びP−GW4bと接続するポートによって、バケットの転送先を判別することができる。
また、通信端末2は、移動体通信端末として説明したが、これに限定されるものではなく、移動体通信端末以外の通信端末であってもよい。