IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

7301365アプリケーションソフトウェアおよび情報処理方法
<>
  • -アプリケーションソフトウェアおよび情報処理方法 図1
  • -アプリケーションソフトウェアおよび情報処理方法 図2
  • -アプリケーションソフトウェアおよび情報処理方法 図3
  • -アプリケーションソフトウェアおよび情報処理方法 図4
  • -アプリケーションソフトウェアおよび情報処理方法 図5
  • -アプリケーションソフトウェアおよび情報処理方法 図6
  • -アプリケーションソフトウェアおよび情報処理方法 図7
  • -アプリケーションソフトウェアおよび情報処理方法 図8
  • -アプリケーションソフトウェアおよび情報処理方法 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-06-23
(45)【発行日】2023-07-03
(54)【発明の名称】アプリケーションソフトウェアおよび情報処理方法
(51)【国際特許分類】
   H04L 67/00 20220101AFI20230626BHJP
【FI】
H04L67/00
【請求項の数】 4
(21)【出願番号】P 2019224392
(22)【出願日】2019-12-12
(65)【公開番号】P2021093062
(43)【公開日】2021-06-17
【審査請求日】2022-08-24
(73)【特許権者】
【識別番号】599002043
【氏名又は名称】学校法人 名城大学
(74)【代理人】
【識別番号】110000497
【氏名又は名称】弁理士法人グランダム特許事務所
(72)【発明者】
【氏名】渡邊 晃
【審査官】小林 義晴
(56)【参考文献】
【文献】金松友哉,他5名,NTMobileにおける通信制御機能の提案と実装,電気学会論文誌C Vol.137 No.12,日本,一般社団法人電気学会,2017年12月01日,第137巻,第12号,pp.1571-1579
【文献】細尾幸宏,他4名,NTMobileにおけるDNS実装の変更が不要なデータベース型端末情報管理手法の検討,情報処理学会研究報告 2012(平成24)年度▲4▼ [CD-ROM] ,日本,一般社団法人情報処理学会,2012年12月15日,pp.1-8
(58)【調査した分野】(Int.Cl.,DB名)
H04L 67/00
(57)【特許請求の範囲】
【請求項1】
オペレーティングシステム上でアプリケーションを起動して情報処理を行う情報処理装置を、
一般のアプリケーションソフトウェアで通信相手のFQDNを指定することによって生成されるDNSクエリを取得するDNSクエリ取得手段と、
前記DNSクエリ取得手段によって取得された前記DNSクエリに含まれる前記FQDN内に特定のドメイン名が含まれているか否か判定する判定手段と、
前記判定手段によって前記FQDN内に特定のドメイン名が含まれていると判定する場合に、通信経路を生成するとともに通信相手の仮想IPアドレスを取得し、前記判定手段によってFQDN内に特定のドメイン名が含まれていないと判定する場合に、前記DNSクエリの送信元IPアドレスを変更してDNSクエリを処理するアプリケーションソフトウェアを介して前記DNSクエリをDNSサーバに送信して通信相手の実IPアドレスを取得するIPアドレス取得手段、
として機能させることを特徴とするアプリケーションソフトウェア。
【請求項2】
オペレーティングシステム上でアプリケーションを起動して情報処理を行う情報処理装置を、
一般のアプリケーションソフトウェアで通信相手のFQDNを指定することによって生成されるDNSクエリを取得するDNSクエリ取得手段と、
前記DNSクエリ取得手段によって取得された前記DNSクエリに含まれる前記FQDN内に特定のドメイン名が含まれているか否か判定する判定手段と、
前記判定手段によって前記FQDN内に特定のドメイン名が含まれていると判定する場合に、通信経路を生成するとともに通信相手の仮想IPアドレスを取得し、前記判定手段によってFQDN内に特定のドメイン名が含まれていないと判定する場合に、前記DNSクエリの送信元IPアドレスを変更して物理NICを介してDNSサーバに前記DNSクエリを送信して通信相手の実IPアドレスを取得するIPアドレス取得手段、
として機能させることを特徴とするアプリケーションソフトウェア。
【請求項3】
オペレーティングシステム上でアプリケーションを起動して情報処理を行わせる情報処理方法であって、
一般のアプリケーションソフトウェアで通信相手のFQDNを指定することによって生成されるDNSクエリを取得する工程と、
前記DNSクエリに含まれる前記FQDN内に特定のドメイン名が含まれているか否か判定する工程と、
前記FQDN内に特定のドメイン名が含まれていると判定する場合に、通信経路を生成するとともに通信相手の仮想IPアドレスを取得し、前記FQDN内に特定のドメイン名が含まれていないと判定する場合に、前記DNSクエリの送信元IPアドレスを変更してDNSクエリを処理するアプリケーションソフトウェアを介して前記DNSクエリをDNSサーバに送信して通信相手の実IPアドレスを取得する工程と、
を含むことを特徴とする情報処理方法。
【請求項4】
オペレーティングシステム上でアプリケーションを起動して情報処理を行わせる情報処理方法であって、
一般のアプリケーションソフトウェアで通信相手のFQDNを指定することによって生成されるDNSクエリを取得する工程と、
前記DNSクエリに含まれる前記FQDN内に特定のドメイン名が含まれているか否か判定する工程と、
前記FQDN内に特定のドメイン名が含まれていると判定する場合に、通信経路を生成するとともに通信相手の仮想IPアドレスを取得し、前記FQDN内に特定のドメイン名が含まれていないと判定する場合に、前記DNSクエリの送信元IPアドレスを変更して物理NICを介してDNSサーバに前記DNSクエリを送信して通信相手の実IPアドレスを取得する工程と、
を含むことを特徴とする情報処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明はアプリケーションソフトウェアおよび情報処理方法に関するものである。
【背景技術】
【0002】
ネットワーク通信に関し、LAN内での通信を前提とすると、柔軟なアプリケーションの開発を行うことができる。しかしながら、インターネット上での通信を考慮すると、NAT(Network Address Translation)越え問題や、移動透過性等の様々な問題を解決する必要がある。これらの問題を解決し、ネットワークをフラット化し、インターネットを大きなLANとして扱う技術が提案されている。
【0003】
例えば、非特許文献1には、NTMobile(Network Traversal with Mobility)を実現するネットワークアプリケーションソフトウェアが開示されている。NTMobileは、端末の不変的なアドレスとして仮想アドレスを用いる。そして、NTMobileは、仮想アドレスを用いて生成される通信パケットを、実アドレスでカプセル化する。
【0004】
非特許文献2には、NTMobileの上記機能を、NTMobile framewоrkライブラリ(NTMfw)と呼ばれるアプリケーションライブラリとして提供する技術が開示されている。
【先行技術文献】
【特許文献】
【0005】
【文献】上醉尾一真、鈴木秀和、内藤克浩、渡邊晃、「IPv4/IPv6混在環境で移動透過性を実現するNTMobileの実装と評価」、情報処理学会論文誌、Vol.54,No.10,pp.2288-2299,2013年10月
【文献】納堂博史、杉原史人、鈴木秀和、内藤克浩、渡邊晃、「実用化に向けたNTMobileフレームワークの実装と評価」電子情報通信学会技術研究報告、Vol.116, No.509, pp.281-288,2017年3月
【発明の概要】
【発明が解決しようとする課題】
【0006】
非特許文献2に開示される技術のように、アプリケーションにNTMfwを組み込むことによって、NTMobileの機能を利用することが可能になる。しかしながら、一般通信とソケットインタフェースが異なるため、既存のアプリケーションをそのまま使用することができないという問題が生じる。また、ユーザが、端末にNTMobileをインストールした状態において、仮想ネットワーク通信(仮想アドレスを用いた通信)と一般のネットワーク通信とを並行して実行できることが求められている。
【0007】
本発明は、既存のアプリケーションソフトウェアを用いて、仮想ネットワーク通信と一般のネットワーク通信とを使い分けることができるアプリケーションソフトウェアおよび情報処理方法を提供することを解決すべき課題としている。
【課題を解決するための手段】
【0008】
第1発明のアプリケーションソフトウェアは、
オペレーティングシステム上でアプリケーションを起動して情報処理を行う情報処理装置を、
一般のアプリケーションソフトウェアで通信相手のFQDNを指定することによって生成されるDNSクエリを取得するDNSクエリ取得手段と、
前記DNSクエリ取得手段によって取得された前記DNSクエリに含まれる前記FQDN内に特定のドメイン名が含まれているか否か判定する判定手段と、
前記判定手段によって前記FQDN内に特定のドメイン名が含まれていると判定する場合に、通信経路を生成するとともに通信相手の仮想IPアドレスを取得し、前記判定手段によってFQDN内に特定のドメイン名が含まれていないと判定する場合に、前記DNSクエリの送信元IPアドレスを変更してDNSクエリを処理するアプリケーションソフトウェアを介して前記DNSクエリをDNSサーバに送信して通信相手の実IPアドレスを取得するIPアドレス取得手段、
として機能させることを特徴とする。
【0009】
第1発明のアプリケーションソフトウェアは、取得した通信相手のFQDNに特定のドメイン名が含まれていると判定する場合、IPアドレス取得手段によってトンネル経路を生成するとともに通信相手の仮想IPアドレスを取得することができる。これにより、一般のアプリケーションソフトウェアは、生成された通信経路を介して仮想IPアドレスを宛先にして仮想ネットワーク通信を行うことができる。一方で、本第1発明のアプリケーションソフトウェアは、取得したFQDN内に特定のドメイン名が含まれていないと判定する場合、DNSクエリを処理するアプリケーションソフトウェアを介してDNSクエリをDNSサーバに送信して通信相手の実IPアドレスを取得することができる。これにより、一般のアプリケーションソフトウェアは、本発明のアプリケーションソフトウェアを介することなく、実IPアドレスを宛先として一般のネットワーク通信を行うことができる。したがって、本第1発明のアプリケーションソフトウェアは、FQDN内に特定のドメイン名が含まれているか否かによって、仮想ネットワーク通信と一般のネットワーク通信とを使い分けることができる。
【0010】
第2発明のアプリケーションソフトウェアは、
オペレーティングシステム上でアプリケーションを起動して情報処理を行う情報処理装置を、
一般のアプリケーションソフトウェアで通信相手のFQDNを指定することによって生成されるDNSクエリを取得するDNSクエリ取得手段と、
前記DNSクエリ取得手段によって取得された前記DNSクエリに含まれる前記FQDN内に特定のドメイン名が含まれているか否か判定する判定手段と、
前記判定手段によって前記FQDN内に特定のドメイン名が含まれていると判定する場合に、通信経路を生成するとともに通信相手の仮想IPアドレスを取得し、前記判定手段によってFQDN内に特定のドメイン名が含まれていないと判定する場合に、前記DNSクエリの送信元IPアドレスを変更して物理NICを介してDNSサーバに前記DNSクエリを送信して通信相手の実IPアドレスを取得するIPアドレス取得手段、
として機能させることを特徴とする。
【0011】
第2発明のアプリケーションソフトウェアは、取得した通信相手のFQDNに特定のドメイン名が含まれていると判定する場合、IPアドレス取得手段によってトンネル経路を生成するとともに通信相手の仮想IPアドレスを取得することができる。これにより、一般のアプリケーションソフトウェアは、生成された通信経路を介して仮想IPアドレスを宛先にして仮想ネットワーク通信を行うことができる。一方で、本第2発明のアプリケーションソフトウェアは、取得したFQDN内に特定のドメイン名が含まれていないと判定する場合、DNSクエリの送信元IPアドレスを変更して物理NICを介してDNSサーバにDNSクエリを送信して通信相手の実IPアドレスを取得することができる。これにより、一般のアプリケーションソフトウェアは、取得した実IPアドレスを宛先として一般のネットワーク通信を行うことができる。
【0012】
第3発明の情報処理方法は、
オペレーティングシステム上でアプリケーションを起動して情報処理を行わせる情報処理方法であって、
一般のアプリケーションソフトウェアで通信相手のFQDNを指定することによって生成されるDNSクエリを取得する工程と、
前記DNSクエリに含まれる前記FQDN内に特定のドメイン名が含まれているか否か判定する工程と、
前記FQDN内に特定のドメイン名が含まれていると判定する場合に、通信経路を生成するとともに通信相手の仮想IPアドレスを取得し、前記FQDN内に特定のドメイン名が含まれていないと判定する場合に、前記DNSクエリの送信元IPアドレスを変更してDNSクエリを処理するアプリケーションソフトウェアを介して前記DNSクエリをDNSサーバに送信して通信相手の実IPアドレスを取得する工程と、
を含むことを特徴とする。
【0013】
第3発明の情報処理方法は、取得した通信相手のFQDNに特定のドメイン名が含まれていると判定する場合、トンネル経路を生成するとともに通信相手の仮想IPアドレスを取得することができる。これにより、一般のアプリケーションソフトウェアは、生成された通信経路を介して仮想IPアドレスを宛先にして仮想ネットワーク通信を行うことができる。一方で、本第3発明の情報処理方法は、取得したFQDN内に特定のドメイン名が含まれていないと判定する場合、DNSクエリを処理するアプリケーションソフトウェアを介してDNSクエリをDNSサーバに送信して通信相手の実IPアドレスを取得することができる。これにより、一般のアプリケーションソフトウェアは、実IPアドレスを宛先として一般のネットワーク通信を行うことができる。したがって、本第3発明の情報処理方法は、FQDN内に特定のドメイン名が含まれているか否かによって、仮想ネットワーク通信と一般のネットワーク通信とを使い分けることができる。
【0014】
第4発明の情報処理方法は、
オペレーティングシステム上でアプリケーションを起動して情報処理を行わせる情報処理方法であって、
一般のアプリケーションソフトウェアで通信相手のFQDNを指定することによって生成されるDNSクエリを取得する工程と、
前記DNSクエリに含まれる前記FQDN内に特定のドメイン名が含まれているか否か判定する工程と、
前記FQDN内に特定のドメイン名が含まれていると判定する場合に、通信経路を生成するとともに通信相手の仮想IPアドレスを取得し、前記FQDN内に特定のドメイン名が含まれていないと判定する場合に、前記DNSクエリの送信元IPアドレスを変更して物理NICを介してDNSサーバに前記DNSクエリを送信して通信相手の実IPアドレスを取得する工程と、
を含むことを特徴とする。
【0015】
第4発明のアプリケーションソフトウェアは、取得した通信相手のFQDNに特定のドメイン名が含まれていると判定する場合、トンネル経路を生成するとともに通信相手の仮想IPアドレスを取得することができる。これにより、一般のアプリケーションソフトウェアは、生成された通信経路を介して仮想IPアドレスを宛先にして仮想ネットワーク通信を行うことができる。一方で、本第4発明のアプリケーションソフトウェアは、取得したFQDN内に特定のドメイン名が含まれていないと判定する場合、DNSクエリの送信元IPアドレスを変更して物理NICを介してDNSサーバにDNSクエリを送信して通信相手の実IPアドレスを取得することができる。これにより、一般のアプリケーションソフトウェアは、取得した実IPアドレスを宛先として一般のネットワーク通信を行うことができる。
【0016】
したがって、第1発明及び第2発明のアプリケーションソフトウェア、並びに第3発明及び第4発明の情報処理方法は、既存のアプリケーションソフトウェアを用いて、仮想ネットワーク通信と一般のネットワーク通信とを使い分けることができる
【図面の簡単な説明】
【0017】
図1図1は、本発明の実施例1の通信システムの構成を概略的に例示する説明図である。
図2図2は、図1のユーザ端末において、オペレーティングシステム上で実現される機能を例示する機能ブロック図である。
図3図3は、図1のユーザ端末において、仮想ネットワークのシグナリング処理方法を説明する説明図である。
図4図4は、図1のユーザ端末において、仮想ネットワークのデータ通信処理方法を説明する説明図である。
図5図5は、図1のユーザ端末において、DNSクエリのFQDN内にドメイン名が含まれていない場合に、DNS応答がPNICから直接DNSリゾルバに渡され、実IPアドレスを取得する方法を説明する説明図である。
図6図6は、図1のユーザ端末において、DNSクエリのFQDN内にドメイン名が含まれていない場合に、DNS応答がPNICからDNS対応アプリを介してVNIC経由でDNSリゾルバに渡され、実IPアドレスを取得する方法を説明する説明図である。
図7図7は、図1のユーザ端末において、一般ネットワーク通信時のデータ送受信方法を説明する説明図である。
図8図8は、本発明の実施例2のユーザ端末において、DNSクエリのFQDN内にドメイン名が含まれていない場合に、DNS応答がPNICから直接DNSリゾルバに渡され、実IPアドレスを取得する方法を説明する説明図である。
図9図9は、本発明の実施例2のユーザ端末において、DNSクエリのFQDN内にドメイン名が含まれていない場合に、DNS応答がPNICからVNアプリを介してVNIC経由でDNSリゾルバに渡され、実IPアドレスを取得する方法を説明する説明図である。
【発明を実施するための形態】
【0018】
次に、本発明のアプリケーションソフトウェア、および情報処理方法を具体化した実施例1、2について、図面を参照しつつ説明する。
【0019】
<実施例1>
(通信システム)
図1に示す通信システム1は、仮想ネットワーク通信および一般ネットワーク通信(実ネットワーク通信)を行うシステムである。通信システム1は、図1に示すように、ユーザ端末10と、第1端末11と、第2端末12と、DC装置20と、DNSサーバ30と、を備えている。ユーザ端末10は、DC装置20に対して仮想ネットワークの接続を要求し、第1端末11と仮想ネットワーク通信を行う。また、ユーザ端末10は、DNSサーバ30に対して名前解決要求(DNSクエリ)を送信し、第2端末12と一般ネットワーク通信(インターネット通信)を行う。
【0020】
ユーザ端末10は、本発明の「情報処理装置」に相当する。ユーザ端末10は、例えばパーソナルコンピュータやスマートフォン等の情報処理装置であり、OS(オペレーティングシステム)上でアプリケーションを起動して情報処理を行う。ユーザ端末10は、例えば、Linux(登録商標)、Windows(登録商標)、Android(登録商標)、およびiOS(登録商標)等のオペレーティングシステムを備えている。図2では、OS40がLinux(登録商標)として構成される例を示す。ユーザ端末10は、一般アプリ50(一般アプリケーションソフトウェア)、VNアプリ60(本発明のアプリケーションソフトウェア)、およびDNS対応アプリ80をダウンロード可能に構成されている。VNアプリ60は、NTMobile(Network Traversal with Mobility)を実現するネットワークアプリケーションソフトウェアである。
【0021】
ユーザ端末10は、図2に示すように、OS40上で実現される各種機能を備えている。OS40は、PNIC41と、VNIC42と、BSDソケット43,44,45と、を備えている。PNIC41(物理NIC)は、物理的に存在している実NIC(Network Interface Card)であり、一般ネットワーク(実ネットワーク)に接続するためのインタフェースである。VNIC42(TUNインタフェース)は、実NICをエミュレーションした仮想的なNICであり、トンネル通信を実現するインタフェースである。BSDソケット44は、VNアプリ60とOS40との間でデータの送受信を行うためのプログラミングインタフェースである。BSDソケット45は、DNS対応アプリ80とOS40との間でデータの送受信を行うためのプログラミングインタフェースである。
【0022】
OS40は、DNSリゾルバをプログラムに含んでいる。DNSリゾルバは、IPアドレスを問い合わせるためのDNSクエリを生成するとともに、DNS応答を受けて、取得したIPアドレスをアプリケーションソフトウェアに返すように機能する。
【0023】
一般アプリ50は、ユーザ端末10にユーザによってインストールされるアプリケーションプログラムであり、OS40によって実行される。例えば、一般アプリ50は、一般ネットワーク通信を介してユーザ端末10にダウンロードされる。
【0024】
VNアプリ(TUNアプリ)60は、ユーザ端末10にユーザによってインストールされるアプリケーションプログラム(仮想ネットワークアプリケーションソフトウェア)であり、OS40によって実行される。例えば、一般アプリ50は、一般ネットワーク通信を介してユーザ端末10にダウンロードされる。VNアプリ60は、一般ネットワーク上に仮想ネットワークを構築するためのアプリケーションプログラムである。VNアプリ60は、図2に示すように、仮想ネットワークライブラリ70が組み込まれている。
【0025】
VNアプリ60は、図2に示すように、パケット解析/中継61、およびDNS応答作成62の機能を備えている。パケット解析/中継61は、本発明の「DNSクエリ取得手段」、「判定手段」に相当する。パケット解析/中継61は、一般アプリ50の依頼でDNSリゾルバが生成するDNSクエリを、VNIC42経由でフックするように機能する。パケット解析/中継61は、DNSクエリ内で示される相手FQDN(Fully Qualified Domain Name)の中に特定のドメイン名が含まれているか否か判断する。パケット解析/中継61は、相手FQDNの中に特定のドメイン名が含まれていると判断する場合、仮想ネットワークライブラリ70のシグナリング処理73に信号を送信する。一方で、パケット解析/中継61は、相手FQDNの中に特定のドメイン名が含まれていないと判断する場合、ドメインソケット64を介してDNS対応アプリ80にDNS信号を送信する。ドメインソケット64は、VNアプリ60とDNS対応アプリ80との間でデータの送受信を行うためのプログラミングインタフェースである。
【0026】
シグナリング処理73は、本発明の「IPアドレス取得手段」に相当する。シグナリング処理73は、シグナリング処理を実行して、後述するDC装置20の指示に従って通信相手(第1端末11)とのトンネル経路を生成する。シグナリング処理73は、さらに、通信相手の仮想IPアドレスを取得する。DNS応答作成62は、シグナリング処理73が取得した通信相手の仮想IPアドレスをDNS応答に記載し、VNIC42を介してDNSリゾルバに送信する。DNSリゾルバは、仮想IPアドレスを取り出して、一般アプリ50に渡す。
【0027】
通信パケット処理71は、仮想IPアドレスにより生成された通信パケットを、実IPアドレスでカプセル化する。TT72は、トンネルテーブルであり、シグナリング処理で生成される。TT72は、通信相手の仮想IPアドレスと実IPアドレスが登録されている。
【0028】
DNS対応アプリ80は、一般アプリ50およびVNアプリ60とは異なるアプリケーションソフトウェアである。DNS対応アプリ80は、ユーザ端末10にユーザによってインストールされるアプリケーションプログラムであり、OS40によって実行される。例えば、一般アプリ50は、一般ネットワーク通信を介してユーザ端末10にダウンロードされる。DNS対応アプリ80は、一般のDNSクエリに関する処理を行い、PNIC41を介してDNSサーバ30にDNSクエリを送信するように機能する。
【0029】
第1端末11は、パーソナルコンピュータやスマートフォン等の情報処理端末であり、OS(オペレーティングシステム)上でアプリケーションを起動して情報処理を行う。ユーザ端末10は、例えば、Linux(登録商標)、Windows(登録商標)、Android(登録商標)、およびiOS(登録商標)等のオペレーティングシステムを備えている。第1端末11は、VNアプリ60を備えている。
【0030】
第2端末12は、パーソナルコンピュータやスマートフォン等の情報処理端末であり、OS(オペレーティングシステム)上でアプリケーションを起動して情報処理を行う。第2端末12は、例えば、Linux(登録商標)、Windows(登録商標)、Android(登録商標)、およびiOS(登録商標)等のオペレーティングシステムを備えている。第2端末12は、VNアプリ60を備えていない。
【0031】
DC(Direction Coordinator)装置20は、一般ネットワーク通信上に配置されるコンピュータであり、ユーザ端末10に重複しない仮想IPアドレスを配布し、通信経路を指示する機能を有する。DC装置20は、VNアプリ60をサポートする装置であり、ユーザ端末10からのアクセスが可能なネットワーク上に接続される。DC装置20は、仮想ネットワーク通信を行うためにVNアプリ60を用いて登録処理された全ての端末の仮想IPアドレスを管理する。
【0032】
DNSサーバ30は、ユーザ端末10からのアクセスが可能なネットワーク上に接続される。DNSサーバ30は、FQDNと実IPアドレス(一般ネットワーク通信に用いられるIPアドレス)を対応付けするように機能する。DNSサーバ30は、ユーザ端末10から送信されるFQDNを含むDNSクエリに対して、FQDNに対応する実IPアドレスを調べてDNS応答として返信する。
【0033】
(仮想ネットワーク通信制御)
次に、通信システム1において、仮想ネットワーク通信を行う際の制御について説明する。
まず、VNアプリ60が、ユーザ端末10の登録処理を実行し、DC装置20から仮想IPアドレスを取得する。このとき、VNアプリ60は、VNIC42を作成し、このVNIC42に取得した仮想IPアドレスを割り当てる。また、DNSクエリがVNIC42へ渡されるようにルーティングテーブルの設定を変更する。これにより、DNSクエリおよび仮想IPアドレス宛のパケットは、全てVNIC42を介してVNアプリ60へ渡されることになる。
【0034】
続いて、通信確立時の動作シーケンスについて説明する。まず、VNアプリ60が通信相手(第1端末11)のFQDNを指定することにより、DNSクエリが送信される。DNSクエリは、図3に示すように、VNIC42を介してVNアプリ60に渡される。DNSクエリは、IPヘッダ、UDPヘッダ、DNSヘッダ、通信相手のFQDNを含んでいる。VNアプリ60は、DNSクエリを受信すると、通信相手(第1端末11)のFQDNの解析を行う。具体的には、パケット解析/中継61が、DNSクエリを取得し、DNSクエリのFQDNに特定のドメイン名が含まれているか否か判断する。
【0035】
VNアプリ60は、FQDNに特定のドメイン名が含まれていた場合、図3に示すように、通信相手のFQDNをシグナリング処理73に渡す。シグナリング処理73は、仮想ネットワークライブラリ70により仮想ネットワークのシグナリング処理を実行して、トンネル経路を生成するとともに、通信相手(第1端末11)の仮想IPアドレスを取得する。ここで、特定のドメイン名とは、特殊な文字列(例えば英数字や記号)である。このとき、PNIC41を介して取得するDNS応答は、IPヘッダ、UDPヘッダ、DNSヘッダ、通信相手の仮想IPアドレスを含んでいる。VNアプリ60は、取得した仮想IPアドレスをDNS応答に記載し、VNIC42を介してDNSリゾルバに送信する。DNSリゾルバは、仮想IPアドレスを取り出して、一般アプリ50に返信する。
【0036】
その後、一般アプリ50は、図4に示すように、通信データを通信相手(第1端末11)の仮想IPアドレス宛に送信する。このデータのパケットは、全てVNIC42を介してVNアプリ60が受け取る。仮想ネットワークライブラリ70は、受け取ったパケットにヘッダ付与や暗号化等の処理を行い、PNIC41を介してカプセル化し、通信相手(第1端末11)に送信する。VNアプリ60は、通信相手(第1端末11)から受信したパケットを、上述した送信処理とは逆の手順により、VNIC42を介して一般アプリ50へ渡す。ユーザ端末10内で受け渡されるパケットは、仮想通信ヘッダ、IPヘッダ、UDP/TCP、通信データ、MAC(Message Authentication Code)を含んでいる。IPヘッダ、UDP/TCP、通信データは、暗号化されている。PNIC41を介して送受信されるパケットは、IPヘッダ、UDPヘッダ、仮想通信ヘッダ、IPヘッダ、UDP/TCP、通信データ、MACを含んでいる。IPヘッダ、UDP/TCP、通信データは、暗号化されている。
【0037】
(一般ネットワーク通信制御)
次に、通信システム1において、一般ネットワーク通信を行う際の制御について説明する。
ユーザ端末10は、FQDNに特定のドメイン名が含まれていない場合、一般ネットワーク通信を行う。例えば、ユーザ端末10は、第2端末12と一般ネットワーク通信を行う。VNアプリ60は、図5に示すように、DNSクエリの送信元IPアドレスを変更して、一般ネットワーク通信のためのDNSクエリ(一般DNSクエリ)を、ドメインソケット64を介してDNS対応アプリ80に渡す。ここで、DNSクエリは、IPヘッダ、UDPヘッダ、DNSヘッダ、相手FQDNを含んでいる。DNS対応アプリ80は、BSDソケット45を介してOS40にDNSクエリ情報を渡す。ここで、DNSクエリ情報は、DNSヘッダ、相手FQDNを含んでいる。OS40は、DNSクエリをPNIC41を介してDNSサーバ30に送信する。ここで、DNSクエリは、IPヘッダ、UDPヘッダ、DNSヘッダ、相手FQDNを含んでいる。
【0038】
続いて、ユーザ端末10は、図5に示すように、DNSサーバ30から送信されるDNS応答を、PNIC41を介して取得する。ここで、PNIC41が取得するDNS応答は、IPヘッダ、UDPヘッダ、DNSヘッダ、通信相手の実IPアドレスを含んでいる。そして、DNSクエリを送信するときの送信元ポート番号(アプリケーションを識別する番号)が、DNSリゾルバの番号になっている場合、DNS応答がPNIC41から直接DNSリゾルバに渡される。これにより、一般アプリ50は、VNアプリ60を介することなく、後述するように、実IPアドレスを宛先として一般のネットワーク通信を行うことができる。
【0039】
なお、ユーザ端末10によるDNSクエリの取得方法は、図6に示す制御のように行ってもよい。DNSクエリを送信するときの送信元ポート番号が、DNS対応アプリ80の番号になっている場合、DNS応答がPNIC41からDNS対応アプリ80を介してVNIC42経由でDNSリゾルバに渡される。PNIC41が取得するDNS応答は、IPヘッダ、UDPヘッダ、DNSヘッダ、通信相手の実IPアドレスを含んでいる。DNS対応アプリ80は、PNIC41を介してDNS応答を取得する。ここで、DNS応答は、DNSヘッダ、通信相手の実IPアドレスを含んでいる。VNアプリ60は、ドメインソケット64を介してDNS対応アプリ80からDNS応答を取得し、VNIC42を介してリゾルバに渡され、一般アプリ50に通信相手の実IPアドレスを認識させる。ここで、DNS応答は、IPヘッダ、UDPヘッダ、DNSヘッダ、通信相手の実IPアドレスを含んでいる。これにより、一般アプリ50は、VNアプリ60を介することなく、後述するように、実IPアドレスを宛先として一般のネットワーク通信を行うことができる。
【0040】
その後、一般アプリ50は、図7に示すように、通信データを通信相手(第2端末12)の実IPアドレス宛に送信する。このデータのパケットは、PNIC41を介して第2端末12に送信する。このパケットは、IPヘッダ、UDP/TCP、通信データを含んでいる。一般アプリ50は、第2端末12から送信されるパケットを、上述した送信処理とは逆の手順により、PNIC41を介して取得する。
【0041】
以上のように、実施例1のVNアプリ60は、パケット解析/中継61によって取得した通信相手(第1端末11)のFQDNに特定のドメイン名が含まれていると判定する場合、シグナリング処理73によってシグナリング処理を実行してトンネル経路を生成するとともに通信相手の仮想IPアドレスを取得することができる。これにより、一般アプリ50は、生成された通信経路を介して仮想IPアドレスを宛先にして仮想ネットワーク通信を行うことができる。一方で、VNアプリ60は、パケット解析/中継61によって取得したFQDN内に特定のドメイン名が含まれていないと判定する場合、DNSクエリを処理するDNS対応アプリ80を介してDNSクエリをDNSサーバに送信して通信相手の実IPアドレスを取得することができる。これにより、一般アプリ50は、VNアプリ60を介することなく、実IPアドレスを宛先として一般のネットワーク通信を行うことができる。したがって、VNアプリ60は、FQDN内に特定のドメイン名が含まれているか否かによって、仮想ネットワーク通信と一般のネットワーク通信とを使い分けることができる。
【0042】
したがって、実施例1のVNアプリ60は、既存の一般アプリ50を用いて、仮想ネットワーク通信と一般のネットワーク通信とを使い分けることができる。特に、VNアプリ60は、仮想ネットワーク通信と一般のネットワーク通信とを並行して同時に行うこともできる。
【0043】
<実施例2>
実施例2の通信システム1は、実施例1の通信システム1に対して、一般ネットワーク通信を行う際の制御が主に異なっている。したがって、通信システム1の詳しい構成、仮想ネットワーク通信を行う際の制御については説明を省略する。
【0044】
(通信システム)
VNアプリ60は、図8に示すように、実施例1と異なりDNS応答作成62の代わりに、DNS要求送信・DNS応答作成262の機能を備えている。DNS要求送信・DNS応答作成262は、仮想ネットワーク通信の制御時に、シグナリング処理73が取得した通信相手の仮想IPアドレスをDNS応答に記載し、VNIC42を介して一般アプリ50に送信する。また、DNS要求送信・DNS応答作成262は、一般ネットワーク通信の制御時に、PNIC41を介して取得した通信相手の実IPアドレスをDNS応答に記載し、VNIC42を介して一般アプリ50に送信する。
【0045】
(一般ネットワーク通信制御)
実施例2の通信システム1において、一般ネットワーク通信を行う際の制御について説明する。
ユーザ端末10は、FQDNに特定のドメイン名が含まれていない場合、一般ネットワーク通信を行う。例えば、ユーザ端末10は、第2端末12と一般ネットワーク通信を行う。VNアプリ60は、DNSクエリの送信元IPアドレスを変更して、図8に示すように、DNS要求送信・DNS応答作成262によってPNIC41を介してDNSサーバ30にDNSクエリ(一般DNSクエリ)を送信する。ここで、DNSクエリは、IPヘッダ、UDPヘッダ、DNSヘッダ、相手FQDNを含んでいる。
【0046】
続いて、ユーザ端末10は、図8に示すように、DNSサーバ30から送信されるDNS応答を、PNIC41を介して取得する。ここで、PNIC41が取得するDNS応答は、IPヘッダ、UDPヘッダ、DNSヘッダ、通信相手の実IPアドレスを含んでいる。そして、DNSクエリを送信するときの送信元ポート番号(アプリケーションを識別する番号)が、DNSリゾルバの番号になっている場合、DNS応答がPNIC41から直接DNSリゾルバに渡される。これにより、一般アプリ50は、VNアプリ60を介することなく、後述するように、実IPアドレスを宛先として一般のネットワーク通信を行うことができる。
【0047】
なお、ユーザ端末10によるDNSクエリの取得方法は、図9に示す制御のように行ってもよい。DNSクエリを送信するときの送信元ポート番号が、VNアプリ60の番号になっている場合、DNS応答がPNIC41からVNアプリ60を介してVNIC42経由でDNSリゾルバに渡される。DNS要求送信・DNS応答作成262は、PNIC41を介して取得した通信相手の実IPアドレスをDNS応答に記載し、VNIC42を介してリゾルバに渡され、一般アプリ50に通信相手の実IPアドレスを認識させる。ここで、DNS応答は、IPヘッダ、UDPヘッダ、DNSヘッダ、通信相手の実IPアドレスを含んでいる。
【0048】
その後、一般アプリ50は、上述した実施例1と同様の方法(図7参照)によってパケット通信を行う。
【0049】
以上のように、実施例2のVNアプリ60は、取得したFQDN内に特定のドメイン名が含まれていないと判定する場合、DNSクエリの送信元IPアドレスを変更してPNIC41を介してDNSサーバ30にDNSクエリを送信して通信相手(第2端末12)の実IPアドレスを取得することができる。これにより、一般アプリ50は、実IPアドレスを宛先として一般のネットワーク通信を行うことができる。
【0050】
したがって、実施例2のVNアプリ60は、既存の一般アプリ50を用いて、仮想ネットワーク通信と一般のネットワーク通信とを使い分けることができる
【0051】
本発明は上記記述及び図面によって説明した実施例1及び2に限定されるものではなく、例えば次のような実施例も本発明の技術的範囲に含まれる。
実施例1では、通信システム1において、第1端末および第2端末をそれぞれ1つ例示した。しかしながら、第1端末および第2端末がともに複数存在していてもよい。すなわち、ユーザ端末10は、異なる仮想IPアドレスが割り当てられた複数の第1端末と仮想ネットワーク通信を行い、異なる実IPアドレスが割り当てられた複数の第2端末12と一般ネットワーク通信を行う構成であってもよい。
【符号の説明】
【0052】
1…通信システム
10…ユーザ端末(情報処理装置)
11…第1端末
12…第2端末
20…DC装置
30…DNSサーバ
41…PNIC
42…VNIC
43,44,45…BSDソケット
50…一般アプリ(一般のアプリケーションソフトウェア)
60…VNアプリ(アプリケーションソフトウェア)
61…パケット解析/中継(DNSクエリ取得手段、判定手段)
62…DNS応答作成
63…アドレス変化検出
64…ドメインソケット
70…仮想ネットワークライブラリ
71…通信パケット処理
73…シグナリング処理(IPアドレス取得手段)
80…DNS対応アプリ(DNSクエリを処理するアプリケーションソフトウェア)
262…DNS要求送信・DNS応答作成
図1
図2
図3
図4
図5
図6
図7
図8
図9