説明

通信フレーム振分け装置

【課題】MACフレームの振分けに関して、ユーザの満足度を高める。
【解決手段】各種WAN2a,2b,2c毎にルータ10a,10b,10cが接続されている。振分け装置100には、ルータ10a,10b,10cが接続されている。振分け装置100は、複数の宛先ポート番号毎に、複数のルータ10a,10b,10cのうちで使用するルータを定めるための振分けポリシーテーブル134と、端末1からのMACフレームのヘッダを解析して、ヘッダに含まれている宛先ポート番号を取得し、振分けポリシーテーブル134を参照して、複数のルータ10a,10b,10cのうちから宛先ポート番号に対するルータを選定する振分け処理部112と、振分け処理部112で選定されたルータへMACフレームを転送する入出力制御部111と、を備えている。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、通信フレームを送出する複数の通信経路のうち、一つの通信経路を選択する技術に関する。
【背景技術】
【0002】
IP(Internet Protocol)を使用した通信は、“ルータ”と呼ばれるネットワーク間通信装置を用いることで、「最適な経路の選択」や「通信可否に関する制御」、「フレームの優先制御」などを行うことが可能となっている。
【0003】
また、地理的距離を隔てたネットワーク間の通信は、通信業者の提供する公衆回線網を通じて行われることが一般的であり、この公衆回線網は“WAN(Wide Area Network)”と呼ばれている。このWANに対して、Ethernet(登録商標)によって形成された構内のネットワークは“LAN(Local Area Network)”と呼ばれ、一般に同一ネットワーク上にPCやIP電話などの端末が複数配置される。LANを形成・延伸するデバイスとして、スイッチやハブ、ブリッジなどがある。
【0004】
LANとWANは、ルータによって相互に接続されるが、昨今では障害を考慮し、一つのLANに対して複数のWANを接続するデザインが主流であり、この場合、ルータも同一LAN内に複数配置されることが多い。
【0005】
LANに収容されている端末は、他のネットワークと通信を行う際にフレームを転送するルータを指定し(このルータをデフォルトゲートウェイと呼ぶ)、このルータを、一つのIPアドレス及びそのIPアドレスに対応するMACアドレスによってのみ認識する。そのため、一つのLANに複数の複数のルータを使用する場合には、それらを連動させ、ひとつの仮想IPアドレスを引き継ぎあうことで、対障害性を高める“冗長ゲートウェイ”としてルータを機能させている。
【0006】
とろろで、一つのLANに対して複数のWANが接続されており、複数のWANのうちのいずれか選定し、このLANに収容されている端末からのIPパケットを選定したWANに送出させる技術として、例えば、以下の特許文献1に記載の技術がある。
【0007】
この技術は、宛先IPアドレスに応じて、複数のWANのうちのいずれか適切なWANを選定し、フレームの転送遅延を小さくする技術である。
【0008】
【特許文献1】特開2003−198580号公報
【発明の開示】
【発明が解決しようとする課題】
【0009】
上記特許文献1に記載の技術は、確かに、IPパケットの転送遅延を小さくすることができる。しかしながら、ユーザからは、さらに、通信コストを抑えたい、通信品質を高めたい等の各種要望ある。
【0010】
そこで、本発明は、各種ユーザからの要望に応え、よりユーザを満足させることができる通信フレーム振分け装置を提供することを目的とする。
【課題を解決するための手段】
【0011】
上記目的を達成するための通信フレーム振分け装置に係る発明は、
複数の通信経路のうち、一つの通信経路を選択して、該受信手段で受信した通信フレームを選択した該通信経路を経由させて、該目的の宛先へ送信する通信フレーム振分け装置において、
複数の宛先ポート番号毎に、前記複数の通信経路のうちで使用する経路を定めるための振分けポリシーが記憶されている振分けポリシー記憶手段と、
前記受信した通信フレームのヘッダを解析して、該ヘッダに含まれている宛先ポート番号を取得し、前記振分けポリシーを参照して、前記複数の通信経路のうちから該宛先ポート番号に対する通信経路を選定する経路選定手段と、
前記経路選定手段で選定された前記通信経路へ前記通信フレームを送出する送信処理手段と、
を備えていることを特徴とする。
【0012】
送信元から送出された通信フレーム中の宛先ポート番号は、この送信元で使用するアプリケーションの種類によって定まる。また、送信元で使用するアプリケーションの種類によって、例えば、多少通信品質が低くとも通信コストの安い通信経路を利用する方が好ましい場合もあれば、多少通信コストが高くとも通信品質の高い通信経路を利用する方が好ましい場合もある。
【0013】
そこで、本発明では、振分けポリシーを参照して、複数の通信経路のうち、送信元のアプリケーションの種類に応じて定まる通信フレーム中の宛先ポート番号に対応した通信経路を選定することで、ユーザの満足度を高めている。
【発明を実施するための最良の形態】
【0014】
以下、本発明に係る通信フレーム振分け装置の一実施形態について、図面を用いて説明する。
【0015】
本実施形態の通信フレーム振分け装置100は、図1に示すように、LAN内に収容されている。このLAN内には、さらに、複数の端末1,1,…も収容されている。
【0016】
このLANは、各ルータ10a,10b,10cを介して、各WANと接続されている。
【0017】
このLANに接続されているWANとして、広域LAN2a、IP−VPN(Virtual Private Network)2b、Internet−VPN2cがある。広域LAN2aは、転送ロスが少なく転送遅延が小さいという長所があるものの、通信コストが嵩むという短所がある。また、IP−VPN2bは、転送ロスが少ないという長所があるものの、転送遅延が比較的大きいという短所がある。但し、通信コストは、広域LAN2aよりも安い。また、Internet−VPN2cは、転送ロスが比較的多く転送遅延も比較的大きいという短所があるものの、通信コストが非常に安いという長所がある。
【0018】
各端末1,1,…は、通信フレーム振分け装置100を介して、各ルータ10a,10b,10cと接続されている。ルータ10aは、広域LAN2aに接続され、ルータ10bは、IP−VPN2bに接続され、ルータ10cは、Internet−VPN2cに接続されている。
【0019】
通信フレーム振分け装置100は、図2に示すように、LAN側インタフェース101と、LAN側入出力バッファ102と、WAN側インタフェース103と、WAN側入出力バッファ104と、各種制御処理を実行する制御部110と、WAN側の通信状態をモニタするモニタ部120と、各種データを記憶するデータ記憶部130と、各種プログラムが予め記憶されているプログラム記憶部140と、を備えている。
【0020】
制御部110は、LAN側からWAN側へ及びWAN側からLAN側へのMACフレームの入出力を制御する入出力制御部(送信処理手段)111と、LAN側からのMACフレームをいずれかのルータ10a,10b,10cに振り分ける振分け処理部(経路選定手段)112と、を有している。
【0021】
モニタ部120は、ユーザが定めた監視ポイントとの間で通信が可能か否かをモニタするICMP(Internet Control Message Protocol)モジュール(モニタ手段)122と、各ルータ10a,10b,10cでの通信量をモニタするSNMP(Simple Network Management Protocol)モジュール(モニタ手段)123と、これらのモジュール122,123によるモニタ動作を管理するモニタ管理部(候補決定手段)121とを有している。
【0022】
データ記憶部130は、各ルータ10a,10b,10c等のMACアドレス等が格納されているアドレステーブル131と、モニタ部121によるモニタ結果等が格納される通信状態テーブル132と、通信セッションが開始されたMACフレームの振分け先ルータのID等が格納されるセッションテーブル133と、MACフレームをいずれのルータ10a,10b,10cに振り分けるかを選定するための振分けポリシーが格納されている振分けポリシーテーブル134と、を有している。
【0023】
プログラム記憶部140には、LAN側からWAN側へ及びWAN側からLAN側へのMACフレームの入出力を制御するための入出力制御プログラム141と、LAN側からのMACフレームをいずれかのルータ10a,10b,10cに振り分けるための振分け処理プログラム142と、ユーザが定めた監視ポイントとの間で通信が可能か否かをモニタするためのICMPプログラム145と、各ルータ10a,10b,10cでの通信量をモニタするためのSNMPプログラム146と、モニタ動作を管理するためのモニタ管理プログラム143と、が予め記憶されている。
【0024】
制御部110及びモニタ部120は、いずれも、CPU等の演算装置で構成されている。制御部110の各機能111,112は、それぞれ、プログラム記憶部140に記憶されている入出力プログラム141、振分け処理プログラム142を演算装置が実行することで機能する。また、モニタ部120の各機能121,122,123も、それぞれ、プログラム記憶部140に記憶されているモニタ管理プログラム143、ICMPプログラム145、SNMPプログラム146を演算装置が実行することで機能する。データ記憶部130は、例えば、DRAM等で構成されている。また、プログラム記憶部140は、例えば、ROM等で構成されている。
【0025】
各ルータ10a,10b,10cは、それぞれ、図3に示すように、LAN側インタフェース11と、WAN側インタフェース12と、各種制御処理を実行する制御部13と、各種データを記憶するデータ記憶部14と、各種プログラムが予め記憶されているプログラム記憶部15と、を備えている。
【0026】
制御部13は、いずれかのインタフェース11,12に入力した通信フレームの経路ルーティングを行うルーティング処理部13aと、ユーザが定めた監視ポイントとの間で通信が可能か否かをモニタして、その結果を通信フレーム振分け装置100に通知するICMPモジュール13bと、自ルータの通信量をモニタして、その結果を通信フレーム振分け装置100に通知するSNMPモジュール13cと、を有している。このSNMPモジュール13cは、通信フレーム振分け装置100のSNMPモジュール123が一般的にマネージャーと呼ばれているのに対して、エージェントと呼ばれている。
【0027】
データ記憶部14は、各通信セッション毎の経路が格納される経路セッションテーブル14aと、SNMPモジュール13cでのモニタ結果が格納されるMIB(Management Information Base)14bと、を有している。
【0028】
通信フレーム振分け装置100のアドレステーブル131は、図4に示すように、管理番号が格納される管理番号欄131aと、装置IDが格納される装置ID欄131bと、各装置のMACアドレスが格納されるMACアドレス欄131cと、各装置のIPアドレスが格納されるIPアドレス欄131dと、デフォルトルータであるか否かを示すデフォルトルータフラグ欄131eと、を有している。このアドレステーブル131の各欄のデータは、後述の振分け処理を実行する以前に格納されている。IPアドレス欄131dに格納される各ルータ10a,10b,10cのIPアドレスは、いずれも、LAN側のIPアドレスである。また、デフォルトルータフラグ131eには、デフォルトルータであることを示す「1」、又は、デフォルトルータではないことを示す「0」が格納される。この例では、ID「RT03」のルータ10cがデフォルトルータである。
【0029】
通信フレーム振分け装置100の通信状態テーブル132は、図5に示すように、ルータIDが格納されるルータID欄132aと、SNMPモジュール123でのモニタ結果を振分け処理で利用するか否かが格納される利用有無設定欄132bと、SNMPモジュール123でのモニタ結果に基づく該当ルータの利用の可否が格納される結果欄132bと、ICMPモジュール122でのモニタ結果を振分け処理で利用するか否かが格納される利用有無設定欄132dと、ICMPモジュールでのモニタ結果に基づく該当ルータの利用の可否が格納される結果欄132eと、最終的な当該ルータの利用の可否が格納される利用可能性欄132fと、を有している。この通信状態テーブル132の各利用有無設定欄132b,132dには、モニタ結果を振分け処理で利用することを示す「1」、又はモニタ結果を振分け処理で利用しないことを示す「0」が格納される。この各利用有無設定欄132b,132dのデータは、振分け処理以前に、LANユーザ等により設定される。各結果欄132c,132eには、該当ルータが利用できることを示す「1」、又は該当ルータが利用に適さないことを示す「0」が格納される。各結果欄132c,132e及び利用可能性欄132fのデータは、各モジュール122,123でモニタ結果が得られると、モニタ管理部121により格納される。
【0030】
通信フレーム振分け装置100のセッションテーブル133は、図6に示すように、管理番号が格納される管理番号欄133aと、レイヤ4の通信プロトコル種別が格納される種別欄133bと、受信したMACフレームの送信元のIPアドレス及びポート番号が格納される送信元アドレス/ポート欄133cと、受信したMACフレーム中の宛先IPアドレス及びポート番号が格納される宛先アドレス/ポート欄133dと、受信したMACフレームの振分け先ルータのIDが格納される振分けルータID欄133eと、種別、送信元のIPアドレス及びポート番号、宛先のIPアドレス及びポート番号が同一のMACフレームを最後に受信した時刻が格納される最終受信時刻欄133fと、を有している。このセッションテーブル133の各欄のデータは、いずれも、振分け処理過程で、振分け処理部112により格納される。
【0031】
通信フレーム振分け装置100の振分けポリシーテーブル134は、図7に示すように、宛先ポート番号が格納される宛先ポート番号欄134aと、ルータIDが格納されるルータID欄134bと、ルータの選定優先順位が格納される優先順位欄134cと、を有している。この振分けポリシーテーブル134の各欄のデータは、いずれも、振分け処理前に、LANユーザ等により設定される。
【0032】
この振分けポリシーテーブル134で示される振分けポリシーは、例えば、宛先ポート番号が「52」の場合、IDが「RT01」のルータ10aに関しては選定優先順位が「3」で、IDが「RT02」のルータ10aに関しては選定優先順位が「2」で、IDが「RT01」のルータ10aに関しては選定優先順位が「1」である、というものである。
【0033】
宛先ポート番号は、送信元の端末1が使用するアプリケーションの種類に応じて定められる。例えば、送信元の端末1が、UDP(User Datagram Protocol)を採用するアプリケーションを用いている場合には、この端末からの通信フレーム中に格納されている宛先ポート番号は「52」となり、送信元の端末1が、TCP(Transmission Control Protocol)を採用するアプリケーションを用いている場合には、宛先ポート番号は「80」となり、送信元の端末が、ICMP(Internet Control Message Protocol)を採用するアプリケーションを用いている場合には、このICMPでは宛先ポート番号の概念が存在しない関係で、この端末からの通信フレーム中に宛先ポート番号は格納されない。
【0034】
この振分けポリシーテーブル134では、宛先ポート番号が「52」、つまり、送信元の端末1が、UDP(User Datagram Protocol)を採用するアプリケーションを用いている場合、IDが「RT03」のルータ10cの選定優先順位を「1」とし、IDが「RT02」のルータ10bの選定優先順位を「2」とし、IDが「RT01」のルータ10aの選定優先順位を「3」としている。
【0035】
UDPは、ネットワーク層のプロトコルであるIPプロトコルをほぼそのままアプリケーションから使えるようにしただけのプロトコルである。このUDPは、アプリケーションから渡されたデータに対して、ポート番号とチェックサムを付加しただけで、それをそのままIPパケットに載せて、送信しているだけで、送信先の受信確認やエラー時の再送処理機能がない。すなわち、UDPは、高い通信品質を要求する通信には適さないプロトコロル、言い換えると高い通信品質を要求しない通信に適したプロトコルである。このため、ここでは、宛先ポート番号が「52」、つまり、送信元の端末がUDPを採用するアプリケーションを用いている場合には、前述したように、転送ロスが比較的多く転送遅延も比較的大きいという短所があるものの、通信コストが非常に安いInternet−VPN2cに接続されているルータ「RT03」10cの選定優先順位を「1」とし、次に通信コストが安いIP−VPN(Virtual Private Network)2bに接続されているルータ「RT02」10bの選定優先順位を「2」とし、最も通信コストが高い広域LAN2aに接続されているルータ「RT01」10aの選定優先順位を「3」としている。
【0036】
また、TCPは、全二重で信頼性があり、フロー制御のあるセッション指向(ストリーム型)の通信を行なうためのプロトコルである。このTCPでは、ネットワークの物理的な構成やその特性などに左右されることなく、常に確実な通信を行えることが保証される。すなわち、TCPは、高い通信品質を要求される通信に適したプロトコルである。このため、ここでは、宛先ポート番号が「80」、つまり、送信元の端末がTCPを採用するアプリケーションを用いている場合には、前述したように、通信コストが非常に高いという短所があるものの、転送ロスが少なく転送遅延も小さい広域LAN2aに接続されているルータ「RT01」10aの選定優先順位を「1」とし、次に、通信品質の高いIP−VPN(Virtual Private Network)2bに接続されているルータ「RT02」10bの選定優先順位を「2」とし、最も通信品質の低いInternet−VPN2cに接続されているルータ「RT03」10cの選定優先順位を「3」としている。
【0037】
次に、図9に示すシーケンス図に従って、LAN内の各機器の動作について説明する。
【0038】
通信フレーム振分け装置100のICMPモジュール122は、モニタ管理部121からの指示に従って、定期的に(例えば、数秒毎)、入出力制御部111での入出力制御下、各ルータ10a,10b,10cへICMPのechoパケットを送信する(S11)。各ルータ10a,10b,10cのICMPモジュールは、このechoパケットを受信すると、ユーザが定めた監視ポイントへechoパケットを送信し、このechoパケットに返信があれば、監視ポイントとの間での通信が可能であることを示すecho-replyパケットを通信フレーム振分け装置100へ返す。通信フレーム振分け装置100のICMPモジュール122が、入出力制御部111を介して、このecho-replyパケットを受信すると、その旨をモニタ管理部121へ通知する(S12)。モニタ管理部121は、これを受けて、通信状態テーブル132の該当ルータのレコード中のICMP結果欄132eに「1(該当ルータは利用可能)」又は「0(該当ルータは利用に不適)」を格納すると共に、利用可能性欄132fに「Available」又は「Unavailable」を格納する(S13)。
【0039】
具体的に、モニタ管理部121は、ICMPモジュール122からecho-replyパケットを受信した旨の通知を受けた場合には、通信状態テーブル132の該当ルータのレコード中のICMP結果欄132eに「1(該当ルータは利用可能)」を格納し、ICMPモジュール122からecho-replyパケットを受信した旨の通知を所定時間受けない場合には、通信状態テーブル132の該当ルータのレコード中のICMP結果欄132eに「0(該当ルータは利用に不適)」を格納する。
【0040】
また、該当ルータのレコード中で、各利用有無設定欄132b,132dに「1(モニタ結果を振分け処理で利用)」が格納されている場合、各結果欄132c,132eのいずれにも「1(該当ルータは利用可能)」が格納されていると、モニタ管理部121は、利用可能性欄132fに「Available」を格納し、ICMP結果欄132eに「0(該当ルータは利用に不適)」が格納されていると、SNMP結果欄132cの格納内容に関わらず、利用可能性欄132fに「Unavailable」を格納し、SNMP結果欄132cに「0(該当ルータは利用に不適)」が格納され、且つICMP結果欄132eに「1(該当ルータは利用可能)」が格納されていると、利用可能性欄132fに「Exceeded」を格納する。
【0041】
また、該当ルータのレコード中で、SNMP利用有無設定欄132bにのみ「1(モニタ結果を振分け処理で利用)」が格納されている場合、モニタ管理部121は、SNMP結果欄132cに「0(該当ルータは利用に不適)」が格納されていると、利用可能性欄132fに「Exceeded」を格納し、SNMP結果欄132cに「1(該当ルータは利用可能)」が格納されていると、利用可能性欄132fに「Available」を格納する。また、該当ルータのレコード中で、ICMP利用有無設定欄132dにのみ「1(モニタ結果を振分け処理で利用)」が格納されている場合、モニタ管理部121は、ICMP結果欄132eに「1(該当ルータは利用可能)」が格納されていると、利用可能性欄132fに「Available」を格納し、ICMP結果欄132eに「0(該当ルータは利用に不適)」が格納されていると、利用可能性欄132fに「Unavailable」を格納する。
【0042】
通信フレーム振分け装置100のSNMPモジュール123は、モニタ管理部121からの指示に従って、定期的に(例えば、数秒毎)、入出力制御部111での入出力制御下、各ルータ10a,10b,10cへSNMPの通信量送信要求パケットを送信する(S14)。各ルータ10a,10b,10cのSNMPモジュール13cは、自ルータに対する通信フレームの入出力がある毎に、入出力量(通信量)をデータ記憶部14のMIB14bに格納しており、通信量送信要求パケットを受信すると、このMIB14bに格納されている通信量パケットを通信フレーム振分け装置100へ返す。通信フレーム振分け装置100のSNMPモジュール122が、入出力制御部111を介して、この通信量パケットを受信すると、このパケットが示す通信量をモニタ管理部121へ通知する(S15)。モニタ管理部121は、この通信量に応じて、通信状態テーブル132の該当ルータのレコード中のSNMP結果欄132cに「1(該当ルータは利用可能)」又は「0(該当ルータは利用に不適)」を格納すると共に、利用可能性欄132fに「Available」「Unavailable」又は「Exceeded」を格納する(S16)。
【0043】
具体的に、モニタ管理部121は、該当ルータの通信量が該当ルータに対して予め定められた通信量を超える場合には、通信状態テーブル132の該当ルータのレコード中のSNMP結果欄132cに「0(該当ルータは利用に不適)」を格納し、予め定められた通信量以下の場合には、該当ルータのレコード中のSNMP結果欄132cに「1(該当ルータは利用可能)」を格納する。なお、利用可能性欄132fの「Available」又は「Unavailable」又は「Exceeded」の格納条件は、前述のステップ13の場合と同様である。なお、この「Exceeded」は、通信量が予め定められた通信量を超えていることを示しており、通信不能であることを示すものではない。
【0044】
以上のように、通信状態テーブル132の各結果欄132c,132e及び利用可能性欄132fのデータは、モニタ管理部121により、定期的に更新される。
【0045】
LAN内のいずれかの端末1が、WANを介して通信先装置3とのセッション開始要求を出力し、セッションを開始すると(S17)、この端末1から通信フレーム振分け装置100へMACフレームが送信される(S18)。通信フレーム振分け装置100は、いずれかの端末1からMACフレームを受信すると、振分け処理を実行して、MACフレームの振分け先ルータ10aを定め(S20)、このルータ10aに対してMACフレームを転送する(S32)。このルータ10aは、ルーティング処理を行い(S33)、このルーティング処理で定められたルートでMACフレーム中に含まれるIPパケットを通信先装置3へ転送する(S34)。
【0046】
次に、以上で説明した振分け処理(S20)の詳細について、図10に示すフローチャートに従って説明する。
【0047】
通信フレーム振分け装置100の振分け処理部112が、端末1から送出されたMACフレームを入出力制御部111から受け付けると(S21)、このMACフレームに含まれている宛先MACアドレスが通信フレーム振分け装置自身のMACアドレスか否かをアドレステーブル131を参照して判断する(S22)。
【0048】
ここで、MACフレームの構成について、図8を用いて説明する。
【0049】
MACフレームは、MACヘッダ部80とMACデータ部81とを有している。MACヘッダ部80には、宛先MACアドレス80a、送信元MACアドレス80b等が格納されている。また、MACデータ部81には、IPパケットが格納されている。このIPパケットは、IPヘッダ部82とIPデータ部83とを有している。IPヘッダ部82には、宛先IPアドレス82a、送信元IPアドレス82b等が格納されている。また、IPデータ部83には、レイヤ4の通信フレーム、例えば、TCP(Transmission Control Protocol)セグメント、UDP(User Datagram Protocol)データグラム等が格納されている。レイヤ4の通信フレームは、レイヤ4ヘッダ部84とデータ部85とを有している。
【0050】
振分け処理部112は、以上で説明したMACフレームのMACヘッダ部80に格納されている宛先MACアドレス80aが通信フレーム振分け装置自身のMACアドレスか否かを判断する(S22)。各端末10の利用者のうち、通信フレーム振分け装置100の機能を利用したい利用者は、宛先MACアドレスを通信フレーム振分け装置100のMACアドレスに設定し、通信フレーム振分け装置100の機能の利用を望まない利用者は、デフォルト宛先MACアドレスをいずれかのルータ10a,10b,10cのMACアドレスに設定する。このため、このステップ22では、通信フレーム振分け装置100が受信したMACフレームが、通信フレーム振分け装置100による振分け処理を施すものであるか否かを判断するために、宛先MACアドレス80が通信フレーム振分け装置自身のMACアドレスか否かを判断する。
【0051】
振分け処理部112は、宛先MACアドレス80が通信フレーム振分け装置自身のMACアドレスでない、つまり、受信したMACフレームが通信フレーム振分け装置100による振分け処理を施すものでないと判断すると、このMACフレームをそのまま入出力制御部111に渡し、この入出力制御部111から、MACフレームに格納されている宛先MACアドレスで規定されているルータへ、このMACフレームを転送させる(S32)。
【0052】
一方、振分け処理部112は、ステップ22で、宛先MACアドレス80が通信フレーム振分け装置自身のMACアドレスである、つまり、受信したMACフレームが通信フレーム振分け装置100による振分け処理を施すものであると判断すると、セッションテーブル133(図6)のレコード中で、最終受信時刻欄133fに格納されている時刻が現時点までで所定時間以上経過したものがあるか否かを判断する(S23)。所定時間以上経過したレコードがあれば、このレコードで規定されるセッションは終了したものとみなし、このレコードを削除してから(S24)、ステップ25に進む。また、所定時間以上経過したレコードがない場合には、直ちに、ステップ25に進む。
【0053】
ステップ25では、振分け処理部112が、受信したMACフレームに対応するレコードがセッションテーブル133にあるか否かを判断する。この際、振分け処理部112は、MACフレームに収められているIPパケットのIPヘッダを参照して、送信元IPアドレス及び送信元ポート番号と、宛先IPアドレス及び宛先ポート番号を把握し、これらのIPアドレス等がセッションテーブル133(図6)中のいずれかのレコードに存在するか否かを判断する。
【0054】
振分け処理部112は、受信したMACフレームに対応するレコードがセッションテーブル133にないと判断すると、このMACフレームが振分けポリシーの適用対象か否かを判断する(S26)。この判断は、このMACフレーム中のIPヘッダに収められている宛先ポート番号が振分けポリシーテーブル134(図7)のレコード中にあるか否かで判断する。
【0055】
振分け処理部112は、このMACフレームが振分けポリシーの適用対象でないと判断すると、アドレステーブル131(図4)を参照して、このMACフレームの宛先MACアドレスをデフォルトルータ「RT03」10cのMACアドレスに変更する(S30)。そして、振分け処理部112は、このMACフレームを入出力制御部111に渡し、入出力制御部111から、MACフレームに格納されている宛先MACアドレスで規定されているデフォルトルータ「RT03」10cへ、このMACフレームを転送させる(S32)。
【0056】
ステップ26で、受信したMACフレームが振分けポリシーの適用対象であると判断すると、振分け処理部112は、通信状態テーブル132及び振分けポリシーテーブル134を参照して、このMACフレームを転送するルータを選定する(S27)。この際、振分け処理部112は、通信状態テーブル132(図5)を参照して、複数のルータ10a,10b,10cのうち、「Available」であるルータを把握する。ここでは、仮に、図5に示すように、IDが「RT01」のルータ10aとIDが「RT03」のルータ10cとが「Available」であるとする。次に、振分けポリシーテーブル134(図7)を参照して、受信したMACフレーム中のIPヘッダに収められている宛先ポート番号に対応するルータのうちから、「Available」なルータを選定し、仮に、「Available」なルータが複数ある場合には、複数の「Available」なルータのうちから、優先順位が高いルータを選定する。例えば、宛先ポート番号が「52」の場合、この宛先ポート番号に対応するルータのうちで、「Available」なルータは、前述したように、IDが「RT01」のルータ10aとIDが「RT03」のルータ10cであるから、この二つのルータ10a,10cのうちで、優先順位の高いルータ「RT03」10cを選定する。また、宛先ポート番号が「80」、「−(ポート番号無し)」の場合、「Available」なルータ10a,10cのうちで、優先順位の高いルータ「RT01」10aを選定する。なお、ここで、通信量が予め定められた通信量を超えているものの、通信可能な「Exceeded」のルータを選定しないのは、このルータの通信量がさらに増加して、通信速度が遅くなることや、通信不能になってしまうことを回避するためである。
【0057】
振分け処理部112は、ルータを選定すると、受信したMACフレームと関係付けてこのルータのIDをセッションテーブル133に登録する(S28)。振分け処理部112は、まず、セッションテーブル133(図6)の新たなレコードの管理番号欄133a、に連番を格納する。続いて、受信したMACフレーム中のレイヤ4ヘッダを参照して、レイヤ4の種別を把握し、この種別をこのレコードの種別欄133bに格納する。さらに、このレコードの送信元アドレス/ポート欄133c、宛先アドレス/ポート欄133dに、受信したMACフレーム中のIPヘッダに収められている、送信元IPアドレス/送信元ポート番号、宛先IPアドレス/宛先ポート番号を、それぞれ格納する。さらに、ステップ25で定めたルータのIDを振分けルータID欄133eに格納し、受信したMACフレームの受信時刻を最終受信時刻欄133fに格納する。
【0058】
振分け処理部112は、セッションテーブル133への登録が終了すると、セッションテーブル133の新たなレコードのルータID欄133eに格納されたルータIDのMACアドレスをアドレステーブル131(図4)から取得する。そして、受信したMACフレームの宛先MACアドレスを、取得したMACアドレスに変更する(S29)。次に、振分け処理部112は、このMACフレームを入出力制御部111に渡し、入出力制御部111から、MACフレームに格納されている宛先MACアドレスで規定されているルータへ、このMACフレームを転送させる(S32)。
【0059】
また、ステップ25で、受信したMACフレームに対応するレコードがセッションテーブル133にあると判断すると、言い換えると、このMACフレームは通信先装置3とセッション中のフレームであると判断すると、振分け処理部112は、この対応レコードのルータID欄133eに格納されたルータIDのMACアドレスをアドレステーブル131(図4)から取得する。このとき、振分け処理部112は、セッションテーブル133の対応レコードの最終受信時刻欄133fに格納されている時刻を、このMACフレームを受信した時刻に更新する。そして、受信したMACフレームの宛先MACアドレスを、取得したMACアドレスに変更する(S31)。
【0060】
次に、振分け処理部112は、このMACフレームを入出力制御部111に渡し、入出力制御部111から、MACフレームに格納されている宛先MACアドレスで規定されているルータへ、このMACフレームを転送させる(S32)。
【0061】
次に、図11に示すフローチャートに従って、端末と通信先装置3との間のセッション中に、このセッションで利用しているルータが「Available」から「Unavailable」に変化した場合の振分け処理について説明する。
【0062】
振分け処理部112は、常に、通信状態テーブル132を監視している。そして、この監視で、この通信状態テーブル132が示すルータのうちで、「Unavailable」になったルータが存在するか否かをセッションテーブル133を判断する(S41)。
【0063】
振分け処理部112は、「Unavailable」になったルータが存在すると判断すると、この「Unavailable」になったルータのIDがセッションテーブル133に格納されているか否かを判断する(S42)。セッションテーブル133に格納されている場合、振分け処理部112は、前述のステップ27と同様に、振分けポリシーに従って新たなルータを選定し(S43)、セッションテーブル133で、このセッションのレコード中の振分けルータID欄133e(図6)に、新たに選定したルータのIDを登録する(S44)。
【0064】
ステップ41で「Unavailable」になったルータが存在しないと判断した場合、ステップ42で「Unavailable」になったルータのIDがセッションテーブル133に格納されていないと判断した場合、ステップ44で新たに選定したルータのIDを登録した場合には、再び、ステップ41に戻る。
【0065】
以上の処理により、端末と通信先装置3との間のセッション中に、このセッションで利用しているルータが「Available」から「Unavailable」に変化した場合でも、新たなルータが選定されるため、セッションを継続することができる。
【0066】
以上、本実施形態では、例えば、MACフレーム中の宛先ポート番号が「52」、つまり、送信元の端末がUDPを採用するアプリケーションを用いている場合には、通信コストが非常に安いInternet−VPN2cに接続されているルータ「RT03」10cが、最優先でMACフレームの振分けルータに選定され、宛先ポート番号が「80」、つまり、送信元の端末がTCPを採用するアプリケーションを用いている場合には、転送ロスが少なく転送遅延も小さい広域LAN2aが、最優先でMACフレームの振分けルータに選定される。このように、本実施形態では、高い通信品質を要求しない場合には、通信コストが安いWANが選定され、高い通信品質を要求する場合には、通信品質の高いWANが選定されるため、LANユーザの満足度を高めることができる。
【0067】
また、本実施形態の通信フレーム振分け装置100は、MACフレームを受信すると、MACフレームを出力する、つまり、レイヤ2デバイスとして機能して、レイヤ3以上のデータには変更を加えず、MACフレームを透過的に処理する。このため、本実施形態では、LANを分断することがない、つまり、ネットワークデザインに変更を加える必要がない。
【0068】
また、本実施形態では、複数のWANのそれぞれの通信状態、さらに各WANに接続されているルータの通信状態をモニタしており、いずれかのWAN又はルータに通信障害が発生した場合には、このWAN又はルータを避けて、他のWANに接続されているルータが選定されるため、WANやルータの通信障害に強いLANを提供することができる。
【0069】
さらに、本実施形態の通信フレーム振分け装置100は、複数のルータのうちから選定したルータへのMACフレームの転送処理を行うため、WANでの通信障害を考慮して、ルータで冗長ゲートウェイ機能を使用する必要がない。このため、ルータの種類や組合せを選ばないという利点もある。
【0070】
なお、以上の実施形態では、端末と通信先装置3との間のセッション中、振分けポリシーを参照せずに、セッションテーブル133を参照して、振分けルータを定めているが、セッションテーブル133を用いずに、セッション中であっても、振分けポリシーを参照して、振分けルータを定めるようにしてもよい。但し、この場合、セッション中でも、振分けポリシーを参照するため、通信フレーム振分け装置の負荷が高まり、セッション中のMACフレームの転送速度が低下することは否めない。
【0071】
また、以上では、セッションテーブル133の最終受信時刻欄133fに格納されている時刻が現時点までで所定時間以上経過しているレコードが存在すれば、このレコードで規定されるセッションは終了したものとして扱っているが、TCPのように、そのヘッダ部にセッション終了を示す情報が含まれている場合には、この情報に基づいてセッションの終了を判断し、UDPのように、そのヘッダ部にセッション終了を示す情報が含まれていない場合にのみ、最終受信時刻からの経過時間でセッションの終了を判断するようにしてもよい。
【0072】
また、本実施形態の通信フレーム振分け装置100は、二種類のモニタ機能を備えているが、いずれか一方のモニタ機能のみを備えていてもよいし、全くモニタ機能を備えていなくてよい。但し、モニタ機能を備えていない場合には、WANやルータの通信障害に対処できないことは言うまでもない。
【図面の簡単な説明】
【0073】
【図1】本発明に係る一実施形態におけるネットワーク構成を示す説明図である。
【図2】本発明に係る一実施形態における通信フレーム振分け装置の構成図である。
【図3】本発明に係る一実施形態におけるルータの構成図である。
【図4】本発明に係る一実施形態におけるアドレステーブルのデータ構成を示す説明図である。
【図5】本発明に係る一実施形態における通信状態テーブルのデータ構成を示す説明図である。
【図6】本発明に係る一実施形態におけるセッションテーブルのデータ構成を示す説明図である。
【図7】本発明に係る一実施形態における振分けポリシーテーブルのデータ構成を示す説明図である。
【図8】MACフレームのデータ構成を示す説明図である。
【図9】本発明に係る一実施形態におけるLAN内の各機器の動作を示すシーケンス図である。
【図10】図9中の振分け処理の詳細を示すフローチャートである。
【図11】本発明に係る一実施形態における通信フレーム振分け装置のセッション中の振分け処理を示すフローチャートである。
【符号の説明】
【0074】
1:端末、2a:広域LAN、2b:IP−VPN、2c:Internet−VPN、3:通信先装置、10a,10b,10c:ルータ、100:通信フレーム振分け装置、101:LAN側インタフェース、103:WAN側インタフェース、110:制御部、111:入出力制御部、112:振分け処理部、120:モニタ部、130:データ記憶部、131:アドレステーブル、132:通信状態テーブル、133:セッションテーブル、134:振分けポリシーテーブル、140:プログラム記憶部

【特許請求の範囲】
【請求項1】
複数の通信経路のうち、一つの通信経路を選択して、該受信手段で受信した通信フレームを選択した該通信経路を経由させて、該目的の宛先へ送信する通信フレーム振分け装置において、
複数の宛先ポート番号毎に、前記複数の通信経路のうちで使用する経路を定めるための振分けポリシーが記憶されている振分けポリシー記憶手段と、
前記受信した通信フレームのヘッダを解析して、該ヘッダに含まれている宛先ポート番号を取得し、前記振分けポリシーを参照して、前記複数の通信経路のうちから該宛先ポート番号に対する通信経路を選定する経路選定手段と、
前記経路選定手段で選定された前記通信経路へ前記通信フレームを送出する送信処理手段と、
を備えていることを特徴とする通信フレーム振分け装置。
【請求項2】
請求項1に記載の通信フレーム振分け装置において、
前記複数の通信回線のそれぞれの通信状態をモニタするモニタ手段と、
前記モニタ手段でモニタされた通信状態が予め定められた条件を満たすか否かに応じて、前記複数の通信経路のうちで、使用可能な1以上の通信経路候補を定める候補決定手段と、
を備え、
前記振分けポリシーには、前記複数の宛先ポート番号毎に、前記複数の通信経路のそれぞれに関して選定優先順位が定められ、
前記経路選定手段は、取得した前記宛先ポート番号に対して、前記候補決定手段により定められた前記1以上の通信回線候補のうちから、前記振分けポリシーを参照して、最も選定優先順位の高い通信経路を選定する、
ことを特徴とする通信フレーム振分け装置。
【請求項3】
請求項1及び2のいずれか一項に記載の通信フレーム振分け装置において、
送信元と宛先との間の通信セッションを特定する情報と、前記複数の通信経路のうちで使用する一つの通信経路とが関係付けられて記憶されるセッション情報記憶手段を備え、
前記経路選定手段は、
前記セッション情報記憶手段に、受信した通信フレームに関する通信セッションを特定する情報が記憶されているか否かを判断し、該情報が記憶されていれば、該情報に関係付けられている通信経路を選定し、該情報が記憶されていなければ、前記振分けポリシーを参照して、前記複数の通信経路のうちから、前記通信フレームから取得した宛先ポート番号に対する通信経路を選定して、該通信フレームを解析して前記通信セッションを特定する情報を抽出し、該情報と該通信経路とを関係付けて前記セッション情報記憶手段に記憶し、送信元と宛先との間の通信セッションが終了したか否かを判定し、前記セッション情報記憶手段に記憶されているもののうちから、通信セッションが終了したと判定したものを削除する、
ことを特徴とする通信フレーム振分け装置。
【請求項4】
請求項3に記載の通信フレーム振分け装置において、
前記候補決定手段により、前記複数の通信経路毎に、使用可能な通信経路候補であるか、使用不能な通信経路であるかが格納される通信状態記憶手段を備え、
前記経路選定手段は、前記通信状態記憶手段に格納されている前記複数の通信回路毎の使用の可否を監視し、該複数の通信回路のうちのいずれか一つの通信回路でも使用不能になると、使用不能になった通信経路が前記セッション情報記憶手段に記憶されているか否かを判断し、使用不能になった通信経路が記憶されている場合、使用不能になった通信経路に関係付けられている通信セッションで利用する通信経路として、前記振分けポリシーを参照して、使用可能な通信経路候補のうちから一の通信経路を選定し、新たに選定した通信経路を該通信セッションを特定する前記情報と関連付けて前記セッション情報記憶手段に記憶する、
【請求項5】
請求項1から4のいずれか一項に記載の通信フレーム振分け装置において、
前記複数の通信経路毎に、それぞれの通信経路の基点となるルータが設けられており、
前記振分けポリシーは、前記複数の宛先ポート番号毎に、前記複数の通信経路のそれぞれの基点となるルータのうちで、使用するルータを定めるためのポリシーであり、
前記経路選定手段は、前記通信フレームとしてのMACフレームのヘッダを解析して、該ヘッダに含まれている宛先ポート番号を取得し、前記振分けポリシーを参照して、複数の前記ルータのうちから、該MACフレームから取得した宛先ポート番号に対するルータを選定し、
前記送信処理手段は、前記経路選定手段で選定された前記ルータへMACフレームを送出する、
ことを特徴とする通信フレーム振分け装置。
【請求項6】
請求項5に記載の通信フレーム振分け装置において、
前記複数のルータのそれぞれの識別子とそれぞれのMACアドレスとを関連付けて記憶しているアドレス記憶手段を備え、
前記経路選定手段は、前記振分けポリシーを参照して、複数の前記ルータのうちから、前記MACフレームから取得した宛先ポート番号に対するルータを選定し、前記アドレス記憶手段から該ルータのMACアドレスを取得し、受信したMACフレームに含まれているレイヤ3以上のフレームに変更を加えずに、該MACフレームの宛先MACアドレスを該ルータのMACアドレスに書き換え、
前記送信処理手段は、宛先MACアドレスが前記経路選定手段により選定された前記ルータのMACアドレスに書き換えられたMACフレームを、該ルータへ送出する、
ことを特徴とする通信フレーム振分け装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate