以下、図面を参照してこの発明に係わる実施形態を説明する。
(第1の実施形態)
図1は、第1の実施形態に係わる通信システムのシステム構成を示す図である。図1に示す通信システムは、会社Aと会社Bとがインターネットを介して接続して成る。会社Aにおいて、VPN装置12は、HGW11の配下にある。会社Bにおいて、VPN装置22は、HGW21の配下にある。
続いて、会社A,Bのネットワーク構成を説明する。なお、文中に記載するIPアドレス及びポート番号は、断りのない限り、任意の値でよい。
会社AのLAN14は、任意のプライベートアドレス、例えば、192.168.1.0/24で構築され、NAPT(Network Address Port Translation)機能が搭載されるHGW11を経由してインターネットと接続する。HGW11は、IPアドレス192.168.1.1を有し、WAN側にはグローバルアドレスa.a.a.aを有する。
VPN装置12は、IPアドレス192.168.1.100としてLAN14に接続されており、特定のTCP又はUDPパケットの転送機能であるポートフォワーディング機能を有する。なお、IPアドレスの値は、LAN14内でユニークな値なら固定IPでもDHCP(Dynamic Host Configuration Protocol)等による可変IPのいずれでもよい。
通信装置13は、IPアドレス192.168.1.101のパソコン上で、例えば、オープンソースソフトウェアであるRealVNC等の画面共有ソフトがサーバとして起動しているものとする。サーバにおける待受けポート番号は、TCP:5900とする。なお、IPアドレスの値は、LAN14内でユニークな値なら固定IPでもよいし、DHCP等による可変IPでもよい。また、第1の実施形態では、通信装置13はパソコンとし、その上で画面共有ソフトが起動している場合を例に説明するが、これに限定されない。例えば、通信装置13は、TCP又はUDPで通信を行う際のサーバ側の機能が搭載されていれば画面共有ソフトに限らない。また、パソコン上で起動されるアプリではなく、専用装置であってもよい。
会社BのLAN24は、任意のプライベートアドレス、例えば、192.168.1.0/24で構築され、NAPT機能が搭載されるHGW21を経由してインターネットと接続する。HGW21は、IPアドレス192.168.1.1を有し、WAN側にはグローバルアドレスb.b.b.bを有する。なお、ここでは便宜上、会社Aと同一のアドレス体系で記載するが、同一でなくても構わない。
VPN装置22は、IPアドレス192.168.1.100としてLAN24に接続されており、特定のTCP又はUDPパケットの転送機能であるポートフォワーディング機能を有する。なお、IPアドレスの値は、LAN24内でユニークな値なら固定IPでもDHCP等による可変IPのいずれでもよい。また、ここでは便宜上、会社Aと同一のアドレスとしているが、同一でなくても構わない。
通信装置23は、IPアドレス192.168.1.101のパソコン上で、例えば、オープンソースソフトウェアであるRealVNC等の画面共有ソフトがクライアントとして起動しているものとする。なお、IPアドレスの値は、LAN24内でユニークな値なら固定IPでもよいし、DHCP等による可変IPでもよい。また、ここでは、便宜上、会社Aと同一のアドレスとしているが、同一でなくても構わない。また、第1の実施形態では、通信装置23はパソコンとし、その上で画面共有ソフトが起動している場合を例に説明するが、これに限定されない。例えば、通信装置23は、通信装置13とTCP又はUDPで通信するためのクライアント側の機能が搭載されていれば画面共有ソフトに限らない。また、パソコン上で起動されるアプリではなく、専用装置であってもよい。さらに、VPN装置22が通信装置23の機能を有していても構わない。
以上のように構成される通信システムにおいては、LAN14の配下の機器と、LAN24の配下の機器とは直接IP通信をすることができない。
次に、上記状況下において、会社Bの通信装置23と会社Aの通信装置13とを接続する方法を詳細に説明する。図2は、会社Bの担当者bが、会社Aの担当者aへ、通信装置23から通信装置13へ通信したい旨を連絡することでVPNを確立させ、確立させたVPNを利用して通信装置13の、例えば、資料等が表示されている表示画面を、通信装置23に表示させる際の動作を示すシーケンス図である。なお、図2では、会社Aと会社Bとが電話会議又はTV会議を行っているか、又は、行おうとしている状況を想定する。
まず、シーケンスS21〜シーケンスS27において、VPN装置12とVPN装置22との間でVPNを構築する手順を説明する。
会社Aの担当者aは、会社Bの担当者bから通信装置接続依頼を電話機にて受けると、VPN装置22により、インターネット側からのHGW11のWAN側IPアドレスへのアクセスでVPN装置12へ接続するための事前設定を行う(シーケンスS21)。このとき、担当者aは、VPN装置12への接続をHGW11のインターネット側から許容するため、HGW11のWAN側からのアクセスのためのポートフォワーディング設定として、VPN装置22からHGW11のWAN側UDP500番ポートへのアクセスを、VPN装置12のUDP500番ポートへ転送するように、HGW11を設定する。また、担当者aは、VPN装置22からHGW11のWAN側UDP4500番ポートへのアクセスを、VPN装置12のUDP4500番ポートへ転送するように、HGW11を設定する。なお、UDP500番ポート及びUDP4500番ポートは、L2TPoverIPsecを利用することを想定した際の標準的なポートである。また、担当者aは、セキュリティを高めるため、HGW11のWAN側のUDP500番ポート及びUDP4500番ポートへのアクセスを、HGW21のWAN側アドレスであるソースIPアドレスb.b.b.bを会社Bの担当者bからヒアリングし、HGW11に対してb.b.b.bからのアクセスのみ許可するように設定しても構わない。
続いて、担当者aは、シーケンスS22〜シーケンスS25において、VPN(図2における説明ではL2TPoverIPSEC)を確立するために必要な情報である、HGW11のグローバルIPアドレス又はFQDN(Fully Qualified Domain Name)、PPPユーザ名(以下、ユーザ名と称する。)、PPPパスワード(以下、パスワードと称する。)及びIPsec事前共有鍵(以下、共有認証情報と称する。)を、担当者bへ伝える。なお、ここでは、ユーザ名はVPN装置において固定値「user」として組み込まれ、パスワードと事前共有鍵とは同一のものであるとする。このため、担当者aが担当者bへ通知するものは、実質的には、グローバルIPアドレス又はFQDN、及び、共有認証情報となる。
具体的には、まず、担当者aは、グローバルIPアドレス又はFQDNを取得する(シーケンスS22)。グローバルIPアドレス又はFQDNの取得方法は、例えば以下である。
HGW11のWAN側のIPアドレスが動的に変わる場合(ただし、固定の場合を含む。)、担当者aは、HGW11のWAN側のアドレスをHGW11の設定及び/又は環境変数確認サーバを利用して取得する。また、担当者aは、HGW11のWAN側のアドレスをDDNS(Dynamic Domain Name System)として登録し、そのFQDNを取得する。また、HGW11のWAN側のIPアドレスが固定的な場合、担当者aは、HGW11のWAN側に付与されるアドレスをインターネットプロバイダ等からもらったIPアドレスリストを参照して取得する。本説明では、担当者aは、以上の方法により、HGW11のグローバルIPアドレス「a.a.a.a」を取得するものとする。
担当者aは、VPN装置12に対して担当者bからアクセスするための共有認証情報「pass1234」を設定する(シーケンスS23)。このとき、共有認証情報は、セキュリティを考慮し、ワンタイムパスワードのように毎回変えることが望ましい。
続いて、担当者aは、担当者bがVPN接続の相手として信用できるユーザであるかを「相手との会話内容」を用いて確認する(シーケンスS24)。もちろん、「相手との会話内容」による確認には、「相手の声」及び「(テレビ電話の場合は)相手の顔」等の事前に担当者aが入手可能なユーザ固有情報による確認も含まれる。
担当者aは、シーケンスS22で取得したグローバルIPアドレス「a.a.a.a」、及び、シーケンスS23で設定した共有認証情報「pass1234」を、電話による口頭連絡により担当者bへ伝える(シーケンスS25)。なお、グローバルIPアドレス及び共有認証情報を伝える方法は、電話による口頭連絡の他に、担当者bが確認できていれば、メール等であっても構わない。また、HGW11のグローバルアドレスをDDNSとして登録し、そのFQDNを取得する場合には、担当者aは、担当者bへFQDNを事前に通知するようにしても良い。また、HGW11のグローバルIPアドレスが固定的な場合には、担当者aは、担当者bへグローバルIPアドレスを事前に通知するようにしても良い。
担当者bは、VPN装置22に対し、シーケンスS25で取得したグローバルIPアドレス「a.a.a.a」及び共有認証情報「pass1234」を設定し(シーケンスS26)、VPN装置22に対してVPNの開設を要求する(シーケンスS27)。この時点で、VPN装置12とVPN装置22間では、L2TPoverIPSECを開設するために、UDP4500番ポート及びUDP500番ポートでの通信は直接行えるようになっている。
具体的には、図に示さないL2TPoverIPSECの接続手順に従い、VPN装置22からVPN装置12のUDP500番ポートへVPNの開設要求を送信する。VPN装置12は、要求に応じてVPN装置22の認証を行う。その後、VPN装置12は、必要に応じてIPSECのトンネルを通じてL2TPセッションでPPPユーザ認証を行う。
これを受けて、VPN装置12はPPPパスワード兼IPsec事前共有鍵の認証を行い、認証が成功した場合、VPNの開設要求に応じたVPNが確立される。このとき、実データはUDP4500番ポートでやり取りされる。
また、VPNの確立においては、VPN装置22とVPN装置12との間のみでIP通信を実行可能とする固有なIPアドレス、すなわち、VPNIPアドレスを払い出す。その際、VPNIPアドレスは、LAN14,24それぞれのプライベートアドレスとは異なるアドレス空間のものを用いる。ここでは、LAN14,24ともに、192.168.1.0/24のアドレス空間なので、それ以外のもの、例えば10.0.0.0/24のアドレス空間を用い、VPN装置12にVPNIPアドレス「10.0.0.1」を割り付け、VPN装置22にVPNIPアドレス「10.0.0.2」を割り付けるようなネゴシエーションをVPN確立処理におけるネゴシエーションで行うようにする。これにより、LAN14とLAN24との間はIPリーチャブルではなく、VPN装置12とVPN装置22との間だけがIPリーチャブルとなるVPNが構築される。
次に、VPN装置12とVPN装置22に搭載されているパケット転送機能の設定内容及び設定方法の例を、シーケンスS28〜シーケンスS211にて説明する。以下の説明では画面共有ソフト「RealVNC(待受けポート番号TCP:5900)に関して、通信装置23から通信装置13へ要求されたセッションを確立させる場合について記載する。
担当者aは、VPN装置12のVPNIPアドレス「10.0.0.1」、かつ、TCP:5900宛てのパケットを、通信装置13のIPアドレス「192.168.1.101」かつTCP:5900へ転送するように、VPN装置12に対して設定する(シーケンスS28)。設定方法としては、VPN装置12に対して手動で設定する方法もあるが、VPN装置12のWEBインタフェースを利用して簡易に実施する設定方法もある。以下に、その設定方法を説明する。
まず、VPN装置12からマルチキャストアドレスに対して、VPN装置12のプライベートIPアドレス及びポート番号を含む情報を、SSDP(Simple Service Discovery Protocol)(https://tools.ietf.org/html/draft-cai-ssdp-v1-03)を用いて送信する。例えば、通信装置13のOSがWindows7 OS(登録商標)である場合、通信装置13は、SSDPを用いて送信された情報を受信すると、情報を発信したホストの機器名等をモニタに表示する。通信装置13を操作する担当者aがその表示をダブルクリックすることにより、通信装置13からVPN装置12のプライベートIPアドレス及びhttpサーバポート番号への接続が行われ、例えば、図3に示すVPN装置12の設定画面がモニタに表示される。設定画面における初期表示では、VPN装置12のプライベートIPアドレスが「My IP address」として表示され、パケットを転送したい通信装置13のTCP又はUDPのポート番号を入力するための入力ダイアログが「転送先ポート番号」として表示される。また、「転送先IPアドレス」には、デフォルト値としてアクセスした通信装置13のプライベートIPアドレスが入力済みとなっているが、適宜修正可能である。
続いて、担当者aは、図3に示すブラウザ画面における「転送先ポート番号」にTCP:5900を入力し、設定を押下する。すると、VPN装置12は、ブラウザアクセスのソースIPアドレス情報と、入力されたTCP:5900とに基づき、VPN装置12のVPNIPアドレス「10.0.0.2」、かつ、TCP:5900宛てのパケットを、通信装置13のプライベートIPアドレス「192.168.1.101」かつTCP:5900へ転送する設定を行う。
なお、パケットの転送設定方法は、具体的には公知の技術であるポートフォワーディング(iptablesを使ったsnat及びdnatで実現)を使う方法、及び、オープンソースのSTONE(http://www.gcd.org/sengoku/docs/NikkeiLinux00-08/relay.ja.html)を使う方法があるが手段は問わない。もしSTONEを使う場合、転送先及び転送元は、「% stone 192.168.1.101:5900 10.0.0.2:5900 &」のような設定となる。
VPN装置12は、転送先の設定が完了すると、VPN装置12に設定されたポート番号であるTCP:5900をVPN装置22へ通知する(シーケンスS29)。なお、VPN装置22へポート番号を通知する方法は、IP通信であれば手段は問わないものとする。VPN装置12は、シーケンスS29に示す通知が完了すると、図3に示すブラウザ画面に、転送設定が完了したことを表示する(シーケンスS210)。
VPN装置22は、シーケンスS29に示す通知を受けると、通信装置23が送出するVPN装置22のLAN側IPアドレス「192.168.1.100」かつTCP:5900宛てのパケットを、VPN装置12のVPNIPアドレス「10.0.0.2」かつTCP:5900へ転送するように、自装置を設定する(シーケンスS211)。パケットの転送設定方法は、具体的には公知の技術であるポートフォワーディング(iptablesを使ったsnat及びdnatで実現)を使う方法、及び、オープンソースのSTONEを使う方法があるが手段は問わない。もしSTONEを使う場合、転送先及び転送元は、「% stone 10.0.0.2:5900 192.168.1.100:5900 &」のような設定となる。これにより、通信装置23が送出するVPN装置22のLAN側IPアドレスかつTCP:5900宛てのパケットをVPN装置22が受けた場合、VPN装置22は、受信したパケットを、VPN装置12のVPNIPアドレス、かつ、TCP:5900宛てへ転送するようになる。
担当者aは、図3に示すブラウザ画面を参照し、担当者bへ口頭で通信装置13,23の接続準備が完了した旨を報告する(シーケンスS212)。担当者bはシーケンスS212の報告を受けると、通信装置23からVPN装置22のLAN側IPアドレス「192.168.1.100」、かつ、TCP:5900へセッション確立パケットを送出する(シーケンスS213)。なお、VPN装置22のLAN側のIPアドレスは、上述と同様に、VPN装置22からのマルチキャストアドレスに対して、VPN装置22のプライベートIPアドレス及びポート番号を含む情報を、SSDPを用いて送信することで取得されても良いし、別の方法により取得しても良い。
VPN装置22は、セッション確立パケットをVPN装置12のVPNIPアドレス「10.0.0.2」、かつ、TCP:5900へ転送する(シーケンスS214)。VPN装置12は、セッション確立パケットを通信装置13のIPアドレス「192.168.1.101」、かつ、TCP:5900へ送出する(シーケンスS215)。これにより、通信装置23と通信装置13との間で、RealVNCによる画面転送セッションが確立する。
以上のように、第1の実施形態では、VPN装置12,22は、共有認証情報を利用して認証した後、VPN装置12,22間でVPNを確立させる。このとき、VPN装置12に対しては、VPNIPアドレス「10.0.0.2」が設定され、VPN装置22に対しては、VPNIPアドレス「10.0.0.1」が設定される。通信装置23は、通信装置13,23の接続準備が完了すると、VPN装置22のLAN側IPアドレス「192.168.1.100」、かつ、TCP:5900宛てのセッション確立パケットを送信する。VPN装置22は、通信装置23から送信されたセッション確立パケットを、VPN装置12のVPNIPアドレス「10.0.0.2」、かつ、TCP:5900へ転送する。VPN装置12は、VPN装置22から送信されたセッション確立パケットを、通信装置13のLAN側IPアドレス「192.168.1.101」、かつ、TCP:5900へ転送する。これにより、通信システムは、担当者bが、担当者aへ、通信装置23から通信装置13に接続したい旨を連絡することでVPNを確立させ、確立させたVPNを利用して通信装置13の、例えば、資料等が表示されている表示画面を、通信装置23に表示させることが可能となる。
したがって、第1の実施形態に係る通信システムによれば、複数の拠点毎に設置される、公開してアクセスされる特定の通信機器間で、安全かつ簡単な操作で一時的なセッションを確立させることができる。
また、第1の実施形態では、VPN装置12は、VPN装置12のプライベートIPアドレス及びポート番号を含む情報を、SSDPを用いてからマルチキャストアドレスへ送信する。通信装置13は、ブラウザによりVPN装置12へアクセスし、情報を発信したホストの機器名等をモニタに表示する。通信装置13は、ブラウザ画面に対して入力されるTCP:5900をVPN装置12へ出力する。VPN装置12は、通信装置13から出力されるTCP:5900と、ブラウザアクセスのソースIPアドレスとしての通信装置13のプライベートIPアドレス「192.168.1.101」とから、VPN装置12へ送信されるパケットを通信装置13のプライベートIPアドレス「192.168.1.101」かつTCP:5900へ転送するように、自装置を設定する。これにより、VPN装置12は、VPN装置12のWEBインタフェースを利用して転送先を簡易に設定することが可能となる。
また、第1の実施形態では、VPN装置12とVPN装置22との間でVPNを確立する際に必要となる共有認証情報を、担当者aと担当者bとが、VPN装置12及びVPN装置22とそれぞれ併設される音声電話器又はTV電話機能を搭載する電話器を用い、発信側の電話番号、相手との会話内容、又は、相手から受信した映像等により相手の正当性を判断した上で共有するようにしている。これにより、強固かつ、簡易な認証が可能となる。
なお、第1の実施形態では、会社Aの通信装置13の情報のみを会社Bの通信装置23に公開する場合を例に説明したが、これに限定されない。例えば、会社Aにおける通信装置13以外の機器の情報も、上記シーケンスS28〜シーケンスS215を実施すれば、会社Bの通信装置23に公開することが可能である。
また、第1の実施形態では、会社Aの通信装置13の情報を会社Bの通信装置23に公開する場合を例に説明したが、これに限定されない。例えば、通信装置23の情報を通信装置13に公開することも可能である。このとき、シーケンスS28〜シーケンスS215をシーケンスが左右逆になるように取れば一つのVPNトンネルを用いて、通信装置23の情報を通信装置13に公開することが可能である。
また、第1の実施形態では、会社AのVPN装置12及び会社BのVPN装置22で使用されるVPN種別は、L2TPoverIPSECである場合を例に説明したが、これに限定されない。例えば、VPN種別としてL2TPを用いても構わない。このとき、VPN装置12及びVPN装置22では、L2TPを開設するためのUDP:1701のみが直接通信可能となっていれば良い。第1の実施形態において重要なのは、VPN装置12,22間で全てのIP通信が可能でなくても、そこで利用する1つ又は2つのポート間で通信可能であれば、それを利用してVPNを確立し、確立したVPNを介し、VPN装置12,22間で全てのIP通信が可能となることである。
(第2の実施形態)
図4は、第2の実施形態に係わる通信システムのシステム構成を示す図である。図2に示す通信システムは、会社Aと会社Bとがインターネットを介して接続して成る。
まず、会社A,Bのネットワーク構成を説明する。なお、文中に記載するIPアドレス及びポート番号は、断りのない限り、任意の値でよい。
会社AのLAN14は、任意のプライベートアドレス、例えば、192.168.1.0/24で構築され、NAPT機能が搭載されるHGW15を経由してインターネットと接続する。
HGW15は、IPアドレス192.168.1.1を有し、WAN側にはグローバルアドレスa.a.a.aを有する。HGW15は、特定のTCP又はUDPパケットの転送機能であるポートフォワーディング機能を有するVPN装置の機能を備える。なお、IPアドレスの値は、LAN14内でユニークな値なら固定IPでもDHCP等による可変IPのいずれでもよい。
通信装置16は、IPアドレス192.168.1.101のパソコン上で、例えば、オープンソースソフトウェアであるRealVNC等の画面共有ソフトがサーバとして起動しているものとする。サーバにおける待受けポート番号は、TCP:5900とする。なお、IPアドレスの値は、LAN14内でユニークな値なら固定IPでもよいし、DHCP等による可変IPでもよい。また、第2の実施形態では、通信装置16はパソコンとし、その上で画面共有ソフトが起動している場合を例に説明するが、これに限定されない。例えば、通信装置16は、TCP又はUDPで通信を行う際のサーバ側の機能が搭載されていれば画面共有ソフトに限らない。また、パソコン上で起動されるアプリではなく、専用装置であってもよい。
会社BのLAN24は、任意のプライベートアドレス、例えば、192.168.1.0/24で構築され、NAPT機能が搭載されるHGW25を経由してインターネットと接続する。
HGW25は、IPアドレス192.168.1.1を有し、WAN側にはグローバルアドレスb.b.b.bを有する。HGW25は、特定のTCP又はUDPパケットの転送機能であるポートフォワーディング機能を有するVPN装置の機能を備える。なお、IPアドレスの値は、LAN24内でユニークな値なら固定IPでもDHCP等による可変IPのいずれでもよい。
また、ここでは便宜上、会社Aと同一のアドレスとしているが、同一でなくても構わない。
通信装置26は、IPアドレス192.168.1.101のパソコン上で、例えば、オープンソースソフトウェアであるRealVNC等の画面共有ソフトがクライアントとして起動しているものとする。なお、IPアドレスの値は、LAN24内でユニークな値なら固定IPでもよいし、DHCP等による可変IPでもよい。また、ここでは、便宜上、会社Aと同一のアドレスとしているが、同一でなくても構わない。また、第2の実施形態では、通信装置26はパソコンとし、その上で画面共有ソフトが起動している場合を例に説明するが、これに限定されない。例えば、通信装置26は、通信装置16とTCP又はUDPで通信するためのクライアント側の機能が搭載されていれば画面共有ソフトに限らない。また、パソコン上で起動されるアプリではなく、専用装置であってもよい。
以上のように構成される通信システムにおいては、LAN14の配下の機器と、LAN24の配下の機器とは直接IP通信をすることができない。
次に、上記状況下において、会社Bの通信装置26から会社Aの通信装置16に接続する方法を詳細に説明する。図5は、会社Bの担当者bが、会社Aの担当者aへ、通信装置26から通信装置16に接続したい旨を連絡することでVPNを確立させ、確立させたVPNを利用して通信装置16の、例えば、資料等が表示されている表示画面を、通信装置26に表示させる際の動作を示すシーケンス図である。なお、図5では、会社Aと会社Bとが電話会議又はTV会議を行っているか、又は、行おうとしている状況を想定する。
まず、シーケンスS51〜シーケンスS56において、HGW15とHGW25との間でVPNを構築する手順を説明する。
会社Aの担当者aは、会社Bの担当者bから通信装置接続依頼を電話機にて受けると、VPN(図5における説明ではL2TPoverIPSEC)を確立するために必要な情報である、HGW15のグローバルIPアドレス又はFQDN、PPPユーザ名(以下、ユーザ名と称する。)、PPPパスワード(以下、パスワードと称する。)及びIPsec事前共有鍵(以下、共有認証情報と称する。)を、担当者bへ伝える。なお、ここでは、ユーザ名はHGWにおいて固定値「user」として組み込まれ、パスワードと事前共有鍵とは同一のものであるとする。このため、担当者aが担当者bへ通知するものは、実質的には、グローバルIPアドレス又はFQDN、及び、共有認証情報となる。
具体的には、まず、担当者aは、グローバルIPアドレス又はFQDNを取得する(シーケンスS51)。グローバルIPアドレス又はFQDNの取得方法は、例えば以下である。
HGW15のWAN側のIPアドレスが動的に変わる場合(ただし、固定の場合を含む。)、担当者aは、HGW15のWAN側のアドレスをHGW15の設定及び/又は環境変数確認サーバを利用して取得する。また、担当者aは、HGW15のWAN側のアドレスをDDNSとして登録し、そのFQDNを取得する。また、HGW15のWAN側のIPアドレスが固定的な場合、担当者aは、HGW15のWAN側に付与されるアドレスをインターネットプロバイダ等からもらったIPアドレスリストを参照して取得する。本説明では、担当者aは、以上の方法により、HGW15のグローバルIPアドレス「a.a.a.a」を取得するものとする。
担当者aは、HGW15に対して担当者bからアクセスするための共有認証情報「pass1234」を設定する(シーケンスS52)。このとき、共有認証情報は、セキュリティを考慮し、ワンタイムパスワードのように毎回変えることが望ましい。
続いて、担当者aは、担当者bがVPN接続の相手として信用できるユーザであるかを「相手との会話内容」を用いて確認する(シーケンスS53)。もちろん、「相手との会話内容」による確認には、「相手の声」及び「(テレビ電話の場合は)相手の顔」等の事前に担当者aが入手可能なユーザ固有情報による確認も含まれる。
担当者aは、シーケンスS51で取得したグローバルIPアドレス「a.a.a.a」、及び、シーケンスS52で設定した共有認証情報「pass1234」を、電話による口頭連絡により担当者bへ伝える(シーケンスS54)。なお、グローバルIPアドレス及び共有認証情報を伝える方法は、電話による口頭連絡の他に、担当者bが確認できていれば、メール等であっても構わない。また、HGW11のグローバルアドレスをDDNSとして登録し、そのFQDNを取得する場合には、担当者aは、担当者bへFQDNを事前に通知するようにしても良い。また、HGW11のグローバルIPアドレスが固定的な場合には、担当者aは、担当者bへグローバルIPアドレスを事前に通知するようにしても良い。
担当者bは、HGW25に対し、シーケンスS54で取得したグローバルIPアドレス「a.a.a.a」及び共有認証情報「pass1234」を設定し(シーケンスS55)、HGW25に対してVPNの開設を要求する(シーケンスS56)。この時点で、HGW15とHGW25間では、L2TPoverIPSECを開設するために、UDP4500番ポート及びUDP500番ポートでの通信は直接行えるようになっている。
具体的には、図に示さないL2TPoverIPSECの接続手順に従い、HGW25からHGW15のUDP500番ポートへVPNの開設要求を送信する。HGW15は、開設要求についてのレスポンスをNAPTにより受信することにより、HGW25の認証を行う。その後、HGW15は、必要に応じてIPSECのトンネルを通じてL2TPセッションでPPPユーザ認証を行う。
これを受けて、HGW15はPPPパスワード兼IPsec事前共有鍵の認証を行い、認証が成功した場合、VPNの開設要求に応じたVPNが確立される。このとき、実データはUDP4500番ポートでやり取りされる。
また、VPNの確立においては、HGW15とHGW25との間のみでIP通信を実行可能とする固有なIPアドレス、すなわち、VPNIPアドレスを払い出す。その際、VPNIPアドレスは、LAN14,24それぞれのプライベートアドレスとは異なるアドレス空間のものを用いる。ここでは、LAN14,24ともに、192.168.1.0/24のアドレス空間なので、それ以外のもの、例えば10.0.0.0/24のアドレス空間を用い、HGW15にVPNIPアドレス「10.0.0.1」を割り付け、HGW25にVPNIPアドレス「10.0.0.2」を割り付けるようなネゴシエーションをVPN確立処理におけるネゴシエーションで行うようにする。これにより、LAN14とLAN24との間IPリーチャブルではなく、HGW15とHGW25との間だけがIPリーチャブルとなるVPNが構築される。
次に、HGW15とHGW25に搭載されているパケット転送機能の設定内容及び設定方法の例を、シーケンスS57〜シーケンスS510にて説明する。以下の説明では画面共有ソフト「RealVNC(待受けポート番号TCP:5900)に関して、通信装置26から通信装置16へ要求されたセッションを確立させる場合について記載する。
担当者aは、HGW15のVPNIPアドレス「10.0.0.1」、かつ、TCP:5900宛てのパケットを、通信装置16のIPアドレス「192.168.1.101」かつTCP:5900へ転送するように、HGW15に対して設定する(シーケンスS57)。設定方法としては、HGW15に対して手動で設定する方法もあるが、HGW15のWEBインタフェースを利用して簡易に実施する設定方法もある。以下に、その設定方法を説明する。
まず、HGW15からマルチキャストアドレスに対して、HGW15のプライベートIPアドレス及びポート番号を含む情報を、SSDPを用いて送信する。例えば、通信装置16のOSがWindows7 OS(登録商標)である場合、通信装置16は、SSDPを用いて送信された情報を受信すると、情報を発信したホストの機器名等をモニタに表示する。通信装置16を操作する担当者aがその表示をダブルクリックすることにより、通信装置16からHGW15のプライベートIPアドレス及びhttpサーバポート番号への接続が行われ、例えば、図6に示すHGW15の設定画面がモニタに表示される。設定画面における初期表示では、HGW15のプライベートIPアドレスが「My IP address」として表示され、パケットを転送したい通信装置16のTCP又はUDPのポート番号を入力するための入力ダイアログが「転送先ポート番号」として表示される。また、「転送先IPアドレス」には、デフォルト値としてアクセスした通信装置16のプライベートIPアドレスが入力済みとなっているが、適宜修正可能である。
続いて、担当者aは、図6に示すブラウザ画面における「転送先ポート番号」にTCP:5900を入力し、設定を押下する。すると、HGW15は、ブラウザアクセスのソースIPアドレス情報と、入力されたTCP:5900とに基づき、HGW15のVPNIPアドレス「10.0.0.2」、かつ、TCP:5900宛てのパケットを、通信装置16のプライベートIPアドレスかつTCP:5900へ転送する設定を行う。
なお、パケットの転送設定方法は、具体的には公知の技術であるポートフォワーディング(iptablesを使ったsnat及びdnatで実現)を使う方法、及び、オープンソースのSTONE(http://www.gcd.org/sengoku/docs/NikkeiLinux00-08/relay.ja.html)を使う方法があるが手段は問わない。もしSTONEを使う場合、転送先及び転送元は、「% stone 192.168.1.1:5900 10.0.0.2:5900 &」のような設定となる。
HGW15は、HGW15に設定されたポート番号であるTCP:5900をHGW25へ通知する(シーケンスS58)。なお、HGW25へポート番号を通知する方法は、IP通信であれば手段は問わないものとする。HGW25は、シーケンスS58に示す通知が完了すると、図6に示すブラウザ画面に、転送設定が完了したことを表示する(シーケンスS59)。
HGW25は、シーケンスS58に示す通知を受けると、通信装置26が送出するHGW25のLAN側IPアドレス「192.168.1.1」かつTCP:5900宛てのパケットを、HGW15のVPNIPアドレス「10.0.0.2」かつTCP:5900へ転送するように、自装置を設定する(シーケンスS510)。パケットの転送設定方法は、具体的には公知の技術であるポートフォワーディング(iptablesを使ったsnat及びdnatで実現)を使う方法、及び、オープンソースのSTONEを使う方法があるが手段は問わない。もしSTONEを使う場合、転送先及び転送元は、「% stone 10.0.0.2:5900 192.168.1.1:5900 &」のような設定となる。これにより、通信装置26が送出するGDW25のLAN側IPアドレスかつTCP:5900宛てのパケットをGDW25が受けた場合、GDW25は、受信したパケットを、GDW15のVPNIPアドレス、かつ、TCP:5900宛てへ転送するようになる。
担当者aは、図6に示すブラウザ画面を参照し、担当者bへ口頭で通信装置16,26の接続準備が完了した旨を報告する(シーケンスS511)。担当者bはシーケンスS511の報告を受けると、通信装置26からHGW25のLAN側IPアドレス「192.168.1.1」、かつ、TCP:5900へセッション確立パケットを送出する(シーケンスS512)。なお、HGW25のLAN側のIPアドレスは、上述と同様に、HGW25からのマルチキャストアドレスに対して、HGW25のプライベートIPアドレス及びポート番号を含む情報を、SSDPを用いて送信することで取得されても良いし、別の方法により取得しても良い。
HGW25は、セッション確立パケットをHGW15のVPNIPアドレス「10.0.0.2」、かつ、TCP:5900へ転送する(シーケンスS513)。HGW15は、セッション確立パケットを通信装置16のIPアドレス「192.168.1.101」、かつ、TCP:5900へ送出する(シーケンスS514)。これにより、通信装置26と通信装置16との間で、RealVNCによる画面転送セッションが確立する。
以上のように、第2の実施形態では、HGW15,25は、VPN装置の機能を備える。HGW15,25は、共有認証情報を利用して認証した後、HGW15,25間でVPNを確立させる。このとき、HGW15に対しては、VPNIPアドレス「10.0.0.2」が設定され、HGW25に対しては、VPNIPアドレス「10.0.0.1」が設定される。通信装置26は、通信装置16,26の接続準備が完了すると、HGW25のLAN側IPアドレス「192.168.1.1」、かつ、TCP:5900宛てのセッション確立パケットを送信する。HGW25は、通信装置26から送信されたセッション確立パケットを、HGW15のVPNIPアドレス「10.0.0.2」、かつ、TCP:5900へ転送する。HGW15は、HGW25から送信されたセッション確立パケットを、通信装置16のLAN側IPアドレス「192.168.1.101」、かつ、TCP:5900へ転送する。これにより、通信システムは、担当者bが、担当者aへ、通信装置26から通信装置16に接続したい旨を連絡することでVPNを確立させ、確立させたVPNを利用して通信装置16の、例えば、資料等が表示されている表示画面を、通信装置26に表示させることが可能となる。
したがって、第2の実施形態に係る通信システムによれば、複数の拠点毎に設置される、公開してアクセスされる特定の通信機器間で、安全かつ簡単な操作で一時的なセッションを確立させることができる。
また、第2の実施形態では、HGW15は、HGW15のプライベートIPアドレス及びポート番号を含む情報を、SSDPを用いてからマルチキャストアドレスへ送信する。通信装置16は、ブラウザによりHGW15へアクセスし、情報を発信したホストの機器名等をモニタに表示する。通信装置16は、ブラウザ画面に対して入力されるTCP:5900をHGW15へ出力する。HGW15は、通信装置16から出力されるTCP:5900と、ブラウザアクセスのソースIPアドレスとしての通信装置16のプライベートIPアドレス「192.168.1.101」とから、HGW15へ送信されるパケットを通信装置16のプライベートIPアドレス「192.168.1.101」かつTCP:5900へ転送するように、自装置を設定する。これにより、HGW15は、HGW15のWEBインタフェースを利用して転送先を簡易に設定することが可能となる。
また、第2の実施形態では、HGW15とHGW25との間でVPNを確立する際に必要となる共有認証情報を、担当者aと担当者bとが、会社A及び会社Bにそれぞれ設けられる音声電話器又はTV電話機能を搭載する電話器を用い、発信側の電話番号、相手との会話内容、又は、相手から受信した映像等により相手の正当性を判断した上で共有するようにしている。これにより、強固かつ、簡易な認証が可能となる。
なお、第2の実施形態では、会社Aの通信装置16の情報のみを会社Bの通信装置26に公開する場合を例に説明したが、これに限定されない。例えば、会社Aにおける通信装置13以外の機器の情報も、上記シーケンスS57〜シーケンスS514を実施すれば、会社Bの通信装置26に公開することが可能である。
また、第2の実施形態では、会社Aの通信装置16の情報を会社Bの通信装置26に公開する場合を例に説明したが、これに限定されない。例えば、通信装置26の情報を通信装置16に公開することも可能である。このとき、シーケンスS57〜シーケンスS514をシーケンスが左右逆になるように取れば一つのVPNトンネルを用いて、通信装置26の情報を通信装置16に公開することが可能である。
また、第2の実施形態では、会社AのHGW15及び会社BのHGW25で使用されるVPN種別は、L2TPoverIPSECである場合を例に説明したが、これに限定されない。例えば、VPN種別としてL2TPを用いても構わない。このとき、HGW15及びHGW25では、L2TPを開設するためのUDP:1701のみが直接通信可能となっていれば良い。第2の実施形態において重要なのは、HGW15,25間で全てのIP通信が可能でなくても、そこで利用する1つ又は2つのポート間で通信可能であれば、それを利用してVPNを確立し、確立したVPNを介し、HGW15,25間で全てのIP通信が可能となることである。
(第3の実施形態)
NTT東日本及びNTT西日本では、フレッツ光ネクスト又はフレッツ光ライト(以下、NGN(Next Generation Network)と称する。)の契約者で、ひかり電話に加入しているユーザに、帯域確保型データ通信サービス「データコネクト」を提供している。データコネクトは、「NGNのひかり電話」の標準機能として提供される。データコネクトは、「NGNのひかり電話」の加入者のHGW配下のデータコネクト対応端末同士で、電話番号を用いたSIP(Session Initiation Protocol)による1回の発着信で、SIPを用いた1つの電話セッションを構築する。この電話セッションでは、電話セッションを張った相手との間で音声電話及びTV電話だけでなく、データ通信を同時に実施することが可能である。すなわち、データコネクトは、電話をしている相手が信用できれば、その相手との間でデータ通信を行うパスも信用できるものと扱われることになる。
そこで、第3の実施形態では、NGNのひかり電話を利用し、HGWの配下に位置するVPN装置が、データコネクトのセッションを張る場合について説明する。
図7は、第3の実施形態に係わる通信システムのシステム構成を示す図である。図7に示す通信システムにおいて、会社A及び会社Bは、NGNの光電話サービス委に加入している。会社Aにおいて、VPN装置18は、HGW17の配下にある。会社Bにおいて、VPN装置28は、HGW27の配下にある。
続いて、会社A,Bのネットワーク構成を説明する。なお、文中に記載するIPアドレス及びポート番号は、断りのない限り、任意の値でよい。
会社AのLAN14は、任意のプライベートアドレス、例えば、192.168.1.0/24で構築され、HGW17を経由してNGNと接続する。HGW17は、プライベートIPアドレス192.168.1.1を有する。
VPN装置18は、IPアドレス192.168.1.100としてLAN14に接続されており、特定のTCP又はUDPパケットの転送機能であるポートフォワーディング機能を有する。なお、IPアドレスの値は、LAN14内でユニークな値なら固定IPでもDHCP等による可変IPのいずれでもよい。また、VPN装置18は、ひかり電話を利用することが可能であり、通信種別として音声、映像及びデータ通信に対応する。
通信装置19は、IPアドレス192.168.1.101のパソコン上で、例えば、オープンソースソフトウェアであるRealVNC等の画面共有ソフトがサーバとして起動しているものとする。サーバにおける待受けポート番号は、TCP:5900とする。なお、IPアドレスの値は、LAN14内でユニークな値なら固定IPでもよいし、DHCP等による可変IPでもよい。また、第3の実施形態では、通信装置19はパソコンとし、その上で画面共有ソフトが起動している場合を例に説明するが、これに限定されない。例えば、通信装置19は、TCP又はUDPで通信を行う際のサーバ側の機能が搭載されていれば画面共有ソフトに限らない。また、パソコン上で起動されるアプリではなく、専用装置であってもよい。
会社BのLAN24は、任意のプライベートアドレス、例えば、192.168.1.0/24で構築され、HGW27を経由してNGNと接続する。HGW27は、IPアドレス192.168.1.1を有する。なお、ここでは便宜上、会社Aと同一のアドレス体系で記載するが、同一でなくても構わない。
VPN装置28は、IPアドレス192.168.1.100としてLAN24に接続されており、特定のTCP又はUDPパケットの転送機能であるポートフォワーディング機能を有する。なお、IPアドレスの値は、LAN24内でユニークな値なら固定IPでもDHCP等による可変IPのいずれでもよい。また、ここでは便宜上、会社Aと同一のアドレスとしているが、同一でなくても構わない。また、VPN装置28は、ひかり電話を利用することが可能であり、音声、映像及びデータの通信セッションに対応している。VPN装置28は、電話番号を用いてVPN装置18と通信をすることが可能である。
通信装置29は、IPアドレス192.168.1.101のパソコン上で、例えば、オープンソースソフトウェアであるRealVNC等の画面共有ソフトがクライアントとして起動しているものとする。なお、IPアドレスの値は、LAN24内でユニークな値なら固定IPでもよいし、DHCP等による可変IPでもよい。また、ここでは、便宜上、会社Aと同一のアドレスとしているが、同一でなくても構わない。また、第3の実施形態では、通信装置29はパソコンとし、その上で画面共有ソフトが起動している場合を例に説明するが、これに限定されない。例えば、通信装置29は、通信装置19とTCP又はUDPで通信するためのクライアント側の機能が搭載されていれば画面共有ソフトに限らない。また、パソコン上で起動されるアプリではなく、専用装置であってもよい。さらに、VPN装置28が通信装置29の機能を有していても構わない。
次に、以上のように構成される通信システムにおいて、会社Bの通信装置29と会社Aの通信装置19とを接続する方法を詳細に説明する。図8は、会社Bの担当者bと、会社Aの担当者aとがTV電話を行い、その最中に通信装置29と通信装置19とを接続させる際の動作を示すシーケンス図である。
まず、シーケンスS81及びシーケンスS82により、VPN装置18とVPN装置28との間で、TV電話及びデータ通信を利用するためのSIPセッションを確立する。
具体的には、VPN装置28から、VPN装置18の電話番号に対して発信する(シーケンスS81)。その際、VPN装置28は、音声(m=audio)、映像(m=video)、及び、データ通信(m=aplication)をメディアストリームとするモードで着番号で発信し、自分の電話番号(発番号)、並びに、UDPによる通信を行う際の自分側の待受けIPアドレス及びポート番号「d.d.d.d:UDP:yyyy」をNGNのSIP仕様に従って通知する。
担当者aは、VPN装置18により、着信に応答する操作を行う(シーケンスS82)。VPN装置18は、応答する際、VPN装置28の発番号、並びに、VPN装置28の待受けIPアドレス及びポート番号「d’.d’.d’.d’:UDP:y’y’y’y’」を保持する。NGN網においては、m=applicationでネゴシエーションされるUDPによるIPアドレス及びポート番号は相手から透過ではない場合があるので、ここでは「’」をつけて区別している。ただし、以下の記載では説明の便宜上「d.d.d.d」と「d’.d’.d’.d’」、及び、「yyyy」と「y’y’y’y’」は同じものとし、両方とも「d.d.d.d」及び「yyyy」と記載する。次に、VPN装置18は、UDPによる通信を行う際の自分側の待受けIPアドレス及びポート番号「c.c.c.c:UDP:xxxx」をVPN装置28へ通知する。VPN装置28は、VPN装置18の待受けIPアドレス及びポート番号「c’.c’.c’.c’:UDP:x’x’x’x’」を保持する。以下では、「d.d.d.d」及び「yyyy」と同様、「c.c.c.c」と「c’.c’.c’.c’」、及び、「xxxx」と「x’x’x’x’」は同じものとして記載する。
SIPセッションが確立されると、VPN装置18と、VPN装置28との双方で、VPNサーバ及びVPNクライアントとして動作するための設定を行う。その手順について、シーケンスS83−1、シーケンスS84−1、シーケンスS83−3及びシーケンスS84−2で説明する。なお、VPNのクライアント側となり、VPN確立処理を開始するのは、相手のLANに通信装置を公開する設定を行う側である。TV電話が接続された段階において、どちらのVPN装置がVPN確立要求を出すか未定なので、双方のVPN装置でVPNサーバを起動するようにしている。
具体的には、VPN装置28は、シーケンスS81で発信した自装置の電話番号「0123456789」を、VPNパスワード(共有認証情報)として設定する(シーケンスS83−1)。また、VPN装置18は、シーケンスS81で着信した発番号「0123456789」を、共有認証情報として設定する(シーケンスS83−2)。本説明では、発信者の電話番号をVPNパスワードとしているが、もちろん、システムの特定の固定値としても構わないし、着信者の電話番号としても構わない。その理由は、SIPに紐づいた同一呼内でTV電話セッションとVPNセッションとを行う場合は、シーケンスS84−1,84−2で示すSIPネゴシエーションの電話番号での認証、及び、シーケンスS85で示す会話での認証により、相手を認証できるため、パスワード等の共有情報の認証はあくまでオプション的な役割にすぎないからである。
続いて、VPN装置18及びVPN装置28は、VPNサーバを起動する(シーケンスS84−1,S84−2)。ここで、VPNサーバの起動は無条件ではない。VPN装置18,28は、VPN接続を許容する電話番号を、装置内の図示しない記憶領域に保持している。VPN装置18は、シーケンスS81で取得された発番号である「0123456789」が記憶領域に保持されている場合、VPNサーバを立ち上げる。VPN装置28は、シーケンスS81で入力される着番号が記憶領域に保持されている場合、VPNサーバを立ち上げる。これは、セキュリティのために電話番号による認証を行うためである。
なお、本説明では、VPNは、L2TPを利用して確立されることとする。理由は、NGNは閉域網であるため、盗聴される心配がなく、暗号化は不要、かつ、処理が軽いからである。L2TPにおいて、サーバを立ち上げる際に必要な情報は、「VPN接続先IPアドレス」及び「UDPポート番号」、「PPPユーザ名」、並びに、「PPPパスワード」である。
VPN装置18は、シーケンスS81において、「VPN接続先IPアドレス」を「d.d.d.d」として取得済みであり、「UDPポート番号」を「yyyy」として取得済みである。また、VPN装置28は、シーケンスS82において、「VPN接続先IPアドレス」を「c.c.c.c」として取得済みであり、「UDPポート番号」を「xxxx」として取得済みである。また、PPPユーザ名は、VPN装置18,28において固定値「user」として組み込まれている。また、VPN装置28,18は、シーケンスS83−1,83−2でそれぞれ示すように、「PPPパスワード」を「0123456789」として取得済みである。
VPN装置18は、上記をパラメータとして、UDPの標準ポート番号:1701ではなく、UDPポート番号:xxxxを用いて、L2TPのVPNサーバを立ち上げる。また、VPN装置28は、上記をパラメータとして、UDPの標準ポート番号:1701ではなく、UDPポート番号:yyyyを用いて、L2TPのVPNサーバを立ち上げる。
次に、TV会議の中で資料を共有する必要が発生し、担当者bから担当者aへ、通信装置19と通信装置29との接続による資料の共有を口頭で依頼した後に、VPN装置18及びVPN装置28間でVPNを構築する処理をシーケンスS85〜シーケンスS88で説明する。
まず、担当者bは、通信装置19と通信装置29との接続を担当者aへ口頭で依頼する(シーケンスS85)。通信装置19と通信装置29との接続依頼を受けた担当者aは、通話相手が会社Bに所属しており、資料を開示してよい正当なユーザ(本例では担当者b)かどうかを「相手との会話内容」を参照して確認する(シーケンスS86)。もちろん、「相手との会話内容」による確認には、「相手の声」及び「(テレビ電話の場合は)相手の顔」等の事前に担当者aが入手可能なユーザ固有情報による確認も含まれる。
担当者aは、VPN装置18に、VPNが確立された際に仮想的に付与されるVPNIPアドレス、かつ、TCP:5900宛てのパケットを通信装置19へ転送する情報を保持させる(シーケンスS87)。ただし、本設定が有効になるのは後述するシーケンスS89以降である。VPN装置18のWEBインタフェースを用い、転送先を簡易に保持する方法を以下に説明する。
まず、VPN装置18からマルチキャストアドレスに対して、VPN装置18のプライベートIPアドレス及びポート番号を含む情報を、SSDPを用いて送信する。例えば、通信装置19がWindows7 OS(登録商標)である場合、通信装置19は、SSDPを用いて送信された情報を受信すると、情報を発信したホストの機器名等をモニタに表示する。通信装置19を操作する担当者aがその表示をダブルクリックすることにより、通信装置19からVPN装置18のプライベートIPアドレス及びhttpサーバポート番号への接続が行われ、例えば、図3に示すVPN装置18の設定画面がモニタに表示される。設定画面における初期表示では、VPN装置18のプライベートIPアドレスが「My IP address」として表示され、パケットを転送したい通信装置19のTCP又はUDPのポート番号を入力するための入力ダイアログが「転送先ポート番号」として表示される。また、「転送先IPアドレス」には、デフォルト値としてアクセスした通信装置19のプライベートIPアドレスが入力済みとなっているが、適宜修正可能である。
担当者aは、図3に示すブラウザ画面における「転送先ポート番号」にTCP:5900を入力し、設定を押下する。すると、VPN装置18は、ブラウザアクセスのソースIPアドレス情報と、入力されたTCP:5900とに基づき、VPN装置18のVPNIPアドレス、かつ、TCP:5900宛てのパケットを、通信装置19のプライベートIPアドレス「192.168.1.101」かつTCP:5900へ転送する情報を保持する。
続いて、VPN装置18は、接続IPアドレス「d.d.d.d」、接続UDPポート番号「yyyy」、PPPユーザ名「user」、及び、共有認証情報「0123456789」をパラメータとして、VPN装置28に対してVPN確立処理を開始する(シーケンスS88)。VPN確立処理の中では、共有認証情報の認証、並びに、自VPNIPアドレス及び相手VPNIPアドレスについてのネゴシエーション等を行い、L2TPによるVPNを確立する。
上記VPNIPアドレスのネゴシエーションについて補足する。VPN装置18,28に設定されるVPNIPアドレスは、LAN14,24のプライベートアドレスと異なるアドレス空間のものである。本例では、LAN14,24ともに、192.168.1.0/24のアドレス空間なので、それ以外のもの、例えば10.0.0.0/24のアドレス空間を用い、VPN装置12にVPNIPアドレス「10.0.0.1」を割り付け、VPN装置22にVPNIPアドレス「10.0.0.2」を割り付けるようなネゴシエーションをVPN確立処理中のネゴシエーションで行うようにする。これにより、LAN14とLAN24との間はIPリーチャブルではなく、VPN装置12とVPN装置22との間だけがIPリーチャブルとなるVPNが確立される。
次に、確立されたVPNを利用し、LAN24内から通信装置19へトンネルを確立する処理をシーケンスS89〜シーケンスS813で説明する。
シーケンスS88に示すVPN確立処理によりVPNが確立されると、VPN装置18は、シーケンスS87で保持した情報を設定する(シーケンスS89)。すなわち、VPN装置18は、VPN装置18のVPNIPアドレス「10.0.0.2」、かつ、TCP:5900宛てのパケットを、通信装置19のプライベートIPアドレス「192.168.1.101」かつTCP:5900へ転送するように設定する。パケットの転送設定方法は、具体的には公知の技術であるポートフォワーディング(iptablesを使ったsnat及びdnatで実現)を使う方法、及び、オープンソースのSTONEを使う方法があるが手段は問わない。もしSTONEを使う場合、転送先及び転送元は、「% stone 192.168.1.101:5900 10.0.0.2:5900 &」のような設定となる。
転送先についての情報を設定すると、VPN装置18は、ポート番号であるTCP:5900を、VPN装置18のVPNIPアドレス「10.0.0.2」から、VPN装置28のVPNIPアドレス「10.0.0.1」へIP通信で通知する(シーケンスS810)。なお、通知方法については、IP通信であれば手段を問わない。また、本説明では、ポート番号を通知するコマンドを、転送ポート通知コマンドと称し、転送ポート通知コマンドには、引数としてTCP:5900が付与されるものとする。
VPN装置28は、転送ポート通知コマンドを受信すると、通信装置29が送出するVPN装置28のLAN側IPアドレス「192.168.1.100」かつTCP:5900宛てのパケットを、VPN装置18のVPNIPアドレス「10.0.0.2」かつTCP:5900へ転送するように、自装置を設定する(シーケンスS811)。パケットの転送設定方法は、具体的には公知の技術であるポートフォワーディング(iptablesを使ったsnat及びdnatで実現)を使う方法、及び、オープンソースのSTONEを使う方法があるが手段は問わない。もしSTONEを使う場合、転送先及び転送元は、「% stone 10.0.0.2:5900 192.168.1.100:5900 &」のような設定となる。
VPN装置28は、転送先の設定が完了すると、設定が完了した旨を、VPN装置28のVPNIPアドレス「10.0.0.1」から、VPN装置18のVPNIPアドレス「10.0.0.2」へIP通信で通知する(シーケンスS812)。設定の完了を通知する方法は、IP通信であれば手段を問わない。また、本説明では、設定完了の通知を、転送ポート設定完了レスポンスと称し、転送ポート設定完了レスポンスには、引数として設定が完了した旨を示すパラメータ(例えば、OK)等が付与される。
シーケンスS89〜シーケンスS812により、通信装置29から通信装置19へアクセスできる状態となる。VPN装置28は、転送ポート設定完了レスポンスを送信すると、自装置に接続されるモニタに、トンネルの確立が完了したことを、例えば、「トンネルを確立しました」として表示する(シーケンスS813−1)。また、VPN装置18は、転送ポート設定完了レスポンスを受信すると、自装置に接続されるモニタ、及び、図3に示すブラウザ画面に、トンネルの確立が完了したことを、例えば、「トンネルを確立しました」として表示する(シーケンスS813−2)。また、必要に応じて、担当者aは担当者bに、通信装置19,29間の接続の準備が完了した旨を口頭で報告する。
次に、通信装置19と通信装置29との間でセッションを確立する処理をシーケンスS814〜シーケンスS816で説明する。
担当者bは、セッションの準備が完了すると、通信装置29からVPN装置28のLAN側IPアドレス「192.168.1.100」、かつ、TCP:5900へセッション確立パケットを送出する(シーケンスS814)。なお、VPN装置28のLAN側のIPアドレスは、VPN装置28からのマルチキャストアドレスに対して、VPN装置28のプライベートIPアドレス及びポート番号を含む情報を、SSDPを用いて送信することで取得されても良いし、別の方法により取得しても良い。
VPN装置28は、セッション確立パケットをVPN装置18のVPNIPアドレス「10.0.0.2」、かつ、TCP:5900へ転送する(シーケンスS815)。VPN装置18は、セッション確立パケットを通信装置19のIPアドレス「192.168.1.101」、かつ、TCP:5900へ送出する(シーケンスS816)。これにより、通信装置29と通信装置19との間で、RealVNCによる画面転送セッションが確立する。
TV会議が終了すると、担当者a及び担当者bは、電話を切断する(シーケンスS817)。電話が切断されると、VPNはデータコネクトのデータ通信に紐づいているので、VPNも同時に切断される。
以上のように、第3の実施形態では、VPN装置18,28は、電話番号を用い、SIPによる電話セッションを確立する。VPN装置18,28は、確立されている電話セッションを利用してデータ通信を行うことでVPNを確立させる。このとき、VPN装置18に対しては、VPNIPアドレス「10.0.0.2」が設定され、VPN装置28に対しては、VPNIPアドレス「10.0.0.1」が設定される。通信装置29は、通信装置19,29の接続準備が完了すると、VPN装置28のLAN側IPアドレス「192.168.1.100」、かつ、TCP:5900宛てのセッション確立パケットを送信する。VPN装置28は、通信装置29から送信されたセッション確立パケットを、VPN装置18のVPNIPアドレス「10.0.0.2」、かつ、TCP:5900へ転送する。VPN装置18は、VPN装置28から送信されたセッション確立パケットを、通信装置19のLAN側IPアドレス「192.168.1.101」、かつ、TCP:5900へ転送するようにしている。これにより、通信システムは、SIPセッションを利用することでVPN装置18,28の間でVPNを確立させ、確立させたVPNを利用して通信装置19の、例えば、資料等が表示されている表示画面を、通信装置29に表示させることが可能となる。
したがって、第3の実施形態に係る通信システムによれば、複数の拠点毎に設置される、公開してアクセスされる特定の通信機器間で、安全かつ簡単な操作で一時的なセッションを確立させることができる。
また、第3の実施形態では、VPN装置18は、VPN装置18のプライベートIPアドレス及びポート番号を含む情報を、SSDPを用いてからマルチキャストアドレスへ送信する。通信装置19は、ブラウザによりVPN装置18へアクセスし、情報を発信したホストの機器名等をモニタに表示する。通信装置19は、ブラウザ画面に対して入力されるTCP:5900をVPN装置18へ出力する。VPN装置18は、通信装置19から出力されるTCP:5900と、ブラウザアクセスのソースIPアドレスとしての通信装置19のプライベートIPアドレス「192.168.1.101」とから、VPN装置18へ送信されるパケットを通信装置19のプライベートIPアドレス「192.168.1.101」かつTCP:5900へ転送するように、自装置を設定する。これにより、VPN装置18は、VPN装置18のWEBインタフェースを利用して転送先を簡易に保持することが可能となる。
また、第3の実施形態では、担当者aが、相手との会話内容、又は、相手から受信した映像等により担当者b及び会社Bの正当性を確認した後、VPN装置18に転送情報を保持させる。そして、VPN装置18は、転送情報を保持した後、VPN装置28に対してVPN確立処理を開始させるようにしている。これにより、強固かつ、簡易な認証が可能となる。
なお、第3の実施形態では、会社Aの通信装置19の情報のみを会社Bの通信装置29に公開する場合を例に説明したが、これに限定されない。例えば、会社Aにおける通信装置19以外の機器の情報も、上記シーケンスS89〜シーケンスS816を実施すれば、会社Bの通信装置29に公開することが可能である。
また、第3の実施形態では、会社Aの通信装置19の情報を会社Bの通信装置29に公開する場合を例に説明したが、これに限定されない。例えば、通信装置29の情報を通信装置19に公開することも可能である。このとき、VPN装置28側がクライアントとして接続され、シーケンスS85〜シーケンスS816をシーケンスが左右逆になるように取ればよい。すなわち、通話の着信側の通信装置の情報を公開することも、発信側の通信装置の情報を公開することのどちらも可能である。
また、第3の実施形態では、図8に示すシーケンスに従ってRealVNCのセッションを通信装置19及び通信装置29間で確立する場合を例に説明したが、これに限定されない。例えば、図9に示すシーケンスに従い、RealVNCセッションを確立するようにしても構わない。図9は、会社Bの担当者bと、会社Aの担当者aとがTV電話を行い、その最中に通信装置29と通信装置19とを接続させる際の動作を示すシーケンス図である。
まず、シーケンスS91及びシーケンスS92により、VPN装置18とVPN装置28との間で、TV電話を利用するためのSIPセッションを確立する。
具体的には、VPN装置28から、VPN装置18の電話番号に対して発信する(シーケンスS91)。その際、VPN装置28は、音声(m=audio)及び映像(m=video)をメディアストリームとするモードで発信し、自分の電話番号(発番号)をNGNのSIP仕様に従って通知する。
担当者aは、VPN装置18により、着信に応答する操作を行う(シーケンスS92)。VPN装置18は、応答する際、VPN装置28の発番号を保持する。
次に、TV会議の中で資料を共有する必要が発生し、担当者bから担当者aへ、通信装置19と通信装置29との接続による資料の共有を口頭で依頼した後に、VPN装置18及びVPN装置28間でVPNを構築する処理をシーケンスS93〜シーケンスS910で説明する。
まず、担当者bは、通信装置19と通信装置29との接続を担当者aへ口頭で依頼する(シーケンスS93)。通信装置19と通信装置29との接続依頼を受けた担当者aは、通話相手が会社Bに所属しており、資料を開示してよい正当なユーザ(本例では担当者b)かどうかを「相手との会話内容」を参照して確認する(シーケンスS94)。もちろん、「相手との会話内容」による確認には、「相手の声」及び「(テレビ電話の場合は)相手の顔」等の事前に担当者aが入手可能なユーザ固有情報による確認も含まれる。
担当者aは、VPN装置18に、VPNが確立された際に仮想的に付与されるVPNIPアドレス、かつ、TCP:5900宛てのパケットを通信装置19へ転送する情報を保持させる(シーケンスS95)。ただし、本設定が有効になるのは後述するシーケンスS89以降である。なお、VPN装置18のWEBインタフェースを用い、転送先を保持する方法は上述した通りである。
続いて、VPN装置18,28は、確立されているSIPセッションにデータコネクトセッションを利用するためのメディアセッションを追加するためのメディアセッション追加処理を、シーケンスS96及びシーケンスS97で示すように、SIPを利用して実行する。
具体的には、VPN装置18は、VPN装置18,28間で確立されているTV電話セッションに、データ通信(m=aplication)をメディアストリームとして追加するように、VPN装置28へ、SIPで規定されるUPDATE及びReinvite等のメディア変更コマンドを送信する(シーケンスS96)。このとき、VPN装置18は、UDPによる通信を行う際の自装置の待受けIPアドレス及びポート番号「c.c.c.c:UDP:xxxx」を、NGNのSIP仕様に従って通知する。
VPN装置28は、VPN装置18からのメディア変更コマンドに対して応答する(シーケンスS97)。その際、VPN装置28は、自動的に応答してもよい。また、VPN装置28は、VPN装置28に接続されるモニタにメディアを変更する旨を表示させ、表示内容に対して承諾する内容の操作に従って応答してもよい。VPN装置28は、応答する際、UDPによる通信を行う際のVPN装置18の待受けIPアドレス及びポート番号「c’.c’.c’.c’:UDP:x’x’x’x’」を保持する。VPN装置28は、ここで応答する際に、UDPによる通信を行う際の自分側の待受けIPアドレス及びポート番号「d.d.d.d:UDP:yyyy」を通知する。VPN装置18は、VPN装置28の受付けIPアドレス及びポート番号「d’.d’.d’.d’:UDP:y’y’y’y’」を受け取り保持する。
SIPセッションにメディアセッションが追加されると、VPN装置28は、シーケンスS98及びシーケンスS99により、VPNサーバを起動させる。なお、VPNのクライアント側となり、VPN確立処理を開始するのは、相手のLANに通信装置を公開する設定を行う側である。そのため、VPN装置18側が、VPNの確立要求側となる。よって、要求を受けるVPN装置28側でのみVPNサーバを起動させる必要がある。
具体的には、VPN装置28は、シーケンスS91で発信した自装置の電話番号「0123456789」を、VPNパスワード(共有認証情報)として設定する(シーケンスS98)。
続いて、VPN装置28は、VPNサーバを起動する(シーケンスS99)。ここで、VPNサーバの起動は無条件ではない。VPN装置28は、VPN接続を許容する電話番号を、装置内の図示しない記憶領域に保持している。VPN装置28は、シーケンスS91で入力される着番号が記憶領域に保持されている場合、VPNサーバを立ち上げる。
サーバを立ち上げる際に必要な情報は、「VPN接続先IPアドレス」及び「UDPポート番号」、「PPPユーザ名」、並びに、「PPPパスワード」である。VPN装置28は、シーケンスS96において、「VPN接続先IPアドレス」を「c.c.c.c」として取得済みであり、「UDPポート番号」を「xxxx」として取得済みである。また、PPPユーザ名は、VPN装置28において固定値「user」として組み込まれている。また、VPN装置28は、シーケンスS98でそれぞれ示すように、「PPPパスワード」を「0123456789」として取得済みである。VPN装置28は、上記をパラメータとして、UDPの標準ポート番号:1701ではなく、UDPポート番号:yyyyを用いて、L2TPのVPNサーバを立ち上げる。
VPN装置18は、VPN装置28でVPNサーバが起動されると、VPN接続先IPアドレス「d.d.d.d」及びUDPポート番号「yyyy」、PPPユーザ名「user」、並びに、共有認証情報「0123456789」をパラメータとして、VPN装置28に対してVPN確立処理を開始する(シーケンスS910)。VPN確立処理の中では、共有認証情報の認証、並びに、自VPNIPアドレス及び相手VPNIPアドレスについてのネゴシエーション等を行い、L2TPによるVPNを確立する。
なお、確立されたVPNを利用してLAN24内から通信装置19へトンネルを確立する処理は、図8におけるシーケンスS89〜シーケンスS813と同様である。また、通信装置19と通信装置29との間でRealVNCセッションを確立する処理は、図8におけるシーケンスS814〜シーケンスS816と同様である。
また、TV会議が終了すると、担当者a及び担当者bは、電話を切断する(シーケンスS817)。電話が切断されると、VPNはデータコネクトのデータ通信に紐づいているので、VPNも同時に切断される。
なお、この発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
また、本発明の通信システムは、コンピュータとプログラムによっても実現でき、プログラムを記録媒体に記録することも、ネットワークを通して提供することも可能である。