以下、図面を参照して本発明の実施の形態(本実施の形態)を説明する。以下で説明する実施の形態は一例に過ぎず、本発明が適用される実施の形態は、以下の実施の形態に限られるわけではない。例えば、本実施の形態では、広域化する対象の拠点のネットワークの例としてZigBee RANを使用しているが、本発明を適用できるネットワークはZigBee RANに限られない。例えば、RAN内に存在するCoordinator相当のノードが宛先のL2アドレスを与えられた時に、適切にルーティングできる機能を持つ無線ネットワークであればどのようなネットワークでもよい。
(実施の形態の概要)
本実施の形態では、現在稼働している非IPのRANを構成する要素である、RANノードハードウェア、ファームウェア、及びアプリケーションソフトウェアに一切の改造を加えることなく、広域化、スケールアウト、及び多重化を実現する。本実施の形態は、アプリケーション及び、RANノードをIP化して実現するのではなく、IPネットワークは単なる手段としてRAN及びアプリケーションからは隠蔽されている。
本実施の形態では、アプリケーションからは、複数のRANが統合された一つの大きなRANとして見えるような広域化を実現する。これを実現するために、本実施の形態に係るシステムでは、アプリケーションの発信したデータが、どのRAN、すなわちL2トンネルに属しているのかをWAN側で認識して振り分ける機能を持つ。L2トンネルに属するノードを管理することで、拠点側では複数のRANが存在し、複数のL2トンネルが開設された場合にも適切なトンネルにデータが送れるようになる。
本実施の形態では、単にWANで小規模なネットワークの広域化を実現するのみではなく、小規模な複数のネットワークを統合することで一つの大きなネットワークに見せるスケールアウト、及び多対多接続を行うことで一拠点に複数のRANが存在した場合にも適切なアプリケーションへのアクセスを許容する多重化を合わせて実現している。
(用語について)
以下、本実施の形態で使用する用語について説明しておく。なお、以下で説明する用語の意味は、必ずしも以下の説明の内容に限定されるわけではない。
RAN:小規模な無線エリアネットワーク。本実施の形態ではZigBeeを想定する。IPのようなネットワークレイヤ機能を持たず、L2アドレスを指定することでRANに属するノードが指定されるデータリンクレイヤ機能のみを持つ。いわゆる非IPネットワークである。
親機:アプリケーションと直接接続されるRAN内ノード。RANに一つ存在する。多くのRANでは、親機はホストコンピュータとシリアルインタフェースで接続される。ZigBeeのcoordinatorは親機の例である。
アプリケーション:全てのノードが通信する対象のソフトウェア。例えば温度センサを持つノードを持つZigBeeネットワークに対するアプリケーションは温度データを収集、蓄積する機能を持つ。通信相手は親機であるため、シリアルインタフェースを読み書きする。RANはIP化されていないため、アプリケーションもIP対応になっていない。
前述したとおり、本実施の形態では、「アプリケーション」を、特に断らない限り、ソフトウェアをコンピュータ上で実行させることにより実現される機能として使用している。上記は、当該機能の説明である。
WAN:RAN(の親機)とアプリケーション間に挿入されるIPネットワーク上で動作するL2トンネルで構成されるネットワーク。
広域化:RAN(の親機)とアプリケーションをIPネットワークを使い遠隔接続すること。つまり、RANの広域化とはRANノード間の距離を拡大するのではなく、coordinator等の親機とアプリケーション間の距離を拡張することで、遠隔でRANへのアクセスを可能にすることである。
スケールアウト:広域化により、一つのアプリケーションに複数拠点からRANが接続された場合にも、アプリケーションは個々のRANを識別することなく、一つのRANに接続されているように見せること。
多重化:一つの拠点に複数のRANが存在する場合にはアプリケーションも複数存在する。このようなネットワークが広域化された場合にも、ノードが適切なアプリケーションと通信できるように、WANがアクセス制御を行うこと。ルーティングを使って一つのRANに接続されている複数のノードを論理的に分離して、あたかも複数のRANが一拠点に存在しているように見せる手法も含む。
ルーティング:アプリケーションや、RAN内のノードから得られたデータを、どのトンネルに送出すべきかを決定する機能。トンネルから得られたデータは、アプリケーションもしくは親機に転送されるためルーティングは必要ない。親機に転送されたデータは、RANの機能により適切なノードまで届けられるため、WANでのルーティングは行われない。WANでのルーティングは、データを送出すべき適切なトンネルの選択である。
(広域化のアーキテクチャについて)
本実施の形態におけるWANのベースとなっている広域化のアーキテクチャについて説明する。このアーキテクチャ自体は非特許文献3、4、特許文献1等に記載されているものであるため、以下では概要を説明している。
本実施の形態では、図3に示したZigBee−IPゲートウェイ方式とは異なり、図4に示すように、トンネルを使用したブリッジ方式を採用している。この方式では、アプリケーション30はシリアルインタフェースへの読み書きを行う非IPソフトウェアのまま、追加されたトンネル終端の機能10、20を使用することで、広域化を実現できる。すなわち、もともとRANの敷設されている拠点と同一拠点で動作していた非IP対応のアプリケーションに改造を加えることなく、そのままデータセンタに移動させることを可能としている。なお、特許文献1等に記載された従来技術のみではスケールアウトは実現できず、そのために後述するルーティング等の仕組みが必要である。
図5は、広域化のアーキテクチャをより詳細に示した図である。親機(coordinator)とアプリケーション30間はインターネットやVPNのようなIPネットワーク50で接続されている。トンネルは、アプリケーション30と親機間のL2フレームを疎通させるL2トンネルであり、例えばL2TPv3(非特許文献5)などを使用することができる。
トンネルの両端にはトンネル終端機能をもつソフトウェアがコンピュータ上に配置される。
RAN40側に配置されるソフトウェアは親機(coordinator)にとってみれば、アプリケーションのように見えるので擬似アプリケーションと呼ぶ。なお、擬似アプリケーションは、コンピュータ(端末)で実行されることによりその機能を実現するので、その端末を擬似アプリケーション端末20と呼び、図5にもそのように記載している。
一方アプリケーション30側に配置されるソフトウェアがコンピュータ上で動作することにより実現される機能は、アプリケーション30によってはRAN40の親機として振る舞うために、擬似親機10と呼ぶ。擬似親機10は単独の装置であってもよいし、アプリケーション30が動作する装置(コンピュータ)と同じ装置であってもよい。
擬似アプリケーション端末20は、擬似親機10との間でトンネルを生成する。RAN40側との接続はシリアルインタフェースを介しており、当該インタフェースから読み込んだデータをトンネルに送信する。また、トンネルから読み出したデータはシリアルインタフェースに送信する。図5に示すL2送受信部22が、シリアルインタフェースとの間のデータ送受信を行い、トンネル終端部21が、トンネルとの間のデータ送受信を行う。
トンネルプロトコルについては、データ送信と制御信号が重畳できることが望ましい。例えばL2TPv3では、データ送受信とは別に制御信号の送受信ができるので、本システムに適用可能であるが、L2TPv3に限定するものではない。
図5に示すとおり、擬似親機10はアプリケーション30側で動作し、擬似アプリケーション端末20との間でトンネルを開設する。擬似アプリケーション端末20から送られてきたデータは、RAN40の親機から読み取られたデータであるので、アプリケーション30に渡される。アプリケーション30から発信されたデータはRAN40の親機に渡されるべきなので、トンネルに送信されRAN40に送られる。
アプリケーション30は非IPであることが多く、RAN40とのデータのやりとりはシリアルインタフェースを介する。しかし、本実施の形態に係るシステムではアプリケーション30側には実際にはRAN40が存在しないので、シリアルインタフェースドライバ11はハードウェアと接続されるのではなくTAPとして擬似親機ソフトウェアと接続される形態をとる。図5に示すとおり、擬似親機10は、TAPドライバ11との接続通信を行うL2送受信部12と、トンネルとの間のデータ送受信を行うトンネル終端部13を含む。このような構成により、アプリケーション30は、あたかも動作しているコンピュータのシリアルインタフェース経由でRAN40に接続されているように振る舞える。このために広域化前と同じアプリケーションを広域化後にもそのまま使い続けることができる。
(スケールアウトのためのアーキテクチャについて)
上述した広域化アーキテクチャをそのまま複数のRANに適用し、トンネル毎にシリアルインタフェースを生成して一つのアプリケーション30からアクセスさせることは可能である。この場合、図6に示すように、一台のコンピュータに複数のシリアルインタフェースが搭載され、擬似親機10A、10B、10Cを介して、その各々にRANが接続されているような構成になる。この方法では、アプリケーション30は、個々のRANにどのノードが接続されているのかを管理する必要がある。アプリケーション30は、あるRANノードにアクセスしようとすると、どのシリアルインタフェースに対してデータを書き込むべきかを知っていなければならない。
L2アドレスが与えられたときに、どのRANにデータを送信すべきかを決定する機能をルーティングということとする。RANが広域化されていない場合に、数十メートルの範囲内で複数のRANが同時に存在してそれを一つのアプリケーションからアクセスするようなケースは稀であると考えられ、複数RANが共存したとしても、それぞれに別のアプリケーションが存在して、その各々のアプリケーションは一つのRANのみアクセスすると考えられる。
すなわち既存のアプリケーションはルーティング機能を持っていないと想定される。また、運用中に、エンドノードが異なるRANに接続替えをされた場合、アプリケーションは即時にその事実を知るすべがない。このために、図6に示す方式では、広域化ができても複数のRANに同時アクセスするスケールアウトが実現できない。従って、これを実現するには、アプリケーションにルーティング機能を追加する改造を加えなければならない。これではアプリケーションをそのまま使うという目的を達成することができない。
(本実施の形態に係るシステムの基本構成)
そこで、本実施の形態では、擬似親機側にルーティング機能(詳細は後述)を備えることで、図7に示す構成を可能としている。図7に示す構成では、複数のRANが集約されていたとしても、アプリケーション30からはそれが論理的に統合され一つの巨大なRANに見える。つまり、広域化とスケールアウトをアプリケーションの変更なく実現できる。なお、図7は概要を示しており、アプリケーション30側の擬似親機100とともに、RAN側において擬似アプリケーション端末200が存在する。擬似親機100と擬似アプリケーション端末200とを有するシステムは、通信システムの例である。
図8は、擬似親機100と擬似アプリケーション端末200の機能構成を示す図である。図8に示すように、擬似親機100は、通信部110、端末管理機能部120、ルーティング機能部130、端末制御機能部140、記憶部150を含む。これらの機能部のうち、通信部110は、既に説明したL2送受信部12やトンネル終端部13、及び、トンネル生成機能等、データの通信に関わる機能を有する。記憶部150は各種のテーブルやデータを格納する。端末管理機能部120、ルーティング機能部130、端末制御機能部140の機能については追って詳細に説明する。
擬似アプリケーション端末200は、通信部210、端末管理機能部220、アクセス制御部230、記憶部240を含む。これらの機能部のうち、通信部210は、既に説明したL2送受信部22やトンネル終端部21、及び、トンネル生成機能等、データの通信に関わる機能を担う。記憶部240は各種のテーブルやデータを格納する。端末管理機能部220、端末管理機能部220、アクセス制御部230の機能については追って詳細に説明する。
(ルーティングテーブルの生成について)
擬似親機100は1インスタンスで複数のL2トンネルを収容することが可能であり、アプリケーション30との間は一つのシリアルインタフェースドライバで接続する。アプリケーション30の発信するデータには宛先であるL2アドレスが含まれるが、その宛先のノードがどのRANに所属しているのかを知っていなければ、適切なトンネルを選び出しデータを送信することができない。そこで、本実施の形態では、図9に示すようにして、ルーティングテーブルを生成することとしている。
図9に示すように、擬似アプリケーション端末200の端末管理機能部220は、擬似アプリケーション端末200に接続されているRAN上のノードのL2アドレスの一覧を、接続中端末管理テーブル250として記憶部240に保持し、管理している。端末管理機能部220は、擬似アプリケーション端末200に接続されているRANに所属する全てのノードのL2アドレスをトンネルT1を介して擬似親機100に通知する。
擬似親機100の端末管理機能部120は、トンネル毎に受信するRANのノードのL2アドレス一覧表からルーティングテーブル160を生成し、当該ルーティングテーブル160を記憶部150に格納する。図9に示すように、ルーティングテーブル160は、L2アドレスとそのノードが存在するRANが接続されるトンネルのトンネルID(拠点を識別する情報でもある)とを対応付けた構造を有する。端末管理機能部120は、トンネルを介して受信したL2アドレスと、当該トンネルのトンネルIDとを対応付けることでルーティングテーブル160を生成することができる。
擬似アプリケーション端末200の端末管理機能部220は、RANに新しいノードが接続されたり、接続ノードが離脱したりすると、接続中端末管理テーブル250を更新する。端末管理機能部220は、接続中端末管理テーブル250に更新があると、接続中端末管理テーブル250に対応するトンネルの先の擬似親機100に、更新イベント(例:A4追加、A3削除等)を送信する。更新イベントを受信した擬似親機100の端末管理機能部120は、更新イベントの内容に応じて、ルーティングテーブル160へのアドレス追加や削除を行う。これにより、擬似親機100側のルーティングテーブル160を最新情報に維持できる。
(ルーティング機能について)
次に、擬似親機100のルーティング機能部130によるルーティングの処理動作について、図10を参照して説明する。
アプリケーション30は一つのシリアルインタフェースを介して、RANに対してデータ通信を試みる(データを送信する)。擬似親機100がアプリケーション30からデータを受信すると、ルーティング機能部130は、データに含まれる宛先L2アドレスを抽出し、当該宛先L2アドレスに基づきルーティングテーブル160を検索することにより、当該宛先L2アドレスに対応するトンネルIDを抽出し、データを送信すべきトンネルを得ることができる。ルーティング機能部130が当該トンネルにデータを送り出すことで、データは宛先のRANに届き、RAN内で宛先のノードまで届けられる。図10の例では、宛先L2アドレス=A3に対し、トンネルT1が探し出されたことが示されている。
本実施の形態において、擬似親機100がトンネルから受信したデータは全てアプリケーション30に送られるだけなので、トンネルから受信するデータについてのルーティング機能は不要である。ルーティング機能が動作するのは、アプリケーション30からトンネルへの方向のみである。
擬似親機100にルーティング機能部130を実装することにより、アプリケーション30は1つの擬似親機100のみと接続されるので、実際には複数のRANが一箇所に集約されていても、アプリケーション30からは論理的に一つのRANに接続されているように見える。これにより、アプリケーション30に機能を追加することなく、複数拠点に展開される複数のRANを一つのアプリケーションインスタンスで動作させることができる。
従来より移動端末のモビリティを実現するための多数のネットワークアーキテクチャが提案されてきており、非特許文献6、7ではそれらのサーベイが報告されている。特にトンネルを使ってルーティングテーブルを生成する方式としてMobileIPが知られている(非特許文献8、9)。ただしこれらの方式は、もともとネットワークアドレスの中に暗黙的に埋め込まれていたロケーションIDと端末識別子としてのネットワークアドレス(IPではネットワークマスクとホストIDが相当する)を分離して、端末のモビリティを実現することを目的としている。一方、本実施の形態に係る技術ではL2アドレスそのものを使ってルーティングのキーとする点が異なっている。
本実施の形態に係る技術は、積極的にノードのモビリティを推奨することを目的とするものではなく、あくまで狭いエリアで使われていたRANを広域化、スケールアウトすることを目的とする。ただし、本発明はこの目的に限定されるわけではない。このRANに接続されているノードのL2アドレスを管理することで、副次的にノードのモビリティが実現される。
(アクセス制御機能)
次に、アクセス制御機能に関して図11を参照して説明する。
上記のように、擬似親機100にルーティングテーブル160を持たせたが、本実施の形態では、更に、擬似親機100に、ルーティングテーブル160と同一構造を持つホワイトリスト170も持たせることでRANに接続できるノードを制御することとしている。ホワイトリスト170はアクセスコントロールリストの一例である。
ホワイトリスト170は、RANに接続を許可するL2ノードリストであり、記憶部150に格納される。ルーティングテーブル160は、RANに接続されているノード一覧の現在の状態を示すテーブルであるが、ホワイトリスト170は、接続許可するノードを示す設定情報であり、図11に示すとおり、L2アドレスと、トンネルID(RAN名と同義)とを対応付けたリストである。
ホワイトリスト170は、端末制御機能部140により使用される。端末制御機能部140は、L2アドレスを、当該L2アドレスに対応するトンネルを介して指定することで、当該L2アドレスのノードが、当該トンネルに対応するRANに接続可能か否かを制御する機能部である。
ホワイトリスト170が、例えば運用者より擬似親機100に与えられると、擬似親機100は、トンネルID毎に(つまり、RAN毎に)接続を許可するノードのL2アドレス一覧を擬似アプリケーション端末200側に通知する。
擬似アプリケーション端末200におけるアクセス制御部230は、擬似親機100からあるトンネル(図11の例ではトンネルT1)を介して受信したL2アドレス一覧をホワイトリスト260(接続許可ノードリストと呼んでもよい)として記憶部240に格納する。
RANに新たなノードが接続を試みた場合には、当該ノードのL2アドレスが擬似アプリケーション端末200のアクセス制御部230に通知される。アクセス制御部230は、ホワイトリスト260に存在するノードのみRANへの接続を許可し、リストに存在しないノードが接続を試みても接続できない。
また、アクセス制御部230は、RANへのノードの接続をホワイトリスト260に関わらずに許可し、ノードからトンネルを介した通信を要求され場合に、ホワイトリスト260によるアクセス制限を実行することとしてもよい。この場合、ノードから送信されたデータの送信元L2アドレスがホワイトリスト260にあれば通信は許可され、なければ通信は拒否される。
本実施の形態では、様々な拠点に存在する複数の擬似アプリケーション端末の各々にホワイトリストを投入するのではなく、アプリケーション30の存在する擬似親機100側で一括して複数の擬似アプリケーション端末にホワイトリストを投入できるので、制御が容易になる。
一つのノードが複数のRANで接続許可されることも可能であり、その場合にはあるRANに接続中のノードが別のRANに移動できる。その場合には、前述した端末管理機能部220により、移動の状況が擬似親機100に送られるため、ルーティングテーブル160で当該ノードの接続中のトンネルIDが移動先RANへの接続トンネルに変化する。これにより、ノードがRANを移動してもアプリケーション30との通信が可能になる。
(複数データセンタへの拠点側アクセス制御について)
一つの拠点の一つのRANは一つのアプリケーションと通信を行うこととする場合、拠点側に複数のRANが存在する場合には、それぞれのRANは別のアプリケーションと通信するために、擬似アプリケーション端末200は、RANごとにトンネルを生成する。つまり、複数の擬似親機に対してトンネルを開設する。トンネルの接続先は異なる擬似親機である。なお、複数の擬似親機の設置場所は同じでもよいし異なっていてもよい。RANごとに一つ親機が存在するので、シリアルインタフェースもRANの数だけ生成される。
図12に示す例では、アプリケーションAと通信するRAN−Aに対して、擬似アプリケーション端末200は、擬似親機100Aとの間にトンネルAを生成し、アプリケーションBと通信するRAN−Bに対して、擬似アプリケーション端末200は、擬似親機100Bとの間にトンネルBを生成する。
図12に示すように、擬似親機100Aはホワイトリスト260AをトンネルAを介して擬似アプリケーション端末200に通知する。擬似親機100Bはホワイトリスト260BをトンネルBを介して擬似アプリケーション端末200に通知する。擬似アプリケーション端末200は、個々のトンネルよりホワイトリスト260A、260Bを受信し、トンネルに対応付けてホワイトリスト260A、260Bを記憶部240に格納する。トンネルとRANが一対一で対応付けられるので、擬似親機側から送られてきたホワイトリスト260A、260Bは、そのまま対応するRANのアクセス制御リストとして使用される。
対応するRANに接続しようとするノードがあれば、ホワイトリストにそのノードが載っている場合に接続を許可する。例えば、図12に示すように、ノードB3(L2アドレスとしてB3を持つノード)は、B3を含むホワイトリスト260Bに対応するRAN−Bへの接続を許可されるが、B3を含まないホワイトリスト260Aに対応するRAN−Aへの接続を許可されない。従って、B3の通信先は擬似親機100Bを介したアプリケーションBとなる。なお、ホワイトリスト260A/ホワイトリスト260Bにより、ノードから受信したデータの送出方路を決定できるので、ホワイトリスト260A/ホワイトリスト260Bをルーティングテーブルの一種と考えてもよい。
(複数データセンタへの拠点側アクセスルーティングについて)
上記のホワイトリストの仕組みに基づいて、一つのRANを複数の論理的なネットワークに分割することも可能になる。
例えば、ホームネットワークでは、アプリケーションごとにCoordinatorノード(親機)を設置して、個々のノードがどのRANに接続すべきかの設定を行うことが考えられるが、ネットワーク知識の乏しい利用者がそのような設定をするのは困難である。
そこで、WANの運用事業者が親機(Coordinator)を1台設置して、ホームネットワークのノードは全てそこに接続させることで、一つのRANとすることができ、設定運用の稼働量や難易度を低減することができる。
上記のネットワークの例を図13に示す。上記のとおり、拠点側に複数の親機を設置するのではなく、一つのRANに複数の論理的ネットワークを混在させることで、多重化を実現する。RANは一つであるが、図13の例では2つの論理ネットワークが混在している。
RANは一つであるが、擬似アプリケーション端末200では、例えば端末管理機能部220に、後述するコントローラ500等から論理ネットワークの情報を与えることで、端末管理機能部220の指示に基づき、論理ネットワークの数だけトンネルを生成する。図13の例では、一つのRANにAとBという二つの論理ネットワークが混在している場合を示しており、親機を含むノードは、論理ネットワークのいずれかに所属する。Aの論理ネットワークに対応するトンネルAが、アプリケーションAに対応する擬似親機Aとの間に生成され、Bの論理ネットワークに対応するトンネルBが、アプリケーションBに対応する擬似親機Bとの間に生成される。
既に説明したように、各擬似親機は接続を許可するL2アドレスリスト(ホワイトリスト260A、260B)をトンネルを用いて擬似アプリケーション端末200に配信する。擬似アプリケーション端末200において、アクセス制御部230が、各トンネルから受信したホワイトリスト260A、260BをトンネルIDに対応付けて記憶部240に格納する。
得られた複数のホワイトリスト260A、260Bのいずれかにアドレスが記載されているノードはRANへの接続を許可される。
図13に示す二つの論理ネットワークが混在している場合において、例えばノードB3は異なる論理ネットワークのノードA2をルータとして利用してRANに接続している。ノードB3から発信されたデータは、異なる論理ネットワークのノードを経由して擬似アプリケーション端末200に届く。
擬似アプリケーション端末200では、アクセス制御部230が、発信元アドレスをキーとしてホワイトリスト260A、260Bを検索する。この場合、トンネルBに対応するホワイトリスト260Bに該当エントリがあるために、アクセス制御部230は、データをトンネルBに送信し、当該データはアプリケーションBに届けられる。一方、論理ネットワークAに属するノードから発信されたデータはトンネルAに送られ、アプリケーションAに届けられる。これにより、一つのRANでありながら内部は複数のネットワークに論理的に分割することができる。
上記の仕組みは、トンネルという論理インタフェースと、実質的なルーティングテーブルであるホワイトリストを利用した、発信元アドレスをキーとするポリシールーティングによるRAN多重化機能と呼ぶことができる。
(WANの構成例1)
図14に、RANの広域化、スケールアウト、アクセス制御、多重化を実現するWANの構成例を示す。図14おいて、A、B、Cはアプリケーションを識別する符号であり、1、2、3は拠点を識別する符号である。図14に示すとおり、各拠点において、アプリケーションA、B、Cと通信を行うA、B、CのRANが接続されている。
例えば、拠点1には、RAN 1−A、RAN 1−B、RAN 1−Cが接続されている。RAN 1−A、RAN 1−B、RAN 1−Cはそれぞれ、物理的に別々のネットワークであってもよいし、図13で説明したような論理ネットワークであってもよい。これまでに説明したとおり、擬似アプリケーション端末200−1における発信元アドレスをキーとするルーティングにより、RAN 1−AからのデータはアプリケーションAへ送信され、RAN 1−BからのデータはアプリケーションBへ送信され、RAN 1−CからのデータはアプリケーションCへ送信される。拠点2、3に関しても同様である。
一方、擬似親機100側について、例えば、アプリケーションAに対応する擬似親機100Aは、擬似アプリケーション端末200−1、200−2、200−3のそれぞれから受信する接続中端末(アプリケーションAに対応するノード)のL2アドレスに基づいて、ルーティングテーブルを生成する。また、擬似親機100Aは、アプリケーションAからデータを受信すると、データの宛先L2アドレスとルーティングテーブルに基づいて、データの方路(トンネル)を決め、データを当該方路に送信する。擬似親機100B、擬似親機100Cに関しても同様である。
上記のように、L2トンネル、擬似親機側のルーティング、及び擬似アプリケーション端末におけるアクセス制御もしくはルーティングによって、RANノード及びアプリケーションに一切の機能追加などの改造を行うことなく、広域化、スケールアウト、アクセス制御、多重化を実現することができる。
(WANの構成例2)
図15は、図14に示したWANの構成をより具体的に示した例を示す。図15の例では、アプリケーション側において、アプリケーションと擬似親機とが1つのユーザマシン(コンピュータ)に搭載される。また、各擬似アプリケーション端末では、1つの親機が例えばUSBケーブルにより、擬似アプリケーション端末(コンピュータ)に接続され、各アプリケーション対応のRANは論理ネットワークとして構成されている。
例えば、拠点1の擬似アプリケーション端末200−1は、擬似親機100A、擬似親機100B、擬似親機100Cのそれぞれとの間でL2トンネルを開設する。擬似アプリケーション端末200−2、200−3についても同様である。
L2トンネルを開設する契機の例を説明する。例えば、擬似アプリケーション端末200−1配下のRANにおいてアプリケーションB対応のノードが接続されていない状態で、コントローラ500から擬似アプリケーション端末200−1に対して、アプリケーションB対応のノードが接続されることを示す情報(例えば、アプリケーションBに対応する所有者情報)が送信されると、擬似アプリケーション端末200−1はその情報の受信を契機に、アプリケーションB側の擬似親機100BとのL2トンネルを開設する。
上記のように、L2トンネルが開設された後に、擬似アプリケーション端末側と擬似親機側において図14を参照して説明した動作が実行される。
(WANの構成例3)
図15に示した構成でも、RANノード及びアプリケーションに一切の機能追加などの改造を行うことなく、広域化、スケールアウト、アクセス制御、多重化を実現することができるが、トンネル管理の負荷や、各マシン、各端末でのルーティング負荷が増大することが考えられる。
そこで、図16に示すように、スイッチサーバ400を備えるWAN構成としてもよい。当該スイッチサーバ400は通信システムの例である。図16に示すWAN構成では、各擬似親機及び各擬似アプリケーション端末は、スイッチサーバ400との間で1つのトンネルを張ればよい。また、図16には、トンネルの開設方向が示されるが、トンネルの通信方向は双方向である。スイッチサーバ400には、各擬似親機、もしくは、スイッチサーバ400に接続されるコントローラ500から、各アプリケーションに対応するホワイトリストが通知される。スイッチサーバ400は、当該ホワイトリストを参照することで、図11〜13を参照して説明した擬似アプリケーション端末側の発信元アドレスに基づくアクセス制御及びルーティングを行うことができる。なお、図示の便宜上、図16では、コントローラ500と、ユーザマシンA(300A)、スイッチサーバ400、擬似アプリケーション端末200−1が接続されるように示されているが、コントローラ500は、ユーザマシンB(300B)、ユーザマシンC(300C)、擬似アプリケーション端末200−2、擬似アプリケーション端末200−3とも接続される。
また、スイッチサーバ400は、各アプリケーションのホワイトリストを各擬似アプリケーション端末に送信することで、アクセス制御を各擬似アプリケーション端末に行わせることとしてもよい。この場合でも、発信元アドレスに基づくルーティングについてはスイッチサーバ400が実行する。
一例として、図12に示したホワイトリスト260Aとホワイトリスト260Bをスイッチサーバ400が保持している場合において、スイッチサーバ400がトンネルT1からポート1を介して、発信元アドレスがB2であるデータを受信したとすると、ホワイトリスト260BにB2のエントリがあるので、当該データは、ホワイトリスト260Bに対応するアプリケーションB向けのポートBにスイッチサーバ400内部で転送され(スイッチされ)、トンネルTBにより擬似親機100Bに送られ、アプリケーションBに届けられる。
なお、スイッチサーバ400は、拠点別にホワイトリストを保持してもよいし、複数拠点共通のホワイトリストを保持してもよい。拠点別にホワイトリストを保持する場合、スイッチサーバ400は、擬似アプリケーション端末側からデータを受信したトンネルに対応する拠点に対応するホワイトリストに基づいてルーティングを実施する。
また、図9を参照して説明したように、各擬似アプリケーション端末から接続中端末管理テーブルがスイッチサーバ400に送信され、スイッチサーバ400は接続中端末管理テーブルに基づきルーティングテーブルを生成して、当該ルーティングテーブルに基づき、アプリケーション側から送信されたデータのルーティングを実行する。
一例として、スイッチサーバ400が、図9に示す接続中端末管理テーブルをトンネルT1から受信したとすると、スイッチサーバ400は図9に示すルーティングテーブルを生成し、保持する。そして、例えば、アプリケーションAから送信されたデータ(宛先アドレスがA1であるとする)を、トンネルTAから受信すると、当該データの宛先アドレスが上記ルーティングテーブルのエントリに合致するので、スイッチサーバ400の内部で当該エントリのトンネルT1に接続されるポート1にデータが転送され、当該データは拠点1の擬似アプリケーション端末200−1を介して、拠点1のRAN内で、ノードA1まで転送される。
図17に、スイッチサーバ400の機能構成図を示す。図17に示すように、スイッチサーバ400は、通信部410、端末管理機能部420、ルーティング機能部430、端末制御機能部440、記憶部450を含む。通信部410は、図16に示した各ポートを含み、また、トンネルの生成機能、トンネルを使用したデータ送受信機能等を有する。また、通信部410は、後述するコントローラとの間で通信(情報の送受信)を行う機能も含む。
端末管理機能部420は、接続中端末管理テーブルから、ルーティングテーブル(アプリケーション側からRAN側への方向のルーティング用)を生成する機能を含む。端末制御機能部440は、ホワイトリストを受信し格納する機能、ホワイトリストを擬似アプリケーション端末側に送信する機能、RANノードに対するアクセス制限機能等を含む。ルーティング機能部430は、ルーティングテーブルに基づくアプリケーション側からRAN側への方向のルーティングと、ホワイトリストに基づくRAN側からアプリケーション側へのルーティングを行う機能を含む。記憶部450は、各種のデータ、ルーティングテーブル、ホワイトリスト等を格納する。なお、ホワイトリストをルーティングテーブルと称してもよい。また、ルーティング機能部430は、変形例で説明する共通ヘッダからL2アドレス(MACアドレス)を抽出する機能も有している。
図18、図19、図20は、コントローラ500を使用して、WANの設定を行う場合における構成、シーケンスを示す。コントローラ500は例えばSDNコントローラであるがこれに限定されない。図17に示したように、スイッチサーバ400には、複数の擬似親機と複数の拠点の擬似アプリケーション端末が接続され得るが、図18、図19には、代表として1つの擬似親機100と、1つの擬似アプリケーション端末200が示されている。これらが複数であっても、同様のシーケンスが実行される。
図18に示されるように、コントローラ500は、擬似親機100、擬似アプリケーション端末200、スイッチサーバ400のそれぞれと、例えばインターネットを介して通信可能である。図18、図19に示すシーケンスは同じであるので、以下、図19を参照して説明する。
例えばユーザの端末からコントローラ500に対し、認証要求とホワイトリストが送信され、コントローラ500がこれらを受信する(ステップS101)。ユーザの認証OKであれば、コントローラ500はホワイトリストをスイッチサーバ400に送信する(ステップS102)。
ある拠点のRANをWAN接続する際に、当該拠点の擬似アプリケーション端末200は認証要求をコントローラ500に送信し(ステップS103)、コントローラ500による認証がOKであれば、コントローラ500は、スイッチ情報(例:スイッチサーバ400に接続するためのIPアドレス)と、擬似アプリケーション端末200に対応する(つまり、その拠点に対応する)トンネルのトンネルIDとを擬似アプリケーション端末200に送信する(ステップS104)。また、後述する変形例の動作を行う場合においては、ステップS104(図20のS104でも同様)において、擬似アプリケーション端末200に対して、共通ヘッダ生成に関わる設定情報(例:後述するオフセット、MACアドレス長、MACアドレスなしのPDUに付加するMACアドレス等)が設定される。擬似アプリケーション端末200は、ステップS104で受信した情報に基づき、トンネル開設要求をスイッチサーバ400に送信することで、スイッチサーバ400との間にトンネルを構築する(ステップS107)。ステップS108において、ホワイトリストが擬似アプリケーション端末200に送信される。
同様にして、擬似親機100は認証要求をコントローラ500に送信し(ステップS105)、コントローラ500による認証がOKであれば、コントローラ500は、スイッチ情報(例:スイッチサーバ400に接続するためのIPアドレス)と、擬似親機100に対応する(つまり、そのアプリケーションに対応する)トンネルのトンネルIDとを擬似親機100に送信する(ステップS106)。また、後述する変形例の動作を行う場合においては、ステップS106(図20のS106でも同様)において、擬似親機100に対して、共通ヘッダ生成に関わる設定情報(例:後述するオフセット、MACアドレス長、MACアドレスなしのPDUに付加するMACアドレス等)が設定される。擬似親機100は、ステップS106で受信した情報に基づき、トンネル開設要求をスイッチサーバ400に送信することで、スイッチサーバ400との間にトンネルを構築する(ステップS109)。
擬似アプリケーション端末200からは接続中端末管理リスト(あるいは更新情報)がスイッチサーバ400に送信される(ステップS110)。スイッチサーバ400は、当該接続中端末管理リストに基づきルーティングテーブルを作成し、保持する。
ステップS111において、擬似親機100から擬似アプリケーション端末200へのトラフィックが送信される。この方向のトラフィックに対し、ルーティングテーブルにより、宛先アドレスに基づくルーティングが行われる。ステップS112において、擬似アプリケーション端末200から擬似親機100へのトラフィックが送信される。この方向のトラフィックに対し、ホワイトテーブルにより、発信元アドレスに基づくルーティングが行われる。
上記の例では、ホワイトリストをユーザからコントローラ500に送信し、ルーティングテーブルを接続中端末管理リストから生成することとしたが、図20に示すように、コントローラ500がノード毎のL2アドレス、設置場所情報、所有者情報を、ユーザ端末あるいはSDN操作端末等から受信することで、これらからホワイトリストとルーティングテーブルを生成し、それらをスイッチサーバ400に送信することととしてもよい。なお、ルーティングテーブルについては、生成、送信を行わないこととしてもよい。
また、コントローラ500が、ノード毎のL2アドレス、設置場所情報、所有者情報の3つの情報全てを受信することは必須ではない。例えば、L2アドレス、設置場所情報、所有者情報の3つの情報のうち既知の情報がある場合、当該既知の情報を受信する必要はない。
ここでは、設置場所情報は拠点に対応する。所有者情報はアプリケーションに対応する。例えば、ノード1、ノード2、ノード3、ノード4の{L2アドレス、設置場所情報、所有者情報}として、コントローラ500が下記の情報を受信したとする。
ノード1={MAC1、拠点1、A}
ノード2={MAC2、拠点1、A}
ノード3={MAC3、拠点1、B}
ノード4={MAC4、拠点1、B}
また、図21に示すとおり、拠点1とスイッチサーバ400間のトンネルIDをT1とし、アプリケーションA、B(つまり、擬似親機100A,B)とスイッチサーバ400間のトンネルIDをそれぞれTA、TBとする。
この場合、コントローラ500は、トンネルT1に対応するホワイトリスト260として図22(a)に示すテーブルを作成する。また、トンネルAに対応するルーティングテーブル160Aとして図22(b)に示すテーブルを作成し、トンネルBに対応するルーティングテーブル160Bとして図22(c)に示すテーブルを作成する。そして、これらをスイッチサーバ400に送信する(図20のステップS102)。
スイッチサーバ400は、コントローラ500から受信したホワイトリスト260とルーティングテーブル160A、160Bを使用することにより、前述したとおりに、擬似親機100側から擬似アプリケーション端末200側へのルーティング(宛先アドレスに基づくルーティング)と、擬似アプリケーション端末200側から擬似親機100側へのルーティング(発信元アドレスに基づくルーティング)を行うことができる。
また、コントローラ500からルーティングテーブル160A、160Bを得るのではなく、図20のステップS110に示すように、スイッチサーバ400は、接続中端末管理リスト(又は、更新情報)を受信することで、ルーティングテーブルを生成、又は更新することとしてもよい。
なお、上記のようなコントローラ500による情報配信は、図15の構成、及び後述する図24の構成にも適用可能である。図15の構成では、コントローラ500は、拠点毎にホワイトリストを作成し、設置場所情報に基づき、該当拠点の擬似アプリケーション端末に送信する。また、コントローラ500は、アプリケーション毎にルーティングテーブルを作成し、所有者情報に基づき、該当アプリケーション側の擬似親機にルーティングテーブルを送信する。図24の構成の場合も同様であるが、ホワイトリストの送信先が拠点側スイッチとなり、ルーティングテーブルの送信先がデータセンタ側スイッチとなる。
図23は、コントローラ500の機能構成図である。図23に示すように、コントローラ500は、情報通知部510、情報生成部520、認証部530、及び記憶部540を備える。
情報通知部510は、ユーザもしくは運用者の端末等から受信したホワイトリスト等の情報を受信し、スイッチサーバ400に通知する。また、情報通知部510は、情報生成部520により生成された情報を該当の装置(スイッチサーバ400等)に通知する機能も有する。変形例で説明する設定情報の送信動作は、この情報通知部510により実行される。
情報生成部520は、ユーザの端末等から受信したMACアドレス、設置場所情報、及び所有者情報から、ホワイトリスト及びルーティングテーブルを生成する。認証部530は、装置(ユーザの端末、擬似親機100、擬似アプリケーション端末200等)からの認証要求に基づき、当該装置の認証を行う。記憶部540は、他の装置から受信した情報、生成した情報、予め設定される設定情報(認証情報、拠点情報等)を格納する。
(システムの他の構成例)
図16に示すWANの構成では、1つのスイッチ(スイッチサーバ400)を使用しているが、WANの規模が大きくなった場合等には、図24に示すように、複数のスイッチである分散スイッチ群を使用してシステムを構成してもよい。
図24に示す構成例では、アプリケーション側(データセンタ側)に、アプリケーション毎にデータセンタ収容スイッチ400(A〜C)が備えられ、拠点側に、拠点毎に拠点収容スイッチ400(1〜3)が備えられている。データセンタ収容スイッチ400(A〜C)は、対応する擬似親機100と1つのトンネルで接続される。また、拠点収容スイッチ400(1〜3)は、対応する擬似アプリケーション端末と1つのトンネルで接続される。データセンタ収容スイッチ400(A〜C)と拠点収容スイッチ400(1〜3)との間は、例えばインターネットで接続される。データセンタ収容スイッチ400(A〜C)と拠点収容スイッチ400(1〜3)とを有するシステムは通信システムの例である。
各データセンタ収容スイッチには、ルーティングテーブルがコントローラ500から設定される。各データセンタ収容スイッチは、アプリケーション側から受信したデータの宛先アドレスと、ルーティングテーブルとに従って、当該データを届けるべきRANが存在する拠点の拠点収容スイッチにデータを送信する。各データセンタ収容スイッチは、拠点側からデータを受信した際には、そのデータをトンネルを介して疑似親機に送信する。
各拠点収容スイッチには、ホワイトリストがコントローラ500から設定される。各拠点収容スイッチは、RAN側からデータを受信すると、当該データの発信元アドレスと、ホワイトリストとに従って、当該データを届けるべきアプリケーションが存在するデータセンタのデータセンタ収容スイッチにデータを送信する。また、各拠点収容スイッチは、データセンタ側からデータを受信した際には、そのデータをトンネルを介して疑似アプリケーション端末に送信する。
(変形例)
次に、変形例を説明する。変形例は、上述した図16〜図24で説明したスイッチサーバを用いるシステム構成に基づく例である。ただし、これに限定されるわけではなく、スイッチサーバを用いない構成において、擬似アプリケーション端末200と擬似親機100のそれぞれが、以下で説明する共通ヘッダの付加動作等を行うこととしてもよい。以下、端末(ノードと称してもよい)から送出されるデータフレームに共通ヘッダを付加する技術について説明する。
以下の説明において、システム構成としては、図16に示すように、スイッチサーバ、擬似アプリケーション端末200、擬似親機100、及びコントローラ500を有する構成を想定している。なお、擬似アプリケーション端末200−1〜200−3について、特にこれらを区別せずに動作等を説明する場合には、擬似アプリケーション端末200と記述する。また、擬似親機100A〜100Cについて、特にこれらを区別せずに動作等を説明する場合には、擬似親機100と記述する。
これまでに説明した技術を使用することで、RANに所属する複数の端末をそれぞれ事前に指定されたアプリケーションだけに接続することができる。上述した技術に基づき構築されたシステムに接続できるシリアルインタフェースを有する端末の条件として、送信するデータフレーム中に発信元のL2アドレス(ここでは例として、以下、MACアドレスとする)が明示的に埋め込まれていることが必要である。
また、これまでに説明した通信システムにおいて、スイッチサーバ400はデータフレームにおける発信元のMACアドレスの位置を認識しており、そのMACアドレスによってルーティングを行っている。そのため、データフレーム中にMACアドレスが存在しなければならず、更に、その位置や長さはデータフレーム毎に同じであることを前提としている。
ここで、データフレームのフォーマットは、特定省電力無線等ではRAN端末製造者により任意に決められており、埋め込まれているMACアドレスの場所や長さは様々である。
また、シリアルインタフェースを有する端末には一対一での接続を前提とするものも多く、その場合には、データフレームには発信元MACアドレスが埋め込まれていない。例えば、GNSS/GPS受信モジュールはUART(Universal Asynchronous Receiver/Transmitter)インタフェースを有し、ホストコンピュータとはシリアルインタフェースで接続されるが、そのデータのフォーマットはNMEA(National Marine Electronics Association)フォーマットと呼ばれるものであり、GNSS/GPS受信モジュール自体にMACアドレスは割り当てられておらず、データフレーム中にもGNSS/GPS受信モジュールを特定するアドレスに相当する情報は含まれていない。このように、MACアドレスを有しないデータに対しては、これまでに説明した技術ではスイッチサーバ400によるルーティングを行うことができない。
そこで、変形例においては、接続するRANや端末の方式に応じて、データフレームからMACアドレスを抽出し、データフレームの固定位置に、本実施の形態に係る通信システムに共通的なフォーマットで、当該MACアドレスのコピーを含むヘッダを付加する。ここでは、当該ヘッダを「共通ヘッダ」と呼ぶ。また、MACアドレスを有しないデータフレームに関しては、予め割り当てたMACアドレス(これを擬似MACアドレスと称してもよい)を有する共通ヘッダを付加する。擬似MACアドレスは、共通ヘッダを付加する装置のMACアドレスであってもよい。
図25を参照して、共通ヘッダの例を説明する。図25(a)、(b)、(c)において、データフレームは、端末から送出されるものである。
図25(a)の例では、共通ヘッダは、データフレームの中のMACアドレスA(図中の"A"で記載)のコピーと、当該MACアドレスAの長さL−A(ビット長)を有する。L−Aのフィールドの長さは予め定めておく固定長である。
これにより、例えば、擬似アプリケーション端末200から当該共通ヘッダ付きのデータフレームを受信したスイッチサーバ400は、L−Aにより、MACアドレスAの長さを知ることができるので、L−Aフィールド(固定長)の末尾から、長さL−Aの部分をMACアドレスAとして識別し、当該MACアドレスAを使用して、ルーティングを実施することができる。MACアドレスAを認識した後の動作は既に説明した動作と同じである。
図25(b)の例は、共通ヘッダにおいて、L−A、及び、MACアドレスAのコピーに加えて、データフレームの長さであるLPが追加されている点が図25(b)の例と異なる。なお、LPはPDUの長さであってもよい。
この場合、例えば、擬似アプリケーション端末200から当該共通ヘッダ付きのデータフレームを受信したスイッチサーバ400は、L−Aにより、MACアドレスAの長さを知ることができるとともに、LPにより、データフレームの長さを知ることができる。従って、例えば、データフレームの長さが不定であるような場合において、スイッチサーバ400は、受信するデータ列の中からデータフレームを抽出することができる。
図25(c)の例は、データフレームがMACアドレスを含まない場合の例を示している。この場合、擬似アプリケーション端末200は、接続されている端末から受信したPDUにMACアドレスAとL−Aを含む共通ヘッダを付加する。この場合のMACアドレスAは、例えば擬似アプリケーション端末200のMACアドレスであってもよいし、予めコントローラ500から擬似アプリケーション端末200に設定しておいたMACアドレスでもよい。データフレームがMACアドレスを含まない場合においても、図25(b)のように、LPを含む構成を用いてもよい。
擬似アプリケーション端末200が、図25(a)に示す共通ヘッダをデータフレームに付加するために、擬似アプリケーション端末200には、予め図25(a)に示すO−AとL−Aがコントローラ500から設定される。これらの設定情報は、擬似アプリケーション端末200の記憶部に格納される。
図25(a)に示すO−Aは、例えば、RAN−Aにおける端末から送出されるデータフレームの先頭からMACアドレスAの先頭までの長さ(ビット長)である。これをオフセットと称してもよい。L−AはMACアドレスAの長さ(ビット長)である。
図25(a)の例において、擬似アプリケーション端末200は、RAN−Aの端末からデータフレームを受信すると、O−AとL−Aにより、データフレーム中のMACアドレスAを識別(抽出)し、L−Aと当該MACアドレスAのコピーとを共通ヘッダとしてデータフレームの先頭に付加する。
図25(b)に示す例の場合、擬似アプリケーション端末200には、予め図25(b)に示すO−A、L−A、OL−A、及びLL−Aがコントローラ500から設定される。この例では、図25(b)に示すように、LPの値がデータフレーム中に格納されている。O−AはMACアドレスAのデータフレーム先頭からの開始位置を示し、L−AはMACアドレスA長を示す。OL−Aは、データフレーム長(LP)のデータフレーム先頭からの開始位置を示し、LL−Aは、LPが格納されるフィールドの長さを示す。このような構成により、擬似アプリケーション端末200がシリアルインタフェース側からデータを読み取った時点で、LPをデータフレームから読み取ることができる。なお、LPの値はデータフレーム毎に異なる。
擬似アプリケーション端末200は、RAN−Aの端末からデータフレームを受信すると、O−AとL−Aにより、データフレーム中のMACアドレスAを識別し、OL−AとLL−Aによりデータフレーム中のデータフレーム長(LP)を識別し、LPの値のデータ量をIPカプセリングし、カプセリングしたデータフレームに、L−AとLPとMACアドレスAのコピーとを共通ヘッダとしてデータフレームの先頭に付加する。IPカプセリングを行うことは一例である。カプセリングを行わない形態や、IP以外のプロトコルでカプセリングを行う形態を採用してもよい。なお、図25(b)に示す例におけるLPで示す長さに関しては、IPパケット長で推測できるが、トランスポートにTCPを使用する場合には、データの先頭を見失う可能性があり、LPを明示的に付加することで、受信側(例:スイッチサーバ400)では正しく先頭を認識できる。
また、図25(a)の例においても、データフレーム中にLPの値が含まれることとし、図25(b)の場合と同様に、O−A、L−A、OL−A、及びLL−Aがコントローラ500から設定され、データフレーム中から読み取ったLPを用いてカプセリング動作を行うこととしてもよい。ただし、LPは共通ヘッダには含めない。
なお、ここでは、1種類のRAN(例:RAN−A)に接続される複数の端末間では、O−A及びL−Aは同一であると想定している。
擬似アプリケーション端末200に複数種類のRAN(例:RAN−A、RAN−B、RAN−C)が接続される場合でも、図25(a)、(b)のように、各RANに適合した共通ヘッダを付加することは可能である。以下、例として図25(b)の場合を説明する。
この場合、擬似アプリケーション端末200には、コントローラ500から下記の情報が予め設定される。
RAN−A用の情報={O−A、L−A、OL−A、LL−A、RAN−Aのデータフレームの識別情報}
RAN−B用の情報={O−B、L−B、OL−B、LL−B、RAN−Bのデータフレームの識別情報}
RAN−C用の情報={O−C、L−C、OL−C、LL−C、RAN−Cのデータフレームの識別情報}
上記において、O−B、L−B、OL−B、LL−Bは、それぞれO−A、L−A、OL−A、LL−Aと同様に、データフレームの先頭からMACアドレスまでのオフセット、MACアドレスの長さ、データフレームの先頭からデータフレーム長(LP)までのオフセット、データフレーム長(LP)のフィールドの長さである。O−C、L−C、OL−C、LL−Cも同様である。
データフレームの識別情報は、特定の情報に限定されないが、例えば、データフレームに含まれる、該当RANに固有の番号等の情報である。また、データフレームの長さでRANを識別できるのであれば、データフレームの長さがデータフレームの識別情報であってもよい。
例えば、擬似アプリケーション端末200にRAN−A、RAN−B、RAN−Cが接続されていて、擬似アプリケーション端末200は、あるRANのある端末から送信されたデータフレームを受信する。
擬似アプリケーション端末200は、例えば、データフレームの識別情報に基づき、当該データフレームがRAN−Aに接続される端末からのデータフレームであることを把握すると、RAN−A用の情報={O−A、L−A、OL−A、LL−A}を用いて、共通ヘッダを付加する。
<変形例の動作例>
次に、図26、図27を参照して、変形例における通信システムの動作例を説明する。図26に示すように、ここで説明する動作例においては、擬似アプリケーション端末200−1にはRAN−Aが接続され、RAN−Aにおけるある端末が、当該端末のMACアドレスとしてmac0を有するデータフレームを送信する。擬似アプリケーション端末200−2にはRAN−Bが接続され、RAN−Bにおけるある端末が、当該端末のMACアドレスとしてmac1を有するデータフレームを送信する。また、擬似アプリケーション端末200−3には、MACアドレスを有しないデータフレーム(PDUのみのデータフレーム)を送信する端末が直接に接続されている。
また、前述したように、擬似アプリケーション端末200−1〜200−3のそれぞれには、その配下に接続されるRANに対応した設定情報がコントローラ500により設定され、擬似アプリケーション端末200−1〜200−3のそれぞれが設定情報を保持している。一例として、図25(a)のケースを想定し、擬似アプリケーション端末200−1は、O−A、L−Aを保持し、擬似アプリケーション端末200−2は、O−B、L−Bを保持しているとする。また、擬似アプリケーション端末200−3については、付加するMACアドレス(ここでは、mac2とする)を保持している。このmac2は、コントローラ500により設定された情報であってもよいし、擬似アプリケーション端末200−3のMACアドレスであってもよい。
擬似アプリケーション端末200−1は、図示するデータフレームを受信すると、O−AとL−Aを用いてデータフレームからmac1を抽出し、当該mac1のコピーを有する共通ヘッダをデータフレームに付加し、「共通ヘッダ+データフレーム」をスイッチサーバ400に送信する。スイッチサーバ400は、受信した「共通ヘッダ+データフレーム」における共通ヘッダの最初から、L−Aに相当する部分を読み取り、共通ヘッダの中のmac1を抽出し、mac1を用いたルーティングを行う。
擬似アプリケーション端末200−2の動作は、擬似アプリケーション端末200−1の動作と同様である。
擬似アプリケーション端末200−3は、図示するデータフレーム(PDUのみ)を受信すると、保持しているmac2を有する共通ヘッダをデータフレームに付加し、「共通ヘッダ+データフレーム」をスイッチサーバ400に送信する。スイッチサーバ400は、受信した「共通ヘッダ+データフレーム」における共通ヘッダの最初から、MACアドレスの長さを示す部分を読み取り、共通ヘッダの中のmac2を抽出し、mac2を用いたルーティングを行う。
図27に示すように、ルーティングの結果、擬似アプリケーション端末200−1から受信した共通ヘッダ付きのデータフレームは疑似親機100Aに送信され、擬似アプリケーション端末200−2から受信した共通ヘッダ付きのデータフレームは疑似親機100Bに送信され、擬似アプリケーション端末200−3から受信した共通ヘッダ付きのデータフレームは疑似親機100Cに送信される。
疑似親機100A〜100Cはそれぞれ、共通ヘッダ付きのデータフレームから共通ヘッダを削除し、データフレームをアプリケーションに送出する。
上記の例では、端末からアプリケーションに向けての動作を説明したが、アプリケーションから端末に向けた動作も同様に実現可能である。すなわち、例えば、擬似親機100は、アプリケーションから、当該擬似親機100に遠隔で接続される特定のRAN(RAN−Aとする)に対応したデータフレームを受信する。
擬似親機100には、コントローラ500からO−AとL−Aが予め設定されている。擬似親機100は、擬似アプリケーション端末200が、RAN−Aからデータフレームを受信した場合と同様にして、アプリケーションから受信したデータフレームに共通ヘッダを付加し、「共通ヘッダ+データフレーム」(例:図25(a))をスイッチサーバ400に送信する。
スイッチサーバ400では、共通ヘッダに含まれるMACアドレスを用いてRAN側へのルーティングを実施し、「共通ヘッダ+データフレーム」を、該当の擬似アプリケーション端末200に送信する。擬似アプリケーション端末200は、「共通ヘッダ+データフレーム」から共通ヘッダを削除し、データフレームを配下のRANに送出する。
なお、アプリケーションから端末に向けた動作に関しては、アプリケーションから出力されるデータに宛先MACアドレスが付加されることが想定されるので、擬似親機100は、共通ヘッダ付加動作を行わないこととしてもよい。
<変形例の効果等について>
上述したように、変形例では、擬似アプリケーション端末200と、擬似親機100で、接続されているRANや端末の仕様を認識し、スイッチサーバ400にはそれらの仕様を隠蔽する。
これにより、スイッチサーバ400に、異なる方式のRANを混在接続することが可能となる。例えば、ZigBeeとWi−Fi(登録商標)等の異なる通信方式のネットワークでは、方式を超えたネットワーク間の相互通信はできないが、同じ方式内であれば一つのスイッチサーバ400を介して、仮想的に分割したり、複数のRANを仮想的に統合できるといった、本実施の形態で説明した処理を実現できる。また、変形例では、MACアドレスを持たないセンサ端末も、スイッチサーバ400を介して一対一の通信が可能となる。
全ての通信がスイッチサーバ400を介することにより、通信管理やトラフィック管理、SDNアーキテクチャによる自動コンフィギュレーションを利用できる。
特に、擬似アプリケーション端末200、擬似親機100には、接続されるRANや端末に応じて、MACアドレスを抽出し、共通ヘッダを設定するための設定情報(パラメータ)の設定が必要になるが、コントローラ500を用いたSDNアーキテクチャにより、それらの設定が一元化され、擬似アプリケーション端末200、擬似親機100は、出荷時のコンフィグレーションが不要で、現場でネットワークに接続された時点で、接続されるRAN等に関するパラメータをコントローラ500からダウンロードできる。
このように、変形例で説明した技術により、異なる方式のRANや、MACアドレスを持たない端末でも本実施の形態に係る通信システムに収容でき、広域化の実現が可能となる。
(ハードウェア構成例)
これまでに説明した各装置(擬似親機、擬似アプリケーション端末、スイッチサーバ、スイッチ、コントローラ)はいずれも、例えば、コンピュータ(コンピュータの構成を備える通信装置を含む)に、本実施の形態(変形例を含む、以下同様)で説明する処理内容を記述したプログラムを実行させることにより実現可能である。すなわち、各装置が有する機能は、当該コンピュータに内蔵されるCPUやメモリ、ハードディスクなどのハードウェア資源を用いて、当該装置で実施される処理に対応するプログラムを実行することによって実現することが可能である。上記プログラムは、コンピュータが読み取り可能な記録媒体(可搬メモリ等)に記録して、保存したり、配布したりすることが可能である。また、上記プログラムをインターネットや電子メールなど、ネットワークを通して提供することも可能である。
図28は、当該装置をコンピュータで実現する場合におけるハードウェア構成例を示す図である。図28に示す装置は、それぞれバスBで相互に接続されているドライブ装置600、補助記憶装置602、メモリ装置603、CPU604、インタフェース装置605、表示装置606、及び入力装置607等を有する。
当該装置での処理を実現するプログラムは、例えば、CD−ROM又はメモリカード等の記録媒体601によって提供される。プログラムを記憶した記録媒体601がドライブ装置600にセットされると、プログラムが記録媒体601からドライブ装置600を介して補助記憶装置602にインストールされる。但し、プログラムのインストールは必ずしも記録媒体601より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置602は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
メモリ装置603は、プログラムの起動指示があった場合に、補助記憶装置602からプログラムを読み出して格納する。CPU604(プロセッサ)は、メモリ装置603に格納されたプログラムに従って当該装置に係る機能を実現する。インタフェース装置605は、ネットワークに接続するためのインタフェースとして用いられる。表示装置606はプログラムによるGUI(Graphical User Interface)等を表示する。入力装置607はキーボード及びマウス、ボタン、又はタッチパネル等で構成され、様々な操作指示を入力させるために用いられる。
(実施の形態のまとめ、効果)
以上、説明したように、本実施の形態によれば、アプリケーションと拠点ネットワークとを接続する通信システムであって、アプリケーションから送信されたデータを受信し、当該データを、当該データの宛先アドレスを持つノードが存在する拠点ネットワークに向けて送信する第1ルーティング手段と、拠点ネットワークから送信されたデータを受信し、当該データを、当該データの送信元アドレスに対応するアプリケーションに向けて送信する第2ルーティング手段とを備えることを特徴とする通信システムが提供される。
前記第1ルーティング手段は、拠点ネットワークに接続されているノードのアドレスと、当該拠点ネットワークに対応する情報とを有するルーティングテーブルに基づいて、アプリケーションから送信されたデータの送信先を決定することができる。
前記第2ルーティング手段は、あるアプリケーションへの接続を許可されたアドレスを有するホワイトリストを保持し、当該ホワイトリストに基づいて、拠点ネットワークから送信されたデータを当該ホワイトリストの対象のアプリケーションに向けて送信するか否かを決定することができる。
前記第2ルーティング手段は、前記拠点ネットワークのノードから送信されたデータに共通ヘッダが付加された共通ヘッダ付きデータを受信し、当該共通ヘッダに含まれる送信元アドレスに対応するアプリケーションに向けて当該共通ヘッダ付きデータを送信することとしてもよい。
また、本実施の形態により、アプリケーションと、ノードを有する拠点ネットワークとを接続する通信システムに対する制御を行う制御装置であって、所定の端末から、ノード毎のアドレスの情報、ノード毎の設置場所情報、及びノード毎の所有者情報の3つの情報のうちの少なくとも一つの情報を受信する受信手段と、同じ所有者情報を持つノードのアドレスと設置場所情報とに基づいて、当該設置場所情報に対応する拠点から受信するデータを当該所有者情報に対応するアプリケーションに向けて送信するために前記通信システムにより使用されるホワイトリストを生成する生成手段と、前記生成手段により生成されたホワイトリストを前記通信システムに送信する送信手段とを備えることを特徴とする制御装置が提供される。
前記通信システムは、前記拠点ネットワークのノードから送信されたデータに共通ヘッダを付加する装置を含み、前記送信手段は、前記装置に対し、前記共通ヘッダの付加を実施するための設定情報を送信することとしてもよい。また、前記設定情報は、前記拠点ネットワークのノードから送信されるデータにおけるL2アドレスの位置を示す情報、又は、擬似的なL2アドレスであることとしてもよい。
本実施の形態の技術により、小規模な複数のネットワークを統合することで一つの大きなネットワークに見せるスケールアウト、及び多対多接続を行うことで一拠点に複数のRANが存在した場合にも適切なアプリケーションへのアクセスを許容する多重化が実現される。
以上、本実施の形態について説明したが、本発明はかかる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。