[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP2019118156A - 通信システム、通信装置およびvpn構築方法 - Google Patents

通信システム、通信装置およびvpn構築方法 Download PDF

Info

Publication number
JP2019118156A
JP2019118156A JP2019086337A JP2019086337A JP2019118156A JP 2019118156 A JP2019118156 A JP 2019118156A JP 2019086337 A JP2019086337 A JP 2019086337A JP 2019086337 A JP2019086337 A JP 2019086337A JP 2019118156 A JP2019118156 A JP 2019118156A
Authority
JP
Japan
Prior art keywords
address
communication device
nat
port
spoke
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.)
Granted
Application number
JP2019086337A
Other languages
English (en)
Other versions
JP6770132B2 (ja
Inventor
友一 中村
Tomokazu Nakamura
友一 中村
敦史 塩坂
Atsushi Shiosaka
敦史 塩坂
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.)
NEC Platforms Ltd
Original Assignee
NEC Platforms Ltd
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 NEC Platforms Ltd filed Critical NEC Platforms Ltd
Priority to JP2019086337A priority Critical patent/JP6770132B2/ja
Publication of JP2019118156A publication Critical patent/JP2019118156A/ja
Application granted granted Critical
Publication of JP6770132B2 publication Critical patent/JP6770132B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】 スポークがNAT装置配下にある環境で、NAT変換後のグローバルIPアドレス・ポート情報をスポーク間で通知して動的に仮想トンネルを生成する。【解決手段】 スポークがSTUNサーバから取得したNAT変換後のグローバルIPアドレス・ポート情報を、NHRPプロトコルのパケットの拡張フィールドに含めて送受信する。各スポークは自装置のグローバルIPアドレス・ポート情報をNHRP登録パケットに含めてハブに通知する。仮想トンネルの生成にあたって、送信元スポークはNHRP解決要求パケットで自装置のグローバルIPアドレス・ポート情報を相手先スポークに通知する。NHRP解決要求パケットを受信した相手先スポークは、自装置のグローバルIPアドレス・ポート情報をNHRP解決応答パケットに含めて返送する。相互に通知した外部アドレス・ポート情報に基づいて、相手先スポークとの間に仮想トンネルを生成する。【選択図】 図1

Description

本発明は、通信システム、通信装置およびVPN(Virtual Private Network)構築方法に関し、特に、DMVPN(Dynamic Multipoint Virtual Private Network)を構成する通信システム、通信装置およびVPN構築方法に関する。
広域網を介した企業等の多数の拠点間でVPNを構築する際に、本社のVPN装置を経由することなく、直接、拠点間でデータを交換することができる安全なネットワークを構築する仕組みを提供するソリューションとしてDMVPNがある。DMVPNは「Dynamic Multipoint Virtual Private Network」の略称で、ハブアンドスポーク型のVPNを構築し、スポーク同士の通信が発生した際にはオンデマンドでスポーク間の仮想トンネルを生成することができる。つまり、DMVPNは、ハブアンドスポーク型の構成をとりながらフルメッシュに近いパフォーマンスを提供することができる。なお、仮想トンネルはVPN装置によりオリジナルのパケットがキャリアプロトコルでカプセル化されることにより構築されるものである。
例えば、拠点のLAN(Local Area Network)を配下にするスポークであるVPN装置と本社に配置されたハブであるVPN装置のそれぞれをインターネット等の広域網を介して仮想トンネルで接続する。このとき、ハブとスポーク間には常に仮想トンネルを設定しておき、スポーク同士は必要時のみ仮想トンネルを生成する構成にする。このようにDMVPNの仮想トンネルは、ハブに複数のスポークを接続した、宛先が複数存在する仮想トンネルとなるため、マルチポイントでルーティングカプセル化を行うマルチポイントGRE(Generic Routing Encapsulation)が使われる。また、仮想トンネル内の通信の安全性を確保するために転送データの暗号化を行うIPsec(Internet Protocol Security)が使われる。
つまり、ハブと各スポークは静的なIPsecによる仮想トンネルで接続されて、スポーク間にはオンデマンドでIPsecによる仮想トンネルを張るように構成する。このように構成することにより、ハブの負荷を軽減し、しかも通信の安全を確保したネットワークを柔軟に構築することができる。
なお、IPsecは、インターネットを介したルータ間でセキュリティの高いLAN間通信を行うためにIETF(Internet Engineering Task Force)がVPNの標準プロトコルとして規定したものである。IPsecは、LANをインターネットに接続するルータ同士がインターネットを介して行う通信を、所定のプロトコルに従って暗号化し、それらルータ間で送受信されるデータが盗聴されたり改ざんされたりすることを回避する技術である。つまり、LANをインターネットに接続するルータ同士は、インターネット内を転送するパケットをIPsecによって暗号化およびカプセル化して安全なVPNを構築する。
また、DMVPNで使用される技術としてNHRP(Next Hop Resolution Protocol)がある。
NHRPは、ブロードキャストをサポートしないマルチアクセスネットワークであるNBMA(Non Broadcast Multiple Access)環境におけるアドレス解決を行うプロトコルで、IETFのRFC(Request For Comments)2332で規定されている。NHRPは、仮想トンネルの宛先IP(Internet Protocol)アドレス(仮想ネットワーク上のプライベートIPアドレス)から、宛先VPN装置の広域網側での物理アドレスであるNBMA(Non Broadcast Multiple Access)アドレスを解決するためのプロトコルである。
DMVPNでは、例えば、次のような手順でスポーク間の動的な仮想トンネルを生成する。
ハブ配下の各スポークは、あらかじめNHRP登録によって自身の仮想トンネルのプライベートIPアドレスとNBMAアドレスをハブに通知する。そして、ハブは、各スポークの仮想トンネルのプライベートIPアドレスとNBMAアドレスのマッピング情報を保持する。
あるスポークA配下のプライベートネットワーク内の端末Aが別のスポークB配下のプライベートネットワーク内の端末Bと通信するとき、データパケットは、端末A→スポークA→ハブ→スポークB→端末Bの経路で伝達される。
この時、ハブはパケットの送信元のスポークAとパケットの送信先となるスポークBが動的に仮想トンネルを生成可能であることを検出すると、スポークA宛にNHRPトラフィック通知を送信する。NHRPトラフィック通知にはスポークB配下のプライベートネットワーク内の端末BのプライベートIPアドレスが格納されている。
NHRPトラフィック通知を受信したスポークAは、スポークB配下のプライベートネットワーク内の端末BのプライベートIPアドレス宛てにNHRP解決要求を送信する。
NHRP解決要求はハブを経由してスポークBで受信される。
スポークBは、スポークA宛にNHRP解決応答を返送する。NHRP解決応答には、スポークBの仮想トンネルのプライベートIPアドレスとNBMAアドレスが格納されている。
NHRP解決応答を受信したスポークAでは、スポークB配下のプライベートネットワーク宛のパケットはスポークBの仮想トンネルのプライベートIPアドレス宛に転送する、という経路情報が生成される。そして、スポークAでは、これと同時にスポークBの仮想トンネルのプライベートIPアドレスとNBMAアドレスのマッピング情報を保持する。
スポークAは、保持しているスポークBのアドレス情報を使用して、スポークBへの仮想トンネルを生成する。これにより、この仮想トンネル生成以降のデータパケットは、スポークAからハブを経由せずに直接スポークBに送信され、スポークB配下のプライベートネットワーク内の端末Bに送信される。
なお、上記の説明において、スポークAからのNHRP解決要求を受けたハブがスポークBにそれを送り、スポークBがNHRP解決応答を返送するとした。しかし、ハブでキャッシュされているマッピング情報に基づくNHRP解決応答の返送がプロトコル上で許容されている場合には、NHRP解決要求を受けたハブがNHRP解決応答を返送する場合もある。ここでは、説明を簡単にするために、スポークAからのNHRP解決要求を受けたハブがスポークBにそれを送り、スポークBがNHRP解決応答を返送するものとする。
ここで、VPNに関連する技術として、NAT(Network Address Translation)およびSTUN(Simple Traversal of User Datagram Protocol through NATs)プロトコルについて概観する。
NATは、プライベートネットワークとインターネットを接続するゲートウェイ装置において行うアドレス変換で、プライベートIPアドレスと、ゲートウェイ装置が保持しているグローバルIPアドレスとが変換される。NATはIETFのRFC2766、2663、3022等で規定されている。なお、ここでNATは狭義のNAPT(Network Address Port Translation)を含めた広義のNATを意味する。そして、アドレス・ポートは、アドレスのみ、アドレスおよびポート、のいずれかを意味するものとする。
STUNプロトコルは、NATを実行する装置(NAT装置)の後ろに位置する通信装置が、UDP(User Datagram Protocol)接続を行う際に、NAT装置を越えて通信するために必要なグローバルIPアドレス・ポート、NATの種別を取得するために使用される。STUNプロトコルは、IETFのRFC3489で規定されている。
STUNプロトコルが動作するネットワーク構成は、STUNサーバ、NAT装置、STUNクライアントから構成される。
STUNサーバは、STUNプロトコルの実行に関するサービスを行うサーバで、インターネット上に設けられ、NAT装置を越えて通信を行うために必要な情報を提供するアドレス情報提供装置である。
STUNクライアントは、NAT装置の後ろに位置するプライベートネットワーク内の通信装置である。STUNクライアントは、NAT装置を介してインターネット上のSTUNサーバにテストメッセージを送信し、STUNサーバから該STUNクライアントがどのように見えるかの情報を取得する。つまり、STUNクライアントは、NAT装置を越えて通信を行うために必要なグローバルIPアドレス・ポート、NATの種別をSTUNサーバから取得する。
なお、STUNプロトコルでは、NAT装置が実行するNATのアドレス・ポート変換のマッピング方法により、NATを4つの種別(NAT種別)に分類している。NATで割り当てたポートにアクセスできるインターネット側の端末の制限に応じて、フルコーンNAT、アドレス制限コーンNAT、ポート制限コーンNATおよびシンメトリックNATの4つのNAT種別がある。
フルコーンNATは、NATで割り当てたポートにアクセスできるインターネット側の端末の制限はなく、一度開いたセッション・ポートを誰からでもアクセス可能にする。つまり、通信相手によらず、NAT変換テーブルのエントリに応じたアドレス・ポート変換を行ってNAT装置の内側(プライベートネットワーク側)に通過させる。
アドレス制限コーンNATは、NATで割り当てたポートにアクセスできるインターネット側の端末を、アドレス依存で制限する。つまり、NAT装置配下の端末がアクセスした実績があるインターネット側のアドレスを有する端末からだけアクセス可能とし、NAT変換テーブルのエントリに応じたアドレス・ポート変換を行ってNATの内側に通過させる。なお、「NAT装置配下の端末」とは、NAT装置に接続されたプライベートネットワーク側の端末を意味する。
ポート制限コーンNATは、NATで割り当てたポートにアクセスできるインターネット側の端末を、アドレスとポートに依存して制限する。つまり、NAT装置配下の端末がアクセスした実績があるインターネット側のアドレスとポート番号を有する端末からだけアクセス可能とし、NAT変換テーブルのエントリに応じたアドレス・ポート変換を行ってNAT装置の内側に通過させる。
シンメトリックNATは、通信元の端末に対して、通信先のインターネット側の宛先ごとに異なるポート番号を有するNAT変換テーブルのエントリを生成する。つまり、インターネット側の宛先が変わるとNATのインターネット向けのポート番号が必ず変わることになる。そして、NATで割り当てたポートにアクセスできるインターネット側の端末として、通信元のプライベートネットワーク側の端末と通信先のインターネット側の端末が1対1に対応する場合にのみ制限される。
STUNクライアントが自身のNAT変換後のグローバルIPアドレス・ポートを知るまでの動作は以下のようになる。
STUNクライアントは、STUNサーバのグローバルIPアドレス・ポート宛にSTUNリクエストメッセージを送信する。
STUNリクエストメッセージがNAT装置を通過する時、NAT変換テーブルエントリが生成され、送信元IPアドレス・ポートがプライベートIPアドレス・ポートから、グローバルIPアドレス・ポートに書き換えられる。
STUNサーバは、STUNリクエストメッセージを受信すると、STUNレスポンスメッセージを、STUNリクエストメッセージの送信元アドレス・ポートのグローバルIPアドレス・ポート宛に送信する。この時、STUNサーバは、STUNレスポンスメッセージ中に、該グローバルIPアドレス・ポートを含める。
STUNレスポンスメッセージは、NAT装置を通過する時に、宛先アドレス・ポートがNAT変換テーブルエントリに基づいてプライベートIPアドレス・ポートに書き換えられ、STUNクライアントで受信される。
STUNクライアントは、STUNレスポンスメッセージに含まれるグローバルIPアドレス・ポートの情報によって自身のグローバルIPアドレスおよびグローバルポートを知ることができる。
なお、STUNサーバは2つのIPアドレスおよびポート番号を持っている。そして、STUNクライアントはSTUNリクエストメッセージを送信する際、リクエストメッセージ内にIPアドレス変更およびポート番号変更要求を含めることができる。これにより、STUNサーバからのレスポンスメッセージの送信元IPアドレスおよびポート番号を変更させることができる。STUNプロトコルでは、この仕組みによってSTUNクライアントとSTUNサーバ間で数回の通信を行うことにより、STUNクライアントが、自身の接続しているNAT装置のNAT種別を特定する事ができるようになっている。
VPN装置、NATおよびSTUNに関する技術が特許文献1乃至3に開示されている。
特許文献1は、通信中においてP2P(peer-to-peer)通信が可能な場合にはP2P通信に移行できるVPN装置を開示する。条件によって動作特性が変化するNAT装置が存在し、通話開始時には中継サーバ経由での通信しか行えない場合であっても、その通信の最中にP2P通信が可能な条件になることがある。そのような場合に、特許文献1が開示するVPN装置はP2P通信に移行することができる。
このVPN装置は、NAT種別判定部を備え、相手装置と中継サーバ経由通信を行っているときにNAT種別の判定処理を行い、相手装置との間でP2P通信ができる可能性の高いNAT種別と判定した場合にP2P通信に移行する処理を行う。また、このVPN装置は、中継装置の外部側から自装置にアクセスする際に用いる外部アドレス・ポート情報を取得する外部アドレス・ポート取得部を備える。
外部アドレス・ポート取得部は、STUNサーバとの間で所定のテスト手順の通信を実行し、STUNサーバから自装置の通信のために割り当てられたグローバルIPアドレスおよびポートが含まれる応答パケットを受信する。また、STUNによりNAT種別判定を行う。NAT種別判定部は、送信側と受信側に設置されているNAT種別の組合せによってP2P通信の可否を決定する。
P2P通信に移行する場合は、呼制御サーバを介して呼制御ポートを使用して発呼側と被呼側を接続し、中継サーバを介した通信を行うための通信ポート情報を交換する。そして、中継サーバを介した通信において、P2P通信を行うP2Pポートの情報を交換する。なお、呼制御サーバは、登録された端末等の識別情報を保持して、特定の相手先を呼び出して通信経路を確立するための通信装置間の呼制御に関するサービスを行う装置である。
特許文献2は、アドレス変換が行われるネットワーク間において、中継装置のNAT種別を判定してすみやかに相手装置との通信可能性を判定し、相手装置との通信経路を構築することができるVPN装置を開示する。
このVPN装置は、STUNサーバに対して、少なくとも2つのテストパケットをSTUNサーバの異なるアドレス・ポートに送信する。そして、これらのテストパケットに対する異なるアドレス・ポートからの応答パケットに含まれる外部アドレス・ポート情報に基づいて中継装置のNAT種別を判定し、通信可能性を判定する。
通信可能と判定してP2P通信に移行する場合は、呼制御サーバを介して発呼側から被呼側に外部アドレス・ポート情報を含めた接続要求を送信する。被呼側は、呼制御サーバを介した接続要求を受けると、発呼側と同様にSTUNサーバから自装置の外部アドレス・ポート情報を取得する。そして、この外部アドレス・ポート情報を含めた接続応答を、呼制御サーバを介して発呼側に返送する。
このように、呼制御サーバを介して発呼側と被呼側の双方が相手の外部アドレス・ポート情報を取得することで、以降は発呼側と被呼側間で外部アドレス・ポート情報を用いてP2P通信を行う。なお、呼制御サーバは、登録された端末等の識別情報を保持して、特定の相手先を呼び出して通信経路を確立するための通信装置間の呼制御に関するサービスを行う装置である。
特許文献3は、インターネット等を中継して接続されるローカルネットワーク間で接続を行うIP−PBX(Private Branch Exchange)やIPキー電話システム等の通信装置を開示する。
IP−PBXは、ローカルネットワークのゲートウェイとして機能するルータまたはSTUNサーバから自装置のアクセス情報(グローバルIPアドレス・ポート)を取得し、取得したアクセス情報を本文に挿入した電子メールを作成する。そして、IP−PBXは、該電子メールを異なるローカルネットワークに配備された遠隔地のIP電話機を宛先として送信する。遠隔地のIP電話機は、電子メールに記載されたアクセス情報を用いてIP−PBXに登録を行う。この登録により、IP−PBXは、遠隔地のIP電話機への発着信制御を行う。
特開2011−188358号公報 特開2010−283594号公報 特開2011−041138号公報
DMVPNにおいて、スポークがNAT装置の配下に位置するネットワーク環境では、スポーク間通信を行なおうとする2つのスポークが、互いのNAT変換後のグローバルIPアドレスを知ることができない。インターネット内で通知されていて、転送データの到達性のあるアドレス情報はグローバルIPアドレスである。そのため、スポークがNAT装置の配下に位置するネットワーク環境では、双方のスポークにおいて相手のグローバルIPアドレスを知ることができず、スポーク間で動的に仮想トンネルを確立することができない。
例えば、DMVPNは、インターネットを介した企業ネットワークにおいて、本社と各拠点にVPN装置を配置してフルメッシュのVPNを実現することができる。通常、インターネットの接続のためにはISP(Internet Service Provider)を選定する必要がある。そして、一部のISPでは、IPアドレス枯渇問題などを背景として、キャリア・グレードNATの導入が行われている。
スポークとなるVPN装置をインターネットに接続するためのISPがキャリア・グレードNATを導入している場合、キャリア・グレードNAT配下のスポークのIPアドレス・ポートはキャリア・グレードNATにより変換される。そのため、キャリア・グレードNAT配下のスポーク間で動的に仮想トンネルを生成しようとしても、互いのNAT変換後のグローバルIPアドレス・ポートを知ることができない。
一方、特許文献1乃至3には、STUNプロトコルを用いてNAT変換後のグローバルIPアドレス・ポートを知る技術が開示されている。
そして、特許文献1や特許文献2が開示する技術は、STUNプロトコルを用いて取得したNAT変換後のグローバルIPアドレス・ポートを、呼制御サーバを介して発呼側と被呼側が相互に交換するように構成している。また、特許文献3が開示する技術では、STUNプロトコルを用いて取得したNAT変換後のグローバルIPアドレス・ポートを、電子メールを用いて遠隔地のIP電話機に通知するように構成している。
特許文献1や特許文献2における呼制御サーバは、登録された端末等の識別情報を保持して、特定の相手先を呼び出して通信経路を確立するための通信装置間の呼制御に関するサービスを行う装置である。そして、特許文献1や特許文献2においてはそのような呼制御サーバが配備された環境を前提としている。また、特許文献3では電子メールを送信する構成を必要とすることを前提としている。
そのため、特許文献1乃至3が開示する技術は、そのような前提が適用できないシステムに対しては用いることができないという課題がある。
つまり、NAT変換後のグローバルIPアドレス・ポートが取得できたとしても、呼制御サーバが配備されていない環境や電子メールを送信するという構成を有しないDMVPN上のスポークはその情報を相手のスポークに伝達できないという課題がある。
本発明は、DMVPN上のスポークがNAT装置配下にある環境で、取得したNAT変換後のグローバルIPアドレス・ポート情報をスポーク間で通知して、動的に仮想トンネルを生成することができる通信システム、通信装置およびVPN構築方法を提供する。
上記の目的を実現するために、本発明の一形態である通信システムは、DMVPN(Dynamic Multipoint Virtual Private Network)を構成するスポークとして機能し、異なるアドレス空間のネットワーク間で送受信されるパケットのNAT(Network Address Translation)アドレス変換を行う中継装置の配下に設置され、前記NATアドレス変換で生成された、前記中継装置の外側のアドレス空間からアクセスすることが可能なアドレス情報である外部アドレス・ポート情報を返信する機能を持つアドレス情報提供装置から前記外部アドレス・ポート情報を取得し、前記DMVPNで使用するNHRP(Next Hop Resolution Protocol)登録パケットの拡張フィールドに該外部アドレス・ポート情報を含めて送信する、少なくとも2つの通信装置である第1の通信装置と第2の通信装置と、前記DMVPNを構成するハブとして機能し、配下の前記第1の通信装置と前記第2の通信装置のそれぞれから受信した前記NHRP登録パケットに含まれる前記外部アドレス・ポート情報を前記第1の通信装置と前記第2の通信装置のそれぞれと対応付けたマッピング情報に登録する第3の通信装置と、を含み、前記第3の通信装置は、該第3の通信装置を介したパケット送信元の前記スポークである前記第1の通信装置からパケット送信先の前記スポークである前記第2の通信装置との通信において、該第1の通信装置と該第2の通信装置との間に仮想トンネルを生成可能であることを前記マッピング情報に基づいて検出すると、前記第1の通信装置に対して前記仮想トンネルの生成を指示し、前記第3の通信装置から前記仮想トンネルの生成の指示を受けた前記第1の通信装置は、前記DMVPNで使用するNHRP解決要求パケットの拡張フィールドに該第1の通信装置の前記外部アドレス・ポート情報を含めて送信し、前記第1の通信装置から前記NHRP解決要求パケットを受信した前記第2の通信装置は、前記DMVPNで使用するNHRP解決応答パケットの拡張フィールドに該第2の通信装置の前記外部アドレス・ポート情報を含めて返信し、前記NHRP解決応答パケットを受信した前記第1の通信装置は、該NHRP解決応答パケットに含まれる前記第2の通信装置の前記外部アドレス・ポート情報に基づいて、前記第2の通信装置との間に前記仮想トンネルを生成することを特徴とする。
また、本発明の別の形態である通信装置は、異なるアドレス空間のネットワーク間で送受信されるパケットのNAT(Network Address Translation)アドレス変換を行う中継装置を介して、前記NATアドレス変換で生成された前記中継装置の外側のアドレス空間からアクセスすることが可能なアドレス情報である外部アドレス・ポート情報を返信する機能を持つアドレス情報提供装置から、前記外部アドレス・ポート情報を取得する外部アドレス・ポート情報取得手段と、DMVPN(Dynamic Multipoint Virtual Private Network)で使用するNHRP(Next Hop Resolution Protocol)登録パケットの拡張フィールドに前記外部アドレス・ポート情報を含めて該DMVPNのハブに送信し、前記ハブから、該ハブを介したスポーク間通信において、相手先スポークとの間に仮想トンネルを生成可能であることを通知されると、前記DMVPNで使用するNHRP解決要求パケットの拡張フィールドに前記外部アドレス・ポート情報を含めて前記相手先スポークに送信し、前記NHRP解決要求パケットを受信した前記相手先スポークが返送する前記DMVPNで使用するNHRP解決応答パケットの拡張フィールドから前記相手先スポークの前記外部アドレス・ポート情報を取得するアドレス解決手段と、前記アドレス解決手段が取得した前記相手先スポークの前記外部アドレス・ポート情報に基づいて、前記相手先スポークとの間に前記仮想トンネルを生成するトンネル生成手段と、を含むことを特徴とする。
また、本発明の他の形態であるVPN構築方法は、DMVPN(Dynamic Multipoint Virtual Private Network)を構成するスポークとして機能し、異なるアドレス空間のネットワーク間で送受信されるパケットのNAT(Network Address Translation)アドレス変換を行う中継装置の配下に設置され、前記中継装置の外側のアドレス空間からアクセスすることが可能なアドレス情報である外部アドレス・ポート情報を返信する機能を持つアドレス情報提供装置から前記外部アドレス・ポート情報を取得する少なくとも2つの通信装置である第1の通信装置と第2の通信装置のそれぞれが、前記DMVPNで使用するNHRP(Next Hop Resolution Protocol)登録パケットの拡張フィールドに該外部アドレス・ポート情報を含めて送信し、前記DMVPNを構成するハブとして機能する第3の通信装置が、配下の前記第1の通信装置と前記第2の通信装置のそれぞれから受信した前記NHRP登録パケットに含まれる前記外部アドレス・ポート情報を前記第1の通信装置と前記第2の通信装置のそれぞれと対応付けたマッピング情報に登録し、前記第3の通信装置を介したパケット送信元の前記スポークである前記第1の通信装置からパケット送信先の前記スポークである前記第2の通信装置との通信において、該第3の通信装置が、前記第1の通信装置と前記第2の通信装置との間に仮想トンネルを生成可能であることを前記マッピング情報に基づいて検出すると、前記第1の通信装置に対して前記仮想トンネルの生成を指示し、前記第3の通信装置から前記仮想トンネルの生成の指示を受けた前記第1の通信装置が、前記DMVPNで使用するNHRP解決要求パケットの拡張フィールドに該第1の通信装置の前記外部アドレス・ポート情報を含めて送信し、前記第1の通信装置から前記NHRP解決要求パケットを受信した前記第2の通信装置が、前記DMVPNで使用するNHRP解決応答パケットの拡張フィールドに該第2の通信装置の前記外部アドレス・ポート情報を含めて返信し、前記NHRP解決応答パケットを受信した前記第1の通信装置が、該NHRP解決応答パケットに含まれる前記第2の通信装置の前記外部アドレス・ポート情報に基づいて、前記第2の通信装置との間に前記仮想トンネルを生成することを特徴とする。
さらに、本発明の他の形態である別の観点でのVPN構築方法は、異なるアドレス空間のネットワーク間で送受信されるパケットのNAT(Network Address Translation)アドレス変換を行う中継装置を介して、前記NATアドレス変換で生成された前記中継装置の外側のアドレス空間からアクセスすることが可能なアドレス情報である外部アドレス・ポート情報を返信する機能を持つアドレス情報提供装置から前記外部アドレス・ポート情報を取得し、DMVPN(Dynamic Multipoint Virtual Private Network)で使用するNHRP(Next Hop Resolution Protocol)登録パケットの拡張フィールドに前記外部アドレス・ポート情報を含めて該DMVPNのハブに送信し、前記ハブから、該ハブを介したスポーク間通信において、相手先スポークとの間に仮想トンネルを生成可能であることを通知されると、前記DMVPNで使用するNHRP解決要求パケットの拡張フィールドに前記外部アドレス・ポート情報を含めて前記相手先スポークに送信し、前記NHRP解決要求パケットを受信した前記相手先スポークが返送する前記DMVPNで使用するNHRP解決応答パケットの拡張フィールドから前記相手先スポークの前記外部アドレス・ポート情報を取得し、取得した前記相手先スポークの前記外部アドレス・ポート情報に基づいて、前記相手先スポークとの間に前記仮想トンネルを生成することを特徴とする。
本発明は、DMVPN上のスポークがNAT装置配下にある環境で、取得したNAT変換後のグローバルIPアドレス・ポート情報をスポーク間で通知して、動的に仮想トンネルを生成することができる。
本発明の第1の実施形態の通信システムの構成を示すブロック図である。 本発明の第1の実施形態の通信装置の構成を示すブロック図である。 本発明の第1の実施形態の通信システムにおける装置間の動作を説明するシーケンス図である。 本発明の第1の実施形態の通信装置の動作を説明するフロー図である。 本発明の第2の実施形態の通信システムの構成を示すブロック図である。 本発明の第2の実施形態の通信システムにおける装置間の動作を説明するシーケンス図である。 本発明の第2の実施形態の通信装置の構成を示すブロック図である。 NHRPプロトコルパケットの拡張フィールドを示す構成図である。 ハブの動作を示すフロー図である。 スポークの動作を示すフロー図である。 NATトラバーサルのIPsecパケット送受信におけるポート番号の変換制御を示すシーケンス図である。 NAT種別の組合せによる動的仮想トンネルの生成可否の対応を示す図である。 スポークにおける自装置側のNAT種別および相手装置側のNAT種別に応じた制御動作を示すフロー図である。 スポークにおける外部アドレス・ポート情報の更新動作を示すフロー図である。
本発明を実施するための形態について図面を参照して説明する。
尚、実施の形態は例示であり、開示の装置、システムおよび方法は、以下の実施の形態の構成には限定されない。
(第1の実施形態)
第1の実施形態の通信システムについて説明する、
図1は、本発明の第1の実施形態の通信システムの構成を示すブロック図である。本実施形態の通信システム1は、企業等のプライベート網を、広域網60を介して接続したDMVPN(Dynamic Multipoint Virtual Private Network)を構成するネットワーク形態となっている。
第1の通信装置10は、第1プライベート網61に属し、DMVPNのスポークとして機能する通信装置である。第2の通信装置20は、第2プライベート網62に属し、DMVPNのスポークとして機能する通信装置である。また、第3の通信装置30は、第3プライベート網63に属し、DMVPNのハブとして機能する通信装置である。図1では、スポークとなる通信装置として、第1の通信装置10と第2の通信装置20のみを示しているが、これは最小構成を例示するものであり、スポークとなる通信装置の数は任意である。第1プライベート網61、第2プライベート網62および第3プライベート網63は同一の企業等に属するプライベート網である。特に各プライベート網を区別して説明する必要がない場合には「プライベート網」と総称して説明する。
第1の通信装置10は、第1プライベート網61においてNATアドレス変換を行う第1の中継装置40の配下に設置される。また、第2の通信装置20は、第2プライベート網62においてNATアドレス変換を行う第2の中継装置50の配下に設置される。なお、各中継装置を区別して説明する必要がない場合には「中継装置」と総称して説明する。
NATとは、異なるアドレス空間のネットワーク間で送受信されるパケットのアドレス変換を行う機能を称する。つまり、NATは、プライベート網で使用されるアドレス情報と、中継装置が保持している広域網で使用するアドレス情報との変換を行う。また、ここでNATは狭義のNAPT(Network Address Port Translation)を含めた広義のNATを意味する。そして、アドレス・ポートは、アドレスのみ、アドレスおよびポート番号、のいずれかを意味するものとする。
また、「配下に設置される」とは、中継装置を境界として、プライベート網の内側に設置されることを意味する。従って、「外側」や「外部」は、中継装置を境界として、広域網側を意味する。
また、広域網60にはアドレス情報提供装置70が接続されており、第1の通信装置10と第2の通信装置20に対して、NATアドレス変換で生成された外部アドレス・ポート情報を返信する機能を持つ。ここで、外部アドレス・ポート情報は、各中継装置の外側のアドレス空間である広域網側から第1の通信装置10や第2の通信装置20にそれぞれアクセスすることが可能なアドレス情報である。
第1の通信装置10と第2の通信装置20のそれぞれは、アドレス情報提供装置70から外部アドレス・ポート情報を取得する。そして、DMVPNで使用するNHRP(Next Hop Resolution Protocol)登録パケットの拡張フィールドに該外部アドレス・ポート情報を含めて送信する。
第3の通信装置30は、配下の第1の通信装置10と第2の通信装置20のそれぞれから受信したNHRP登録パケットに含まれる外部アドレス・ポート情報を、第1の通信装置10と第2の通信装置20のそれぞれと対応付けたマッピング情報に登録する。ここで、「配下」とは、DMVPNの構成におけるハブに対するスポークを意味する。
パケット送信元のスポークである第1の通信装置10は、第3の通信装置30を介して仮想トンネルにより送信先のスポークである第2の通信装置20と通信を行う。
第3の通信装置30は、この第3の通信装置を介した第1の通信装置10と第2の通信装置20との通信において、該第1の通信装置10と該第2の通信装置20との間に仮想トンネルを生成可能であることをマッピング情報に基づいて検出する。そして、第3の通信装置30は第1の通信装置10に対して仮想トンネルの生成を指示する。
第3の通信装置30から仮想トンネルの生成の指示を受けた第1の通信装置10は、DMVPNで使用するNHRP解決要求パケットの拡張フィールドに該第1の通信装置10の外部アドレス・ポート情報を含めて送信する。
第1の通信装置10からNHRP解決要求パケットを受信した第2の通信装置20は、DMVPNで使用するNHRP解決応答パケットの拡張フィールドに該第2の通信装置20の外部アドレス・ポート情報を含めて返信する。
そして、NHRP解決応答パケットを受信した第1の通信装置10は、該NHRP解決応答パケットに含まれる第2の通信装置20の外部アドレス・ポート情報に基づいて、第2の通信装置20との間に仮想トンネルを生成する。
第1の実施形態の通信装置を説明する。
図2は、本発明の第1の実施形態の通信装置の構成を示すブロック図である。
第1の実施形態の通信装置100は、外部アドレス・ポート情報取得手段110、アドレス解決手段120およびトンネル生成手段130を含む構成になっている。
外部アドレス・ポート情報取得手段110は、異なるアドレス空間のネットワーク間で送受信されるパケットのNATアドレス変換を行う中継装置を介して、アドレス情報提供装置から外部アドレス・ポート情報を取得する。
外部アドレス・ポート情報は、NATアドレス変換で生成された中継装置の外側のアドレス空間である広域網側からアクセスすることが可能なアドレス情報である。そして、アドレス情報提供装置は、この外部アドレス・ポート情報を通信装置100に返信する機能を持つ装置である。
アドレス解決手段120は、DMVPNで使用するNHRP登録パケットの拡張フィールドに外部アドレス・ポート情報を含めて該DMVPNのハブに送信する。
アドレス解決手段120は、ハブから、該ハブを介したスポーク間通信において、相手先スポークとの間に仮想トンネルを生成可能であることを通知されると、DMVPNで使用するNHRP解決要求パケットを相手先スポークに送信する。NHRP解決要求パケットの拡張フィールドには外部アドレス・ポート情報を含める。
また、アドレス解決手段120は、このNHRP解決要求パケットを受信した相手先スポークが返送するDMVPNで使用するNHRP解決応答パケットの拡張フィールドから相手先スポークの外部アドレス・ポート情報を取得する。
トンネル生成手段130は、アドレス解決手段120が取得した相手先スポークの外部アドレス・ポート情報に基づいて、相手先スポークとの間に仮想トンネルを生成する。
次に、図3および図4を参照して第1の実施形態のVPN構築方法を説明する。
図3は、図1に示した第1の実施形態の通信システム1における装置間の動作を説明するシーケンス図である。
図4は、図2に示した第1の実施形態の通信装置100の動作を示すフロー図である。
通信システム1や通信装置100が動作することにより第1の実施形態のVPN構築方法が実施される。
まず、図3を参照して通信システム1における装置間の動作を説明する。
DMVPNを構成するスポークとして機能する第1の通信装置10と第2の通信装置20のそれぞれが、アドレス情報提供装置70から外部アドレス・ポート情報を取得する(S101、S102)
第1の通信装置10と第2の通信装置20は、異なるアドレス空間のネットワーク間で送受信されるパケットのNATアドレス変換を行う第1の中継装置40、第2の中継装置50のそれぞれの配下に設置される。そして、アドレス情報提供装置70は、第1の通信装置10と第2の通信装置20に対して、NATアドレス変換で生成された外部アドレス・ポート情報を返信する機能を持つ。外部アドレス・ポート情報は、第1の中継装置40、第2の中継装置50の外側のアドレス空間である広域網側から第1の通信装置10や第2の通信装置20にそれぞれアクセスすることが可能なアドレス情報である。
外部アドレス・ポート情報を取得した第1の通信装置10と第2の通信装置20のそれぞれは、DMVPNで使用するNHRP登録パケットの拡張フィールドに該外部アドレス・ポート情報を含めて送信する(S103、S104)。
このNHRP登録パケットはDMVPNを構成するハブとして機能する第3の通信装置30で受信される。そして、第3の通信装置30は、第1の通信装置10と第2の通信装置20のそれぞれから受信したNHRP登録パケットに含まれる外部アドレス・ポート情報を第1の通信装置10と第2の通信装置20のそれぞれと対応付けたマッピング情報に登録する(S105)。
第3の通信装置30を介したパケット送信元のスポークである第1の通信装置10からパケット送信先のスポークである第2の通信装置20との通信が行われる。この通信において、第3の通信装置30が、第1の通信装置10と第2の通信装置20との間に仮想トンネルを生成可能であることを検出する。第3の通信装置30はこの検出をマッピング情報に基づいて行う(S106)。
第1の通信装置10に対して仮想トンネルの生成が指示される(S107)。
第3の通信装置30から仮想トンネルの生成の指示を受けた第1の通信装置10が、DMVPNで使用するNHRP解決要求パケットの拡張フィールドに該第1の通信装置10の外部アドレス・ポート情報を含めて送信する(S108)。
第1の通信装置10からこのNHRP解決要求パケットを受信した第2の通信装置20が、DMVPNで使用するNHRP解決応答パケットの拡張フィールドに該第2の通信装置20の外部アドレス・ポート情報を含めて返信する(S109)。
NHRP解決応答パケットを受信した第1の通信装置10が、該NHRP解決応答パケットに含まれる第2の通信装置20の外部アドレス・ポート情報に基づいて、第2の通信装置20との間に仮想トンネルを生成する(S110)。
以降の第1の通信装置10と第2の通信装置20との間の通信は、ハブである第3の通信装置30を介することなく、動的に生成した仮想トンネルにより行われる。
次に、図4を参照して通信装置100の動作を説明する。
異なるアドレス空間のネットワーク間で送受信されるパケットのNATアドレス変換を行う中継装置を介して、アドレス情報提供装置から外部アドレス・ポート情報を取得する(S201)。
外部アドレス・ポート情報は、NATアドレス変換で生成された中継装置の外側のアドレス空間である広域網側からアクセスすることが可能なアドレス情報である。そして、アドレス情報提供装置は、この外部アドレス・ポート情報を通信装置100に返信する機能を持つ装置である。
DMVPNで使用するNHRP登録パケットの拡張フィールドに外部アドレス・ポート情報を含めて該DMVPNのハブに送信するNHRP登録を行う(S202)。
ハブ経由のスポーク間通信が実行される(S203)。
ハブを介したスポーク間通信において、相手先スポークとの間に仮想トンネルを生成可能であることをハブから通知される(S204)。
DMVPNで使用するNHRP解決要求パケットの拡張フィールドに外部アドレス・ポート情報を含めて相手先スポークに送信する(S205)。
該NHRP解決要求パケットに対して相手先スポークが返送するNHRP解決要求パケットを受信し、該NHRP解決応答パケットの拡張フィールドから相手先スポークの外部アドレス・ポート情報を取得する(S206)。
取得した相手先スポークの外部アドレス・ポート情報に基づいて、相手先スポークとの間に仮想トンネルを生成する(S207)。
以上のように、本実施形態では中継装置でNATアドレス変換された外部アドレス・ポート情報をアドレス情報提供装置から取得する。そして、それをNHRPプロトコルのパケットの拡張フィールドに含めてスポーク間で通知することができる。
そのため、DMVPN上のスポークがNAT装置配下にある環境で、取得したNAT変換後のグローバルIPアドレス・ポートをスポーク間で通知して、動的に仮想トンネルを生成することができる。
(第2の実施形態)
次に、本発明の第2の実施形態を説明する。
(第2の実施形態の通信システムの構成)
図5は、本発明の第2の実施形態の通信システムの構成を示すブロック図である。
本実施形態の通信システム2では、インターネット65を介して各拠点のスポークとなる第1のVPN装置11や第2のVPN装置21と本社のハブとなる第3のVPN装置31を仮想トンネルで接続してDMVPNを構築する形態となっている。そして、第1のVPN装置11と第2のVPN装置21のスポーク同士は必要時のみ動的な仮想トンネルを生成する。ここでは、最小構成として第1のVPN装置11と第2のVPN装置21のみを例示しているが、拠点とそこに設置されるスポークとなるVPN装置の数は任意である。なお、仮想トンネルは、マルチポイントGREでルーティングされ、IPsecにより転送データの暗号化が行われて通信の安全性が確保されている。
第1のVPN装置11は、LAN側インタフェースに、その拠点のLANである第1のLAN12を接続し、WAN(Wide Area Network)側インタフェースに、NATアドレス変換を行う第1のゲートウェイ41を接続する。つまり、第1のVPN装置11は第1のゲートウェイ41の配下に設置され、第1のLAN12を配下にする。第1のVPN装置11の経路情報には、第1のゲートウェイ41がデフォルトゲートウェイとして設定され、第1のゲートウェイ41のプライベートIPアドレスが設定されている。
また、第2のVPN装置21は、LAN側インタフェースに、その拠点のLANである第2のLAN22を接続し、WAN側インタフェースに、NATアドレス変換を行う第2のゲートウェイ51を接続する。つまり、第2のVPN装置21は第2のゲートウェイ51の配下に設置され、第2のLAN22を配下にする。第2のVPN装置21の経路情報には、第2のゲートウェイ51がデフォルトゲートウェイとして設定され、第2のゲートウェイ51のプライベートIPアドレスが設定されている。
第1のゲートウェイ41および第2のゲートウェイ51は、それぞれの配下となるプライベート網で使用されるアドレス情報と、各ゲートウェイが保持しているインターネット65で使用するアドレス情報との変換を行う。本実施形態では、プライベート網で使用されるアドレス情報はプライベートIPアドレス・ポートであり、インターネット65で使用するアドレス情報はグローバルIPアドレス・ポートである。
なお、「NATアドレス変換」を以降の説明では単に「NAT」または「NAT変換」と称する。また、NAT機能を備えたゲートウェイのことを「NAT装置」とも称する。
インターネット65にはSTUNサーバ71が設置されている。STUNサーバ71は、STUNクライアントとなる第1のVPN装置11と第2のVPN装置21に対して、対応する各ゲートウェイで実施されるNATで生成された外部アドレス・ポート情報をSTUNプロトコルにより返信する機能を持つ。
ここで、外部アドレス・ポート情報は、インターネット65から第1のVPN装置11や第2のVPN装置21にそれぞれアクセスすることが可能なアドレス情報であり、グローバルIPアドレス・ポートを意味する。
また、外部アドレス・ポート情報には、各ゲートウェイが実施するアドレス・ポート変換のマッピング方法に応じて分類されたNAT種別を含む。つまり、NATで割り当てたポートにアクセスできるインターネット側の端末の制限に応じて、フルコーンNAT、アドレス制限コーンNAT、ポート制限コーンNATおよびシンメトリックNATの4つの種別がある。
上記の構成を図1に示した第1の実施形態の通信装置1と対応させると次のようになる。
第1のVPN装置11、第2のVPN装置21、第3のVPN装置31は、それぞれ第1の通信装置10、第2の通信装置20、第3の通信装置30に対応する。
第1のゲートウェイ41、第2のゲートウェイ51は、それぞれ第1の中継装置40、第2の中継装置50に対応する。
そして、インターネット61は広域網60に、STUNサーバ71はアドレス情報提供装置70にそれぞれ対応する。
また、第1の実施形態と同様に、本実施形態においてもNATとは、異なるアドレス空間のネットワーク間で送受信されるパケットのアドレス変換を行う機能を称し、狭義のNAPTを含めた広義のNATを意味する。そして、アドレス・ポートは、アドレスのみ、アドレスおよびポート番号、のいずれかを意味するものとする。
以上のように物理的に構成された通信システム2を、仮想ネットワークの観点でみると、DMVPNの経路情報は、BGP(Border Gateway Protocol)等の動的ルーティングプロトコルにより配信されており、次のように設定されている。
DMVPNで構築した仮想ネットワーク上のスポークとなる第1のVPN装置11と第2のVPN装置21およびハブとなる第3のVPN装置31をステーションと称し、各ステーションは、それぞれがトンネルIPアドレスを持っている。トンネルIPアドレスは、トンネルインタフェースに割り当てた仮想ネットワーク上のIPアドレスで、DMVPN上のステーション間でパケットを送受信するときに使われる。
第1のVPN装置11では、相手先スポークである第2のVPN装置21配下の第2のLAN22へのネクストホップとして、ハブである第3のVPN装置31のトンネルIPアドレスが設定されている。同様に、第2のVPN装置21では、相手先スポークである第1のVPN装置11配下の第1のLAN12へのネクストホップとして、ハブである第3のVPN装置31のトンネルIPアドレスが設定されている。
また、ハブである第3のVPN装置31では、第1のVPN装置11配下の第1のLAN12へのネクストホップとして、第1のVPN装置11のトンネルIPアドレスが設定されている。同様に、ハブである第3のVPN装置31では、第2のVPN装置21配下の第2のLAN22へのネクストホップとして、第2のVPN装置21のトンネルIPアドレスが設定されている。
また、各ステーションの物理インタフェースに割り当てたIPアドレスとして、プライベートIPアドレスやグローバルIPアドレスがある。例えば、第1のVPN装置11と第2のVPN装置21はプライベート網に属するのでプライベートIPアドレスが割り当てられる。そして、第3のVPN装置31はインターネット上に配置されるのでグローバルIPアドレスを持つ。
第1のLAN12に属する端末が、第2のLAN22に属する端末にデータパケットを送信する場合、パケットは上記のように設定されたトンネルIPアドレスでルーティングされてDMVPNで構築されたトンネル内を通る。つまり、トンネルIPアドレスのIPヘッダを持つデータパケットがGREカプセル化され、物理インタフェースのIPアドレスのIPヘッダが付加されてインターネット65内を転送される。そして、ステーション間のトンネルでは転送されるパケットがIPsecにより暗号化される。
(第2の実施形態の通信システムにおける装置間の動作)
図6は、図5に示した第2の実施形態の通信システム2における装置間の動作を説明するシーケンス図である。
DMVPNを機能させるため、第1のLAN12に属する端末と第2のLAN22に属する端末間での通信を開始する前に、ハブに対してスポークである第1のVPN装置11と第2のVPN装置21によるNHRPプロトコルの登録が事前に行われる。
まず、第1のVPN装置11、第2のVPN装置21のそれぞれは、NHRPプロトコルの登録に必要な情報の取得を行う。
第1のVPN装置11、第2のVPN装置21のそれぞれは、インターネット65に配備されたSTUNサーバ71への問合せを行い、NAT変換後の各自のグローバルIPアドレス・ポートおよびNAT種別を取得する(S301、S302)。
このときの動作を第1のVPN装置11を例にして説明する。
第1のVPN装置11は、自身のプライベートIPアドレス・ポートを送信元アドレスとし、STUNサーバ71のグローバルIPアドレス・ポートを宛先としたSTUNリクエストを送信する。このSTUNリクエストが第1のゲートウェイ41を介してインターネット65に出てゆくときに、NAT変換が行われる。つまり、STUNリクエストの送信元アドレスが第1のVPN装置11のプライベートIPアドレス・ポートから、NAT変換で割り当てられたグローバルIPアドレス・ポートに書き換えられ、そのエントリが生成される。
STUNリクエストを受信したSTUNサーバ71は、STUNリクエストの送信元アドレスのグローバルIPアドレス・ポートを含めたSTUNレスポンスを、該グローバルIPアドレス・ポートを宛先として送信する。
このSTUNレスポンスは宛先のグローバルIPアドレス・ポートである第1のゲートウェイ41に達する。第1のゲートウェイ41では、上記のSTUNリクエストが通過する際に生成されたエントリに基づいて逆方向のNAT変換が行われる。つまり、STUNレスポンスの宛先は、グローバルIPアドレス・ポートから該エントリに基づく第1のVPN装置11のプライベートIPアドレス・ポートに書き換えられ、第1のVPN装置11で受信される。
このようにして、第1のVPN装置11は、STUNプロトコルを用いて、インターネット65に出てゆく際にNAT変換されるグローバルIPアドレス・ポートを取得する。また、第1のゲートウェイ41のNAT種別も特定する。第1のVPN装置11は、取得したグローバルIPアドレス・ポートおよびNAT種別をグローバルIPアドレス・ポート情報として自装置内に記憶する。
第2のVPN装置21も上記と同様の動作により、第2のゲートウェイ51でNAT変換されるグローバルIPアドレス・ポートおよびNAT種別を取得して自装置内に記憶する。
なお、上述したNAT変換されるグローバルIPアドレス・ポートのSTUNプロトコルによる取得は定期的に行われる。そして、該グローバルIPアドレス・ポートに変更があった場合はそれを最新の状態に保つ。グローバルIPアドレス・ポートを最新の状態に保つための処理については後述する。
NAT変換されるグローバルIPアドレス・ポートおよびNAT種別をSTUNサーバ71から取得した第1のVPN装置11と第2のVPN装置21のそれぞれは、ハブである第3のVPN装置31に対してNHRP登録を行う(S303、S304)。
第1のVPN装置11と第2のVPN装置21のそれぞれは、第3のVPN装置31宛にNHRP登録要求を送信する。NHRP登録要求の拡張部には後述するNAPT拡張が付加され、STUNサーバ71から取得したグローバルIPアドレス・ポートおよびNAT種別が格納される。
NHRP登録要求を受信した第3のVPN装置31は、該NHRP登録要求のNAPT拡張に含まれる第1のVPN装置11や第2のVPN装置21のグローバルIPアドレス・ポートおよびNAT種別を取り出す。そして、第3のVPN装置31は、NHRP登録要求の送信元アドレスである各スポークの仮想ネットワーク上のトンネルIPアドレスと、グローバルIPアドレス・ポートおよびNAT種別とを対応付けたマッピング情報を登録する(S305)。
NHRP登録が終了した第3のVPN装置31は、NHRP登録応答を第1のVPN装置11や第2のVPN装置21に返送する。このとき、NHRP登録応答の宛先物理IPアドレスおよびIPsecのNATトラバーサルで使用する宛先UDPポート番号は、取得したNAPT拡張の情報を使用する。
NHRP登録が完了すると、DMVPNが使用可能となる。
第1のLAN12に属する端末と第2のLAN22に属する端末との間でハブ経由スポーク間通信が行われる(S306)。
第1のLAN12に属する端末が第2のLAN22に属する端末宛にデータパケットを送信すると、このデータパケットはスポークである第1のVPN装置11に転送される。
第1のVPN装置11は経路情報に従い、第2のVPN装置21配下の第2のLAN22に属する端末宛のデータパケットをハブである第3のVPN装置31に転送する。
第3のVPN装置31は、第2のVPN装置21配下の第2のLAN22に属する端末宛のデータパケットを、第2のVPN装置21に転送する。
第2のVPN装置21は、データパケットの宛先が自身の配下の第2のLAN22に属する端末宛なので、該データパケットを第2のLAN22に属する端末に転送する。データパケットは該端末で受信される。
上記の動作において、ハブである第3のVPN装置31がデータパケットを転送する際に、第1のVPN装置11と第2のVPN装置21との間でスポーク間通信が可能か否かを判定する(S307)。
この判定は、第3のVPN装置31に登録したマッピング情報の双方のスポークに対応するNAT種別に基づいて行われる。詳細は後述する。
第1のVPN装置11と第2のVPN装置21との間でスポーク間通信が可能であると判定すると、第3のVPN装置31は、データパケットの送信元の第1のVPN装置11にNHRPトラフィック通知を送信して、アドレス解決の実施を指示する(S308)。
NHRPトラフィック通知を受信した第1のVPN装置11は、NHRP解決を開始する。
第1のVPN装置11は、第2のLAN22に属する端末のプライベートIPアドレス・ポート宛にNHRP解決要求を送信する(S309)。
そのとき、NHRP解決要求の拡張部には、第1のVPN装置11のNAPT拡張が付加される。該NAPT拡張には、第1のVPN装置11がSTUNサーバ71から取得したグローバルIPアドレス・ポートおよびNAT種別が格納されている。
NHRP解決要求は、第1のLAN12に属する端末から第2のLAN22に属する端末宛のデータパケットと同様に、第3のVPN装置31を経由して第2のVPN装置21で受信される。
NHRP解決要求を受信した第2のVPN装置21は、第1のVPN装置11宛にNHRP解決応答を送信する(S310)。
NHRP解決応答の拡張部には、第2のVPN装置21のNAPT拡張が付加される。該NAPT拡張には、第2のVPN装置21がSTUNサーバ71から取得したグローバルIPアドレス・ポートおよびNAT種別が格納されている。
NHRP解決応答は、経路情報に従い、第3のVPN装置31経由で第1のVPN装置11に到達し、第1のVPN装置11で受信される。
第1のVPN装置11は、NHRP解決応答の送信元アドレス情報として第2のVPN装置21のIPアドレス情報(物理ネットワーク上のIPアドレスおよび仮想ネットワーク上のIPアドレス)に加えて、NAPT拡張の情報を取得する。
相手先スポークとなる第2のVPN装置21のグローバルIPアドレス・ポートを取得した第1のVPN装置11は、その情報を用いて第2のVPN装置21との間に動的な仮想トンネルを生成する(S311)。
このとき、第1のVPN装置11は仮想ネットワークの経路情報を追加する。つまり、第2のVPN装置21配下の第2のLAN22へのネクストホップは、第2のVPN装置21の仮想ネットワーク上のトンネルIPアドレスとなる。
以上の動作で、NHRP解決が完了する。
第1のVPN装置11と第2のVPN装置21のスポーク間トンネル生成後は、第1のVPN装置11で生成した第2のVPN装置21の配下の第2のLAN22の経路情報に基づいてルーティングされる。そのため、第1のLAN12の端末から第2のLAN22の端末へのデータパケットは、第1のVPN装置11から第2のVPN装置21に直接転送されるようになる。
この経路情報は、第2のVPN装置21の情報が生存している間だけ存在する。NHRPプロトコルでは、動的に生成した仮想トンネルを未使用時には削除するように、相手先スポーク情報に生存時間を設けている。
(第2の実施形態の通信装置)
続いて、図7を参照して第2の実施形態の通信装置を説明する。
図7は、本発明の第2の実施形態の通信装置の構成を示すブロック図である。
この通信装置200は、図5に示した、スポークである第1のVPN装置11および第2のVPN装置21の構成を示すものである。
通信装置200は、LANインタフェース部230、WANインタフェース部240、通信制御部210および外部アドレス・ポート情報記憶部220を含んで構成される。
LANインタフェース部230は、当該通信装置200の配下のLANを接続し、そのLANに属する端末との間でのパケットの送受信を行う機能部である。
WANインタフェース部240は、インターネットとの間のパケットの送受信を行う機能部で、NAT機能を備えたゲートウェイと接続される。
通信制御部210は、LANインタフェース部230とWANインタフェース部240との間でパケットの中継を行う機能を備え、本実施形態のVPN構築の制御を行う機能部である。
外部アドレス・ポート情報記憶部220は、STUNサーバ71から取得した本通信装置が接続されたゲートウェイでNAT変換されるグローバルIPアドレス・ポートおよびNAT種別を記憶する。また、NHRP解決応答で取得した相手先スポークとなる通信装置のグローバルIPアドレス・ポートおよびNAT種別を記憶する。
通信制御部210は、本実施形態のVPN構築の制御を行う機能として、外部アドレス・ポート情報取得部211、アドレス解決部212およびトンネル生成部213を含む構成になっている。
外部アドレス・ポート情報取得部211は、STUNアプリケーション2111を含み、STUNサーバ71へのアクセスによるグローバルIPアドレス・ポートおよびNAT種別取得を行う。取得した情報は、外部アドレス・ポート情報記憶部220に登録すると共に、アドレス解決部212に通知する。
また、後述するように、外部アドレス・ポート情報取得部211は、定期的にSTUNサーバ71にアクセスして、取得した情報の更新と通知を行う。さらに、IPsecのNATトラバーサルで使用する宛先UDPポート番号の変換処理を行う。これについても後述する。
アドレス解決部212は、NHRPプロトコルの制御機能を有し、NHRP登録、NHRP登録応答、NHRPトラフィック通知、NHRP解決要求、NHRP解決応答に関する制御を行う。
アドレス解決部212は、外部アドレス・ポート情報取得部211からグローバルIPアドレス・ポートおよびNAT種別の取得の通知を受けると、NHRP登録の拡張部にNAPT拡張としてその情報を付加してハブに通知する。
アドレス解決部212は、ハブ経由スポーク間通信の際に、ハブからNHRPトラフィック通知を受けると、NHRP解決要求の拡張部にNAPT拡張としてグローバルIPアドレス・ポートおよびNAT種別の情報を付加してNHRP解決を図る。
アドレス解決部212は、NHRP解決応答の拡張部にNAPT拡張として含まれるグローバルIPアドレス・ポートおよびNAT種別の情報を取得して、外部アドレス・ポート情報記憶部に相手先スポークの情報として登録する。
トンネル生成部213は、動的な仮想トンネルの生成に関する制御を行う。また、トンネル生成部213は、仮想トンネルの生成に際してNAT種別に応じて行われる後述する制御を行うトンネル生成制御部2131を含む。
上記の構成は、本実施形態に関わる構成であり、DMVPNのスポークとして機能するためのその他の機能(経路情報制御、BGP、マルチポイントGRE、IPsec等)に関する構成の図示や説明は省略している。
なお、この通信装置200は、スポークである第1のVPN装置11および第2のVPN装置21の構成を示すものとして説明した。一方、図5に示した、ハブとなる第3のVPN装置31は、上述の説明から理解されるように、本実施形態に関してはNHRP登録やNHRPトラフィック通知に関する制御を行う。そして、そのために必要な構成としては、NHRP登録で取得した情報に基づくマッピング情報の生成と、それに基づいて行われる動的仮想トンネル生成可否判定機能がある。図5に図示した第3のVPN装置31の「マッピング情報」、「トンネル生成判定」がそれらの機能に相当するものとし、個別の通信装置としての詳細構成の図示は省略した。
(NAPT拡張のフィールド構成)
ここで、本実施形態で使用するNHRPプロトコルパケットの拡張部に付加するNAPT拡張について説明する。
図8は、NHRPプロトコルパケットの拡張フィールドを示す構成図である。
NHRPプロトコルでは、NHRPメッセージのパケットは必須部と拡張部から構成される。拡張部は、独自に定義したものを付加することをプロトコルとして許容している。本実施形態では、拡張部にNAPT拡張として、図8に示すように、メッセージを送信する送信元スポークのグローバルIPアドレス、グローバルポート番号および該送信元スポークが接続しているNAT装置のNAT種別を示す値を付加している。
前述したように、本実施形態では、NHRPアドレス解決を通して、NAT装置の配下に設置されたスポーク間で、互いのNAPT拡張の情報がハブ経由で交換される。そのため、NHRP解決要求を送信したスポークは、相手先スポークのグローバルIPアドレス、グローバルポート番号およびNAT種別を知ることができる。さらに、NHRP登録では各スポークが自身のNAPT拡張の情報をハブに通知するので、ハブは、通常のNHRP登録の情報に加えて、各スポークのグローバルIPアドレス、グローバルポート番号およびNAT種別を保持することができる。
(通信装置の動作)
次に、図9と図10を参照して、ハブとなる通信装置とスポークとなる通信装置の動作をそれぞれ説明する。
図9はハブの動作を示すフロー図である。
図9の(1)は、NHRP登録の際の動作を示す。
ハブは、配下の各スポークからのNHRP登録要求を受信する(S401)。
そして、ハブは受信したNHRP登録要求のパケットの拡張部に付加されたNAPT拡張から、各スポークのグローバルIPアドレス、グローバルポート番号およびNAT種別を取得し、各スポークと対応付けたマッピング情報に登録する(S402)。
NHRP登録を行ったハブは、NHRP登録応答をスポークに返送する(S403)。
また、図9の(2)は、スポーク間通信時のスポーク間トンネルの生成可否判定の動作を示す。
ハブは、パケットの送信元スポークから送信先スポークに向けたハブ経由スポーク間通信の発生を知る(S411)。
ハブは、前述のNHRP登録で生成したマッピング情報に基づいて、送信元スポークと送信先スポークのそれぞれのスポークが接続されたNAT装置のNAT種別を識別する(S412)。そして、動的仮想トンネルの作成が可能か否かをそれらのNAT種別の組合せに基づいて判定する(S413)。
NAT種別の組合せに基づく動的仮想トンネルの生成可否の詳細は図12を参照して後述するが、送信元と送信先の両方のスポークに対応するNAT種別がシンメトリックNATの場合には動的仮想トンネルは作成できないと判定する。また、送信元と送信先のいずれか片方のスポークに対応するNAT種別がシンメトリックNATで、他方がポート制限コーンNATの場合にも動的仮想トンネルは作成できないと判定する。
動的仮想トンネルの作成が可能と判定した場合(S413、可)、ハブは送信元のスポークに対してNHRPトラフィック通知を送出して、スポーク間での仮想トンネルの生成を指示する(S414)。NHRPトラフィック通知には、送信先スポークの配下になるプライベートネットワーク上の端末のIPアドレスが格納されている。そして、ハブ経由スポーク間通信を実施する(S415)。この場合のハブ経由スポーク間通信は、NHRPトラフィック通知を受信した送信元スポークが送信先スポークとの間に動的仮想トンネルを生成するまで継続される。
また、動的仮想トンネルの作成が不可能と判定した場合(S413、不可)、ハブは、NHRPトラフィック通知を送信することなく、ハブ経由スポーク間通信を実施する(S415)。
図10はスポークの動作を示すフロー図である。
図10の(1)は、外部アドレス・ポート情報を取得する動作を示す。
本実施形態のスポークは、インターネットに配備されたSTUNサーバから外部アドレス・ポート情報を取得する(S501)。外部アドレス・ポート情報とは、スポークからインターネットに向けて送信されるパケットに付されるNAT変換後の送信元アドレス情報となるグローバルIPアドレス・ポートおよびNAT種別である。この動作は、図6を参照してステップS301、ステップS302に説明したとおりである。
外部アドレス・ポート情報を取得したスポークは、ハブにNHRP登録要求を送信する(S502)。このとき、NHRP登録要求のパケットの拡張部にはNAPT拡張が付加される。NAPT拡張は図8を参照して説明した通り、当該スポークが取得したグローバルIPアドレス、グローバルポート番号およびNAT種別を含む情報である。なお、このとき、取得した外部アドレス・ポート情報は、図7に示した外部アドレス・ポート情報記憶部220にも登録される。
図9(1)を参照して説明したように、スポークが送信したNHRP登録要求はハブで受信される。そして、ハブでマッピング情報が登録されて、NHRP登録応答が返送される。スポークはこのNHRP登録応答を受信して、NHRP登録の完了を知る(S503)。
また、図10の(2)は、スポーク間トンネルを生成する動作を示す。
まず、スポークはハブ経由スポーク間通信を要求する(S511)。
この動作は、図6を参照してステップS306に説明したとおりである。つまり、スポークが配下のプライベートネットワーク内の端末から受信したデータパケットが所定の経路情報に従ってハブを経由して相手先スポークに転送される。
この動作においてハブは、スポーク間での直接通信の可否を図9(2)のステップS413で説明したように判定し、スポーク間通信が可能であると判定したハブが送信元スポークに対してNHRPトラフィック通知を送信する。スポークはこのNHRPトラフィック通知を受信する(S512)。
NHRPトラフィック通知を受信したスポークは相手先スポークとの間に仮想トンネルを生成するためにアドレス解決を開始する。
スポークは、NHRPトラフィック通知に含まれるアドレス情報に基づいて、相手先スポーク配下のプライベートネットワークの端末を宛先としてNHRP解決要求を送信する(S513)。
このとき、NHRP解決要求のパケットの拡張部には、当該スポークのNAPT拡張が付加される。NAPT拡張には当該スポークが取得したグローバルIPアドレス、グローバルポート番号およびNAT種別を含む。
このNHRP解決要求はハブ経由で相手先スポークにおいて受信され、相手先スポークからNHRP解決応答が送信される。
このNHRP解決応答のパケットの拡張部には、相手先スポークのNAPT拡張が付加されている。このNAPT拡張には相手先スポークが取得したグローバルIPアドレス、グローバルポート番号およびNAT種別を含む。
スポークはこのNHRP解決応答を受信する(S514)。
スポークは、NHRP解決応答の送信元アドレス情報として相手先スポークのIPアドレス情報に加えて、相手先スポークが取得したグローバルIPアドレス、グローバルポート番号およびNAT種別を含むNAPT拡張の情報を取得する。取得した相手先スポークの外部アドレス・ポート情報は、図7に示した外部アドレス・ポート情報記憶部220にも登録される。
スポークは、取得した相手先スポークのグローバルIPアドレス・ポートに基づいて相手先スポークとの間に動的な仮想トンネルを生成する(S515)。
このとき、スポークは仮想ネットワークの経路情報を追加し、相手先スポークの配下のプライベートネットワークへのネクストホップは、相手先スポークの仮想ネットワーク上のトンネルIPアドレスとする。
以降は、図11乃至14を参照して、本実施形態の通信装置の特徴的な機能について説明する。
この特徴的な機能として、次の4つの機能について順次説明する。
NATトラバーサルのIPsecパケット送受信におけるポート番号の変換制御、NAT種別の組合せによる動的仮想トンネルの作成可否、自装置側/相手装置側のNAT種別に応じた制御動作、および外部アドレス・ポート情報の更新動作。
(NATトラバーサルのIPsecパケット送受信におけるポート番号の変換制御)
図11は、NATトラバーサルのIPsecパケット送受信におけるポート番号の変換制御を示すシーケンス図である。
この機能は、図7を参照して説明した外部アドレス・ポート情報取得部211のSTUNアプリケーション2111により実行される。
NATトラバーサルは、IPsecにより暗号化されたパケットを、NATを通過させるための技術である。IPsecにより暗号化されたパケットではESP(Encapsulating Security Payload)ヘッダでカプセル化された部分のデータが暗号化されるので、NATではIPsecにより暗号化されたパケットからポート番号を読み取ることができない。そのため、NATトラバーサルとして、ESPヘッダでカプセル化されたパケットをUDPのダミーヘッダでカプセル化し、転送用のIPヘッダを付加したパケットを生成して転送する。このNATトラバーサルを使用するIPsecパケットはポート番号4500が使用される。
このように、NATトラバーサルを使用するIPsecパケットのポート番号が規定されているため、STUNプロトコルで外部アドレス・ポート情報を取得するときにポート番号の変換処理が必要になる。
STUNプロトコルで取得したいのは、NATトラバーサルを使用するIPsecパケットがNAT装置を通過する際に使用する、NAT装置のエントリのグローバルIPアドレスおよびグローバルポート番号である。
NATトラバーサルを使用する場合、送信元ポート番号は4500となる。
DMVPNで使用するグローバルIPアドレスおよびポート番号を得るためには、STUNアプリケーション2111が送信元ポート番号4500でSTUNサーバへ問合せする必要がある。しかし、4500番のポートはNATトラバーサル用として定義されているため、STUNプロトコルでは使用できない。
そのため、STUNアプリケーション2111は、用途が定義されていない任意のポート番号をダミーポート番号として使用し、STUNサーバへの問合せを行う。
図11を参照してこの機能を説明する。
STUNアプリケーション2111は、ダミーポート番号を送信元ポート番号に設定して(S601)、STUNサーバに対してSTUNリクエストメッセージを送信する(S602)。
このとき、ゲートウェイ(NAT装置)では、該メッセージの送信元アドレスであるスポークのプライベートIPアドレスと該ダミーポート番号が、グローバルIPアドレスとグローバルポート番号にNAT変換される。つまり、スポークのプライベートIPアドレスとダミーポート番号とNAT変換されたグローバルIPアドレスとグローバルポート番号とを対応付けるエントリが生成される(S603)。
STUNサーバは、NAT変換されたグローバルIPアドレスとグローバルポート番号を含めたSTUNレスポンスメッセージを、NAT変換されたグローバルIPアドレスとグローバルポート番号を宛先として送信する。このSTUNレスポンスメッセージはゲートウェイで受信される。ゲートウェイは、STUNリクエストメッセージが通過した際に生成したエントリに基づいて、宛先をスポークのプライベートIPアドレスとダミーポート番号に変換して該STUNレスポンスメッセージを転送する(S604)。
このSTUNレスポンスメッセージはスポークのSTUNアプリケーション2111で受信される。
また、NATトラバーサルのIPsecパケットを送受信する場合は、次のような処理が実行される。
スポークがNATトラバーサルのIPsecパケットを送信するとき、該送信パケットは一旦、STUNアプリケーション2111に渡される。そして、STUNアプリケーション2111において、該送信パケットの送信元ポート番号をダミーポート番号に変換してから送信する(S605、S606)。
このNATトラバーサルのIPsecパケットは、ゲートウェイを通過するときに、送信元アドレスがスポークのプライベートIPアドレスと該ダミーポート番号からグローバルIPアドレスとグローバルポート番号にNAT変換される。
一方、NATトラバーサルのIPsecパケットを受信するとき、ゲートウェイで宛先がスポークのプライベートIPアドレスとダミーポート番号にNAT変換される(S607)。つまり、NATトラバーサルのIPsecパケットは一旦、STUNアプリケーション2111で受信される。
STUNアプリケーション2111は、受信したNATトラバーサルのIPsecパケットの送信元IPアドレスがSTUNサーバのものではないことを確認し、宛先ポート番号を4500に変換して出力する(S608)。
宛先ポート番号が4500に設定されたNATトラバーサルのIPsecパケットが受信される(S609)。
以上のようにして、NATトラバーサルのIPsecパケットに関するポート番号の変換処理が行われる。
(NAT種別の組合せによる動的仮想トンネルの生成可否)
スポーク間で動的に仮想トンネルを生成する際に、それぞれのスポークに対応するNAT種別の組合せにより、トンネルの生成が不可能になることや、制限を受けることがある。
図12は、NAT種別の組合せによる動的仮想トンネルの生成可否の対応を示す図である。
図12では、送信元スポークおよび相手先スポークのそれぞれに対応するNAT種別に応じたマトリックスでトンネルの生成可否を示している。
送信元スポークおよび相手先スポークのいずれもフルコーンNATの場合は「○」表示で、動的仮想トンネルの生成は制限なく可能である。
送信元スポーク、相手先スポークのいずれかがフルコーンNATで、他方のスポークがアドレス制限コーンNATまたはポート制限コーンNATの場合は「△1」表示で、通信実績を作るための制御を行う必要がある。これについては図13を参照して後述する。
送信元スポークと相手先スポークのNAT種別の組合せがアドレス制限コーンNATとポート制限コーンNATとなる場合も「△1」表示で、通信実績を作るための制御を行う必要がある。
送信元スポーク、相手先スポークのいずれかがシンメトリックNATで、他方のスポークがフルコーンNATまたはアドレス制限コーンNATの場合は「△2」表示で、通信実績を作るための制御とシンメトリックNAT側のグローバルポート番号取得の制御が必要となる。これについても図13を参照して後述する。
送信元スポーク、相手先スポークのいずれかがシンメトリックNATで、他方のスポークがポート制限コーンNATまたはシンメトリックNATの場合は「×」表示で、動的仮想トンネルの生成は不可能である。
シンメトリックNATでは、NATの外側の宛先が異なると、NAT装置では、宛先の数だけ異なるグローバルポート番号のエントリを生成する。そのため、ポート制限コーンNAT装置配下のスポークではシンメトリックNAT側のグローバルポート番号を取得できず、シンメトリックNAT装置のグローバルIPアドレスおよびポート番号への通信実績を作ることができない。
前述したように、ハブはNHRP登録で各スポークから通知されるNHRP登録要求に付加されたNAPT拡張により、配下のスポークがどのNAT種別のNAT装置の背後にいるかを認識している。そして、ハブは、スポークからスポークへのデータパケットを転送するとき、各スポークに対応するNAT種別を参照して動的仮想トンネルが生成可能なNAT種別の組合せであるかを判断している。したがって、ハブは、動的仮想トンネルを生成できないNAT種別の組合せである場合にはNHRPトラフィック通知を送信しないようにしている。
また、各スポークにおいては、NHRP解決を通して相手先スポークに対応するNAT種別を取得している。
(自装置側/相手装置側のNAT種別に応じた制御動作)
図12を参照して説明したように、送信元スポーク側と相手先スポーク側のNAT種別の組合せに応じて、通信実績を作るための制御やシンメトリックNAT側のグローバルポート番号取得の制御が必要となる。
図13は、スポークにおける自装置側のNAT種別および相手装置側のNAT種別に応じた制御動作を示すフロー図である。この制御は図7に示した通信装置200のトンネル生成制御部2131により実行される。トンネル生成制御部2131は、外部アドレス・ポート情報記憶部220に登録された自装置の外部アドレス・ポート情報やNHRP解決を通して取得した相手装置の外部アドレス・ポート情報を参照する。外部アドレス・ポート情報にはNAT種別が含まれている。
図13(1)は、通信実績を作るための制御であり、図12における「△1」表示の場合の動作フローである。
まず、自装置側のNAT種別を識別する(S701)。
自装置側のNAT種別がフルコーンNATか否かが判定される(S702)。
自装置側のNAT種別がフルコーンNATの場合(S702、Yes)、スポーク間の動的仮想トンネルを生成するために特別な準備を行う必要はない。
自装置側のNAT種別がフルコーンNATではない場合(S702、No)、スポーク間の動的仮想トンネルを生成する前に、自装置が接続されているNAT装置に対して通信実績を作る制御を行う。なお、フルコーンNATではない場合とは、NAT種別がアドレス制限コーンNAT、ポート制限コーンNAT、シンメトリックNATのいずれかの場合である。
フルコーンNAT以外のNAT種別の場合、NAT装置は、通信実績のある相手装置からのパケットしかNAT装置の内側への通過を許可しない。「通信実績がある」とは、NAT装置を越えてインターネット上にパケットを送信したことがあるグローバルIPアドレス・ポートの宛先がエントリとして残っていることを意味する。
そのため、その通信実績を作るためにダミーUDPパケットを送信する(S703)。
ダミーUDPパケットとは、NHRP解決で取得した相手装置のグローバルIPアドレス・ポートを宛先として設定した、ペイロードなしのUDPパケットである。
つまり、NHRP解決要求を送信した送信側スポークはNHRP解決応答を受信した後に、自装置側のNAT種別がフルコーンNAT以外の場合にこのダミーUDPパケットを送信する。また、NHRP解決要求を受信した受信側スポークはNHRP解決要求を受信した後に、自装置側のNAT種別がフルコーンNAT以外の場合にこのダミーUDPパケットを送信する。
このダミーUDPパケットは、相手装置からの同様なダミーUDPパケットを受信するまで複数回送信する。なお、フルコーンNATのNAT装置配下のスポークがこのダミーUDPパケットを受信した場合、ダミーUDPパケットを受信したことを通知するために、同様なダミーUDPパケットを相手先スポークに送信する。
上記により、双方のスポークが接続しているNAT装置に、相手先となるスポークとの通信実績ができたことになる。
ダミーUDPパケットを相手先スポークから受信した後、スポーク間で動的仮想トンネル作成のための通信を行う。
次に、相手装置側のNAT種別がシンメトリックNATであった場合の制御について説明する。
図13(2)は、相手装置のグローバルポート番号取得の制御であり、図12における「△2」表示の「シンメトリックNAT側のグローバルポート番号取得」に関する動作フローである。
まず、相手装置側のNAT種別を識別する(S711)。なお、相手装置側のNAT種別はNHRP解決を通して取得している。
相手装置側のNAT種別がシンメトリックNATか否かが判定される(S712)。
相手装置側のNAT種別がシンメトリックNATではない場合(S712、No)、自装置側のNAT種別は、フルコーンNAT、アドレス制限コーンNAT、ポート制限近NAT、シンメトリックNATのいずれかである。そして、図13(1)で説明した制御が行われる。
さらに、この場合は、NHRP解決を通して取得した外部アドレス・ポートが相手の外部アドレス・ポートとして使用される(S714)。つまり、NHRP解決要求を送信した送信側スポークは受信したNHRP解決応答に含まれる外部アドレス・ポートを使用し、NHRP解決要求を受信した受信側スポークは受信したNHRP解決要求に含まれる外部アドレス・ポートを使用する。
一方、相手装置側のNAT種別がシンメトリックNATの場合(S712、Yes)には次の処理が行われる。
なお、この場合、自装置側のNAT種別がシンメトリックNATまたはポート制限コーンNATの場合にはハブからのNHRPトラフィック通知は受けないので、この制御の対象にはならない。つまり、この場合が適用されるのは、自装置側のNAT種別がフルコーンNATまたはアドレス制限コーンNATの場合に限られる。
シンメトリックNATのNAT装置配下のスポークであっても、該スポークが送信するNHRPメッセージのパケットに付加されるNAPT拡張の情報は、STUNサーバと通信して取得したグローバルIPアドレス・ポート情報である。しかし、シンメトリックNATのNAT装置配下のスポーク(例えば、スポークA)の相手先となっているスポーク(例えば、スポークB)は、そのスポークAがスポークBと通信する際に使用するグローバルIPアドレス・ポートを使用する必要がある。
つまり、相手装置側のNAT種別がシンメトリックNATの場合には、NHRP解決を通して取得した外部アドレス・ポート情報を使うことができない。
図13(1)で説明したように、自装置側のNAT種別がシンメトリックNATであっても、前述したダミーUDPパケットを送信する。そのため、図13(2)では、ステップS712、Yesの場合は、シンメトリックNATのNAT装置配下となっている相手装置が送信するダミーUDPパケットの送信元アドレスを使えばよい。つまり、このダミーUDPパケットの送信元アドレスは、シンメトリックNATのNAT装置でNAT変換された通信実績のあるグローバルIPアドレス・ポートが設定されている。
従って、ステップS713では、相手装置から受信したダミーUDPパケットの送信元アドレス・ポート情報を相手の外部アドレス・ポート情報として使う処理を行う。
なお、自装置側のNAT種別がアドレス制限コーンNATで、前述したダミーUDPパケットを送信する際には次のように処理する。まず、シンメトリックNATのNAT装置配下となっている相手装置側からダミーUDPパケットを受信するまでは、NHRP解決を通して取得した外部アドレス・ポートを自装置が送信するダミーUDPパケットの宛先として設定する。そして、該相手装置が送信したダミーUDPパケットを受信したら、自装置が送信するダミーUDPパケットの宛先を、受信したダミーUDPパケットの送信元アドレスとして設定されているポート番号に変更して送信する。
(外部アドレス・ポート情報の更新動作)
NAT装置で生成されるNAT変換ルールのエントリは一意なものではないため、NAT装置のエントリ変更を検出する機能を備える。
つまり、スポークとハブ間のトンネルやスポーク間のトンネルにおいて、スポークが接続しているNAT装置のグローバルIPアドレス・ポートの情報を常に最新の状態に保つ必要がある。
図14は、スポークにおける外部アドレス・ポート情報の更新動作を示すフロー図である。
この動作は、図7の通信装置200の通信制御部210が実行する動作であり、外部アドレス・ポート情報取得部211、アドレス解決部212、トンネル生成部213が協働して実行する。
まず、外部アドレス・ポート情報取得部211は、所定のタイミングでSTUNサーバにアクセスして、STUNサーバから外部アドレス・ポート情報を周期的に取得する(S801)。そして、取得した外部アドレス・ポート情報に変更があったか否かを判定する(S802)。
この判定動作において外部アドレス・ポート情報に変更がない場合(S802、No)は、ステップS801に戻り、次のタイミングで再度STUNサーバにアクセスする。
一方、取得した外部アドレス・ポート情報に変更があった場合(S802、Yes)、外部アドレス・ポート情報取得部211は、外部アドレス・ポート情報記憶部220に登録されている自装置の外部アドレス・ポート情報を更新する。同時に、外部アドレス・ポート情報取得部211は、外部アドレス・ポート情報を更新した旨をアドレス解決部212とトンネル生成部213に通知する。
アドレス解決部212は、外部アドレス・ポート情報の更新を知ると、ハブに対して直ちに更新後の外部アドレス・ポート情報をNAPT拡張として付加したNHRP登録要求を送信する(S804)。
また、トンネル生成部213は、外部アドレス・ポート情報の更新を知ると、相手先のスポークに対して、更新された外部アドレス・ポートを送信元アドレスとしたダミーUDPパケットを送信する(S805)。なお、このダミーUDPパケットは、前述したようにNATにおける通信実績を作成するために送信したパケットと同じで、ペイロードなしのUDPパケットである。このダミーUDPパケットは、相手先のスポーク情報が生存している間は定期的に送信されている。
上記の動作により、ハブは新たに受け取ったNHRP登録要求に付加されたNAPT拡張に基づいて送信元スポークの外部アドレス・ポート情報を更新する。また、送信元アドレスが変更されたダミーUDPパケットを受け取った相手先のスポークは、該送信元アドレスの情報に基づいて送信元スポークの外部アドレス・ポートを更新する。
以上に説明したように、本実施形態では、スポークはNAT装置であるゲートウェイでNAT変換されたグローバルIPアドレス・ポートの情報をSTUNサーバから取得する。そして、NHRPプロトコルのパケットの拡張部にNAPT拡張としてグローバルIPアドレス、グローバルポート番号、NAT種別を付加してスポーク間で通知することができる。
そのため、DMVPN上のスポークがNAT装置配下にある環境で、取得したNAT変換後のグローバルIPアドレス・ポートをスポーク間で通知して、動的に仮想トンネルを生成することができる。
なお、上記の実施形態の一部または全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1) DMVPN(Dynamic Multipoint Virtual Private Network)を構成するスポークとして機能し、異なるアドレス空間のネットワーク間で送受信されるパケットのNAT(Network Address Translation)アドレス変換を行う中継装置の配下に設置され、前記NATアドレス変換で生成された、前記中継装置の外側のアドレス空間からアクセスすることが可能なアドレス情報である外部アドレス・ポート情報を返信する機能を持つアドレス情報提供装置から前記外部アドレス・ポート情報を取得し、前記DMVPNで使用するNHRP(Next Hop Resolution Protocol)登録パケットの拡張フィールドに該外部アドレス・ポート情報を含めて送信する、少なくとも2つの通信装置である第1の通信装置と第2の通信装置と、
前記DMVPNを構成するハブとして機能し、配下の前記第1の通信装置と前記第2の通信装置のそれぞれから受信した前記NHRP登録パケットに含まれる前記外部アドレス・ポート情報を前記第1の通信装置と前記第2の通信装置のそれぞれと対応付けたマッピング情報に登録する第3の通信装置と、を備え、
前記第3の通信装置は、該第3の通信装置を介したパケット送信元の前記スポークである前記第1の通信装置からパケット送信先の前記スポークである前記第2の通信装置との通信において、該第1の通信装置と該第2の通信装置との間に仮想トンネルを生成可能であることを前記マッピング情報に基づいて検出すると、前記第1の通信装置に対して前記仮想トンネルの生成を指示し、前記第3の通信装置から前記仮想トンネルの生成の指示を受けた前記第1の通信装置は、前記DMVPNで使用するNHRP解決要求パケットの拡張フィールドに該第1の通信装置の前記外部アドレス・ポート情報を含めて送信し、前記第1の通信装置から前記NHRP解決要求パケットを受信した前記第2の通信装置は、前記DMVPNで使用するNHRP解決応答パケットの拡張フィールドに該第2の通信装置の前記外部アドレス・ポート情報を含めて返信し、前記NHRP解決応答パケットを受信した前記第1の通信装置は、該NHRP解決応答パケットに含まれる前記第2の通信装置の前記外部アドレス・ポート情報に基づいて、前記第2の通信装置との間に前記仮想トンネルを生成することを特徴とする通信システム。
(付記2) 前記外部アドレス・ポート情報には前記中継装置のNAT種別を含み、前記第3の通信装置は、前記第1の通信装置が接続する前記中継装置のNAT種別と前記第2の通信装置が接続する前記中継装置のNAT種別の組合せに応じて、前記第1の通信装置と前記第2の通信装置との間における前記仮想トンネルの生成の可否を判定することを特徴とする付記1に記載の通信システム。
(付記3) 前記NAT種別には、前記NATアドレス変換で生成された外部アドレス・ポートに対する前記中継装置の外側のアドレス空間からのアクセス制限に応じた種別である、フルコーンNAT、アドレス制限コーンNAT、ポート制限コーンNATおよびシンメトリックNATを含み、前記第3の通信装置は、前記第1の通信装置が接続する前記中継装置のNAT種別と前記第2の通信装置が接続する前記中継装置のNAT種別の組合せが前記シンメトリックNATと前記ポート制限コーンNATである場合、およびいずれも前記シンメトリックNATの場合に、前記仮想トンネルの生成は不可と判定することを特徴とする付記2に記載の通信システム。
(付記4) 前記NAT種別には、前記NATアドレス変換で生成された外部アドレス・ポートに対する前記中継装置の外側のアドレス空間からのアクセス制限に応じた種別である、フルコーンNAT、アドレス制限コーンNAT,ポート制限コーンNATおよびシンメトリックNATを含み、前記第1の通信装置および前記第2の通信装置のそれぞれは、自装置が接続する前記中継装置のNAT種別が、前記アドレス制限コーンNAT、前記ポート制限コーンNATおよび前記シンメトリックNATのいずれかである場合、前記仮想トンネルを生成する前に、通信相手先装置の外部アドレス・ポートを宛先とするダミーUDP(User Datagram Protocol)パケットを送信して、前記通信相手先装置に関する前記NATアドレス変換のエントリをあらかじめ生成することを特徴とする付記2に記載の通信システム。
(付記5) 前記第1の通信装置および前記第2の通信装置のそれぞれは、通信相手先装置が接続する前記中継装置のNAT種別が前記シンメトリックNATの場合、該通信相手先装置から受信した前記ダミーUDPパケットの送信元アドレス・ポートを該通信相手先装置の外部アドレス・ポートとして使用することを特徴とする付記4に記載の通信システム。
(付記6) 前記第1の通信装置および前記第2の通信装置のそれぞれは、前記アドレス情報提供装置から前記外部アドレス・ポート情報を所定のタイミングで取得し、取得した前記外部アドレス・ポート情報が更新されていた場合、更新された外部アドレス・ポート情報を前記NHRP登録パケットの拡張フィールドに含めて前記第3の通信装置に通知することを特徴とする付記1乃至5のいずれかの付記に記載の通信システム。
(付記7) 前記第1の通信装置および前記第2の通信装置のそれぞれは、前記アドレス情報提供装置から所定のタイミングで取得した前記外部アドレス・ポート情報が更新されていた場合、更新された外部アドレス・ポートを送信元アドレス・ポートに設定したダミーUDP(User Datagram Protocol)パケットを通信相手先装置に送信して自装置の外部アドレス・ポートの変更を通知することを特徴とする付記6に記載の通信システム。
(付記8) 異なるアドレス空間のネットワーク間で送受信されるパケットのNAT(Network Address Translation)アドレス変換を行う中継装置を介して、前記NATアドレス変換で生成された前記中継装置の外側のアドレス空間からアクセスすることが可能なアドレス情報である外部アドレス・ポート情報を返信する機能を持つアドレス情報提供装置から、前記外部アドレス・ポート情報を取得する外部アドレス・ポート情報取得手段と、
DMVPN(Dynamic Multipoint Virtual Private Network)で使用するNHRP(Next Hop Resolution Protocol)登録パケットの拡張フィールドに前記外部アドレス・ポート情報を含めて該DMVPNのハブに送信し、前記ハブから、該ハブを介したスポーク間通信において、相手先スポークとの間に仮想トンネルを生成可能であることを通知されると、前記DMVPNで使用するNHRP解決要求パケットの拡張フィールドに前記外部アドレス・ポート情報を含めて前記相手先スポークに送信し、前記NHRP解決要求パケットを受信した前記相手先スポークが返送する前記DMVPNで使用するNHRP解決応答パケットの拡張フィールドから前記相手先スポークの前記外部アドレス・ポート情報を取得するアドレス解決手段と、
前記アドレス解決手段が取得した前記相手先スポークの前記外部アドレス・ポート情報に基づいて、前記相手先スポークとの間に前記仮想トンネルを生成するトンネル生成手段と
を備えることを特徴とする通信装置。
(付記9) 前記外部アドレス・ポート情報には前記中継装置のNAT種別を含み、前記アドレス解決手段は、前記NHRP解決応答パケットの拡張フィールドに含まれる前記相手先スポークの前記外部アドレス・ポート情報から、該相手先スポークが接続する前記中継装置のNAT種別を取得し、
前記トンネル生成手段は、自装置が接続する前記中継装置のNAT種別と前記相手先スポークが接続する前記中継装置のNAT種別に応じたトンネル生成準備制御を行うトンネル生成制御部を含むことを特徴とする付記8に記載の通信装置。
(付記10) 前記NAT種別には、前記NATアドレス変換で生成された外部アドレス・ポートに対する前記中継装置の外側のアドレス空間からのアクセス制限に応じた種別である、フルコーンNAT、アドレス制限コーンNAT、ポート制限コーンNATおよびシンメトリックNATを含み、前記トンネル生成制御部は、自装置が接続する前記中継装置のNAT種別が前記アドレス制限コーンNAT、前記ポート制限コーンNATおよび前記シンメトリックNATのいずれかである場合、前記仮想トンネルを生成する前に、前記相手先スポークの外部アドレス・ポートを宛先とするダミーUDP(User Datagram Protocol)パケットを送信して、前記相手先スポークに関する前記NATアドレス変換のエントリをあらかじめ生成することを特徴とする付記9に記載の通信装置。
(付記11) 前記トンネル生成制御部は、前記相手先スポークが接続する前記中継装置のNAT種別が前記シンメトリックNATの場合、該相手先スポークから受信した前記ダミーUDPパケットの送信元アドレス・ポートを該相手先スポークの外部アドレス・ポートとして使用することを特徴とする付記10に記載の通信装置。
(付記12) 前記外部アドレス・ポート情報取得手段は前記アドレス情報提供装置から前記外部アドレス・ポート情報を所定のタイミングで取得し、取得した前記外部アドレス・ポート情報が更新されていた場合、該外部アドレス・ポート情報の更新通知を出力することを特徴とする付記8乃至11のいずれかの付記に記載の通信装置。
(付記13) 前記アドレス解決手段は、前記外部アドレス・ポート情報取得手段が出力する前記更新通知に基づいて、更新された該外部アドレス・ポート情報を前記NHRP登録パケットの拡張フィールドに含めて前記ハブに通知することを特徴とする付記12に記載の通信装置。
(付記14) 前記トンネル生成制御部は、前記外部アドレス・ポート情報取得手段が出力する前記更新通知に基づいて、更新された外部アドレス・ポートを送信元アドレス・ポートに設定したダミーUDP(User Datagram Protocol)パケットを前記相手先スポークに送信して自装置の外部アドレス・ポートの変更を通知することを特徴とする付記12または付記13に記載の通信装置。
(付記15) 前記外部アドレス・ポート情報取得手段は、用途が定義されていない任意のポート番号をダミーポート番号として使用したNATアドレス変換エントリを生成し、NATトラバーサルのIPsec(Internet Protocol security)パケットの送信に際しては、該IPsecパケットの送信元を該IPsecパケットに規定されたポート番号から前記ダミーポート番号に変換して送信し、前記ダミーポート番号を宛先とする前記IPsecパケットを受信すると、受信したIPsecパケットの宛先ポート番号を該IPsecパケットに規定されたポート番号に変換して出力するポート番号変換手段を含むことを特徴とする付記8乃至14のいずれかの付記に記載の通信装置。
(付記16) DMVPN(Dynamic Multipoint Virtual Private Network)を構成するスポークとして機能し、異なるアドレス空間のネットワーク間で送受信されるパケットのNAT(Network Address Translation)アドレス変換を行う中継装置の配下に設置され、前記中継装置の外側のアドレス空間からアクセスすることが可能なアドレス情報である外部アドレス・ポート情報を返信する機能を持つアドレス情報提供装置から前記外部アドレス・ポート情報を取得する少なくとも2つの通信装置である第1の通信装置と第2の通信装置のそれぞれが、前記DMVPNで使用するNHRP(Next Hop Resolution Protocol)登録パケットの拡張フィールドに該外部アドレス・ポート情報を含めて送信し、
前記DMVPNを構成するハブとして機能する第3の通信装置が、配下の前記第1の通信装置と前記第2の通信装置のそれぞれから受信した前記NHRP登録パケットに含まれる前記外部アドレス・ポート情報を前記第1の通信装置と前記第2の通信装置のそれぞれと対応付けたマッピング情報に登録し、
前記第3の通信装置を介したパケット送信元の前記スポークである前記第1の通信装置からパケット送信先の前記スポークである前記第2の通信装置との通信において、該第3の通信装置が、前記第1の通信装置と前記第2の通信装置との間に仮想トンネルを生成可能であることを前記マッピング情報に基づいて検出すると、前記第1の通信装置に対して前記仮想トンネルの生成を指示し、
前記第3の通信装置から前記仮想トンネルの生成の指示を受けた前記第1の通信装置が、前記DMVPNで使用するNHRP解決要求パケットの拡張フィールドに該第1の通信装置の前記外部アドレス・ポート情報を含めて送信し、
前記第1の通信装置から前記NHRP解決要求パケットを受信した前記第2の通信装置が、前記DMVPNで使用するNHRP解決応答パケットの拡張フィールドに該第2の通信装置の前記外部アドレス・ポート情報を含めて返信し、
前記NHRP解決応答パケットを受信した前記第1の通信装置が、該NHRP解決応答パケットに含まれる前記第2の通信装置の前記外部アドレス・ポート情報に基づいて、前記第2の通信装置との間に前記仮想トンネルを生成する
ことを特徴とするVPN構築方法。
(付記17) 前記外部アドレス・ポート情報には前記中継装置のNAT種別を含み、前記第3の通信装置は、前記第1の通信装置が接続する中継装置のNAT種別と前記第2の通信装置が接続する中継装置のNAT種別の組合せに応じて、前記第1の通信装置と前記第2の通信装置との間における前記仮想トンネルの生成の可否を判定することを特徴とする付記16に記載のVPN構築方法。
(付記18) 前記NAT種別には、前記NATアドレス変換で生成された外部アドレス・ポートに対する前記中継装置の外側のアドレス空間からのアクセス制限に応じた種別である、フルコーンNAT、アドレス制限コーンNAT、ポート制限コーンNATおよびシンメトリックNATを含み、前記第3の通信装置は、前記第1の通信装置が接続する中継装置のNAT種別と前記第2の通信装置が接続する中継装置のNAT種別の組合せがシンメトリックNATとポート制限コーンNATである場合およびいずれもシンメトリックNATの場合に、前記仮想トンネルの生成は不可と判定することを特徴とする付記17に記載のVPN構築方法。
(付記19) 前記NAT種別には、前記NATアドレス変換で生成された外部アドレス・ポートに対する前記中継装置の外側のアドレス空間からのアクセス制限に応じた種別である、フルコーンNAT、アドレス制限コーンNAT,ポート制限コーンNATおよびシンメトリックNATを含み、前記第1の通信装置および前記第2の通信装置のそれぞれは、自装置が接続する前記中継装置のNAT種別が、前記アドレス制限コーンNAT、前記ポート制限コーンNATおよび前記シンメトリックNATのいずれかである場合、前記仮想トンネルを生成する前に、通信相手先装置の外部アドレス・ポートを宛先とするダミーUDP(User Datagram Protocol)パケットを送信して、前記通信相手先装置に関する前記NATアドレス変換のエントリをあらかじめ生成することを特徴とする付記17に記載のVPN構築方法。
(付記20) 前記第1の通信装置および前記第2の通信装置のそれぞれは、通信相手先装置が接続する前記中継装置のNAT種別が前記シンメトリックNATの場合、該通信相手先装置から受信した前記ダミーUDPパケットの送信元アドレス・ポートを該通信相手先装置の外部アドレス・ポートとして使用することを特徴とする付記19に記載のVPN構築方法。
(付記21) 前記第1の通信装置および前記第2の通信装置のそれぞれは、前記アドレス情報提供装置から前記外部アドレス・ポート情報を所定のタイミングで取得し、取得した前記外部アドレス・ポート情報が更新されていた場合、更新された該外部アドレス・ポート情報を前記NHRP登録パケットの拡張フィールドに含めて前記第3の通信装置に通知することを特徴とする付記16乃至20のいずれかの付記に記載のVPN構築方法。
(付記22) 前記第1の通信装置および前記第2の通信装置のそれぞれは、前記アドレス情報提供装置から所定のタイミングで取得した前記外部アドレス・ポート情報が更新されていた場合、更新された外部アドレス・ポートを送信元アドレス・ポートに設定したダミーUDP(User Datagram Protocol)パケットを通信相手先装置に送信して自装置の外部アドレス・ポートの変更を通知することを特徴とする付記21に記載のVPN構築方法。
(付記23) 異なるアドレス空間のネットワーク間で送受信されるパケットのNAT(Network Address Translation)アドレス変換を行う中継装置を介して、前記NATアドレス変換で生成された前記中継装置の外側のアドレス空間からアクセスすることが可能なアドレス情報である外部アドレス・ポート情報を返信する機能を持つアドレス情報提供装置から前記外部アドレス・ポート情報を取得し、
DMVPN(Dynamic Multipoint Virtual Private Network)で使用するNHRP(Next Hop Resolution Protocol)登録パケットの拡張フィールドに前記外部アドレス・ポート情報を含めて該DMVPNのハブに送信し、
前記ハブから、該ハブを介したスポーク間通信において、相手先スポークとの間に仮想トンネルを生成可能であることを通知されると、前記DMVPNで使用するNHRP解決要求パケットの拡張フィールドに前記外部アドレス・ポート情報を含めて前記相手先スポークに送信し、
前記NHRP解決要求パケットを受信した前記相手先スポークが返送する前記DMVPNで使用するNHRP解決応答パケットの拡張フィールドから前記相手先スポークの前記外部アドレス・ポート情報を取得し、
取得した前記相手先スポークの前記外部アドレス・ポート情報に基づいて、前記相手先スポークとの間に前記仮想トンネルを生成する
ことを特徴とするVPN構築方法。
(付記24) 前記外部アドレス・ポート情報には前記中継装置のNAT種別を含み、
前記相手先スポークが返送する前記NHRP解決応答パケットの拡張フィールドに含まれる前記相手先スポークの前記外部アドレス・ポート情報から、該相手先スポークが接続された前記中継装置のNAT種別を取得し、
自装置が接続する前記中継装置のNAT種別と前記相手先スポークが接続する前記中継装置のNAT種別に応じたトンネル生成準備制御を行うことを特徴とする付記23に記載のVPN構築方法。
(付記25) 前記NAT種別には、前記NATアドレス変換で生成された外部アドレス・ポートに対する前記中継装置の外側のアドレス空間からのアクセス制限に応じた種別である、フルコーンNAT、アドレス制限コーンNAT、ポート制限コーンNATおよびシンメトリックNATを含み、
自装置が接続する前記中継装置のNAT種別が前記アドレス制限コーンNAT、前記ポート制限コーンNATおよび前記シンメトリックNATのいずれかである場合、前記仮想トンネルを生成する前に、前記相手先スポークの外部アドレス・ポートを宛先とするダミーUDP(User Datagram Protocol)パケットを送信して、前記相手先スポークに関する前記NATアドレス変換のエントリをあらかじめ生成することを特徴とする付記24に記載のVPN構築方法。
(付記26) 前記相手先スポークが接続する前記中継装置のNAT種別が前記シンメトリックNATの場合、該相手先スポークから受信した前記ダミーUDPパケットの送信元アドレス・ポートを該相手先スポークの外部アドレス・ポートとして使用することを特徴とする付記25に記載のVPN構築方法。
(付記27) 前記アドレス情報提供装置から前記外部アドレス・ポート情報を所定のタイミングで取得し、取得した前記外部アドレス・ポート情報が更新されていた場合、該外部アドレス・ポート情報の更新通知を出力することを特徴とする付記23乃至26のいずれかの付記に記載のVPN構築方法。
(付記28) 前記更新通知に基づいて、更新された該外部アドレス・ポート情報を前記NHRP登録パケットの拡張フィールドに含めて前記ハブに通知することを特徴とする付記27に記載のVPN構築方法。
(付記29) 前記更新通知に基づいて、更新された外部アドレス・ポートを送信元アドレス・ポートに設定したダミーUDP(User Datagram Protocol)パケットを前記相手先スポークに送信して自装置の外部アドレス・ポートの変更を通知することを特徴とする付記27または付記28に記載のVPN構築方法。
(付記30) 用途が定義されていない任意のポート番号をダミーポート番号として使用したNATアドレス変換エントリを生成し、NATトラバーサルのIPsec(Internet Protocol security)パケットの送信に際しては、該IPsecパケットの送信元を該IPsecパケットに規定されたポート番号から前記ダミーポート番号に変換して送信し、前記ダミーポート番号を宛先とする前記IPsecパケットを受信すると、受信したIPsecパケットの宛先ポート番号を該IPsecパケットに規定されたポート番号に変換して出力することを特徴とする付記23乃至29のいずれかの付記に記載のVPN構築方法。
1、2 通信システム
10 第1の通信装置
11 第1のVPN装置
12 第1のLAN
20 第2の通信装置
21 第2のVPN装置
22 第2のLAN
30 第3の通信装置
31 第3のVPN装置
40 第1の中継装置
41 第1のゲートウェイ
50 第2の中継装置
51 第2のゲートウェイ
60 広域網
61 第1プライベート網
62 第2プライベート網
63 第3プライベート網
65 インターネット
70 アドレス情報提供装置
71 STUNサーバ
100、200 通信装置
110 外部アドレス・ポート情報取得手段
120 アドレス解決手段
130 トンネル生成手段
210 通信制御部
211 外部アドレス・ポート情報取得部
2111 STUNアプリケーション
212 アドレス解決部
213 トンネル生成部
2131 トンネル生成制御部
220 外部アドレス・ポート情報記憶部
230 LANインタフェース部
240 WANインタフェース部

Claims (10)

  1. DMVPN(Dynamic Multipoint Virtual Private Network)を構成するスポークとして機能し、異なるアドレス空間のネットワーク間で送受信されるパケットのNAT(Network Address Translation)アドレス変換を行う中継装置の配下に設置され、前記NATアドレス変換で生成された、前記中継装置の外側のアドレス空間からアクセスすることが可能なアドレス情報である外部アドレス・ポート情報を返信する機能を持つアドレス情報提供装置から前記外部アドレス・ポート情報を取得し、前記DMVPNで使用するNHRP(Next Hop Resolution Protocol)登録パケットの拡張フィールドに該外部アドレス・ポート情報を含めて送信する、少なくとも2つの通信装置である第1の通信装置と第2の通信装置と、
    前記DMVPNを構成するハブとして機能し、配下の前記第1の通信装置と前記第2の通信装置のそれぞれから受信した前記NHRP登録パケットに含まれる前記外部アドレス・ポート情報を前記第1の通信装置と前記第2の通信装置のそれぞれと対応付けたマッピング情報に登録する第3の通信装置と、
    を備え、
    前記第3の通信装置は、該第3の通信装置を介したパケット送信元の前記スポークである前記第1の通信装置からパケット送信先の前記スポークである前記第2の通信装置との通信において、該第1の通信装置と該第2の通信装置との間に仮想トンネルを生成可能であることを前記マッピング情報に基づいて検出すると、前記第1の通信装置に対して前記仮想トンネルの生成を指示し、
    前記第3の通信装置から前記仮想トンネルの生成の指示を受けた前記第1の通信装置は、前記DMVPNで使用するNHRP解決要求パケットの拡張フィールドに該第1の通信装置の前記外部アドレス・ポート情報を含めて送信し、
    前記第1の通信装置から前記NHRP解決要求パケットを受信した前記第2の通信装置は、前記DMVPNで使用するNHRP解決応答パケットの拡張フィールドに該第2の通信装置の前記外部アドレス・ポート情報を含めて返信し、
    前記NHRP解決応答パケットを受信した前記第1の通信装置は、該NHRP解決応答パケットに含まれる前記第2の通信装置の前記外部アドレス・ポート情報に基づいて、前記第2の通信装置との間に前記仮想トンネルを生成する
    ことを特徴とする通信システム。
  2. 前記外部アドレス・ポート情報には前記中継装置のNAT種別を含み、前記第3の通信装置は、前記第1の通信装置が接続する前記中継装置のNAT種別と前記第2の通信装置が接続する前記中継装置のNAT種別の組合せに応じて、前記第1の通信装置と前記第2の通信装置との間における前記仮想トンネルの生成の可否を判定することを特徴とする請求項1に記載の通信システム。
  3. 前記NAT種別には、前記NATアドレス変換で生成された外部アドレス・ポートに対する前記中継装置の外側のアドレス空間からのアクセス制限に応じた種別である、フルコーンNAT、アドレス制限コーンNAT、ポート制限コーンNATおよびシンメトリックNATを含み、前記第3の通信装置は、前記第1の通信装置が接続する前記中継装置のNAT種別と前記第2の通信装置が接続する前記中継装置のNAT種別の組合せが前記シンメトリックNATと前記ポート制限コーンNATである場合、およびいずれも前記シンメトリックNATの場合に、前記仮想トンネルの生成は不可と判定することを特徴とする請求項2に記載の通信システム。
  4. 前記NAT種別には、前記NATアドレス変換で生成された外部アドレス・ポートに対する前記中継装置の外側のアドレス空間からのアクセス制限に応じた種別である、フルコーンNAT、アドレス制限コーンNAT,ポート制限コーンNATおよびシンメトリックNATを含み、前記第1の通信装置および前記第2の通信装置のそれぞれは、自装置が接続する前記中継装置のNAT種別が、前記アドレス制限コーンNAT、前記ポート制限コーンNATおよび前記シンメトリックNATのいずれかである場合、前記仮想トンネルを生成する前に、通信相手先装置の外部アドレス・ポートを宛先とするダミーUDP(User Datagram Protocol)パケットを送信して、前記通信相手先装置に関する前記NATアドレス変換のエントリをあらかじめ生成することを特徴とする請求項2に記載の通信システム。
  5. 前記第1の通信装置および前記第2の通信装置のそれぞれは、通信相手先装置が接続する前記中継装置のNAT種別が前記シンメトリックNATの場合、該通信相手先装置から受信した前記ダミーUDPパケットの送信元アドレス・ポートを該通信相手先装置の外部アドレス・ポートとして使用することを特徴とする請求項4に記載の通信システム。
  6. 前記第1の通信装置および前記第2の通信装置のそれぞれは、前記アドレス情報提供装置から前記外部アドレス・ポート情報を所定のタイミングで取得し、取得した前記外部アドレス・ポート情報が更新されていた場合、更新された外部アドレス・ポート情報を前記NHRP登録パケットの拡張フィールドに含めて前記第3の通信装置に通知することを特徴とする請求項1乃至5のいずれかの付記に記載の通信システム。
  7. 前記第1の通信装置および前記第2の通信装置のそれぞれは、前記アドレス情報提供装置から所定のタイミングで取得した前記外部アドレス・ポート情報が更新されていた場合、更新された外部アドレス・ポートを送信元アドレス・ポートに設定したダミーUDP(User Datagram Protocol)パケットを通信相手先装置に送信して自装置の外部アドレス・ポートの変更を通知することを特徴とする請求項6に記載の通信システム。
  8. 異なるアドレス空間のネットワーク間で送受信されるパケットのNAT(Network Address Translation)アドレス変換を行う中継装置を介して、前記NATアドレス変換で生成された前記中継装置の外側のアドレス空間からアクセスすることが可能なアドレス情報である外部アドレス・ポート情報を返信する機能を持つアドレス情報提供装置から、前記外部アドレス・ポート情報を取得する外部アドレス・ポート情報取得手段と、
    DMVPN(Dynamic Multipoint Virtual Private Network)で使用するNHRP(Next Hop Resolution Protocol)登録パケットの拡張フィールドに前記外部アドレス・ポート情報を含めて該DMVPNのハブに送信し、前記ハブから、該ハブを介したスポーク間通信において、相手先スポークとの間に仮想トンネルを生成可能であることを通知されると、前記DMVPNで使用するNHRP解決要求パケットの拡張フィールドに前記外部アドレス・ポート情報を含めて前記相手先スポークに送信し、前記NHRP解決要求パケットを受信した前記相手先スポークが返送する前記DMVPNで使用するNHRP解決応答パケットの拡張フィールドから前記相手先スポークの前記外部アドレス・ポート情報を取得するアドレス解決手段と、
    前記アドレス解決手段が取得した前記相手先スポークの前記外部アドレス・ポート情報に基づいて、前記相手先スポークとの間に前記仮想トンネルを生成するトンネル生成手段と
    を備えることを特徴とする通信装置。
  9. DMVPN(Dynamic Multipoint Virtual Private Network)を構成するスポークとして機能し、異なるアドレス空間のネットワーク間で送受信されるパケットのNAT(Network Address Translation)アドレス変換を行う中継装置の配下に設置され、前記中継装置の外側のアドレス空間からアクセスすることが可能なアドレス情報である外部アドレス・ポート情報を返信する機能を持つアドレス情報提供装置から前記外部アドレス・ポート情報を取得する少なくとも2つの通信装置である第1の通信装置と第2の通信装置のそれぞれが、前記DMVPNで使用するNHRP(Next Hop Resolution Protocol)登録パケットの拡張フィールドに該外部アドレス・ポート情報を含めて送信し、
    前記DMVPNを構成するハブとして機能する第3の通信装置が、配下の前記第1の通信装置と前記第2の通信装置のそれぞれから受信した前記NHRP登録パケットに含まれる前記外部アドレス・ポート情報を前記第1の通信装置と前記第2の通信装置のそれぞれと対応付けたマッピング情報に登録し、
    前記第3の通信装置を介したパケット送信元の前記スポークである前記第1の通信装置からパケット送信先の前記スポークである前記第2の通信装置との通信において、該第3の通信装置が、前記第1の通信装置と前記第2の通信装置との間に仮想トンネルを生成可能であることを前記マッピング情報に基づいて検出すると、前記第1の通信装置に対して前記仮想トンネルの生成を指示し、
    前記第3の通信装置から前記仮想トンネルの生成の指示を受けた前記第1の通信装置が、前記DMVPNで使用するNHRP解決要求パケットの拡張フィールドに該第1の通信装置の前記外部アドレス・ポート情報を含めて送信し、
    前記第1の通信装置から前記NHRP解決要求パケットを受信した前記第2の通信装置が、前記DMVPNで使用するNHRP解決応答パケットの拡張フィールドに該第2の通信装置の前記外部アドレス・ポート情報を含めて返信し、
    前記NHRP解決応答パケットを受信した前記第1の通信装置が、該NHRP解決応答パケットに含まれる前記第2の通信装置の前記外部アドレス・ポート情報に基づいて、前記第2の通信装置との間に前記仮想トンネルを生成する
    ことを特徴とするVPN構築方法。
  10. 異なるアドレス空間のネットワーク間で送受信されるパケットのNAT(Network Address Translation)アドレス変換を行う中継装置を介して、前記NATアドレス変換で生成された前記中継装置の外側のアドレス空間からアクセスすることが可能なアドレス情報である外部アドレス・ポート情報を返信する機能を持つアドレス情報提供装置から前記外部アドレス・ポート情報を取得し、
    DMVPN(Dynamic Multipoint Virtual Private Network)で使用するNHRP(Next Hop Resolution Protocol)登録パケットの拡張フィールドに前記外部アドレス・ポート情報を含めて該DMVPNのハブに送信し、
    前記ハブから、該ハブを介したスポーク間通信において、相手先スポークとの間に仮想トンネルを生成可能であることを通知されると、前記DMVPNで使用するNHRP解決要求パケットの拡張フィールドに前記外部アドレス・ポート情報を含めて前記相手先スポークに送信し、
    前記NHRP解決要求パケットを受信した前記相手先スポークが返送する前記DMVPNで使用するNHRP解決応答パケットの拡張フィールドから前記相手先スポークの前記外部アドレス・ポート情報を取得し、
    取得した前記相手先スポークの前記外部アドレス・ポート情報に基づいて、前記相手先スポークとの間に前記仮想トンネルを生成する
    ことを特徴とするVPN構築方法。
JP2019086337A 2019-04-26 2019-04-26 Vpn構築プログラム Active JP6770132B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019086337A JP6770132B2 (ja) 2019-04-26 2019-04-26 Vpn構築プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019086337A JP6770132B2 (ja) 2019-04-26 2019-04-26 Vpn構築プログラム

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2015142832A Division JP6525261B2 (ja) 2015-07-17 2015-07-17 通信システム、通信装置およびvpn構築方法

Publications (2)

Publication Number Publication Date
JP2019118156A true JP2019118156A (ja) 2019-07-18
JP6770132B2 JP6770132B2 (ja) 2020-10-14

Family

ID=67304747

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019086337A Active JP6770132B2 (ja) 2019-04-26 2019-04-26 Vpn構築プログラム

Country Status (1)

Country Link
JP (1) JP6770132B2 (ja)

Cited By (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021003409A (ja) * 2019-06-27 2021-01-14 株式会社三洋物産 遊技機
JP2021003404A (ja) * 2019-06-27 2021-01-14 株式会社三洋物産 遊技機
JP2021003407A (ja) * 2019-06-27 2021-01-14 株式会社三洋物産 遊技機
JP2021003406A (ja) * 2019-06-27 2021-01-14 株式会社三洋物産 遊技機
JP2021003405A (ja) * 2019-06-27 2021-01-14 株式会社三洋物産 遊技機
JP2021003410A (ja) * 2019-06-27 2021-01-14 株式会社三洋物産 遊技機
JP2021003403A (ja) * 2019-06-27 2021-01-14 株式会社三洋物産 遊技機
JP2021003408A (ja) * 2019-06-27 2021-01-14 株式会社三洋物産 遊技機
JP2021003402A (ja) * 2019-06-27 2021-01-14 株式会社三洋物産 遊技機
JP2021029497A (ja) * 2019-08-22 2021-03-01 株式会社三洋物産 遊技機
JP2021029498A (ja) * 2019-08-22 2021-03-01 株式会社三洋物産 遊技機
JP2021029494A (ja) * 2019-08-22 2021-03-01 株式会社三洋物産 遊技機
JP2021029491A (ja) * 2019-08-22 2021-03-01 株式会社三洋物産 遊技機
JP2021029496A (ja) * 2019-08-22 2021-03-01 株式会社三洋物産 遊技機
JP2021029495A (ja) * 2019-08-22 2021-03-01 株式会社三洋物産 遊技機
JP2021029492A (ja) * 2019-08-22 2021-03-01 株式会社三洋物産 遊技機
JP2021029560A (ja) * 2019-08-23 2021-03-01 株式会社三洋物産 遊技機
JP2021029493A (ja) * 2019-08-22 2021-03-01 株式会社三洋物産 遊技機
JP2021029561A (ja) * 2019-08-23 2021-03-01 株式会社三洋物産 遊技機
JP2021058264A (ja) * 2019-10-03 2021-04-15 株式会社三洋物産 遊技機
JP2021058267A (ja) * 2019-10-03 2021-04-15 株式会社三洋物産 遊技機
JP2021058268A (ja) * 2019-10-03 2021-04-15 株式会社三洋物産 遊技機
JP2021058269A (ja) * 2019-10-03 2021-04-15 株式会社三洋物産 遊技機
JP2021058266A (ja) * 2019-10-03 2021-04-15 株式会社三洋物産 遊技機
JP2021058265A (ja) * 2019-10-03 2021-04-15 株式会社三洋物産 遊技機
CN114050921A (zh) * 2021-10-29 2022-02-15 山东三未信安信息科技有限公司 一种fpga实现的基于udp的高速加密数据传输系统

Cited By (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021003409A (ja) * 2019-06-27 2021-01-14 株式会社三洋物産 遊技機
JP2021003404A (ja) * 2019-06-27 2021-01-14 株式会社三洋物産 遊技機
JP2021003407A (ja) * 2019-06-27 2021-01-14 株式会社三洋物産 遊技機
JP2021003406A (ja) * 2019-06-27 2021-01-14 株式会社三洋物産 遊技機
JP2021003405A (ja) * 2019-06-27 2021-01-14 株式会社三洋物産 遊技機
JP2021003410A (ja) * 2019-06-27 2021-01-14 株式会社三洋物産 遊技機
JP2021003403A (ja) * 2019-06-27 2021-01-14 株式会社三洋物産 遊技機
JP2021003408A (ja) * 2019-06-27 2021-01-14 株式会社三洋物産 遊技機
JP2021003402A (ja) * 2019-06-27 2021-01-14 株式会社三洋物産 遊技機
JP2021029491A (ja) * 2019-08-22 2021-03-01 株式会社三洋物産 遊技機
JP2021029493A (ja) * 2019-08-22 2021-03-01 株式会社三洋物産 遊技機
JP2021029494A (ja) * 2019-08-22 2021-03-01 株式会社三洋物産 遊技機
JP2021029497A (ja) * 2019-08-22 2021-03-01 株式会社三洋物産 遊技機
JP2021029496A (ja) * 2019-08-22 2021-03-01 株式会社三洋物産 遊技機
JP2021029495A (ja) * 2019-08-22 2021-03-01 株式会社三洋物産 遊技機
JP2021029492A (ja) * 2019-08-22 2021-03-01 株式会社三洋物産 遊技機
JP2021029498A (ja) * 2019-08-22 2021-03-01 株式会社三洋物産 遊技機
JP2021029561A (ja) * 2019-08-23 2021-03-01 株式会社三洋物産 遊技機
JP2021029560A (ja) * 2019-08-23 2021-03-01 株式会社三洋物産 遊技機
JP2021058264A (ja) * 2019-10-03 2021-04-15 株式会社三洋物産 遊技機
JP2021058267A (ja) * 2019-10-03 2021-04-15 株式会社三洋物産 遊技機
JP2021058268A (ja) * 2019-10-03 2021-04-15 株式会社三洋物産 遊技機
JP2021058269A (ja) * 2019-10-03 2021-04-15 株式会社三洋物産 遊技機
JP2021058266A (ja) * 2019-10-03 2021-04-15 株式会社三洋物産 遊技機
JP2021058265A (ja) * 2019-10-03 2021-04-15 株式会社三洋物産 遊技機
CN114050921A (zh) * 2021-10-29 2022-02-15 山东三未信安信息科技有限公司 一种fpga实现的基于udp的高速加密数据传输系统
CN114050921B (zh) * 2021-10-29 2023-07-25 山东三未信安信息科技有限公司 一种fpga实现的基于udp的高速加密数据传输系统

Also Published As

Publication number Publication date
JP6770132B2 (ja) 2020-10-14

Similar Documents

Publication Publication Date Title
JP6770132B2 (ja) Vpn構築プログラム
US8559448B2 (en) Method and apparatus for communication of data packets between local networks
JP4752510B2 (ja) 暗号化通信システム
JP5327832B2 (ja) ノード識別子と位置指示子とを用いたパケットの通信方法
JP5475763B2 (ja) IPv4ドメインからのデータパケットをIPv6ドメインで受信する方法、ならびに関連するデバイスおよびアクセス機器
JP6525261B2 (ja) 通信システム、通信装置およびvpn構築方法
US7940769B2 (en) Maintaining secrecy of assigned unique local addresses for IPV6 nodes within a prescribed site during access of a wide area network
JP2008547299A (ja) ネットワークアドレス変換器及び/又はファイアウォールの背後に位置するサーバとのトランスポートレベル接続を確立するためのシステム、端末、方法、及びコンピュータプログラム製品
KR20140099598A (ko) 모바일 vpn 서비스를 제공하는 방법
US7346926B2 (en) Method for sending messages over secure mobile communication links
JP2005277498A (ja) 通信システム
US20170207921A1 (en) Access to a node
KR101907933B1 (ko) 사용자 맞춤형 가상 네트워크 및 그것의 구축 방법
CN113472913B (zh) 通信方法及装置
CN111903105A (zh) 多路复用安全隧道
WO2016078235A1 (zh) 基于PNAT向IPv6过渡的网络转换实现方法、装置
US11924172B1 (en) System and method for instantiation of stateless extranets
JP4728933B2 (ja) Ip電話通信システム、ip電話通信方法、およびそのプログラム
JP2009260847A (ja) Vpn接続方法、及び通信装置
KR100882353B1 (ko) 인터넷 프로토콜 버전 4 네트워크의 서버에서의 터널네트워크인터페이스 구축 및 터널네트워크인터페이스를 이용한 패킷 송/수신 방법
EP1906615A1 (en) Method and devices for delegating the control of protected connections
JP6807962B2 (ja) 中継装置、通信システム、及び通信方法
JP5608870B2 (ja) パケット転送装置、パケット転送方法、およびプログラム
JP5904965B2 (ja) 通信装置及び通信システム
JP2011155590A (ja) プライベートネットワークを介したモバイルipの経路制御方法、モバイルルータ及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190426

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A132

Effective date: 20200616

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200814

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200901

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200924

R150 Certificate of patent or registration of utility model

Ref document number: 6770132

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150