(57)【特許請求の範囲】
【請求項１】
リダイレクト部と、ｍ個（ｍ≧１）のスイッチ部とを含むネットワーク中継装置であって、
前記リダイレクト部は、
ｎ個（ｎ＞１）の通信ポートと、
前記通信ポートのいずれかから、伝送の対象となるデータ本体であって、当該データ本体の宛先を特定する情報を含むデータ本体が含まれたデータを受信する受信手段であって、前記データには、前記スイッチ部のいずれかを選択するスイッチ論理識別情報に係る情報を含む、受信手段と、
前記受信したデータに含まれる情報に係る、前記スイッチ部を選択するスイッチ論理識別情報に基づいて、出力先となるスイッチ部を選択し、当該選択したスイッチ部に対して、前記データ本体を含んだデータを転送する転送手段と、
前記データを転送したスイッチ部から、出力先となる前記通信ポートを特定する情報と前記データ本体とを含んだデータを受け入れて、前記情報で特定される出力先となる通信ポートを介して、前記データ本体を含んだデータを送出する送出手段と、
を含み、
前記スイッチ部の各々は、指定された処理内容を表す指示情報を保持する処理内容保持手段と、
前記保持する指示情報を参照し、前記リダイレクト部から転送されるデータに係る処理を実行する処理手段と、
前記処理の実行の結果に基づき、前記リダイレクト部から転送されるデータに含まれたデータ本体を出力する場合には、当該データ本体と出力先となる通信ポートを特定する情報とを含むデータを、前記リダイレクト部へ転送する手段と、
を含み、
前記出力先となる通信ポートを、前記伝送の対象となるデータ本体に含まれる、宛先を特定する情報に基づいて決定するスイッチ部である、ネットワーク中継装置。
【請求項２】
請求項１記載のネットワーク中継装置であって、
前記リダイレクト部の転送手段は、前記選択したスイッチ部に対して、データを受信した通信ポートを特定するポート識別情報と、データ本体とを含んだデータを転送し、
前記スイッチ部の処理内容保持手段は、ポート識別情報、または前記データ本体の少なくとも一部に関連して利用者から指定された、実行するべき処理の内容を表す指示情報を保持し、
前記処理手段は、前記指示情報を参照して、前記リダイレクト部から転送されるデータに含まれる、ポート識別情報、または前記データ本体の少なくとも一部に関連する処理を実行するネットワーク中継装置。
【請求項３】
請求項１または２記載のネットワーク中継装置であって、
前記受信手段は、前記スイッチ論理識別情報に係る情報と、データ本体と、ナンスとを含むデータを暗号化した暗号化データを受信し、
前記転送手段は、前記暗号化データを復号して、スイッチ論理識別情報に係る情報と、データ本体と、ナンスとを取り出し、前記選択したスイッチ部に対しては、ナンスを除く、データ本体を含んだデータを転送するネットワーク中継装置。
【請求項４】
請求項１から３のいずれか一項に記載のネットワーク中継装置であって、
予め定めたデータのパターンと、スイッチ論理識別情報とを関連付けて保持しており、
前記受信手段は、前記スイッチ論理識別情報に係る情報として、前記データのパターンを含むデータを受信し、
前記転送手段は、当該受信したデータに含まれる前記データのパターンに関連付けて、前記保持されているスイッチ論理識別情報に基づいて、出力先となるスイッチ部を選択する、ネットワーク中継装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークスイッチ等のネットワーク中継装置、及びそのプログラムに関する。
【背景技術】
【０００２】
近年のネットワーク技術の普及・発展に伴い、より高速な通信を行うことができ、また新しいプロトコル等にも柔軟に対応可能なスイッチ装置等が求められている。
【０００３】
このようなスイッチとして、例えば、非特許文献１にあるようなオープンフローネットワークなどが考えられている。
【０００４】
図１１にこのオープンフローネットワークの概要を示す。この例に示すネットワークでは、スイッチ１０′と、制御装置３０′と、複数の端末装置４０′とが含まれる。スイッチ１０′は、複数のネットワークポートを有し、端末装置４０′のそれぞれは、スイッチ１０′のネットワークポートのいずれかに接続される。またスイッチ１０′と、制御装置３０′とはネットワーク（インターネットなど）を介して相互に通信可能に接続されている。
【０００５】
端末装置４０′が起動すると、端末装置４０′はスイッチ１０′に対してデータの送信を開始する。このデータは、フレームと呼ばれる単位に分割され、スイッチ１０′において、その最初のフレーム（端末装置４０′から受信した最初のフレーム）を制御装置３０′に送信する。ここでスイッチ１０′と制御装置３０′との間の通信は、ＳＳＬ等で暗号化される。
【０００６】
制御装置３０′は、スイッチ１０′からフレームが受信されると、予め定めた判断の基準に従い、当該フレームを送信した端末装置４０′の通信に関連して、新たな処理が必要か否かを判断する。そして新たな処理が必要と判断したときには、当該判断に従って、必要となされる処理の内容を規定する情報をスイッチ１０′に対して送信する。スイッチ１０′は、この情報を受信して記憶し、以下、この情報で規定される処理を実行する。
【０００７】
この情報で規定される処理の内容は、ルールとアクションとを含む。ここでルールとは対象が何かを表す情報であり、アクションとは対象に関する処理の具体的内容を示すものである。一例として、ルールを特定のポート番号、アクションをマルチキャストとする処理の内容が規定されている場合、この規定に従って動作するスイッチ１０′は、当該特定のポート番号のポートを介して端末装置４０′から受信したデータを、他のポートを介してマルチキャストする。
【０００８】
この例によると、利用者が予め定めた条件（例えば、特定のプロトコルの通信であるとの条件）に従い、端末装置４０′とスイッチ１０′との間で最初に送受信されるフレームが当該条件を満足し、新たな処理を要する通信が開始されたと判断される場合（例えば、特定のプロトコルの通信が開始されたと判断される場合）に、制御装置３０′が当該新たな処理を規定する情報（上記特定のプロトコルに係る処理を規定する情報等）を送信し、以下スイッチ１０′が当該情報に基づく処理を行うようになる。このため、新規なプロトコルにも対応可能となる。
【先行技術文献】
【非特許文献】
【０００９】
【非特許文献１】inet：Dr.MarcusBrunner、"Programmable Flow-based Networking with OpenFlow"、[online]、平成10年4月1日、特許学会、[平成２３年１０月２日検索]、インターネット<URL: http://docbox.etsi.org/Workshop/2010/201003_FNTWORKSHOP/7_ARCHITECTURE/BRUNNER_OpenFlow.pdf>
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、上記従来のスイッチでは、制御装置との通信が遮断された状態では新たに起動された端末装置との間の通信を開始できない。またオープンフロー方式によれば、複数の利用者の各々は処理を追加することが可能であるが、複数の利用者が別々に、個々に考えた処理を施して試験をすることまではできず、柔軟な運用ができない。
【００１１】
本発明は上記実情に鑑みて為されたもので、柔軟な運用を可能とするネットワーク中継装置を提供することをその目的の一つとする。
【課題を解決するための手段】
【００１２】
上記従来例の問題点を解決する本発明は、リダイレクト部と、ｍ個（ｍ≧１）のスイッチ部とを含むネットワーク中継装置であって、前記リダイレクト部は、ｎ個（ｎ＞１）の通信ポートと、前記通信ポートのいずれかから、前記スイッチ部のいずれかを選択する情報と、伝送の対象となるデータ本体を含んだデータを受信する受信手段と、前記受信したデータに含まれる前記スイッチ部を選択する情報に基づいて、出力先となるスイッチ部を選択し、当該選択したスイッチ部に対して、前記データ本体を含んだデータを転送する転送手段と、前記データを転送したスイッチ部から、出力先となる前記通信ポートを特定する情報と前記データ本体を含んだデータを受け入れて、前記情報で特定される出力先となる通信ポートを介して、前記データ本体を含んだデータを送出する送出手段と、を含み、前記スイッチ部の各々は、指定された処理内容を表す指示情報を保持する処理内容保持手段と、前記保持する指示情報を参照し、前記リダイレクト部から転送されるデータに係る処理を実行する処理手段と、前記処理の実行の結果に基づき、前記リダイレクト部から転送されるデータに含まれたデータ本体を出力する場合には、当該データ本体と出力先となる通信ポートを特定する情報とを含むデータを、前記リダイレクト部へ転送する手段と、を含むこととしたものである。
【００１３】
またここで、前記リダイレクト部の転送手段は、前記選択したスイッチ部に対して、データを受信した通信ポートを特定するポート識別情報と、データ本体とを含んだデータを転送し、前記スイッチ部の処理内容保持手段は、ポート識別情報、または前記データ本体の少なくとも一部に関連して利用者から指定された、実行するべき処理の内容を表す指示情報を保持し、前記処理手段は、前記指示情報を参照して、前記リダイレクト部から転送されるデータに含まれる、ポート識別情報、または前記データ本体の少なくとも一部に関連する処理を実行することとしてもよい。
【００１４】
また本発明の一態様に係るプログラムは、少なくともｎ個（ｎ＞１）のポートを有したスイッチ装置に接続されるコンピュータを、指定された、実行するべき処理の内容を表す指示情報を複数保持する処理内容保持手段と、前記ポートのいずれかを介して受信したデータであって、前記複数の指示情報のうち、使用する指示情報を特定する情報と、伝送の対象となるデータ本体とを含んだデータを受け入れる手段と、当該受け入れたデータに含まれる情報により特定される指示情報を参照し、前記ポートのいずれかを介して受信したデータに係る処理を実行する処理手段と、前記処理の実行の結果に基づき、前記データに含まれたデータ本体を出力する場合には、当該データ本体と出力先となるポートを特定する情報とを含むデータを出力する手段と、として機能させることとしたものである。
【発明の効果】
【００１５】
本発明によると、複数のスイッチ部を設定して、適宜選択させることができ、柔軟な運用が可能となる。
【図面の簡単な説明】
【００１６】
【図１】本発明の実施の形態に係るネットワーク中継装置の構成例を表すブロック図である。
【図２】本発明の実施の形態に係るネットワーク中継装置のリダイレクト部の構成例を表すブロック図である。
【図３】本発明の実施の形態に係るネットワーク中継装置が受け入れるデータの例を表す説明図である。
【図４】本発明の実施の形態に係るネットワーク中継装置が処理するデータの例を表す説明図である。
【図５】本発明の実施の形態に係るネットワーク中継装置のスイッチ部の構成例を表すブロック図である。
【図６】本発明の実施の形態に係るネットワーク中継装置のスイッチ部における指示情報の例を表す説明図である。
【図７】本発明の実施の形態に係るネットワーク中継装置の動作例を表すフローチャート図である。
【図８】本発明の実施の形態に係るネットワーク中継装置が内部で利用するデータの例を表す説明図である。
【図９】本発明の実施の形態に係るネットワーク中継装置の別の構成例を表すブロック図である。
【図１０】本発明の実施の形態に係るネットワーク中継装置が受け入れるデータの別の例を表す説明図である。
【図１１】従来のスイッチの例を表す説明図である。
【図１２】本発明の別の態様のある実施の形態に係るネットワーク中継装置のリダイレクト部の構成例を表すブロック図である。
【図１３】本発明のまた別の態様のある端末装置の例を表す構成ブロック図である。
【発明を実施するための形態】
【００１７】
本発明の実施の形態について図面を参照しながら説明する。本発明の実施の形態に係るネットワーク中継装置１０の一例は、単数または複数のコンピュータ装置によって実現される。具体的に本実施の形態の一例に係るネットワーク中継装置１０は、図１に例示するように、複数のポート１１と、制御部１２と、記憶部１３と、通信部１４とを含んで構成される。
【００１８】
ポート１１は、本発明の通信ポートの一例であり、例えばパーソナルコンピュータ等の端末装置４０に接続され、接続先から受信されるデータを制御部１２に出力する。またこのポート１１は、制御部１２から入力されるデータを、接続先へ送出する。
【００１９】
制御部１２は、ＣＰＵ等のプログラム制御デバイスを含んで構成され、記憶部１３に格納されたプログラムに従って動作する。本実施の形態の一例では、この制御部１２は、機能的にリダイレクト部１と、少なくとも一つ（ｍ個）のスイッチ部２とを含み、それぞれとしての処理を実行する。この制御部１２の詳しい処理の内容は後に述べる。
【００２０】
記憶部１３は、メモリデバイス等であり、制御部１２によって実行されるプログラムを保持する。このプログラムは、コンピュータ可読な記録媒体に格納されて提供され、この記憶部１３に複写して格納されたものであってもよい。また、この記憶部１３に保持されるプログラムのうち、少なくともスイッチ部２としての処理に係るプログラムは、例えば通信部１４を介して受信される指示に基づいて新規に作成可能、あるいは書き換え可能となっていてもよい。
【００２１】
具体的にスイッチ部２としての処理に係るプログラムは、本実施の形態では、制御部１２によって実行されることにより、スイッチ部２を実現するプログラムとなる。またこのスイッチ部２としてのプログラムには、それぞれ固有のスイッチ論理識別情報が関連付けられる。またこのスイッチ部２としてのプログラムには、それぞれスイッチング動作の内容を表す指示情報が含まれる。さらにこのプログラムには、作成者である利用者を特定する情報と、権限の情報（作成者以外の利用者による閲覧可否、書換可否）が関連付けられて記録されてもよい。
【００２２】
制御部１２は、利用者を認証して、記憶部１３へのプログラムの格納、記憶部１３内のプログラムの閲覧、または書換えの指示を待機する。ここで記憶部１３に新たなスイッチ部２としてのプログラムの格納の要求を受けると、制御部１２は、要求に係るプログラムを受け入れて、認証した利用者を作成者として特定する情報として関連付け、記憶部１３に格納する。また利用者により指定された権限の情報をこのプログラムに関連付けて記録する。一例として作成者である利用者は、他者に見られたり書込まれたくない場合には閲覧、書換えの双方を禁止するよう設定する。また作成者である利用者が、他者に見られてもよいが書換えられたくない場合は、閲覧を許可するとともに、書換えを禁止する設定を行う。
【００２３】
また、本実施の形態の別の態様では、制御部１２は、仮想マシンやリソースコンテナ等、互いに独立したプログラム実行環境を提供し、各プログラム実行環境において、各プログラム作成者から提供されたスイッチ部２としてのプログラムを動作させてもよい。この場合、各プログラム実行環境には、それぞれで認証した利用者のみがプログラムを格納し、動作させることが可能となっていてもよい。これによっても、他者から閲覧等されない状態で、各プログラム作成者がスイッチ部２としてのプログラムを試験的に実行できる。
【００２４】
さらに、この記憶部１３は、制御部１２のワークメモリとしても動作する。また通信部１４は、一例としては、ＵＳＢ等のシリアル通信装置等であり、受信した情報を制御部１２に出力し、また、制御部１２から入力される指示に従って、情報を送出する。
【００２５】
次に本実施の形態の一例に係る制御部１２の動作について説明する。本実施の形態のある例では、既に述べたように、リダイレクト部１と、少なくとも一つ（ｍ個）のスイッチ部２とを機能的に含む。この制御部１２は、Linux（登録商標）等のオペレーティングシステムとしての処理を実行しており、リダイレクト部１として機能させるプログラムや、スイッチ部２として機能させるプログラムは、いずれもこのオペレーティングシステム上のプログラムとして実行される。一例として、本実施の形態では、複数の仮想マシンを並列的に実行する環境が導入され、各仮想マシンにおいてもLinux（登録商標）等のオペレーティングシステムが、ゲストＯＳとして実行されているものとする。そして、各ゲストＯＳ上でそれぞれ少なくとも一つのスイッチ部２としてのプログラムが実行される。
【００２６】
リダイレクト部１は、図２に例示するように、受信部２１、転送部２２、及び送出部２３を含む。ここで受信部２１は、端末装置４０に接続されたポート１１を介して、その接続先である端末装置４０からデータを受信する。ここで端末装置４０から受信されるデータはパケットであり、スイッチ部２を選択するスイッチ論理識別情報（Ｐ）と、伝送の対象となるデータ本体（Ｂ）とが含まれる（図３（ａ）〜（ｃ））。
【００２７】
またデータ本体（Ｂ）には、ヘッダ（Ｈ）が含まれ、このヘッダ（Ｈ）には例えば伝送元を特定する情報（Ｑ）及び伝送先を特定する情報（Ｒ）が含まれる。
【００２８】
なお、スイッチ論理識別情報（Ｐ）は、データ本体（Ｂ）に前置されて（つまりデータ本体（Ｂ）に対するヘッダとして配されて）もよいし（図３（ａ））、データ本体（Ｂ）に後置されて（つまりデータ本体（Ｂ）に対するトレイラとして配されて）もよい（図３（ｂ））。さらに、データ本体（Ｂ）を第１の部分（Ｂ１）と、第２の部分（Ｂ２）との２つに分割し、これらの間に配されてもよい（図３（ｃ））。また、データ本体（Ｂ）に対して、いわゆる電子透し技術を用いて、スイッチ論理識別情報を合成してもよい。
【００２９】
ここでは伝送元及び伝送先を特定する情報は、例えばＭＡＣアドレスでよい。またＣＣＮ（Context Centric Network）を実現するプロトコルであれば、ヘッダ（Ｈ）は単なるデータ本体の識別情報であってもよい。
【００３０】
転送部２２は、受信部２１が受信したデータから、スイッチ論理識別情報を取り出す。この転送部２２は、取り出したスイッチ論理識別情報によって特定されるスイッチ部２を選択する。つまり、取り出したスイッチ論理識別情報に関連付けられたスイッチ部２としてのプログラムを記憶部１３から読み出して、制御部１２に実行開始（起動）させる。そして転送部２２は、受信部２１が受信したデータのうちから、スイッチ論理識別情報を除き、少なくともデータ本体を取り出す。
【００３１】
なお、データ本体が２つに分割されている場合（図３（ｃ））、転送部２２はこれらを連接して、一体のデータ本体とする。また転送部２２は、データ本体に対して、スイッチ論理識別情報がいわゆる電子透し技術により合成されている場合は、当該合成されたスイッチ論理識別情報を抽出するとともに、スイッチ論理識別情報を合成する前のデータ本体の情報を抽出して、スイッチ論理識別情報を除いたデータ本体を取り出すこととする。またこの転送部２２は、受信部２１がデータを受信したポート１１を識別する、ポート識別情報（ポート１１に予め設定されたポート番号等）を得る。そして転送部２２は、このポート識別情報と、受信部２１が受信したデータから取り出したデータ本体とを含むデータを、選択したスイッチ部２に転送する。つまり、実行を開始したスイッチ部２としてのプログラムの処理（プロセス）に、データを受け渡す。
【００３２】
なお、この転送部２２は、受信部２１が受信したデータがブロードキャストである場合は、上記の処理に代えて、当該ブロードキャストのデータを受信したポート１１を識別するポート識別情報（ポート１１に予め設定されたポート番号等）を得て、このポート識別情報とともに、受信したデータを、各スイッチ部２に対して転送してもよい。この場合は、記憶部１３に格納されているスイッチ部２としてのプログラムのそれぞれを起動し、受信したデータをそれぞれのプログラムの処理（プロセス）に受け渡す。
【００３３】
送出部２３は、転送部２２がデータを転送したスイッチ部２から、図４に例示するように、出力先となるポート１１を特定する情報（Ｄ）とデータ本体（Ｂ）とを含んだデータを受け入れる。このデータ本体（Ｂ）には、ヘッダ（Ｈ）が含まれる。送出部２３は、当該受け入れたデータに含まれるポート１１を特定する情報を取り除き、データ本体を取り出す。そして送出部２３は、受け入れたデータに含まれる情報で特定される出力先となるポート１１を介して、当該取り出したデータ本体を含んだデータを送出する。
【００３４】
スイッチ部２は、機能的に、図５に例示するように、処理内容保持部２５、仮想パッチパネル部２６、及び処理部２７を含んで構成される。ここで処理内容保持部２５は、例えば記憶部１３の一部を用いて実現される。本実施の形態の一例では、この処理内容を表す情報は、記憶部１３に格納された、対応するスイッチ部２としてのプログラムに含まれる指示情報である。この指示情報は例えば、図６に例示するように、ポート識別情報、またはヘッダＨ等、データ本体の少なくとも一部に含まれる情報（伝送元を特定する情報や伝送先を特定する情報等）を用いた条件（Ｃ）と、行うべき処理を表す情報（Ｓ）とを関連付けた情報として規定される。このような指示情報のある例は、オープンフロー（OpenFlow）であり、本実施の形態のスイッチ部２は、オープンフロースイッチとして機能しても構わない。また、この指示情報は、このように条件と処理とを関連付けたテーブル情報ではなく、制御部１２によって実行される一連の命令列で記述されてもよい。この場合、命令列の記述次第により、テーブル情報で設定可能なswitch-case型の論理に限られない種々の処理が可能となる。
【００３５】
仮想パッチパネル部２６は、リダイレクト部１が転送したデータを受け入れて、処理部２７に出力する。また、この仮想パッチパネル部２６は、処理部２７からデータが入力されると、当該入力されたデータをリダイレクト部１へ転送する。
【００３６】
本実施の形態では、処理部２７は、リダイレクト部１が備えるｎ個のポート１１にそれぞれ対応して設けられたｎ個の仮想的なポートを備える。仮想パッチパネル部２６は、リダイレクト部１が転送したデータに含まれるポート識別情報を参照し、このポート識別情報で識別されるポート１１に対応する、処理部２７の仮想的なポートに対して、当該リダイレクト部１が転送したデータを転送する。なお、仮想パッチパネル部２６は、処理部２７に転送するデータから、ポート識別情報を除去しておいてもよい（処理部２７のプログラムと、従来のスイッチにおけるプログラムとの互換性を考慮したものである）。
【００３７】
また仮想パッチパネル部２６は、処理部２７の仮想的なポートのいずれかからデータが入力されると、当該入力された仮想的なポートに対応するポート１１を特定する情報（ポート識別情報）を、入力されたデータに付加してリダイレクト部１に転送する。
【００３８】
処理部２７は、仮想パッチパネル部２６から仮想的なポートのいずれかを介してデータの転送を受け入れる。この処理部２７の具体的な処理は、例えば従来のネットワーク中継装置におけるＬ２スイッチにおける処理に相当するものであってもよい。すなわち処理部２７は、仮想的なポートを介して受け入れたデータから、伝送元または伝送先を特定する情報（ＭＡＣアドレス）を含んだヘッダＨを取り出す。そして処理部２７は、予め定められて処理内容保持部２５に保持されている、行うべき処理を表す情報を取得する。
【００３９】
この処理の一例は、データを受信した仮想的なポートを表す情報（ポート識別情報に相当）、または、取り出したヘッダＨに含まれる情報の少なくとも一つ（伝送元を特定する情報や伝送先を特定する情報）に関連した処理である。
【００４０】
本実施の形態のある例では、処理部２７は、当該取得した情報が表す処理として、リダイレクト部１の特定のポート１１を介してデータを送出するユニキャスト、リダイレクト部１の複数のポート１１を介してデータを送出するマルチキャスト、データの廃棄、データの暗号化、ヘッダ情報等を付加するカプセル化、データのパケット数や容量等の集計、その他ＱｏＳ制御やトンネル経由での送信制御などの処理を実行する。
【００４１】
処理部２７は、取得した情報が表す処理を実行した結果、リダイレクト部１のいずれかのポート１１を出力先として、当該出力先となったポート１１を介してデータを出力させることとなった場合は、当該出力先のポート１１に対応する仮想的なポートを介して、データ本体を含むデータを仮想パッチパネル部２６に出力する。
【００４２】
本実施の形態のネットワーク中継装置１０は以上の構成を有してなり、次の図７に例示するように動作する。以下の説明では、各スイッチ部２の処理内容保持部２５に予め、互いに異なる指示情報が格納されているものとする。
【００４３】
またここではデータに含まれる、スイッチ部２を選択するスイッチ論理識別情報が、仮想ＬＡＮ（ＶＬＡＮ）を識別する情報（スライス識別子）であるものとし、リダイレクト部１においては各スライス識別子の値に関連付けて転送先となるスイッチ部２を特定するスイッチ論理識別情報が関連付けられているものとする。さらに、各端末装置４０ａ，４０ｂ…は、それぞれ、リダイレクト部１のポート１１ａ，１１ｂ…に接続されているものとする。
【００４４】
利用者は、自らが利用したいスイッチングの処理を実行するスイッチ部２を選択するためのスイッチ論理識別情報（スライス識別子）を、送信するデータに含めて、端末装置４０から送信する（Ｓ１）。このためには、例えば端末装置４０に、図３に例示したパケットを生成するよう、予め通信用のプログラムを生成してインストールしておく。
【００４５】
例えば端末装置４０ａが本実施の形態のネットワーク中継装置１０に対して送出するデータは、当該端末装置４０ａの利用者の指示したスイッチ部２を選択するスイッチ論理識別情報を含む、図３に例示したようなパケット（図７のＸ）となる。
【００４６】
ネットワーク中継装置１０のリダイレクト部１の受信部２１は、ポート１１ａを介して端末装置４０ａからこのデータを受け入れる。リダイレクト部１の転送部２２は、受信部２１が受信したデータから、スイッチ部２を選択するスイッチ論理識別情報を取り出す（Ｓ２）。端末装置４０ａが従来のＭＡＣアドレスを利用しているものとし、データにはスイッチ部２ａを選択するスイッチ論理識別情報が含まれているものとする。転送部２２は、このスイッチ部２ａを選択するスイッチ論理識別情報を取り除き、受信したデータの残り（データ本体）を取り出し、ポート１１ａを特定する情報（ポート識別情報：Ｓ）を付加して転送用のデータを生成する（図８）。そして転送部２２は、選択されたスイッチ部２ａに、この生成した転送用のデータを転送する（Ｓ３）。ここでポート識別情報は、ポート１１の番号（ＶＮＩＣタグ）でよい。
【００４７】
スイッチ部２ａの仮想パッチパネル部２６は、リダイレクト部１が転送したデータを受け入れ、ポート識別情報を取り除くとともに、当該取り除いたポート識別情報に対応する処理部２７の仮想的なポートに、ポート識別情報を取り除いた後のデータ本体を出力する（Ｓ４）。処理部２７は、いずれかの仮想的なポートを介して、仮想パッチパネル部２６から受け入れたデータ本体に含まれる、ヘッダＨ（伝送元や伝送先を特定する情報等）を取り出す。そして処理部２７は、受信した仮想的なポートを特定する情報（仮想的なポートの番号であり、ポート識別情報そのもの）と、取り出したヘッダＨに含まれる情報とを参照して、処理内容保持部２５に保持されている条件のうち、参照した情報が満足する条件があるか否かを調べ、満足する条件があれば、当該満足する条件を含む指示情報を取得する（Ｓ５）。そして処理部２７は、当該取得した指示情報に含まれる情報で特定される処理を実行する（Ｓ６）。既に述べたように、処理内容保持部２５は、こうした条件と処理とを関連付けた指示情報に限られず、一連の処理命令列として記述されたものであってもよい。
【００４８】
一例としてここでは、ポート１１ａに係るポート識別情報から受信したデータについては、リダイレクト部１の複数のポート１１を介してマルチキャストする処理が実行されるとする。この例の場合、処理部２７は、リダイレクト部１の各ポート１１ａ，ｂ，…に対応する各仮想的なポートからデータを出力することとなる（Ｓ７）。
【００４９】
仮想パッチパネル部２６は、処理部２７の仮想的なポートを介してデータが入力されると、当該データが入力された仮想的なポートに対応するポート識別情報を、入力されたデータに付加して、当該付加後のデータをリダイレクト部１へ転送する（Ｓ８）。このデータは図８に例示したものと同様の構成を備えるものとなる。ここでの例のように、マルチキャストが行われる場合、ポート１１の各々に対応するポート識別情報が付加された複数のデータが順次、リダイレクト部１へと転送されることとなる。
【００５０】
リダイレクト部１は、スイッチ部２ａから、出力先となるポート１１を特定する情報としてポート識別情報を含んだデータを受け入れる。このリダイレクト部１の送出部２３は、当該受け入れたデータに含まれるデータ本体を取り出し、これに処理Ｓ３で取り除いた、スイッチ部２ａを選択する情報を再度含めて図３に例示したパケットを再構成する。そして、送出部２３は、このパケットのデータを、スイッチ部２ａより指定されたポート１１（ここではマルチキャストなので、すべてのポート１１）を介して送出する（Ｓ９）。
【００５１】
またスイッチ部２の処理部２７は、一般的なスイッチと同様に、端末装置４０の起動時に、当該端末装置４０のインタフェースのＭＡＣアドレスを含んだデータを、当該端末装置４０が接続されているポート１１に対応する仮想的なポートを介して受信し、当該仮想的なポートを特定する情報（ポート識別情報）と、受信したデータに含まれるＭＡＣアドレスとを対応付けてアドレステーブルとして記憶しておく。
【００５２】
そして処理部２７は、指示情報に基づく処理により、データを、当該データに含まれる情報で特定される伝送先に送出するべきこととなった場合は、当該伝送先を特定する情報（ＭＡＣアドレス）に対応するポート識別情報をアドレステーブルから得て、当該ポート識別情報で表されるポート１１に対応する仮想的なポートを介してデータを送出する。
【００５３】
また本実施の形態の別の例によれば、例えばスイッチ部２ａでは従来のＭＡＣアドレス（４８ビット長）に基づくレイヤー２スイッチング（Ｌ２スイッチ）の処理を行っているものとし、スイッチ部２ｂでは４８ビットを超えるビット長の拡張ＭＡＣアドレスに基づくレイヤー２スイッチング（Ｌ２スイッチ）の処理を行っているものとする。
【００５４】
この場合、データの送受信に従来のＭＡＣアドレスを利用する端末装置４０は、スイッチ部２ａを選択するスイッチ論理識別情報を付してデータ本体を送出し、データの送受信に拡張ＭＡＣアドレスを利用する端末装置４０は、スイッチ部２ｂを選択するスイッチ論理識別情報を付してデータ本体を送出すればよい。
【００５５】
さらに本実施の形態のまた別の例によれば、例えばスイッチ部２ａではレイヤー２スイッチング（Ｌ２スイッチ）の処理を行っているものとし、スイッチ部２ｂではＣＣＮ（Content Centric Network：V. Jacobson, D. K. Smetters, J. D. Thornton, M. F. Plass, N. H. Briggs, R. L. Braynard (PARC), Networking Named Content,CoNEXT 2009, Rome, December, 2009）に基づくスイッチングの処理を行っているものとしてもよい。
【００５６】
また本実施の形態のネットワーク中継装置１０の別の例では、リダイレクト部１とスイッチ部２とは別々の装置で実現されてもよい。このような例に係る本実施の形態のネットワーク中継装置１０は、図９に示すように、リダイレクト部１が、端末装置４０に接続され得るｎ個のポート（本発明の通信ポートに相当する）と、スイッチ部２として動作する少なくとも一つのコンピュータ装置に接続されるｋ個のポートとの、（ｎ＋ｋ）個のポートを備えたスイッチ装置で実現される。
【００５７】
この実施形態の一態様では、ｍ個のスイッチ部２がｋ個（１≦ｋ≦ｍ）のコンピュータ装置で実現される。１つのコンピュータ装置を１つのスイッチ部２として機能させる場合は、当該コンピュータ装置のオペレーティングシステムにスイッチ部２としてのプログラムをインストールし、当該コンピュータ装置１台で１つのスイッチ部２としての処理を実行させる。また、１つのコンピュータ装置を複数ｐ個のスイッチ部２として機能させる場合は、例えば、ｐ個の仮想マシンを並列的に実行する環境をホストとなるオペレーティングシステム上で実行し、各仮想マシン上でゲストとなるオペレーティングシステムを動作させ、各仮想マシン上で動作するオペレーティングシステムにスイッチ部２としての動作を実現するプログラムをインストールし、それぞれのオペレーティングシステム上でスイッチ部２としての処理を実行させることとすればよい。
【００５８】
さらに本実施の形態の一態様では、リダイレクト部１として動作するコンピュータ装置も複数あってもよい。この場合も、コンピュータ装置１台につき１つのオペレーティングシステムを動作させて、そのオペレーティングシステム上で、リダイレクト部１としての処理を行うプログラムを実行してもよいし、１台のコンピュータ装置上で仮想的に複数のオペレーティングシステムを動作させて、それぞれのオペレーティングシステム上で、リダイレクト部１としての処理を行うプログラムをそれぞれ実行してもよい。
【００５９】
この例において、リダイレクト部１として機能するスイッチ装置は、図２に例示した例と同様に、機能的には受信部２１、転送部２２、及び送出部２３を含む。ただし、転送部２２及び送出部２３が、スイッチ部２として機能するコンピュータ装置との間でポート１１を介して通信を行う点が異なる。
【００６０】
すなわちこの例での転送部２２は、受信部２１が受信したデータから、スイッチ部２を選択するスイッチ論理識別情報を取り出す。この転送部２２は、当該取り出したスイッチ論理識別情報で選択されるスイッチ部２として動作するコンピュータ装置が接続されているポート１１を選択する。このポート１１の選択は、予めスイッチ部２を選択するスイッチ論理識別情報と、当該スイッチ論理識別情報で選択されるスイッチ部２として機能するコンピュータ装置が接続されたポート１１を特定する情報とを関連付けてポート選択テーブルとして記憶させておき、このポート選択テーブルを参照して、取り出したスイッチ部２を選択するスイッチ論理識別情報に関連する情報で特定されるポート１１を選択することとすればよい。
【００６１】
転送部２２は、受信部２１が受信したデータのうちから、少なくとも伝送元及び伝送先を特定する情報を含んだデータ本体を取り出す。また転送部２２は、受信部２１がデータを受信したポート１１を識別する、ポート識別情報（ポート１１に予め設定されたポート番号等）を得る。そして転送部２２は、このポート識別情報と、取り出した伝送元及び伝送先を特定する情報を含んだデータ本体とを、選択したポート１１を介して、スイッチ部２として動作するコンピュータ装置のＮＩＣ（ネットワークインタフェースカード、物理的なものと仮想的なもの（後述）とを問わない）に転送する。
【００６２】
なお、この転送部２２は、受信部２１が受信したデータがブロードキャストである場合は、上記の処理に代えて、当該ブロードキャストのデータを受信したポート１１を識別する、ポート識別情報（ポート１１に予め設定されたポート番号等）を得て、このポート識別情報とともに、受信したデータを、各スイッチ部２に対して転送してもよい。
【００６３】
またスイッチ部２として機能するコンピュータ装置は、図５に例示したものと同様に、処理内容保持部２５、仮想パッチパネル部２６、及び処理部２７を含む。ただしこの例では、コンピュータ装置が複数のスイッチ部２として機能する場合に、仮想パッチパネル部２６が、ホストオペレーティングシステムを介してデータを受け取ることとなる点が異なる。
【００６４】
すなわち、かかる場合はホストオペレーティングシステムが、コンピュータ装置に設けられた物理的なＮＩＣに、各ゲストオペレーティングシステムに対応した複数の仮想ＮＩＣを設定する。そして、各仮想ＮＩＣを介して、リダイレクト部１からのデータを受け入れる。ホストオペレーティングシステムは、データを受け入れた仮想ＮＩＣに対応するゲストオペレーティングシステム上で動作するスイッチ部２の仮想パッチパネル部２６にデータを転送する。
【００６５】
仮想パッチパネル部２６は、この転送されたデータを受け入れて、処理部２７に出力する。また、この仮想パッチパネル部２６は、処理部２７からデータが入力されると、当該入力されたデータを、対応するゲストオペレーティングシステムの仮想ＮＩＣを介してリダイレクト部１へ転送する。
【００６６】
さらに一つのスイッチ部２の仮想パッチパネル部２６と、処理部２７とがそれぞれ個別のオペレーティングシステム上で動作する処理として実現されてもよい。
【００６７】
本実施の形態によると、他に制御装置を必要とせずに分散的・自律的に動作し、また、複数のスイッチ部を、利用者が切り替えて利用可能なネットワーク中継装置が提供され、柔軟な運用が可能となる。
【００６８】
さらに本実施の形態において、端末装置４０からリダイレクト部１が受信するデータは、暗号化されていてもよい。図１０は、本発明の実施の形態に係るネットワーク中継装置が受け入れるデータの別の例を表す説明図である。図１０に例示するように、データの暗号化の方法としては、スイッチ論理識別情報とデータ本体とを含むデータ全体をそのまま暗号化する方法（図１０（ａ））、スイッチ論理識別情報とデータ本体との他に、ランダム値（Ｒ）を付したデータを生成し、これらをまとめて暗号化する方法（図１０（ｂ））などがある。ここで暗号化の方法は、共有鍵暗号や公開鍵暗号など、必要に応じた強度の暗号化方法を採用できる。
【００６９】
この場合は、リダイレクト部１が、予め定められた方法により、復号鍵を用いて暗号化されたデータを復号し、復号後のデータを用いてスイッチ部２へ出力するデータを得ることとすればよい。なお、ランダム値（Ｒ）が付されている場合は、リダイレクト部１は、復号後のデータからこのランダム値（Ｒ）を削除し、スイッチ部２へ出力するデータを得ることとすればよい。
【００７０】
このように暗号化しておくことで、スイッチ論理識別情報がデータから抽出されて悪用されることを防止できる。また、図１０（ｂ）に例示したようにランダム値等のナンス（Nonce）を利用することで、特定のスイッチ論理識別情報と特定のデータ本体との組をまるごと悪用される事態も防止できる。なお、このランダム値は図１０（ｃ）に例示するように、データ本体の一部に含まれてもよい（データ本体の一部をナンスとして使用する例）。
【００７１】
なお、復号に用いる鍵を特定する情報は、暗号化されたデータ本体とともに送信されていてもよい。また、データ本体に含めて、またはデータ本体とは別に、復号側において既知の値を表す情報（マジックと呼ぶ）をデータ本体とともに暗号化しておき、復号側において復号鍵の候補となる複数の鍵を順次試し、試験的に行った復号結果に含まれるマジックが既知の値に一致するときに、当該試した鍵が復号鍵であると判断する方法を採用してもよい。
【００７２】
またここまでの説明において、ポート１１を介して制御部１２に入力されるデータはそれぞれ、スイッチ論理識別情報によって識別されるスイッチ部２によって処理されるので、全体としては（それぞれにスイッチ論理識別情報が関連付けられている、）種々のフォーマットが混在したデータで構わない。
【００７３】
そのフォーマットの一つの例として、データは、イーサネット（登録商標）・フレームの形式のデータであってもよい。この場合において、制御部１２は、データを受け入れたときに、例えばイーサネット（登録商標）・フレームに含まれるタイプ（Type）の値を参照し、この値が、所定の予約値（例えば0x00ff）であるか否かを判断し、タイプの値が所定の予約値であれば、受け入れたデータにはスイッチ論理識別情報が含まれるものとしてここまでに説明した処理を行い、そうでなければ、従来のスイッチとしての処理（スイッチ論理識別情報を含まないパケットとして扱う処理）を実行してもよい。
【００７４】
さらに本発明のある実施態様に係るリダイレクト部１′は、図１２に例示するように、受信部２１、転送部２２′、及び送出部２３を含む。ここで図２に示したものと同様の構成となるものについては、同じ符号を付して詳細な説明を省略する。
【００７５】
転送部２２′は、受信部２１が受信したデータから、利用者がプログラム等によって定めた規則に従ってスイッチ論理識別情報を取り出す。この規則は、例えば、スイッチ論理識別情報がそのままデータに含まれている場合は、データのうちスイッチ論理識別情報のある位置までの、データ先頭からのオフセット値であってもよい。なお、この場合の転送部２２′のある例では、スイッチ論理識別情報がデータに明示的に含まれていなくてもよい。具体的に転送部２２′は、スイッチ論理識別情報ごとに定めたパターンをデータから検索する。そして転送部２２′は、検索によってデータから見出したパターンに関連付けて定められたスイッチ論理識別情報を取り出す。この後者の例による場合、利用者は、自らが利用したいスイッチングの処理を実行するスイッチ部２を選択するためのスイッチ論理識別情報（スライス識別子）に関連付けて予め定めたパターンを送信するデータに含めて、端末装置４０から送信する。このパターンは例えば特定の文字列であってもよい。
【００７６】
この転送部２２′もまた、このようにして取り出したスイッチ論理識別情報によって特定されるスイッチ部２を選択する。つまり、取り出したスイッチ論理識別情報に関連付けられたスイッチ部２としてのプログラムを記憶部１３から読み出して、制御部１２に実行開始（起動）させる。そして転送部２２′は、データにスイッチ論理識別情報が明示的に含める場合は、受信部２１が受信したデータのうちから、当該明示的に含まれるスイッチ論理識別情報を除き、少なくともデータ本体を取り出す。
【００７７】
この転送部２２′は、受信部２１がデータを受信したポート１１を識別する、ポート識別情報（ポート１１に予め設定されたポート番号等）を得る。そして転送部２２′は、このポート識別情報と、受信部２１が受信したデータから取り出したデータ本体とを含むデータを、選択したスイッチ部２に転送する。つまり、実行を開始したスイッチ部２としてのプログラムの処理（プロセス）に、データを受け渡す。
【００７８】
またここまでの説明では、各ゲストＯＳ上でそれぞれ少なくとも一つのスイッチ部２としてのプログラムが実行されるものとし、スイッチ部２は、それぞれ図５に例示したように、処理内容保持部２５、仮想パッチパネル部２６、及び処理部２７を含んで構成されるものとしていた。しかしながらスイッチ部２の処理は、比較的処理負荷が高いものであるため、個々のゲストＯＳ上で動作させると、制御部１２の負荷が大きくなってしまう。そこで本実施の形態のある例では、スイッチ部２の制御部２７を、スイッチとしての論理的動作を管理するコントロールプレーン（Ｃプレーン）としての処理を行う部分と、スイッチとしての具体的動作を行うデータプレーン（Ｄプレーン）としての処理を行う部分とに分け、一部のスイッチ部２′（区別のためダッシュを付す）がＣプレーンとＤプレーンとを備え、他のスイッチ部２″（区別のため２つのダッシュを付す）はＣプレーンのみを備えて、いずれかのスイッチ部２′のＤプレーンを共用することとしてもよい。この場合、スイッチ部２″の処理内容保持部２５が格納している処理内容を表す情報が、スイッチ部２′を動作させるゲストＯＳ上で動作するプログラムから書換えられることのないよう、この場合、スイッチ部２″の処理内容保持部２５はリードオンリーに設定されるなど、他のスイッチ部２′，２″から書き換え不能に設定されてもよい。
【００７９】
この例ではＣプレーンのみを備えるスイッチ部２″の仮想パッチパネル部２６は、いずれかのスイッチ部２′の制御部２７を選択する。そしてこの仮想パッチパネル部２６は、リダイレクト部１が転送したデータに含まれるポート識別情報を参照し、このポート識別情報で識別されるポート１１に対応する、選択した制御部２７の仮想的なポートに対して、当該リダイレクト部１が転送したデータを転送する。ここで仮想パッチパネル部２６は、処理部２７に転送するデータから、ポート識別情報を除去しておいてもよい（処理部２７のプログラムと、従来のスイッチにおけるプログラムとの互換性を考慮したものである）。
【００８０】
スイッチ部２′の制御部２７は、同じスイッチ部２′内にある仮想パッチパネル部２６から、またはＣプレーンのみを備える他のスイッチ部２″の仮想パッチパネル部２６から、仮想的なポートのいずれかを介してデータの転送を受け入れる。この処理部２７の具体的な処理は、例えば従来のネットワーク中継装置におけるＬ２スイッチにおける処理に相当するものであってもよい。すなわち処理部２７は、仮想的なポートを介して受け入れたデータから、伝送元または伝送先を特定する情報（ＭＡＣアドレス）を含んだヘッダＨを取り出す。そして処理部２７は、データ転送元の仮想パッチパネル部２６と同じスイッチ部２′またはスイッチ部２″に含まれる処理内容保持部２５から、当該処理内容保持部２５に保持されている、行うべき処理を表す情報を取得する。
【００８１】
そして処理部２７は、当該取得した情報が表す処理として、リダイレクト部１の特定のポート１１を介してデータを送出するユニキャスト、リダイレクト部１の複数のポート１１を介してデータを送出するマルチキャスト、データの廃棄、データの暗号化、ヘッダ情報等を付加するカプセル化、データのパケット数や容量等の集計、その他ＱｏＳ制御やトンネル経由での送信制御などの処理を実行する。
【００８２】
処理部２７は、取得した情報が表す処理を実行した結果、リダイレクト部１のいずれかのポート１１を出力先として、当該出力先となったポート１１を介してデータを出力させることとなった場合は、当該出力先のポート１１に対応する仮想的なポートを介して、データ本体を含むデータを、元のデータ転送元の仮想パッチパネル部２６に出力する。
【００８３】
また本実施の形態では、端末装置側でも複数の仮想マシンを動作させて、それぞれの仮想マシン上でＯＳ（オペレーティングシステム）を動作させてもよい。このとき、各仮想マシンの仮想的なネットワークインタフェースがそれぞれ個別に設定されたスイッチ論理識別情報を含めたパケットを用いて通信を行うようにしてもよい。具体的にこのような端末装置４０″は、図１３に例示するように制御部４１，記憶部４２，操作部４３，表示部４４，及びネットワークインタフェース４５を備える。
【００８４】
ここで制御部４１は、ＣＰＵ等のプログラム制御デバイスであり、記憶部４２に格納されたプログラムに従って動作する。この制御部４１は複数の仮想マシンを実現するプログラムに従って動作している。また各仮想マシンとしての動作において、ネットワークを介してネットワーク中継装置１０との間でデータを送受信する処理を行う。なお、以下の例では、各仮想マシンに含まれる仮想的なネットワークインタフェースが、それぞれ互いに異なるスイッチ論理識別情報を利用するものとする。
【００８５】
記憶部４２は、メモリデバイス等であり、制御部４１によって実行されるプログラムを保持する。このプログラムは、ＤＶＤ−ＲＯＭなどのコンピュータ可読な記録媒体に格納されて提供され、この記憶部４２に複写されたものであってもよい。またこの記憶部４２は、制御部４１のワークメモリとして動作してもよい。
【００８６】
操作部４３は、キーボードやマウス等であり、利用者の指示操作の入力を受けて、当該入力された指示操作の内容を制御部４１に出力する。表示部４４は、ディスプレイ等であり、制御部４１から入力される指示に従って情報を表示する。
【００８７】
ネットワークインタフェース４５は、ネットワークカード等であり、制御部４１から入力される指示に従い、送信の対象となるデータに対して、制御部４１から指定された送信元のアドレス（例えばＭＡＣアドレス）と宛先のアドレス（例えばＭＡＣアドレス）とスイッチ論理識別情報とを付加してネットワーク中継装置１０へ送出する（なお、スイッチ論理識別情報を明示的に含まなくてもよいネットワーク中継装置１０であれば、ここでのスイッチ論理識別情報の付加は明示的な付加でなくてもよい）。またこのネットワークインタフェース４５は、ネットワーク中継装置１０から受信したデータに含まれるスイッチ論理識別情報を検出し、検出したスイッチ論理識別情報を利用する仮想的なネットワークインタフェースを特定する。そしてこのネットワークインタフェース４５は、当該特定した仮想的なネットワークインタフェースに対して、この受信したデータを出力する。
【００８８】
この例によると、各端末装置４０″で動作する各仮想マシンで動作している各ＯＳが、それぞれのＯＳの管理の下で動作するアプリケーションプログラムからデータ送信の指示を受け入れると、次のように動作する。すなわちＯＳの仮想的なネットワークインタフェースが、それぞれに割当てられている仮想的なアドレスを送信元のアドレスとし、この送信元のアドレスと、アプリケーションプログラムから指示されたデータの送信先（宛先）のアドレスと、このＯＳに予め設定されているスイッチ論理識別情報とを、送信対象となったデータとともにネットワークインタフェース４５に出力する。そしてネットワークインタフェース４５は、制御部４１から受け入れたデータに、制御部４１から入力された送信元のアドレスと、宛先のアドレスと、スイッチ論理識別情報とを含めて（上述の通りスイッチ論理識別情報は明示的なものでなくてもよい）ネットワーク中継装置１０に送出する。
【００８９】
この例によると、各仮想マシンのＯＳがそれぞれ、設定されているスイッチ論理識別情報で識別されるネットワーク中継装置１０内のスイッチ部２を利用してデータの送出を行うことになる。
【００９０】
またこの例では、ネットワーク中継装置１０は、端末装置４０″宛（端末装置４０″内で動作するいずれかのＯＳの仮想的なネットワークインタフェース宛）のデータに対して、処理を実行したスイッチ部２に係るスイッチ論理識別情報を含める。
【００９１】
端末装置４０″のネットワークインタフェース４５は、ネットワーク中継装置１０から受信したデータに含まれるスイッチ論理識別情報を参照し、当該参照したスイッチ論理識別情報を利用しているＯＳの仮想的なネットワークインタフェースに対して当該受信したデータを出力する。
【００９２】
このようにすることで、例えばアドレスとして、ＭＡＣアドレスに代えて、ＭＡＣアドレスよりも長いビット長のアドレス（拡張ＭＡＣアドレス）を利用するスイッチ部２がネットワーク中継装置１０にある場合、端末装置４０″の、ある仮想マシン上のＯＳではこの拡張ＭＡＣアドレスを利用した通信を行い、また端末装置４０″の、別の仮想マシン上のＯＳでは通常のＭＡＣアドレスを利用した通信を行う、といった処理が可能になる。
【００９３】
［一つのＯＳ内で切替える例］
さらにここでは端末装置４０″の制御部４１が複数の仮想マシンを動作させる例について説明したが、本実施の形態はこれに限られない。例えば制御部４１が実行するＯＳが一つだけである場合、このＯＳとしての処理において、制御部４１は次のような処理を実行してもよい。
【００９４】
すなわち制御部４１は、ネットワーク中継装置１０の複数のスイッチ部２に対応する複数のスイッチ論理識別情報のうちから一つのスイッチ論理識別情報を選択する指示を利用者から受け入れておく。
【００９５】
そして制御部４１は、ＯＳの管理の下で動作するアプリケーションプログラムからデータ送信の指示を受け入れると、予め設定されているアドレスを送信元のアドレスとし、この送信元のアドレスと、アプリケーションプログラムから指示されたデータの送信先（宛先）のアドレスと、選択されたスイッチ論理識別情報とを、送信対象となったデータとともにネットワークインタフェース４５に出力する。そしてネットワークインタフェース４５は、制御部４１から入力されたデータに、制御部４１から入力された送信元のアドレスと、宛先のアドレスと、スイッチ論理識別情報とを含めて（すでに記載の通り、スイッチ論理識別情報は明示的に含めなくてもよい）ネットワーク中継装置１０に送出する。
【００９６】
この例によると、利用者が選択したスイッチ論理識別情報で識別されるネットワーク中継装置１０内のスイッチ部２を利用してデータの送出を行うことになる。なお、この例においては、記憶部４２に、利用者が選択可能なスイッチ論理識別情報ごとに送信元のアドレスと、宛先のアドレスの取得方法とを関連付けて記憶しておき、制御部４１は、送信元のアドレスとして、選択されたスイッチ論理識別情報に関連付けられた送信元のアドレスを利用するとともに、宛先のアドレスを取得するにあたり、選択されたスイッチ論理識別情報に関連付けられた取得方法（取得処理を行うプログラムであってもよい）にて、宛先のアドレスを取得する。
【００９７】
またこの例では、ネットワーク中継装置１０は、端末装置４０″宛（端末装置４０″内で動作するいずれかのＯＳの仮想的なネットワークインタフェース宛）のデータに対して、処理を実行したスイッチ部２に係るスイッチ論理識別情報を含める（すでに述べているように、明示的に含めなくてもよい場合は、このスイッチ論理識別情報は明示的に含められなくてもよい）。
【００９８】
端末装置４０″のネットワークインタフェース４５は、ネットワーク中継装置１０から受信したデータに含まれるスイッチ論理識別情報を参照し、当該データから抽出されるスイッチ論理識別情報が、利用者が選択しているスイッチ論理識別情報に一致する場合に、制御部４１に対して当該受信したデータを出力する。
【００９９】
このようにすることで、例えばキャッシュを利用するスイッチ部２がネットワーク中継装置１０にある場合、端末装置４０″の利用者は、このキャッシュを利用した通信を行うスイッチ部２を選択するスイッチ論理識別情報を選択すれば、端末装置４０″がキャッシュを利用した通信を行うこととなり、キャッシュを利用しないスイッチ部２を選択するスイッチ論理識別情報を利用者が選択すれば、端末装置４０″が、キャッシュを利用しない通信を行うこととなる。つまり、利用者はキャッシュの利用の有無を選択できるようになる。
【０１００】
さらに別の例として、アプリケーションプログラムごとに、送出するデータに含めるスイッチ論理識別情報を選択可能としてもよい。この場合、アプリケーションプログラムが、予め設定されているアドレスを送信元のアドレスとし、この送信元のアドレスと、データの送信先（宛先）のアドレスと、選択されたスイッチ論理識別情報とを、送信対象となったデータとともにネットワークインタフェース４５に出力する（ＯＳはアプリケーションプログラムから入力されるデータをそのままネットワークインタフェース４５に出力する）。
【０１０１】
そしてネットワークインタフェース４５は、制御部４１から入力されるデータに、制御部４１から入力された送信元のアドレスと、宛先のアドレスと、スイッチ論理識別情報（明示的でなくてもよい）とを含めてネットワーク中継装置１０に送出する。
【０１０２】
なお、この例においては、記憶部４２に、利用者が選択可能なスイッチ論理識別情報ごとに送信元のアドレスと、宛先のアドレスの取得方法とを関連付けて記憶しておき、制御部４１は、アプリケーションプログラムの処理として、送信元のアドレスとして、選択されたスイッチ論理識別情報に関連付けられた送信元のアドレスを利用するとともに、宛先のアドレスを取得するにあたり、選択されたスイッチ論理識別情報に関連付けられた取得方法（取得処理を行うプログラムであってもよい）にて、宛先のアドレスを取得する。
【０１０３】
また端末装置４０″のネットワークインタフェース４５は、ネットワーク中継装置１０から受信したデータを制御部４１に出力する。制御部４１は、このデータに含まれるスイッチ論理識別情報を参照し、当該データに含まれるスイッチ論理識別情報が、選択しているスイッチ論理識別情報に一致するアプリケーションプログラムの処理において、当該データを利用した処理を実行する。
【０１０４】
ネットワーク中継装置１０はまた、端末装置４０との間の通信を、無線ＬＡＮを介して行ってもよい。この場合に、ネットワーク中継装置１０が無線ＬＡＮのアクセスポイントとして動作してもよいし、いわゆる３Ｇ・４Ｇなどの広域無線通信のベースステーション等の無線通信のアクセスポイントとして動作してもよい。
【０１０５】
また、ネットワーク中継装置１０は、スイッチ論理識別情報を含めることができない（あるいはスイッチ論理識別情報が無視されたり削除されたりする可能性のある）外部ネットワーク（例えば、従来一般的なネットワーク）に対して、端末装置４０から受け入れたデータを送出することもあり得る。この場合、当該送出したデータに対する応答にはスイッチ論理識別情報が含まれない可能性がある。そこで、ネットワーク中継装置１０は、いわゆるＮＡＴ（ネットワークアドレス変換）技術等を利用し、外部ネットワークから応答を受信したときに、過去に送出したどのデータに対する応答であるかを識別し、識別したデータに係るスイッチ論理識別情報を（明示的または非明示的に）当該受信した応答のデータに付加して処理してもよい。このようにすることで、本実施の形態のネットワーク中継装置１０を、一般的なインターネットに接続できるようになり、端末装置４０が、インターネットを介してアクセス可能な種々のサイトからの応答を得ることができるようになる。
【符号の説明】
【０１０６】
１，１′  リダイレクト部、２，２′，２″  スイッチ部、１０  ネットワーク中継装置、１０′  スイッチ、１１  ポート、１２  制御部、１３  記憶部、１４  通信部、２１  受信部、２２，２２′  転送部、２３  送出部、２５  処理内容保持部、２６  仮想パッチパネル部、２７  処理部、３０′  制御装置、４０，４０′，４０″  端末装置、４１  制御部、４２  記憶部、４３  操作部、４４  表示部、４５  ネットワークインタフェース。
【図１】
0005933371.tif 000002
【図２】
0005933371.tif 000003
【図３】
0005933371.tif 000004
【図４】
0005933371.tif 000005
【図５】
0005933371.tif 000006
【図６】
0005933371.tif 000007
【図７】
0005933371.tif 000008
【図８】
0005933371.tif 000009
【図９】
0005933371.tif 000010
【図１０】
0005933371.tif 000011
【図１１】
0005933371.tif 000012
【図１２】
0005933371.tif 000013
【図１３】
0005933371.tif 000014