以下に添付図面を参照して本願に係る転送装置、通信システム、および迂遠経路検知方法の実施例を図面に基づいて詳細に説明する。なお、この実施例により開示技術が限定されるものではない。また、各実施例は、矛盾しない範囲で適宜組みあわせてもよい。
以下の実施例1では、図1を用いて、通信システムの一例を説明する。図1は、実施例1に係る通信システムを説明する図である。図1に示す例では、通信システム1は、端末装置2、ネットワーク3、第1拠点4、第2拠点5を有する。また、第1拠点4は、LAN(Local Area Network)11aを有し、第2拠点5は、LAN11bを有する。なお、第1拠点4および第2拠点5は、異なる地域にそれぞれ配置される、例えばデータセンタなどである。
また、LAN11aは、ゲートウェイ20a、転送装置30a、サーバ40aを有する。また、LAN11bは、ゲートウェイ20b、転送装置30b、サーバ40bを有する。また、LAN11aとLAN11bとは、転送装置30aと転送装置30bを介して接続しており、全体で1つのネットワークアドレスが付与されたサブネット10として動作する。
ここで、転送装置30aは、複数のインターフェース(IF:Interface)を有し、各インターフェースを介してゲートウェイ20a、サーバ40a、転送装置30bと接続されている。また、転送装置30bは、転送装置30aと同様に複数のインターフェースを有し、各インターフェースを介してゲートウェイ20b、サーバ40b、転送装置30aと接続されている。
なお、図1では、理解を容易にするため、2つの拠点を連携させたサブネット10を記載したが、実施例はこれに限定されるものではなく、サブネット10は、3つ以上の拠点に設置されたLANを接続してもよい。また、図1に示す例では、各LAN11a、11bがそれぞれ1つのサーバを有する例について記載したが、実施例はこれに限定されるものではなく、各LAN11a、11bは、2つ以上のサーバを有してもよい。
ここで、端末装置2、各ゲートウェイ20a、20b、サブネット10、および各サーバ40a、40bには、パケット通信に用いるIPアドレス、およびネットワークアドレスが割り当てられる。以下、図2を用いて、端末装置2、各ゲートウェイ20a、20bに割り当てられるIPアドレス、およびサブネット10、サーバ40a、40bに割り当てられるネットワークアドレスの一例について説明する。
図2は、実施例1に係る各装置に設定されたIPアドレスとネットワークアドレスの一例を説明する図である。図2に示す例では、端末装置2には、IPアドレス「10.0.0.1」が割り当てられ、ゲートウェイ20aには「10.0.1.1」が割り当てられ、ゲートウェイ20bには「10.0.2.2」が割り当てられている。このため、端末装置2には、サブネット10にアクセスする際のゲートウェイのアドレスとして、「10.0.1.1」と「10.0.2.2」が通知されている。
また、サブネット10には、ネットワークアドレスとマスク値「192.168.0.0/24」が割り当てられている。また、サーバ40aには、サブネット10内のネットワークアドレス「192.168.0.1」が割り当てられ、サーバ40bには、サブネット10内のネットワークアドレス「192.168.0.2」が割り当てられている。
また、サーバ40bには、MAC(Media Access Control address)アドレス「M1」が割り当てられており、ゲートウェイ20aのサブネット10側のインタフェースには、MACアドレス「M2」が割り当てられている。また、サーバ40aには、MACアドレス「M3」が割り当てられており、ゲートウェイ20bのサブネット10側のインタフェースには、MACアドレス「M4」が割り当てられている。
続いて、通信システム1の端末装置2、ネットワーク3、ゲートウェイ20a、転送装置30a、サーバ40aの機能について説明する。なお、ゲートウェイ20bは、ゲートウェイ20aと同様の機能を発揮し、転送装置30bは、転送装置30aと同様の機能を発揮し、サーバ40bは、サーバ40aと同様の機能を発揮するものとして、以下の説明を省略する。
端末装置2は、サブネット10から各種サービスの提供を受ける端末装置であり、例えば、PC(Personal Computer)やPDA(Personal Digital Assistant)、移動端末装置等の情報処理装置である。詳細には、端末装置2には、サブネット10が有する各ゲートウェイ20a、20bのIPアドレスが通知されている。この結果、端末装置2は、ゲートウェイ20a、またはゲートウェイ20bのいずれか一方を優先ゲートウェイとして選択する。そして、端末装置2は、サブネット10が有する各サーバ40a、40bとパケット通信を行う場合は、ネットワーク3を介して、選択した優先ゲートウェイを宛先としてIPパケットを送信する。
例えば、端末装置2は、サブネット10のネットワークアドレスと、ゲートウェイ20aのIPアドレス、およびゲートウェイ20bのIPアドレスとを対応付けたルーティングテーブルを記憶する。そして、端末装置2は、サーバ40aにIPパケットを送信する場合は、宛先IPアドレス「192.168.0.1」をIPヘッダに格納したIPパケットを生成する。また、端末装置2は、宛先IPアドレス「192.168.0.1」がサブネット10のネットワークアドレスに含まれていると判別し、サブネット10のゲートウェイ20a、20bを識別する。
次に、端末装置2は、ゲートウェイ20aを優先ゲートウェイとして選択している場合は、ゲートウェイ20aのIPアドレス「10.0.1.1」を用いて、ゲートウェイ20aのMACアドレスを取得する。そして、端末装置2は、取得したMACアドレスを宛先MACアドレスとするフレーム(イーサーネットフレーム)を生成し、生成したフレームに生成したIPパケットを格納する。その後、端末装置2は、IPパケットを格納したフレームを送信する。
ネットワーク3は、インターネットなどの公衆網もしくはLANなどの閉域網である。例えば、ネットワーク3は、端末装置2から受信したフレーム内のパケットの宛先IPアドレスに応じて、パケットの転送を行う。
ゲートウェイ20aは、ネットワーク3、および転送装置30aのIF(Interface)と接続されており、サブネット10が有する各サーバ40a、40bと端末装置2との間の通信を中継する。具体的には、ゲートウェイ20aは、ネットワーク3を介して、端末装置2が送信したフレームを受信すると、受信したフレーム内のIPパケットを取り出す。そして、ゲートウェイ20aは、取り出したIPパケット内の宛先IPアドレスに従って、パケットの転送を行う。なお、以降の説明では、ゲートウェイ20aが受信したフレーム内のIPパケットをゲートウェイ20aが受信したパケットと記載する場合がある。
例えば、ゲートウェイ20aは、サーバ40aのIPアドレス「192.168.0.1」とMACアドレス「M3」とを対応付けたARP(Address Resolution Protocol)テーブルを記憶する。また、ゲートウェイ20aは、宛先IPアドレスが「192.168.0.1」であるIPパケットを受信すると、ARPテーブルに「192.168.0.1」と対応付けられたサーバ40aのMACアドレス「M3」を取得する。そして、ゲートウェイ20aは、取得したサーバ40aのMACアドレス「M3」を宛先MACアドレスとしたフレームに、受信したIPパケットを格納し、フレームを転送装置30aに送信する。
一方、ゲートウェイ20aは、サーバ40bのIPアドレス「192.168.0.2」を宛先IPアドレスとするIPパケットを受信した場合には、ARPテーブルに対応するMACアドレスが格納されていないと判定する。このような場合は、ゲートウェイ20aは、サーバ40bのMACアドレスを取得するため、IPアドレス「192.168.0.2」をターゲットアドレスとするARP要求をサブネット10にブロードキャストする。詳細には、ゲートウェイ20aは、ARP要求のパケットを格納したフレームをブロードキャストする。
このような場合には、ARP要求は、転送装置30a、転送装置30bを介して、サーバ40bに転送される。この結果、サーバ40bは、サーバ40bのMACアドレス「M1」を格納したARP応答を生成し、転送装置30b、および転送装置30aを介して、生成したARP応答をゲートウェイ20aに送信する。このような場合には、ゲートウェイ20aは、ARP応答に格納されたサーバ40bのMACアドレスを宛先MACアドレスとしたフレームに、端末装置2から受信したIPパケットを格納し、フレームを転送装置30aに送信する。
転送装置30aは、LAN11aとLAN11bとのフレーム通信を中継する転送装置であり、例えば、L3スイッチである。詳細な例を説明すると、転送装置30aは、宛先MACアドレスとフレームを送出するインターフェースとを対応付けたFDB(Forwarding DataBase)を記憶する。そして、転送装置30aは、ゲートウェイ20a、サーバ40a、または転送装置30bからフレームを受信すると、受信したフレームの宛先MACアドレスを取得し、取得した宛先MACアドレスと対応付けたインターフェースからフレームを出力する。
例えば、転送装置30aは、宛先MACアドレスが「M1」のパケットをサーバ40aから受信すると、受信したフレームを転送装置30bに送信する。そして、転送装置30bは、転送装置30aから受信したフレームをサーバ40bに送信する。
サーバ40aは、端末装置2とパケット通信を行うことで、端末装置2に各種サービスを提供するサーバであり、例えば、各種サービスを提供するためのプログラムを実行する情報処理装置である。また、サーバ40aは、サーバ40bと通信を行うことで、データのやり取りを行い、サーバ40bと連携して端末装置2に各種サービスの提供などを行う。
ここで、端末装置2には、各ゲートウェイ20a、20bのIPアドレスが通知されているが、各サーバ40a、40bが各LAN11a、11bのどちらに含まれているかまでは通知されていない。このため、端末装置2は、ゲートウェイ20aを優先ゲートウェイとして選択した場合は、サーバ40bを有するLAN11bにゲートウェイ20bが設置されているにも係わらず、サーバ40bを宛先とするフレームをゲートウェイ20aに送信する場合がある。
このような場合は、ゲートウェイ20aが受信したパケットが転送装置30a、および転送装置30bを介して、サーバ40bまで転送されるので、端末装置2とサーバ40bとの通信経路が遠回りな経路、すなわち迂遠経路となる。なお、迂遠経路とは、パケットの送信先LANに設置されたゲートウェイとは異なるゲートウェイを介して行われるパケット通信の経路である。
そこで、通信システム1では、LAN11aとLAN11bとの通信を中継する転送装置30aが、通信の経路が迂遠経路か否かを判定する。以下、転送装置30aが、通信の経路が迂遠経路か否かを判定する処理について説明する。
まず、転送装置30aは、各インターフェースの接続先がLAN11a以外のLANであるか否かを示すインターフェース情報を記憶する。そして、転送装置30aは、フレームを受信すると、受信したフレームを送出するインターフェースがLAN11a以外のLAN、すなわち、LAN11bの転送装置30bに接続されているか否かを判定する。
また、転送装置30aは、フレームを送出するインターフェースが転送装置30bに接続されている場合には、送出するフレーム内のパケットの種別がデータ通信等に用いられるIPパケットであるか否かを判定する。ここで、IPパケットには、IPパケットを送信した装置のIPアドレスが送信元IPアドレスとして格納されており、IPパケットの送信先となる装置のIPアドレスが宛先IPアドレスとして格納されている。例えば、端末装置2がサーバ40bへ送信したIPパケットには、転送装置2のIPアドレスが送信元IPアドレスとして格納され、サーバ40bのIPアドレスが宛先IPアドレスとして格納されている。
そして、転送装置30aは、送出するフレーム内のパケットの種別がIPパケットである場合には、IPパケットに格納された送信元IPアドレスが、サブネット10のIPアドレスの範囲内であるか否かを判定する。つまり、転送装置30aは、送信するIPパケットがサブネット10の内部装置であるサーバ40a、40bと、サブネット10の外部装置である端末装置2とのパケット通信に係るIPパケットであるか否かを判定する。
その後、転送装置30aは、IPパケットの送信元IPアドレスがサブネット10のIPアドレスの範囲内ではないと判定した場合は、受信したフレーム内のパケットが迂遠経路を介して送受信される迂遠パケットであると判定する。そして、転送装置30aは、受信したパケットが迂遠パケットであると判定した場合は、ゲートウェイ20aを介して、端末装置2にゲートウェイの切替を指示する通知を送信する。
すなわち、図1に示す例では、各LAN11a、11bがそれぞれゲートウェイを有する。ここで、転送装置30aは、サーバ40aと端末装置2とが送受信するIPパケットを、LAN11aからLAN11bへ転送した場合は、転送したIPパケットが迂遠パケットであると判定できる。このため、転送装置30aは、転送装置30bに送信するフレーム内のIPパケットの送信元IPアドレスがサブネット10のIPアドレスではない場合、例えば、送信元が端末装置2である場合は、送信するIPパケットが迂遠パケットであると判定する。
また、転送装置30aは、送信するフレーム内のIPパケットが迂遠パケットであると判定すると、端末装置2にゲートウェイの切替を通知する。この結果、端末装置2は、ルーティングテーブルの書き換えを行い、優先ゲートウェイをゲートウェイ20aからゲートウェイ20bに切替える。このため、転送装置30aは、サブネット10の各サーバ40a、40bが設置されたLANの管理を行わずとも、通信経路が迂遠経路となるのを防ぐことができる。なお、転送装置30aと同様の処理を行うことで、転送装置30bは、端末装置2とサーバ40aとの通信経路が迂遠経路を介するか否かを判定してもよい。
次に、図を用いて、端末装置2、ゲートウェイ20a、および転送装置30aが有する機能構成の一例を説明する。まず、図3を用いて、端末装置2が有する機能構成の一例を説明する。
図3は、端末装置が有する機能構成の一例を説明する図である。図3に示す例では、端末装置2は、ルーティングテーブル12a、ARPキャッシュテーブル12bを有する。また、端末装置2は、データ生成部13、転送処理部14、送受信部15、インターフェース16、メッセージ識別部17、データ処理部18、ルーティングテーブル更新部19を有する。
ルーティングテーブル12aは、パケットの送信先となるネットワークが有するゲートウェイのIPアドレスを記憶する。例えば、図4Aは、ルーティングテーブルの一例を説明する図である。図4Aに示すように、ルーティングテーブル12aは、宛先IPアドレス、ゲートウェイのIPアドレス、通信コストを対応付けて記憶する。
ここで、宛先IPアドレスとは、パケットの送信先となるネットワークに割り当てられたIPアドレスおよびマスク値である。また、ゲートウェイのIPアドレスとは、対応付けられた宛先IPアドレスが割り当てられたネットワークのゲートウェイに割り当てられたIPアドレスである。また、通信コストとは、対応付けられたIPアドレスが示すゲートウェイを介してパケット通信を行う際に発生する通信コストの値であり、ネットワークの遅延や回線の帯域等から算出される値である。
例えば、ルーティングテーブル12aは、サブネット10のネットワークアドレス、およびマスク値「192.168.0.0/24」、ゲートウェイ20bのIPアドレス「10.0.2.2」、通信コスト「20」を対応付けて記憶する。また、ルーティングテーブル12aは、サブネット10のネットワークアドレス、およびマスク値「192.168.0.0/24」、ゲートウェイ20aのIPアドレス「10.0.1.1」、通信コスト「10」を対応付けて記憶する。この結果、端末装置2は、通信コストが低いゲートウェイ20aを優先ゲートウェイに選択する。
図3に戻り、ARPキャッシュテーブル12bは、各ゲートウェイ20a、20bにパケットを送信する際の宛先IPアドレスと、フレームに格納する宛先MACアドレスとを対応付けて記憶する。例えば、図4Bは、端末装置のARPキャッシュテーブルの一例を説明する図である。図4Bに示す例では、ARPキャッシュテーブル12bは、ゲートウェイ20aのIPアドレス「10.0.1.1」とゲートウェイ20aのネットワーク3側のMACアドレス「M11」とを対応付けて記憶する。また、ARPキャッシュテーブル12bは、ゲートウェイ20bのIPアドレス「10.0.2.2」とゲートウェイ20bのネットワーク3側のMACアドレス「M12」とを対応付けて記憶する。
図3に戻り、データ生成部13は、サブネット10が有する各サーバ40a、40bに送信するデータを生成し、生成したデータと、送信先を示すIPアドレスとを転送処理部14に出力する。例えば、データ生成部13は、サーバ40bに送信するデータを生成した場合は、データとサーバ40bのIPアドレス「192.168.0.2」を転送処理部14に出力する。
転送処理部14は、データ生成部13からデータとデータの送信先を示すIPアドレスを受信すると、受信したIPアドレスとルーティングテーブル12aとを照合し、データの送信先となるネットワークが有するゲートウェイのIPアドレスを取得する。詳細には、転送処理部14は、データの送信先を示すIPアドレスを含んだ宛先IPアドレスのうち、ネットワークマスクの値が最も大きい値のエントリを選択する。
ここで、転送処理部14は、複数のエントリを選択した場合には、選択したエントリのうち、通信コストの値が最も低いエントリを選択する。そして、転送処理部14は、選択したエントリに格納されたゲートウェイのIPアドレスを取得する。例えば、転送処理部14は、ルーティングテーブル12aが図4Aに例示した情報を記憶する場合は、各エントリのマスク値が同じ値であるので、通信コストの値が最も低い値であるゲートウェイ20aのIPアドレス「10.0.1.1」を取得する。
その後、転送処理部14は、取得したゲートウェイのIPアドレスを用いて、IPパケットの送信を行う。詳細には、転送処理部14は、データ生成部13から受信したIPアドレス「192.168.0.2」を宛先IPアドレスとし、データ生成部13から受信したデータをIPパケットのペイロードに格納したIPパケットを生成する。また、転送処理部14は、ARPキャッシュテーブル12bから、ゲートウェイ20aのIPアドレス「10.0.1.1」と対応付けられたMACアドレス「M11」を宛先MACアドレスとするフレームを生成する。そして、転送処理部14は、生成したフレームに生成したIPパケットを格納し、フレームを送受信部15に出力する。
ここで、図5は、IPパケットのフォーマットの一例を説明するための図である。なお、図5には、IPパケットのフィールド名と、各フィールドに格納する値の一例を記載した。例えば、転送処理部14は、送信元IPアドレスとして端末装置2のIPアドレス「10.0.0.1」を格納し、宛先IPアドレスとしてサーバ40bのIPアドレス「192.168.0.2」をヘッダ部分に格納したIPパケットを生成する。
そして、転送処理部14は、生成したIPパケットのペイロードに、データ生成部13から受信したデータを格納する。また、転送処理部14は、図5に示すIPパケットにゲートウェイ20aが有するネットワーク3側のインターフェースのMACアドレス「M11」を宛先MACアドレスとするイーサーネットヘッダを付与することで、IPパケットをフレームに格納する。そして、転送処理部14は、IPパケットを格納したフレームを送受信部15に出力する。
図3に戻り、送受信部15は、インターフェース16を介してフレームの送受信を行う。例えば、送受信部15は、転送処理部14からフレームを受信すると、インターフェース16を介して、フレームをネットワーク3に送信する。また、送受信部15は、インターフェース16を介して、フレームを受信すると、受信したフレームをメッセージ識別部17に出力する。なお、インターフェース16は、パケットが格納されたフレームの送受信を行うインターフェースであり、例えば、端末装置2が有する通信ポートである。
メッセージ識別部17は、送受信部15から受信したフレーム内のパケットが迂遠通知メッセージである場合には、受信した迂遠通知メッセージをルーティングテーブル更新部19に出力する。また、メッセージ識別部17は、受信したフレーム内のパケットがパケット通信に係るIPパケットである場合は、フレームからパケットを取り出し、取り出したパケットをデータ処理部18に出力する。
データ処理部18は、メッセージ識別部17からIPパケットを受信すると、受信したIPパケットのペイロードに格納されたデータを取得し、取得したデータを用いて、各種処理を実行する。また、ルーティングテーブル更新部19は、メッセージ識別部17から迂遠通知メッセージを受信した場合には、受信した迂遠通知メッセージに基づいて、ルーティングテーブル12aを更新し、ゲートウェイの切替を行う。
例えば、図6は、迂遠通知メッセージのフォーマットの一例を説明する図である。図6に示すように、データ処理部18は、迂遠通知メッセージとして、送信元IPアドレスと、宛先IPアドレスと、迂遠フラグとが格納されたパケットを受信する。ここで、図6に示す送信元IPアドレス、および宛先IPアドレスとは、迂遠通知メッセージの送信元や宛先を示すIPアドレスではなく、迂遠経路を介して転送されるIPパケットの送信元と宛先を示すIPアドレスである。また、迂遠フラグとは、宛先IPアドレスとして格納されたIPアドレスを宛先とするIPパケットが迂遠パケットか否かを示す情報である。
例えば、図6に示す例では、ルーティングテーブル更新部19は、送信元IPアドレス「10.0.0.1」、宛先IPアドレス「192.168.0.2」、迂遠フラグ「ON」の迂遠通知メッセージを受信する。このような場合には、ルーティングテーブル更新部19は、「192.168.0.2」を宛先IPアドレスとするパケットを送信する際のゲートウェイの切替を行う。
図7は、更新後のルーティングテーブルの一例を説明するための図である。図7に示すように、ルーティングテーブル更新部19は、宛先IPアドレスに、迂遠通知メッセージの宛先IPアドレス「192.168.0.2」を格納したエントリを追加する。また、ルーティングテーブル更新部19は、他のエントリよりも大きな値のマスク値として、例えば「/32」を設定する。
また、ルーティングテーブル更新部19は、優先ゲートウェイではないゲートウェイ20bのIPアドレス「10.0.2.2」を追加したエントリに格納する。また、ルーティングテーブル更新部19は、エントリの追加前にゲートウェイ20bのIPアドレス「10.0.2.2」と対応付けられていた通信コスト「20」を追加したエントリに格納する。この結果、転送処理部14は、宛先IPアドレスのマスク値の値が最も大きいエントリを選択するので、サーバ40bを宛先とするパケットを送信する際に、優先ゲートウェイとしてゲートウェイ20bを選択する。
次に、図8を用いて、ゲートウェイ20aが有する機能構成について説明する。図8は、サブネット側のゲートウェイが有する機能構成の一例を説明する図である。図8に示す例では、ゲートウェイ20aは、インターフェース21、28、送受信部22、27、メッセージ識別部23、迂遠通信特定部24、経路変更通知部25、転送処理部26、ARPキャッシュテーブル記憶部29aを有する。なお、インターフェース21は、ネットワーク3側のインターフェースであり、MACアドレス「M11」が割り当てられている。また、インターフェース28は、サブネット10側のインターフェースであり、MACアドレスM2が割り当てられている。
ARPキャッシュテーブル記憶部29aは、IPアドレスとMACアドレスとを対応付けて記憶する。例えば、図9Aは、ゲートウェイのARPキャッシュテーブルの一例を説明する図である。図9Aに示す例では、ARPキャッシュテーブル記憶部29aは、IPアドレス「192.168.0.1」とMACアドレス「M3」とが対応付けられたARPキャッシュテーブルを記憶する。すなわち、ARPキャッシュテーブル記憶部29aは、サーバ40aのIPアドレスとMACアドレスとを対応付けて記憶する。
図8に戻り、送受信部22は、インターフェース21を介して、ネットワーク3からフレームを受信すると、受信したフレームをメッセージ識別部23に出力する。また、送受信部22は、経路変更通知部25から迂遠通知メッセージを受信した場合は、受信した迂遠通知メッセージをネットワーク3に出力する。また、送受信部22は、転送処理部26からフレームを受信した場合は、インターフェース21を介して、フレームをネットワーク3に出力する。
メッセージ識別部23は、送受信部22からフレームを受信すると、受信したフレームを転送処理部26に出力する。また、メッセージ識別部23は、送受信部27からフレームを受信すると、受信したフレーム内のパケットがIPパケットであるか、迂遠通知メッセージのパケットであるか、ARP応答のパケットのいずれであるかを判定する。そして、メッセージ識別部23は、受信したフレーム内のパケットがIPパケット、またはARP応答のパケットである場合は、パケットを転送処理部26に出力する。一方、メッセージ識別部23は、受信したフレーム内のパケットが迂遠通知メッセージのパケットである場合には、受信した迂遠通知メッセージを迂遠通信特定部24に出力する。
迂遠通信特定部24は、メッセージ識別部23から迂遠通知メッセージを受信すると、受信した迂遠通知メッセージの送信元IPアドレスを用いて、迂遠経路を介するパケット通信を行う外部装置を特定する。そして、迂遠通信特定部24は、迂遠通知メッセージと特定した外部装置とを経路変更通知部25に通知する。
経路変更通知部25は、迂遠通信特定部24から迂遠通知メッセージと迂遠通信特定部24が特定した外部装置とを受信した場合には、迂遠通信特定部24が特定した外部装置を宛先とするパケットを生成し、生成したパケットに迂遠通知メッセージを格納する。そして、経路変更通知部25は、迂遠通信特定部24が特定した外部装置のMACアドレスを宛先MACアドレスとするフレームに迂遠通知メッセージを格納し、フレームを送受信部22に出力する。
転送処理部26は、ゲートウェイ20aのパケット転送処理を実行する。例えば、転送処理部26は、メッセージ識別部23からフレームを受信すると、受信したフレーム内のIPパケットの宛先IPアドレスを識別する。そして、転送処理部26は、識別した宛先IPアドレスが、サブネット10のネットワークアドレス「192.168.0.0/24」に含まれない場合は、宛先IPアドレスに対応するMACアドレスを取得する。その後、転送処理部26は、取得したMACアドレスを宛先MACアドレスとするフレームに、IPパケットを格納し、フレームを送受信部22に出力する。
また、転送処理部26は、識別した宛先IPアドレスが、サブネット10のネットワークアドレス「192.168.0.0/24」に含まれる場合は、ARPキャッシュテーブル記憶部29aに識別した宛先IPアドレスが記憶されているか否か判定する。また、転送処理部26は、ARPキャッシュテーブル記憶部29aに識別した宛先IPアドレスが記憶されている場合は、識別した宛先IPアドレスと対応付けられたMACアドレスを取得する。一方、転送処理部26は、ARPキャッシュテーブル記憶部29aに識別した宛先IPアドレスが記憶されていない場合は、ARP要求を発行して宛先IPアドレスが示す装置のMACアドレスを取得する。そして、転送処理部26は、メッセージ識別部23から受信したIPパケットを、取得したMACアドレスを宛先MACアドレスとするフレームに格納する。その後、転送処理部26は、フレームを送受信部27に出力する。
ここで、図9Bを用いて、サブネット10内で転送されるフレームのフォーマットの一例を説明する。図9Bは、イーサーネットフレームのフォーマットの一例を説明するための図である。図9Bに示すように、イーサーネットフレームは、宛先MACアドレス、送信元IPアドレス、宛先IPアドレス、ペイロードを有する。すなわち、イーサーネットフレームは、IPパケットに宛先MACアドレスを付加したフォーマットを有する。
例えば、転送処理部26は、宛先IPアドレスが「192.168.0.1」のIPパケットを受信すると、ARPキャッシュテーブル記憶部29aから「192.168.0.1」と対応付けられたMACアドレス「M3」を取得する。そして、転送処理部26は、送信元IPアドレスにゲートウェイ20aのIPアドレス「10.0.0.1」を格納し、宛先MACアドレスを「M3」とするフレームにIPパケットを格納して、フレームを送受信部27に出力する。
一方、転送処理部26は、ARPキャッシュテーブル記憶部29aに宛先IPアドレスが記憶されていない場合は、ARP要求を発行する。以下、図10A、図10Bを用いて、転送処理部26が、ARP要求を用いて、宛先IPアドレスが示す装置のMACアドレスを取得する処理について詳しく説明する。まず、図10Aを用いて、転送処理部26がARP要求を発行する処理について説明する。
図10Aは、ARP要求のフォーマットの一例を説明する図である。転送処理部26は、図10Aに示すように、送信元MACアドレス、宛先MACアドレス、ターゲットアドレス、およびペイロードが格納されたARP要求を生成する。ここで、送信元MACアドレスとは、ARP要求の送信元のMACアドレスであり、宛先MACアドレスとは、ARP要求の宛先MACアドレスである。また、ターゲットアドレスとは、MACアドレスの通知を要求する装置を示すIPアドレスである。
なお、転送処理部26は、ARP要求をブロードキャスト送信するため、宛先MACアドレスには、ブロードキャストアドレスである「ff:ff:ff:ff:ff:ff」を格納する。ここで、図10Aに示したARP要求の各種情報は、ARP要求のパケットに格納される情報であり、転送に用いられる情報とは異なる情報である。
例えば、転送処理部26は、IPアドレス「192.168.0.2」を宛先IPアドレスとするIPパケットが格納されたフレームを受信する。このような場合には、転送処理部26は、ARP要求に、送信元MACアドレスとしてゲートウェイ20aのMACアドレス「M2」を格納する。また、転送処理部26は、ARP要求に、宛先MACアドレスとしてブロードキャストアドレスである「ff:ff:ff:ff:ff:ff」を格納し、ターゲットアドレスとして「192.168.0.2」を格納する。そして、転送処理部26は、生成したARP要求をフレームに格納し、フレームを送受信部27に出力する。
すると、送受信部27は、インターフェース28を介して、ARP要求が格納されたフレームをサブネット10にブロードキャスト送信する。この結果、IPアドレスが「192.168.0.2」であるサーバ40bは、MACアドレスを通知するARP応答を生成する。詳細には、サーバ40bは、ARP要求の送信元MACアドレスを宛先MACアドレスとし、送信元MACアドレスにサーバ40bのMACアドレスを格納したARP応答を生成する。そして、サーバ40bは、ゲートウェイ20aのMACアドレスを宛先MACアドレスとするフレームにARP応答を格納し、フレームを転送装置30bに出力する。
図10Bは、ARP応答のフォーマットの一例を説明する図である。図10Bに示すように、サーバ40bは、送信元MACアドレス、宛先MACアドレス、送信元プロトコルアドレス、およびペイロードを有するARP応答を生成する。例えば、サーバ40bは、ARP応答に、送信元MACアドレスとしてサーバ40bのMACアドレス「M1」を格納し、宛先MACアドレスとしてゲートウェイ20aのサブネット10側のインタフェースのMACアドレス「M2」を格納する。また、サーバ40bは、送信元プロトコルアドレスとして、サーバ40bのIPアドレス「192.168.0.2」を格納する。そして、サーバ40bは、ARP応答をゲートウェイ20a宛のフレームに格納し、転送装置30b、および転送装置30aを介して、ARP応答が格納されたフレームをゲートウェイ20aに送信する。
この結果、転送処理部26は、ARP応答の送信元MACアドレスからサーバ40bのMACアドレスを取得する。また、転送処理部26は、サーバ40bのMACアドレスを宛先MACアドレスとしてフレームに、メッセージ識別部23から受信したIPパケットを格納する。そして、転送処理部26は、フレームを送受信部27に出力する。
送受信部27は、インターフェース28を介して、転送装置30aから各種フレームを受信すると、受信した各種フレームをメッセージ識別部23に出力する。また、送受信部27は、転送処理部26からフレームを受信すると、インターフェース28を介して、受信したフレームを転送装置30aに出力する。
続いて、図11を用いて、転送装置30aが有する機能構成について説明する。図11は、転送装置が有する機能構成の一例を説明する図である。図11に示す例では、転送装置30aは、インターフェース情報記憶部31、MAC学習テーブル記憶部32、迂遠パケット識別情報記憶部33を有する。また、転送装置30aは、複数のインターフェース34a〜34c、複数の送受信部35a〜35c、メッセージ識別部36、迂遠通信判定部37、経路変更通知部38、転送処理部39を有する。
インターフェース情報記憶部31は、各インターフェース34a〜34cの接続先が、LAN11a以外のLANに接続されているか否かを示すインターフェース情報を記憶する。
図12は、インターフェース情報の一例を説明する図である。図12に示す例では、インターフェース情報記憶部31は、インターフェース識別子とLAN間通信情報とを対応付けて記憶する。ここで、インターフェース識別子とは、各インターフェース34a〜34cを識別する情報である。また、LAN間通信情報とは、各インターフェース34a〜34cがLAN11a以外のLANと接続されているか否かを示す情報である。
例えば、図12に示す例では、インターフェース情報記憶部31は、インターフェース34aを示すインターフェース識別子「IF#1」とLAN間通信情報「No」を対応付けて記憶する。また、インターフェース情報記憶部31は、インターフェース34bを示すインターフェース識別子「IF#2」とLAN間通信情報「Yes」を対応付けて記憶する。また、インターフェース情報記憶部31は、インターフェース34cを示すインターフェース識別子「IF#3」とLAN間通信情報「No」を対応付けて記憶する。
図11に戻って、MAC学習テーブル記憶部32は、転送装置30aがフレームの転送に用いるMAC学習テーブルを記憶する。例えば、MAC学習テーブル記憶部32は、図13に例示するMAC学習テーブルを記憶する。
図13は、転送装置が有するMAC学習テーブルの一例を説明する図である。図13に示すように、MAC学習テーブル記憶部32は、MACアドレスと、出力インターフェースとを対応付けたMAC学習テーブルを記憶する。ここで、図13に示すMACアドレスとは、転送処理の対象となるフレームの宛先MACアドレスであり、出力インターフェースとは、転送処理の対象となるフレームを送出するインターフェースを示すインターフェース識別子である。
例えば、MAC学習テーブル記憶部32は、サーバ40bのMACアドレス「M1」と、インターフェース34bのインターフェース識別子「IF#2」とを対応付けて記憶する。また、MAC学習テーブル記憶部32は、ゲートウェイ20aのMACアドレス「M2」と、インターフェース34cのインターフェース識別子「IF#3」とを対応付けて記憶する。
また、MAC学習テーブル記憶部32は、サーバ40aのMACアドレス「M3」と、インターフェース34aのインターフェース識別子「IF#1」とを対応付けて記憶する。また、MAC学習テーブル記憶部32は、ゲートウェイ20bのMACアドレス「M4」と、インターフェース34bのインターフェース識別子「IF#2」とを対応付けて記憶する。
図11に戻って、迂遠パケット識別情報記憶部33は、転送装置30aが送受信するフレーム内のパケットが迂遠経路を介するパケット通信のパケット、すなわち迂遠パケットであるか否かを判定するためのルールを記憶する。例えば、迂遠パケット識別情報記憶部33は、パケットが迂遠パケットであるか否かを判定するためのルールとして、図14に示す情報パケット識別情報を記憶する。
図14は、転送装置が記憶する迂遠パケット識別情報の一例を説明する図である。図14に示すように、迂遠パケット識別情報記憶部33は、対象パケット、検知ルール、通信方向、通信内容を対応付けた迂遠パケット識別情報を記憶する。ここで、対象パケットとは、受信したフレーム内のパケットが迂遠パケットであるか否かを判定する際に用いるパケットの種別を示す。
また、検知ルールとは、受信したフレーム内のパケットが迂遠パケットであると判定するための条件を示す。また、通信方向とは、通信経路が迂遠経路か否かを判定する際に用いるフレームの通信方向を示す。また、通信内容とは、フレームの送信先がLAN11a以外のLANであるか否かを判定するための情報であり、詳細には、パケットを送出するインターフェースのLAN間通信情報が「Yes」であるか否かを示す情報である。
例えば、図14に示す例では、迂遠パケット識別情報記憶部33は、対象パケット「IPパケット」、検知ルール「送信元IPアドレス≠192.168.0.0/24」、通信方向「送信」、通信内容「LAN間通信情報=Yes」を対応付けて記憶する。この結果、転送装置30aは、図14に例示する迂遠パケット識別情報を記憶する場合は、フレームを送信する際に、フレームを送信するインターフェースの接続先がLAN11a以外のLAN、すなわちLAN11bであるか判定する。
また、転送装置30aは、フレームを送信するインターフェースの接続先がLAN11bである場合は、送信するフレーム内のパケットの種別を判定する。また、転送装置30aは、パケットの種別がIPパケットである場合は、パケットの送信元IPアドレスを確認する。そして、転送装置30aは、「IPパケット」の送信元IPアドレスが「192.168.0.0/24」ではない場合、すなわち、サブネット10の外部装置がパケットの送信元である場合は、受信したフレーム内のパケットが迂遠パケットであると判定する。
なお、迂遠パケット識別情報記憶部33が記憶する迂遠パケット識別情報は、図14に例示した情報に限られない。すなわち、LAN11bの転送装置30bと送受信するフレーム内のパケットがサブネット10の各サーバ40a、40bと端末装置2との通信に係るパケットであると判定できるのであれば、任意の条件を迂遠パケット識別情報として設定することができる。
例えば、転送装置30aは、対象パケットを「IPパケット」、検知ルールを「宛先IPアドレス≠192.168.0.0/24」、通信方向を「受信」とする迂遠パケット識別情報を記憶してもよい。すなわち、転送装置30aは、転送装置30bから受信したIPパケットの送信先がサブネット10の外部装置である場合には、受信したパケットが迂遠パケットであると判別してもよい。
図11に戻って、各インターフェース34a〜34cは、例えば転送装置30aが有するポートであり、接続された各装置とパケットの送受信を行う。ここで、インターフェース34aは、サーバ40aと接続されている。また、インターフェース34bは、転送装置30bと接続されている。また、インターフェース34cは、ゲートウェイ20aと接続されている。
各送受信部35a〜35cは、各インターフェース34a〜34cから各種フレームを受信すると、受信したフレームをメッセージ識別部36に出力する。また、送受信部35aは、転送処理部39からフレームを受信すると、受信したフレームをサーバ40aに送信する。また、送受信部35bは、転送処理部39からフレームを受信すると、受信したフレームを転送装置30bに送信する。また、送受信部35cは、転送処理部39からフレームを受信すると、受信したフレームをゲートウェイ20aに送信する。
メッセージ識別部36は、各送受信部35a〜35bからフレームを受信すると、フレーム内のパケットの種別を判定する。詳細には、メッセージ識別部36は、受信したフレーム内のパケットが、IPパケット、ARP要求、ARP応答のいずれであるかを判定する。また、メッセージ識別部36は、迂遠パケット識別情報記憶部33が記憶する迂遠パケット識別情報の対象パケットを確認する。
そして、メッセージ識別部36は、受信したフレーム内のパケットの種別が迂遠パケット識別情報の対象パケットと一致する場合は、受信したフレームを迂遠通信判定部37と転送処理部39とに出力する。例えば、メッセージ識別部36は、受信したフレーム内のパケットの種別が「IPパケット」であり、迂遠パケット識別情報の対象パケットが「IPパケット」である場合は、受信したフレームを迂遠通信判定部37と転送処理部39とに出力する。一方、メッセージ識別部36は、受信したフレーム内のパケットの種別が迂遠パケット識別情報の対象パケットと一致しない場合は、受信したフレームを転送処理部39に出力する。
迂遠通信判定部37は、メッセージ識別部36からフレームを受信すると、受信したフレーム内のパケットの種別、送信元IPアドレス、およびパケットを送信するインターフェースに応じて、迂遠パケットであるか否かを判定する。以下、迂遠通信判定部37の機能について具体的に説明する。
まず、迂遠通信判定部37は、メッセージ識別部36からフレームを受信すると、迂遠パケット識別情報記憶部33が記憶する迂遠パケット識別情報を取得する。そして、迂遠通信判定部37は、受信したフレーム内のIPパケットが迂遠パケット識別情報の検知ルールおよび通信方向を満たすパケットであるか否かを判定する。その後、迂遠通信判定部37は、受信したフレーム内のIPパケットが迂遠パケット識別情報を満たす場合は、フレーム内のIPパケットを経路変更通知部38に出力する。一方、迂遠通信判定部37は、受信したフレーム内のIPパケットが迂遠パケット識別情報を満たさない場合は、受信したフレームを破棄する。
以下、迂遠通信判定部37が実行する処理の一例を説明する。なお、以下の説明では、迂遠パケット識別情報記憶部33が図14に例示した迂遠パケット識別情報を記憶する例について説明する。例えば、迂遠通信判定部37は、フレーム内のIPパケットの送信元IPアドレスが「192.168.0.0/24」以外の値であるか否かを判定する。また、迂遠通信判定部37は、フレーム内のIPパケットの送信元IPアドレスが「192.168.0.0/24」以外の値である場合は、受信したフレームの宛先MACアドレスを識別する。次に、迂遠通信判定部37は、識別した宛先MACと対応付けられた出力インターフェースのインターフェース識別子をMAC学習テーブル記憶部32から読み出す。
そして、迂遠通信判定部37は、インターフェース情報記憶部31が記憶するインターフェース情報を確認し、読み出したインターフェース識別子と対応付けられたLAN間通信情報が「Yes」であるか否かを判定する。その後、迂遠通信判定部37は、読み出したインターフェース識別子と対応付けられたLAN間通信情報が「Yes」である場合は、受信したフレーム内のパケットを経路変更通知部38に出力する。
すなわち、転送装置30aは、フレームをLAN11bに送信する際に、フレーム内のIPパケットの送信元IPアドレスに基づいて、フレーム内のIPパケットが端末装置2と各サーバ40a、40bとの通信に係るIPパケットであるか否かを判定する。そして、転送装置は、LAN11に送信するIPパケットが端末装置2とサブネット10との通信に係るIPパケットであると判定した場合には、通信経路が迂遠経路であると判定する。
経路変更通知部38は、迂遠通信判定部37からIPパケットを受信すると、受信したIPパケットの送信元IPアドレスと宛先IPアドレスとを読み出す。そして、経路変更通知部38は、読み出した送信元IPアドレスと宛先IPアドレスとを格納し、迂遠フラグを「ON」とした迂遠通知メッセージを転送処理部39に出力する。
転送処理部39は、MAC学習テーブル記憶部32が記憶するMAC学習テーブルを用いて、メッセージ識別部36から受信したフレームの転送処理を実行する。具体的には、転送処理部39は、メッセージ識別部36からフレームを受信すると、受信したフレームの宛先MACアドレスと対応付けられた出力インターフェースを特定する。そして、転送処理部39は、受信したフレームを特定したインターフェースに対応する送受信部へ出力する。
また、転送処理部39は、経路変更通知部38から迂遠通知メッセージを受信すると、受信した迂遠通知メッセージをフレームに入れて、送受信部35cに出力する。すなわち、転送処理部39は、ゲートウェイ20aのMACアドレス「M2」を宛先MACアドレスとするフレームに迂遠通知メッセージを格納し、フレームをゲートウェイ20aに送信する。
次に、図15を用いて、転送装置30aが転送装置30bに送信するパケットが迂遠パケットであるか否かを判定する処理の流れについて説明する。図15は、迂遠パケットの判定処理の流れを説明するためのフローチャートである。
まず、転送装置30aは、ゲートウェイ20a、転送装置30b、またはサーバ40aからフレームを受信すると(ステップS101)、受信したフレーム内のパケットの種別がIPパケットであるか否かを判定する(ステップS102)。そして、転送装置30aは、受信したフレーム内のパケットの種別がIPパケットである場合は(ステップS102肯定)、受信したフレーム内のIPパケットの送信元IPアドレスが検知ルールを満足するか否かを判定する(ステップS103)。
また、転送装置30aは、受信したフレーム内のパケットの送信元IPアドレスが検知ルールを満足する場合は(ステップS103肯定)、受信したフレーム内のパケットをLAN11bの転送装置30bに送信するか否かを判定する(ステップS104)。すなわち、転送装置30aは、LAN11aとLAN11bとを接続するリンクを介してフレームを送信するか否かを判定する。そして、転送装置30aは、受信したフレームをLAN11bの転送装置30bに送信する場合は(ステップS104肯定)、受信したフレーム内のパケットが迂遠パケットであると判定して迂遠通知メッセージを端末装置2へ送信する(ステップS105)。その後、転送装置30aは、処理を終了する。
一方、転送装置30aは、受信したフレーム内のパケットの種別がIPパケットではない場合は(ステップS102否定)、受信したフレーム内のパケットが迂遠パケットではないと判定して(ステップS106)、処理を終了する。また、転送装置30aは、受信したフレーム内のパケットの送信元IPアドレスが検知ルールを満足しない場合は(ステップS103否定)、受信したフレーム内のパケットが迂遠パケットではないと判定して(ステップS106)、処理を終了する。また、転送装置30aは、受信したフレームをLAN11bの転送装置30b以外の装置に送信する場合は(ステップS104否定)、受信したフレーム内のパケットが迂遠パケットではないと判定して(ステップS106)、処理を終了する。
[実施例1の効果]
上述したように、転送装置30aは、LAN11bに含まれる転送装置30bとの間でフレームを送受信する。また、転送装置30aは、転送装置30bに送信するフレーム内のパケットの送信元IPアドレスに基づいて、送信するフレーム内のパケットが、サーバ40bと端末装置2とのパケット通信に係るパケットであるか否かを判定する。そして、転送装置30aは、送信するフレーム内のパケットが、サーバ40bと端末装置2とのパケット通信に係るパケットであると判定した場合は、迂遠通知メッセージを端末装置2へ送信する。
このため、転送装置30aは、迂遠経路を介するパケット通信を防ぐことができる。詳細には、転送装置30aは、サブネット10のネットワークアドレスのみを用いて、送信するフレーム内のIPパケットが迂遠パケットであるか否かを判定することができる。この結果、転送装置30aは、各サーバ40a、40bがLAN11a、11bのどちらに設置されているかを管理せずとも、迂遠経路を介するパケット通信を防ぐことができる。
また、サブネット10のネットワークアドレスは、一度設定すれば変更せずともよい情報である。この結果、通信システム1は、サブネット10が有するサーバや仮想マシンの数に係わらず、ほぼ一定の管理コストで、迂遠経路を介するパケット通信を防ぐことができる。
また、転送装置30aは、送信するフレーム内のIPパケットの送信元IPアドレス、または受信したフレーム内のIPパケットの宛先IPアドレスに基づいて、送受信するパケットが端末装置2とサーバ40bとのパケット通信に係るパケットか判定する。そして、転送装置30aは、転送装置30bと送受信するフレーム内のパケットが、端末装置2とサーバ40bとのパケット通信に係るパケットであると判定した場合は、パケットが迂遠パケットであると判定し、迂遠通知メッセージを端末装置2へ送信する。この結果、転送装置30aは、迂遠経路を介するパケット通信を防ぐことができる。
また、転送装置30aは、転送装置30bに送信するフレーム内のIPパケットが迂遠パケットであると判定すると、IPパケットの送信元IPアドレスが示す端末装置2に迂遠通知メッセージを送信する。すなわち、転送装置30aは、端末装置2と同様の端末装置がサブネット10にアクセスする際に、迂遠経路でパケット通信を行う端末装置だけに迂遠通知メッセージを送信することができる。
また、転送装置30aは、端末装置2に迂遠パケットと判定されたIPパケットの送信先となるサーバにIPパケットを送信する際のゲートウェイを切り替えるよう指示する。このため、転送装置30aは、端末装置2が、複数のサーバ40a、40bと同時期にパケット通信を行う際に、各パケット通信の通信経路を個別に短縮することができる。
また、転送装置30aは、送信するフレーム内のIPパケットの送信元IPアドレスが端末装置2のIPアドレスである場合は、転送装置30aと同じLAN11aに設置されたゲートウェイ20aに迂遠通知メッセージを送信する。そして、ゲートウェイ20aは、迂遠通知メッセージを受信すると、迂遠パケットであると判定されたIPパケットの送信元である端末装置2に対して、受信した迂遠通知メッセージを送信する。このため、ゲートウェイ20aは、端末装置2が送信したIPパケットと同じ経路を辿るように、迂遠通知メッセージを送信することができる。
転送装置30aは、ゲートウェイ20aを介して、迂遠通知メッセージを送信した。しかし、実施例はこれに限定されるものではない。例えば、転送装置30aは、転送装置30bと送受信するフレーム内のIPパケットから、迂遠通知メッセージの送信先となる端末装置のIPアドレスを取得する。また、転送装置30aは、取得したIPアドレスを用いて、迂遠通知メッセージの送信先となる端末装置のMACアドレスを取得する。そして、転送装置30aは、取得したMACアドレスを宛先MACアドレスとするフレームに迂遠通知メッセージを格納し、フレームを端末装置に直接送信してもよい。
また、例えば、転送装置30aは、受信したフレーム内のパケットが迂遠パケットであると判定すると、端末装置2にゲートウェイの切替を通知した。しかし、実施例はこれに限定されるものではない。例えば、転送装置30aは、LAN11bが有するゲートウェイ20bのIPアドレスを記憶し、受信したフレーム内のパケットが迂遠パケットであると判定すると、切替先のゲートウェイとして、ゲートウェイ20bのIPアドレスを端末装置2に通知してもよい。
図16は、インターフェース情報の第1のバリエーションを説明する図である。図16に示す例では、インターフェース情報記憶部31は、図12に示すインターフェース情報に変えて、インターフェース識別子とLAN間通信情報と、接続先LANが有するゲートウェイのIPアドレスとを対応付けたインターフェース情報を記憶する。
例えば、インターフェース情報記憶部31は、LAN11bの転送装置30bと接続されたインターフェース34bのインターフェース識別子「IF#2」とLAN間通信情報「Yes」とを対応付けて記憶する。また、インターフェース情報記憶部31は、インターフェース識別子「IF#2」とLAN11bが有するゲートウェイ20bのIPアドレス「10.0.2.2」とを対応付けて記憶する。
また、迂遠通信判定部37は、受信したフレーム内のパケットが迂遠パケットであると判定した場合は、インターフェース情報から接続先LANが有するゲートウェイのIPアドレス「10.0.2.2」を読み出す。そして、迂遠通信判定部37は、読み出したゲートウェイのIPアドレス「10.0.2.2」を経路変更通知部38に通知する。その後、経路変更通知部38は、ゲートウェイ20bのIPアドレス「10.0.2.2」が格納された迂遠通知メッセージを生成する。
ここで、図17は、迂遠通知メッセージのフォーマットのバリエーションを説明する図である。図17に示すように、迂遠通信判定部37は、図6に例示した迂遠通知メッセージにゲートウェイのIPアドレス「10.0.2.2」を格納した迂遠通知メッセージを生成し、転送処理部39に出力する。そして、転送処理部39は、ゲートウェイ20bのIPアドレスが格納された迂遠通知メッセージをフレームに格納し、フレームを端末装置2へ送信する。
この結果、端末装置2のルーティングテーブル更新部19は、図18に示すようにルーティングテーブル12aを更新することとなる。図18は、更新後のルーティングテーブルのバリエーションを説明する図である。図18に示す例では、ルーティングテーブル更新部19は、図17に例示する迂遠通知メッセージが格納されたフレームを受信する。このような場合は、ルーティングテーブル更新部19は、受信したフレームから迂遠通知メッセージを取り出し、取り出した迂遠通知メッセージの宛先IPアドレスとマスク値「192.168.0.2/32」を格納したエントリを追加する。
そして、ルーティングテーブル更新部19は、迂遠通知メッセージに格納されたゲートウェイのIPアドレス「10.0.2.2」を追加したエントリに格納する。また、ルーティングテーブル更新部19は、宛先IPアドレスが「192.168.0.2」であるパケットを送信する際に、ゲートウェイ20bが選択されるよう、他の通信コストよりも低い値の通信コスト「5」を追加したエントリに格納する。
また、転送装置30aは、ゲートウェイ20bで障害が発生したか否かに応じて、受信したフレーム内のパケットが迂遠パケットであるか否かを判定してもよい。以下、ゲートウェイ20bで障害が発生したか否かに応じて、受信したフレーム内のパケットが迂遠パケットであるか否かを判定する処理について説明する。
図19は、インターフェース情報の第2のバリエーションを説明する図である。図19に示すように、転送装置30aは、図16に例示したインターフェース情報の各エントリに、障害フラグを対応付けて記憶する。ここで、障害フラグとは、対応付けられたIPアドレスが割り当てられたゲートウェイで障害が発生しているか否かを示すフラグである。例えば、図19に示す例では、インターフェース識別子「IF#2」にLAN間通信情報「Yes」、ゲートウェイ20bのIPアドレス「10.0.2.2」、障害フラグ「ON」が格納されている。このため、転送装置30aは、ゲートウェイ20bに障害が発生していると判定できる。
また、転送装置30aは、ゲートウェイ20aで障害が発生したか否かを判定し、障害が発生した場合は、ゲートウェイ20aで障害が発生した旨を転送装置30bに通知してもよい。例えば、転送装置30aは、所定の時間間隔で、pingメッセージをゲートウェイ20aへ送信する。そして、転送装置30aは、pingメッセージに対する応答をゲートウェイ20aから受信できなかった回数が所定の回数を超えた場合には、ゲートウェイ20aで障害が発生したと判定する。
その後、転送装置30aは、ゲートウェイ20aで障害が発生した場合は、転送装置30bに対し、ゲートウェイ20aで障害が発生した旨と、ゲートウェイ20aのIPアドレス「10.10.1.1」とを通知する。転送装置30bも同様に、ゲートウェイ20bで障害が発生したか否かを判定し、障害が発生した場合は、ゲートウェイ20bで障害が発生した旨を転送装置30aに通知する。
例えば、転送装置30bは、ゲートウェイ20bで障害が発生したと判定した場合は、転送装置30aに対し、ゲートウェイ20bで障害が発生した旨と、ゲートウェイ20bのIPアドレス「10.0.2.2」を転送装置30aに通知する。そして、転送装置30aは、転送装置30bからゲートウェイ20bで障害が発生した旨の通知を受信した場合には、インターフェース情報からゲートウェイ20bのIPアドレス「10.0.2.2」が格納されたエントリを検索する。その後、転送装置30aは、検索したエントリの障害フラグを「ON」に変更する。
また、転送装置30aは、IPパケットが格納されたフレームを受信すると、フレーム内のIPパケットを送出するインターフェースがLAN11bの転送装置30bに接続されているか否かを判定する。また、転送装置30aは、フレーム内のIPパケットを送出するインターフェースがLAN11bの転送装置30bに接続されている場合は、IPパケットの送信元IPアドレスが、サブネット10のネットワークアドレスの範囲内であるか否かを判定する。
また、転送装置30aは、フレーム内のIPパケットの送信元IPアドレスがサブネット10のIPアドレスではない場合は、フレームを送出するインターフェースのインターフェース識別子と対応付けられた障害フラグが「ON」か否かを判定する。そして、転送装置30aは、フレーム内のIPパケットを送出するインターフェースのインターフェース識別子と対応付けられた障害フラグが「ON」である場合は、フレームを中継する。一方、転送装置30aは、フレームの中継を行うとともに、障害フラグが「OFF」である場合は、迂遠通知メッセージを端末装置2へ送信する。
つまり、転送装置30aは、端末装置2とサーバ40bとのパケット通信に係るIPパケットを転送装置30bに送信する際に、ゲートウェイ20bに障害が発生している場合は、通信経路が迂遠経路ではないと判定する。このため、転送装置30aは、ゲートウェイ20bに障害が発生した場合は、LAN11bと端末装置2とのパケット通信が迂遠経路を介することを妨げない。この結果、転送装置30aは、各ゲートウェイ20a、20bのいずれかが故障した際にも、サブネット10と端末装置2とのパケット通信を継続させることができる。
なお、上述した処理は、転送装置30aに新たな機能構成を追加することで実現してもよく、また、例えば、転送処理部39、メッセージ識別部36、迂遠通信判定部37が強調して実現してもよい。例えば、転送処理部39は、ゲートウェイ20aにpingを送信する。
また、メッセージ識別部36は、ゲートウェイ20aからの応答を迂遠通信判定部37に出力する。そして、迂遠通信判定部37は、所定の回数、ゲートウェイ20aからの応答がなかった場合は、経路変更通知部38、転送処理部39を介して、転送装置30bに、ゲートウェイ20aが故障した旨を通知してもよい。
また、メッセージ識別部36は、ゲートウェイ20bが故障した旨の通知を迂遠通信判定部37に出力する。そして、迂遠通信判定部37は、ゲートウェイ20bが故障した旨の通知を受信すると、ゲートウェイ20bのIPアドレスと対応付けられた障害フラグを「ON」にする。
次に、図20を用いて、各ゲートウェイ20a、20bが故障したか否かに応じて、パケットが迂遠パケットであるか判定する処理の流れについて説明する。図20は、迂遠パケット判定処理のバリエーションを説明するためのフローチャートである。なお、図20に示す例では、転送装置30aは、図14に示す迂遠パケット識別情報を記憶しているものとする。
まず、転送装置30aは、ゲートウェイ20a、転送装置30b、またはサーバ40aからフレームを受信すると(ステップS201)、受信したフレーム内のパケットの種別がIPパケットであるか否かを判定する(ステップS202)。そして、転送装置30aは、受信したフレーム内のパケットの種別がIPパケットである場合は(ステップS202肯定)、受信したフレーム内のIPパケットの送信元IPアドレスが検知ルールを満足するか否かを判定する(ステップS203)。
また、転送装置30aは、フレーム内のIPパケットの送信元IPアドレスが検知ルールを満足する場合は(ステップS203肯定)、フレーム内のIPパケットを転送装置30bに送信するか否かを判定する(ステップS204)。そして、転送装置30aは、受信したフレーム内のIPパケットを転送装置30bに送信する場合は(ステップS204肯定)、LAN11bのゲートウェイ20bに障害が発生しているか否かを判定する(ステップS205)。その後、転送装置30aは、LAN11bのゲートウェイ20bに障害が発生していない場合は(ステップS205否定)、以下の処理を実行する。すなわち、転送装置30aは、受信したフレーム内のIPパケットが迂遠パケットであると判定して迂遠通知メッセージを端末装置2へ送信し(ステップS206)、処理を終了する。
一方、転送装置30aは、受信したフレーム内のIPパケットの種別がIPパケットではない場合は(ステップS202否定)、受信したフレーム内のIPパケットが迂遠パケットではないと判定して(ステップS207)、処理を終了する。また、転送装置30aは、受信したフレーム内のIPパケットの送信元IPアドレスが検知ルールを満足しない場合は(ステップS203否定)、受信したフレーム内のIPパケットが迂遠パケットではないと判定して(ステップS207)、処理を終了する。
また、転送装置30aは、受信したIPパケットをLAN11bに送信しない場合は(ステップS204否定)、受信したフレーム内のIPパケットが迂遠パケットではないと判定して(ステップS207)、処理を終了する。また、転送装置30aは、LAN11bのゲートウェイ20bに障害が発生している場合は(ステップS205肯定)、受信したフレーム内のIPパケットが迂遠パケットではないと判定して(ステップS207)、処理を終了する。
また、上述した説明では、転送装置30aが迂遠通知メッセージを端末装置2へ送信する例について説明したが、実施例はこれに限定されるものではない。例えば、図21は、通信システムのバリエーションを説明する図である。図21に示すように、通信システム1のネットワーク3は、端末装置2とサブネット10とのパケット通信を中継するルータ3aを有する。
例えば、ルータ3aは、端末装置2に代わって、図4Aに示すルーティングテーブルを記憶する。また、ルータ3aは、端末装置2からサブネット10のIPアドレスを宛先IPアドレスとするIPパケットが格納されたフレームを受信すると、受信したフレーム内のIPパケットの宛先IPアドレスと対応付けられたゲートウェイのIPアドレスを識別する。そして、ルータ3aは、識別したIPアドレスを用いて、ゲートウェイのMACアドレスを取得し、取得したMACアドレスを用いてフレームの中継を行う。
ここで、転送装置30aは、ネットワーク3にルータ3aが設置されている場合は、迂遠通知メッセージを、端末装置2ではなくルータ3aに対して送信する。この結果、ルータ3aは、ルーティングテーブル更新部19と同様にルーティングテーブルの更新を行うので、迂遠経路を介するパケット通信のゲートウェイを切替えることができる。
[実施例2の効果]
上述したように、転送装置30aは、転送装置30bと接続されたインターフェースのインターフェース情報として、転送装置30bを有するLAN11bのゲートウェイ20bのIPアドレスを記憶する。そして、転送装置30aは、転送装置30bへ送信するIPパケットが迂遠パケットであると判定した場合は、ゲートウェイ20bのIPアドレスを格納した迂遠通知メッセージを端末装置2へ送信する。
このため、転送装置30aは、端末装置2がIPパケットを送信すべきゲートウェイを通知することができる。この結果、転送装置30aは、サブネット10が3つ以上のLANを有する場合にも、遅延経路を介するパケット通信を防ぐことができる。
なお、転送装置30aは、任意の迂遠パケット識別情報を採用することができるが、採用する迂遠パケット識別情報によっては、迂遠パケットを中継するゲートウェイが、転送装置30aと同じLANに含まれるゲートウェイ20aであるか否か決定できる。例えば、転送装置30aは、転送装置30bに送信するフレーム内のIPパケットの送信元IPアドレスが端末装置2のIPアドレスである場合には、フレーム内のIPパケットがゲートウェイ20aを介して転送される迂遠パケットであると判定できる。また、転送装置30aは、転送装置30bから受信したフレーム内のIPパケットの送信元IPアドレスが端末装置2のIPアドレスである場合は、フレーム内のIPパケットがゲートウェイ20bを介して転送される迂遠パケットであると判定できる。
ここで、転送装置30aは、ゲートウェイ20bのIPアドレスを記憶するが、ゲートウェイ20aのIPアドレスは記憶していない。そこで、転送装置30aは、ゲートウェイ20aを介して転送されるパケットが迂遠パケットであるか否かを判定可能な迂遠パケット識別情報を記憶する。そして、転送装置30aは、転送されるパケットが迂遠パケットであると判定した場合は、ゲートウェイ20aを介する転送経路が迂遠経路であると判定し、ゲートウェイ20bのIPアドレスを端末装置2に通知する。この結果、転送装置30aは、同一のLAN11aに設置されたゲートウェイ20aを介する迂遠経路を解消することができる。
また、転送装置30bは、同じLAN11bに設置されたゲートウェイ20bで故障が発生していないか否かを判定し、ゲートウェイ20bで故障が発生したと判定した場合には、転送装置30aにゲートウェイ20bが故障した旨を通知する。このような場合には、転送装置30aは、ゲートウェイ20bが故障した旨を記憶する。
また、転送装置30aは、転送装置30bに転送するフレーム内のIPパケットが端末装置2とサーバ40bとのパケット通信に係るIPパケットであると判定すると、転送装置30bが故障しているか否かを判別する。そして、転送装置30aは、転送装置30bが故障していないと判別した場合は、端末装置2に迂遠通知メッセージを送信し、転送装置30bが故障していると判別した場合は、端末装置2に迂遠通知メッセージを送信しない。
このように、転送装置30aは、ゲートウェイ20bが故障した際に、ゲートウェイ20bを介すべきパケット通信のIPパケットがゲートウェイ20aを介したとしても、パケット通信の通信経路が迂遠経路ではないと判定する。このため、転送装置30aは、端末装置2が故障したゲートウェイを優先ゲートウェイとして選択するのを防ぐ結果、ゲートウェイが故障した場合にも、端末装置2とサブネット10とのパケット通信を継続させることができる。
また、転送装置30aは、端末装置2と各ゲートウェイ20a、20bとのパケット通信を中継するルータ3aが存在する場合は、ルータ3aに迂遠通知メッセージを送信する。このため、転送装置30aは、端末装置2と各ゲートウェイ20a、20bとのパケット通信に係るパケットをルータ3aがルーティングする際にも、通信経路が迂遠経路となるのを防止できる。
実施例3では、他のLANから受信したフレーム内のARP応答の宛先アドレスを用いて、パケット通信の経路が迂遠経路であるか否かを判定する転送装置について説明する。
図22は、実施例3に係る通信システムを説明する図である。なお、図22に示す通信システム1aの端末装置2、ネットワーク3、各サーバ40a、40bは、図1に示す端末装置2、ネットワーク3、各サーバ40a、40bと同様の機能を発揮するものとし、説明を省略する。図22に示す例では、LAN11aは、転送装置30cを有する。また、LAN11bは、転送装置30dを有する。なお、転送装置30dは、転送装置30cと同様の機能を発揮するものとして、以下の説明を省略する。
ゲートウェイ20cは、ゲートウェイ20aと同様に、各サーバ40a、40bと端末装置2とのパケット通信に係るIPパケットの中継を行う。また、ゲートウェイ20cは、ARP要求を送信する場合には、ARP要求の契機となったIPパケットの宛先IPアドレスと送信元IPアドレスとを対応付けて記憶する。
そして、ゲートウェイ20cは、転送装置30cから、迂遠通知メッセージを受信すると、受信した迂遠通知メッセージに含まれる宛先IPアドレスと対応付けて記憶する送信元IPアドレスを識別する。その後、ゲートウェイ20cは、識別した送信元IPアドレスを宛先として、迂遠通知メッセージを送信する。
転送装置30cは、LAN11bの転送装置30dと送受信するフレーム内のパケットが各サーバ40a、40bと端末装置2とのパケット通信に係るパケットであるか否かに応じて、通信経路が迂遠経路か否かを判定する。具体的には、転送装置30cは、転送装置30dから受信したフレーム内のARP応答の送信先がゲートウェイ20cであるか否かに応じて、通信経路が迂遠経路か否かを判定する。
以下、転送装置30cの機能を詳しく説明する。なお、以下の説明では、端末装置2がサーバ40bを宛先とするIPパケットが格納されたフレームをゲートウェイ20cに送信したものとする。例えば、ゲートウェイ20cは、送信元IPアドレスが「10.0.0.1」であり、宛先IPアドレスが「192.168.0.2」であるIPパケットが格納されたフレームを受信する。このような場合には、ゲートウェイ20cは、受信したフレーム内のIPパケットの宛先IPアドレスと送信元IPアドレスとを対応付けて記憶する。そして、ゲートウェイ20cは、受信した宛先IPアドレス「192.168.0.2」を格納したARP要求が格納されたフレームをサブネット10内にブロードキャスト送信する。
この結果、転送装置30cは、ARP要求が格納されたフレームを転送装置30dに転送する。また、転送装置30dは、ARP要求が格納されたフレームをサーバ40bに転送する。このような場合は、サーバ40bは、受信したフレーム内のARP要求の宛先IPアドレスがサーバ40bのIPアドレス「192.168.0.2」と一致するので、サーバ40bのMACアドレス「M1」を格納したARP応答を生成する。
そして、サーバ40bは、ARP要求に送信元MACアドレス、すなわちゲートウェイ20cのMACアドレスを宛先MACアドレスとするフレームにARP応答を格納し、フレームを転送装置30dに送信する。この結果、ゲートウェイ20cは、転送装置30d、および転送装置30cを介して、ARP応答が格納されたフレームを受信する。なお、以下の説明では、ARP応答が格納されたフレームを受信することを、ARP応答を受信すると記載する場合がある。
ここで、転送装置30cは、転送装置30dからARP応答が格納されたフレームを受信すると、受信したフレーム内のARP応答の宛先MACアドレスが、ゲートウェイ20cのMACアドレスと一致するか否かを判定する。そして、転送装置30cは、フレーム内のARP応答の宛先MACアドレスがゲートウェイ20cのMACアドレスと一致した場合には、フレーム内のARP要求から送信元IPアドレスを読み出す。その後、転送装置30cは、読み出した送信元IPアドレスを宛先IPアドレスに格納した迂遠通知メッセージをゲートウェイ20c宛のフレームに格納し、フレームをゲートウェイ20cに送信する。
ゲートウェイ20cは、転送装置30cから迂遠通知メッセージが格納されたフレームを受信すると、受信したフレーム内の迂遠通知メッセージに格納された送信元IPアドレスを読み出す。そして、ゲートウェイ20cは、読み出した送信元IPアドレスと対応付けて記憶する宛先IPアドレスを識別する。その後、ゲートウェイ20cは、識別した宛先IPアドレスを迂遠通知メッセージに格納し、迂遠通知メッセージを端末装置2へ送信する。
すなわち、転送装置30cは、転送装置30dからゲートウェイ20cを宛先とするARP応答が格納されたフレームを受信した場合は、ゲートウェイ20cが端末装置2からサーバ40bを宛先とするIPパケットを受信したと判定できる。ここで、端末装置2からサーバ40bを宛先とするIPパケットをゲートウェイ20cが受信した場合は、端末装置2からサーバ40bを宛先とするIPパケットが格納されたフレームがLAN11aからLAN11bに転送されるので、通信経路が迂遠経路となる。このため、転送装置30cは、転送装置30dからゲートウェイ20cを宛先とするARP応答が格納されたフレームを受信すると、ARP応答を送信する契機となったIPパケットに係る通信経路が迂遠経路であると判定する。
以下、図を用いて、実施例3に係るゲートウェイ20c、および転送装置30cの機能構成の一例を説明する。まず、図23を用いて、ゲートウェイ20cが有する機能構成の一例を説明する。
図23は、実施例3に係るゲートウェイが有する機能構成の一例を説明する図である。図23に示すように、ゲートウェイ20cは、複数のインターフェース21、28、複数の送受信部22、27、メッセージ識別部23、迂遠通信特定部24a、経路変更通知部25a、転送処理部26a、アドレス対応表記憶部29bを有する。なお、各インターフェース21、28、各送受信部22、27、メッセージ識別部23は、図8に示す各インターフェース21、28、各送受信部22、27、メッセージ識別部23と同様の機能を発揮するものとして、説明を省略する。
アドレス対応表記憶部29bは、ゲートウェイ20cが受信したフレーム内のIPパケットの送信元IPアドレスと宛先IPアドレスとを対応付けて記憶する。例えば、図24は、実施例3に係るゲートウェイが記憶するアドレス対応表の一例を説明する図である。例えば、アドレス対応表記憶部29bは、図24に示すように、送信元IPアドレス「10.0.0.1」と宛先IPアドレス「192.168.0.2」とを対応付けて記憶する。
図23に戻って、転送処理部26aは、メッセージ識別部23からIPパケットを受信すると、転送処理部26と同様に、ゲートウェイ20cのパケット転送処理を実行する。例えば、転送処理部26aは、メッセージ識別部23からIPパケットを受信すると、受信したフレーム内のIPパケットの送信元IPアドレスと宛先IPアドレスとを対応付けてアドレス対応表記憶部29bに格納する。
そして、転送処理部26aは、ゲートウェイ20cのMACアドレスを送信元MACアドレスとし、IPパケットの宛先IPアドレスを格納したARP要求を生成する。また、転送処理部26aは、ARP要求をフレームに格納し、フレームを送受信部27に出力する。また、転送処理部26aは、ARP応答が格納されたフレームを受信すると、フレーム内のARP応答の送信元MACアドレスを宛先MACアドレスとしたフレームを生成する。そして、転送処理部26aは、生成したフレームにメッセージ識別部23から受信したIPパケットを格納し、IPパケットを格納したフレームを送受信部27に出力する。
迂遠通信特定部24aは、メッセージ識別部23から迂遠通知メッセージを受信すると、受信した迂遠通知メッセージから送信元プロトコルアドレスを取得する。また、迂遠通信特定部24aは、取得した送信元プロトコルアドレスと対応付けて記憶された送信元IPアドレスをアドレス対応表記憶部29bから読み出す。
すなわち、迂遠通信特定部24aは、受信したフレーム内のARP応答の送信元プロトコルアドレスを用いて、ARP要求を発行する契機となったIPパケットの送信元IPアドレスをアドレス対応表記憶部29bから読み出す。そして、迂遠通信特定部24aは、読み出した送信元IPアドレスと、迂遠通知メッセージとを経路変更通知部25aに出力する。
経路変更通知部25aは、迂遠通信特定部24aから迂遠通知メッセージと送信元IPアドレスとを受信した場合には、受信した送信元IPアドレスを用いて、迂遠通知メッセージの送信先となる端末装置のMACアドレスを取得する。そして、経路変更通知部25aは、取得したMACアドレスを宛先MACアドレスとするフレームを生成し、生成したフレームに迂遠通知メッセージを格納する。その後、経路変更通知部25aは、迂遠通知メッセージを格納したフレームを送受信部22に出力する。
ここで、図25は、実施例3に係る迂遠通知メッセージのフォーマットの一例を説明する図である。図25に示すように、経路変更通知部25aは、IPパケットの宛先IPアドレスと迂遠フラグとを格納した迂遠通知メッセージを生成する。また、経路変更通知部25aは、迂遠通信特定部24aから端末装置2のIPアドレス「10.0.0.1」を受信すると、受信したIPアドレス「10.0.0.1」を用いて端末装置2のMACアドレスを取得する。
そして、経路変更通知部25aは、取得したMACアドレスを宛先MACアドレスとしたフレームに迂遠通知メッセージを格納し、フレームをネットワーク3に出力する。この結果、図25に示す例では、経路変更通知部25aは、IPアドレス「192.168.0.2」を宛先IPアドレスとするIPパケットの通信経路が迂遠経路であることを端末装置2に通知できる。
次に、図26を用いて、転送装置30cが有する機能構成について説明する。図26は、実施例3に係る転送装置が有する機能構成の一例を説明する図である。図26に示す例では、転送装置30cは、インターフェース情報記憶部31、MAC学習テーブル記憶部32、迂遠パケット識別情報記憶部33aを有する。また、転送装置30cは、複数のインターフェース34a〜34c、複数の送受信部35a〜35c、メッセージ識別部36、迂遠通信判定部37a、経路変更通知部38、転送処理部39を有する。
なお、インターフェース情報記憶部31、およびMAC学習テーブル記憶部32は、実施例1と同様の情報を記憶するものとして、説明を省略する。また、各インターフェース34a〜34c、各送受信部35a〜35c、メッセージ識別部36、経路変更通知部38、転送処理部39は、実施例1と同様の機能を発揮するものとして説明を省略する。
例えば、転送装置30cは、迂遠パケット識別情報記憶部33aと、迂遠通信判定部37aとを有する。迂遠パケット識別情報記憶部33aは、迂遠パケット識別情報記憶部33と同様に、転送装置30cが転送するフレーム内のパケットが迂遠パケットであるか否かを判定するためのルールを記憶する。
図27は、実施例3に係る転送装置が記憶する迂遠パケット識別情報の一例を説明する図である。図27に示す例では、迂遠パケット識別情報記憶部33aは、対象パケットとして「ARP応答」、検知ルールとして「宛先MACアドレス=M2」、通信方向として「受信」、通信内容として「LAN間通信情報=Yes」を記憶する。この結果、転送装置30cは、LAN11a以外のLANから受信したフレーム内にARP応答が格納されており、フレーム内のARP応答の宛先MACアドレスが「M2」である場合は、受信したフレーム内のARP応答が迂遠パケットであると判定する。
迂遠通信判定部37aは、メッセージ識別部36からフレームを受信すると、フレーム内のパケットの種別がARP応答であるか否かを判定する。そして、迂遠通信判定部37aは、受信したフレーム内にARP応答が格納され、かつ、フレーム内のARP応答が迂遠パケット識別情報の検知ルール、通信方向、および通信内容を満たすか否かを判定する。その後、迂遠通信判定部37aは、受信したフレーム内のARP応答が迂遠パケット識別情報を満たす場合は、受信したフレーム内のARP応答を経路変更通知部38に出力する。一方、迂遠通信判定部37aは、受信したフレーム内のARP応答が迂遠パケット識別情報を満たさない場合は、受信したARP応答を破棄する。
以下、迂遠通信判定部37aが実行する処理の一例を説明する。なお、以下の説明では、迂遠パケット識別情報記憶部33aが図27に例示した迂遠パケット識別情報を記憶する例について説明する。例えば、迂遠通信判定部37aは、迂遠パケット識別情報の検知ルールが「宛先MACアドレス=M2」であるので、フレーム内のARP応答の宛先MACアドレスが「M2」であるか否かを判定する。
また、迂遠通信判定部37aは、フレーム内のARP応答の宛先MACアドレスが「M2」である場合は、迂遠パケット識別情報の通信方向が「受信」であるので、送信元MACアドレスから、フレームを受信したインターフェースを識別する。例えば、迂遠通信判定部37aは、フレームの送信元MACアドレスと対応付けられたインターフェース識別子をMAC学習テーブル記憶部32から読み出す。
そして、迂遠通信判定部37aは、インターフェース情報記憶部31を確認し、MAC学習テーブル記憶部32から読み出したインターフェース識別子と対応付けられたLAN間通信情報が「Yes」であるか否かを判定する。つまり、迂遠通信判定部37aは、ARP応答が格納されたフレームを受信したインターフェースが、LAN11a以外のLANと接続されたインターフェースであるか否かを判定する。その後、迂遠通信判定部37aは、読み出したインターフェース識別子と対応付けられたLAN間通信情報が「Yes」である場合は、フレーム内のARP応答を経路変更通知部38に出力する。
すなわち、転送装置30cは、ARP応答が格納されたフレームをLAN11bから受信する際に、宛先MACアドレスがゲートウェイ20cのMACアドレスであるか否かを判定する。ここで、フレーム内のARP応答の宛先MACアドレスが、ゲートウェイ20cのMACアドレスである場合は、ゲートウェイ20cがLAN11bのサーバ40bを宛先とするIPパケットを端末装置2から受信したものと考えられる。
このため、転送装置30cは、ARP応答が格納されたフレームをLAN11bから受信した際に、宛先MACアドレスがゲートウェイ20cのMACアドレスである場合は、受信したフレーム内のARP応答が迂遠パケットであると判定する。そして、転送装置30cは、迂遠通知メッセージをゲートウェイ20cへ送信する。
この結果、ゲートウェイ20cは、ARP応答の契機となったIPパケットの送信元IPアドレスを用いて、迂遠通知メッセージを端末装置2へ送信する。この結果、転送装置30cは、ARP応答を用いて、通信経路が迂遠経路であると判定した場合にも、迂遠通知メッセージを端末装置2へ送信することができる。
次に、図28を用いて、転送装置30cが転送装置30dから受信したフレーム内のARP応答を用いて、通信経路が迂遠経路であるか判定する処理の流れについて説明する。図28は、実施例3に係る迂遠パケット判定処理の流れを説明するためのフローチャートである。
まず、転送装置30cは、ゲートウェイ20c、転送装置30d、またはサーバ40aからフレームを受信すると(ステップS301)、受信したフレーム内のパケットの種別がARP応答であるか否かを判定する(ステップS302)。そして、転送装置30cは、受信したフレーム内のパケットの種別がARP応答である場合は(ステップS302肯定)、受信したフレーム内のARP応答の宛先MACアドレスが検知ルールを満足するか否かを判定する(ステップS303)。
また、転送装置30cは、受信したフレーム内のARP応答の宛先MACアドレスが検知ルールを満足する場合は(ステップS303肯定)、フレームをLAN11bの転送装置30dから受信したか否かを判定する(ステップS304)。すなわち、転送装置30cは、LAN11aとLAN11bとを接続するリンクを介してARP応答が格納されたフレームを受信したか否かを判定する。そして、転送装置30cは、ARP応答が格納されたフレームをLAN11bの転送装置30bから受信した場合は(ステップS304肯定)、通信経路が迂遠経路であると判定して迂遠通知メッセージを端末装置2へ送信し(ステップS305)、処理を終了する。
一方、転送装置30cは、受信したフレーム内のパケットの種別がARP応答ではない場合は(ステップS302否定)、迂遠パケットではないと判定して(ステップS306)、処理を終了する。また、転送装置30cは、受信したフレーム内のARP応答の宛先MACアドレスが検知ルールを満足しない場合は(ステップS303否定)、迂遠パケットではないと判定して(ステップS306)、処理を終了する。また、転送装置30cは、LAN11bの転送装置30d以外の装置からARP応答が格納されたフレームを受信した場合は(ステップS304否定)、迂遠パケットではないと判定して(ステップS306)、処理を終了する。
[実施例3の効果]
このように、転送装置30cは、転送装置30dから受信したフレーム内のARP応答に基づいて、通信経路が迂遠経路であるか否かを判定することができる。例えば、転送装置30cは、転送装置30dから受信したフレーム内のARP応答の宛先MACアドレス、または、転送装置30dへ送信するARP応答の宛先MACアドレスがゲートウェイである場合は、フレーム内のARP応答が迂遠パケットであると判定する。
このため、転送装置30cは、IPパケットが迂遠経路を流れる前に、端末装置2がパケットを送信するゲートウェイを切替えさせることができるので、サブネット10内のトラフィックを軽減することができる。
また、転送装置30cは、ゲートウェイ20cを介して、迂遠経路を介するIPパケットの宛先IPアドレスが格納された迂遠通知メッセージを端末装置2に送信する。すなわち、転送装置30cは、受信したフレーム内のARP応答の宛先MACアドレスが割り当てられたゲートウェイ20cに対して、迂遠通知メッセージの送信を指示する。
すると、ゲートウェイ20cは、迂遠通知メッセージのパケットを生成し、ARP応答に係るパケット通信の元である端末装置2へ送信する。このため、転送装置30cは、端末装置2がサブネット10が有する複数のサーバ40a、40bとパケット通信を行う際に、どちらのパケット通信が迂遠経路を介しているかを通知することができる。
詳細には、ゲートウェイ20cは、IPパケットの宛先IPアドレスと送信元IPアドレスとを対応付けて記憶する。そして、ゲートウェイ20cは、迂遠通知メッセージに格納された送信元プロトコルアドレスと同一の宛先IPアドレスと対応付けて記憶された送信元IPアドレスを用いてIPパケットの送信元となる端末装置のMACアドレスを取得する。その後、ゲートウェイ20cは、取得したMACアドレスを宛先MACアドレスとするフレームに迂遠通知メッセージを格納して送信する。このため、ゲートウェイ20cは、ARP応答を用いて転送装置30cが迂遠パケットを検出する場合にも、IPパケットの送信元に対し、迂遠通知メッセージを送信することができる。
また、端末装置2は、ゲートウェイ20cから迂遠通知メッセージを受信すると、迂遠通知メッセージ内に格納されたIPアドレスが示すサーバへIPパケットを送信する際のゲートウェイを切り替える。この結果、転送装置30cは、端末装置2と同様の複数の端末装置がサブネット10にアクセスする場合にも、迂遠経路を介してパケット通信を行う端末装置に対してのみ、迂遠通知メッセージを送信することができる。
実施例4では、実施例3に係る通信システム1aのバリエーションについて説明する。例えば、ゲートウェイ20cは、図25に示す迂遠通信メッセージを送信した。しかし、実施例は、これに限定されるものではなく、実施例2に記載した転送装置30aのバリエーションと同様に、切替先のゲートウェイのIPアドレスを含む迂遠通知メッセージを送信してもよい。
例えば、転送装置30cは、インターフェース情報として、インターフェース識別子とLAN間通信情報とともに、接続先の装置を含むLANのゲートウェイに割り当てられたIPアドレスを対応付けて記憶する。そして、転送装置30cは、受信したフレーム内のARP要求が迂遠パケットであると判定すると、フレームを受信したインターフェースのインターフェース識別子と対応付けられたゲートウェイのIPアドレスを取得する。その後、転送装置30cは、取得したIPアドレスを含む迂遠通知メッセージを生成し、生成した迂遠通知メッセージを格納したフレームをゲートウェイ20cに送信してもよい。この結果、転送装置30cは、切替先のゲートウェイのIPアドレスを端末装置2に通知することができる。
また、ゲートウェイ20aは、ARPキャッシュテーブルに迂遠フラグを含めてもよい。例えば、ゲートウェイ20aは、ARP応答から取得した送信元MACアドレスを宛先MACアドレスとし、送信元プロトコルアドレスを宛先IPアドレスとして対応付けたARPキャッシュテーブルを記憶する。また、ゲートウェイ20aは、対応付けられた宛先IPアドレスが格納されたIPパケットが迂遠パケットであるか否かを示す迂遠フラグをARPキャッシュテーブルに格納する。そして、ゲートウェイ20aは、ARPキャッシュテーブルに格納された迂遠フラグを用いて、受信したフレーム内のパケットが迂遠パケットであるか否かを判定する。
以下、ARPキャッシュテーブルを用いて、受信したフレーム内のパケットが迂遠パケットであるか否かを判定するゲートウェイ20cについて説明する。まず、図29を用いて、ゲートウェイ20cの機能構成のバリエーションについて説明する。図29は、ゲートウェイが有する機能構成のバリエーションを説明する図である。図29に示すように、ゲートウェイ20cは、ARPキャッシュテーブル記憶部29aを有する。
ここで、図30は、ゲートウェイが記憶するARPキャッシュテーブルのバリエーションを説明する図である。図30に示すように、ARPキャッシュテーブル記憶部29aは、宛先IPアドレスと、MACアドレスと、迂遠フラグとを対応付けたARPキャッシュテーブルを記憶する。図30に示す例では、ARPキャッシュテーブル記憶部29aは、宛先IPアドレス「192.168.0.2」、MACアドレス「M1」、迂遠フラグ「OFF」を対応付けたARPキャッシュテーブルを記憶する。
転送処理部26aは、上述したARPキャッシュテーブル記憶部29aを用いて、IPパケットの転送処理を行う。すなわち、転送処理部26aは、メッセージ識別部23から受信したフレーム内のIPパケットの宛先IPアドレスがARPキャッシュテーブルに記憶されているか否かを判定する。
そして、転送処理部26aは、受信したフレーム内のIPパケットの宛先IPアドレスがARPキャッシュテーブル記憶部29aに記憶されていない場合は、ARP要求が格納されたフレームを発行する。そして、転送処理部26aは、ARP応答が格納されたフレームを受信すると、受信したARP応答の送信元プロトコルアドレスと送信元MACアドレスと、迂遠フラグ「OFF」とを対応付けてARPキャッシュテーブル記憶部29aに格納する。
ここで、迂遠通信特定部24aは、上述した処理に加え、迂遠通知メッセージを受信すると、迂遠通知メッセージの宛先IPアドレスと対応付けて記憶された迂遠フラグを「ON」に変更する。そして、転送処理部26aは、新たに受信したフレーム内のIPパケットの宛先IPアドレスがARPキャッシュテーブル記憶部29aに記憶されている場合は、宛先IPアドレスと対応付けられた迂遠フラグが「ON」であるか否かを判定する。
ここで、転送処理部26aは、宛先IPアドレスと対応付けられた迂遠フラグが「ON」である場合には、新たに受信したフレームの送信元に、迂遠通知メッセージを送信する。詳細には、転送処理部26aは、受信したフレームの送信元MACアドレスを宛先MACアドレスとするフレームを生成する。また、転送処理部26aは、受信したフレーム内のIPパケットの宛先IPアドレスと迂遠フラグ「ON」とを格納した迂遠通知メッセージを生成する。そして、転送処理部26aは、生成したフレームに生成した迂遠通知メッセージを格納してネットワーク3に出力する。
[実施例4の効果]
上述したように、ゲートウェイ20cは、ARP応答に格納された送信元プロトコルアドレスと、送信元MACアドレスとの組に、迂遠フラグを対応付けて記憶するARPキャッシュテーブル記憶部29aを有する。そして、ゲートウェイ20cは、転送装置30cから迂遠通知メッセージを受信すると、迂遠通知メッセージの宛先IPアドレスと対応付けられた迂遠フラグを「ON」にする。
その後、ゲートウェイ20cは、ARPキャッシュテーブル記憶部29aが、フレーム内のIPパケットの宛先IPアドレスと迂遠フラグ「ON」とを対応付けて記憶している場合は、フレームの送信元に対して迂遠通知メッセージを送信する。
このため、ゲートウェイ20cは、サブネット10の外部装置からサーバ40bを宛先とする複数のIPパケットを受信するたびに、ARP要求を発行せずとも、IPパケットが迂遠パケットであるか否かを判定することができる。また、ゲートウェイ20cは、迂遠パケットが格納されたフレームを受信した際に、迂遠通知メッセージを迅速に外部装置へ送信できる。
実施例5では、ゲートウェイを有するLANとゲートウェイを有さないLANとを転送装置が接続する通信システム1bについて説明する。
図31は、実施例5に係る通信システムを説明する図である。図31に示す例では、通信システム1bは、端末装置2、ネットワーク3、第1拠点4、第2拠点5、第3拠点6を有する。また、第1拠点4は、LAN11aを有する。また、第2拠点5は、LAN11bを有する。また、第3拠点6は、LAN11cを有する。
LAN11aは、ゲートウェイ20a、転送装置30e、サーバ40aを有するLAN11aを有する。また、LAN11bは、ゲートウェイ20b、転送装置30f、サーバ40bを有する。また、LAN11cは、ゲートウェイを有しておらず、転送装置30gとサーバ40cを有する。ここで、サーバ40cには、IPアドレス「192.168.0.3」が割り当てられている。
また、転送装置30eは、ゲートウェイ20a、サーバ40a、転送装置30f、転送装置30gと接続されている。また転送装置30fは、ゲートウェイ20b、転送装置30e、サーバ40bと接続されている。また、転送装置30gは、転送装置30e、サーバ40cと接続されている。このため、端末装置2は、ゲートウェイ20a、転送装置30e、転送装置30gを介して、サーバ40cとパケット通信を行う。
以下、通信システム1bが有する転送装置30eの機能について説明する。なお、図31に示す端末装置2、ネットワーク3、各サーバ40a、40bは、図1に示す端末装置2、ネットワーク3、各サーバ40a、40bと同様の機能を発揮するものとし、説明を省略する。また、各転送装置30f、30gは、転送装置30eと同様の機能を発揮するものとして、説明を省略する。また、サーバ40cは、サーバ40a、またはサーバ40bと同様の機能を発揮するものとして、説明を省略する。
転送装置30eは、接続先となるLANがゲートウェイを有するか否かをインターフェースごとに記憶する。そして、転送装置30eは、IPパケットが格納されたフレームを送出するインターフェースがLAN11a以外のLAN、すなわち、LAN11b、またはLAN11cの転送装置30f、30gに接続されているか否かを判定する。
また、転送装置30eは、IPパケットが格納されたフレームを送出するインターフェースが接続するLANがゲートウェイを有するLAN、すなわち、LAN11bであるか否かを判定する。そして、転送装置30eは、フレームを送出するインターフェースがLAN11bの転送装置30fに接続されている場合には、フレーム内のIPパケットの送信元IPアドレスが、サブネット10のネットワークアドレスの範囲内であるか否かを判定する。すなわち、転送装置30eは、送信するフレーム内のIPパケットがサブネット10の内部装置であるサーバ40a〜40cと、サブネット10の外部装置である端末装置2とのパケット通信に係るIPパケットであるか否かを判定する。
その後、転送装置30eは、フレーム内のIPパケットの送信元IPアドレスがサブネット10のネットワークアドレスの範囲内ではないと判定した場合は、受信したフレーム内のパケットを用いた受信したフレーム内のパケットが迂遠パケットであると判定する。そして、転送装置30eは、ゲートウェイ20aを介して、端末装置2にゲートウェイの切替を通知する。
すなわち、図31に示す例では、各LAN11a、11bがそれぞれゲートウェイを有するものの、LAN11cがゲートウェイを有していない。このため、転送装置30eが転送装置30fへ送信するフレーム内のIPパケットは、迂遠パケットの候補となるが、転送装置30gへ送信するフレーム内のIPパケットは、迂遠パケットの候補にはならない。
そこで、転送装置30eは、接続先となるLANがゲートウェイを有するか否かをインターフェースごとに記憶する。そして、転送装置30eは、IPパケットが格納されたフレームを送出するインターフェースの接続先となるLANがゲートウェイを有する場合には、送出するフレーム内のIPパケットが迂遠パケットの候補であると判定する。その後、転送装置30eは、転送装置30aと同様に、送信するフレーム内のIPパケットが検出ルールを満たすか否かを判定し、検出ルールを満たす場合には、フレーム内のパケットが迂遠パケットであると判定する。
なお、図31に示す例では、各転送装置30e、30fが迂遠パケットの判定を行うことで、端末装置2とサーバ40cとの間のパケット通信が迂遠経路を辿るのを防ぐことができる。すなわち、端末装置2がサーバ40cを宛先とするIPパケットをゲートウェイ20bへ送信すると、サブネット10は、パケットのLAN間通信を2回行う。しかし、転送装置30fが端末装置2へゲートウェイの切替を通知すると、端末装置2は、サーバ40cを宛先とするIPパケットが格納されたフレームをゲートウェイ20aに送信する。この結果、転送装置30e、30fは、迂遠経路を解消することができる。
以下、図32を用いて、転送装置30eの機能構成について説明する。図32は、実施例5に係る転送装置が有する機能構成の一例を説明する図である。図32に示すように、転送装置30eは、インターフェース情報記憶部31a、MAC学習テーブル記憶部32、迂遠パケット識別情報記憶部33を有する。また、転送装置30eは、複数のインターフェース34a〜34d、複数の送受信部35a〜35d、メッセージ識別部36、迂遠通信判定部37b、経路変更通知部38、転送処理部39を有する。ここで、インターフェース34dは、転送装置30gと接続されている。
なお、MAC学習テーブル記憶部32は、実施例1と同様に、図13に示す情報を記憶し、迂遠パケット識別情報記憶部33は、実施例1と同様に、図14に示す情報を記憶するものとして、説明を省略する。また、各インターフェース34a〜34d、各送受信部35a〜35d、メッセージ識別部36、経路変更通知部38、転送処理部39は、実施例1と同様の機能を発揮するものとして説明を省略する。
インターフェース情報記憶部31aは、各インターフェース34〜34dの接続先がLAN11a以外のLANに接続されているか否か、および、接続先LANにゲートウェイが存在するか否かを示すインターフェース情報を記憶する。
図33は、実施例5に係るインターフェース情報の一例を説明する図である。図33に示すように、インターフェース情報記憶部31aは、インターフェース識別子とLAN間通信情報と、接続先LANのゲートウェイ情報とを対応付けて記憶する。例えば、インターフェース情報記憶部31aは、インターフェース34aを示すインターフェース識別子「IF#1」、およびインターフェース34cを示すインターフェース識別子「IF#3」のそれぞれに、LAN間通信情報「No」を対応付けて記憶する。なお、インターフェース情報記憶部31aは、LAN間通信情報が「No」である場合は、接続先LANのゲートウェイ情報を記憶しない。
また、インターフェース情報記憶部31aは、インターフェース34bを示すインターフェース識別子「IF#2」とLAN間通信情報「Yes」と接続先LANのゲートウェイ情報「あり」を対応付けて記憶する。また、インターフェース情報記憶部31aは、インターフェース34dを示すインターフェース識別子「IF#4」とLAN間通信情報「Yes」と接続先LANのゲートウェイ情報「なし」を対応付けて記憶する。
迂遠通信判定部37bは、メッセージ識別部36からフレームを受信すると、迂遠パケット識別情報記憶部33が記憶する迂遠パケット識別情報を取得する。そして、迂遠通信判定部37bは、受信したフレーム内のパケットが迂遠パケット識別情報の検知ルール、通信方向、および通信内容を満たすパケットであるか否かを判定する。
ここで、迂遠通信判定部37bは、受信したフレーム内のパケットが迂遠パケット識別情報の検知ルール、通信方向、および通信内容を満たす場合は、インターフェース情報を確認し、フレームの送信先LANがゲートウェイを有するか否か判定する。そして、迂遠通信判定部37bは、フレームの送信先LANがゲートウェイを有する場合は、受信したフレーム内のパケットを経路変更通知部38に出力する。一方、迂遠通信判定部37bは、フレームの送信先LANがゲートウェイを有さない場合は、受信したフレームを破棄する。
以下、迂遠通信判定部37bが実行する処理の一例を説明する。なお、以下の説明では、インターフェース情報記憶部31aが図33に示すインターフェース情報を記憶し、迂遠パケット識別情報記憶部33が図14に例示した迂遠パケット識別情報を記憶する例について説明する。
例えば、迂遠通信判定部37bは、メッセージ識別部36からフレームを受信すると、受信したフレーム内のIPパケットの送信元IPアドレスが「192.168.0.0/24」以外の値であるか否かを判定する。また、迂遠通信判定部37bは、フレーム内のIPパケットの送信元IPアドレスが「192.168.0.0/24」以外の値である場合は、迂遠パケット識別情報の通信方向が「送信」であるため、受信したフレームの宛先MACアドレスを識別する。次に、迂遠通信判定部37bは、識別した宛先MACアドレスと対応付けられた出力インターフェースのインターフェース識別子をMAC学習テーブル記憶部32から読み出す。
そして、迂遠通信判定部37bは、インターフェース情報記憶部31aが記憶するインターフェース情報を確認し、読み出したインターフェース識別子と対応付けられたLAN間通信情報が「Yes」であるか否かを判定する。その後、迂遠通信判定部37bは、読み出したインターフェース識別子と対応付けられたLAN間通信情報が「Yes」である場合は、読み出したインターフェース識別子と対応付けられた接続先LANのゲートウェイ情報が「あり」であるか否かを判定する。
そして、迂遠通信判定部37bは、読み出したインターフェース識別子と対応付けられた接続先LANのゲートウェイ情報が「あり」である場合は、フレーム内のIPパケットが迂遠パケットであると判定する。一方、迂遠通信判定部37bは、フレーム内のIPパケットの送信元IPアドレスが「192.168.0.0/24」に含まれる場合や、フレームを送出するインターフェースのLAN間通信情報が「No」である場合は、フレームを破棄する。また、迂遠通信判定部37bは、フレームの送信先LANのゲートウェイ情報が「なし」である場合は、フレームを破棄する。
例えば、迂遠通信判定部37bは、受信したフレームの宛先MACアドレスが「M4」である場合は、出力インターフェース「IF#2」をMAC学習テーブル記憶部32から読み出す。ここで、迂遠通信判定部37bは、出力インターフェース「IF#2」のLAN間通信情報が「Yes」であり、ゲートウェイ情報が「あり」であるので、フレーム内のIPパケットが迂遠パケットであると判定する。
一方、迂遠通信判定部37bは、受信したフレームの宛先MACアドレスが「M5」である場合は、出力インターフェース「IF#4」のLAN間通信情報が「Yes」であると判定する。しかし、迂遠通信判定部37bは、出力インターフェース「IF#4」のゲートウェイ情報が「なし」であるので、フレーム内のIPパケットが迂遠パケットではないと判定する。
すなわち、転送装置30eは、送信するフレーム内のIPパケットの送信元IPアドレスに基づいて、フレーム内のIPパケットがサブネット10の内部と端末装置2とのパケット通信に係るIPパケットであるか否かを判定する。また、転送装置30eは、送信するフレーム内のIPパケットがサブネット10の内部と端末装置2とのパケット通信に係るIPパケットである場合は、フレームの送信先がLAN11a以外のLANであるか否かを判定する。
また、転送装置30eは、フレームの送信先がLAN11a以外のLANである場合は、フレームの送信先となるLANがゲートウェイを有するか否かを判定する。そして、転送装置30eは、フレームの送信先となるLANがゲートウェイを有する場合は、送信するフレーム内のIPパケットが迂遠パケットであると判定する。
このため、転送装置30eは、サブネット10が有する各サーバ40a〜40cの設置位置を管理せずとも、受信したフレーム内のパケットが迂遠パケットであるか否かを判定することができる。また、転送装置30eは、IPパケットの送信先となるLANがゲートウェイを有するか否かを判定する。この結果、転送装置30eは、ゲートウェイを有するLANとゲートウェイを有さないLANとがサブネット10に混在する場合も、迂遠経路を解消することができる。
次に、図34を用いて、転送装置30eが転送装置30fに送信するフレーム内のパケットが迂遠パケットであるか否かを判定する処理の流れについて説明する。図34は、実施例5に係る迂遠パケットの判定処理の流れを説明するためのフローチャートである。
まず、転送装置30eは、ゲートウェイ20a、転送装置30f、またはサーバ40aからフレームを受信すると(ステップS401)、受信したフレーム内のパケットの種別がIPパケットであるか否かを判定する(ステップS402)。そして、転送装置30eは、受信したフレーム内のパケットの種別がIPパケットである場合は(ステップS402肯定)、受信したフレーム内のIPパケットの送信元IPアドレスが検知ルールを満足するか否かを判定する(ステップS403)。
また、転送装置30eは、受信したフレーム内のIPパケットの送信元IPアドレスが検知ルールを満足する場合は(ステップS403肯定)、受信したフレームをLAN11b、またはLAN11cに送信するか否か判定する(ステップS404)。そして、転送装置30eは、受信したフレームをLAN11bまたはLAN11cに送信する場合は(ステップS404肯定)、フレームの送信先となるLANにゲートウェイがあるか否かを判定する(ステップS405)。その後、転送装置30eは、フレームの送信先となるLANにゲートウェイがある場合は(ステップS405肯定)、受信したフレーム内のパケットが迂遠パケットであると判定して迂遠通知メッセージを端末装置2へ送信し(ステップS406)、処理を終了する。
一方、転送装置30eは、受信したフレーム内のパケットの種別がIPパケットではない場合は(ステップS402否定)、受信したフレーム内のパケットが迂遠パケットではないと判定して(ステップS407)、処理を終了する。また、転送装置30eは、受信したフレーム内のIPパケットの送信元IPアドレスが検知ルールを満足しない場合(ステップS403否定)、受信したフレーム内のIPパケットが迂遠パケットではないと判定し(ステップS407)、処理を終了する。また、転送装置30eは、受信したフレームをLAN11bまたはLAN11cに送信しない場合も(ステップS404否定)、受信したフレーム内のパケットが迂遠パケットではないと判定し(ステップS407)、処理を終了する。また、転送装置30eは、受信したフレーム内の送信先LANにゲートウェイがない場合は(ステップS405否定)、受信したフレーム内のIPパケットが迂遠パケットではないと判定して(ステップS407)、処理を終了する。
[実施例5の効果]
このように、転送装置30eは、複数の転送装置30f、30gとパケットが格納されたフレームの転送を行う。また、転送装置30eは、各インターフェースがLAN11a以外のLANに接続されているか否かを示す情報と、接続先のLANがゲートウェイを有するか否かを示す情報とを記憶する。そして、転送装置30eは、フレームをLAN11a以外のLANに送信する場合は、フレームの送信先となるLANがゲートウェイを有するか否かを判別する。その後、転送装置30eは、フレームの送信先となるLANがゲートウェイを有さないと判定した場合は、フレーム内のパケットが迂遠パケットではないと判定する。
つまり、転送装置30eは、ネットワーク3と直接接続されていないLAN11c宛のフレーム内のパケットについては、LANを超えて転送されたとしても、迂遠パケットではないと判定する。この結果、転送装置30eは、サブネット10にゲートウェイを有するLANとゲートウェイを有さないLANとが混在する場合にも、迂遠経路を解消することができる。
実施例6では、実施例5に係る通信システム1bのバリエーションについて説明する。例えば、転送装置30eは、転送装置30fに送信するフレーム内のIPパケットを用いて、迂遠経路を判定した。しかし、実施例はこれに限定されるものではなく、例えば、転送装置30fが、転送装置30eから受信するフレーム内のIPパケットを用いて、迂遠経路を判定してもよい。
以下、転送装置30fが転送装置30eから受信するフレーム内のIPパケットを用いて、迂遠経路を判定する処理について説明する。例えば、図35は、実施例6に係るインターフェース情報のバリエーションを説明する図である。転送装置30fは、インターフェース情報として、インターフェース識別子、LAN間通信情報および接続先LANのゲートウェイIPアドレスを対応付けて記憶する。
ここで、インターフェース識別子「IF#4」とは、ゲートウェイ20bと接続されたインターフェースを示す識別子であり、インターフェース識別子「IF#5」とは、転送装置30eと接続されたインターフェースを示す識別子である。また、インターフェース識別子「IF#6」とは、サーバ40bと接続されたインターフェースを示す識別子である。このため、転送装置30fは、インターフェース識別子「IF#4」および「IF#6」とLAN間通信情報「NO」とを対応付けて記憶する。また、転送装置30fは、インターフェース識別子「IF#5」とLAN間通信情報「YES」と接続先LANのゲートウェイIPアドレス「10.0.1.1」とを対応付けて記憶する。
また、図36は、実施例6に係る迂遠パケット識別情報のバリエーションを説明する図である。例えば、転送装置30fは、図36に例示する迂遠パケット識別情報を記憶する。詳細には、転送装置30fは、対象パケットが「IPパケット」、検知ルールが「送信元IPアドレス≠192.168.0.0/24」、通信方向「受信」、通信内容「LAN間通信情報=Yes」を対応付けた迂遠パケット識別情報を記憶する。
続いて、受信したフレーム内のパケットが迂遠パケットであるか否かを判別する処理について説明する。例えば、転送装置30fは、ゲートウェイ20b、サーバ40f、転送装置30eのいずれかからフレームを受信すると、迂遠パケット識別情報の対象パケットが「IPパケット」であるので、受信したフレーム内のパケットがIPパケットであるか否かを判別する。また、転送装置30fは、受信したフレーム内のパケットがIPパケットである場合は、フレーム内のIPパケットの送信元IPアドレスが、迂遠パケット識別情報の検知ルールを満たすか否かを判定する。
詳細には、転送装置30fは、迂遠パケット識別情報の検知ルールが「送信元IPアドレス≠192.168.0.0/24」であるので、フレーム内のIPパケットの送信元IPアドレスが「192.168.0.0/24」以外の値であるか判定する。そして、転送装置30fは、フレーム内のIPパケットの送信元IPアドレスが「192.168.0.0/24」以外の値である場合は、フレームを受信したインターフェースのLAN間通信情報が「Yes」であるか否かを判定する。
この結果、転送装置30fは、フレームを受信したインターフェースのLAN間通信情報が「Yes」である場合は、受信したフレーム内のIPパケットが迂遠パケットであると判定する。例えば、転送装置30fは、フレームを受信したインターフェースのインターフェース識別子が「IF#5」である場合は、インターフェース情報のLAN間通信情報が「Yes」であるので、受信したフレーム内のIPパケットが迂遠パケットであると判定する。
そして、転送装置30fは、受信したフレーム内のIPパケットが迂遠パケットである場合には、フレームを受信したインターフェースのインターフェース識別子と対応付けられたゲートウェイのIPアドレスを取得する。例えば、転送装置30fは、フレームを受信したインターフェースのインターフェース識別子が「IF#5」である場合は、ゲートウェイ20aのIPアドレス「10.0.1.1」を取得する。そして、転送装置30fは、取得したIPアドレスを含む迂遠通知メッセージを送信する。
なお、上述したように、転送装置30fが受信したフレーム内のIPパケットの送信元IPアドレスを用いて迂遠パケットの検出を行う場合は、転送装置30gが迂遠パケットの検出を行わないように設定する。一方、転送装置30eについては、転送装置30fと同様に、受信したフレーム内のIPパケットの送信元IPアドレスを用いて、迂遠パケットの検出を行ってよい。
また、転送装置30fは、転送装置30cと同様に、フレーム内のARP応答を用いて、迂遠パケットを検出してもよい。例えば、図37は、実施例6に係る転送装置が有する機能構成のバリエーションを説明する図である。図37に示すように、転送装置30fは、インターフェース情報記憶部31、MAC学習テーブル記憶部32、迂遠パケット識別情報記憶部33bを有する。
また、転送装置30fは、複数のインターフェース34a〜34c、複数の送受信部35a〜35c、メッセージ識別部36、迂遠通信判定部37b、MACアドレスリスト記憶部37c、経路変更通知部38、転送処理部39を有する。なお、インターフェース情報記憶部31、およびMAC学習テーブル記憶部32は、実施例1と同様の情報を記憶するものとして、説明を省略する。また、各インターフェース34a〜34c、各送受信部35a〜35c、メッセージ識別部36、経路変更通知部38、転送処理部39は、実施例1と同様の機能を発揮するものとして説明を省略する。
MACアドレスリスト記憶部37cは、サブネット10が有する全てのゲートウェイのMACアドレスを記憶する。例えば、図38は、ゲートウェイのMACアドレスリストの一例を説明する図である。図38に示すように、MACアドレスリスト記憶部37cは、ゲートウェイ20aのMACアドレス「M1」と、ゲートウェイ20bのMACアドレス「M4」とが格納されたMACアドレスリストを記憶する。
図37に戻って、迂遠パケット識別情報記憶部33bは、転送装置30fが送受信するパケットが、迂遠パケットであるか否かを判定するためのルールである迂遠パケット識別情報を記憶する。例えば、図39は、ARP応答を用いて迂遠パケットを判定する際の迂遠パケット識別情報のバリエーションを説明する図である。
図39に示す例では、迂遠パケット識別情報記憶部33bは、対象パケットとして「ARP応答」、検知ルールとして「宛先MACアドレス=MACアドレスリスト」、通信方向として「送信」、通信内容として「LAN間通信情報=Yes」を記憶する。このため、転送装置30fは、LAN10b以外のLANに送信するフレームに、宛先MACアドレスが、MACアドレスリストのいずれかに一致するARP応答が格納されている場合は、フレーム内のARP応答が迂遠パケットであると判定する。
以下、迂遠通信判定部37bが実行する処理の一例を説明する。例えば、迂遠通信判定部37bは、迂遠パケット識別情報の対象パケットが「ARP応答」であるので、受信したフレーム内のパケットがARP応答であるか否かを判定する。ここで、迂遠パケット識別情報の検知ルールが「宛先MACアドレス=MACアドレスリスト」である。このため、迂遠通信判定部37bは、受信したフレーム内のパケットがARP応答である場合は、フレーム内のARP応答の宛先MACアドレスがMACアドレスリストのいずれかと一致するか否かを判定する。
また、迂遠通信判定部37bは、迂遠パケット識別情報の通信方向が「送信」であるので、宛先MACアドレスから、フレームを送信するインターフェースを識別する。そして、迂遠通信判定部37bは、インターフェース情報を確認し、識別したインターフェースのインターフェース識別子と対応付けられたLAN間通信情報が「Yes」であるか否かを判定する。
そして、迂遠通信判定部37bは、識別したインターフェースのインターフェース識別子と対応付けられたLAN間通信情報が「Yes」である場合は、フレーム内のARP応答が迂遠パケットであると判定する。そして、迂遠通信判定部37bは、フレーム内のARP応答の宛先MACアドレスが示すゲートウェイに迂遠通知メッセージを送信する。
[実施例6の効果]
上述したように、転送装置30fは、各インターフェースがLAN11a以外のLANに接続されているか否かを示す情報と、サブネット10が有する各ゲートウェイ20a、20bのMACアドレスを記憶する。そして、転送装置30fは、LAN11aに送信するフレーム内のARP応答の宛先MACアドレスが、ゲートウェイ20a、またはゲートウェイ20bのいずれかのMACアドレスと一致した場合は、パケット通信の通信経路が迂遠経路であると判定する。
このため、転送装置30fは、サブネット10に迂遠経路を介するIPパケットが流れる前に、ゲートウェイの切替を通知することができる。また、通信システム1bは、ゲートウェイを有するLANの転送装置、例えば転送装置30eが転送装置30fと同様の機能を発揮するよう設定し、ゲートウェイを有さないLANの転送装置が迂遠パケットの判定を行わないよう設定する。この結果、通信システム1bは、サブネット10にゲートウェイを有するLANとゲートウェイを有さないLANとが混在する場合にも、迂遠経路を介するパケット通信を防ぐことができる。
これまで本発明の実施例について説明したが実施例は、上述した実施例以外にも様々な異なる形態にて実施されてよいものである。そこで、以下では実施例7として本発明に含まれる他の実施例を説明する。
(1)通信システムについて
上述した通信システム1、1aでは、第1拠点4と第2拠点5とを転送装置30a〜30dが接続していた。しかし、実施例は、これに限定されるものではなく、例えば、通信システム1、1aは、3つ以上の拠点を接続してもよい。ここで、通信システム1、1aは、3つ以上の拠点を段階的に接続してもよいし、カスケード状に接続してもよい。また、第1拠点4、および第2拠点5は、2つ以上のLANを有し、各LANをそれぞれ転送装置で接続してもよい。すなわち、通信システム1、1a、1bは、任意の数のLANを接続したサブネット10を有してよい。
また、端末装置2は、各種サービスの提供を受ける情報処理装置に限定されるものではなく、例えば、ネットワーク3やサブネット10とは異なるネットワークに設置されたアクセスゲートウェイ等であってもよい。また、上述した各通信システム1、1a、1bに示した各LAN11a〜11cの接続形態は、実施例に限定されるものではなく、例えば、リング状に接続してもよく、または、それぞれ相互に接続した接続形態であってもよい。
(2)各転送装置の処理について
例えば、転送装置30a、および転送装置30bは、同じ迂遠パケット識別情報を用いて、同時に迂遠パケットを検出する処理を行うことができる。また、転送装置30a、および転送装置30bは、それぞれ異なる迂遠パケット識別情報を用いることもできる。また、迂遠パケット識別情報の設定は、上述した例に限定されるものではない。
例えば、各転送装置30a〜30gは、サブネット10に含まれるLANの接続形態、ゲートウェイの有無、迂遠パケットの検出に用いるパケットの種別等をパラメータとする任意の迂遠パケット識別情報を用いることができる。例えば、各転送装置30a〜30gは、転送するフレームに格納されたパケットの宛先IPアドレス、宛先MACアドレス、送信元IPアドレスまたは宛先IPアドレスのいずれかに基づいて、迂遠パケットの判定を行えばよい。
また、上述した転送装置30a〜30gが記憶する迂遠パケット識別情報は、上述した説明で述べた内容に限られるものではない。すなわち、各転送装置30a〜30gは、ゲートウェイを有するLAN同士が送受信するフレーム内のパケットがサブネット10の内部とサブネット10の外部とのパケット通信に係るパケットである場合は、パケット通信が迂遠経路を介すると判定してもよい。
(3)機能構成について
上述した処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的におこなうこともできる。あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散や統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
(4)プログラム
上記の実施例で説明した各種の処理は、予め用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図40を用いて、上記の転送装置30aと同様の機能を有する判定プログラムを実行するコンピュータの一例について説明する。
図40は、判定プログラムを実行するコンピュータの一例について説明するための図である。図40に示すように、コンピュータ100は、HDD(Hard Disk Drive)150と、ROM(Read Only Memory)160と、RAM(Random Access Memory)170と、CPU(Central Processing Unit)180、I/O(Input/Output)190を有する。これら150〜190の各部はバス140を介して接続される。ここで、コンピュータ100は、例えばL3スイッチ等の転送装置が有するマイクロプロセッサ等である。
RAM170には、転送装置30aの機能をCPU180に発揮させる判定プログラム170a、インターフェース情報170b、迂遠パケット識別情報170c、およびMAC学習テーブル170dが予め記憶される。この判定プログラム170aについては、実施例1で示した各構成要素と同様、適宜統合または分離してもよい。
そして、CPU180が、判定プログラム170aを読み出して展開して実行することにより、判定プログラム170aは、判定プロセス180aとして機能する。この判定プロセス180aは、RAM170から読み出したインターフェース情報170b、迂遠パケット識別情報170c、MAC学習テーブル170dに基づいて各種処理を実行する。
なお、判定プロセス180aを実行したCPU180は、メッセージ識別部36、迂遠通信判定部37、経路変更通知部38、転送処理部39と同様の処理を実行する。また、CPU180上で仮想的に実現される各処理は、常に全ての処理部がCPU180上で動作する必要はなく、処理に必要な処理のみが仮想的に実現されればよい。
なお、上記の判定プログラム170aについては、必ずしも最初からRAM170に記憶させておく必要はない。例えば、コンピュータ100に挿入されるフレキシブルディスク、いわゆるFD(Flexible Disk)、CD(Compact Disk)−ROM、DVD(Digital Video Disk)、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に各プログラムを記憶させる。
そして、コンピュータ100がこれらの可搬用の物理媒体から各プログラムを取得して実行するようにしてもよい。また、公衆回線、インターネット、LAN、WAN(Wide Area Network)などを介して他のコンピュータまたはサーバ装置などに記憶させた各プログラムを、コンピュータ100が取得して実行するようにしてもよい。
なお、図40に示すコンピュータ100は、判定プログラム170a以外にも、例えば、各転送装置30a〜30gと同様の機能を有する判定プログラムを実行することができる。
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)ゲートウェイを有する単位ネットワークに設置された転送装置であって、
前記単位ネットワークを含むネットワーク内の他の単位ネットワークに設置された転送装置との間でフレームを送受信する送受信部と、
前記送受信部が送受信するフレーム内のパケットの宛先アドレス、または送信元アドレスに基づいて、当該パケットが前記ネットワーク内に設置された内部装置と、前記ネットワーク外に設置された外部装置との通信に係るパケットであるか否かを判定する判定部と、
前記判定部が、前記パケットが前記内部装置と前記外部装置との通信に係るパケットであると判定した場合は、前記外部装置に対し、ゲートウェイの切替指示を通知する通知部と
を有することを特徴とする転送装置。
(付記2)前記判定部は、前記送受信部が送信するフレーム内のIP(Internet Protocol)パケットの送信元IPアドレス、または前記送受信部が受信したフレーム内のIPパケットの宛先IPアドレス、または前記送受信部が受信したフレーム内のIPパケットの送信元IPアドレスが前記ネットワークに割り当てられたネットワークアドレス以外のアドレスである場合は、当該IPパケットが前記内部装置と前記外部装置との通信に係るIPパケットであると判定することを特徴とする付記1に記載の転送装置。
(付記3)前記通知部は、前記IPパケットが前記内部装置と前記外部装置との通信に係るIPパケットであると前記判定部が判定した場合は、当該IPパケットの送信元IPアドレス、または当該IPパケットの宛先IPアドレスが示す前記外部装置に対し、前記ゲートウェイの切替指示を通知することを特徴とする付記2に記載の転送装置。
(付記4)前記通知部は、前記外部装置に対し、前記IPパケットの宛先IPアドレス、または前記IPパケットの送信元IPアドレスが示す前記内部装置へIPパケットを送信する際のゲートウェイを切替えるよう指示する切替指示を通知することを特徴とする付記2または3に記載の転送装置。
(付記5)前記判定部は、前記送受信部が受信したフレーム内のARP(Address Resolution Protocol)応答の宛先MACアドレスが前記単位ネットワークに設置されたゲートウェイのMAC(Media Access Control address)アドレスである場合は、当該ARP応答が前記内部装置と前記外部装置との通信に係るパケットであると判定することを特徴とする付記1に記載の転送装置。
(付記6)前記ネットワークに設置されたゲートウェイのMACアドレスを記憶するMACアドレス記憶部を有し、
前記判定部は、前記送受信部が送信するフレーム内のARP応答の宛先MACアドレスが、前記MACアドレス記憶部が記憶するMACアドレスのいずれかと一致する場合は、当該ARP応答が前記内部装置と前記外部装置との通信に係るパケットであると判定することを特徴とする付記1に記載の転送装置。
(付記7)前記通知部は、ARP応答が前記内部装置と前記外部装置との通信に係るパケットであると前記判定部が判定した場合は、当該ARP応答の宛先MACアドレスが割り当てられたゲートウェイに対し、前記切替指示を前記外部装置へ送信するよう指示することを特徴とする付記5または6に記載の転送装置。
(付記8)前記通知部は、前記外部装置に対し、前記ARP応答の送信元を示すIPアドレスが示す前記内部装置へIPパケットを送信する際のゲートウェイを切替えるよう指示する切替指示を通知することを特徴とする付記5〜7のいずれか1つに記載の転送装置。
(付記9)1つまたは複数の前記送受信部と、
前記他の単位ネットワークにゲートウェイが設置されているか否かを示すゲートウェイ情報と、当該他の単位ネットワークに設置された転送装置とフレームを送受信する前記送受信部の識別子とを対応付けて記憶するゲートウェイ情報記憶部とを有し、
前記判定部は、前記フレーム内のパケットが前記内部装置と前記外部装置との通信に係るパケットであるか否か、および、前記ゲートウェイ情報記憶部が当該パケットを送受信した送受信部の識別子と前記ゲートウェイが設置されている旨を示すゲートウェイ情報とを対応付けて記憶しているか否かを判定し、
前記通知部は、前記パケットが前記内部装置と前記外部装置との通信に係るパケットであり、かつ、前記ゲートウェイ情報記憶部が当該パケットを送受信した送受信部の識別子と前記ゲートウェイが設置されている旨を示すゲートウェイ情報とを対応付けて記憶していると前記判定部が判定した場合は、前記外部装置に対し、ゲートウェイの切替指示を通知することを特徴とする付記1〜8のいずれか1つに記載の転送装置。
(付記10)1つまたは複数の前記送受信部と
前記他の単位ネットワークに設置されたゲートウェイのIPアドレスと、当該他のネットワークに設置された転送装置とフレームを送受信する前記送受信部の識別子とを対応付けて記憶するアドレス記憶部を有し、
前記判定部は、前記送受信部が送受信するフレーム内のパケットの宛先アドレス、または送信元アドレスに基づいて、当該パケットが前記内部装置と前記外部装置との通信であり、かつ前記単位ネットワークに設置されたゲートウェイを経由する通信に係るパケットであるか否かを判定し、
前記通知部は、前記パケットが前記内部装置と前記外部装置との通信であり、かつ前記単位ネットワークに設置されたゲートウェイを経由する通信に係るパケットであると前記判定部が判定した場合は、前記アドレス記憶部が当該パケットを送受信した送受信部の識別子と対応付けて記憶するゲートウェイのIPアドレスを取得し、取得した当該IPアドレスとゲートウェイの切替指示とを通知することを特徴とする付記1〜9のいずれか1つに記載の転送装置。
(付記11)前記判定部は、前記送受信部が送受信するフレーム内のパケットの宛先アドレス、または送信元アドレスに基づいて、当該パケットが前記内部装置と前記外部装置との通信であり、かつ前記単位ネットワークに設置されたゲートウェイを経由する通信に係るパケットであるか否かを判定し、
前記通知部は、前記パケットが前記内部装置と前記外部装置との通信であり、かつ前記単位ネットワークに設置されたゲートウェイを経由する通信に係るパケットであると前記判定部が判定し、かつ、当該パケットの送受信先となる前記他の単位ネットワークに設置されたゲートウェイが故障していない場合は、前記外部装置に対し、ゲートウェイの切替指示を通知することを特徴とする付記1〜10のいずれか1つに記載の転送装置。
(付記12)複数の単位ネットワークを含むネットワーク内に設置された内部装置と前記ネットワーク外に設置された外部装置との通信に係るフレームを中継するゲートウェイと、
前記ゲートウェイが設置された前記単位ネットワークに設置された転送装置
を有する通信システムにおいて、
前記転送装置は、
前記ネットワーク内の他の単位ネットワークに設置された転送装置との間でフレームを送受信する送受信部と、
前記送受信部が送受信するフレーム内のパケットの宛先アドレス、または送信元アドレスに基づいて、当該パケットが前記内部装置と、前記外部装置との通信に係るパケットであるか否かを判定する判定部と、
前記判定部が、前記パケットが前記内部装置と前記外部装置との通信に係るパケットであると判定した場合は、前記ゲートウェイに対し、当該パケットの転送経路が迂遠である旨を通知する通知部と
を有し、
前記ゲートウェイは、
前記通知部から前記パケットの転送経路が迂遠である旨の通知を受信した場合には、当該パケットの送信元である転送装置に対し、ゲートウェイの切替を指示する切替指示部を有する
ことを特徴とする通信システム。
(付記13)前記ゲートウェイは
前記外部装置から受信したIP(Internet Protocol)パケットの宛先IPアドレスと送信元IPアドレスとを対応付けて記憶する記憶部と、
前記外部装置から受信したIPパケットの宛先IPアドレスをターゲットアドレスとするARP(Address Resolution Protocol)要求を送信する要求送信部)と
を有し、
前記判定部は、前記送受信部が受信したフレーム内のARP応答の宛先MAC(Media Access Control address)アドレスが前記単位ネットワークに設置されたゲートウェイのMACアドレスである場合は、当該ARP応答が前記内部装置と前記外部装置との通信に係るパケットであると判定し、
前記通知部は、ARP応答が前記内部装置と前記外部装置との通信に係るパケットであると前記判定部が判定した場合は、前記ゲートウェイに対し、当該ARP応答に格納された送信元プロトコルアドレスと、当該パケットの転送経路が迂遠である旨とを通知し、
前記切替指示部は、前記送信元プロトコルアドレスと、前記通知部から前記パケットの転送経路が迂遠である旨の通知を受信した場合には、当該送信元プロトコルアドレスと一致する前記宛先アドレスに対応付けられた送信元IPアドレスが示す前記外部装置に対し、ゲートウェイの切替を指示することを特徴とする付記12に記載の通信システム。
(付記14)前記ゲートウェイは、
前記ARP応答の送信元である前記内部装置のIPアドレスと、当該内部装置のMACアドレスと、当該ゲートウェイから当該内部装置へのパケットの転送経路が迂遠であるか否かを示す迂遠情報とを対応付けて記憶する迂遠情報記憶部と、
前記通知部から前記パケットの転送経路が迂遠である旨の通知を受信した場合は、前記迂遠情報記憶部が当該パケットの宛先IPアドレスと対応付けて記憶する迂遠情報を、転送経路が迂遠である迂遠情報に更新する更新部と、
前記外部装置からIPパケットを受信した場合には、前記迂遠情報記憶部が当該IPパケットの宛先IPアドレスに転送経路が迂遠である迂遠情報を対応付けて記憶しているか否かを判定する判別部と、
を有し
前記切替指示部は、前記迂遠情報記憶部が前記IPパケットの宛先IPアドレスに転送経路が迂遠である迂遠情報を対応付けて記憶していると前記判別部が判別した場合は、当該IPパケットの送信元である外部装置に対し、ゲートウェイの切替を指示することを特徴とする付記13に記載の通信システム。
(付記15)ゲートウェイを有する単位ネットワークに設置された転送装置が実行する迂遠経路検知方法において、
前記単位ネットワークを含むネットワーク内の他の単位ネットワークに設置された転送装置との間でフレームを送受信し、
前記フレーム内のパケットの宛先アドレス、または送信元アドレスに基づいて、当該パケットが前記ネットワーク内に設置された内部装置と、前記ネットワーク外に設置された外部装置との通信に係るパケットであるか否かを判定し、
前記パケットが前記内部装置と前記外部装置との通信に係るパケットであると判定した場合は、前記外部装置に対し、ゲートウェイの切替指示を通知する
処理を実行することを特徴とする迂遠経路検知方法。
(付記16)送信するフレーム内のIP(Internet Protocol)パケットの送信元IPアドレス、または受信したフレーム内のIPパケットの宛先IPアドレス、または受信したフレーム内のIPパケットの送信元IPアドレスが前記ネットワークに割り当てられたネットワークアドレス以外のアドレスである場合は、当該IPパケットが前記内部装置と前記外部装置との通信に係るIPパケットであると判定することを特徴とする付記15に記載の迂遠経路検知方法。
(付記17)前記IPパケットが前記内部装置と前記外部装置との通信に係るIPパケットであると判定した場合は、当該IPパケットの送信元IPアドレス、または当該IPパケットの宛先IPアドレスが示す前記外部装置に対し、前記ゲートウェイの切替指示を通知することを特徴とする付記16に記載の迂遠経路検知方法。
(付記18)前記外部装置に対し、前記IPパケットの宛先IPアドレス、または前記IPパケットの送信元IPアドレスが示す前記内部装置へIPパケットを送信する際のゲートウェイを切替えるよう指示する切替指示を通知することを特徴とする付記16または17に記載の迂遠経路検知方法。
(付記19)受信したフレーム内のARP(Address Resolution Protocol)応答の宛先MAC(Media Access Control address)アドレスが前記単位ネットワークに設置されたゲートウェイのMACアドレスである場合は、当該ARP応答が前記内部装置と前記外部装置との通信に係るパケットであると判定することを特徴とする付記15に記載の迂遠経路検知方法。
(付記20)送信するARP応答の宛先MACアドレスが、前記ネットワークに設置されたゲートウェイのMACアドレスを記憶するMACアドレス記憶部が記憶している場合は、当該ARP応答が前記内部装置と前記外部装置との通信に係るパケットであると判定することを特徴とする付記15に記載の迂遠経路検知方法。
(付記21)前記ARP応答が前記内部装置と前記外部装置との通信に係るパケットであると判定した場合は、当該ARP応答の宛先MACアドレスが割り当てられたゲートウェイに対し、前記切替指示を前記外部装置へ送信するよう指示することを特徴とする付記19または20に記載の迂遠経路検知方法。
(付記22)前記外部装置に対し、前記ARP応答の送信元を示すIPアドレスが示す前記内部装置へIPパケットを送信する際のゲートウェイを切替えるよう指示する切替指示を通知することを特徴とする付記19〜21のいずれか1つに記載の迂遠経路検知方法。
(付記23)前記内部装置と前記外部装置との通信に係るパケットであり、かつ、前記他の単位ネットワークにゲートウェイが設置されているか否かを示すゲートウェイ情報と、当該他の単位ネットワークに設置された転送装置とフレームを送受信するインターフェースの識別子とを対応付けて記憶するゲートウェイ情報記憶部が当該パケットを送受信した送受信部の識別子と前記ゲートウェイが設置されている旨を示すゲートウェイ情報とを対応付けて記憶していると判定した場合は、前記外部装置に対し、ゲートウェイの切替指示を通知することを特徴とする付記15〜22のいずれか1つに記載の迂遠経路検知方法。
(付記24)送受信するフレーム内のパケットの宛先アドレス、または送信元アドレスに基づいて、当該パケットが前記内部装置と前記外部装置との通信であり、かつ前記単位ネットワークに設置されたゲートウェイを経由する通信に係るパケットであるか否かを判定し、
前記パケットが前記内部装置と前記外部装置との通信であり、かつ前記単位ネットワークに設置されたゲートウェイを経由する通信に係るパケットであると判定した場合は、前記他の単位ネットワークに設置されたゲートウェイのIPアドレスと、当該他のネットワークに設置された転送装置とパケットを送受信するインターフェースの識別子とを対応付けて記憶するアドレス記憶部が、当該パケットを送受信したインターフェースの識別子と対応付けて記憶するゲートウェイのIPアドレスを取得し、取得した当該IPアドレスとゲートウェイの切替指示とを通知することを特徴とする付記15〜23のいずれか1つに記載の迂遠経路検知方法。
(付記25)前記フレーム内のパケットの宛先アドレス、または送信元アドレスに基づいて、当該パケットが前記内部装置と前記外部装置との通信であり、かつ前記単位ネットワークに設置されたゲートウェイを経由する通信に係るパケットであるか否かを判定し、
前記パケットが前記内部装置と前記外部装置との通信であり、かつ前記単位ネットワークに設置されたゲートウェイを経由する通信に係るパケットであると判定し、かつ、当該パケットの送受信先となる前記他の単位ネットワークに設置されたゲートウェイが故障していない場合は、前記外部装置に対し、ゲートウェイの切替指示を通知することを特徴とする付記15〜24のいずれか1つに記載の迂遠経路検知方法。