JP2010283594A - 通信装置及び通信可能性判定方法 - Google Patents

通信装置及び通信可能性判定方法 Download PDF

Info

Publication number
JP2010283594A
JP2010283594A JP2009135246A JP2009135246A JP2010283594A JP 2010283594 A JP2010283594 A JP 2010283594A JP 2009135246 A JP2009135246 A JP 2009135246A JP 2009135246 A JP2009135246 A JP 2009135246A JP 2010283594 A JP2010283594 A JP 2010283594A
Authority
JP
Japan
Prior art keywords
communication
address
packet
test packet
port
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2009135246A
Other languages
English (en)
Other versions
JP2010283594A5 (ja
Inventor
Hiroyuki Shimoosawa
博之 下大沢
Akira Miyajima
晃 宮嶋
Yasuhiro Kato
康宏 加藤
Shusuke Terado
周介 寺戸
Reiko Mori
麗子 森
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Corp
Original Assignee
Panasonic Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Panasonic Corp filed Critical Panasonic Corp
Priority to JP2009135246A priority Critical patent/JP2010283594A/ja
Publication of JP2010283594A publication Critical patent/JP2010283594A/ja
Publication of JP2010283594A5 publication Critical patent/JP2010283594A5/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Small-Scale Networks (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】アドレス変換が必要なネットワーク間において、速やかに通信可能性を判定し、短時間で通信可能な通信経路を構築できるようにする。
【解決手段】通信装置であるVPN装置101は、WAN200を経由して通信を行う相手装置であるVPN装置301との通信可能性を判定する通信テスト部を有する。通信可能性判定の動作として、STUNサーバ201に対してテストパケットを送信し、アドレス変換機能を持つ中継装置であるルータ102のWAN200側から自装置にアクセス可能なアドレス情報である、外部アドレス・ポート情報を含む応答パケットを受信する。テストパケットとして、少なくとも2つのテストパケットを異なるアドレスに対して送信し、異なるアドレスからの応答パケットに含まれる外部アドレス・ポート情報によって、通信可能性を判定する。
【選択図】図1

Description

本発明は、ネットワークを介して通信装置が互いに通信をするために必要な情報を取得して通信経路を構築する際の通信テスト機能を持つ通信装置に関する。
通信装置が複数のネットワーク間で経路を構築して互いに通信するには、ネットワーク相互間において透過的にアドレスを割り当てることができ、通信パケット中のアドレスを書き換える処理が必要となる。そこで、ネットワークアドレス変換(NAT:Network Address Translation [RFC2663])機能が提案された。そして、一般に、LAN(Local Area Network)に接続された通信装置は、IP(Internet Protocol)ネットワークではプライベートIPアドレス(またはローカルアドレス)が割り当てられ、LAN外部のネットワークとの間はルータ(あるいはサーバ)のNAT機能を用いてアドレス変換を行う構成が普及している。
NAT機能が普及するにつれて、NATを越えた先に存在するであろう相手との間で通信を行うために、STUN(Simple Traversal of User Datagram Protocol (UDP) through Network Address Translators (NATs) [RFC3489])技術が提案された(例えば、特許文献1参照)。STUN技術は、グローバルなネットワーク上にSTUNサーバを設けて、通信装置側からNAT機能を有するルータを介してサーバにテストメッセージを送信し、応答が得られたかどうか、及び得られた応答の内容から、NATを越えて通信するために必要な情報(例えば、グローバルIPアドレス、ポート番号、及びNATの種別)を取得しようとするものである(例えば、特許文献1、図9参照)。ところが、STUN技術によっても誤判定を生じる場合があることが知られるに至った。
そこでさらに、NATの種別判定を正確に行うための提案がなされた。例えば、NAT設定規則等を予め登録するデータベースと、データベースの蓄積情報に基づいてLANのファイアウォールのNATアドレス変換情報等を作成するアドレス変換情報作成手段とを備えた技術が提案された(例えば、特許文献2、図7から12参照)。あるいはまた、STUN技術に加えて、NAT検査要求メッセージの送信を繰り返し行うことによって、NATの種別判定を正確に行う技術も提案された(例えば、特許文献1、図17、18参照)。
特開2006−253824号(特許第4084365号)公報 特開2002−261788号公報
しかしながら、STUN技術によって網羅されないNATの種類が存在することを踏まえて、上記のようにNATの種別を正確に判定するためにテストメッセージの送信を繰り返せば、判定結果を得るまでに時間が浪費されるという課題がある。さらに、時間をかけて得られた判定結果はあくまでNATの種別判定であって、実際にNATを越えて通信するための通信経路を接続するまでは、通信可能性の判定が確定しないという課題がある。
本発明は、上記事情に鑑みてなされたもので、その目的は、アドレス変換が行われるネットワーク間において、速やかに通信可能性を判定し、短時間で通信可能な通信経路を構築することのできる通信装置及び通信可能性判定方法を提供することにある。
本発明は、第1の態様として、アドレス変換機能を持つ中継装置を介して相手装置との間で通信を行う通信装置であって、前記中継装置の外部側から自装置にアクセス可能なアドレス情報である、外部アドレス・ポート情報を返信する機能を持つアドレス情報提供装置に対して、前記相手装置との通信可能性を判定するためのテストパケットを送信するテストパケット送信部と、前記テストパケットに対する応答パケットに含まれる外部アドレス・ポート情報の内容に基づき、前記相手装置との通信可能性を判定する通信可能性判定部と、を備え、前記テストパケット送信部は、前記テストパケットとして、少なくとも2つのテストパケットを異なるアドレス・ポートに対して送信するものであり、前記通信可能性判定部は、前記異なるアドレス・ポートからの応答パケットに含まれる外部アドレス・ポート情報によって通信可能性を判定する通信装置を提供する。
また、本発明は、第2の態様として、上記の通信装置であって、前記通信可能性判定部は、前記異なるアドレス・ポートからの応答パケットに含まれる外部アドレス・ポート情報が同一である場合に、前記相手装置との通信が可能であると判定するものを含む。
また、本発明は、第3の態様として、上記の通信装置であって、前記通信可能性判定部は、前記異なるアドレス・ポートからの応答パケットに含まれる外部アドレス・ポート情報が同一でない場合、及び、前記異なるアドレス・ポートの少なくとも一方からの応答パケットが確認できない場合に、前記相手装置との通信が不可能であると判定するものを含む。
また、本発明は、第4の態様として、上記の通信装置であって、前記テストパケット送信部は、第1のテストパケットと第2のテストパケットとをそれぞれ前記アドレス情報提供装置の異なるアドレス・ポートに対して一斉に送信するものであり、前記通信可能性判定部は、前記第1のテストパケットに対する応答パケットと前記第2のテストパケットに対する応答パケットのそれぞれに含まれる外部アドレス・ポート情報が同一である場合に、前記相手装置との通信が可能であると判定するものを含む。
また、本発明は、第5の態様として、上記の通信装置であって、前記テストパケット送信部は、第1のテストパケットを、前記アドレス情報提供装置の第1のアドレス・ポートに対して送信し、第2のテストパケットを、前記第1のテストパケットに対する応答パケットに含まれる前記アドレス情報提供装置の第2のアドレス・ポートに対して送信するものであり、前記通信可能性判定部は、前記第1のテストパケットに対する応答パケットと前記第2のテストパケットに対する応答パケットのそれぞれに含まれる外部アドレス・ポート情報が同一である場合に、前記相手装置との通信が可能であると判定するものを含む。
また、本発明は、第6の態様として、上記の通信装置であって、前記テストパケット送信部は、第1のテストパケットを、前記アドレス情報提供装置の第1のアドレス・ポートに対して送信し、第2のテストパケットを、前記第1のテストパケットに対する応答パケットに含まれる前記アドレス情報提供装置の第2のアドレス・ポートに対して、また、第3のテストパケットを、前記第1のテストパケットの宛先及び前記第2のテストパケットの宛先のそれぞれに対しアドレス及びポートの少なくとも一方が異なる宛先に対して、さらに、前記第3のテストパケットが前記第1のテストパケットからみて3宛先目となるように、前記第2のテストパケットと前記第3のテストパケットとを一斉に送信するものであり、前記通信可能性判定部は、前記第2のテストパケットに対する応答パケットと前記第3のテストパケットに対する応答パケットのそれぞれに含まれる外部アドレス・ポート情報が同一である場合に、前記相手装置との通信が可能であると判定するものを含む。
また、本発明は、第7の態様として、上記の通信装置であって、前記中継装置は、前記アドレス変換機能としてNAT機能を有するものであり、前記通信可能性判定部は、前記中継装置のNATを透過する通信の可能性を判定するものを含む。
また、本発明は、第8の態様として、上記の通信装置であって、前記アドレス情報提供装置は、STUN(Simple Traversal of User Datagram Protocol (UDP) through Network Address Translators (NATs))プロトコルを実行するSTUNサーバであり、前記テストパケット送信部は、前記STUNサーバに対して前記テストパケットを送信するものを含む。
また、本発明は、第9の態様として、上記の通信装置であって、前記相手装置と自装置との間で仮想プライベートネットワークを構築して通信を行うVPN装置の機能を持つものを含む。
本発明は、第10の態様として、アドレス変換機能を持つ中継装置を介して相手装置との間で通信を行う通信装置における通信可能性判定方法であって、前記中継装置の外部側から自装置にアクセス可能なアドレス情報である、外部アドレス・ポート情報を返信する機能を持つアドレス情報提供装置に対して、前記相手装置との通信可能性を判定するためのテストパケットを送信するステップと、前記テストパケットに対する応答パケットに含まれる外部アドレス・ポート情報の内容に基づき、前記相手装置との通信可能性を判定するステップと、を有し、前記テストパケットとして、少なくとも2つのテストパケットを異なるアドレス・ポートに対して送信し、前記判定において、前記異なるアドレス・ポートからの応答パケットに含まれる外部アドレス・ポート情報によって通信可能性を判定する通信可能性判定方法を含む。
本発明は、第11の態様として、コンピュータに、アドレス変換機能を持つ中継装置を介して相手装置との間で通信する際の通信テストを行う機能を実現させるプログラムであって、前記中継装置の外部側から自装置にアクセス可能なアドレス情報である、外部アドレス・ポート情報を返信する機能を持つアドレス情報提供装置に対して、前記相手装置との通信可能性を判定するためのテストパケットを送信するテストパケット送信部と、前記テストパケットに対する応答パケットに含まれる外部アドレス・ポート情報の内容に基づき、前記相手装置との通信可能性を判定する通信可能性判定部と、を含み、前記テストパケット送信部は、前記テストパケットとして、少なくとも2つのテストパケットを異なるアドレス・ポートに対して送信するものであり、前記通信可能性判定部は、前記異なるアドレス・ポートからの応答パケットに含まれる外部アドレス・ポート情報によって通信可能性を判定する、各部の機能をコンピュータに実現させるプログラムを提供する。
本発明は、第12の態様として、コンピュータに、アドレス変換機能を持つ中継装置を介して相手装置との間で通信する際の通信テストを行う機能を実現させるプログラムを格納した記憶媒体であって、前記中継装置の外部側から自装置にアクセス可能なアドレス情報である、外部アドレス・ポート情報を返信する機能を持つアドレス情報提供装置に対して、前記相手装置との通信可能性を判定するためのテストパケットを送信するテストパケット送信部と、前記テストパケットに対する応答パケットに含まれる外部アドレス・ポート情報の内容に基づき、前記相手装置との通信可能性を判定する通信可能性判定部と、を含み、前記テストパケット送信部は、前記テストパケットとして、少なくとも2つのテストパケットを異なるアドレス・ポートに対して送信するものであり、前記通信可能性判定部は、前記異なるアドレス・ポートからの応答パケットに含まれる外部アドレス・ポート情報によって通信可能性を判定する、各部の機能をコンピュータに実現させるプログラムを格納した記憶媒体を提供する。
上記構成により、例えばSTUNサーバ等のアドレス情報提供装置に対して、少なくとも2つのテストパケットを異なるアドレス・ポートに対して送信し、これらのテストパケットに対する異なるアドレス・ポートからの応答パケットに含まれる外部アドレス・ポート情報に基づき通信可能性を判定することによって、少ないテスト回数によって速やかに通信可能性を判定可能となる。例えば、2つのテストパケットを一斉に送信して応答パケットを得る1回のテストによって、応答パケットに含まれる外部アドレス・ポート情報が同じかどうかによって短時間に通信可能性を判定できる。これにより、アドレス変換が必要なネットワーク間において、速やかに通信可能性を判定し、短時間で通信可能な通信経路を構築することが可能となる。
本発明によれば、アドレス変換が行われるネットワーク間において、速やかに通信可能性を判定し、短時間で通信可能な通信経路を構築することが可能な通信装置及び通信可能性判定方法を提供できる。
本発明の実施形態に係る通信装置を用いてVPNシステムを構築した場合のネットワークの構成例を示す図 本実施形態に係る通信装置のハードウェア構成の構成例を示すブロック図 本実施形態に係る通信装置の機能的な構成例を示すブロック図 本実施形態に係る通信装置を用いたVPNシステムにおける通信可能性判定の処理手順を示すシーケンス図 通信可能性判定処理における各パケットの一例を示す図 通信可能性判定処理における判定結果の一例を示す図 本実施形態の通信装置における通信可能性判定の処理内容を示すフローチャート 本実施形態に係る通信可能性判定の第1変形例の処理手順を示すシーケンス図 本実施形態に係る通信可能性判定の第2変形例の処理手順を示すシーケンス図
以下に、本発明に係る通信装置、通信可能性判定方法、及び記憶媒体の一例としての実施形態を説明する。ここでは、広域ネットワーク(WAN、グローバルネットワーク)を介して2つのローカルエリアネットワークの経路を(LAN、ローカルネットワーク)経路接続して仮想プライベートネットワーク(VPN)システムを構築する場合に適用した構成例を示す。LANとしては、有線LANまたは無線LANなどが用いられる。WANとしては、インターネット等が用いられる。
図1は本発明の実施形態に係る通信装置を用いてVPNシステムを構築した場合のネットワークの構成例を示す図である。本実施形態に係るVPNシステムは、一つの拠点に設けられたLAN100と、他の拠点に設けられたLAN300とを、インターネット等のWAN200を介して通信経路を接続する。そして、LAN100の配下に接続された端末103とLAN300の配下に接続された端末303との間で、VPNによる秘匿性を担保した通信(以下、「VPN通信」と称する)を可能にしている。具体的なVPN通信の用途(アプリケーションプログラム等)としては、IP電話(音声通話)、ネットミーティング(動画&音声通信)、ネットワークカメラ(ビデオ伝送)などが想定される。
LAN100とWAN200との境界には中継装置の一例としてのルータ102が配設され、WAN200とLAN300との境界には中継装置の一例としてのルータ302が配設されている。また、本実施形態では、VPNの構築を可能にするために、LAN100にはVPN装置101が接続され、LAN300にはVPN装置301が接続されている。そして、VPN装置101には配下の端末103が接続され、VPN装置301には配下の端末303が接続されている。なお、ルータ102、302はそれぞれ本発明の「アドレス変換機能を持つ中継装置」に相当する。さらに、VPN装置101、301はそれぞれ本発明の「通信装置」に相当する。なお、本実施形態に係る通信装置の一例としてのVPN装置101、301は、ここでは中継装置等において構成される独立した装置の構成例を示しているが、LAN内の他の通信機器または端末等においてVPN機能を有する装置として構成することも可能である。
また、WAN200上には、VPN装置101とVPN装置301との間のVPNによる接続(以下、「VPN接続」と称する)を可能にするために、STUNサーバ201と呼制御サーバ202とが接続されている。STUNサーバ201は、STUN(Simple Traversal of User Datagram Protocol (UDP) through Network Address Translators (NATs))プロトコルを実行するために用いられるサーバである。すなわち、STUNサーバ201は本発明の「外部アドレス・ポート情報を返信する機能を持つアドレス情報提供装置」に相当する。呼制御サーバ202は、VPN装置または端末等のピア間の発呼、着呼のために用いられるサーバである。
図1において、破線は外部アドレスとポートの情報を含む外部アドレス・ポート情報の流れを示している。また、一点鎖線は発呼及び着呼の制御に関する呼制御信号の流れを示している。また、実線はピア間で伝送される通信データに関するピア間通信の流れを示している。さらに、ピア間通信のためにVPN接続された通信経路を仮想トンネルとして、図中に表す。
各機器がWAN200を介して通信する場合、WAN200上では、伝送するパケットの送信元または送信先を特定するためのアドレス情報として、WANにおいて特定可能なグローバルなアドレス情報が用いられる。一般にはIPネットワークが用いられるため、グローバルIPアドレス及びポート番号が用いられる。しかし、各LAN100、300内の通信においては、送信元または送信先を特定するためのアドレス情報として、LAN内のみで特定可能なローカルなアドレス情報が用いられる。一般にはIPネットワークが用いられるため、ローカルIPアドレス及びポート番号が用いられる。したがって、各LAN100、300とWAN200との間の通信を可能にするために、アドレス変換機能の例として、ローカルなアドレス情報とグローバルなアドレス情報との相互変換を行うNAT(Network Address Translation)機能が各ルータ102、302に搭載されている。すなわち、アドレス変換機能とは、IPネットワーク層のIPアドレスと、トランスポート層のポートとを含めた、いわゆるNAPT(Network Address Port Translation)に相当する相互変換を行う。以下本発明の説明において、NAT機能とは狭義のNAPT機能を含めた広義のNAT機能を指すものとする。
ただし、LAN100、300の配下の各端末103、303においては、外部からアクセス可能なグローバルなアドレス情報を自身で持っていない。また、特別な設定を行わない限り、LAN100配下の端末103が他のLAN300配下の端末303と直接通信することはできない。また、各ルータ102、302のNAT機能のため、普通の状態ではWAN200側から各LAN100、300内の各端末にアクセスすることもできない。すなわち「外部アドレス・ポート情報」とは、WAN200へ接続するために必要なアドレス・ポート情報であって、LAN100、300内で特定されるローカルなアドレス・ポート情報で機能しているVPN装置101、301からみて、グローバルネットワークWAN200は外部にあたることから「外部アドレス・ポート情報」と略称する。なお、「アドレス・ポート」は、アドレスのみ、アドレス及びポート、のいずれかを意味するものとする。
このような状況であっても、本実施形態では、各拠点のLANに設けたVPN装置101、301において通信の可能性を判定する通信可能性判定部を備えるようにし、速やかに通信可能性の判定を可能にする。これにより、図1において実線で示すピア間通信の経路のように、LAN間をVPN接続して通信経路を構築し、端末103と端末303との間で仮想的な閉じられた通信経路を通じて直接通信することが可能になる。本実施形態に係る通信装置としてのVPN装置の構成、機能、及び動作については、以下に順を追って説明する。
STUNサーバ201は、STUNプロトコルの実行に関するサービスを行うもので、NATを透過する通信(いわゆるNAT越えの通信)を行うために必要な情報を提供するアドレス情報サーバである。STUNは、音声、映像、文章などの双方向リアルタイムIP通信を行うアプリケーションにおいて、NAT透過の方法の1つとして使われる標準化されたクライアントサーバ型のインターネットプロトコルである。STUNサーバ201は、アクセス元からの要求に応じて、外部からアクセス可能な当該アクセス元のグローバルなアドレス情報として、外部ネットワークから見える外部アドレスとポートの情報を含む外部アドレス・ポート情報を返信する。外部アドレス・ポート情報としては、IPネットワークにおいてはグローバルIPアドレス及びポート番号が用いられる。このSTUNサーバ201は、VPN装置101、301、端末103、303等に対するアドレス情報提供装置の機能を有している。
各VPN装置101、301は、STUNサーバ201との間で所定のテスト手順の通信を実行し、STUNサーバ201から自装置のグローバルIPアドレス及びポート番号が含まれる応答パケットを受信する。これにより、各VPN装置101、301は自装置のグローバルIPアドレス及びポート番号を取得することができる。また、自装置の位置するLANとWANとの間にルータが複数存在する場合等であっても、これらのルータ等がUPnP(Universal Plug and Play)の機能を有していない場合であっても、確実にグローバルIPアドレス及びポート番号を取得できるという効果もある。
呼制御サーバ202は、特定の相手先を呼び出して通信経路を確立するための通信装置間の呼制御に関するサービスを行う中継サーバである。呼制御サーバ202は、登録された各ユーザまたは端末の識別情報を保持しており、例えばIP電話の機能を有する通信システムの場合には、接続相手の電話番号に基づいて特定の相手先を呼び出すことができる。また、呼制御サーバ202は、信号またはデータを中継する機能を有しており、発信側の装置から送出されたパケットを着信側の装置に転送したり、着信側の装置から送出されたパケットを発信側の装置に転送することも可能である。
呼制御サーバ202は、特定の相手先を呼び出して通信経路を確立するための通信装置間の呼制御に関するサービスを行う中継サーバである。呼制御サーバ202は、登録された各ユーザまたは端末の識別情報を保持しており、例えばIP電話の機能を有する通信システムの場合には、接続相手の電話番号に基づいて特定の相手先を呼び出すことができる。また、呼制御サーバ202は、信号またはデータを中継する機能を有しており、発信側の装置から送出されたパケットを着信側の装置に転送したり、着信側の装置から送出されたパケットを発信側の装置に転送することも可能である。
なお、STUNサーバ201及び呼制御サーバ202は、ここでは別個のサーバによる構成例を示しているが、1つのサーバにこれらのアドレス情報サーバと中継サーバの2つのサーバの機能を搭載して構成してもよいし、WAN上の他のいずれかのサーバに同様の機能を搭載して構成することも可能である。
次に、本実施形態に係る通信装置としてのVPN装置の構成及び機能について説明する。なお、VPN装置101とVPN装置301の構成及び機能は同様であり、ここではVPN装置101によって説明する。図2は本実施形態に係る通信装置のハードウェア構成の構成例を示すブロック図である。
VPN装置101は、マイクロコンピュータ(CPU)111、フラッシュRAM等による不揮発性メモリ112、SD RAM等によるメモリ113、ネットワークインタフェース114、ネットワークインタフェース115、LAN側ネットワーク制御部116、WAN側ネットワーク制御部117、通信中継部118、表示制御部119、表示部120を有して構成される。
マイクロコンピュータ111は、所定のプログラムを実行することによりVPN装置101全体の制御を実施する。不揮発性メモリ112は、マイクロコンピュータ111が実行するプログラムを保持している。このプログラムの中には、VPN装置101が他の通信装置との通信可能性を判定するための通信テストプログラムも含まれている。
なお、マイクロコンピュータ111が実行するプログラムについては、任意の通信経路を経由してオンラインで外部のサーバから取得することもできるし、例えばメモリカード、CD−ROMのような記録媒体から読み込んで取得することもできる。換言すれば、汎用のコンピュータ(マイクロコンピュータ111)にVPN装置の機能を実現するプログラムを記録媒体から読み込むことによってVPN装置、およびVPNネットワーキング方法を実現することができる。
なお、マイクロコンピュータ111がプログラムを実行する時には、不揮発性メモリ112上のプログラムの一部がメモリ113上に展開され、メモリ113上のプログラムが実行される場合もある。
メモリ113は、VPN装置101の運用中のデータ管理、各種設定情報などを一時的に記憶するためのものである。設定情報としては、自装置の外部アドレス・ポート取得要求に対する応答に含まれる外部アドレス・ポート情報等、通信に必要な宛先アドレス情報などが含まれる。
ネットワークインタフェース114は、VPN装置101と自装置が管理する配下の端末103とを通信可能な状態で接続するためのインタフェースである。ネットワークインタフェース115は、VPN装置101とLAN100とを通信可能な状態で接続するためのインタフェースである。LAN側ネットワーク制御部116は、LAN側のネットワークインタフェース114に関する通信制御を行うものである。WAN側ネットワーク制御部117は、WAN側のネットワークインタフェース115に関する通信制御を行うものである。
通信中継部118は、LAN側に接続された配下の端末103から外部のVPN接続先(VPN装置301配下の端末303)へ送出するパケットデータと、反対に、外部のVPN接続先(VPN装置301配下の端末303)から配下の端末103宛に到着したパケットデータをそれぞれ中継する。
表示部120は、VPN装置101としての動作状態の表示等を行う表示器により構成され、各種状態をユーザあるいは管理者に通知する。表示部120は、複数の発光ダイオード(LED)または液晶表示器(LCD)等により構成される。表示制御部119は、表示部120の表示制御を行うもので、マイクロコンピュータ111からの表示信号に従って表示部120に表示する内容等を制御する。
図3は本実施形態に係る通信装置の機能的な構成例を示すブロック図である。
VPN装置101は、機能構成として、システム制御部130、配下端末管理部131、メモリ部132、データ中継部133、設定用インタフェース部134、通信制御部140を有して構成される。メモリ部132は、外部アドレス・ポート情報記憶部135を有する。通信制御部140は、通信テスト部146、外部アドレス・ポート取得部141、VPN機能部142、呼制御機能部143を有する。VPN機能部142は、暗号処理部145を有する。これらの各機能は、図2に示した各ブロックのハードウェアの動作、またはマイクロコンピュータ111が所定のプログラムを実行することにより実現する。
なお、VPN装置101のLAN側のネットワークインタフェース114は、配下の端末103と接続され、WAN側のネットワークインタフェース115は、LAN100及びルータ102を経由してWAN200と接続される。
システム制御部130は、VPN装置101の全体の制御を行う。配下端末管理部131は、VPN装置101配下の端末103の管理を行う。メモリ部132は、外部アドレス・ポート情報記憶部135において、外部アドレス(WAN200上でのグローバルIPアドレス)とポート(IPネットワークのポート番号)の情報を含む外部アドレス・ポート情報を記憶する。外部アドレス・ポート情報としては、接続元である配下の端末103に割り当てられたグローバルIPアドレス及びポート番号の情報、接続先の端末303に割り当てられたグローバルIPアドレス及びポート番号の情報などを記憶する。
データ中継部133は、接続元の端末103から接続先の端末303に向かって転送されるパケット、あるいは、逆に接続先の端末303から接続元の端末103に向かって転送されるパケットをそれぞれ中継する。設定用インタフェース部134は、ユーザあるいは管理者がVPN装置101に対する設定操作等の各種操作を行うためのユーザインタフェースである。このユーザインタフェースの具体例として、端末上で動作するブラウザによって表示するWebページなどが用いられる。
通信制御部140の通信テスト部146は、通信可能性判定のためのテストパケットを生成してSTUNサーバ201に送出する。すなわち、通信テスト部146は本発明のテストパケット送信部である。また、通信テスト部146は、テストパケットに対するSTUNサーバ201からの応答パケットの内容に基づき、相手装置である他の通信装置との通信可能性を判定する。すなわち、通信テスト部146は本発明の通信可能性判定部でもある。この通信可能性判定動作の詳細については後で説明する。
通信制御部140の外部アドレス・ポート取得部141は、VPN装置101の配下の端末103に割り当てられた外部アドレス・ポート情報をSTUNサーバ201から取得する。また、接続先の端末303の外部アドレス・ポート情報を含むパケットを呼制御サーバ202を経由して受信し、接続先の端末303に割り当てられた外部アドレス・ポート情報を取得する。外部アドレス・ポート取得部141が取得した情報は、メモリ部132の外部アドレス・ポート情報記憶部135に保持される。
通信制御部140のVPN機能部142は、暗号処理部145において、VPN通信のために必要な暗号処理を行う。すなわち、暗号処理部145は、送信するパケットをカプセリングして暗号化したり、受信したパケットをアンカプセリングして復号化して元のパケットを抽出する。なお、VPN通信は、図1に示したようなピア間通信ではなく、WAN200上に設けられるサーバでパケットの中継を行い、クライアント/サーバ方式でVPN通信を行うことも可能である。この場合には、サーバ側で暗号処理を行うようにしてもよい。
呼制御機能部143は、目的の接続先に接続するための接続要求を呼制御サーバ202に送信したり、接続先からの接続応答を呼制御サーバ202を経由して受信するための処理を実施する。
すなわち、通信制御部140は、通信テスト部146において、テストパケット送信部、通信可能性判定部の各機能を実現する。
次に、本実施形態に係る通信装置による通信可能性判定の動作について説明する。図4は本実施形態に係る通信装置を用いたVPNシステムにおける通信可能性判定の処理手順を示すシーケンス図である。この図4では、通信装置としてのVPN装置101とSTUNサーバ201を含むネットワークにおいて、VPN装置101による通信可能性判定に関する処理を示している。
VPN装置101は、通信テスト部146のテストパケット送信部の機能により、通信可能性判定のためのテストパケットT1(第1のテストパケット)、テストパケットT2(第2のテストパケット)をルータ102を経由してSTUNサーバ201に対して一斉に送信する(PR1、PR2)。ここで、「一斉に送信」とは、ネットワーク制御部及びネットワークインタフェースにおける、ハードウェアの同時(アナログ的またはデジタル的)、ソフトウェアの同時、通信パケットの同時などの、同時またはほぼ同時に行われるパケットの送信、あるいはパケットの順次送信などを含む、送信処理によって準備した複数パケットの送信を意味するものとする。
この際、VPN装置101は、送信元のIPアドレス及びポート番号として、自装置のIPアドレス(IP):C、ポート(Port):cを出力するものとする。この場合、VPN装置101のIPアドレス及びポート番号は、LAN100上のローカルIPアドレス及びポート番号である。そして、ルータ102のNAT機能により、VPN装置101のIPアドレス及びポート番号が外部アドレス及びポートであるWAN200上のグローバルIPアドレス及びポート番号にアドレス変換される。これにより、ルータ102からは、送信元のIPアドレス及びポート番号として、IPアドレス:G、ポート:gが出力されるものとする。すなわち、テストパケットT1、T2は、VPN装置101のIPアドレス:C、ポート:cから送出され、ルータ102のIPアドレス:G、ポート:gから外部ネットワークへ送出される。なお、以後の動作の説明においても、上述のように、テストパケットの送信から応答パケット受信に基づく通信可能性判定の間とその判定に続くP2P通信の一連の動作の間はVPN装置101のIPアドレス(IP):C、ポート(Port):cはそれぞれ同一の値が維持されるものとする。
STUNサーバ201は、待ち受け用の外部アドレス及びポート(グローバルIPアドレス及びポート番号)として、2つのIPアドレスを持ち、各IPアドレスに対して2つのポート番号を持つものとする。すなわち、STUNサーバ201は、IPアドレス:A、ポート:a,bと、IPアドレス:B、ポート:a,bとを持ち、これらのIPアドレス及びポート番号においてテストパケットの待ち受け受信、応答パケットの送信を行う。
ここで、VPN装置101は、テストパケットT1をSTUNサーバ201のIPアドレス:A、ポート:a(第1のアドレス・ポート)に対して、テストパケットT2をSTUNサーバ201のIPアドレス:B、ポート:b(第2のアドレス・ポート)に対してそれぞれ送信する。テストパケットT1、T2の宛先、すなわちSTUNサーバ201において待ち受けを行う2つの異なるIPアドレス及びポート番号の情報は、設定情報等によってVPN装置101に通知しておく。なお、テストパケットT1、T2の宛先は、互いにIPアドレスが異なるものであればよく、ポート番号については任意である。また、テストパケットT1、T2の宛先としては、STUNサーバ201に限らず、テストパケットに対してテストパケット送信元の外部アドレス・ポート情報を含む応答パケットを返信する機能を持つアドレス情報提供装置であれば、いずれの装置を用いてもよい。
STUNサーバ201は、これらのテストパケットT1、T2を受けると、それぞれに対応する応答パケットを返信する(PR3、PR4)。応答パケットには、テストパケットの送信元の外部アドレス及びポート(グローバルIPアドレス及びポート番号)の情報を含めるようにする。STUNサーバ201からの応答パケットは、ルータ102を経由してVPN装置101に転送される。この際、テストパケットT1の応答パケットは、外部アドレス・ポート情報であるパケット送信元IPアドレス及びポート番号(G:g)を含み、STUNサーバ201のIPアドレス:A、ポート:aから送出される。また、テストパケットT2の応答パケットは、外部アドレス・ポート情報であるパケット送信元IPアドレス及びポート番号(G:g)を含み、STUNサーバ201のIPアドレス:B、ポート:bから送出される。VPN装置101は、通信テスト部146の通信可能性判定部の機能により、受信した応答パケットの内容によって通信可能性を判定する。
本実施形態においては、ネットワークの上位にあるルータ等がNAT機能を有する場合に、パケットがNATを通過するための、かつ、必要最低限のIPアドレス及びポート番号の組を探り出す処理を行う。この処理において、テストパケットの送信、その応答パケットの受信、及び、応答パケットの内容に基づく通信可能性の判定を実行する。通信可能なIPアドレス及びポート番号の組が取得できれば、このアドレス情報を用いて、NATを経由した外部ネットワークとの通信、すなわち「NATを透過する」通信が可能である。
そこで、本実施形態では、通信装置から2つのテストパケットT1、T2をSTUNサーバ等の互いに異なるアドレス・ポート宛に送出し、それぞれのアドレスからの応答パケットに含まれるテストパケットの送信元の外部アドレス及びポートが一致するかどうかによってP2P(Peer to Peer)通信などのNATを透過する通信の可能性を判定する。なお、「異なるアドレス・ポート」とは、アドレスとポートとの少なくともいずれか一方が異なることを意味するものとする。これらのテストパケットT1、T2によって、異なる宛先へパケットを送出しても、NATを介して(つまり、図4のルータ102を経由して)同一IPアドレス、ポートから外部へ出て行くかどうかを判定できる。したがって、STUNサーバ以外の宛先と通信する場合に、宛先へ通知した自装置の待ち受け用のIPアドレス、ポートが通信可能なものとして正しく伝わるかを判定できる。
ここでは、LANに接続された通信装置から、NAT機能を持つルータを介して、WAN等の外部ネットワークを経由して他の通信装置と通信を行う場合を想定している。この場合、LAN内の通信装置から送出されたパケットの送信元IPアドレスは、ルータのNATによってLAN上のローカルIPアドレス(内部アドレス)から所定のグローバルIPアドレス(外部アドレス)にアドレス変換される。よって、外部ネットワークから見た通信装置のIPアドレスは、アドレス変換後のグローバルIPアドレスになり、応答パケットはこのグローバルIPアドレス宛に返信される。
このとき、NATの種別によって、外部ネットワークからアクセス可能なIPアドレス及びポート番号の制限方式が異なる。また、異なるアドレス・ポート宛にパケットを送出した場合に、NAT後の外部アドレスのIPアドレス及びポート番号の割り当てが異なることがある。例えばSymmetric NATでは、特定のアドレス・ポート宛のパケットに対して、送信元の外部アドレス及びポートとしてそれぞれ一意のIPアドレス及びポート番号を割り当てるようになっている。また、あるNATではプールされたIPアドレスを使い分ける機能を有しているため、宛先によってIPアドレスが異なるケースがある。よって、異なるアドレス・ポート宛にパケットを送出すると、それぞれ異なるIPアドレスまたはポート番号が送信元の外部アドレス及びポートとして割り当てられる。このため、異なる宛先のパケットにおけるNAT後の送信元アドレス情報は、外部アドレスのグローバルIPアドレスとポート番号の少なくとも一方が異なるようになる。
このような特性を考慮して、異なるアドレス・ポート宛にテストパケットを送出し、これらに対するそれぞれの応答パケットに含まれる、テストパケット送信元IPアドレス及びポート番号が一致した場合、少なくとも間にあるルータのNAT種別がSymmetric NATではないことが判定できる。この場合、少なくとも一旦パケットを送信した宛先からであれば、外部ネットワークの異なるアドレス、ポートからであっても、自装置の待ち受け用外部アドレスのIPアドレス及びポート番号に対して送られてきたパケットがNATを透過する。したがって、複数宛先からの応答パケットに含まれるテストパケット送信元アドレス情報の一致判定によって、NATを透過する通信の可能性を判定できる。VPN装置101は、通信テスト部146の通信可能性判定部の機能によって、異なるアドレス・ポート宛のテストパケットT1、T2に対する応答パケットに含まれる外部アドレス・ポート情報の内容に基づき、通信の可能性を判定する。ここで、テストパケットT1、T2にそれぞれ対応する2つの応答パケットに含まれるテストパケット送信元アドレス情報が一致する場合、すなわち異なるアドレス・ポートからの応答パケットに含まれる外部アドレス・ポート情報が同一である場合は、NATを透過する通信が可能であると判定する。また、上記2つの応答パケットに含まれるテストパケット送信元アドレス情報が一致しない場合、すなわち異なるアドレス・ポートからの応答パケットに含まれる外部アドレス・ポート情報が同一でない場合、及び、テストパケットT1、T2の少なくとも一方に対する応答パケットが確認できない場合は、NATを透過する通信が不可能であると判定する。
図5は通信可能性判定処理における各パケットの一例を示す図である。この図5では、図4の処理例に対応した各装置(ノード)における送信元及び宛先のIPアドレス及びポート番号を示している。テストパケットT1については、VPN装置101が出力するパケットは、送信元のIPアドレス及びポート番号(送信元IP:Port)がC:cであり、宛先のIPアドレス及びポート番号(宛先IP:Port)がA:aである。そして、ルータ102が出力するパケットは、送信元のIPアドレス及びポート番号がG:gであり、宛先のIPアドレス及びポート番号がA:aであるとする。これに対し、STUNサーバ201が出力する応答パケットは、送信元のIPアドレス及びポート番号がA:aであり、宛先のIPアドレス及びポート番号がG:gである。応答パケットは、データ部にテストパケットの送信元IPアドレス及びポート番号であるG:gを含むものとなっている。
また、テストパケットT2については、VPN装置101が出力するパケットは、送信元のIPアドレス及びポート番号がC:cであり、宛先のIPアドレス及びポート番号がB:bである。そして、ルータ102が出力するパケットは、送信元のIPアドレス及びポート番号がG:gであり、宛先のIPアドレス及びポート番号がB:bであるとする。これに対し、STUNサーバ201が出力する応答パケットは、送信元のIPアドレス及びポート番号がB:bであり、宛先のIPアドレス及びポート番号がG:gであり、テストパケットの送信元IPアドレス及びポート番号G:gを含んでいる。
図6は通信可能性判定処理における判定結果の一例を示す図である。VPN装置101において、テストパケットT1、T2によるテスト結果として、どちらかの応答が無い場合は、UDP通信不可と判定する。また、テスト結果として、テストパケットT1の応答パケットに含まれるポート番号gと、テストパケットT2の応答パケットに含まれるポート番号gとが等しい場合は、NATを透過する通信が可能と判定する。また、テスト結果として、テストパケットT1の応答パケットに含まれるポート番号gと、テストパケットT2の応答パケットに含まれるポート番号g′とが等しくない場合は、NATを透過する通信が不可能と判定する。すなわち、VPN装置101は、テストパケットT1、T2に対する応答として、両方の応答があるかどうか、及び、それぞれの応答パケットに含まれるテストパケット送信元のIPアドレス及びポート番号が同一かどうかによって、通信可能性を判定する。ここで、テストパケットT1、T2の両方に応答があり、双方のテストパケット送信元のIPアドレス及びポート番号が同一である場合は、NATを透過する通信が可能であると判定する。
なお、テストパケットとして、STUNサーバに対する外部アドレス・ポート取得要求であるバインディングリクエスト(Binding Request 接続要求)パケットを用いることもできる。この場合、STUNサーバからの応答パケットとしては、外部アドレス・ポート情報返信であるバインディングレスポンス(Binding Response 接続応答)パケットが返信される。これらは、IETFのRFC 3489(STUN - Simple Traversal of User Datagram Protocol (UDP) Through Network Address Translators (NATs))に記載されている。
図7は本実施形態の通信装置における通信可能性判定の処理内容を示すフローチャートである。この図7は、図4の通信可能性判定の動作に関する具体的な処理内容を示したものである。図7において、ステップS11〜S16は判定側のVPN装置101が行う処理の内容を示し、ステップS21〜S23は待ち受け側のSTUNサーバ201が行う処理の内容を示している。
VPN装置101は、STUNサーバ201に対してテストパケットT1、T2を送出する(PR1、PR2、ステップS11)。そして、所定の待ち時間を計測するタイマをセットする(ステップS12)。STUNサーバ201は、待ち受け用のIPアドレス及びポート番号においてテストパケットT1、T2の要求を受信したかを判定する(ステップS21)。ここで、テストパケットT1、T2を受信した場合は、これらに対する応答パケットを生成する(ステップS22)。この際、受信パケットの送信元IPアドレス及びポート番号(SourceIP/Port)G:gをデータ部に設定する。そして、STUNサーバ201は、テストパケットT1、T2にそれぞれ対応する応答パケットをテストパケットの送信元に対して送出する(PR3、PR4、ステップS23)。
VPN装置101は、STUNサーバ201からの応答パケットを両方とも受信したかどうかを判定する(ステップS13)。ここで、応答パケットを両方とも受信した場合は、続いて、応答パケットに設定されたテストパケット送信元のIPアドレス及びポート番号G:gが同じかどうかを判定する(ステップS14)。テストパケット送信元のIPアドレス及びポート番号G:gが同じである場合は、NATを透過する通信が可能であると判定する(ステップS15)。一方、テストパケット送信元のIPアドレス及びポート番号G:gが異なる場合は、NATを透過する通信が不可能であると判定する(ステップS16)。
通信可能であると判定された場合、2つの応答パケットにより通知された自装置の外部アドレス及びポート(IPアドレス及びポート番号の組)によって、外部の通信装置との間でNATを透過した接続(通信経路の確立、構築)、及び通信が可能である。この場合、通信を行いたい対象の宛先の通信装置に対して自装置の外部アドレス及びポート(IPアドレス及びポート番号)を通知し、この外部アドレス及びポートに対して通信相手先からパケットを送信するようにすれば、NATを透過した通信が可能になる。したがって、テスト結果が通信可能判定の場合に、外部ネットワークを経由した相手装置との間で、NATを介してP2PでのVPN通信が可能である。
VPN通信を行うために、VPN装置101の配下の端末103からWAN200を経由して他のVPN装置301の配下の端末303に接続しようとする場合、端末103は呼制御サーバ202にログインしてユーザ認証を受けるようにする。端末103がユーザ認証に成功した場合、呼制御サーバ202において、端末103の識別情報(MACアドレス、ユーザID、電話番号など)やネットワーク上の位置情報(グローバルIPアドレス)等の登録、設定が行われる。以降、端末103と呼制御サーバ202との間で通信可能となる。
そして、VPN装置101は、外部アドレス・ポート取得部141の機能により、配下の端末103からのVPN接続の接続要求を受けると、STUNサーバ201に対して外部アドレス・ポート取得要求を送信し、自装置の外部アドレス・ポート情報(WAN200側からみたグローバルIPアドレス及びポート番号)を取得する。次に、VPN装置101は、呼制御サーバ202に対して、接続先の端末303を配下に持つVPN装置301へのP2P(Peer to Peer)の通信経路を構築するための接続要求を送信する。この接続要求には、発呼側アドレス情報として、取得した自装置の外部アドレス・ポート情報を含めるようにする。呼制御サーバ202は、この接続要求を中継してVPN接続の接続先となるVPN装置301へ送信する。
接続先のVPN装置301は、呼制御サーバ202からの接続要求を受けると、STUNサーバ201に対して外部アドレス・ポート取得要求を送信し、自装置の外部アドレス・ポート情報(WAN200側からみたグローバルIPアドレス及びポート番号)を取得する。次に、VPN装置301は、呼制御サーバ202に対して、接続要求に対する応答として、自装置の外部アドレス・ポート情報を含む接続応答を呼制御サーバ202へ送信する。呼制御サーバ202は、この接続応答を中継してVPN接続の接続要求元となるVPN装置101へ送信する。
これらの手順により、接続元のVPN装置101と接続先のVPN装置301とは、お互いに相手の外部アドレス・ポート情報を取得している。したがって、VPN装置101及びVPN装置301は、互いに相手の外部アドレス・ポート情報(グローバルIPアドレス及びポート番号)の送信先に設定してWAN200を経由してパケットを送信し、通信可能であること(VPN接続)を確認し、暗号化したデータ通信(VPN通信)を開始する。
次に、本実施形態に係る通信可能性判定の動作の変形例として、図4に示した処理例の一部を変更した例を示す。
図8は本実施形態に係る通信可能性判定の第1変形例の処理手順を示すシーケンス図である。VPN装置101は、通信テスト部146の機能により、まずテストパケットT1(第1のテストパケット)をルータ102を経由してSTUNサーバ201の待ち受け用のIPアドレス及びポート番号(IPアドレス:A、ポート:a)に対して送信する(PR11)。この際、テストパケットT1は、VPN装置101のIPアドレス:C、ポート:cから送出され、ルータ102のIPアドレス:G、ポート:gから外部ネットワークへ送出される。
STUNサーバ201は、テストパケットT1を受けると、対応する応答パケットを返信する(PR12)。応答パケットには、テストパケットの送信元の外部アドレス及びポート(グローバルIPアドレス及びポート番号)の情報と、自装置の別の待ち受け用の外部アドレス及びポート(グローバルIPアドレス及びポート番号)の情報とを含めるようにする。これにより、受信したパケットの送信元に対して、その送信元の外部から見たIPアドレス及びポート番号と、自装置の他の待ち受け用のIPアドレス及びポート番号とを通知する。STUNサーバ201からの応答パケットは、ルータ102を経由してVPN装置101に転送される。このテストパケットT1の応答パケットは、外部アドレスのパケット送信元IPアドレス及びポート番号(G:g)を含み、STUNサーバ201のIPアドレス:A、ポート:aから送出される。
VPN装置101は、テストパケットT1の応答パケットから、STUNサーバ201における別の待ち受け用のIPアドレス及びポート番号(IPアドレス:B、ポート:a,b)を取得する。そして、その待ち受け用の宛先(IPアドレス:B、ポート:b)に対して、テストパケットT2(第2のテストパケット)をルータ102を経由して送信する(PR13)。この際、テストパケットT2は、VPN装置101のIPアドレス:C、ポート:cから送出され、ルータ102のIPアドレス:G、ポート:gから外部ネットワークへ送出される。なお、テストパケットT1、T2の宛先は、互いにIPアドレスが異なるものであればよく、ポート番号については任意である。
STUNサーバ201は、テストパケットT2を受けると、対応する応答パケットを返信する(PR14)。応答パケットには、テストパケットの送信元の外部アドレス及びポート(グローバルIPアドレス及びポート番号)の情報を含めるようにする。STUNサーバ201からの応答パケットは、ルータ102を経由してVPN装置101に転送される。このテストパケットT2の応答パケットは、外部アドレスのパケット送信元IPアドレス及びポート番号(G:g)を含み、STUNサーバ201のIPアドレス:B、ポート:bから送出される。VPN装置101は、通信テスト部146の機能により、上記と同様にして、テストパケットT1、T2に対する受信した応答パケットの内容によって通信可能性を判定する。
図9は本実施形態に係る通信可能性判定の第2変形例の処理手順を示すシーケンス図である。第2変形例は、図8の第1変形例に加えて、3つのテストパケットT1、T1′、T2を用いる例である。VPN装置101からのテストパケットT1(第1のテストパケット)の送出(PR21)、STUNサーバ201からの応答パケットの送出(PR22)については、図8に示した第1変形例のPR11、PR12と同様である。
VPN装置101は、テストパケットT1の応答パケットから、STUNサーバ201における別の待ち受け用のIPアドレス及びポート番号(IPアドレス:B、ポート:a,b)を取得する。そして、VPN装置101は、テストパケットT1′(第2のテストパケット)、テストパケットT2(第3のテストパケット)をルータ102を経由してSTUNサーバ201に対して一斉に送信する(PR23、PR24)。ここで、テストパケットT1′は、テストパケットT1の宛先と同じIPアドレスで異なるポート番号(IPアドレス:A、ポート:b)に対して送信する。また、テストパケットT2は、上記取得した別の待ち受け用のIPアドレス及びポート番号(IPアドレス:B、ポート:b)に対して送信する。なお、テストパケットT1′の宛先は、テストパケットT1の宛先とはIPアドレス及びポート番号の少なくとも一方が異なっていればよい。また、テストパケットT2の宛先は、テストパケットT1、T1′の宛先とそれぞれIPアドレス及びポート番号の少なくとも一方が異なっていればよい。つまり、テストパケットT1、T1′、T2がそれぞれ異なる宛先のパケットであり、テストパケットT2が3宛先目となるようにすればよい。
STUNサーバ201は、これらのテストパケットT1′、T2を受けると、それぞれに対応する応答パケットを返信する(PR25、PR26)。応答パケットには、テストパケットの送信元の外部アドレス及びポート(グローバルIPアドレス及びポート番号)の情報を含めるようにする。STUNサーバ201からの応答パケットは、ルータ102を経由してVPN装置101に転送される。この際、テストパケットT1′の応答パケットは、外部アドレスのパケット送信元IPアドレス及びポート番号(G:g)を含み、STUNサーバ201のIPアドレス:A、ポート:bから送出される。また、テストパケットT2の応答パケットは、外部アドレスのパケット送信元IPアドレス及びポート番号(G:g)を含み、STUNサーバ201のIPアドレス:B、ポート:bから送出される。VPN装置101は、通信テスト部146の機能により、上記と同様にして、テストパケットT1′、T2に対する受信した応答パケットの内容によって通信可能性を判定する。
第2変形例では、テストパケットT2がテストパケットT1からみて3宛先目となるようにする。ルータによっては、NAT機能において、3宛先目のパケットに対してSymmetric NATの挙動を示すものが存在する。これに対応するために、上記のようにテストパケットT1′の宛先(2宛先目)とテストパケットT2の宛先(3宛先目)とを異なるIPアドレスに設定する。そして、2宛先目のテストパケットと3宛先目のテストパケットのそれぞれに対する応答パケットの内容を参照し、両者に含まれるパケット送信元の外部アドレス及びポートを比較して同じかどうかを判定する。これにより、ルータのNAT機能が3宛先目のパケットに対してSymmetric NATの挙動を示す場合においても、通信可能性に関して正しい判定結果を得ることができる。
上述したように、本実施形態によれば、少なくとも2つのテストパケットの送受信による1回のテスト手順によって、NATを透過した通信可能性の判定を行うことができる。また、本実施形態のテスト手順によって、統計的に最も大多数の接続形態をカバーすることができる。またこの場合、UDP同時送信のための到達確認、再送処理が不要である。したがって、通信可能性判定のテストに要する時間を短縮でき、処理手順を削減できるため、短時間で、また、少ない手順で簡単に通信可能性の判定結果を得ることができる。
また、本実施形態の通信可能性判定処理によって、NATを透過して通信可能にするIPアドレス及びポート番号の設定条件を抽出するので、NATの種別に関わらず、抽出した設定条件に基づいて速やかにNATを透過可能な通信経路を構築し、通信を開始することができる。このため、通信開始までに要する時間を短縮できる。
なお、上記の実施形態では、一例としてVPN装置に適用した場合の通信装置の構成及び動作について説明したが、端末103、303など、その他の通信装置において同様に適用することも可能である。
なお、本発明は、本発明の趣旨ならびに範囲を逸脱することなく、明細書の記載、並びに周知の技術に基づいて、当業者が様々な変更、応用することも本発明の予定するところであり、保護を求める範囲に含まれる。また、発明の趣旨を逸脱しない範囲で、上記実施形態における各構成要素を任意に組み合わせてもよい。
本発明は、アドレス変換が行われるネットワーク間において、速やかに通信可能性を判定し、短時間で通信可能な通信経路を構築することが可能となる効果を有する。よって本発明は、ネットワークを介して通信装置が互いに通信をするために必要な情報を取得して通信経路を構築する際の通信テスト機能を持つ通信装置、通信可能性判定方法、及び通信テストプログラム、そのプログラムを記憶した記憶媒体等として有用である。
100、300 LAN
101、301 VPN装置
102、302 ルータ
103、303 端末
111 マイクロコンピュータ(CPU)
112 不揮発性メモリ
113 メモリ
114、115 ネットワークインタフェース
116 LAN側ネットワーク制御部
117 WAN側ネットワーク制御部
118 通信中継部
119 表示制御部
120 表示部
130 システム制御部
131 配下端末管理部
132 メモリ部
133 データ中継部
134 設定用インタフェース部
135 外部アドレス・ポート情報記憶部
140 通信制御部
141 外部アドレス・ポート取得部
142 VPN機能部
143 呼制御機能部
145 暗号処理部
146 通信テスト部
200 WAN
201 STUNサーバ
202 呼制御サーバ

Claims (12)

  1. アドレス変換機能を持つ中継装置を介して相手装置との間で通信を行う通信装置であって、
    前記中継装置の外部側から自装置にアクセス可能なアドレス情報である、外部アドレス・ポート情報を返信する機能を持つアドレス情報提供装置に対して、前記相手装置との通信可能性を判定するためのテストパケットを送信するテストパケット送信部と、
    前記テストパケットに対する応答パケットに含まれる外部アドレス・ポート情報の内容に基づき、前記相手装置との通信可能性を判定する通信可能性判定部と、を備え、
    前記テストパケット送信部は、前記テストパケットとして、少なくとも2つのテストパケットを異なるアドレス・ポートに対して送信するものであり、
    前記通信可能性判定部は、前記異なるアドレス・ポートからの応答パケットに含まれる外部アドレス・ポート情報によって通信可能性を判定する通信装置。
  2. 請求項1に記載の通信装置であって、
    前記通信可能性判定部は、前記異なるアドレス・ポートからの応答パケットに含まれる外部アドレス・ポート情報が同一である場合に、前記相手装置との通信が可能であると判定する通信装置。
  3. 請求項1に記載の通信装置であって、
    前記通信可能性判定部は、前記異なるアドレス・ポートからの応答パケットに含まれる外部アドレス・ポート情報が同一でない場合、及び、前記異なるアドレス・ポートの少なくとも一方からの応答パケットが確認できない場合に、前記相手装置との通信が不可能であると判定する通信装置。
  4. 請求項1に記載の通信装置であって、
    前記テストパケット送信部は、第1のテストパケットと第2のテストパケットとをそれぞれ前記アドレス情報提供装置の異なるアドレス・ポートに対して一斉に送信するものであり、
    前記通信可能性判定部は、前記第1のテストパケットに対する応答パケットと前記第2のテストパケットに対する応答パケットのそれぞれに含まれる外部アドレス・ポート情報が同一である場合に、前記相手装置との通信が可能であると判定する通信装置。
  5. 請求項1に記載の通信装置であって、
    前記テストパケット送信部は、
    第1のテストパケットを、前記アドレス情報提供装置の第1のアドレス・ポートに対して送信し、
    第2のテストパケットを、前記第1のテストパケットに対する応答パケットに含まれる前記アドレス情報提供装置の第2のアドレス・ポートに対して送信するものであり、
    前記通信可能性判定部は、前記第1のテストパケットに対する応答パケットと前記第2のテストパケットに対する応答パケットのそれぞれに含まれる外部アドレス・ポート情報が同一である場合に、前記相手装置との通信が可能であると判定する通信装置。
  6. 請求項1に記載の通信装置であって、
    前記テストパケット送信部は、
    第1のテストパケットを、前記アドレス情報提供装置の第1のアドレス・ポートに対して送信し、
    第2のテストパケットを、前記第1のテストパケットに対する応答パケットに含まれる前記アドレス情報提供装置の第2のアドレス・ポートに対して、また、第3のテストパケットを、前記第1のテストパケットの宛先及び前記第2のテストパケットの宛先のそれぞれに対しアドレス及びポートの少なくとも一方が異なる宛先に対して、さらに、前記第3のテストパケットが前記第1のテストパケットからみて3宛先目となるように、前記第2のテストパケットと前記第3のテストパケットとを一斉に送信するものであり、
    前記通信可能性判定部は、前記第2のテストパケットに対する応答パケットと前記第3のテストパケットに対する応答パケットのそれぞれに含まれる外部アドレス・ポート情報が同一である場合に、前記相手装置との通信が可能であると判定する通信装置。
  7. 請求項1に記載の通信装置であって、
    前記中継装置は、前記アドレス変換機能としてNAT機能を有するものであり、
    前記通信可能性判定部は、前記中継装置のNATを透過する通信の可能性を判定する通信装置。
  8. 請求項1に記載の通信装置であって、
    前記アドレス情報提供装置は、STUN(Simple Traversal of User Datagram Protocol (UDP) through Network Address Translators (NATs))プロトコルを実行するSTUNサーバであり、
    前記テストパケット送信部は、前記STUNサーバに対して前記テストパケットを送信する通信装置。
  9. 請求項1に記載の通信装置であって、
    前記相手装置と自装置との間で仮想プライベートネットワークを構築して通信を行うVPN装置の機能を持つ通信装置。
  10. アドレス変換機能を持つ中継装置を介して相手装置との間で通信を行う通信装置における通信可能性判定方法であって、
    前記中継装置の外部側から自装置にアクセス可能なアドレス情報である、外部アドレス・ポート情報を返信する機能を持つアドレス情報提供装置に対して、前記相手装置との通信可能性を判定するためのテストパケットを送信するステップと、
    前記テストパケットに対する応答パケットに含まれる外部アドレス・ポート情報の内容に基づき、前記相手装置との通信可能性を判定するステップと、を有し、
    前記テストパケットとして、少なくとも2つのテストパケットを異なるアドレス・ポートに対して送信し、
    前記判定において、前記異なるアドレス・ポートからの応答パケットに含まれる外部アドレス・ポート情報によって通信可能性を判定する通信可能性判定方法。
  11. コンピュータに、アドレス変換機能を持つ中継装置を介して相手装置との間で通信する際の通信テストを行う機能を実現させるプログラムであって、
    前記中継装置の外部側から自装置にアクセス可能なアドレス情報である、外部アドレス・ポート情報を返信する機能を持つアドレス情報提供装置に対して、前記相手装置との通信可能性を判定するためのテストパケットを送信するテストパケット送信部と、
    前記テストパケットに対する応答パケットに含まれる外部アドレス・ポート情報の内容に基づき、前記相手装置との通信可能性を判定する通信可能性判定部と、を含み、
    前記テストパケット送信部は、前記テストパケットとして、少なくとも2つのテストパケットを異なるアドレス・ポートに対して送信するものであり、
    前記通信可能性判定部は、前記異なるアドレス・ポートからの応答パケットに含まれる外部アドレス・ポート情報によって通信可能性を判定する、
    各部の機能をコンピュータに実現させるプログラム。
  12. コンピュータに、アドレス変換機能を持つ中継装置を介して相手装置との間で通信する際の通信テストを行う機能を実現させるプログラムを格納した記憶媒体であって、
    前記中継装置の外部側から自装置にアクセス可能なアドレス情報である、外部アドレス・ポート情報を返信する機能を持つアドレス情報提供装置に対して、前記相手装置との通信可能性を判定するためのテストパケットを送信するテストパケット送信部と、
    前記テストパケットに対する応答パケットに含まれる外部アドレス・ポート情報の内容に基づき、前記相手装置との通信可能性を判定する通信可能性判定部と、を含み、
    前記テストパケット送信部は、前記テストパケットとして、少なくとも2つのテストパケットを異なるアドレス・ポートに対して送信するものであり、
    前記通信可能性判定部は、前記異なるアドレス・ポートからの応答パケットに含まれる外部アドレス・ポート情報によって通信可能性を判定する、
    各部の機能をコンピュータに実現させるプログラムを格納した記憶媒体。
JP2009135246A 2009-06-04 2009-06-04 通信装置及び通信可能性判定方法 Pending JP2010283594A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009135246A JP2010283594A (ja) 2009-06-04 2009-06-04 通信装置及び通信可能性判定方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009135246A JP2010283594A (ja) 2009-06-04 2009-06-04 通信装置及び通信可能性判定方法

Publications (2)

Publication Number Publication Date
JP2010283594A true JP2010283594A (ja) 2010-12-16
JP2010283594A5 JP2010283594A5 (ja) 2012-07-12

Family

ID=43539954

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009135246A Pending JP2010283594A (ja) 2009-06-04 2009-06-04 通信装置及び通信可能性判定方法

Country Status (1)

Country Link
JP (1) JP2010283594A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013145516A1 (ja) * 2012-03-27 2013-10-03 ソニー株式会社 情報処理装置、情報処理システム、情報処理方法及びプログラム
CN107659949A (zh) * 2017-09-26 2018-02-02 上海斐讯数据通信技术有限公司 一种无线路由器云服务功能接口测试方法和系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004104357A (ja) * 2002-09-06 2004-04-02 Sony Corp ネットワークシステムおよび通信方法、情報処理装置および方法、並びにプログラム
JP2004108923A (ja) * 2002-09-18 2004-04-08 Anritsu Corp 光スイッチ試験装置
JP2006253824A (ja) * 2005-03-08 2006-09-21 Toshiba Corp 通信装置、通信方法および通信プログラム
WO2009044532A1 (ja) * 2007-10-03 2009-04-09 Panasonic Corporation 通信装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004104357A (ja) * 2002-09-06 2004-04-02 Sony Corp ネットワークシステムおよび通信方法、情報処理装置および方法、並びにプログラム
JP2004108923A (ja) * 2002-09-18 2004-04-08 Anritsu Corp 光スイッチ試験装置
JP2006253824A (ja) * 2005-03-08 2006-09-21 Toshiba Corp 通信装置、通信方法および通信プログラム
WO2009044532A1 (ja) * 2007-10-03 2009-04-09 Panasonic Corporation 通信装置

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013145516A1 (ja) * 2012-03-27 2013-10-03 ソニー株式会社 情報処理装置、情報処理システム、情報処理方法及びプログラム
JPWO2013145516A1 (ja) * 2012-03-27 2015-12-10 ソニー株式会社 情報処理装置、情報処理システム、情報処理方法及びプログラム
US10432744B2 (en) 2012-03-27 2019-10-01 Sony Corporation Information processing apparatus, information processing system, and information processing method
CN107659949A (zh) * 2017-09-26 2018-02-02 上海斐讯数据通信技术有限公司 一种无线路由器云服务功能接口测试方法和系统
CN107659949B (zh) * 2017-09-26 2021-07-23 台州市吉吉知识产权运营有限公司 一种无线路由器云服务功能接口测试方法和系统

Similar Documents

Publication Publication Date Title
US8532126B2 (en) Mediated network address translation traversal
DK2803177T3 (en) DEVICE AND METHOD FOR IMPLEMENTING A DATA TRANSMISSION NETWORK USED IN REMOTE MANAGEMENT
KR101263783B1 (ko) 릴레이 서버를 이용한 데이터 전송 시스템 및 방법
US20110145426A1 (en) Networking method of communication apparatus, communication apparatus and storage medium
US7558249B2 (en) Communication terminal, and communication method
JPWO2008035578A1 (ja) 通信装置、通信方法及び通信システム
US20120113977A1 (en) Vpn device and vpn networking method
US8874911B2 (en) Terminal device, system, connection management server, and computer readable medium
US20110047261A1 (en) Information communication apparatus, information communication method, and program
AU2016247110B2 (en) Communication path control device, communication path control system, communication path control method and communication path control program
JP2011188358A (ja) Vpn装置及びip通信装置
JP6525261B2 (ja) 通信システム、通信装置およびvpn構築方法
JP2010283762A (ja) 通信経路設定装置、通信経路設定方法、プログラム、及び記憶媒体
US20170207921A1 (en) Access to a node
JP2011211490A (ja) Vpn装置及びip通信装置、サーバ装置
JP2010283594A (ja) 通信装置及び通信可能性判定方法
JP2005260594A (ja) ネットワークシステム及び通信装置
JP2008258917A (ja) 同一nat配下通信制御システム、nat装置、同一nat配下通信制御方法、及びプログラム
JP2012019455A (ja) Vpn装置、vpnネットワーキング方法、vpnプログラム、及び記憶媒体
JP2010283761A (ja) Vpn装置、vpnネットワーキング方法、プログラム、及び記憶媒体
JPWO2017077613A1 (ja) 通信装置及び通信方法
JP2010252261A (ja) Vpn装置、vpnネットワーキング方法、及び記憶媒体
KR100660123B1 (ko) Nat 통과를 위한 브이.피.엔 서버 시스템 및 브이.피.엔클라이언트 단말기
JP2011239277A (ja) Vpn装置、vpnネットワーキング方法、プログラム、及び記憶媒体
JP4728933B2 (ja) Ip電話通信システム、ip電話通信方法、およびそのプログラム

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120530

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120530

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130607

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130618

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130808

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20131105