(57)【要約】      （修正有）【課題】ネットワーク内に同一のＭＡＣアドレスを有する複数の仮想サーバが存在する場合であっても、確実に通信を確立することを目的とする。【解決手段】ネットワークにおける情報処理装置間の通信を中継する中継装置において、ネットワークに存在する複数の情報処理装置に割り当てられたアドレスの重複をチェックするアドレスチェック部と、該アドレスチェック部において検出した重複するアドレスを変換し、該変換後アドレスに基づいて、情報処理装置間の通信を中継する中継処理部とからなることを特徴とする。【選択図】  図１５
2008154066.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークにおける情報処理装置間の通信を中継する中継装置において、
ネットワークに存在する複数の情報処理装置に割り当てられたアドレスの重複をチェックするアドレスチェック部と、
該アドレスチェック部において検出した重複するアドレスを変換し、変換後アドレスを生成するアドレス変換部と、
該変換後アドレスに基づいて、情報処理装置間の通信を中継する中継処理部と、
からなることを特徴とする中継装置。
【請求項２】
該アドレスチェック部は、ネットワークに存在する情報処理装置に対してアドレスを要求するアドレス要求信号を生成することを特徴とする請求項１に記載の中継装置。
【請求項３】
該アドレスチェック部は、該アドレス要求信号対する応答情報から該情報処理装置のアドレスを取得することを特徴とする請求項２に記載の中継装置。
【請求項４】
該アドレスチェック部は、該応答情報から該情報処理装置のアドレスを取得した後、該応答情報を破棄することを特徴とする請求項３に記載の中継装置。
【請求項５】
該応答情報の送信元アドレスは中継装置に割り当てられたＩＰアドレスであることを特徴とする請求項４に記載の中継装置。
【請求項６】
ネットワークにおける情報処理装置間の通信を中継する中継装置において、
ネットワークに存在する複数の情報処理装置に割り当てられたアドレスのうち、変換するアドレスを指定する変換アドレス指定部と、
該変換アドレス指定部において指定したアドレスを変換して、変換後アドレスを生成するアドレス変換部と、
該変換アドレス指定部において指定したアドレスと、該変換後アドレスを対応付けるアドレス変換テーブルを格納する記憶部と、
該変換後アドレスに基づいて、情報処理装置間の通信を中継する中継処理部と、
からなることを特徴とする中継装置。
【請求項７】
ネットワークにおける情報処理装置間の通信を行う通信方法において、
該ネットワークに存在する複数の情報処理装置に割り当てられたアドレスの重複をチェックするアドレスチェック手順と、
該アドレスチェック手順において検出した重複するアドレスを変換し、変換後アドレスを生成するアドレス変換手順と、
該変換後アドレスに基づいて、情報処理装置間の通信を中継する中継処理手順と、
からなることを特徴とする通信方法。
【請求項８】
ネットワークにおける情報処理装置間の通信を中継装置に実行させる通信プログラムにおいて、
該ネットワークに存在する複数の情報処理装置に割り当てられたアドレスの重複をチェックするアドレスチェックステップと、
該アドレスチェックステップにおいて検出した重複するアドレスを変換し、変換後アドレスを生成するアドレス変換ステップと、
該変換後アドレスに基づいて、情報処理装置間の通信を中継する中継処理ステップと、
からなることを特徴とする通信プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想サーバに割り当てられたＭＡＣアドレス（Ｍｅｄｉａ  ＡｃｃｅｓｓＣｏｎｔｒｏｌ  ａｄｄｒｅｓｓ）を変換する中継装置、アドレス変換方法、アドレス変換プログラムに関する。
【背景技術】
【０００２】
仮想サーバによって構築されるネットワークシステムでは、ＭＡＣアドレスが重複することがある。仮想サーバとは、１台の物理的なサーバ資源を分割し、１台のサーバ内に仮想的に構築された複数のサーバのことである。ＭＡＣアドレスは各Ｅｔｈｅｒｎｅｔ（登録商標）カードに固有のＩＤ番号である。そしてＭＡＣアドレスはＩＥＥＥ（Ｉｎｓｔｉｔｕｔｅ  ｏｆ  Ｅｌｅｃｔｒｉｃａｌ  ａｎｄ  Ｅｌｅｃｔｒｏｎｉｃ  Ｅｎｇｉｎｅｅｒｓ）が管理しているメーカごとに固有な番号と、メーカが独自に各Ｅｔｈｅｒｎｅｔ（登録商標）カードに割り当てる番号の組み合わせによって表されるアドレスである。そのため通常、ＭＡＣアドレスは重複することはない。
【０００３】
しかしながら、仮想サーバによって構築されるネットワークシステムでは、仮想サーバに割り当てるＭＡＣアドレスを各物理サーバが設定するため、ネットワーク上に同一のＭＡＣアドレスを有する複数の仮想サーバが存在してしまうことがある。
【０００４】
そのため、異なる仮想サーバに割り当てられたＭＡＣアドレスが重複する場合、所望の仮想サーバに転送できないという問題があった。
【０００５】
また同一のＭＡＣアドレスを有する仮想サーバ同士の通信の場合は、中継装置はエラーとしてパケットを破棄してしまうといった問題もあった。
【０００６】
ＭＡＣアドレス変換を行う公知文献として以下のものがある。
【特許文献１】特開２００４−３０４３７１号公報  しかしながら、上記スイッチング装置においても、ネットワーク上に同一のＭＡＣアドレスが存在する場合には適切に通信を確立し行うことができない。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明は、ネットワーク内に同一のＭＡＣアドレスを有する複数の仮想サーバが存在する場合であっても、確実に通信を確立することを目的とする。
【課題を解決するための手段】
【０００８】
本発明に係る中継装置は、ネットワークにおける情報処理装置間の通信を中継する中継装置において、ネットワークに存在する複数の情報処理装置に割り当てられたアドレスの重複をチェックするアドレスチェック部と、該アドレスチェック部において検出した重複するアドレスを変換し、変換後アドレスを生成するアドレス変換部と、該変換後アドレスに基づいて、情報処理装置間の通信を中継する中継処理部とからなることを特徴とする。
【０００９】
また本発明に係る中継装置は、該アドレスチェック部においてネットワークに存在する情報処理装置に対してアドレスを要求するアドレス要求信号を生成することを特徴とする。
【００１０】
また本発明に係る中継装置は、該アドレスチェック部において該アドレス要求信号対する応答情報から該情報処理装置のアドレスを取得することを特徴とする。
【００１１】
また本発明に係る中継装置は、該アドレスチェック部において該応答情報から該情報処理装置のアドレスを取得した後、該応答情報を破棄することを特徴とする。
【００１２】
また本発明に係る中継装置は、該応答情報の送信元アドレスが中継装置に割り当てられたＩＰアドレスであることを特徴とする。
【００１３】
また本発明に係る中継装置は、ネットワークにおける情報処理装置間の通信を中継する中継装置において、ネットワークに存在する複数の情報処理装置に割り当てられたアドレスのうち、変換するアドレスを指定する変換アドレス指定部と、該変換アドレス指定部において指定したアドレスを変換して、変換後アドレスを生成するアドレス変換部と、該変換アドレス指定部において指定したアドレスと、該変換後アドレスを対応付けるアドレス変換テーブルを格納する記憶部と、該変換後アドレスに基づいて、情報処理装置間の通信を中継する中継処理部とからなることを特徴とする。
【００１４】
また本発明に係る通信方法は、ネットワークにおける情報処理装置間の通信を行う通信方法において、該ネットワークに存在する複数の情報処理装置に割り当てられたアドレスの重複をチェックするアドレスチェック手順と、該アドレスチェック手順において検出した重複するアドレスを変換し、変換後アドレスを生成するアドレス変換手順と、該変換後アドレスに基づいて、情報処理装置間の通信を中継する中継処理手順とからなることを特徴とする。
【００１５】
さらに本発明に係る通信プログラムは、ネットワークにおける情報処理装置間の通信をコンピュータに実行させる通信プログラムであって、該ネットワークに存在する複数の情報処理装置に割り当てられたアドレスの重複をチェックするアドレスチェックステップと、該アドレスチェックステップにおいて検出した重複するアドレスを変換し、変換後アドレスを生成するアドレス変換ステップと、該変換後アドレスに基づいて、情報処理装置間の通信を中継する中継処理ステップとからなることを特徴とする。
【発明の効果】
【００１６】
本発明によれば、中継装置が異なる仮想サーバに割り当てられたＭＡＣアドレスが重複することを検出し、中継装置が保有するＭＡＣアドレスに変換することによって、ネットワーク内に同一のＭＡＣアドレスを有する複数の仮想サーバが存在する場合であっても、確実に通信を確立することができる。
【発明を実施するための最良の形態】
【００１７】
（実施例１）
本実施例は、重複する可能性のある仮想サーバのＭＡＣアドレスを変換する中継装置１０１の実施例である。中継装置１０１はＭＡＣアドレスの変換を静的に行う。静的にＭＡＣアドレス変換を行うとは、予め定められたポートから受信するパケットのＭＡＣアドレスのみを変換するということである。
【００１８】
［ネットワークシステム１００］
図１は本実施例に係るネットワークシステム１００の概念図である。
【００１９】
ネットワークシステム１００は、中継装置１０１、１０２、１０３とエンドシステム１０４、１０５、１０６、１０７から構築されている。エンドシステム１０４、１０５、１０６、１０７は、サーバやパーソナルコンピュータであり、ネットワークを介して他の情報処理装置を通信可能な装置である。以下、エンドシステム１０４、１０５、１０６、１０７はサーバと呼ぶ。そしてサーバ１０４は、仮想サーバ１０４１、１０４２をサーバ１０４内に構築している。ネットワークシステム１００はレイヤ２ネットワークシステムなどであって、サーバ１０４、１０５、１０６、１０７が有するＭＡＣアドレスを宛先アドレス、送信元アドレスとして指定することでレイヤ２ネットワークの通信を行う。
【００２０】
［中継装置］
本実施例における中継装置１０１はレイヤ２スイッチなどであって、ＭＡＣアドレスによってパケットの行き先を決定するＥｔｈｅｒｎｅｔ（登録商標）の中継装置である。中継装置１０１はレイヤ３スイッチであって、レイヤ２のブリッジ機能を持つ中継装置などであってもよい。同様にして中継装置１０２、１０３もレイヤ２スイッチなどである。中継装置１０１は、ポート１、２、３を有している。中継装置１０１は、ポート１を介してサーバ１０４と接続されている。同様に中継装置１０１は、ポート２を介してサーバ１０５と接続されている。中継装置１０１は、ポート３を介して中継装置１０２と接続されている。また中継装置１０３は、ポート４、５、６を有している。中継装置１０３は、ポート４を介してサーバ１０６と接続されている。同様に中継装置１０３は、ポート５を介してサーバ１０７と接続されている。中継装置１０３は、ポート６を介して中継装置１０２と接続されている。
【００２１】
中継装置１０２は、サーバ１０４、１０５、１０６、１０７とは接続されていないため、ＭＡＣアドレスの変換は行わず、中継装置１０１と中継装置１０３との間で通信されるパケットをＭＡＣアドレスを変換せずに中継する中継装置である。
【００２２】
［サーバ］
サーバ１０４は仮想サーバ１０４１、１０４２をサーバ１０４内に構築している。サーバ１０４は、仮想サーバ１０４１、１０４２それぞれにＩＰアドレスとＭＡＣアドレスを割り当てる。仮想サーバ１０４１、１０４２のＭＡＣアドレスは仮想サーバ１０４１、１０４２のＩＰアドレスを元に生成される。サーバ１０４は、仮想サーバ１０４１、１０４２に割り当てるそれぞれのＩＰアドレスを一定のアルゴリズムで処理して、ＭＡＣアドレスの下位２４ビットを生成する。同様にしてサーバ１０７も仮想サーバ１０７１、１０７２をサーバ１０７内に構築している。サーバ１０７は、仮想サーバ１０７１、１０７２それぞれにＩＰアドレスとＭＡＣアドレスを割り当てる。
【００２３】
そしてサーバ１０４は図７に示すＡＲＰテーブル（Ａｄｄｒｅｓｓ  Ｒｅｓｏｌｕｔｉｏｎ Ｐｒｏｔｏｃｏｌ  Ｔａｂｌｅ）７００を有している。ＡＲＰテーブル７００にはネットワークシステム１００内に存在する他のサーバ１０５、仮想サーバ１０７２のＩＰアドレスとＭＡＣアドレスの対応関係が示される。ここでＡＲＰテーブルとは、所定のネットワークシステムに存在するサーバ、仮想サーバなどのＭＡＣアドレスとＩＰアドレスの対応関係を示したテーブルである。仮想サーバ１０４１、１０４２は、過去に通信を行ったサーバのＭＡＣアドレスをＡＲＰテーブル７００に記憶して更新していく学習機能を有している。そのため仮想サーバ１０４１、１０４２は、通信を行いたいサーバのＭＡＣアドレスがＡＲＰテーブル７００内に存在する場合には、ＡＲＰテーブル７００内の所望のＭＡＣアドレスを宛先としてパケットを送信する。本実施例では、仮想サーバ１０４１、１０４２は、それぞれ同一のＡＲＰテーブル７００を参照して、ネットワーク内のサーバ１０５、１０６、１０７１、１０７２と通信を行う。さらにＡＲＰテーブル７００には、サーバ１０５、１０６、１０７１、１０７２に割り当てられたＩＰアドレスとＭＡＣアドレスの有効期間も示されている。
【００２４】
仮想サーバ１０４１は、ＡＲＰテーブル７００内に所望のＭＡＣアドレスがないと判断した場合、ＡＲＰリクエストパケットをネットワークシステム１００内に存在するすべてのサーバ１０４２、１０５、１０６、１０７にブロードキャストで送信する。ＡＲＰリクエストパケットは、送信先のＩＰアドレス、送信元のＩＰアドレス、送信元のＭＡＣアドレスの情報が含まれるパケットである。サーバ１０４１は、レイヤ２スイッチなどの中継装置１０１、１０２、１０３を介して通信を行うため、宛先のＭＡＣアドレスを知らなければ通信することできない。これはサーバ１０４１がパケットの宛先フィールドに通信相手のＭＡＣアドレスを指定しなければならないためである。
【００２５】
ブロードキャストのＡＲＰリクエストパケットを受信した各サーバ１０４２、１０５、１０６、１０７は、自身のＩＰアドレスがＡＲＰパケットリクエスト中の送信先のＩＰアドレスと一致するか否かを判断する。自身のＩＰアドレスがＡＲＰパケットリクエスト中の送信先のＩＰアドレスと一致したサーバは、自身のＭＡＣアドレスを含むＡＲＰリプライパケットを仮想サーバ１０４１に送信する。これにより仮想サーバ１０４１は通信相手のＭＡＣアドレスを取得することができる。
【００２６】
仮想サーバ１０４１がＡＲＰリクエストパケットを仮想サーバ１０４２に送信するとき、サーバ１０４内の内部の仮想スイッチを経由して、仮想サーバ１０４２に送信する。仮想サーバ１０４１と仮想サーバ１０４２が同一の物理サーバ１０４内に存在するためである。
【００２７】
仮想サーバ１０４がＡＲＰリクエストパケットをサーバ１０５、１０６、仮想サーバ１０７１、１０７２に送信するとき、中継装置１０１はＡＲＰリクエストパケットの送信元ＭＡＣアドレス（仮想サーバ１０４１に割り当てられたＭＡＣアドレス）を他のＭＡＣアドレスに変換する。そして中継装置１０１は、送信元ＭＡＣアドレスを変換したＡＲＰリクエストパケットをサーバ１０５、１０６、仮想サーバ１０７１、１０７２に送信する。つまり本実施例では、中継装置１０１に接続されているサーバであって、仮想サーバ１０４１、１０４２を構築しているサーバ１０４から受信するパケットのＭＡＣアドレスは変換する構成となっている。換言すれば中継装置が重複する可能性のあるＭＡＣアドレスを変換する構成である。
【００２８】
サーバ１０４は、仮想サーバ１０４１と仮想サーバ１０４２のそれぞれにＭＡＣアドレスを割り当てる。ここで仮想サーバ１０４１と仮想サーバ１０４２とが有するＭＡＣアドレスは異なるＭＡＣアドレスである。
【００２９】
［ネットワークシステム１００における通信シーケンス］
図２は、本実施例に係るネットワークシステム１００における通信のシーケンス図である。仮想サーバ１０４１が仮想サーバ１０７１とのパケット通信を説明する。本実施例では、サーバ１０４が接続され、通信を開始しようとするときに、ＡＲＰ処理が行われる。ＡＲＰ処理とは、ネットワークシステムに接続されたサーバがＡＲＰリクエストパケットを送信し、ネットワークシステム内の他のサーバからＡＲＰリプライパケットを受信する処理である。
【００３０】
まず仮想サーバ１０４１は、ＡＲＰテーブル７００を参照する。ＡＲＰテーブル７００には仮想サーバ１０７１のＭＡＣアドレスが記録されておらず、仮想サーバ１０４１はＡＲＰリクエストパケットをブロードキャストでネットワークシステム１００内の仮想サーバ１０４２、１０７１、１０７２、サーバ１０５、１０６に送信する（Ｓ２０１、Ｓ２０２）。ＡＲＰリクエストパケットは、通信を行いたい仮想サーバ１０７１のＩＰアドレス「１９２．１６８．１．１２６」、送信元である仮想サーバ１０４１のＩＰアドレス「１９２．１６８．１．１２２」、仮想サーバ１０４１のＭＡＣアドレス「００：２２：３３：４４：５５：６６」の情報を含む。サーバ１０５、１０６、仮想サーバ１０７１、１０７２は、中継装置１０１を介して、ＡＲＰリクエストパケットを受信する。中継装置１０１はＡＲＰリクエストパケット内の仮想サーバ１０４１のＭＡＣアドレス「００：２２：３３：４４：５５：６６」を「０１：２２：３３：４４：５５：６６」に変換し、サーバ１０５、１０６、仮想サーバ１０７１、１０７２にＡＲＰリクエストパケットを送信する（Ｓ２０３〜Ｓ２０６）。仮想サーバ１０４２、１０７１、１０７２、サーバ１０５、１０６は、それぞれ自身が有するＩＰアドレスが、ＡＲＰリクエストパケットが含むＩＰアドレス「１９２．１６８．１．１２６」であるか否かを判断する。仮想サーバ１０７１は、ＡＲＰリクエストパケットに含まれるＩＰアドレス「１９２．１６８．１．１２６」が仮想サーバ１０７１自身が有するＩＰアドレスと一致すると判断する。そして仮想サーバ１０７１は、ＡＲＰリプライパケットを中継装置１０３、１０２、１０１を介して、仮想サーバ１０４１に返信する（Ｓ２０７〜２０９）。ＡＲＰリプライパケットには、仮想サーバ１０７１のＭＡＣアドレス「００：２２：３３：４４：５５：６６」が含まれている。中継装置１０３は、ＡＲＰリプライパケットに含まれる仮想サーバ１０７１のＭＡＣアドレス「００：２２：３３：４４：５５：６６」を「００：２２：３３：４４：５５：６０」へ変換する。ここで仮想サーバ１０７１のＭＡＣアドレス「００：２２：３３：４４：５５：６６」は、ＡＲＰリプライパケットの送信元ＭＡＣアドレスである。中継装置１０１は、ＡＲＰリプライパケットに含まれる送信先ＭＡＣアドレス「０１：２２：３３：４４：５５：６６」を仮想サーバ１０４１のＭＡＣアドレス「００：２２：３３：４４：５５：６６」に変換する。そして仮想サーバ１０４１は、中継装置１０３が変換した仮想サーバ１０７１のＭＡＣアドレス「００：２２：３３：４４：５５：６０」を取得して、ＡＲＰテーブル７００に仮想サーバ１０７１のＭＡＣアドレス「００：２２：３３：４４：５５：６０」を記録し更新する。仮想サーバ１０４１は、ＭＡＣアドレス「００：２２：３３：４４：５５：６０」を宛先アドレスとして、パケットを仮想サーバ１０７１に送信して、仮想サーバ１０７１と通信を行う（Ｓ２１０〜Ｓ２１２）。仮想サーバ１０７１もＭＡＣアドレス「０１：２２：３３：４４：５５：６６」を宛先アドレスとして仮想サーバ１０４１と通信を行う（Ｓ２１３〜Ｓ２１５）。
【００３１】
図３も、本実施例に係るネットワークシステム１００における通信のシーケンス図である。仮想サーバ１０４１がサーバ１０６とのパケット通信を説明する。
【００３２】
仮想サーバ１０４１は、ＡＲＰテーブル７００を参照する。ＡＲＰテーブル７００には、仮想サーバ１０６のＭＡＣアドレスが記録されておらず、仮想サーバ１０４１はＡＲＰリクエストパケットをブロードキャストでネットワークシステム１００内の仮想サーバ１０４２、１０７１、１０７２、サーバ１０５、１０６に送信する（Ｓ３０１、Ｓ３０２）。ＡＲＰリクエストパケットは、通信を行いたい仮想サーバ１０６のＩＰアドレス「１９２．１６８．１．１２５」、送信元である仮想サーバ１０４１のＩＰアドレス「１９２．１６８．１．１２２」、仮想サーバ１０４１のＭＡＣアドレス「００：２２：３３：４４：５５：６６」の情報を含む。サーバ１０５、１０６、仮想サーバ１０７１、１０７２は、ＡＲＰリクエストパケットを中継装置１０１を介して受信する。中継装置１０１はＡＲＰリクエストパケット内の仮想サーバ１０４１のＭＡＣアドレス「００：２２：３３：４４：５５：６６」を「０１：２２：３３：４４：５５：６６」変換し、サーバ１０５、１０６、仮想サーバ１０７１、１０７２にＡＲＰリクエストパケットを送信する（Ｓ３０３〜Ｓ３０６）。仮想サーバ１０４２、１０７１、１０７２、サーバ１０５、１０６は、それぞれ自身が有するＩＰアドレスがＡＲＰリクエストパケットが含むＩＰアドレス「１９２．１６８．１．１２５」であるか否かを判断する。仮想サーバ１０６は、ＡＲＰリクエストパケットに含まれるＩＰアドレス「１９２．１６８．１．１２５」が仮想サーバ１０６自身が有するＩＰアドレスと一致すると判断する。そして仮想サーバ１０６は、ＡＲＰリプライパケットを中継装置１０３、１０２、１０１を介して、仮想サーバ１０４１に返信する（Ｓ３０７〜３０９）。ＡＲＰリプライパケットには、仮想サーバ１０６のＭＡＣアドレス「０１：１１：２２：３３：４４：６６」が含まれている。また中継装置１０３はサーバ１０６のＭＡＣアドレス「０１：１１：２２：３３：４４：６６」は変換しない。中継装置１０１は、ＡＲＰリプライパケットに含まれる送信先ＭＡＣアドレス「０１：２２：３３：４４：５５：６６」を仮想サーバ１０４１のＭＡＣアドレス「００：２２：３３：４４：５５：６６」に変換する。そして仮想サーバ１０４１は、サーバ１０６のＭＡＣアドレス「０１：１１：２２：３３：４４：６６」を取得して、ＡＲＰテーブル７００にサーバ１０６のＭＡＣアドレス「０１：１１：２２：３３：４４：６６」を記録し更新する。仮想サーバ１０４１は、ＭＡＣアドレス「０１：１１：２２：３３：４４：６６」を宛先アドレスとしてパケットをサーバ１０６に送信して、サーバ１０６と通信を行う（Ｓ３１０〜Ｓ３１２）。サーバ１０６もＭＡＣアドレス「０１：２２：３３：４４：５５：６６」を宛先アドレスとして仮想サーバ１０４１と通信を行う（Ｓ３１３〜Ｓ３１５）。
【００３３】
［中継装置１０１のハード構成］
図４は本実施例に係る中継装置１０１のハードブロック図である。
【００３４】
中継装置１０１は、インターフェース（Ｉ／Ｆ）部４０１、４０８、ＭＡＴ（ＭＡＣ  Ａｄｄｒｅｓｓ  Ｔｒａｎｓｌａｔｉｏｎ）機能ｏｎ／ｏｆｆチェック部４０２、４０７、ＭＡＴ処理部４０３、記憶部４０４、中継処理部４０５、記憶部４０６から構成させる。
【００３５】
中継装置１０１は、インターフェース（Ｉ／Ｆ）部４０１においてパケットを受信する。Ｉ／Ｆ部４０１は、仮想サーバ１０４１、１０４２、１０７１、１０７２、サーバ１０５、１０６よりパケットを受信する。Ｉ／Ｆ部４０１は、受信したパケットをＭＡＴ機能ｏｎ／ｏｆｆチェック部４０２に転送する。
【００３６】
ＭＡＴ機能ｏｎ／ｏｆｆチェック部４０２は、受信するポートにおけるＭＡＴ機能のｏｎ／ｏｆｆをチェックする。ＭＡＴ機能ｏｎ／ｏｆｆチェック部４０２はＭＡＴ機能がｏｎであると判断した場合、ＭＡＴ処理部４０３にパケットを転送する。ＭＡＴ機能ｏｎ／ｏｆｆチェック部４０２はＭＡＴ機能がｏｆｆであれば、中継処理部４０５にパケットを転送する。ここでＭＡＴ機能とは、パケット内に存在するＭＡＣアドレスを変換する機能である。
【００３７】
ＭＡＴ処理部４０３は、記憶部４０４のＭＡＴテーブル８００を参照し、パケットのヘッダ部にある送信元ＭＡＣアドレスを変換する。ＭＡＴ処理部４０３は図８に示すＭＡＴテーブル８００を参照して、変換対象のＭＡＣアドレスに対応する変換するＭＡＣアドレスがＭＡＴテーブル８００に記録されている場合、ＭＡＴ処理部４０３はＭＡＴテーブル８００より変換するＭＡＣアドレスにパケットの送信元／宛先ＭＡＣアドレスを変換する。ここでＭＡＴテーブルは、ＭＡＴ機能ｏｎ／ｏｆｆチェック部４０２、４０７において変換対象となっているＭＡＣアドレスと、ＭＡＴ処理部４０３が当該ＭＡＣアドレスを変換した変換後アドレスを対応付けるテーブルである。ＭＡＴテーブル８００に変換するＭＡＣアドレスが存在しない場合には、ＭＡＴ処理部４０３は、変換するＭＡＣアドレスを生成する。ＭＡＴ処理部４０３は、生成したＭＡＣアドレスを変換対象のＭＡＣアドレスに対応付けて、ＭＡＴテーブル８００に記録する。
【００３８】
またパケットのＤＡＴＡ内に送信元ＭＡＣアドレスを含むパケットにおいては、ＭＡＴ処理部４０３は記憶部４０４のＭＡＴテーブル８００を参照し、ＤＡＴＡ内の送信元ＭＡＣアドレスも変換する。
【００３９】
ＭＡＴ機能ｏｎ／ｏｆｆチェック部４０２が特定のポートから受信したパケットのみＭＡＣアドレスの変換の有無を判断することによって、ＭＡＣアドレスの変換処理を効率よく行うことができる。ＭＡＴ機能ｏｎ／ｏｆｆチェック部４０２は、仮想サーバを構築しないサーバ１０５が接続されたポートから受信するパケットの送信元アドレスは変換しない。これにより重複する可能性のないＭＡＣアドレスは変換せずに済むため通信速度を落とすことなく通信を行うことができる。また送信先がブロードキャストのパケットの送信先ＭＡＣアドレスは変換しない。これはブロードキャストであるため、重複の有無を考慮しないためである。
【００４０】
図５は、ＭＡＴ機能ｏｎ／ｏｆｆチェック部４０２におけるＭＡＴ機能ｏｎ／ｏｆｆの判断フローチャートである。ＭＡＴ機能ｏｎ／ｏｆｆチェック部４０２は、パケットを受信するポートにおけるＭＡＴ機能のｏｎ／ｏｆｆをチェックする（Ｓ５０１）。
【００４１】
ＭＡＴ機能がｏｎのとき、ＭＡＴ処理部４０３がＭＡＴテーブル８００を参照して、パケット内の送信元ＭＡＣアドレスを変換する（Ｓ５０２）。パケットのＤＡＴＡ内にＭＡＣアドレスを含むときは、ＭＡＴ処理部４０３はＤＡＴＡ内のＭＡＣアドレスも変換する。
【００４２】
中継処理部４０５は、図９に示すＭＡＣアドレステーブル９００を参照し、ＭＡＣアドレスを変換したパケットを送信元ＭＡＣアドレスに対応するポート番号よりＩ／Ｆ部４０８を介して送信する（Ｓ５０３）。ＭＡＴ機能がｏｆｆのときは、中継処理部４０５は、ＭＡＣアドレステーブル９００を参照し、パケットを送信元ＭＡＣアドレスに対応するポート番号よりＩ／Ｆ部４０８を介して送信する（Ｓ５０３）。ここでＭＡＣアドレステーブルは、変換後アドレスと該ＭＡＣアドレステーブルを有する中継装置に接続されるサーバ、仮想サーバを識別するポート番号の対応関係を示すテーブルである。
【００４３】
図６は、ＭＡＴ機能ｏｎ／ｏｆｆチェック部４０７におけるＭＡＴ機能ｏｎ／ｏｆｆの判断フローチャートである。ＭＡＴ機能ｏｎ／ｏｆｆチェック部４０７は、パケットを送信するポートにおけるＭＡＴ機能のｏｎ／ｏｆｆをチェックする（Ｓ６０１）。
【００４４】
ＭＡＴ機能がｏｎのとき、ＭＡＴ処理部４０３がＭＡＴテーブルを参照して、パケット内の宛先ＭＡＣアドレスを変換する（Ｓ６０２）。パケットのＤＡＴＡ内にＭＡＣアドレスを含むときは、ＭＡＴ処理部４０３はＤＡＴＡ内のＭＡＣアドレスも変換する。
【００４５】
中継処理部４０５は、ＭＡＣアドレステーブル９００を参照し、ＭＡＣアドレスを変換したパケットを宛先ＭＡＣアドレスに対応するポート番号よりＩ／Ｆ部４０８を介して送信する（Ｓ６０３）。ＭＡＴ機能がｏｆｆのときは、中継処理部４０５は、ＭＡＣアドレステーブル９００を参照し、パケットを宛先ＭＡＣアドレスに対応するポート番号よりＩ／Ｆ部４０８を介して送信する（Ｓ６０３）。
【００４６】
またＭＡＴ処理部４０３は、ＭＡＣアドレスの変換処理を行うと共に、変換する前のＭＡＣアドレス、変換した後のＭＡＣアドレス、変換処理するＭＡＣアドレスに対応するＩＰアドレスをＭＡＴテーブル８００に記録する。ここでＭＡＴ処理部４０３が行うＭＡＴテーブル８００へのＭＡＣアドレス等の記録処理は、ＭＡＴテーブル８００に該当するＭＡＣアドレス等が記録されていない場合に行う。
【００４７】
これにより２回目以降、ＭＡＴ処理部４０３はＭＡＣアドレスの変換処理をＭＡＴテーブル８００を参照して、ＭＡＣアドレスの変換処理を短縮することができ、効率的にＭＡＣアドレスの変換処理を行うことができる。
【００４８】
ＭＡＴ処理部４０３は、送信元ＭＡＣアドレスを変換したパケットを中継処理部４０５に転送する。中継処理装置４０５は、記憶部４０６に格納されているＭＡＣアドレステーブル９００を参照して、パケットを送信元ＭＡＣアドレスに対応するポート番号よりＩ／Ｆ部４０８を介して送信する。
【００４９】
図９は本実施例におけるＭＡＣアドレステーブル９００である。中継装置１０１もＭＡＣアドレステーブル９００を更新する学習機能を有しており、一度中継処理に用いたＭＡＣアドレスとポートの対応関係をＭＡＣアドレステーブル９００記録する。
【００５０】
中継装置１０３も同様にして仮想サーバ１０７１、１０７２が接続されているポートから受信する又はポートへ送信するパケットのＭＡＣアドレスを変換する。つまり中継装置１０３内のＭＡＴ処理部は仮想サーバ１０７１、１０７２から受信するパケットの送信元ＭＡＣアドレスを他のＭＡＣアドレスに変換する。中継装置１０３内のＭＡＴ処理部は仮想サーバ１０７１、１０７２に送信するパケットの宛先ＭＡＣアドレスを他のＭＡＣアドレスに変換する。
【００５１】
本実施例における中継装置１０１、１０３によれば、仮想サーバ等が存在するネットワーク下であり、ＭＡＣアドレスが重複する可能性が比較的高い環境においても、通信障害を引き起こすことなく、信頼性の高い通信を実現することが出来る。
【００５２】
また中継装置１０１、１０２、１０３は、ＳＮＭＰ（Ｓｉｍｐｌｅ  Ｎｅｔｗｏｒｋ  Ｍａｎａｇｅｍｅｎｔ  Ｐｒｏｔｏｃｏｌ）等を利用して、ネットワーク１００内でＭＡＣアドレスが重複していることを管理サーバ（図示せず）に通知する構成でもよい。
【００５３】
また本実施例においては、ＭＡＴ機能ｏｎ／ｏｆｆチェック部４０２、４０７、ＭＡＴ処理部４０３、中継処理部４０５は物理的異なるハード構成であるが、これら各部が行う処理を一つのハードが機能的に実現する構成であってもよい。また本実施例においては、ＭＡＴテーブル８００、ＭＡＣアドレステーブル９００を物理的に異なる記憶部４０４、４０６に記憶しているが一つのハードにＭＡＴテーブル８００、ＭＡＣアドレステーブル９００を記憶する構成でもよい。
（実施例２）
本実施例は、ネットワークシステム１０００内でＭＡＣアドレスが重複するか否かを判断し、重複するＭＡＣアドレスは変換する中継装置１００１の実施例である。中継装置７０１はＭＡＣアドレスの変換を動的に行う。動的にＭＡＣアドレス変換を行うとは、ＭＡＣアドレスの重複を調べ、重複するＭＡＣアドレスは新たに別のＭＡＣアドレスに変換するということである。
【００５４】
［ネットワークシステム１０００］
図１０は本実施例に係るネットワークシステム１０００の概念図である。
【００５５】
ネットワークシステム１００は、中継装置１００１、１００２、１００３とサーバ１００４、１００５、１００６、１００７から構築されている。
【００５６】
そしてサーバ１００４は、仮想サーバ１００４１、１００４２をサーバ１００４内に構築している。同様にしてサーバ１００７は、仮想サーバ１００７１、１００７２をサーバ１００７内に構築している。ネットワークシステム１０００はレイヤ２ネットワークシステムなどであって、サーバ１００４、１００５、１００６、１００７が有するＭＡＣアドレスを宛先アドレス、送信元アドレスとして指定することでレイヤ２ネットワークの通信を行う。ネットワークシステム１０００はレイヤ２ネットワークシステムなどであって、サーバ１００４、１００５、１００６、１００７が有するＭＡＣアドレスを宛先アドレス、送信元アドレスとして指定することでレイヤ２ネットワークの通信を行う。
【００５７】
［中継装置］
本実施例における中継装置１００１はレイヤ２スイッチなどであって、ＭＡＣアドレスによってパケットの行き先を決定するＥｔｈｅｒｎｅｔ（登録商標）の中継装置である。同様にして中継装置１００２、１００３もレイヤ２スイッチなどである。
【００５８】
中継装置１００２は、サーバ１００４、１００５、１００６、１００７とは接続されていないため、ＭＡＣアドレスの変換は行わず、中継装置１００１と中継装置１００３との間で通信されるパケットをＭＡＣアドレスの変換をせずに中継する中継装置である。中継装置１００１は、ポート１１、１２、１３を有している。中継装置１００１は、ポート１１を介してサーバ１００４と接続されている。同様に中継装置１００１は、ポート１２を介してサーバ１００５と接続されている。中継装置１００１は、ポート１３を介して中継装置１００２と接続されている。また中継装置１００３は、ポート１４、１５、１６を有している。中継装置１００３は、ポート１４を介してサーバ１００６と接続されている。同様に中継装置１００３は、ポート１５を介してサーバ１００７と接続されている。中継装置１００３は、ポート１６を介して中継装置１００２と接続されている。
【００５９】
［サーバ］
サーバ１００４は仮想サーバ１００４１、１００４２をサーバ１００４内に構築している。サーバ１００４は、仮想サーバ１００４１、１００４２それぞれにＩＰアドレスとＭＡＣアドレスを割り当てる。仮想サーバ１００４１、１００４２のＭＡＣアドレスは仮想サーバ１００４１、１００４２のＩＰアドレスを元に生成される。サーバ１００４は、仮想サーバ１００４１、１００４２に割り当てるそれぞれのＩＰアドレスを一定のアルゴリズムで処理して、ＭＡＣアドレスの下位２４ビットを生成する。同様にしてサーバ１００７も仮想サーバ１００７１、１００７２それぞれにＩＰアドレスとＭＡＣアドレスを割り当てる。
【００６０】
そしてサーバ１００４はＡＲＰテーブル１６００を有している。ＡＲＰテーブル１６００はネットワークシステム１０００内に存在する他のサーバ１００５、１００６、仮想サーバ１００７１、１００７２のＩＰアドレスとＭＡＣアドレスの対応関係が示されるテーブルである。仮想サーバ１００４１、１００４２は、過去に通信を行ったサーバのＭＡＣアドレスをＡＲＰテーブル１６００に記憶して更新していく学習機能を有している。
【００６１】
そのため仮想サーバ１００４１、１００４２は、通信を行いたいサーバのＭＡＣアドレスがＡＲＰテーブル１６００内に存在する場合には、ＡＲＰテーブル１６００内の所望のＭＡＣアドレスを宛先としてパケットを送信する。本実施例では、仮想サーバ１００４１、１００４２は、それぞれ同一のＡＲＰテーブル１６００を参照して、ネットワーク内のサーバ１００５、１００６、１００７１、１００７２と通信を行う。さらにＡＲＰテーブル１６００には、サーバ１００５、１００６、１００７１、１００７２に割り当てられたＩＰアドレスとＭＡＣアドレスの有効期間も記録されている。
【００６２】
仮想サーバ１００４１は、ＡＲＰテーブル１６００内に所望のＭＡＣアドレスがないと判断した場合、ＡＲＰリクエストパケットをネットワークシステム１０００内に存在するすべてのサーバ１００４２、１００５、１００６、１００７にブロードキャストで送信する。ブロードキャストのＡＲＰリクエストパケットを受信した仮想サーバ１００４２は、自身のＩＰアドレスがＡＲＰリクエストパケット中の送信先のＩＰアドレスと一致するか否かを判断する。サーバ１００５へ送信するＡＲＰリクエストパケットは、中継装置１００１を介して、サーバ１００５へ送信される。同様にして、サーバ１００６、仮想サーバ１００７１、１００７２へ送信するＡＲＰリクエストパケットは、中継装置１００１を介して、サーバ１００６、仮想サーバ１００７１、１００７２へ送信される。中継装置１００１は、ＡＲＰリクエストパケットをサーバ１００５、１００６、仮想サーバ１００７１、１００７２へ送信する前に、ＡＲＰリクエストパケットに含まれる送信元ＭＡＣアドレス（仮想サーバ１００４１のＭＡＣアドレス）がネットワークシステム１０００内で重複するか否かを調べる。中継装置１００１は、サーバ１００５、１００６、仮想サーバ１００７１、１００７２にｐｉｎｇを送信する。サーバ１００５、１００６、仮想サーバ１００７１、１００７２は、受信したｐｉｎｇに対するｅｃｈｏリプライパケットを中継装置１００１に返信する。サーバ１００５、１００６、仮想サーバ１００７１、１００７２から受信するｅｃｈｏリプライパケットにはそれぞれのＭＡＣアドレスが含まれている。中継装置１００１は、ＭＡＣアドレスをｅｃｈｏリプライパケットから抽出した後、それらｅｃｈｏリプライパケットを破棄する。
【００６３】
中継装置１００１はＡＲＰリクエストパケットの送信元ＭＡＣアドレスと重複するＭＡＣアドレスがネットワークシステム１０００内に存在しないと判断した場合、中継装置１００１はＡＲＰリクエストパケットの送信元ＭＡＣアドレスを変換せずに、サーバ１００５、１００６、仮想サーバ１００７１、１００７２へＡＲＰリクエストパケットを送信する。また中継装置１００１はＡＲＰリクエストパケットの送信元ＭＡＣアドレスと重複するＭＡＣアドレスがネットワークシステム１０００内に存在すると判断した場合、中継装置１００１はＡＲＰリクエストパケットの送信元ＭＡＣアドレスを変換して、サーバ１００５、１００６、仮想サーバ１００７１、１００７２へＡＲＰリクエストパケットを送信する。
【００６４】
自身のＩＰアドレスがＡＲＰパケットリクエスト中の送信先のＩＰアドレスと一致したサーバは、自身のＭＡＣアドレスを含むＡＲＰリプライパケットを仮想サーバ１００４１に送信する。これにより仮想サーバ１００４１は通信相手のＭＡＣアドレスを取得することができる。
【００６５】
本実施例では、中継装置１００１、１００３がネットワークシステム１０００内においてＭＡＣアドレスが重複するか否かを判断し、重複する場合にはＭＡＣアドレスを変換する構成となっている。
【００６６】
［ネットワークシステム１０００における通信シーケンス］
図１１は、本実施例に係るネットワークシステム１０００における通信のシーケンス図である。仮想サーバ１００４１が仮想サーバ１００７１とのパケット通信を説明する。ネットワーク１０００内においてＭＡＣアドレスが重複しない場合のシーケンス図である。
【００６７】
本実施例では、サーバ１００４が接続され、通信を開始しようとするときに、ＡＲＰ処理が行われる。ＡＲＰ処理とは、ネットワークシステムに接続されたサーバがＡＲＰリクエストパケットを送信し、ネットワーク内の他のサーバからＡＲＰリプライパケットを受信する処理である。
【００６８】
まず仮想サーバ１００４１は、ＡＲＰテーブル１６００を参照する。ＡＲＰテーブル１６００には、仮想サーバ１００７１のＭＡＣアドレスが記録されておらず、仮想サーバ１００４１はＡＲＰリクエストパケットをブロードキャストでネットワークシステム１０００内の仮想サーバ１００４２、１００７１、１００７２、サーバ１００５、１００６に送信する（Ｓ１１０１、Ｓ１１０２）。ＡＲＰリクエストパケットは、通信を行いたい仮想サーバ１００７１のＩＰアドレス「１９３．１６８．１．１２６」、送信元である仮想サーバ１００４１のＩＰアドレス「１９３．１６８．１．１２２」、仮想サーバ１００４１のＭＡＣアドレス「００：２１：３３：４４：５５：６６」の情報を含む。
【００６９】
サーバ１００５、１００６、仮想サーバ１００７１、１００７２は、中継装置１００１を介して、ＡＲＰリクエストパケットを受信する。中継装置１００１は、ＡＲＰリクエストパケットをサーバ１００５、１００６、仮想サーバ１００７１、１００７２へ送信する前に、中継装置１００１は、サーバ１００５、１００６、仮想サーバ１００７１、１００７２にｐｉｎｇを送信する（Ｓ１１０３〜１１０６）。ｐｉｎｇの送信は、ＡＲＰリクエストパケットに含まれる送信元ＭＡＣアドレス「００：２１：３３：４４：５５：６６」（仮想サーバ１００４１のＭＡＣアドレス）がネットワークシステム１０００内で重複するか否かを調べるためのものである。また送信元ＩＰアドレスは中継装置１００１のＩＰアドレス「１９３．１６８．１．１２８」である。サーバ１００５、１００６、仮想サーバ１００７１、１００７２は、受信したｐｉｎｇに対するｅｃｈｏリプライパケットを中継装置１００１に返信する（Ｓ１１０７〜１１１０）。サーバ１００５から中継装置１０１へ送信するｅｃｈｏリプライパケットにはサーバ１００５に割り当てられたＭＡＣアドレスが含まれている。同様にサーバ１００６、仮想サーバ１００７１、１００７２から中継装置１０１へ送信するｅｃｈｏリプライパケットにはそれぞれ、サーバ１００６、仮想サーバ１００７１、１００７２に割り当てられたＭＡＣアドレスが含まれている。中継装置１００１は、サーバ１００５、１００６、仮想サーバ１００７１、１００７２のＭＡＣアドレスをそれぞれのｅｃｈｏリプライパケットから抽出した後、それらｅｃｈｏリプライパケットを破棄する。
【００７０】
中継装置１００１はＡＲＰリクエストパケットの送信元ＭＡＣアドレス「００：２１：３３：４４：５５：６６」と重複するＭＡＣアドレスがネットワークシステム１０００内に存在しないと判断した場合、中継装置１００１はサーバ１００５、１００６、仮想サーバ１００７１、１００７２へＡＲＰリクエストパケットを送信元ＭＡＣアドレス「００：２１：３３：４４：５５：６６」を変換せずに送信する（Ｓ１１１１〜Ｓ１１１４）。
【００７１】
仮想サーバ１００４２、１００７１、１００７２、サーバ１００５、１００６は、それぞれ自身が有するＩＰアドレスが、ＡＲＰリクエストパケットが含むＩＰアドレス「１９３．１６８．１．１２６」であるか否かを判断する。仮想サーバ１００７１は、「１９３．１６８．１．１２６」が自身のＩＰアドレスと判断して、ＡＲＰリプライパケットを中継装置１００３、１００２、１００１を介して、仮想サーバ１００４１に返信する（Ｓ１１１５）。中継装置１００３、１００１は、ＡＲＰリプライパケットに含まれる宛先ＭＡＣアドレス「００：２１：３３：４４：５５：６６」および送信元ＭＡＣアドレス「００：２１：３３：４４：５５：６０」（仮想サーバ１００７１のＭＡＣＡアドレス）を他のＭＡＣアドレスに変換しない。中継装置１００１、１００３がネットワークシステム１０００内に重複するＭＡＣアドレスが存在しないと判断したためである。
【００７２】
仮想サーバ１００４１は、仮想サーバ１００７１のＭＡＣアドレス「００：２１：３３：４４：５５：６０」を取得して、ＡＲＰテーブル１６００に仮想サーバ１００７１のＭＡＣアドレス「００：２１：３３：４４：５５：６０」を記録し更新する。仮想サーバ１００４１は、ＭＡＣアドレス「００：２１：３３：４４：５５：６０」を宛先アドレスとしてパケットを仮想サーバ１００７１に送信して、仮想サーバ１００７１と通信を行う（Ｓ１１１６）。仮想サーバ１００７１もＭＡＣアドレス「００：２１：３３：４４：５５：６６」を宛先アドレスとして仮想サーバ１００４１と通信を行う（Ｓ１１１７）。
【００７３】
図１２は、本実施例に係るネットワークシステム１０００における通信のシーケンス図である。ネットワーク１０００内においてＭＡＣアドレスが重複すする場合のシーケンス図である。仮想サーバ１００４１と仮想サーバ１００７１のＭＡＣアドレスが重複する場合を説明する。
【００７４】
サーバ１００４が接続され、通信を開始しようとするときに、ＡＲＰ処理が行われる。仮想サーバ１００４１は、ＡＲＰテーブル１６００を参照する。ＡＲＰテーブル１６００には、仮想サーバ１００７１のＭＡＣアドレスが記録されておらず、仮想サーバ１００４１はＡＲＰリクエストパケットをブロードキャストでネットワークシステム１０００内の仮想サーバ１００４２、１００７１、１００７２、サーバ１００５、１００６に送信する（Ｓ１２０１、Ｓ１２０２）。ＡＲＰリクエストパケットは、通信を行いたい仮想サーバ１００７１のＩＰアドレス「１９３．１６８．１．１２６」、送信元である仮想サーバ１００４１のＩＰアドレス「１９３．１６８．１．１２２」、仮想サーバ１００４１のＭＡＣアドレス「００：２１：３３：４４：５５：６６」の情報を含む。
【００７５】
サーバ１００５、１００６、仮想サーバ１００７１、１００７２は、中継装置１００１を介して、ＡＲＰリクエストパケットを受信する。中継装置１００１は、ＡＲＰリクエストパケットをサーバ１００５、１００６、仮想サーバ１００７１、１００７２へ送信する前に、中継装置１００１は、サーバ１００５、１００６、仮想サーバ１００７１、１００７２にｐｉｎｇを送信する（Ｓ１２０３〜１２０６）。ｐｉｎｇの送信は、ＡＲＰリクエストパケットに含まれる送信元ＭＡＣアドレス「００：２１：３３：４４：５５：６６」（仮想サーバ１００４１のＭＡＣアドレス）がネットワークシステム１０００内で重複するか否かを調べるためのものである。またｐｉｎｇの送信元ＩＰアドレスは中継装置１００１のＩＰアドレス「１９３．１６８．１．１２８」である。
【００７６】
サーバ１００５、１００６、仮想サーバ１００７１、１００７２は、受信したｐｉｎｇに対するｅｃｈｏリプライパケットを中継装置１００１に返信する（Ｓ１２０７〜１２１０）。サーバ１００５から中継装置１０１へ送信するｅｃｈｏリプライパケットにはサーバ１００５に割り当てられたＭＡＣアドレスが含まれている。同様にサーバ１００６、仮想サーバ１００７１、１００７２から中継装置１０１へ送信するｅｃｈｏリプライパケットにはそれぞれ、サーバ１００６、仮想サーバ１００７１、１００７２に割り当てられたＭＡＣアドレスが含まれている。中継装置１００１は、サーバ１００５、１００６、仮想サーバ１００７１、１００７２のＭＡＣアドレスをそれぞれのｅｃｈｏリプライパケットから抽出した後、それらｅｃｈｏリプライパケットを破棄する。
【００７７】
中継装置１００１はＡＲＰリクエストパケットの送信元ＭＡＣアドレス「００：２１：３３：４４：５５：６６」と重複するＭＡＣアドレスがネットワークシステム１０００内に存在すると判断した場合、中継装置１００１は、ＡＲＰリクエストパケットを送信元ＭＡＣアドレス「００：２１：３３：４４：５５：６６」を「０１：２１：３３：４４：５５：６６」変換する。そして中継装置１００１はサーバ１００５、１００６、仮想サーバ１００７１、１００７２へ、送信元ＭＡＣアドレスを「０１：２１：３３：４４：５５：６６」として、ＡＲＰリクエストパケットを送信する（Ｓ１２１１〜Ｓ１２１４）。
【００７８】
仮想サーバ１００４２、１００７１、１００７２、サーバ１００５、１００６は、それぞれ自身が有するＩＰアドレスが、ＡＲＰリクエストパケットが含むＩＰアドレス「１９３．１６８．１．１２６」であるか否かを判断する。
【００７９】
仮想サーバ１００７１は、「１９３．１６８．１．１２６」が自身のＩＰアドレスと判断して、ＡＲＰリプライパケットを中継装置１００３、１００２、１００１を介して、仮想サーバ１００４１に返信する（Ｓ１２１５）。
【００８０】
仮想サーバ１００７１が送信するＡＲＰリプライパケットは送信元ＭＡＣアドレス「００：２１：３３：４４：５５：６６」、宛先ＭＡＣアドレス「０１：２１：３３：４４：５５：６６」を含んでいる。中継装置１００１はＡＲＰリプライパケットを受信し、送信元ＭＡＣアドレス「００：２１：３３：４４：５５：６６」を「００：２１：３３：４４：５５：６０」に変換し、宛先ＭＡＣアドレスを「０１：２１：３３：４４：５５：６６」から「００：２１：３３：４４：５５：６６」へ変換する。そして中継装置１００１はＡＲＰリプライパケットを仮想サーバ１００４１に送信する（Ｓ１２１６）。
【００８１】
仮想サーバ１００４１は、仮想サーバ１００７１のＭＡＣアドレス「００：２１：３３：４４：５５：６０」を取得して、ＡＲＰテーブル１６００に仮想サーバ１００７１のＭＡＣアドレス「００：２１：３３：４４：５５：６０」を記録し更新する。仮想サーバ１００４１は、送信元アドレスを「００：２１：３３：４４：５５：６６」とし、宛先ＭＡＣアドレスを「００：２１：３３：４４：５５：６０」としてパケットを仮想サーバ１００７１に送信する（Ｓ１２１７）。中継装置１００１は、送信元アドレスを「００：２１：３３：４４：５５：６６」から「０１：２１：３３：４４：５５：６６」へ変換し、宛先ＭＡＣアドレスを「００：２１：３３：４４：５５：６０」から「００：２１：３３：４４：５５：６６」に変換してパケットを仮想サーバ１００７１に送信する（Ｓ１２１８）。仮想サーバ１００７１は、送信元アドレスを「００：２１：３３：４４：５５：６６」とし、宛先ＭＡＣアドレスを「０１：２１：３３：４４：５５：６６」としてパケットを仮想サーバ１００４１に送信する（Ｓ１２１９）。中継装置１００１は、送信元アドレスを「００：２１：３３：４４：５５：６６」から「００：２１：３３：４４：５５：６０」へ変換し、宛先ＭＡＣアドレスを「００：２１：３３：４４：５５：６６」から「００：２１：３３：４４：５５：６０」に変換してパケットを仮想サーバ１００４１に送信する（Ｓ１２２０）。
【００８２】
図１３は、本実施例に係るネットワークシステム１０００における通信のシーケンス図である。ネットワークシステム１０００内においてＭＡＣアドレスが重複しない場合のシーケンス図であって、中継装置１００１が通信対象となるサーバのＭＡＣアドレスを既に認識している場合のシーケンス図である。具体的には、ＭＡＣアドレステーブルには通信対象のＭＡＣアドレスが記録されている場合である。
【００８３】
本実施例では、仮想サーバ１００４１が仮想サーバ１００７１とパケット通信行う。つまり仮想サーバ１００４１の通信対象のサーバは仮想サーバ１００７１である。
【００８４】
中継装置１００１は通信対象のサーバである仮想サーバ１００７１のＭＡＣアドレスを有しているが、実際に仮想サーバ１００７１が存在し、ＭＡＣアドレスが重複するか否かを調べる。換言すれば、中継装置１００１が有する仮想サーバ１００７１のＭＡＣアドレスがネットワークシステム１０００内に存在するか否かを調べる。
【００８５】
本実施例では、サーバ１００４が接続され、通信を開始しようとするときに、ＡＲＰ処理が行われる。まず仮想サーバ１００４１は、ＡＲＰテーブル１６００を参照する。ＡＲＰテーブル１６００には、仮想サーバ１００７１のＭＡＣアドレスが記録されておらず、仮想サーバ１００４１はＡＲＰリクエストパケットをブロードキャストでネットワークシステム１０００内の仮想サーバ１００４２、１００７１、１００７２、サーバ１００５、１００６に送信する（Ｓ１３０１、Ｓ１３０２）。ＡＲＰリクエストパケットは、通信を行いたい仮想サーバ１００７１のＩＰアドレス「１９３．１６８．１．１２６」、送信元である仮想サーバ１００４１のＩＰアドレス「１９３．１６８．１．１２２」、仮想サーバ１００４１のＭＡＣアドレス「００：２１：３３：４４：５５：６６」の情報を含む。
【００８６】
サーバ１００５、１００６、仮想サーバ１００７１、１００７２は、中継装置１００１を介して、ＡＲＰリクエストパケットを受信する。中継装置１００１は、ＡＲＰリクエストパケットをサーバ１００５、１００６、仮想サーバ１００７１、１００７２へ送信する前に、中継装置１００１は、サーバ１００仮想サーバ１００７１にｐｉｎｇを送信する（Ｓ１３０３）。ｐｉｎｇの送信は、ＡＲＰリクエストパケットに含まれる送信元ＭＡＣアドレス「００：２１：３３：４４：５５：６６」（仮想サーバ１００４１のＭＡＣアドレス）がネットワークシステム１０００内で仮想サーバ１００７１のＭＡＣアドレスと重複するか否かを調べるためのものである。そのためｐｉｎｇは、ユニキャストで仮想サーバ１００７１に送信される。中継装置１００１は、仮想サーバ１００４１よりＡＲＰリクエストパケットを受信するより前に、仮想サーバ１００７１のＭＡＣアドレスとＩＰアドレスを認識している。そして中継装置１００１は仮想サーバ１００４１のＭＡＣアドレス「００：２１：３３：４４：５５：６６」が仮想サーバ１００７１のＭＡＣアドレスと同一であると判断する。そのため中継装置１００１は、仮想サーバ１００７１のＭＡＣアドレスが「００：２１：３３：４４：５５：６６」であるか否かをｐｉｎｇの送信によって調べる。
【００８７】
ｐｉｎｇの送信元ＩＰアドレスは、中継装置１００１のＩＰアドレス「１９３．１６８．１．１２８」であり、宛先ＩＰアドレスは仮想サーバ１００７１のＩＰアドレス「１９３．１６８．１．１２６」、宛先ＭＡＣアドレスは「００：２１：３３：４４：５５：６６」である。中継装置１００１は、所定時間経過した後であってもｐｉｎｇに対するｅｃｈｏリプライパケットを受信しない場合には、再びｐｉｎｇを仮想サーバ１００７１に送信する（Ｓ１３０４）。ここでの仮想サーバ１００７１は、宛先ＩＰアドレス及び宛先ＭＡＣアドレスが一致したときにｅｃｈｏリプライパケットを中継装置１００１に返信する。さらに中継装置１００１がｅｃｈｏリプライパケットを受信しないときは、再びｐｉｎｇを仮想サーバ１００７１に送信する（Ｓ１３０５）。それでもなお中継装置１００１がｅｃｈｏリプライパケットを受信しないときは、仮想サーバ１００７１は、ネットワークシステム１０００外に移動したか若しくは他の物理ポートに移動したと判断する。本実施例では、ｐｉｎｇの送信を３回行っているが、回数はこれに限定されることはない。中継装置１００１がｐｉｎｇを所定回数送信して、ｅｃｈｏリプライパケットを受信しないときは、中継装置１００１はネットワークシステム１０００内に重複するＭＡＣアドレスが存在しないと判断する。
【００８８】
中継装置１００１はサーバ１００５、１００６、仮想サーバ１００７１、１００７２へＡＲＰリクエストパケットを送信元ＭＡＣアドレス「００：２１：３３：４４：５５：６６」を変換せずに送信する（Ｓ１３０６〜Ｓ１３０９）。
【００８９】
仮想サーバ１００４２、１００７２、新たな仮想サーバ１００７１、サーバ１００５、１００６は、それぞれ自身が有するＩＰアドレスが、ＡＲＰリクエストパケットが含むＩＰアドレス「１９３．１６８．１．１２６」であるか否かを判断する。
【００９０】
新たな仮想サーバ１００７１は、「１９３．１６８．１．１２６」が自身のＩＰアドレスと判断して、ＡＲＰリプライパケットを中継装置１００３、１００２、１００１を介して、仮想サーバ１００４１に返信する（Ｓ１３１０）。ここで新たな仮想サーバとは、中継装置１００１が記録していたＩＰアドレス「１９３．１６８．１．１２６」に対応するＭＡＣアドレスを有する仮想サーバのことである。中継装置１００３、１００１は、ＡＲＰリプライパケットに含まれる宛先ＭＡＣアドレス「００：２１：３３：４４：５５：６６」および送信元ＭＡＣアドレス「００：２１：３３：４４：５５：６０」（新たな仮想サーバ１００７１のＭＡＣアドレス）を他のＭＡＣアドレスに変換しない。中継装置１００１、１００３がネットワークシステム１０００内に重複するＭＡＣアドレスが存在しないと判断したためである。中継装置１００１、１００３はＩＰアドレス「１９３．１６８．１．１２６」との対応するＭＡＣアドレスを「００：２１：３３：４４：５５：６０」に更新しＭＡＣアドレステーブル１７００に記録する。ここで図１７は本実施例に係るＭＡＣアドレステーブル１７００である。ＭＡＣアドレステーブルは、変換後アドレスと該ＭＡＣアドレステーブルを有する中継装置に接続されるサーバ、仮想サーバを識別するポート番号の対応関係を示すテーブルである。
【００９１】
仮想サーバ１００４１は、仮想サーバ１００７１のＭＡＣアドレス「００：２１：３３：４４：５５：６０」を取得して、ＡＲＰテーブル１６００に仮想サーバ１００７１のＭＡＣアドレス「００：２１：３３：４４：５５：６０」を記録し更新する。仮想サーバ１００４１は、ＭＡＣアドレス「００：２１：３３：４４：５５：６０」を宛先アドレスとしてパケットを仮想サーバ１００７１に送信して、仮想サーバ１００７１と通信を行う（Ｓ１３１１）。仮想サーバ１００７１もＭＡＣアドレス「００：２１：３３：４４：５５：６６」を宛先アドレスとして仮想サーバ１００４１と通信を行う（Ｓ１３１２）。
【００９２】
図１４は、本実施例に係るネットワークシステム１０００における通信のシーケンス図である。ネットワークシステム１０００内においてＭＡＣアドレスが重複しない場合のシーケンス図であって、中継装置１００１が通信対象となるサーバのＭＡＣアドレスを既に認識している場合のシーケンス図である。具体的には、ＭＡＣアドレステーブル１７００には通信対象のＭＡＣアドレスが記録されている場合である。
【００９３】
本実施例では、仮想サーバ１００４１が仮想サーバ１００７１とパケット通信行う。つまり仮想サーバ１００４１の通信対象のサーバは仮想サーバ１００７１である。中継装置１００１は通信対象のサーバである仮想サーバ１００７１のＭＡＣアドレスを有しているが、実際に仮想サーバ１００７１が存在し、ＭＡＣアドレスが重複するか否かを調べる。
【００９４】
本実施例では、サーバ１００４が接続され、通信を開始しようとするときに、ＡＲＰ処理が行われる。まず仮想サーバ１００４１は、ＡＲＰテーブル１６００を参照する。ＡＲＰテーブル１６００には、仮想サーバ１００７１のＭＡＣアドレスが記録されておらず、仮想サーバ１００４１はＡＲＰリクエストパケットをブロードキャストでネットワークシステム１０００内の仮想サーバ１００４２、１００７１、１００７２、サーバ１００５、１００６に送信する（Ｓ１４０１、Ｓ１４０２）。ＡＲＰリクエストパケットは、通信を行いたい仮想サーバ１００７１のＩＰアドレス「１９３．１６８．１．１２６」、送信元である仮想サーバ１００４１のＩＰアドレス「１９３．１６８．１．１２２」、仮想サーバ１００４１のＭＡＣアドレス「００：２１：３３：４４：５５：６６」の情報を含む。
【００９５】
サーバ１００５、１００６、仮想サーバ１００７１、１００７２は、中継装置１００１を介して、ＡＲＰリクエストパケットを受信する。中継装置１００１は、ＡＲＰリクエストパケットをサーバ１００５、１００６、仮想サーバ１００７１、１００７２へ送信する前に、中継装置１００１は、サーバ１００仮想サーバ１００７１にｐｉｎｇを送信する（Ｓ１４０３）。ｐｉｎｇの送信は、ＡＲＰリクエストパケットに含まれる送信元ＭＡＣアドレス「００：２１：３３：４４：５５：６６」（仮想サーバ１００４１のＭＡＣアドレス）がネットワークシステム１０００内で仮想サーバ１００７１のＭＡＣアドレスと重複するか否かを調べるためのものである。そのためｐｉｎｇは、ユニキャストで仮想サーバ１００７１に送信される。中継装置１００１は、仮想サーバ１００４１よりＡＲＰリクエストパケットを受信するより前に、仮想サーバ１００７１のＭＡＣアドレスとＩＰアドレスを認識している。そして中継装置１００１は仮想サーバ１００４１のＭＡＣアドレス「００：２１：３３：４４：５５：６６」が仮想サーバ１００７１のＭＡＣアドレスと同一であると判断する。そのため中継装置１００１は、仮想サーバ１００７１のＭＡＣアドレスが「００：２１：３３：４４：５５：６６」であるか否かをｐｉｎｇの送信によって調べる。
【００９６】
ｐｉｎｇの送信元ＩＰアドレスは、中継装置１００１のＩＰアドレス「１９３．１６８．１．１２８」であり、宛先ＩＰアドレスは仮想サーバ１００７１のＩＰアドレス「１９３．１６８．１．１２６」、宛先ＭＡＣアドレスは「００：２１：３３：４４：５５：６６」である。中継装置１００１はｐｉｎｇに対するｅｃｈｏリプライパケットを受信した場合には、仮想サーバ１００７１はｅｃｈｏリプライパケットを中継装置１００１に返信する。（Ｓ１４０４）。ここでの仮想サーバ１００７１は、宛先ＩＰアドレス及び宛先ＭＡＣアドレスが一致したときにｅｃｈｏリプライパケットを中継装置１００１に返信する。
【００９７】
中継装置１００１はＡＲＰリクエストパケットの送信元ＭＡＣアドレス「００：２１：３３：４４：５５：６６」と重複するＭＡＣアドレスがネットワークシステム１０００内に存在すると判断した場合、中継装置１００１は、ＡＲＰリクエストパケットを送信元ＭＡＣアドレス「００：２１：３３：４４：５５：６６」を「０１：２１：３３：４４：５５：６６」変換する。
【００９８】
そして中継装置１００１はサーバ１００５、１００６、仮想サーバ１００７１、１００７２へ、送信元ＭＡＣアドレスを「０１：２１：３３：４４：５５：６６」として、ＡＲＰリクエストパケットを送信する（Ｓ１４０５〜Ｓ１４０８）。
【００９９】
仮想サーバ１００４２、１００７１、１００７２、サーバ１００５、１００６は、それぞれ自身が有するＩＰアドレスが、ＡＲＰリクエストパケットが含むＩＰアドレス「１９３．１６８．１．１２６」であるか否かを判断する。
【０１００】
仮想サーバ１００７１は、「１９３．１６８．１．１２６」が自身のＩＰアドレスと判断して、ＡＲＰリプライパケットを中継装置１００３、１００２、１００１を介して、仮想サーバ１００４１に返信する（Ｓ１４０９）。
【０１０１】
仮想サーバ１００７１が送信するＡＲＰリプライパケットは送信元ＭＡＣアドレス「００：２１：３３：４４：５５：６６」、宛先ＭＡＣアドレス「０１：２１：３３：４４：５５：６６」を含んでいる。中継装置１００１はＡＲＰリプライパケットを受信し、送信元ＭＡＣアドレス「００：２１：３３：４４：５５：６６」を「００：２１：３３：４４：５５：６０」に変換し、宛先ＭＡＣアドレスを「０１：２１：３３：４４：５５：６６」から「００：２１：３３：４４：５５：６６」へ変換する。そして中継装置１００１はＡＲＰリプライパケットを仮想サーバ１００４１に送信する（Ｓ１４１０）。
【０１０２】
仮想サーバ１００４１は、仮想サーバ１００７１のＭＡＣアドレス「００：２１：３３：４４：５５：６０」を取得して、ＡＲＰテーブル１６００に仮想サーバ１００７１のＭＡＣアドレス「００：２１：３３：４４：５５：６０」を記録し更新する。仮想サーバ１００４１は、送信元アドレスを「００：２１：３３：４４：５５：６６」とし、宛先ＭＡＣアドレスを「００：２１：３３：４４：５５：６０」としてパケットを仮想サーバ１００７１に送信する（Ｓ１４１１）。中継装置１００１は、送信元アドレスを「００：２１：３３：４４：５５：６６」から「０１：２１：３３：４４：５５：６６」へ変換し、宛先ＭＡＣアドレスを「００：２１：３３：４４：５５：６０」から「００：２１：３３：４４：５５：６６」に変換してパケットを仮想サーバ１００７１に送信する（Ｓ１４１２）。仮想サーバ１００７１は、送信元アドレスを「００：２１：３３：４４：５５：６６」とし、宛先ＭＡＣアドレスを「０１：２１：３３：４４：５５：６６」としてパケットを仮想サーバ１００４１に送信する（Ｓ１４１３）。中継装置１００１は、送信元アドレスを「００：２１：３３：４４：５５：６６」から「００：２１：３３：４４：５５：６０」へ変換し、宛先ＭＡＣアドレスを「００：２１：３３：４４：５５：６６」から「００：２１：３３：４４：５５：６０」に変換してパケットを仮想サーバ１００４１に送信する（Ｓ１４１４）。
【０１０３】
［中継装置１００１のハード構成］
図１５は、本実施例に係る中継装置１００１のハードブロック図である。
【０１０４】
中継装置１００１は、インターフェース（Ｉ／Ｆ）部１５０１、１５０７、ＭＡＣアドレスチェック部１５０２、１５０９、ＭＡＴ処理部１５０３、記憶部１５０４、１５０６、１５０８、１５１０、中継処理部１５０５から構成される。
【０１０５】
中継装置１０１は、インターフェース（Ｉ／Ｆ）部１５０１においてパケットを受信する。Ｉ／Ｆ部１５０１は、仮想サーバ１００４１、１００４２、１００７１、１００７２、サーバ１００５、１００６よりパケットを受信する。Ｉ／Ｆ部１５０１は、受信したパケットをＭＡＣアドレスチェック部１５０２に転送する。
【０１０６】
ＭＡＣアドレスチェック部１５０２は、記憶部１５０８に記憶されているＭＡＣアドレスリストテーブル１９００を参照する。ＭＡＣアドレスリストテーブル１９００には、ＭＡＣアドレスがＭＡＴ対象であるか否かが示されている。図１９はＭＡＣアドレスリストテーブル１９００である。ＭＡＣアドレスリストテーブル１９００は、ＭＡＣアドレス欄１９０１に示されているＭＡＣアドレスと対象フラグ欄１９０２に示されている対象フラグとの対応関係を示している。つまり仮想サーバ１００４１のＭＡＣアドレス「０１：２１：２２：３３：４４：５５」に対応する対象フラグは「１」であり、ＭＡＣアドレス「０１：２１：２２：３３：４４：５５」はＭＡＴ対象である。またサーバ１００６のＭＡＣアドレス「００：２１：２２：３３：４４：６６」に対応する対象フラグは「０」であり、ＭＡＴ対象外である。
【０１０７】
ＭＡＴアドレスチェック部１５０２は、ＭＡＣアドレスリストテーブル１９００においてＭＡＴ対象と判断したＭＡＣアドレスを有するパケットをＭＡＴ処理部１５０３に転送する。ＭＡＴアドレスチェック部１５０２は、ＭＡＣアドレスリストテーブル１９００においてＭＡＴ対象外と判断したＭＡＣアドレスを有するパケットを中継処理部１５０５に転送する。
【０１０８】
またＭＡＴアドレスチェック部１５０２は、ＭＡＣアドレスリストテーブル１９００において中継するパケットのＭＡＣアドレスが記録されていない場合には、パケットを中継処理部１５０５に転送する。そして中継処理部１５０５は記憶部１５０６に記憶されているＭＡＣアドレステーブル１７００を参照する。ＭＡＣアドレステーブル１７００にパケットのＭＡＣアドレスが記録されていない場合には、中継処理部１５０５はネットワーク内のサーバ及び仮想サーバに送信するｐｉｎｇを生成する。そして中継装置１００１はＩ／Ｆ部１５０７を介して、ｐｉｎｇをブロードキャストでネットワーク内のサーバ及び仮想サーバに送信する。各サーバ、仮想サーバは中継装置１００１にＥｃｈｏリプライパケットを返信する。中継処理装置１００１は、Ｉ／Ｆ部１５０７を介して、Ｅｃｈｏリプライパケットを受信する。Ｉ／Ｆ部１５０７はＥｃｈｏリプライパケットを介して中継処理部１５０５へ転送する。中継処理部１５０５はＥｃｈｏリプライパケットをＭＡＣアドレスチェック部１５０２に転送する。ＭＡＣアドレスチェック部１５０２は、Ｅｃｈｏリプライパケットに含まれるＭＡＣアドレスを抽出し、ＭＡＣアドレスリストテーブル１９００に記録する。抽出したＭＡＣアドレスのうち、ネットワークシステム内１０００において重複していないと判断したＭＡＣアドレスに対応するＭＡＴ対象フラグは「０」とし、重複していると判断したＭＡＣアドレスに対応するＭＡＴ対象フラグは「１」とする。中継処理部１５０５は、Ｅｃｈｏリプライパケットに含まれるＭＡＣアドレスをＭＡＣアドレステーブル１７００に記録する。そしてＭＡＣアドレスチェック部１５０２は、Ｅｃｈｏリプライパケットに含まれるＭＡＣアドレスを抽出した後、Ｅｃｈｏリプライパケットを破棄する。
【０１０９】
そして更新したＭＡＣアドレスリストテーブルにおいて、パケットの送信元ＭＡＣアドレスに対応するＭＡＴ対象フラグが「１」のとき、ＭＡＣアドレスチェック部１５０３はパケットをＭＡＴ処理部１５０３に転送する。ＭＡＴ処理部１５０３はＭＡＴテーブル１８００を参照し、パケットのヘッダ部にある送信元ＭＡＣアドレスを変換する。図１８は本実施例に係るＭＡＴテーブルである。
【０１１０】
ＭＡＴテーブル１８００において、変換対象のＭＡＣアドレスに対応するＭＡＣアドレスが記録されている場合、ＭＡＴ処理部１５０３はＭＡＴテーブル１８００より変換するＭＡＣアドレスにパケットの送信元ＭＡＣアドレスを変換する。ＭＡＴテーブル１８００に変換するＭＡＣアドレスが存在しない場合には、ＭＡＴ処理部１５０３は、変換するＭＡＣアドレスを生成する。ＭＡＴ処理部１５０３は送信元アドレスを変換したパケットを中継処理部１５０５に送信し、中継処理部１５０５はパケットをＩ／Ｆ部１５０７を介して宛先ＭＡＣアドレスを有するサーバ又は仮想サーバにパケットを送信する。
【０１１１】
更新したＭＡＣアドレスリストテーブルにおいて、パケットの送信元ＭＡＣアドレスに対応するＭＡＴ対象フラグが「０」のとき、ＭＡＣアドレスチェック部１５０３はパケットを中継処理部１５０５に転送する。継処理部１５０５はパケットをＩ／Ｆ部１５０７を介して宛先ＭＡＣアドレスを有するサーバ又は仮想サーバにパケットを送信する。
【０１１２】
またＭＡＴ処理部１５０３は、ＭＡＣアドレスの変換処理を行うと共に、変換する前のＭＡＣアドレス、変換した後のＭＡＣアドレス、変換処理するＭＡＣアドレスに対応するＩＰアドレスをＭＡＴテーブル１８００に記録する。ここでＭＡＴ処理部１５０３が行うＭＡＴテーブル１８００へのＭＡＣアドレス等の記録処理は、ＭＡＴテーブル１８００に該当するＭＡＣアドレス等が記録されていない場合に行う。
【０１１３】
これにより２回目以降、ＭＡＴ処理部１５０３は、ＭＡＴテーブル１８００を参照して、ＭＡＣアドレスの変換処理を、ＭＡＣアドレスの変換処理を短縮することができ、効率的にＭＡＣアドレスの変換処理を行うことができる。
【０１１４】
同様にしてパケットの宛先ＭＡＣアドレスの重複の有無は、記憶部１５１０に記録されているＭＡＣアドレスリストテーブルを参照して、ＭＡＣアドレスチェック部１５０９が行う。パケットの宛先ＭＡＣアドレス変換は、送信元ＭＡＣアドレスの変換と同様にＭＡＴ処理部１５０３が行う。
【０１１５】
また中継装置１００１、１００２、１００３は、ＳＮＭＰ（Ｓｉｍｐｌｅ  Ｎｅｔｗｏｒｋ  Ｍａｎａｇｅｍｅｎｔ  Ｐｒｏｔｏｃｏｌ）等を利用して、ネットワーク１０００内でＭＡＣアドレスが重複していることを管理サーバ（図示せず）に通知する構成でもよい。
【０１１６】
本願発明におけるアドレスチェック部が行う処理は、本実施例に記載のＭＡＣアドレスチェック部１５０２が実行する処理に含まれるものである。また本願発明におけるアドレス変換部が行う処理は、ＭＡＴ処理部が実行する処理に含まれるものである。本願発明におけるアドレス要求信号を用いて行う処理は、本実施例におけるｐｉｎｇを用いて行う処理に含まれるものである。本願発明における応答情報を用いて行う処理は、本実施例におけるｅｃｈｏリプライパケットを用いて行う処理に含まれるものである。本願発明におけるアドレス変換テーブルを用いて行う処理は、本実施例におけるＭＡＴテーブルを用いて行う処理に含まれるものである。本願発明における変換アドレス指定部が行う処理は、ＭＡＴ機能ｏｎ／ｏｆｆチェック部が行う処理に含まれる処理である。
【０１１７】
また本実施例においては、ＭＡＣアドレスチェック部１５０２、１５０９、ＭＡＴ処理部１５０３、中継処理部１５０５は物理的異なるハード構成であるが、これら各部が行う処理をひとつのハードが機能的に実現する構成であってもよい。また本実施例においては、ＭＡＣアドレステーブル１７００、ＭＡＴテーブル１８００、ＭＡＣアドレスリストテーブル１９００を物理的に異なる記憶部１５０４、１５０６、１５０８、１５１０に記憶しているが、一つのハードにＭＡＣアドレステーブル１７００、ＭＡＴテーブル１８００、ＭＡＣアドレスリストテーブル１９００を記憶する構成でもよい。
【０１１８】
本発明によれば、ＭＡＣアドレス重複の可能性が高い環境においても、通信障害を引き起こすことなく、信頼性の高い通信を実現することが出来る。  
【０１１９】
次に、以上述べた中継装置の実施形態から抽出される技術的思想を請求項の記載形式に準じて付記として列挙する。本発明に係る技術的思想は上位概念から下位概念まで、様々なレベルやバリエーションにより把握できるものであり、以下の付記に本発明が限定されるものではない。
【０１２０】
（付記１）  ネットワークにおける情報処理装置間の通信を中継する中継装置において、
ネットワークに存在する複数の情報処理装置に割り当てられたアドレスの重複をチェックするアドレスチェック部と、
該アドレスチェック部において検出した重複するアドレスを変換し、変換後アドレスを生成するアドレス変換部と、
該変換後アドレスに基づいて、情報処理装置間の通信を中継する中継処理部と、
からなることを特徴とする中継装置。
【０１２１】
（付記２）  該アドレスチェック部は、ネットワークに存在する情報処理装置に対してアドレスを要求するアドレス要求信号を生成することを特徴とする付記１に記載の中継装置。
【０１２２】
（付記３）  該アドレスチェック部は、該アドレス要求信号対する応答情報から該情報処理装置のアドレスを取得することを特徴とする付記２に記載の中継装置。
【０１２３】
（付記４）  該アドレスチェック部は、該応答情報から該情報処理装置のアドレスを取得した後、該応答情報を破棄することを特徴とする付記３に記載の中継装置。
【０１２４】
（付記５）  該応答情報の送信元アドレスは中継装置に割り当てられたＩＰアドレスであることを特徴とする付記４に記載の中継装置。
【０１２５】
（付記６）  該アドレスチェック部が該応答情報から取得するアドレスはＭＡＣアドレスであることを特徴とする付記５に記載の中継装置。
【０１２６】
（付記７）  該アドレスチェック部において検出した重複するアドレスと、該変換後アドレスを対応付けるアドレス変換テーブルを格納する記憶部をさらに有することを特徴とする付記１に記載の中継装置。
【０１２７】
（付記８）  該記憶部は、通信の中継に用いたアドレスと該アドレスが変換対象であるか否かを示す識別情報を記録するアドレスリストテーブルを格納することを特徴とする付記７に記載の中継装置。
【０１２８】
（付記９）  該アドレスチェック部は、該アドレスリストテーブルを参照し、中継する情報処理装置のアドレスが変換対象であるか否かをチェックすることを特徴とする付記８に記載の中継装置。
【０１２９】
（付記１０）  該アドレスリストテーブルにアドレスが記録されていない場合には、ネットワークに存在する情報処理装置に対してアドレスを要求するアドレス要求信号を生成することを特徴とする付記９に記載の中継装置。
【０１３０】
（付記１１）  ネットワークにおける情報処理装置間の通信を中継する中継装置において、
ネットワークに存在する複数の情報処理装置に割り当てられたアドレスのうち、変換するアドレスを指定する変換アドレス指定部と、
該変換アドレス指定部において指定したアドレスを変換して、変換後アドレスを生成するアドレス変換部と、
該変換アドレス指定部において指定したアドレスと、該変換後アドレスを対応付けるアドレス変換テーブルを格納する記憶部と、
該変換後アドレスに基づいて、情報処理装置間の通信を中継する中継処理部と、
からなることを特徴とする中継装置。
【０１３１】
（付記１２）  該記憶部は、該変換後アドレスと該中継装置に接続される情報処理装置を識別するポート番号の対応関係を示すアドレステーブルを格納し、
該中継処理部は、該アドレステーブルを参照して情報処理装置間の通信を中継することを特徴とする付記１１に記載の中継処理装置。
【０１３２】
（付記１３）  該中継処理部は、該アドレステーブルに中継する情報処理装置のアドレスが存在しないと判断した場合には、該アドレス変換部より取得したアドレスを用いて情報処理装置間の通信を中継することを特徴とする付記１２に記載の中継装置。
【０１３３】
（付記１４）  ネットワークにおける情報処理装置間の通信を行う通信方法において、
該ネットワークに存在する複数の情報処理装置に割り当てられたアドレスの重複をチェックするアドレスチェック手順と、
該アドレスチェック手順において検出した重複するアドレスを変換し、変換後アドレスを生成するアドレス変換手順と、
該変換後アドレスに基づいて、情報処理装置間の通信を中継する中継処理手順と、
からなることを特徴とする通信方法。
【０１３４】
（付記１５）  ネットワークにおける情報処理装置間の通信を中継装置に実行させる通信プログラムにおいて、
該ネットワークに存在する複数の情報処理装置に割り当てられたアドレスの重複をチェックするアドレスチェックステップと、
該アドレスチェックステップにおいて検出した重複するアドレスを変換し、変換後アドレスを生成するアドレス変換ステップと、
該変換後アドレスに基づいて、情報処理装置間の通信を中継する中継処理ステップと、
からなることを特徴とする通信プログラム。
【図面の簡単な説明】
【０１３５】
【図１】本実施例に係るネットワークシステム１００の概念図である。
【図２】本実施例に係るネットワークシステム１００における通信のシーケンス図である。
【図３】本実施例に係るネットワークシステム１００における通信のシーケンス図である。
【図４】本実施例に係る中継装置１０１のハードブロック図である。
【図５】ＭＡＴ機能ｏｎ／ｏｆｆチェック部４０２におけるＭＡＴ機能ｏｎ／ｏｆｆ判断フローチャートである。
【図６】ＭＡＴ機能ｏｎ／ｏｆｆチェック部４０７におけるＭＡＴ機能ｏｎ／ｏｆｆの判断フローチャートである。
【図７】本実施例に係るＡＲＰテーブル７００である。
【図８】本実施例に係るＭＡＴテーブル８００である。
【図９】本実施例に係るＭＡＣアドレステーブル９００である。
【図１０】本実施例に係るネットワークシステム１０００の概念図である。
【図１１】本実施例に係るネットワークシステム１０００における通信のシーケンス図である。
【図１２】本実施例に係るネットワークシステム１０００における通信のシーケンス図である。
【図１３】本実施例に係るネットワークシステム１０００における通信のシーケンス図である。
【図１４】本実施例に係るネットワークシステム１０００における通信のシーケンス図である。
【図１５】本実施例に係る中継装置１００１のハードブロック図である。
【図１６】本実施例に係るＡＲＰテーブル１６００である。
【図１７】本実施例に係るＭＡＣアドレステーブル１７００である。
【図１８】本実施例に係るＭＡＴテーブル１８００である。
【図１９】本実施例に係るＭＡＣアドレスリストテーブル１９００である。
【符号の説明】
【０１３６】
１００…ネットワーク
１０１…中継装置
１０２…中継装置
１０３…中継装置
１０４…サーバ
１０４１…仮想サーバ
１０４２…仮想サーバ
１０５…サーバ
１０６…サーバ
１０７…サーバ
１０７１…仮想サーバ
１０７２…仮想サーバ
４０１…Ｉ／Ｆ部
４０２…ＭＡＴ機能ｏｎ／ｏｆｆチェック部
４０３…ＭＡＴ処理部
４０４…ＭＡＴテーブル
４０５…中継処理部
４０６…ＭＡＣアドレステーブル
４０７…ＭＡＴ機能ｏｎ／ｏｆｆチェック部
４０８…Ｉ／Ｆ部
１５０１…Ｉ／Ｆ部
１５０２…ＭＡＣアドレスチェック部
１５０３…ＭＡＴ処理部
１５０４…記憶部
１５０５…中継処理部
１５０６…記憶部
１５０７…Ｉ／Ｆ部
１５０８…記憶部
１５０９…ＭＡＣアドレスチェック部
１５１０…記憶部
【図１】
2008154066.tif 000003
【図２】
2008154066.tif 000004
【図３】
2008154066.tif 000005
【図４】
2008154066.tif 000006
【図５】
2008154066.tif 000007
【図６】
2008154066.tif 000008
【図７】
2008154066.tif 000009
【図８】
2008154066.tif 000010
【図９】
2008154066.tif 000011
【図１０】
2008154066.tif 000012
【図１１】
2008154066.tif 000013
【図１２】
2008154066.tif 000014
【図１３】
2008154066.tif 000015
【図１４】
2008154066.tif 000016
【図１５】
2008154066.tif 000017
【図１６】
2008154066.tif 000018
【図１７】
2008154066.tif 000019
【図１８】
2008154066.tif 000020
【図１９】
2008154066.tif 000021