(57)【要約】【課題】複数のホストが接続されて構成される処理システムにおいて、ホストの設定変更なしに動的にホスト間の接続制御を行うことを可能とする。【解決手段】SDN制御装置と、第１ホストと通信を行う第１SDNスイッチと、第２ホストと通信を行う第２SDNスイッチとを備えるパケット通信システムにおいて、前記SDN制御装置が、各SDNスイッチにパケットのアドレス変換ルールを指定し、前記第１SDNスイッチは、前記第１ホストから前記第１SDNスイッチ宛てのパケットを受信し、アドレス変換ルールに従って、当該パケットのアドレスを書き換え、アドレスが書き換えられたパケットを前記第２SDNスイッチに送信し、前記第２SDNスイッチは、前記第１SDNスイッチからパケットを受信し、アドレス変換ルールに従って、当該パケットのアドレスを書き換え、アドレスが書き換えられたパケットを前記第２ホストに送信する。【選択図】図２
2017123557.tif 000002
【特許請求の範囲】
【請求項１】
SDN制御装置と、第１ホストと通信を行う第１SDNスイッチと、第２ホストと通信を行う第２SDNスイッチとを備えるパケット通信システムであって、
前記SDN制御装置が、前記第１SDNスイッチと前記第２SDNスイッチのそれぞれに対してパケットのアドレス変換ルールを指定し、
前記第１SDNスイッチは、前記第１ホストから前記第１SDNスイッチ宛てのパケットを受信し、前記SDN制御装置から指定されたアドレス変換ルールに従って、当該パケットのアドレスを書き換え、アドレスが書き換えられたパケットを前記第２SDNスイッチに送信し、
前記第２SDNスイッチは、前記第１SDNスイッチからパケットを受信し、前記SDN制御装置から指定されたアドレス変換ルールに従って、当該パケットのアドレスを書き換え、アドレスが書き換えられたパケットを前記第２ホストに送信する
ことを特徴とするパケット通信システム。
【請求項２】
前記SDN制御装置は、
前記第１SDNスイッチと前記第２SDNスイッチとの間で利用可能な候補経路の情報を、ホストが接続されるローカルネットワークの名前を名前空間として使用したキーとともに格納した候補経路テーブルを参照し、
前記第１ホストと前記第２ホストに対応するキーに基づき、前記候補経路テーブルから候補経路を取得し、当該候補経路から、前記第１ホストと前記第２ホストとの間の通信に利用する経路を選択する
ことを特徴とする請求項１に記載のパケット通信システム。
【請求項３】
前記SDN制御装置は、
前記第１SDNスイッチのポート番号と前記第２SDNスイッチのポート番号の組合せを、前記第１SDNスイッチと前記第２SDNスイッチとの間の経路の情報と、ホストが接続されるローカルネットワークの名前とを有するキーとともに格納したポート割当テーブルを参照し、
前記第１ホストと前記第２ホストとの間の通信に対応するキーに基づき、前記ポート割当テーブルを検索し、当該ポート割当テーブル内で未使用のポート番号の組合せを、前記第１ホストと前記第２ホストとの間の通信に利用するポート番号の組合せとして決定する
ことを特徴とする請求項１又は２に記載のパケット通信システム。
【請求項４】
前記第１ホストと前記第２ホストとの間の通信における、前記第１SDNスイッチと前記第２SDNスイッチとの間の経路を新たな経路に変更する場合に、
前記SDN制御装置は、前記ポート割当テーブルを検索することにより、新たな経路に対応するポート番号の組合せを決定し、当該組合わせを含むアドレス変換ルールを、前記第１SDNスイッチと前記第２SDNスイッチのそれぞれに対して指定する
ことを特徴とする請求項３に記載のパケット通信システム。
【請求項５】
SDN制御装置と、第１ホストと通信を行う第１SDNスイッチと、第２ホストと通信を行う第２SDNスイッチとを備えるパケット通信システムにおいて実行されるパケット通信方法であって、
前記SDN制御装置が、前記第１SDNスイッチと前記第２SDNスイッチのそれぞれに対してパケットのアドレス変換ルールを指定するステップと、
前記第１SDNスイッチが、前記第１ホストから前記第１SDNスイッチ宛てのパケットを受信し、前記SDN制御装置から指定されたアドレス変換ルールに従って、当該パケットのアドレスを書き換え、アドレスが書き換えられたパケットを前記第２SDNスイッチに送信するステップと、
前記第２SDNスイッチが、前記第１SDNスイッチからパケットを受信し、前記SDN制御装置から指定されたアドレス変換ルールに従って、当該パケットのアドレスを書き換え、アドレスが書き換えられたパケットを前記第２ホストに送信するステップと
を備えることを特徴とするパケット通信方法。
【請求項６】
SDN制御装置と、第１ホストと通信を行う第１SDNスイッチと、第２ホストと通信を行う第２SDNスイッチとを備えるパケット通信システムにおいて使用される前記SDN制御装置であって、
前記第１SDNスイッチと前記第２SDNスイッチのそれぞれに対してパケットのアドレス変換ルールを指定する手段を備え、
前記第１ホストから前記第１SDNスイッチ宛てのパケットを受信した前記第１SDNスイッチを、前記SDN制御装置から指定されたアドレス変換ルールに従って、当該パケットのアドレスを書き換え、アドレスが書き換えられたパケットを前記第２SDNスイッチに送信するように動作させ、
前記第１SDNスイッチからパケットを受信した前記第２SDNスイッチを、前記SDN制御装置から指定されたアドレス変換ルールに従って、当該パケットのアドレスを書き換え、アドレスが書き換えられたパケットを前記第２ホストに送信するように動作させる
ことを特徴とするSDN制御装置。
【請求項７】
前記第１SDNスイッチのポート番号と前記第２SDNスイッチのポート番号の組合せを、前記第１SDNスイッチと前記第２SDNスイッチとの間の経路の情報と、ホストが接続されるローカルネットワークの名前とを有するキーとともに格納したポート割当テーブルを参照する手段と、
前記第１ホストと前記第２ホストとの間の通信に対応するキーに基づき、前記ポート割当テーブルを検索し、当該ポート割当テーブル内で未使用のポート番号の組合せを、前記第１ホストと前記第２ホストとの間の通信に利用するポート番号の組合せとして決定する手段と
を備えることを特徴とする請求項６に記載のSDN制御装置。
【請求項８】
コンピュータを、請求項６又は７に記載のSDN制御装置における各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動的にホスト間の接続設定や接続変更を行うことを可能とする技術に関連するものである。
【背景技術】
【０００２】
Service Oriented Architecture（SOA）やMicroservice Architecture（MSA）の構成を取る処理システムにおいては、単機能なアプリケーション同士がIPネットワーク上で順列に接続され全体の処理が実行される。
【０００３】
近年の仮想化サービスの普及により、単機能なアプリケーションは仮想化された計算機リソースであるVirtual Machine（VM）上で実行される。特に、多くの計算リソースが必要な単機能アプリケーションの処理の高速化が必要である場合は複数のVMを立ち上げて並列パイプラインによる負荷分散を行う。
【０００４】
上記の技術に関連する従来技術として、例えば、非特許文献１、特許文献１に開示された技術がある。
【０００５】
非特許文献１に開示された技術は、クライアントとサーバの中間にアドレス変換（NAT）用のGWを介して、TCP/UDP層のヘッダに含まれるポート番号を元にアドレス変換（NAPT）を実施し、アドレス体系の異なるネットワークに属するホスト間を接続する技術である。しかし、非特許文献１の技術では片方向のみの通信を実現することを目的としており、双方向性のある通信に関しては述べられていない。よって、TCPを始めとする双方向の通信が必要な場合には適用することができない。また、アドレス変換の際にクライアント及びサーバに対応付けるポート番号を選択する方法として、関係するホスト・ネットワークに関係なくランダムに割り当てる方式を採っている。
【０００６】
特許文献１に開示された技術は、仮想ネットワーク接続（VPN）用GWを用いてトンネリングを施すことにより異なるネットワーク拠点間を接続する技術である。接続するネットワーク同士が同じIPアドレス空間を使用している場合に限り仮想的なIPアドレス空間を設定しそれらをNATすることでアドレス衝突の問題を回避している。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】北村匡彦, 君山博之, 藤井竜也, 丸山充, "広域L2/L3網を使った仮想ネットワーク構成法の提案", 電子情報通信学会技術研究報告, vol.114, no.477, pp.197-202, 2015.
【特許文献】
【０００８】
【特許文献１】特開2009-017429号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
背景技術で説明した複数のアプリケーション（VM）を接続した処理システムを実現する上での課題として、以下の点が挙げられる。
【００１０】
新たにアプリケーション（VM）を追加した場合、ネットワーク構成の変更が伴うため、アプリケーションの設定変更をする必要がある。しかし、従来のアプリケーションでは外部からの設定変更機能がない場合がある。その機能がある場合でも、設定変更時に一度機能停止が必要な場合が多い。
【００１１】
更に、異なるクラウドサービス上のVMは独自のIP空間で運用されていることから、異なるVM同士が通信するにはVXLAN等のNAT/VPN追加機能がネットワーク側に必要である。また、途中のネットワークリソース（使用帯域）の偏りがある場合には、VM間接続の経路を別のパスに乗せ変える必要がある。
【００１２】
また、非特許文献１に開示された技術では、一組のネットワーク拠点間で使用できるポート番号がNAT GWで使用可能なポート番号の数に制限されるため、接続するホストが増加した場合に利用可能接続数が大きく制限される。更に、接続するホスト数が増加した場合に利用可能なポート番号を検索する時間が大きくなり、NAT管理処理の負荷が増加する。
【００１３】
また、特許文献１に開示された技術では、同じアドレス空間を用いているネットワーク拠点が複数あり、別のネットワーク拠点から接続することを試みる場合、接続先アドレスの指定において、複数のネットワーク拠点が該当するためにルーティングが不可能であり、ホスト間が接続できないという問題がある。
【００１４】
図１を参照して、複数のアプリケーション（VM）を接続した処理システムを実現する上での課題を具体的に説明する。図１は、SOAシステムを用いた映像制作ワークフローの一例である。ここでは、映像の一つの処理（色変換、字幕合成、映像フォーマット変換処理等）を一つのアプリケーション（VM）で実行し、それらを順列に接続することで目的の処理を実現する。つまり、図１に示すように、映像素材配信ホスト１から送信された映像素材に対し、色変換アプリケーション（VM）２により色変換がなされ、字幕合成アプリケーション（VM）３により字幕合成がなされ、映像フォーマット変換アプリケーション（VM）４により映像フォーマット変換がなされて、映像保存ホスト５に送信される。また、図１には、映像フォーマット変換を行わない処理経路も示されている。
【００１５】
当該処理システムにおいて、一つのアプリケーションは、データを送信する場合には「クライアントホスト」として動作し、データを受信する場合には「サーバホスト」として動作するので、図１では、送信部分に「クライアントホスト」と記載し、受信部分に「サーバホスト」と記載している。
【００１６】
図１に示すように、映像データはアプリケーション毎に受信され、処理され、次のアプリケーションへ送信される。この処理の中で映像フォーマット変換処理は非常に時間がかかるため、最初は３つのVMを起動し、並列パイプラインによって負荷分散する構成になっている。
【００１７】
ここで、処理高速化のため、図１に示すように、新たにVMを追加する場合を考える。このとき、字幕合成アプリケーション３は、新たに映像フォーマット変換用VMが追加された事実を検知して、追加されたVMのIPアドレスと待受ポート番号を調べて、送信先VMリストに追加する設定変更が必要である。
【００１８】
また、新たに追加されたVMが字幕合成アプリケーション（VM）と異なるIP空間で直接IP通信できない場所（例えば、別のクラウドサービス上）に配置されている場合、ネットワーク側でVPN/トンネル接続もしくはNAT接続を構成する必要がある。
【００１９】
これらの構成・設定変更の機能を従来からある全てのアプリケーションに追加実装し対応させるのは現実的ではない。つまり、従来技術では、複数のホストが接続されて構成される処理システムにおいて、ホストの設定変更なしに動的にホスト間の接続制御を行うことができなかった。
【００２０】
本発明は上記の点に鑑みてなされたものであり、複数のホストが接続されて構成される処理システムにおいて、ホストの設定変更なしに動的にホスト間の接続制御を行うことを可能とする技術を提供することを目的とする。
【課題を解決するための手段】
【００２１】
本発明の実施の形態によれば、SDN制御装置と、第１ホストと通信を行う第１SDNスイッチと、第２ホストと通信を行う第２SDNスイッチとを備えるパケット通信システムであって、
前記SDN制御装置が、前記第１SDNスイッチと前記第２SDNスイッチのそれぞれに対してパケットのアドレス変換ルールを指定し、
前記第１SDNスイッチは、前記第１ホストから前記第１SDNスイッチ宛てのパケットを受信し、前記SDN制御装置から指定されたアドレス変換ルールに従って、当該パケットのアドレスを書き換え、アドレスが書き換えられたパケットを前記第２SDNスイッチに送信し、
前記第２SDNスイッチは、前記第１SDNスイッチからパケットを受信し、前記SDN制御装置から指定されたアドレス変換ルールに従って、当該パケットのアドレスを書き換え、アドレスが書き換えられたパケットを前記第２ホストに送信する
ことを特徴とするパケット通信システムが提供される。
【００２２】
また、本発明の実施の形態によれば、SDN制御装置と、第１ホストと通信を行う第１SDNスイッチと、第２ホストと通信を行う第２SDNスイッチとを備えるパケット通信システムにおいて実行されるパケット通信方法であって、
前記SDN制御装置が、前記第１SDNスイッチと前記第２SDNスイッチのそれぞれに対してパケットのアドレス変換ルールを指定するステップと、
前記第１SDNスイッチが、前記第１ホストから前記第１SDNスイッチ宛てのパケットを受信し、前記SDN制御装置から指定されたアドレス変換ルールに従って、当該パケットのアドレスを書き換え、アドレスが書き換えられたパケットを前記第２SDNスイッチに送信するステップと、
前記第２SDNスイッチが、前記第１SDNスイッチからパケットを受信し、前記SDN制御装置から指定されたアドレス変換ルールに従って、当該パケットのアドレスを書き換え、アドレスが書き換えられたパケットを前記第２ホストに送信するステップと
を備えることを特徴とするパケット通信方法が提供される。
【発明の効果】
【００２３】
本発明の実施の形態によれば、複数のホストが接続されて構成される処理システムにおいて、ホストの設定変更なしに動的にホスト間の接続制御を行うことを可能とする技術が提供される。
【図面の簡単な説明】
【００２４】
【図１】課題を説明するための図である。
【図２】本発明の実施の形態におけるシステムの構成例を示す図である。
【図３】第１の実施の形態における動作を説明するための図である。
【図４】第１の実施の形態における動作を説明するためのシーケンス図である。
【図５】フローテーブルの状況を説明するための図である。
【図６Ａ】ホスト間接続を確立・変更する際のアドレス変換、ポート番号対応管理方法を説明するための図である。
【図６Ｂ】ホスト間接続を確立・変更する際のアドレス変換、ポート番号対応管理方法を説明するための図である。
【図７】第２の実施の形態における動作を説明するための図である。
【図８】第２の実施の形態における動作を説明するためのシーケンス図である。
【図９】フローテーブルの変化を示す図である。
【図１０】フローテーブルの変化を示す図である。
【図１１】本実施の形態におけるシステムの各装置の構成例を示す図である。
【発明を実施するための形態】
【００２５】
以下、図面を参照して本発明の実施の形態（本実施の形態）を説明する。なお、以下で説明する実施の形態は一例に過ぎず、本発明が適用される実施の形態は、以下の実施の形態に限られるわけではない。
【００２６】
（システム構成例）
図２に、本実施の形態（第１の実施の形態と第２の実施の形態に共通）におけるシステム（パケット通信システムと呼んでもよい）の構成例を示す。本実施の形態におけるシステムは、図１に例示したような単機能なアプリケーション同士がIPネットワーク上で順列に接続され全体の処理が実行されるシステムを想定している。ただし、本発明の適用対象はこのようなシステムに限定されるわけではなく、様々なシステムに適用可能である。
【００２７】
図２に示すシステムは、アプリケーションのローカルネットワーク（プライベートIPアドレスを有する）毎に1台のSDN（Software Defined Networking）スイッチが配置され、それぞれのSDNスイッチがグローバルのIPネットワークを介して直接通信ができる構成を有する。なお、ここでの「アプリケーション」は、アプリケーションのプログラムが動作する装置（物理的なコンピュータであってもよいし、仮想マシンであってもよい）である。以降、当該アプリケーションを「ホスト」と呼ぶ。図２では、データ送信側のアプリケーションを「クライアントホスト」として示し、データ受信側のアプリケーションを「サーバホスト」として示している。
【００２８】
上述したように、図２に示す構成は、プライベートIPアドレスを有するローカルネットワークが1つのSDNスイッチを介してグローバルIP空間で相互接続された構成である。通常のネットワーク構成ではローカルネットワークがGWであるL3スイッチを介して接続されているため、このL3スイッチをSDNスイッチに置き換えるだけで本実施の形態に係るシステムが実現される。
【００２９】
本実施の形態のSDNスイッチは、matchフィールドとactionフィールドを有するフローテーブルを備え、入力されたパケットの情報とmatchフィールドに記述された情報とを比較して、マッチする場合に、actionフィールドに記述された動作（例:ヘッダを書き換えて所定ポートから出力）を実行する。なお、SDNスイッチ自体は既存技術である。以下、本システムの構成をより具体的に説明する。
【００３０】
図２に示すとおり、本実施の形態のシステムには、３つのローカルネットワークが存在し、それぞれプライベートIPアドレス192.168.0.0/24、192.168.10.0/24、192.168.0.0/24のアドレス空間を有している。更に、それぞれのローカルネットワークがSDNスイッチSDN1、SDNスイッチSDN2、SDNスイッチSDN3を介してグローバルアドレスのネットワークに接続されている。以降、SDNスイッチSDN1, SDNスイッチSDN2、SDNスイッチSDN3をそれぞれ、SDN1、SDN2、SDN3と記述する。
【００３１】
SDN1はローカルアドレスとして192.168.0.1を有し、グローバルアドレスとして10.0.1.1、20.0.1.1を有している。同様にSDN2、SDN3はそれぞれ、プライベートアドレスとして、192.168.10.1と192.168.0.1を有し、グローバルアドレスとしてSDN2は10.0.2.1を有し、SDN3は10.0.3.1,と20.0.3.1を有している。グローバルアドレスは相互接続可能なネットワーク３００、４００に接続されている。
【００３２】
本実施の形態では、SDN1、SDN2、SDN3を有するローカルネットワークの名前をそれぞれ「SDN1」、「SDN2」、「SDN3」と呼び、これらを後述する「名前空間によるNAPTポート管理」において名前空間として用いる。
【００３３】
図２に示すとおり、それぞれのローカルネットワークには、複数のホストが存在しプライベートIPアドレスが割り当てられ、ネットワーク接続されている。例えば、クライアントホスト１０には、192.168.0.10が割り当てられ、サーバホスト２０には、192.168.0.11が割り当てられている。
【００３４】
各SDNスイッチは、外部に専用の制御接続線を介してSDN制御装置２００に接続されており、SDN制御装置２００からの指示を受けてパケット交換処理を行う。本実施の形態では、SDN制御装置２００は、SDNコントローラとSDNマネージャを有する装置である。
【００３５】
また、SDN制御装置２００は、ポート割当管理データベース１００を有しており、これによって、アドレス変換対応の状態を管理する。なお、ポート割当管理データベース１００は、SDN制御装置２００の内部機能であってもよいし、SDN制御装置２００の外部に備えられていてもよい。いずれの場合も、SDN制御装置２００は、ポート割当管理データベース１００の各テーブルを参照することができる。
【００３６】
図２に示すシステムにおけるパケットの転送動作例を説明する。一例として、SDN1に属してIPアドレス192.168.0.10を有するクライアントホスト１０から、SDN3に属してIPアドレス192.168.0.11を有するサーバホスト２０へパケットを転送する場合を考える。このとき、クライアントホスト１０はSDN1へ目的のパケットを転送する。SDN1では送信元IPアドレス及び宛先TCP/UDPポート番号からSDN3への転送パケットであることを識別し、SDN3へ転送する。SDN3では、送信元SDNスイッチとTCP/UDPポートからSDN3に属しているIPアドレス192.168.0.11のホストへのパケットであると識別し、パケットを転送する。なお、パケットの識別及びアドレス変換の実現についての詳細は後述する。
【００３７】
以上のようにして、本実施の形態に係るシステムにより、異なるローカルネットワークに属するホスト同士の接続を実現する。
【００３８】
（第１の実施の形態）
以下、第１の実施の形態を説明する。第１の実施の形態では、ホスト（アプリケーション、VM）の設定変更なしに異なるIP空間に配置されたホスト間接続を確立・変更するアドレス変換、及びポート番号対応管理方法について説明する。
【００３９】
＜処理シーケンス例＞
図３は、第１の実施の形態に係る動作について、アドレス変換を分かり易く示した図であり、図４は、第１の実施の形態に係る動作を示すシーケンス図である。以下、図４のシーケンス図に沿って説明する。その説明の中で、適宜、図３を参照する。
【００４０】
第１の実施の形態では、上述した場合と同様に、SDN1に属してIPアドレ192.168.0.10を有するクライアントホスト１０（これを、ホストSDN1::192.168.0.10と記述する）からSDN3::192.168.0.11（サーバホスト２０）上でTCP/80番ポートで待ち受けするサーバプロセスへ接続する場合を考える。
【００４１】
まず、システム運用者がSDN1::192.168.0.10をSDN3::192.168.0.11:80へ接続する指示をSDN制御装置２００に投入する。これにより、SDN制御装置２００からSDN1とSDN3に対して、宛先ポート8080のパケットを10.0.3.1::192.168.0.11:80 （SDN3::192.168.0.11）に接続することを通知する（ステップＳ１０１、Ｓ１０２）。これにより、SDN1は、自分宛ての宛先ポート8080のパケットの監視を開始する（ステップＳ１０３）。
【００４２】
続いて、クライアントホスト１０はtcp/8080番ポートが接続先であることをシステムから通知される（ステップＳ１０４）。クライアントホスト１０は自身の属するSDNスイッチであるSDN1へ向けて宛先IPアドレス192.168.0.1に、宛先ポート番号をtcp/8080番にして、送信元アドレスを自身のIPアドレスである192.168.0.10、送信元ポート番号をランダム決定した整数値、例えば1234、にしてパケットを送出する（ステップＳ１０５）。以後、このパケットをdst=192.168.0.1:8080、src=192.168.0.10:1234として記述する。
【００４３】
図３には、クライアントホスト１０から当該パケットが送出されることが示されている。なお、図３におけるパケットの記述の意味は、図３の右側に例示で記載したとおりである。
【００４４】
SDN1は、dst=192.168.0.1:8080、src=192.168.0.10:1234のパケット情報をキーにして自身のフローテーブルを参照し、既に該当するフローエントリーが登録されているかを調べる。すなわち、マッチの有無を調べる（図４のステップＳ１０６）。初期の状態では該当するフローエントリーが登録されていないため、SDN1は、到着したパケットをSDN制御装置２００（SDNコントローラ）に転送する（ステップＳ１０７）。このようなパケット転送をPacketInと呼ぶ。
【００４５】
PacketInが発生した場合、SDN制御装置２００（SDNマネージャ）は、SDNスイッチ間で用いる中間経路とその対応tcpポートとしてSDN1上の10.0.1.1:6636とSDN3上の10.0.3.1:7749を割り当て、サーバ側ローカルネットワーク内での対応送信元ポート番号として2345を割り当てる（ステップＳ１０８）。その後それらの情報をSDN1とSDN3に通知し、アドレス変換のフローエントリーを登録する（ステップＳ１０９〜Ｓ１１２）。つまり、SDN1とSDN3に対し、パケットのアドレス変換ルール（アドレス書き換えルール）を指定する信号を送信する。この信号には、例えば、図５の示すフローテーブルにおいて、各SDNに該当する内容が含まれている。
【００４６】
以降、SDN1では該当パケットが到着する度にアドレス変換を行いパケットペイロードの情報はそのままに、ヘッダ部分をdst=10.0.3.1:7749、src=10.0.1.1:6636に書き換えて（図３のSDN1における書き換え）、SDN3へパケット転送を行う（図４のステップＳ１１３、Ｓ１１４、Ｓ１１６、Ｓ１１７）。
【００４７】
SDN3ではdst=10.0.3.1:7749、src=10.0.1.1:6636のパケット情報をキーにしてアドレス変換を行い、dst=192.168.0.11:80、src=192.168.0.1:2345として（図３のSDN3における書き換え）、パケットをサーバホスト２０に転送する（図４のステップＳ１１５、Ｓ１１８）。
【００４８】
以上によりクライアントホスト１０からサーバホスト２０へのパケット転送が完了する。逆に、サーバホスト２０からクライアントホスト１０へのパケット転送は以上の逆のアドレス変換を行うことより実現される。上記の例を用いると、まず、サーバホスト２０であるSDN3::192.168.0.11は、dst=192.168.0.1:2345、src=192.168.0.11:80としてパケットを送出する。SDN3において、アドレス変換によりdst=10.0.1.1:6636、src=10.0.3.1:7749としてパケットを転送する。SDN1では、アドレス変換によりdst=192.168.0.10:1234、 src=192.168.0.1:8080としてパケットをSDN1:192.168.0.10のクライアントホスト１０に転送する。
【００４９】
以上により、逆方向のパケット転送も実現され、tcp通信のような双方向通信においても本発明を利用することができる。
【００５０】
＜フローテーブルの例＞
図４のシーケンス図中の破線の時間におけるSDN1及びSDN3上に登録されるフローエントリーについて、図５を参照して説明する。
【００５１】
図５（ａ）に示すとおり、クライアントホスト１０が属するSDN1におけるフローテーブルでは、ローカルネットワークの接続ポートp2から到着したパケットのうちsrc=192.168.0.10:1234、dst=192.168.0.1:8080に該当するパケットが到着した場合（matchフィールド）、アドレス変換・転送処理（actionフィールド）として、dst=10.0.3.1:7749、src=10.0.1.1:6636のアドレス変換を実施した後、グローバルアドレス空間の接続ポートp1に転送するフローエントリーが登録されている。
【００５２】
また、逆方向のパケットに対するフロールールとして、グローバルアドレス空間の接続ポートp1に到着したパケットのうち、dst=10.0.1.1:6636、src=10.0.3.1:7749に該当するパケットに対して、dst=192.168.0.10:1234、src=192.168.0.1:8080のアドレス変換を実施し、ローカルネットワーク接続ポートp2へ転送するフローエントリーが登録されている。
【００５３】
図５（ｂ）に示すように、サーバホスト２０が属するSDN3についても同様のフローエントリーが登録されている。
【００５４】
本実施の形態では、このSDNスイッチ上のフローエントリーを書き換えるのみで、クライアントホスト及びサーバホストの変更なしにホスト間の接続変更が可能である。例えば、上記で説明したフローエントリーのうち、SDN3のサーバホスト２０のIPアドレスである192.168.0.11を192.168.0.22とするのみで、クライアントホストSDN1::192.168.0.10を別のサーバホストSDN3::192.168.0.22への接続に変更することが可能である。
【００５５】
＜アドレス変換、ポート番号対応管理方法について＞
本実施の形態では、tcp/udpポートベースのアドレス変換対応において、ローカルネットワークと接続対象ホストのIPアドレスを名前空間として用いることで、対応付けするポートの干渉検知と、未使用ポート番号の検索の高速化を実現している。以下、図６Ａと図６Ｂを参照して、本実施の形態における名前空間によるNAPTポート管理について説明する。
【００５６】
SDN制御装置２００（SDNマネージャ）は主要変数としてclient_keyとserver_keyを保持する。図６Ａの上側に例示するとおり、client_key、server_keyはローカルネットワークの名前をリージョンIDとして、下記の形式で与えられる変数である。
【００５７】
client_key=リージョンID::クライアントIP:クライアント送信元ポート/クライアント送信先ポート
server_key=リージョンID::サーバIP:サーバlistenポート
例えば、図３で示した例ではclient_key、server_keyは下記の通りになる。
【００５８】
client_key=SDN1::192.168.0.10:1234/8080
server_key=SDN3::192.168.0.11:80
SDN制御装置２００（SDNマネージャ）は、これら変数とともに、ポート割当管理データベース１００を用いてアドレス変換の状態を管理する。図６Ａにおいて「key-valueストアによる定義テーブルとそのデータ構造」として示すように、ポート割当管理データベース１００には以下の4種類のテーブルが含まれる。
【００５９】
（１） SDN間経路候補テーブル inter_sdn_route
（２） SDN間経路テーブル inter_sdn_path
（３） SDN間ポート割当テーブル inter_sdn_port
（４）サーバ側SDNスイッチ送信元ポート番号テーブル server_sdn_local_port
SDN間経路候補テーブル（inter_sdn_route）では、各ローカルネットワーク同士を接続するSDNスイッチ間において、利用可能な経路とそれに対するグローバルIPアドレスを管理している。これらの情報はシステム管理者によって登録される。このテーブルでは接続するリージョンIDの組み合わせをキー（key）にして値（value）を取得することができる。例えば図２の例において、SDN1とSDN3の接続経路に対応するグローバルIPアドレスの候補として、SDN1=10.0.1.1, SDN3=10.0.3.1と、SDN1=20.0.1.1, SDN3=20.0.3.1の２経路がある場合、SDN間経路候補テーブルのkeyとvalueは以下のように表わされる。
【００６０】
key=（SDN1, SDN3）
value=[["10.0.1.1", "10.0.3.1"], ["20.0.1.1", "20.0.3.1"]]
SDN間経路テーブル（inter_sdn_path）では、ホスト間を接続する際に用いる中間経路に対応するSDNスイッチ上のグローバルIPアドレスが保持されている。このテーブルでは接続するclient_keyとserver_keyをキーにして値を取得することができる。例えば、図３の例では、
key=（SDN1::192.168.0.10:1234/8080, SDN3::192.168.0.11:80）
value=[10.0.1.1, 10.0.3.1]
となる。
【００６１】
SDN間ポート割当テーブル（inter_sdn_port）では、ホスト間を接続する際に用いられるSDNスイッチ上での対応tcp/udpポート番号が保持される。このテーブルでは、inter_sdn_pathの値とclient_key, server_keyの組み合わせをキーとして、使用されるポート番号を値として保持する。例えば図３の例では、
key=（10.0.1.1, 10.0.3.1）:（SDN1::192.168.0.10:1234/8080, SDN3::192.168.0.11:80）
value=[6636, 7749]
となる。
【００６２】
サーバ側SDNスイッチ送信元ポート番号テーブル（server_sdn_local_port）では、サーバホストが属するローカルネットワーク内で、SDNスイッチが使用するtcp/udpポート番号を保持する。このテーブルでは、server_keyをキーにして、対応するポート番号が値として保持される。例えば、図３の例では、
key=SDN3::192.168.0.11:80
value=2345
となる。
【００６３】
＜拠点間経路、ポート番号決定手順＞
次に、上記のテーブル構成を前提として、経路／ポート番号の割り当てを行う際に（例：図４のステップＳ１０８）、SDN制御装置２００（SDNマネージャ）が実行する手順例について、図６Ｂを参照して説明する。
【００６４】
まず、接続ホストの設定として、client_key（例：SDN1::192.168.0.10）、server_key（例：SDN3::192.168.0.11）を設定する（ステップＳ１１）。
【００６５】
次に、拠点間経路の一覧の取得を行う（ステップＳ１２）。ここでは、client_key、server_keyから２拠点間の経路(SDNスイッチの外向きのIPアドレスの組)の候補をSDN間経路候補テーブル(inter_sdn_route)から検索する。
【００６６】
そして、拠点間経路の決定を行う（ステップＳ１３）。ここでは、検索された２拠点間の経路候補の内、予め定められているシステムのパス選択基準(例えば可用帯域が最大の経路)に従って使用経路を選択し、(client_key, server_key)をkeyにしてSDN間経路テーブルinter_sdn_pathに登録する。
【００６７】
次に、SDNスイッチ間の対応ポート番号の割り当てを行う（ステップＳ１４）。ここでは、(inter_sdn_path, client_key, server_key)をkeyにしてSDN間ポート割当テーブル(inter_sdn_port)を検索し、テーブル内で未使用のポート番号の組合せをランダムに割り当てる。この際、同テーブルの別のkey(inter_sdn_path)内で使用しているポート番号の組合せを使用しても干渉は起こらない。割り当てたポート番号を同テーブルの同keyに追加登録する。
【００６８】
次に、サーバ側SDNスイッチの拠点内の送受信ポート番号の割り当てを行う（ステップＳ１５）。ここでは、server_keyをkeyにしてサーバ側SDNスイッチ送信元ポート番号テーブル(server_sdn_local_port)内を検索し、テーブル内で未使用のポート番号をランダムに割り当てる。この際、同テーブルの別のkey内で使用しているポート番号を使用しても干渉は起こらない。割り当てたポート番号を同テーブルの同keyに追加登録する。
【００６９】
ここで、上述した「テーブル内で未使用のポート番号の組合せをランダムに割り当てる。この際、同テーブルの別のkey内で使用しているポート番号の組合せを使用しても干渉は起こらない。」という点について、図６Ａ内の「3. SDN間ポート割当テーブル(inter_sdn_port)」の部分に記載された例を用いて詳しく説明する。
【００７０】
この例では、"(10.0.1.1, 10.0.3.1)"というkeyに対し、その中のエントリー(「(SDN1::192.168.0.10:1234/8080, SDN3::192.168.0.11:80)」)に対して"[6636, 7749]"というポート番号を割り当てている。
【００７１】
ここで、新たに"(10.0.1.1, 10.0.2.1)"というkeyでエントリー(例えば、「(SDN1::192.168.0.10:5678/8080, SDN2::192.168.10.11:80)」)が追加される場合、上記と同じポート番号"[6636, 7749]"のポートをアサインしても、各SDNスイッチで上記の2種類のフローを(送信元/宛先IPアドレスから)識別できるので問題なく動作する。すなわち、別のkey内で使用しているポート番号の組合せを使用しても干渉は起こらない。
【００７２】
上記の場合における「SDN間ポート割当テーブル(inter_sdn_port)」は下記の通りとなる。
[
"(10.0.1.1, 10.0.3.1)": { (SDN1::192.168.0.10:1234/8080,SDN3::192.168.0.11:80):[6639,7749] },
"(10.0.1.1, 10.0.2.1)": { (SDN1::192.168.0.10:5678/8080,SDN2::192.168.10.11:80):[6639,7749] }
]
逆に、同じkey、つまり"(10.0.1.1, 10.0.3.1)"内の別エントリー(例えば「(SDN1::192.168.0.20:1234/8080, SDN3::192.168.0.21:80)」)に同じポート番号をアサインしてしまうと、SDNスイッチでこれらのフローを識別できなくなるため、動作しなくなる。すなわち、「SDN間ポート割当テーブル(inter_sdn_port)」が下記の状態になることは許容されない。
[
"(10.0.1.1, 10.0.3.1)": { (SDN1::192.168.0.10:1234/8080,SDN3::192.168.0.11:80):[6639,7749],
(SDN1::192.168.0.20:1234/8080,SDN3::192.168.0.21:80):[6639,7749] }
]
以上、説明したように、本実施の形態では、中間経路で使用されるtcp/updポート番号はクライアントホスト、サーバホスト、及び中間経路を組み合わせたキーによって管理・分離されるため、（１）異なるキーに対しては同一のポート番号割当が可能になり、接続可能数が増大する、（２）同様に、同一ポート使用によるアドレス変換の干渉を同一キー内のテーブルのみに制限できるので、利用可能ポートの検索が高速に可能になる、という利点がある。
【００７３】
（第２の実施の形態）
次に、ホスト（アプリケーション）の設定変更なしに、切り替え時のパケットロスを回避し、SDNスイッチ間のNW経路を変更する方法を第２の実施の形態として説明する。
【００７４】
＜処理シーケンス例＞
図７は、第２の実施の形態に係る動作について、パス切替直後のアドレス変換動作を分かり易く示した図であり、図８は、第２の実施の形態に係る動作を示すシーケンス図である。以下、図８のシーケンス図に沿って説明する。その説明の中で、適宜、図７を参照する。また、図９、図１０は、フローテーブルの変化を示しており、図９、図１０についてもシーケンスの説明の中で適宜、参照する。図９において、フローテーブルＡは、経路切替前を示し、これは、図５と同じである。
【００７５】
本実施の形態におけるネットワーク構成は図２に示したものと同じであり、始めの状態ではSDN1::192.168.0.10のクライアントホスト１０がSDN3::192.168.0.11:80のサーバホスト２０に中間経路（10.0.1.1, 10.0.3.1）で接続されている。
【００７６】
ここでシステム運用者が新しい中間経路として（20.0.1.1, 20.0.3.1）の利用を本システムにアサインする。その後、SDN制御装置２００（SDNマネージャ）は図６Ｂに示した手順で新しい経路（20.0.1.1, 20.0.3.1）に用いる対応ポートを割り当てる（図８のステップＳ２０１）。ここでは、図６Ｂに示すステップＳ１４の手順により、SDNスイッチ間の対応ポート番号の割り当てがなされる。
【００７７】
例えばここでSDN1上の5001番、SDN3上の6001番が割り当てられたとする。その後、SDN制御装置２００において、SDNマネージャはSDNコントローラを介して、SDN1、SDN3に対してグローバルIPネットワークからローカルネットワークへ（外から内へ）のパケットに対してアドレス変換のフローエントリーを追加する（ステップＳ２０２〜ステップＳ２０５）。
【００７８】
具体的には、図９のフローテーブルＢの３段のうちの最下段に示すように、SDN1に対して、接続ポートp3に到着するdst=20.0.1.1:5001, src=20.0.3.1:6001のパケットに対して、dst=192.168.0.10:1234, src=192.168.0.1:8080のアドレス変換を実施した後、接続ポートp2へパケットを転送するフローエントリーが追加される。
【００７９】
同様にSDN3に対しては、接続ポートp3に到着するdst=20.0.3.1:6001、src=20.0.1.1:5001のパケットに対して、dst=192.168.0.11:80、src=192.168.0.1:2345のアドレス変換を実施した後、接続ポートp2へパケットを転送するフローエントリーが追加される。
【００８０】
続いて、SDN制御装置２００において、SDNマネージャはSDNコンントローラを介して、SDN1、SDN3に対してローカルネットワークからグローバルIPネットワークへ（内から外へ）のパケットに対してアドレス変換のフローエントリーを差し替える（図８のステップＳ２０６〜Ｓ２０９）。
【００８１】
具体的には、図１０のフローテーブルＣの３段のうちの最上段に示すように、SDN1に対して、接続ポートp2に到着するdst=192.168.0.1:8080、src=192.168.0.10:1234のパケットに対するアクションを下記の通り書き換える。
【００８２】
旧action: dst=10.0.3.1:7749、src=10.0.1.1:6636へのアドレス変換処理の後、接続ポートp1にパケットを転送する。
【００８３】
新action: dst=20.0.3.1:6001、src=20.0.1.1:5001へのアドレス変換処理の後、接続ポートp3にパケットを転送する。
【００８４】
同様に、SDN3に対して、接続ポートp2に到着するdst=192.168.0.1:2345、src=192.168.0.11:80のパケットに対するアクションを下記の通り書き換える。
【００８５】
旧action: dst=10.0.1.1:6636、src=10.0.3.1:7749へのアドレス変換処理の後、接続ポートp1にパケットを転送する。
【００８６】
新action: dst=20.0.1.1:5001、src=20.0.3.1:6001へのアドレス変換処理の後、接続ポートp3にパケットを転送する。
【００８７】
なお、SDN制御装置２００から、SDN1、SDN3に送信される指示は、上記の書き換え内容を含む指示となる。
【００８８】
続いて、SDN制御装置２００（SDNマネージャ）はこの時点で経路変更する以前の経路上にあるパケットの転送完了を待つために、経路変更前のSDN1とSDN3の間の往復伝搬遅延時間（RTT）待機する（図８のステップＳ２１０）。その後、SDN制御装置２００のSDNマネージャはSDNコンントローラを介して旧経路で用いていたアドレス変換のフローエントリーを削除する（ステップＳ２１１〜Ｓ２１４、図１０のフローテーブルＤ）。
【００８９】
以上で、SDNスイッチ間の経路切替が完了する。この切替は、SDNスイッチ上のフローエントリーの操作だけで完了するため、結果として、ホスト（アプリケーション）の設定変更なしに、かつ、切り替え時のパケットロスを回避しつつ、SDNスイッチ間の経路変更が実現される。
【００９０】
（装置構成）
図１１に、これまでに説明した処理動作を行う各装置の構成例を説明する。各SDNスイッチは同様の構成を有するため、図１１では、代表として、SDNスイッチ５００が示されている。また、図１１の例では、ポート割当管理データベース１００とSDN制御装置２００は別々の装置であるとするが、SDN制御装置２００の中にポート割当管理データベース１００が備えられていてもよい。
【００９１】
図１１に示すように、ポート割当管理データベース１００は、SDN間経路候補テーブル保持部１０１、SDN間経路テーブル保持部１０２、SDN間ポート割当テーブル１０３、サーバ側SDNスイッチ送信元ポート番号テーブル保持部１０４を有する。SDN間経路候補テーブル保持部１０１は、inter_sdn_routeを保持する。SDN間経路テーブル保持部１０２は、inter_sdn_pathを保持する。SDN間ポート割当テーブル１０３は、inter_sdn_portを保持する。サーバ側SDNスイッチ送信元ポート番号テーブル保持部１０４は、server_sdn_local_portを保持する。
【００９２】
SDN制御装置２００は、これまでにSDNマネージャとして説明したSDNマネージャ部２０１と、SDNコントローラとして説明したSDNコントローラ部２０２を有する。SDNマネージャ部２０１は、これまでに説明したとおり、ポート割当管理データベース１００の各テーブルを参照することで、アドレス変換、ポート割当等を実行する。SDNコントローラ部２０２は、SDNスイッチに対して各種の指示（フローテーブル変更内容等）を送信する。
【００９３】
SDNスイッチ５００は、フローエントリー編集部５０１、フローテーブル保持部５０２、パケット受信部５０３、パケットマッチ処理部５０４、アドレス変換部５０５、パケット送信部５０６を有する。
【００９４】
フローエントリー編集部５０１は、SDNコントローラ部２０２からの指示に基づき、フローテーブル保持部５０２に格納されているフローテーブルを編集（追加、差し替え、削除、修正等）する。パケット受信部５０２がパケットを受信すると、パケットマッチ処理部５０４が、パケットの情報（例：受信ポート、宛先／送信元アドレス）と、フローテーブルとを比較し、マッチするエントリーがある場合に、アドレス変換部５０５が、エントリーのアクションの内容に従って、アドレス変換を行い、指定されたポートに相当するパケット送信部５０６からパケットを送出する。
【００９５】
図１１では、ホストの例としてホスト１０を示している。また、スイッチ６００は、ホスト１０とSDNスイッチ５００間でのパケットのスイッチを行う。
【００９６】
本実施の形態におけるSDN制御装置２００は、例えば、１つ又は複数のコンピュータに、本実施の形態で説明する処理内容を記述したプログラムを実行させることにより実現可能である。すなわち、SDN制御装置２００が有する機能は、当該コンピュータに内蔵されるＣＰＵやメモリ等のハードウェア資源を用いて、SDN制御装置２００で実施される処理に対応するプログラムを実行することによって実現することが可能である。上記プログラムは、コンピュータが読み取り可能な記録媒体（可搬メモリ等）に記録して、保存したり、配布したりすることが可能である。また、上記プログラムをインターネットや電子メール等、ネットワークを通して提供することも可能である。なお、上記のプログラムは、各データベースに関わる機能を含まないこととしてもよい。
【００９７】
また、SDNスイッチ５００についても、１つ又は複数のコンピュータに、本実施の形態で説明する処理内容を記述したプログラムを実行させることにより実現可能である。
【００９８】
また、SDN制御装置２００とSDNスイッチ５００のいずれについても、処理を組み込んだハードウェア回路（集積回路）を用いて実現することも可能である。
【００９９】
（実施の形態の効果等）
以上、説明したように、本実施の形態により、ホストが属するローカルネットワークに1台のSDNスイッチが配置され、それぞれのSDNスイッチがIPネットワークを介して直接通信ができるシステムが実現される。また、ホストの設定変更なしに異なるIP空間に配置されたホスト間接続を確立・変更することが可能となる。また、アプリケーションの設定変更なしに、切り替え時のパケットロスを回避し、途中のNW経路を変更することが可能となる。
【０１００】
すなわち、本実施の形態では、SDNスイッチを用いることで、アプリケーションリソースとネットワークリソースを分離して管理することにより、アプリケーションの設定変更なしに動的にホスト間の接続変更、負荷分散追加割当、中間ネットワークパス経路の変更を実現することができる。
【０１０１】
（実施の形態のまとめ）
本実施の形態によれば、SDN制御装置と、第１ホストと通信を行う第１SDNスイッチと、第２ホストと通信を行う第２SDNスイッチとを備えるパケット通信システムであって、前記SDN制御装置が、前記第１SDNスイッチと前記第２SDNスイッチのそれぞれに対してパケットのアドレス変換ルールを指定し、前記第１SDNスイッチは、前記第１ホストから前記第１SDNスイッチ宛てのパケットを受信し、前記SDN制御装置から指定されたアドレス変換ルールに従って、当該パケットのアドレスを書き換え、アドレスが書き換えられたパケットを前記第２SDNスイッチに送信し、前記第２SDNスイッチは、前記第１SDNスイッチからパケットを受信し、前記SDN制御装置から指定されたアドレス変換ルールに従って、当該パケットのアドレスを書き換え、アドレスが書き換えられたパケットを前記第２ホストに送信するパケット通信システムが提供される。
【０１０２】
前記SDN制御装置は、前記第１SDNスイッチと前記第２SDNスイッチとの間で利用可能な候補経路の情報を、ホストが接続されるローカルネットワークの名前を名前空間として使用したキーとともに格納した候補経路テーブルを参照し、前記第１ホストと前記第２ホストに対応するキーに基づき、前記候補経路テーブルから候補経路を取得し、当該候補経路から、前記第１ホストと前記第２ホストとの間の通信に利用する経路を選択する。
【０１０３】
前記SDN制御装置は、前記第１SDNスイッチのポート番号と前記第２SDNスイッチのポート番号の組合せを、前記第１SDNスイッチと前記第２SDNスイッチとの間の経路の情報と、ホストが接続されるローカルネットワークの名前とを有するキーとともに格納したポート割当テーブルを参照し、前記第１ホストと前記第２ホストとの間の通信に対応するキーに基づき、前記ポート割当テーブルを検索し、当該ポート割当テーブル内で未使用のポート番号の組合せを、前記第１ホストと前記第２ホストとの間の通信に利用するポート番号の組合せとして決定する。
【０１０４】
前記第１ホストと前記第２ホストとの間の通信における、前記第１SDNスイッチと前記第２SDNスイッチとの間の経路を新たな経路に変更する場合に、前記SDN制御装置は、前記ポート割当テーブルを検索することにより、新たな経路に対応するポート番号の組合せを決定し、当該組み合わせを含むアドレス変換ルールを、前記第１SDNスイッチと前記第２SDNスイッチのそれぞれに対して指定する。
【０１０５】
また、本実施の形態によれば、SDN制御装置と、第１ホストと通信を行う第１SDNスイッチと、第２ホストと通信を行う第２SDNスイッチとを備えるパケット通信システムにおいて使用される前記SDN制御装置であって、前記第１SDNスイッチと前記第２SDNスイッチのそれぞれに対してパケットのアドレス変換ルールを指定する手段を備え、前記第１ホストから前記第１SDNスイッチ宛てのパケットを受信した前記第１SDNスイッチを、前記SDN制御装置から指定されたアドレス変換ルールに従って、当該パケットのアドレスを書き換え、アドレスが書き換えられたパケットを前記第２SDNスイッチに送信するように動作させ、前記第１SDNスイッチからパケットを受信した前記第２SDNスイッチを、前記SDN制御装置から指定されたアドレス変換ルールに従って、当該パケットのアドレスを書き換え、アドレスが書き換えられたパケットを前記第２ホストに送信するように動作させるSDN制御装置が提供される。
【０１０６】
前記SDN制御装置は、前記第１SDNスイッチのポート番号と前記第２SDNスイッチのポート番号の組合せを、前記第１SDNスイッチと前記第２SDNスイッチとの間の経路の情報と、ホストが接続されるローカルネットワークの名前とを有するキーとともに格納したポート割当テーブルを参照する手段と、前記第１ホストと前記第２ホストとの間の通信に対応するキーに基づき、前記ポート割当テーブルを検索し、当該ポート割当テーブル内で未使用のポート番号の組合せを、前記第１ホストと前記第２ホストとの間の通信に利用するポート番号の組合せとして決定する手段とを備える。
【０１０７】
本実施の形態により、ホストの設定変更を行うことなく、異なるローカルネットワークに配置されたホスト間接続の確立および変更を動的に行うことができる。
【０１０８】
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【０１０９】
１０  クライアントホスト
２０  サーバホスト
１００  ポート割当管理データベース部
１０１  SDN間経路候補テーブル保持部
１０２  SDN間経路テーブル保持部
１０３  SDN間ポート割当テーブル
１０４  サーバ側SDNスイッチ送信元ポート番号テーブル保持部
２００  SDN制御装置
２０１  SDNマネージャ部
２０２  SDNコントローラ部
３００、４００  ネットワーク
５００    SDNスイッチ
５０１  フローエントリー編集部
５０２  フローテーブル保持部
５０３  パケット受信部
５０４  パケットマッチ処理部
５０５  アドレス変換部
５０６  パケット送信部
６００  スイッチ
【図１】
2017123557.tif 000003
【図２】
2017123557.tif 000004
【図３】
2017123557.tif 000005
【図４】
2017123557.tif 000006
【図５】
2017123557.tif 000007
【図６Ａ】
2017123557.tif 000008
【図６Ｂ】
2017123557.tif 000009
【図７】
2017123557.tif 000010
【図８】
2017123557.tif 000011
【図９】
2017123557.tif 000012
【図１０】
2017123557.tif 000013
【図１１】
2017123557.tif 000014