JP2007074172A - プライベートネットワーク間接続システム及びアドレス変換装置 - Google Patents

プライベートネットワーク間接続システム及びアドレス変換装置 Download PDF

Info

Publication number
JP2007074172A
JP2007074172A JP2005257171A JP2005257171A JP2007074172A JP 2007074172 A JP2007074172 A JP 2007074172A JP 2005257171 A JP2005257171 A JP 2005257171A JP 2005257171 A JP2005257171 A JP 2005257171A JP 2007074172 A JP2007074172 A JP 2007074172A
Authority
JP
Japan
Prior art keywords
address
port number
private
server terminal
translation device
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
JP2005257171A
Other languages
English (en)
Inventor
Satoshi Iino
聡 飯野
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 Holdings Corp
Original Assignee
Matsushita Electric Industrial Co 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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2005257171A priority Critical patent/JP2007074172A/ja
Publication of JP2007074172A publication Critical patent/JP2007074172A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】 グローバルネットワークを介したプライベートネットワーク間の通信においてもDNSキャッシュを利用した通信が行えるようにすること。
【解決手段】 プライベートネットワーク101を配下に持つアドレス変換装置A104は、クライアント端末107からサーバ端末110のアドレスを問い合わせるDNSクエリを受けて、サーバ端末110とのTCP通信に用いる送信元ポート番号群を割り当て、それをアドレス変換装置B105に通知して共有する。その結果、一度、DNS処理でのアドレス解決が行われると、クライアント端末107では、その後はDNSクエリを送ることなく、複数のTCPセッションでの通信が可能になる。したがって、クライアント端末は、通常のDNSキャッシュを使用することができる。
【選択図】 図1

Description

本発明は、グローバルネットワークを介して接続されるプライベートネットワーク間の通信を実現するプライベートネットワーク間接続システム及びプライベートネットワークとグローバルネットワークとを接続するアドレス変換装置に関する。
現在広く使用されているインターネット技術において使われているIP(インターネットプロトコル)は、パケットと呼ばれる情報要素一つ一つに世界中で一元的に管理されているIPアドレスと呼ばれるアドレスを割り当てて通信を行うことができる。そのため、電話のようなコネクションを確立する手段が必要なく、安価で大容量の通信が可能となった。
しかし、現在広く使用されているIPv4では、32ビットのアドレス空間を持っているが、世界中のホストを接続するのに十分なアドレス空間を持っているとはいえない。そのため、128ビットのアドレス空間を持つIPv6の普及が図られているが、未だ十分広まっているとは言いがたい。
現在のIPv4のネットワーク構成では、全世界で一元的に管理されているグローバルIPアドレスで構成されたグローバルネットワークと、グローバルネットワークとは異なるアドレス空間で管理されているプライベートIPアドレスで構成されたプライベートネットワークとが混在している。プライベートネットワークは、一般的には、家庭内や企業内で使用されるネットワークである。各プライベートネットワークでは、それぞれのネットワーク内において一元的なアドレス管理が行われ、異なるプライベートネットワーク間では、アドレス空間が重なってもよい。
このようなネットワーク構成において、グローバルネットワークとプライベートネットワークとの間の通信を行う場合には、グローバルネットワークとプライベートネットワークとの境界でアドレス変換(Network Address Transfer:NAT)装置が必要となる。NAT装置は、ネットワークの境界で、プライベートIPアドレスとグローバルIPアドレスとを相互に変換する。これによって、プライベートネットワーク内でグローバルIPアドレスが割り当てられていないホストでも、グローバルネットワークへの通信が可能となり、グローバルIPアドレスの節約が可能となる。また、複数のプライベートアドレスを一つのグローバルIPアドレスに割り当てるために、ポート番号とプライベートアドレスとを対応付けて変換するNAPT(Network Address Port Translation)という技術も存在する。
例えば、特許文献1では、NAPT技術を用いてグローバルネットワークを跨ったプライベートネットワーク間での通信を実現する技術が提案されている。以下、図34、図35を参照して、その概要を説明する。
図34は、従来のプライベートネットワーク間接続システムの構成例を示すシステム図である。図34において、グローバルネットワーク3400には、グローバルIPアドレスが「G1」であるルータA3401を介してプライベートネットワークA3402が接続され、グローバルIPアドレスが「G2」であるルータB3403を介してプライベートネットワークB3404が接続されている。
プライベートネットワークA3402には、IPアドレスが「A1」であるクライアント端末3405と、IPアドレスが「A2」であるサーバ端末3406とが接続されている。サーバ端末3406は、ドメイン名「PC10」を持つ。プライベートネットワークB3404には、IPアドレスが「B1」であるサーバ端末3407と、IPアドレスが「B2」であるサーバ端末3408とが接続されている。サーバ端末3407はドメイン名「PC20」を持ち、サーバ端末3408はドメイン名「PC21」を持つ。
ルータA3401は、DNS(Domain Name System)テーブル3409を備えている。ルータA3403は、DNSテーブル3410を備えている。このDNSテーブルには、サーバ端末の「ドメイン名」と「IPアドレス」と「予約ホスト名」との対応関係が記録されている。
プライベートネットワークB3404には、サーバ端末3407とサーバ端末3408の2台が接続されているので、ルータB3403では、サーバ端末3407には「サーバ01」の名前を与え、サーバ端末3408には「サーバ02」の名前を与えて統一管理する。これが「予約ホスト名」である。即ち、ルータB3403が備えるDNSテーブル3410には、サーバ端末3407の「ドメイン名:PC20」と「IPアドレス:B1」と「予約ホスト名:サーバ01」とが記録され、また、サーバ端末3408の「ドメイン名:PC21」とIPアドレス:B2」と「予約ホスト名:サーバ02」とが記録されている。
一方、プライベートネットワークA3402に接続されるサーバ端末はサーバ端末3406の1台のみであるので、ルータA3401が備えるDNSテーブル3409には、サーバ端末3406の「ドメイン名:PC10」と「IPアドレス:A2」とが記録され、「予約ホスト名」の記録はない。
図35は、各ルータが備えるポート番号予約テーブルの一例を示す図である。図35(1)はルータA3401が備えるポート番号予約テーブルを示し、図35(2)はルータB3403が備えるポート番号予約テーブルを示している。このポート番号予約テーブルは、「予約ホスト名」「プライベートポート番号」「内部予約ポート番号」「仮IPアドレス」「グローバルIPアドレス」の5項目で構成されている。
ルータA3401とルータB3403では、(1)(2)に示すように、「サーバ01」と「サーバ02」と通信するために、項目「予約ホスト名」と項目「内部予約ポート番号」には同じ内容が設定される。例えば、項目「予約ホスト名」に「サーバ01」「サーバ02」が設定され、項目「内部予約ポート番号」に「サーバ01」に対する4つの内部予約ポート番号「2001〜2004」と「サーバ02」に対する4つの内部予約ポート番号「2005〜2008」とが設定されている。つまり、ルータA3401とルータB3403とには、「サーバ01」との通信は、共に「2001〜2004」までの内部予約ポート番号を用いると定められている。
このように定めた内部予約ポート番号毎に「仮IPアドレス」が、ルータA3401では(1)に示すように「A11〜A18」と設定され、ルータB3403では(2)に示すように「B11〜B18」と設定されている。そして、DNSの処理過程で項目「グローバルIPアドレス」が追加記録され、その後の通信時に項目「プライベートポート番号」が追加記録されるようになっている。
図36は、図34に示すシステムで実施されるDNS動作及びTCP接続処理を説明するシーケンス図である。図36において、手順T3601では、IPアドレス「A1」のクライアント端末3405が、ルータA3401に対しドメイン名「PC20」を持つサーバ端末3407のIPアドレスを問い合わせるDNSクエリを送る。
手順T3602では、ルータA3401は、ドメイン名「PC20」を持つサーバ端末3407がルータB3403配下のネットワークに存在することを知っているので、ルータB3403に対しDNSクエリを送ってそのIPアドレスを問い合わせる。
手順T3603では、ルータB3403は、ドメイン名「PC20」に対する予約ホスト名「サーバ01」と自ルータB3403のグローバルIPアドレス「G2」を付したDNS応答をルータA3401に返送する。
手順T3604では、ルータA3401は、まず、受け取ったDNS応答の内容をポート番号予約テーブルの該当エントリに追加する(図37参照)。図37は、DNS処理時にエントリ追加したDNSテーブル及びポート番号予約テーブルを示す図である。図37(1)に示すように、図34に示したDNSテーブル3409に、ドメイン名「PC20」、IPアドレス「G2」、予約ホスト「サーバ01」が追加されている。また、図37(2)に示すように、図35(1)に示したポート番号予約テーブルでは、仮IPアドレス「A11」に対するグローバルIPアドレス「G2」が追加されている。
手順T3605では、ルータA3401は、各テーブルへの追記処理を終えると、クライアント端末3405に対し、問い合わせのドメイン名「PC20」のサーバ端末3407のIPアドレスを「仮IPアドレス:A11」としたDNS応答を返送する。
手順T3606では、クライアント端末3405は、割り当てられた仮IPアドレス「A11」に対するTCP通信処理を開始する。クライアント端末3405がルータA3401に送信するTCP(SYN)フレームには、送信元IPアドレス「A1」、送信先IPアドレス「A11」、送信元ポート番号「1024」、送信先ポート番号「23」が設定されている。
手順T3607では、ルータA3401は、受け取ったTCP(SYN)フレームに設定されている送信元ポート番号「1024」をポート番号予約テーブルの該当エントリに書き込む(図38参照)。図38は、TCP通信開始時にエントリ追加したポート番号予約テーブルを示す図である。図38に示すように、仮IPアドレス「A11」に対するプライベートポート番号「1024」が追加されている。
手順T3608では、ルータA3401は、ポート番号予約テーブルへの追記処理を終えると、そのポート番号予約テーブルに従って、送信元ポート番号とIPアドレスとを変換し、ルータB3403に対してTCP(SYN)フレームを送信する。TCP(SYN)フレームには、送信元IPアドレス「G1」、送信先IPアドレス「G2」、送信元ポート番号「2001」、送信先ポート番号「23」が設定されている。
手順T3609では、ルータB3403は、送信元ポート番号「23」に従って宛先サーバ端末3407のドメイン名「PC20」を割り出し、送信先IPアドレスを変換してサーバ端末3407に対しTCP(SYN)フレームを送出する。TCP(SYN)フレームには、送信元IPアドレス「G1」、送信先IPアドレス「B1」、送信元ポート番号「2001」、送信先ポート番号「23」が設定されている。
手順T3610では、サーバ端末3407は、ルータB3403から受け取ったTCP(SYN)フレームのアドレスを逆変換して応答フレーム(TCP(ACK/SYN))を返送する。TCP(ACK/SYN)には、送信元IPアドレス「B1」、送信先IPアドレス「G1」、送信元ポート番号「23」、送信先ポート番号「2001」が設定されている。
手順T3611では、ルータB3403は、サーバ端末3407から受け取った応答フレーム(TCP(ACK/SYN))のIPアドレスを調整してルータA3401に転送する。TCP(ACK/SYN)には、送信元IPアドレス「G2」、送信先IPアドレス「G1」、送信元ポート番号「23」、送信先ポート番号「2001」が設定されている。
手順T3612では、ルータA3401は、ルータB3403から受け取った応答フレーム(TCP(ACK/SYN))のIPアドレスとポート番号とをポート番号予約テーブルに従って調整し、クライアント端末3405に送信する。TCP(ACK/SYN)には、送信元IPアドレス「A11」、送信先IPアドレス「A1」、送信元ポート番号「1024」、送信先ポート番号「23」が設定されている。
以上のように、DNSフレームを利用して送信元ポート番号を二つのルータ間で共有することで、グローバルネットワーク3400を介したプライベートネットワークA3402、B3404間の通信が可能となる。
特開2000−341337号公報
しかしながら、上記特許文献1に記載の技術では、大きく3つの問題点がある。即ち、第一は、クライアント端末は、TCPセッションを張るたびにDNS要求を必ず行わなければならないということである。WEBブラウザ等の設定においてDNSキャッシュ時間をゼロにする必要がある。
ところが、DNSの問い合わせがセッション毎に必ず行われるので、複数のTCPセッションを同時に張るアプリケーションを利用した場合や、複数のサーバ端末に頻繁にアクセスするクライアント端末が多数存在するネットワークにおいては、DNSの問い合わせに対する処理によってDNSサーバの負荷が重くなる。また、DNSの問い合わせによるネットワーク負荷が重くなる。
第二は、サーバ端末のセッション毎にルータは仮IPアドレスを消費することになるので、プライベートネットワークの設計において多数の仮IPアドレスを用意しておく必要があるということである。このことは、プライベートネットワークの設計において大きな制約となっている。
第三は、通信相手のプライベートネットワーク内のホストが、相手先のグローバルIPアドレスを付加して返答するという仕様であるので、プライベートネットワーク内のホストのグローバル情報を隠蔽できないということである。セキュリティ上、プライベートネットワークのホスト間の通信では、お互いのグローバルIPアドレスを知らないで通信できるのが望ましい。
本発明は、かかる点に鑑みてなされたものであり、グローバルネットワークを介したプライベートネットワーク間の通信においてもDNSキャッシュを利用した通信を可能にするプライベートネットワーク間接続システム及びアドレス変換装置を提供することを目的とする。
また、本発明は、プライベートIPアドレスの消費を抑え、プライベートネットワーク設計における制約を軽減できるプライベートネットワーク間接続システム及びアドレス変換装置を提供することを目的とする。
さらに、本発明は、プライベートネットワークにおけるホスト間においてグローバルIPアドレスの隠蔽を可能にするプライベートネットワーク間接続システム及びアドレス変換装置を提供することを目的とする。
かかる課題を解決するために、本発明に係るプライベートネットワーク間接続システムは、プライベートネットワークとグローバルネットワークとの間にアドレス変換装置を配置し、一方のプライベートネットワークに存在するクライアント端末と他方のプライベートネットワークに存在するサーバ端末との間の前記グローバルネットワークを介した通信を実現するプライベートネットワーク間接続システムにおいて、前記一方のプライベートネットワークを配下に持つアドレス変換装置は、前記サーバ端末のプライベートIPアドレスの問い合わせに対するDNS処理において前記サーバ端末とのTCP通信に用いる送信元ポート番号群を割り当て、その割り当てた送信元ポート番号群と前記クライアント端末に通知したプライベートIPアドレスとを対応付けて保持する手段と、前記サーバ端末とのTCP通信処理において配下に属するクライアント端末のTCPセッション毎に前記送信元ポート番号群の中の1つと前記クライアント端末が設定したポート番号とを対応付けて管理する手段とを具備し、前記他方のプライベートネットワークを配下に持つアドレス変換装置は、前記一方のプライベートネットワークを配下に持つアドレス変換装置から通知を受けた前記送信元ポート番号群と前記サーバ端末のプライベートIPアドレスとを対応付けて保持する手段を具備する構成を採る。
本発明によれば、グローバルネットワークを介したプライベートネットワーク間の通信においてもDNSキャッシュを利用した通信が可能になる。また、プライベートネットワーク設計の制約を軽減することができる。また、アドレス装置間で送信元ポート番号群を共有するので、一方のプライベートネットワークに存在する全クライアント端末から他方ライベートネットワークに存在する1つのサーバ端末に対するTCP通信は同じプライベートIPアドレスを用いて行える。つまり、そのサーバ端末宛てのフレームに割り当てる送信先プライベートIPアドレスは当該一方のプライベートネットワーク内では1つでよいことになる。したがって、プライベートネットワーク内で予約用のアドレスを小さくすることができ、プライベートネットワーク設計の自由度を増やすことができる。
以下、本発明の実施の形態について図面を参照して詳細に説明する。
(実施の形態1)
図1は、本発明の実施の形態1に係るプライベートネットワーク間接続システムの全体構成を示すブロック図である。図1では、グローバルネットワーク100に3つのプライベートネットワークA101、B102、C103がアドレス変換装置A104、B105、C106を介してそれぞれ接続されている形態が示されている。
プライベートネットワークA101には、IPアドレス「A1」を持つクライアント端末107と、IPアドレス「A2」を持つクライアント端末108と、IPアドレス「A3」とドメイン名「aaa.com」とを持つサーバ端末109とが接続されている。
プライベートネットワークB102には、IPアドレス「B1」とドメイン名「bbb.com」とを持つサーバ端末110と、IPアドレス「B2」とドメイン名「ccc.com」とを持つサーバ端末111とが接続されている。
プライベートネットワークC103には、IPアドレス「C1」とドメイン名「ddd.com」とを持つサーバ端末112と、IPアドレス「C2」を持つクライアント端末113とが接続されている。
アドレス変換装置A104、B105、C106は、それぞれ、配下のプライベートアドレスが割り当てられたサーバ端末のIPアドレスとドメイン名とを対応付けたDNSテーブルを保持している。また、グローバルネットワーク100上に存在するDNSサーバ114は、全プライベートネットワークの各サーバ端末のドメイン名とそのサーバ端末が属するプライベートネットワークのアドレス変換装置のグローバルIPアドレスとを対応付けたDNSテーブルを保持している。
なお、プライベートネットワークA101、B102、C103のそれぞれでは、それぞれ異なるアドレス体系を保持し、お互いのネットワーク間で同じアドレスを割り当ててもよい。
図2は、アドレス変換装置A104、B105、C106の構成例を示すブロック図である。図2に示すように、各アドレス変換装置は、プライベートネットワークへの入出力を行うプライベート側入出力部201と、グローバルネットワークへの入出力を行うグローバル側入出力部202と、フレームの転送を行うフレーム転送部203と、テーブルに従ってアドレスとポート番号との変換を行うアドレス変換部204と、DNSの解決等を行うDNS処理部205と、セッション情報を記録しておくセッション学習テーブル206と、ホストのアドレス情報とポート情報とを対応付けるホスト−ポート対応テーブル207と、サーバ端末のIPアドレスとドメイン名とを対応付けるDNSテーブル208とを備えている。
図3は、図2に示すDNSテーブル及びホスト−ポート対応テーブルの具体的な構成例を説明する図である。DNSテーブル208は、図3(1)に示すように、「ドメイン名」「プライベートIP」の2項目で構成される。項目「ドメイン名」には、配下のプライベートネットワークに存在するサーバ端末のドメイン名が記入される。項目「プライベートIP」には、配下のプライベートネットワークに存在するサーバ端末のプライベートIPが記入される。図3(1)では、アドレス変換装置A104でのDNSテーブル208の構成例が示されている。即ち、プライベートネットワークA101に接続されるサーバ端末109の「ドメイン名:aaa.com」と「プライベートIP:A3」とが示されている。
ホスト−ポート対応テーブル207は、図3(2)に示すように、「ドメイン名」「送信元G−IP」「送信先G−IP」「送信元ポート番号範囲」「送信先P−IP」の5項目で構成される。
・項目「ドメイン名」には、配下以外のプライベートネットワークに存在するサーバ端末のドメイン名が記入される。
・項目「送信元G−IP」には、送信元のクライアント端末が存在するプライベートネットワークに割り当てられているグローバルIPアドレスが記入される。
・項目「送信先G−IP」には、配下以外のプライベートネットワークに存在するサーバ端末が存在するプライベートネットワークに割り当てられているグローバルIPアドレスが記入される。
・項目「送信元ポート番号範囲」には、配下以外のプライベートネットワークに存在するサーバ端末との通信に割り当てる送信元ポート番号の範囲が記入される。
・項目「送信先P−IP」には、配下以外のプライベートネットワークに存在するサーバ端末に割り当てたそのプライベートネットワーク内で用いる仮想的なIPアドレスが記入される。
図4は、図1に示す各ネットワークにおけるDNSテーブルの初期状態を説明する図である。なお、図1に示す接続システムでは、前提として、それぞれの端末にはIPアドレスが既に割り当てられている。また、各端末を管理するDNSサーバ114には、各々に属するアドレス変換装置のプライベートアドレスが割り当てられている。それらは手動設定でもよいし、DHCP(Dynamic Host Configuration Protocol)による自動設定でもよい。
即ち、DNSサーバ114が備えるDNSテーブル401には、予め、項目「ドメイン名」に、サーバ端末109のドメイン名「aaa.com」と、サーバ端末110のドメイン名「bbb.com」と、サーバ端末111のドメイン名「ccc.com」と、サーバ端末112のドメイン名「ddd.com」とが記入されている。また、項目「グローバルIP」に、アドレス変換装置A104のグローバルIPアドレス「G1」と、アドレス変換装置B105のグローバルIPアドレス「G2」と、アドレス変換装置C106のグローバルIPアドレス「G3」とが配下のサーバ端末のドメイン名と対応付けて記入されている。
アドレス変換装置A104が備えるDNSテーブル402には、予め、項目「ドメイン名」にサーバ端末109のドメイン名「aaa.com」が記入され、項目「プライベートIP」にサーバ端末109のIPアドレス「A3」が記入されている。
アドレス変換装置B105が備えるDNSテーブル403には、予め、項目「ドメイン名」にサーバ端末110のドメイン名「bbb.com」とサーバ端末111のドメイン名「ccc.com」とが記入され、項目「プライベートIP」にサーバ端末110のIPアドレス「B1」とサーバ端末111のIPアドレス「B2」とが記入されている。
アドレス変換装置C106が備えるDNSテーブル404には、予め、項目「ドメイン名」にサーバ端末112のドメイン名「ddd.com」が記入され、項目「プライベートIP」にサーバ端末112のIPアドレス「C1」が記入されている。
このように、グローバルネットワーク100に存在するDNSサーバ114が備えるDNSテーブル401には、予め全てのサーバ端末のドメイン名とそのサーバ端末が存在するプライベートネットワークのアドレス変換装置のグローバルIPアドレスとの対応が設定されている。
また、それぞれのアドレス変換装置が備えるDNSテーブル208には、予め配下のサーバ端末のドメイン名とプライベートIPとの対応が設定されている。なお、各アドレス変換装置が備えるホスト−ポート対応テーブル207には初期エントリは存在しない。
次に、動作について説明する。まず、1つのクライアント端末と他のプライベートネットワークに属するサーバ端末との間での接続処理動作として、クライアント端末107(IPアドレス:A1)がサーバ端末110(ドメイン名:bbb.com、IPアドレス:B1)に接続し、TCP通信を行うまでの処理動作を説明する。
図5は、クライアント端末107が通信をしようとするサーバ端末110のIPアドレスを解決するDNS動作を説明するシーケンス図である。図5において、手順T501では、クライアント端末107が、アドレス変換装置A104に対しドメイン名「bbb.com」を持つサーバ端末110のIPアドレスを問い合わせるDNSクエリを送る。
手順T502と手順T503では、アドレス変換装置A104は、DNSクエリを受け取ると、ドメイン名「bbb.com」を持つサーバ端末110のエントリがホスト−ポート対応テーブル207に存在するか否かを調べ、ドメイン名「bbb.com」を持つサーバ端末110のエントリはホスト−ポート対応テーブル207に存在しないので、クライアント端末107から受け取ったDNSクエリを、自アドレス変換装置A104が返送先となるようにそのIPヘッダを変換してDNSサーバ114に転送する。
手順T504では、DNSサーバ114は、使用するIPアドレスとして、サーバ端末110が属するアドレス変換装置B105のグローバルIPアドレス「G2」を含めたDNS応答をアドレス変換装置A104に返送する。
手順T505では、アドレス変換装置A104は、DNSサーバ114から受け取ったグローバルIPアドレス「G2」を持つアドレス変換装置B105にポート範囲通知フレームを送る。ポート範囲通知フレームでは、送信先のドメイン名「bbb.com」、送信元のグローバルIPアドレス「G1」、今回通信で使用する送信元ポート番号範囲「2000−2999」がアドレス変換装置B105に通知される。
手順T506では、アドレス変換装置B105は、ポート範囲通知フレームを受信するとホスト−ポート対応テーブル207にエントリを追加する(図6参照)。なお、ポート範囲通知フレームのプロトコルは、ここでは特に規定しないが、例えば、SNMPやTelnet等のアプリケーションを使用して通知することができる。また、図5では、ポート範囲通知フレームへの応答は示してないが、アドレス変換装置B105は、ポート範囲通知フレーム受信時にその応答をアドレス変換装置A104に送ってもよい。
手順T507と手順T508では、アドレス変換装置A104は、DNS処理部205が、サーバ端末B110用にプライベートネットワークB102で使用する任意のIPアドレスを一つ割り当て、それを含めたDNS応答をクライアント端末107に返送する。図5では、クライアント端末107にIPアドレス「AX」を通知するとしている。
手順T509では、アドレス変換装置A104のDNS処理部205は、次に、クライアント端末107に通知したIPアドレス「AX」と送信元ポート番号の範囲「2000−2999」との対応をホスト−ポート対応テーブル207にセットする(図6参照)。
図6は、図5に示すDNS処理後の各ホスト−ポート対応テーブルの状態を説明する図である。図6に示すように、アドレス変換装置A104のホスト−ポート対応テーブル601には、DNS処理の結果、エントリが追加されている。即ち、項目「ドメイン名」にはサーバ端末110のドメイン名「bbb.com」が記入され、項目「送信元G−IP」にはアドレス変換装置A104のグローバルIPアドレス「G1」が記入され、項目「送信先G−IP」にはアドレス変換装置B105のグローバルIPアドレス「G2」が記入され、項目「送信元ポート番号範囲」には「2000−2999」が記入され、項目「送信先P−IPにはIPアドレス「AX」が記入されている。
また、ポート範囲通知フレームを受信したアドレス変換装置B105のホスト−ポート対応テーブル602においてもエントリが一つ追加されている。即ち、項目「ドメイン名」にはサーバ端末110のドメイン名「bbb.com」が記入され、項目「送信元G−IP」にはアドレス変換装置A104のグローバルIPアドレス「G1」が記入され、項目「送信先G−IP」にはアドレス変換装置B105のグローバルIPアドレス「G2」が記入され、項目「送信元ポート番号範囲」には「2000−2999」が記入される。そして、項目「送信先P−IP」には、ドメイン名「bbb.com」を用いてDNSテーブル208(403)から検索したサーバ端末110のプライベートIPアドレス「B1」が記入されている。
なお、「送信元ポート番号範囲」は、「2000−2999」としているが、そのポート番号の範囲の大きさについては、ここでは規定しない。送信元ポート番号は、1024以上のポート番号群の中から一意に割り当てることができる。また、ポート番号の集合を簡単のため、ポート番号の連続した範囲として扱い上限と下限を決めたパラメータを用いているが、ポート番号の集合は飛び飛びの番号で扱ってもよい。
以上のDNS動作によってクライアント端末107には、TCP通信をしようとするサーバ端末110のIPアドレスが、本来のIPアドレス「B1」ではなく、IPアドレス「AX」と認識される。この認識に基づいて、クライアント端末107は、サーバ端末110に対してTCP通信を要求し(図7、図8)、サーバ端末110がそれに対する応答処理を行う(図9)ことになる。
図7は、クライアント端末107がDNS動作によって解決したIPアドレスを用いてサーバ端末110にTCP通信を要求する手順を説明するシーケンス図である。図7において、手順T701では、クライアント端末107は、上記したDNS動作で解決したIPアドレス「AX」に対してTCP通信の要求を開始する。この場合、クライアント端末107は、送信するTCP通信要求フレームの、「送信元IPアドレス」に自クライアント端末107のIPアドレス「A1」を設定し、「送信先IPアドレス」に上記したIPアドレス「AX」を設定し、「送信元ポート番号」にクライアント端末107が任意に決定した番号「12411」を設定し、「送信先ポート番号」にサーバ端末110に要求するサービスを指定する番号「80」を設定する。
なお、「送信元ポート番号」は、各クライアント端末の中で一意に定まる番号として割り当てられている。ここでは、図示するように、「12411」としている。また、「送信先ポート番号」は、サーバ端末に要求するサービスによって異なる。例えば、WEBであれば80番、Telnetであれば23番というように、1024よりも小さい番号が割り当てられる。ここでは、図示するように、WEBサービスでの「80」としている。
手順T702では、アドレス変換装置A104は、クライアント端末107から上記TCP通信要求フレームを受信すると、アドレス変換部204が、DNSテーブル208(402)とホスト−ポート対応テーブル207(601)とに基づき、IPヘッダのアドレスとTCP/UDPのポート番号を次のように変換する。なお、詳細な変換規則は、変換規則1として後述する(図15参照)。
即ち、「送信元IPアドレス」はクライアント端末107のIPアドレス「A1」から自アドレス変換装置A104のグローバルIPアドレス「G1」に変換する。「送信先IPアドレス」はIPアドレス「AX」からアドレス変換装置B105のグローバルIPアドレス「G2」に変換する。「送信元ポート番号」は「12411」から「2000」に変換する。この送信元ポート番号「2000」は、ホスト−ポート番号対応テーブル601のエントリに対して、送信先P−IPが変換前の送信先IPアドレスにマッチするエントリの送信元ポート番号範囲から一意に選択して割り当てた番号である。「送信先ポート番号」の「80」は変換しない。
手順T703では、アドレス変換装置A104のアドレス変換部204が、セッション学習テーブル206にセッション情報を記録しておくために、変換後のグローバルネットワーク側の送信元ポート番号と、変換前のプライベートネットワーク側の送信元IPアドレスと送信元ポート番号との対応付けを行う(図8参照)。
図8は、図2に示すセッション学習テーブルの構成例及び追加されたエントリの例を示す図である。図8に示すように、図2に示すセッション学習テーブル206は、「グローバルポート番号」「プライベートIP」「プライベートポート番号」の3項目で構成される。各アドレス変換装置では、送信元ポート番号範囲「2000−2999」の間のポート番号を使用するので、項目「グローバルポート番号」には、送信元ポート番号範囲「2000−2999」の間のポート番号がセッション毎に一意に割り当てられている。そして、「プライベートIP」「プライベートポート番号」の2項目では、セッションが学習されるたびに取得された「プライベートIP」「プライベートポート番号」が、このセッション毎に割り当てられた送信元ポート番号に対応付けて追加記入される。今の例では、図8に示すように、送信元ポート番号「2000」に対し、項目「プライベートIP」にはクライアント端末107のIPアドレス「A1」が記入され、項目「プライベートポート番号」にはクライアント端末107が任意に設定した番号「12411」が記入されることとなる。
このように、セッション学習テーブル206では、学習によって、プライベートネットワークの全クライアント端末のセッションは、一意にグローバルネットワークのポート番号と対応づけが行われるので、TCPのセッション管理は、セッション学習テーブル206によってセッション毎に行うようになっている。
図7に戻って手順T704では、アドレス変換装置A104は、セッション学習テーブル206へのエントリ追加処理を終了すると、上記のように変換規則1によって変換した「送信元IPアドレス:G1」「送信先IPアドレス:G2」「送信元ポート番号:2000」と無変換の「送信先ポート番号:80」とによるTCP通信要求フレームをアドレス変換装置B105に送信する。
手順T705では、アドレス変換装置B105は、アドレス変換装置A104からTCP通信要求フレームを受信すると、アドレス変換部204が、次のようにしてサーバ端末110のIPアドレス「B1」を求める。即ち、受信したTCP通信要求フレームの「送信元IPアドレス:G1」と「送信先IPアドレス:G2」と「送信元ポート番号:2000−2999」とを元にDNSテーブル208(402)とホスト−ポート対応テーブル207(602)とを検索し、「送信元G−IP:G1」、「送信先G−IP:G2」及び「送信元ポート番号範囲:2000−2999」それぞれに合致するエントリを見つけ出す。そして、その見つけ出したエントリの「送信先P−IP:B1」を取り出して送信先IPアドレスに変換する。その他は、変換しない。なお、詳細な変換規則は、変換規則2として後述する(図16参照)。
手順T706では、アドレス変換装置B105は、上記の変換処理を終了すると、無変換の「送信元IPアドレス:G1」、変換した「送信先IPアドレス:B1」、無変換の「送信元ポート番号:2000」「送信先ポート番号:80」によるTCP通信要求フレームをサーバ端末110に送信する。
図9は、サーバ端末110がTCP通信を要求したクライアント端末107に応答を返送する手順を説明するシーケンス図である。図9において、手順T901では、サーバ端末110は、受信したTCP通信要求フレームの送信先と送信元とを入れ替えて「送信元IPアドレス:B1」「送信先IPアドレス:G1」「送信元ポート番号:80」「送信先ポート番号:2000」による応答フレームをアドレス変換装置B105に送信する。
手順T902では、アドレス変換装置B105は、サーバ端末110から応答フレームを受信すると、アドレス変換部204が、DNSテーブル208(403)とホスト−ポート対応テーブル207(602)とに基づきIPヘッダのアドレスとTCP/UDPポート番号を次のように変換する。なお、詳細な変換規則は、変換規則3として後述する(図17参照)。
即ち、「送信元IPアドレス」はサーバ端末110のIPアドレス「B1」からアドレス変換装置A104のグローバルIPアドレス「G2」に変換する。「送信先IPアドレス」は変換せずアドレス変換装置A104のグローバルIPアドレス「G1」のままとする。「送信元ポート番号」「送信先ポート番号」は変換せず「80」「2000」のままとする。
手順T903では、アドレス変換装置B105は、上記の変換処理を終了すると、変換した「送信元IPアドレス:G2」、無変換の「送信先IPアドレス:G1」「送信元ポート番号:80」「送信先ポート番号:2000」による応答フレームをアドレス変換装置A104に送信する。
手順T904では、アドレス変換装置A104は、アドレス変換装置B105から応答フレームを受信すると、アドレス変換部204が、ホスト−ポート対応テーブル601とセッション学習テーブル206(図8参照)とに基づき、IPヘッダのアドレスとTCP/UDPポート番号を次のように変換する。なお、詳細な変換規則は、変換規則4として後述する(図18参照)。
即ち、「送信元IPアドレス」は、ホスト−ポート対応テーブル601を参照して、アドレス変換装置B105のグローバルIPアドレス「G2」からクライアント端末107のIPアドレス「AX」に変換する。「送信先IPアドレス」は、ホスト−ポート対応テーブル601を参照して、アドレス変換装置A104のグローバルIPアドレス「G1」からクライアント端末107のIPアドレス「A1」に変換する。「送信元ポート番号」は変換せずそのまま「80」とする。「送信先ポート番号」は、セッション学習テーブル206(図8参照)に基づき、番号「2000」から番号「12411」に変換する。
手順T905では、アドレス変換装置A104は、上記の変換処理を終了すると、変換した「送信元IPアドレス:AX」「送信先IPアドレス:A1」、無変換の「送信元ポート番号:80」、変換した「送信先ポート番号:12411」による応答フレームをクライアント端末107に送信する。
以上のように、任意のクライアント端末は、DNSによって解決したIPアドレス「AX」を宛先とした任意のサーバ端末とTCP通信を行うことができる。図8にて説明したように、その1対1のTCP通信が行われる過程で、各アドレス変換装置のセッション学習テーブル206では、学習によって、クライアント端末のセッションとグローバルネットワークのポート番号との対応づけが行われる(図10参照)。
図10は、セッション学習テーブルが複数のセッションを管理している例を示す図である。図10では、アドレス変換装置A104のセッション学習テーブル206の内容が示されている。図10において、グローバルポート番号「2000」に対し、項目「プライベートIP」にはクライアント端末107のIPアドレス「A1」が記入され、項目「プライベートポート番号」にはクライアント端末107が任意に設定した番号「12411」が記入されている。これは、図7に示したTCP通信要求手続きの過程で学習されたものである。グローバルポート番号「2001」「2002」に対しても、同様のTCP通信要求手続きの過程で学習された「プライベートIP」「プライベートポート番号」が記入されている。即ち、グローバルポート番号「2001」に対し、項目「プライベートIP」にはクライアント端末107のIPアドレス「A1」が記入され、項目「プライベートポート番号」にはクライアント端末107が任意に設定した番号「12412」が記入されている。また、グローバルポート番号「2002」に対し、項目「プライベートIP」にはクライアント端末108のIPアドレス「A2」が記入され、項目「プライベートポート番号」にはクライアント端末108が任意に設定した番号「34567」が記入されている。
次に、図11は、各アドレス変換装置のセッション学習テーブル206に記入された複数のクライアント端末や複数のセッションが1つのサーバ端末に一度にTCP通信を要求する場合の手順を説明するシーケンス図である。図11では、アドレス変換装置104のセッション学習テーブル206に図10に示すように記入されたクライアント端末107が2つの通信サービス要求を、クライアント端末108が1つの通信サービス要求を、それぞれ共通のアドレス変換装置A104を介してアドレス変換装置B105の配下に属するサーバ端末に110に送信する場合の手順が示されている。
この場合には、クライアント端末107、108では、既にサーバ端末に110のIPアドレス「AX」を保持している。また、アドレス変換装置A104、B105では、ホスト−ポート対応テーブル207やセッション学習テーブル206に必要なエントリが追加されている。したがって、クライアント端末107、108では、DNS動作をすることなくTCP通信の要求を開始することができる。
即ち、図11において、手順T1100では、クライアント端末107は、送信するTCP通信要求フレームの、「送信元IPアドレス」に自クライアント端末107のIPアドレス「A1」を設定し、「送信先IPアドレス」にIPアドレス「AX」を設定し、「送信元ポート番号」にクライアント端末107が任意に決定した番号「12411」を設定し、「送信先ポート番号」にサーバ端末110に要求するサービスを指定する番号「80」を設定する。
手順T1101では、アドレス変換装置A104は、アドレス変換部204が、DNSテーブル208、ホスト−ポート対応テーブル207及びセッション学習テーブル206を参照して、クライアント端末107から受信したTCP通信要求フレームを、「送信元IPアドレス:G1」「送信先IPアドレス:G2」「送信元ポート番号:2000」「送信先ポート番号:80」とするTCP通信要求フレームに変換し、アドレス変換装置B105に送る。
手順T1102では、アドレス変換装置B105は、アドレス変換部204が、DNSテーブル208、ホスト−ポート対応テーブル207及びセッション学習テーブル206を参照して、アドレス変換装置A104から受信したTCP通信要求フレームを、「送信元IPアドレス:G1」「送信先IPアドレス:B1」「送信元ポート番号:2000」「送信先ポート番号:80」とするTCP通信要求フレームに変換し、サーバ端末110に送る。
また、手順T1110では、クライアント端末107は、送信するTCP通信要求フレームの、「送信元IPアドレス」に自クライアント端末107のIPアドレス「A1」を設定し、「送信先IPアドレス」にIPアドレス「AX」を設定し、「送信元ポート番号」にクライアント端末107が任意に決定した番号「12412」を設定し、「送信先ポート番号」にサーバ端末110に要求するサービスを指定する番号「80」を設定する。
手順T1111では、アドレス変換装置A104は、アドレス変換部204が、DNSテーブル208、ホスト−ポート対応テーブル207及びセッション学習テーブル206を参照して、クライアント端末107から受信したTCP通信要求フレームを、「送信元IPアドレス:G1」「送信先IPアドレス:G2」「送信元ポート番号:2001」「送信先ポート番号:80」とするTCP通信要求フレームに変換し、アドレス変換装置B105に送る。
手順T1112では、アドレス変換装置B105は、アドレス変換部204が、DNSテーブル208、ホスト−ポート対応テーブル207及びセッション学習テーブル206を参照して、アドレス変換装置A104から受信したTCP通信要求フレームを、「送信元IPアドレス:G1」「送信先IPアドレス:B1」「送信元ポート番号:2001」「送信先ポート番号:80」とするTCP通信要求フレームに変換し、サーバ端末110に送る。
また、手順T1120では、クライアント端末108は、送信するTCP通信要求フレームの、「送信元IPアドレス」に自クライアント端末108のIPアドレス「A2」を設定し、「送信先IPアドレス」にIPアドレス「AX」を設定し、「送信元ポート番号」にクライアント端末107が任意に決定した番号「34567」を設定し、「送信先ポート番号」にサーバ端末110に要求するサービスを指定する番号「80」を設定する。
手順T1121では、アドレス変換装置A104は、アドレス変換部204が、DNSテーブル208、ホスト−ポート対応テーブル207及びセッション学習テーブル206を参照して、クライアント端末108から受信したTCP通信要求フレームを、「送信元IPアドレス:G1」「送信先IPアドレス:G2」「送信元ポート番号:2002」「送信先ポート番号:80」とするTCP通信要求フレームに変換し、アドレス変換装置B105に送る。
手順T1122では、アドレス変換装置B105は、アドレス変換部204が、DNSテーブル208、ホスト−ポート対応テーブル207及びセッション学習テーブル206を参照して、アドレス変換装置A104から受信したTCP通信要求フレームを、「送信元IPアドレス:G1」「送信先IPアドレス:B1」「送信元ポート番号:2002」「送信先ポート番号:80」とするTCP通信要求フレームに変換し、サーバ端末110に送る。
次に、図12は、複数のプライベートネットワークのクライアント端末がそれぞれサーバ端末に接続するときのホスト−ポート対応テーブルの保持状態を説明する図である。図12では、クライアント端末107がサーバ端末110とサーバ端末111とに接続し、クライアント端末113がサーバ端末110に接続している場合が示されている。
即ち、アドレス変換装置A104のホスト−ポート対応テーブル1201では、サーバ端末110のドメイン名「bbb.com」に対する「送信元G−IP:G1」「送信先G−IP:G2」「送信元ポート番号範囲:2000−2999」「送信先P−IP:AX」と、サーバ端末111のドメイン名「ccc.com」に対する「送信元G−IP:G1」「送信先G−IP:G2」「送信元ポート番号範囲:3000−3999」「送信先P−IP:AY」とが保持されている。
また、アドレス変換装置C106のホスト−ポート対応テーブル1202では、サーバ端末110のドメイン名「bbb.com」に対する「送信元G−IP:G3」「送信先G−IP:G2」「送信元ポート番号範囲:2500−3499」「送信先P−IP:CX」が保持されている。
そして、アドレス変換装置B105のホスト−ポート対応テーブル1203では、サーバ端末110のドメイン名「bbb.com」に対する「送信元G−IP:G1」「送信先G−IP:G2」「送信元ポート番号範囲:2000−2999」「送信先P−IP:B1」と、サーバ端末110のドメイン名「bbb.com」に対する「送信元G−IP:G3」「送信先G−IP:G2」「送信元ポート番号範囲:2500−3499」「送信先P−IP:B1」と、サーバ端末111のドメイン名「ccc.com」に対する「送信元G−IP:G1」「送信先G−IP:G2」「送信元ポート番号範囲:3000−3999」「送信先P−IP:B2」とが保持されている。
このように、各アドレス変換装置では、「送信元ポート番号範囲」と「送信元G−IP」とを共有しているので、アドレス変換装置B105では、グローバルネットワーク100からの受信フレームのサーバ端末への転送処理が容易になる。図12の例で言えば、アドレス変換装置B105では、受信フレームの「送信元G−IP」が「G1」で、「送信元ポート番号範囲」が2000−2999の範囲内ならば、その受信フレームをIPアドレス「B1」を持つサーバ端末110に転送する。また、受信フレームの「送信元G−IP」が「G3」で、「送信元ポート番号範囲」が2500−3499の範囲内ならば、その受信フレームをIPアドレス「B1」を持つサーバ端末110に転送する。また、受信フレームの「送信元G−IP」が「G1」で、「送信元ポート番号範囲」が3000−3999の範囲内ならば、その受信フレームをIPアドレス「B2」を持つサーバ端末111に転送することができる。
以上のようにして、あるプライベートネットワーク内のクライアント端末(ホスト)と別のプライベートネットワーク内のサーバ端末との間のTCP通信が行われる。次に、上記の動作を実現するアドレス変換装置において行われる各種の処理動作ついて詳細に説明する。
図13は、アドレス変換装置が備えるDNS処理部205の動作を説明するフローチャートである。図13において、ステップ(以降単に「ST」と略記する)1300では、受信フレームがDNSクエリフレームとポート範囲通知フレームの何れであるかを判断する。ST1300の判断の結果、受信フレームがクライアント端末からのDNSクエリフレームであるときはST1301に進み、DNSクエリフレームのドメイン名にマッチするエントリがDNSテーブル208に存在するか否かを調べる。
その結果、DNSクエリフレームのドメイン名にマッチするエントリがDNSテーブル208に存在する場合(ST1301:Yes)は、当該DNSクエリでクライアント端末が問い合わせるドメイン名を持つサーバ端末のIPアドレスとして、DNSテーブル208に存在するエントリのIPアドレスを含めたDNS応答フレーム作成し、クライアント端末に送信するためフレーム転送部203に渡す(ST1302)。
一方、DNSクエリフレームのドメイン名にマッチするエントリがDNSテーブル208に存在しない場合(ST1301:No)は、DNSクエリで要求するドメイン名を検索キーとして、ホスト−ポート対応テーブル207のドメイン名に一致するエントリを検索する(ST1303)。
その結果、該当エントリが存在する場合(ST1304:Yes)は、その一致する送信先P−IPを要求ドメイン名に対応するIPアドレスとするDNS応答フレームを作成し、フレーム転送部203に渡す(ST1305)。
一方、該当エントリが存在しない場合(ST1304:No)は、クライアント端末から受信したDNSクエリを、そのIPヘッダの送信元IPアドレスを自アドレス変換装置のグローバルIPアドレスとし、送信先IPアドレスをDNSサーバ114のIPアドレスとしてDNSサーバ114に転送し、DNSサーバ114から名前解決対象サーバ端末が存在するプライベートネットワークのグローバルIPアドレス「※1」を取得する(ST1306)。
次のST1307では、ホスト−ポート対応テーブル207に新規エントリとして、「ドメイン名」「送信元G−IP」「送信先G−IP」「送信元ポード番号範囲」「送信先P−IP」の項目を持つエントリを追加する。
ここで、「ドメイン名」はクライアント端末から受信したDNSクエリから得る。「送信元G−IP」は自アドレス変換装置のグローバルIPアドレスである。「送信先G−IP」は上記したグローバルIPアドレス「※1」である。「送信元ポード番号範囲」は未使用のポート番号群の中から一定の範囲で割り当てたポード番号範囲である。「送信先P−IP」は自アドレス変換装置が管理しているプライベートIPアドレス群の中から未使用のアドレスを一つ割り当てたIPアドレスである。これを「※2」とする。
このホスト−ポート対応テーブル207における追加において新規に追加する範囲がどの範囲かは重要でないので、規定しない。重要なのは、そのホスト−ホスト対応テーブル207のエントリに既に割り当てられているポート番号範囲以外のポート番号の範囲を割り当てることである。
次のST1308では、ホスト−ポート対応テーブル207に新規に追加されたエントリの情報「ドメイン名」「送信元G−IP」「送信元ポード番号範囲」を含むポート範囲通知フレームを作成し、上記したグローバルIPアドレス「※1」を持つアドレス変換装置に転送するためにフレーム転送部203に渡す。
次のST1309では、「送信先P−IP」に割り当てた上記したIPアドレス「※2」を要求ドメイン名に対応するIPアドレスとしてDNS応答フレームを作成し、クライアント端末に返送するために、フレーム転送部203に渡す。
また、上記ST1300において、受信フレームが他のアドレス変換装置からのポート範囲通知フレームの場合は、次のようにしてホスト−ポート対応テーブルにエントリ「ドメイン名」「送信元G−IP」「送信先G−IP」「送信元ポート番号範囲」「送信先P−IP」を1つ追加する(ST1310)。
即ち、追加するエントリ「ドメイン名」「送信元G−IP」「送信先G−IP」「送信元ポート番号範囲」「送信先P−IP」のうち、「ドメイン名」「送信元G−IP」「送信元ポート番号範囲」は受信したポート範囲通知フレームから取得して設定し、「送信先G−IP」は自アドレス変換装置のグローバルIPアドレスを設定し、「送信先P−IP」はDNSテーブル208を検索して見つけたドメイン名と一致する該当エントリの「プライベートIP」を割り当てる。
次に、図14は、図2に示すアドレス変換装置が備えるアドレス変換部の動作を説明するフローチャートである。図14において、アドレス変換部204では、フレーム転送部203から受信フレームの入力を監視し(ST1400)、受信フレームの入力があると(ST1400:Yes)、プライベートネットワークとグローバルネットワークの何れからの受信フレームであるかを判断する(ST1401)。
その結果、プライベートネットワーク側からの受信フレームであるときは、宛先IPアドレスを調べ(ST1402)、宛先IPアドレスがプライベートアドレスであるときは(ST1402:No)、当該受信フレームを変換規則1(図15参照)によって変換(ST1403)する一方、宛先IPアドレスがグローバルIPアドレスであるときは(ST1402:Yes)、当該受信フレームを変換規則3(図17参照)によって変換する(ST1404)。
また、ST1401での判断結果、グローバルネットワーク側からの受信フレームであるときは、宛先ポート番号がウェルノウンポート(well-known ports)であるか否か調べ(ST1405)、宛先ポート番号がウェルノウンポートであるときは(ST1405:Yes)、変換規則2(図14参照)によって変換し(ST1406)、宛先ポート番号がウェルノウンポートでないときは(ST1405:No)、変換規則4(図18参照)によって変換する(ST1407)。そして、それらの変換規則にて変換した受信フレームを該当する宛先に送信するためフレーム転送部203に渡す(ST1408)。次に、図15〜図18を参照して、上記変換規則1〜4について説明する。
図15は、図14に示す変換規則1の内容を説明するフローチャートである。図15において、受信したフレームの送信元IPアドレスと送信元ポート番号とが、セッション学習テーブル206のプライベートIPとプライベートポート番号とにそれぞれ一致するエントリが存在するか否かを検索する(ST1500)。上記のエントリが存在する場合は(ST1501:Yes)、受信フレームの送信先ポート番号をセッション学習テーブル206の該当エントリの「グローバルポート番号」に変更し(ST1502)、ST1505に進む。
一方、上記のエントリが存在しない場合は(ST1501:No)、受信したフレームの送信元IPアドレスとホスト−ポート対応テーブル207の「送信元P−IP」とが一致するエントリを検索し、セッション学習テーブル206の項目「グローバルポート番号」にその該当エントリの送信元ポート番号の範囲の中で割り当てられていない番号を新たに一つ割り当て、項目「プライベートIP」に受信フレームの送信先IPアドレスを設定し、項目「プライベートポート番号」に受信フレームの送信元ポート番号を設定してエントリを1つ追加する(ST1503)。
そして、受信フレームの送信元ポート番号を、上記のようにセッション学習テーブル206の新しく作成したエントリの「グローバルポート番号」に変更し(ST1504)、ST1505に進む。
ST1505では、ホスト−ポート対応テーブル207のエントリの中で、受信フレームの送信先IPアドレスと一致する「送信先P−IP」を持つエントリを検索し、送信元IPアドレスを「送信元G−IP」に変更し、送信先IPアドレスを「送信先G−IP」に変更する。
次に、図16は、図14に示す変換規則2の内容を説明するフローチャートである。図16において、ST1600(変換規則2)では、受信フレームの送信先IPアドレスを次のように変換する。即ち、受信フレームの送信元IPアドレスと送信元ポート番号とを元にホスト−ポート対応テーブル207を検索し、送信元グローバルIPと送信元ポート番号範囲とがそれぞれ一致するエントリの「送信先P−IP」にフレームの送信先IPアドレスを変更する。
次に、図17は、図14に示す変換規則3の内容を説明するフローチャートである。図17において、ST1700(変換規則3)では、受信フレームの送信元IPアドレスを自装置のグローバルIPアドレスに変更する。
次に、図18は、図14に示す変換規則4の内容を説明するフローチャートである。図18において、ST1800では、受信フレームの送信先IPアドレスと送信先ポート番号を次のように変更する。即ち、受信フレームの送信先ポート番号を元にセッション学習テーブル206を検索し、グローバルポート番号に一致するエントリの「プライベートIP」に受信フレームの送信先IPアドレスを変更し、そのエントリの「プライベートポート番号」に受信フレームの送信先ポート番号を変更する。
次いでST1801では、受信フレームの送信元IPアドレスを次のように変更する。即ち、受信フレームの送信元ポート番号を元にホスト−ポート対応テーブル207を検索し、送信元ポート番号に一致するエントリの「送信先P−IP」に受信フレームの送信元IPアドレスを変更する。
次に、図19は、図2に示すアドレス変換装置が備えるフレーム転送部の動作を説明するフローチャートである。図19において、フレーム転送部203は、フレームの入力有無を監視し(ST1900)、フレーム入力があると(ST1900:Yes)、アドレス変換部204やDNS処理部205からのフレーム入力であるか、プライベート側入出力部201やグローバル側入出力部202からのフレーム入力であるかを調べる(ST1901)。
アドレス変換部204またはDNS処理部205からのフレーム入力である場合は(ST1901:Yes)、送信先IPアドレスを確認し、プライベートネットワークに送出する場合はプライベート側入出力部201へ転送し、グローバルネットワークに送出する場合はグローバル側入出力部202へ転送する(ST1902)。
一方、プライベート側入出力部201やグローバル側入出力部202からのフレーム入力である場合は(ST1901:No)、プライベート側入出力部201とグローバル側入出力部202の何れからのフレーム入力であるかを調べる(ST1903)。そして、プライベート側入出力部201からのフレーム入力である場合は(ST1903:Yes)、その入力フレームがDNSフレームであるか否かを調べる(ST1904)。また、グローバル側入出力部202からのフレーム入力である場合は(ST1903:No)、その入力フレームがポート範囲通知フレームであるか否かを調べる(ST1905)。
その結果、DNSフレームである場合(ST1904:Yes)、または、ポート範囲通知フレームでない場合(ST1905:No)は、その入力フレームをアドレス変換部204へ転送する(ST1906)。また、DNSフレームでない場合(ST1904:No)、または、ポート範囲通知フレームである場合(ST1905:Yes)は、その入力フレームをDNS処理部205へ転送する(ST1907)。
以上のように、実施の形態1によれば、DNSクエリを受信したアドレス変換装置は、送信元ポート範囲を決めて相手のアドレス変換装置に通知するようにしたので、DNS動作によって一旦アドレス解決が行われると、その後は、クライアント端末はDNSクエリを送信することなく複数のTCPセッションでの通信が可能となる。その結果、通常のDNSキャッシュを使用することができるので、ネットワークとクライアント端末との負荷が軽減される。
また、あるプライベートネットワークのクライアント端末から、他のプライベートネットワークのサーバ端末に対するDNS解決が行われ、アドレス変換装置間で送信元ポート番号範囲が共有できた場合、そのプライベートネットワーク全てのクライアント端末から上記したサーバ端末に対する通信は、同じプライベートIPを用いて行えるので、そのサーバ端末宛のフレームに割り当てる送信先プライベートアドレスはそのプライベートネットワーク内では一つでよい。そのため、プライベートネットワーク内で予約用のアドレスを小さくできるので、アドレス設計の自由度を増加させることができる。
(実施の形態2)
図20は、本発明の実施の形態2に係るプライベートネットワーク間接続システムにおいてクライアント端末が通信をしようとするサーバ端末のIPアドレスを解決するDNS動作を説明するシーケンス図である。なお、図20では、図5(実施の形態1)に示した構成要素及び手順と同一ないしは同等である構成要素及び手順には同一の符号が付されている。ここでは、本実施の形態2に関わる部分を中心に説明する。
図20に示すように、本実施の形態2に係るプライベートネットワーク間接続システムでは、図5(実施の形態1)に示した構成において、アドレス変換装置A104、B105に代えたアドレス変換装置A2001、B2002が配置されている。
図21は、図20に示すアドレス変換装置A2001、B2002が備えるホスト−ポート対応テーブルの構成を示す図である。図21に示すように、本実施の形態2では、ホスト−ポート対応テーブルのエントリに項目「送信元P−IP」が追加されている。項目「送信元P−IP」は、配下以外のプライベートネットワークに存在するサーバ端末との通信において送信元アドレスに割り当てるプライベートアドレスであり、サーバ端末側のアドレス変換装置が割り当てる。
即ち、図20に示すように、サーバ端末110側のアドレス変換装置B2002は、手順T505でのポート範囲通知フレームを受信したとき、ホスト−ポート対応テーブルにエントリを追加するが、そのときに、手順T2003として、項目「送信元P−IP」に、任意のプライベートIPアドレスを割り当てる(図22参照)。割り当て方は、ポート範囲通知フレームの送信元IPアドレス毎に一つずつIPアドレスを割り当てる。つまり、アドレス変換装置B2002がアドレス変換装置A2001以外のアドレス変換装置からポート範囲通知フレームを受信した場合は、別のプライベートアドレスを割り当てる。
図22は、DNS処理後のホスト−ポート対応テーブルの状態を説明する図である。図22において、クライアント端末107側であるアドレス変換装置A2001のホスト−ポート対応テーブル2201では、項目「送信元P−IP」には何も設定されず、図6に示したアドレス変換装置A104のホスト−ポート対応テーブル601と同じ設定内容である。これに対し、サーバ端末110側であるアドレス変換装置B2002のホスト−ポート対応テーブル2202では、項目「送信元P−IP」に、IPアドレス「BX」が設定されている。このIPアドレス「BX」は、アドレス変換装置A2001からのTCP通信がプライベートネットワークB102内に入るときに送信元アドレスに変換される。
図23は、クライアント端末がDNS動作によって解決したIPアドレスを用いてサーバ端末にTCP通信を要求する手順を説明するシーケンス図である。図23に示すように、クライアント端末107のTCP通信要求は、図7に示した手順T701〜手順T704によって、アドレス変換装置A2001からアドレス変換装置B2002に送信される。
手順2301では、アドレス変換装置B2002は、アドレス変換装置A2001からTCP通信要求を受信すると、アドレス変換部204が、次のようにしてサーバ端末110のIPアドレス「B1」と送信元IPアドレス「BX」を求める。即ち、受信したTCP通信要求フレームの「送信元IPアドレス:G1」と送信先IPアドレス:G2」と「送信元ポート番号:2000−2999」とを元にDNSテーブル208(402)とホスト−ポート対応テーブル207(2202)とを検索し、「送信元G−IP:G1」、「送信先G−IP:G2」及び「送信元ポート番号範囲:2000−2999」それぞれに合致するエントリを見つけ出す。そして、その見つけ出したエントリの「送信先P−IP:B1」を取り出して送信先IPアドレスに変換する。また、ホスト−ポート対応テーブル207(2202)の項目「送信元P−IP」からIPアドレス「BX」を取り出して「送信元IPアドレス:G1」を「送信元IPアドレス:BX」に変換する。その他は変換しない。なお、詳細な変換規則は、変換規則5として後述する(図26参照)。
手順T2302では、アドレス変換装置B2002は、上記の変換処理を終了すると、変換した「送信元IPアドレス:BX」「送信先IPアドレス:B1」、無変換の「送信元ポート番号:2000」「送信先ポート番号:80」によるTCP通信要求フレームをサーバ端末110に送信する。
次に、図24は、サーバ端末がTCP通信を要求したクライアント端末に応答を返送する手順を説明するシーケンス図である。図24において、手順T2401では、サーバ端末110は、受信したTCP通信要求フレームの送信先と送信元とを入れ替えて、「送信元IPアドレス:B1」「送信先IPアドレス:BX」「送信元ポート番号:80」「送信先ポート番号:2000」による応答フレームをアドレス変換装置B2002に送信する。
手順T2402では、アドレス変換装置B2002は、サーバ端末110から応答フレームを受信すると、アドレス変換部204が、DNSテーブル208(403)とホスト−ポート対応テーブル207(2202)とに基づきIPヘッダのアドレスとTCP/UDPポート番号を次のように変換する。なお、詳細な変換規則は、変換規則6として後述する(図27参照)。
即ち、「送信元IPアドレス」はサーバ端末110のIPアドレス「B1」から自アドレス変換装置B2002のグローバルIPアドレス「G2」に変換する。「送信先IPアドレス」はプライベートネットワークB102内用のIPアドレス「BX」からアドレス変換装置A2001のグローバルIPアドレス「G1」に変換とする。「送信元ポート番号」「送信先ポート番号」は変換せず「80」「2000」のままとする。
以降は、図9に示した手順T903〜手順T905が同様に行われ、サーバ端末110が送信するTCP通信応答フレームが要求元のクライアント端末107に伝達される。
次に、図25は、図20に示すアドレス変換装置が備えるアドレス変換部の動作を説明するフローチャートである。なお、図25では、図14(実施の形態1)に示した処理手順と同一ないしは同等である処理手順には同一の符号が付されている。ここでは、本実施の形態2に関わる部分を中心に説明する。
図25において、ST1401での判断結果、グローバルネットワーク側からの受信フレームであるときは、宛先ポート番号がウェルノウンポートであるか否か調べ(ST1405)、宛先ポート番号がウェルノウンポートでないときは(ST1405:No)、実施の形態1と同様の変換規則4(図18参照)によって変換する(ST1407)が、宛先ポート番号がウェルノウンポートであるときは(ST1405:Yes)、変換規則5(図26参照)によって変換する(ST2500)。
また、ST1401での判断結果、プライベートネットワーク側からの受信フレームであるときは、本実施の形態2では、宛先IPアドレスが追加項目「送信元P−IP」と同じエントリに存在するか否かを判断する(ST2501)。存在しない場合(ST2501:No)は、実施の形態1と同様の変換規則1による変換を行う(ST1403)が、存在する場合(ST2501:Yes)は、変換規則6(図27参照)によって変換する(ST2502)。
図26は、図25に示す変換規則5の内容を説明するフローチャートである。図26に示すように、変換規則5は、図16に示した変換規則2に、『一致するエントリの「送信元P−IP」を受信フレームの送信元IPアドレスとする処理(ST2600)が追加されている。
図27は、図25に示す変換規則6の内容を説明するフローチャートである。図27に示すように、変換規則6は、図17に示した変換規則3に、『受信フレームの送信元IPアドレスIPアドレスを変更する処理(ST2700)が追加されている。即ち、ST2700では、受信フレームの送信元IPアドレスIPアドレスを元にホスト−ポート対応テーブルを検索し、送信元P−IPと一致するエントリの「送信先G−IP」を受信フレームの送信先IPアドレスとする変換処理が行われる。
以上のように、実施の形態2によれば、サーバ端末側のプライベートネットワークではフレームにグローバルIPアドレスを載せずに、サーバ端末側のプライベートネットワークのアドレスに変換して送受信を行うので、実施の形態1の効果に加えて、プライベートネットワークにいるクライアント端末(ホスト)からグローバルネットワークを隠蔽することができる。グローバルIPアドレスが隠蔽されるので、相手先端末がどのグローバルネットワークに属しているかを隠蔽でき、セキュリティ強度を向上することができる。
(実施の形態3)
図28は、本発明の実施の形態3に係るプライベートネットワーク間接続システムにおいて実施されるDNS動作を説明するシーケンス図である。図28では、図5(実施の形態1)に示したサーバ端末110に代えて、同じプライベートネットワークB102に存在するサーバ端末111が示されている。
即ち、本実施の形態3では、クライアント端末107が、図5(実施の形態1)に示したDNS動作によってサーバ端末110のIPアドレスを解決した後に、サーバ端末111のIPアドレスを解決する場合について説明する。図1(実施の形態1)に示したように、サーバ端末111のドメイン名は「ccc.com」であり、IPアドレスは「B2」である。
図28において、手順T2801では、クライアント端末107が、アドレス変換装置A104に対しドメイン名「ccc.com」を持つサーバ端末111のIPアドレスを問い合わせるDNSクエリを送る。
手順T2802と手順T2803では、アドレス変換装置A104は、新たなDNSクエリを受け取ると、ドメイン名「ccc.com」を持つサーバ端末111のエントリがホスト−ポート対応テーブル207に存在するか否かを調べ、ドメイン名「ccc.com」を持つサーバ端末111のエントリは存在しないので、クライアント端末107から受け取ったDNSクエリを、自アドレス変換装置A104が返送先となるようにそのIPヘッダを変換してDNSサーバ114に転送する。
手順T2804では、DNSサーバ114は、使用するIPアドレスとして、サーバ端末111が属するアドレス変換装置B105のグローバルIPアドレス「G2」を含めたDNS応答をアドレス変換装置A104に返送する。
手順T2805では、アドレス変換装置A104は、DNSサーバ114から受け取ったグローバルIPアドレス「G2」から、当該アドレス変換装置B105は、過去にサーバ110向けのポート範囲通知フレームを送って送信元ポート番号範囲「2000−2999」を予約したアドレス変換装置であることが判明する。今回は、同じプライベートネットワークB102に存在するサーバ端末111を対象とするので、新たに送信元ポート番号範囲の予約が必要になる。そこで、前回予約した送信元ポート番号範囲「2000−2999」の中に未使用の送信元ポート番号範囲があれば、その未使用の送信元ポート番号範囲を予約取消対象の送信元ポート番号範囲として選び出し、取り消した送信元ポート番号範囲をサーバ端末111向けに確保するようにしている。ここでは、使用済みの送信元ポート番号範囲「2500−2999」を選び出すとしている。
手順T2806では、アドレス変換装置A104は、まず、アドレス変換装置B105にポート範囲取消通知フレームを送る。ポート範囲取消通知フレームでは、送信元のグローバルIPアドレス「G1」と、取り消す送信元ポート番号範囲「2500−2999」とがアドレス変換装置B105に通知される。なお、取り消し対象のサーバ端末のドメイン名は、必要に応じて通知される。即ち、今の例では、アドレス変換装置B105のホスト−ポート対応テーブル207に記載されているエントリは、図6に示したように、取り消し対象のサーバ端末110だけであるので、取り消し対象のサーバ端末110のドメイン名「bbb.com」の通知は不要としている。
手順T2807と手順2808では、アドレス変換装置B105は、ポート範囲取消通知フレームを受け取ると、ポート範囲通知取消応答フレームをアドレス変換装置A104に返送するとともに、ホスト−ポート対応テーブル207の項目「送信元ポート番号範囲」の書き換えを行う(図30参照)。
手順2809では、アドレス変換装置A104は、ポート範囲通知取消応答フレームを受け取ると、次に、アドレス変換装置B105にポート範囲通知フレームを送る。ポート範囲通知フレームでは、送信先のドメイン名「ccc.com」、送信元のグローバルIPアドレス「G1」、今回通信で使用する送信元ポート番号範囲「2500−2999」がアドレス変換装置B105に通知される。
手順T2810と手順T2811では、アドレス変換装置B105は、ポート範囲通知フレームを受信すると、ポート範囲応答フレームをアドレス変換装置A104に返送するとともに、ホスト−ポート対応テーブル207にエントリを追加する(図30参照)。
手順T2812と手順T2813では、アドレス変換装置A104は、ポート範囲通知応答フレームを受け取ると、DNS処理部205が、サーバ端末B111用にプライベートネットワークB102で使用する任意のIPアドレスを一つ割り当て、それを含めたDNS応答をクライアント端末107に返送する。図28では、クライアント端末107にIPアドレス「AY」を通知するとしている。
手順T2814では、アドレス変換装置A104のDNS処理部205は、次に、クライアント端末107に通知したIPアドレス「AY」と送信元ポート番号の範囲「2500−2999」との対応をホスト−ポート対応テーブル207にセットする(図29参照)。
以上のDNS動作によって、アドレス変換装置A104、B105の各ホスト−ポート対応テーブル207は、図29、図30に示すように、遷移する。なお、図28では、アドレス変換装置A104、B105との間では、別々のメッセージを使用してポード番号範囲の取り消しとその確保とを行う場合を示したが、ポード番号範囲の取り消しとその確保とを記載した1つのメッセージを使用するようにしてもよい。このようにすれば、手順の簡略化が図れる。
図29は、図28に示すDNS処理動作によるアドレス変換装置Aでのホスト−ポート対応テーブルの遷移状態を説明する図である。図29において、アドレス変換装置A104でのホスト−ポート対応テーブル207では、DNS処理前(1)は、図6に示したホスト−ポート対応テーブル601と同じ内容である。
これに対し、DNS処理後(2)では、1つエントリが追加されている。即ち、項目「ドメイン名」にはサーバ端末111のドメイン名「ccc.com」が記入され、項目「送信元G−IP」にはアドレス変換装置A104のグローバルIPアドレス「G1」が記入され、項目「送信先G−IP」にはアドレス変換装置B105のグローバルIPアドレス「G2」が記入され、項目「送信元ポート番号範囲」には「2500−2999」が記入され、項目「送信先P−IPにはIPアドレス「AY」が記入されている。そして、ドメイン名「bbb.com」での項目「送信元ポート番号範囲」では、「2000−2999」から「2000−2499」への変更が行われている。
図30は、図28に示すDNS処理動作によるアドレス変換装置Bでのホスト−ポート対応テーブルの遷移状態を説明する図である。図30において、アドレス変換装置B105でのホスト−ポート対応テーブル207では、DNS処理前(1)は、図6に示したホスト−ポート対応テーブル602と同じ内容である。
これに対し、DNS処理後(2)では、1つエントリが追加されている。即ち、項目「ドメイン名」にはサーバ端末111のドメイン名「ccc.com」が記入され、項目「送信元G−IP」にはアドレス変換装置A104のグローバルIPアドレス「G1」が記入され、項目「送信先G−IP」にはアドレス変換装置B105のグローバルIPアドレス「G2」が記入され、項目「送信元ポート番号範囲」には「2500−2999」が記入され、項目「送信先P−IP」にはIPアドレス「B2」が記入されている。そして、ドメイン名「bbb.com」での項目「送信元ポート番号範囲」では、「2000−2999」から「2000−2499」への変更が行われている。
以上のように、本実施の形態3によれば、配下のプライベートネットワークに存在するクライアント端末が他のプライベートネットワークの存在するサーバ端末のDNS解決を要求してきたとき、対象となるアドレス変換装置が過去にポート範囲通知フレームを送って送信元ポード番号範囲の予約を行ったアドレス変換装置であり、前回予約した送信元ポード番号範囲に余裕がある場合に、前回のドメイン名と異なるドメイン名を持つサーバ端末用にその未使用の送信元ポード番号範囲を開放して利用できるようにしたので、送信元ポード番号を効率良く使用できるようになる。なお、一部を取り消す場合について説明したが、当然全部を取り消す場合もありうる。
(実施の形態4)
図31は、本発明の実施の形態4に係るプライベートネットワーク間接続システムにおいて実施されるDNS動作を説明するシーケンス図である。本実施の形態4では、実施の形態3とは反対に、過去に予約した送信元ポート番号範囲に余裕がない場合に発生した新たなDNS解決要求に対する処理動作ついて説明する。図31では、図5(実施の形態1)に示したDNS動作後に、同じクライアント端末107が同じサーバ端末110のドメイン名を提示してDNSクエリを送信する場合が示されている。
図31において、手順T3101では、クライアント端末107が、アドレス変換装置A104に対しドメイン名「bbb.com」を持つサーバ端末110のIPアドレスを問い合わせるDNSクエリを送る。
手順T3102では、アドレス変換装置A104は、クライアント端末107から新たなDNSクエリを受け取ると、ドメイン名「bbb.com」を持つサーバ端末110のエントリがホスト−ポート対応テーブル207に存在するか否かを調べる。今の例では、ドメイン名「bbb.com」を持つサーバ端末110のエントリは存在するので、既に割り当てた送信元ポード番号範囲「2000−2999」の使用状況を調べ、使い切ってしまっているか残り少ない場合は、新たにポート番号の確保を行う。具体的には、受信したDNSクエリのエントリが、空いている残りセッション数が一定数以下のエントリと同一であるときに新たにポート番号の確保を行う。ここでは、追加する送信元ポート番号範囲は「3000−3099」としている。
手順T3103では、アドレス変換装置A104は、ホスト−ポート対応テーブル207に存在するドメイン名「bbb.com」を持つサーバ端末110のエントリから送信先G−IPが「G2」と判明するので、そのグローバルIPアドレス「G2」を持つアドレス変換装置B105にポート範囲追加通知フレームを送る。このポート範囲追加通知フレームでは、送信元のグローバルIPアドレス「G1」と、追加予約する送信元ポート番号範囲「3000−3099」とがアドレス変換装置B105に通知される。
手順T3104と手順T3105では、アドレス変換装置B105は、ポート範囲追加通知フレームを受け取ると、ポート範囲通知追加応答フレームをアドレス変換装置A104に返送するとともに、ホスト−ポート対応テーブル207に存在するドメイン名「bbb.com」を持つサーバ端末110のエントリにおける項目「送信元ポート番号範囲」に追加予約の範囲を加入する書き換えを行う(図33参照)。
手順T3106では、アドレス変換装置A104は、ポート範囲通知追加応答フレームを受け取ると、DNS処理部205が、ホスト−ポート対応テーブル207に存在するドメイン名「bbb.com」を持つサーバ端末110のエントリにおける項目「送信元ポート番号範囲」に今回割り当てた範囲を追加する書き換えを行う(図32参照)。
手順T3107では、アドレス変換装置A104のDNS処理部205は、次に、クライアント端末107に対するDNS応答に、ホスト−ポート対応テーブル207に存在するドメイン名「bbb.com」を持つサーバ端末110のエントリにおける項目「送信先P−IP」に設定されるIPアドレス「AX」を含める。
以上のDNS動作によって、アドレス変換装置A104、B105の各ホスト−ポート対応テーブル207は、図32、図33に示すように、遷移する。なお、図32は、図31に示すDNS処理動作によるアドレス変換装置Aでのホスト−ポート対応テーブルの遷移状態を説明する図である。図33は、図31に示すDNS処理動作によるアドレス変換装置Bでのホスト−ポート対応テーブルの遷移状態を説明する図である。
図32において、アドレス変換装置A104でのホスト−ポート対応テーブル207では、DNS処理前(1)は、図6に示したホスト−ポート対応テーブル601と同じ内容である。これに対し、DNS処理後(2)では、項目「送信元ポート番号範囲」が「2000」から「2000−3099」に書き換えられている。
また、図33において、アドレス変換装置B105でのホスト−ポート対応テーブル207では、DNS処理前(1)は、図6に示したホスト−ポート対応テーブル602と同じ内容である。これに対し、DNS処理前(1)では、項目「送信元ポート番号範囲」が「2000」から「2000−3099」に書き換えられている。
以上のように、本実施の形態4によれば、配下のプライベートネットワークに存在するクライアント端末が他のプライベートネットワークの存在するサーバ端末のDNS解決を要求してきたとき、前回割り当てた送信元ポード番号範囲に余裕がなくポート番号の空きが一定のセッション数以下になっているときは、新たに送信元ポード番号範囲を割り当てて送信元ポード番号範囲の追加予約が行えるようにしたので、サーバ端末の利用状況に応じて、ポート番号の確保を柔軟に行うことができる。
本発明に係るプライベートネットワーク間接続システム及びアドレス変換装置は、グローバルネットワークを介したプライベートネットワーク間の通信においてもDNSキャッシュを利用した通信を行うのに好適である。
また本発明に係るプライベートネットワーク間接続システム及びアドレス変換装置は、プライベートIPアドレスの消費を抑え、プライベートネットワーク設計における制約を軽減するのに好適である。
さらに、本発明に係るプライベートネットワーク間接続システム及びアドレス変換装置は、プライベートネットワークにおけるホスト間においてグローバルIPアドレスを隠蔽し、セキュリティ強度の向上を図るのに好適である。
本発明の実施の形態1に係るプライベートネットワーク間接続システムの全体構成を示すブロック図 図1に示すアドレス変換装置の構成例を示すブロック図 図2に示すDNSテーブル及びホスト−ポート対応テーブルの具体的な構成例を説明する図 図1に示す各ネットワークにおけるDNSテーブルの初期状態を説明する図 クライアント端末が通信をしようとするサーバ端末のIPアドレスを解決するDNS動作を説明するシーケンス図 図5に示すDNS処理後の各ホスト−ポート対応テーブルの状態を説明する図 クライアント端末がDNS動作によって解決したIPアドレスを用いてサーバ端末にTCP通信を要求する手順を説明するシーケンス図 図2に示すセッション学習テーブルの構成例及び図7に示すアドレス変換装置Aにおける処理手順でセッション学習テーブルに追加されたエントリの例を示す図 サーバ端末がTCP通信を要求したクライアント端末に応答を返送する手順を説明するシーケンス図 図2に示すセッション学習テーブルが複数のセッションを管理している例を示す図 各アドレス変換装置のセッション学習テーブルに記入された複数のクライアント端末や複数のセッションが1つのサーバ端末に一度にTCP通信を要求する場合の手順を説明するシーケンス図 複数のプライベートネットワークのクライアント端末がそれぞれサーバ端末に接続するときのホスト−ポート対応テーブルの保持状態を説明する図 図2に示すアドレス変換装置が備えるDNS処理部の動作を説明するフローチャート 図2に示すアドレス変換装置が備えるアドレス変換部の動作を説明するフローチャート 図14に示す変換規則1の内容を説明するフローチャート 図14に示す変換規則2の内容を説明するフローチャート 図14に示す変換規則3の内容を説明するフローチャート 図14に示す変換規則4の内容を説明するフローチャート 図2に示すアドレス変換装置が備えるフレーム転送部の動作を説明するフローチャート 本発明の実施の形態2に係るプライベートネットワーク間接続システムにおいてクライアント端末が通信をしようとするサーバ端末のIPアドレスを解決するDNS動作を説明するシーケンス図 図20に示すアドレス変換装置が備えるホスト−ポート対応テーブルの構成を示す図 図20に示すDNS処理後の各ホスト−ポート対応テーブルの状態を説明する図 クライアント端末がDNS動作によって解決したIPアドレスを用いてサーバ端末にTCP通信を要求する手順を説明するシーケンス図 サーバ端末がTCP通信を要求したクライアント端末に応答を返送する手順を説明するシーケンス図 図20に示すアドレス変換装置が備えるアドレス変換部の動作を説明するフローチャート 図25に示す変換規則5の内容を説明するフローチャート 図25に示す変換規則6の内容を説明するフローチャート 本発明の実施の形態3に係るプライベートネットワーク間接続システムにおいて実施されるDNS動作を説明するシーケンス図 図28に示すDNS処理動作によるアドレス変換装置Aでのホスト−ポート対応テーブルの遷移状態を説明する図 図28に示すDNS処理動作によるアドレス変換装置Bでのホスト−ポート対応テーブルの遷移状態を説明する図 本発明の実施の形態4に係るプライベートネットワーク間接続システムにおいて実施されるDNS動作を説明するシーケンス図 図31に示すDNS処理動作によるアドレス変換装置Aでのホスト−ポート対応テーブルの遷移状態を説明する図 図31に示すDNS処理動作によるアドレス変換装置Bでのホスト−ポート対応テーブルの遷移状態を説明する図 従来のプライベートネットワーク間接続システムの構成例を示すシステム図 図34に示す各ルータが備えるポート番号予約テーブルの一例を示す図 図34に示すシステムで実施されるDNS動作及びTCP接続処理を説明するシーケンス図 図34に示すルータAがDNS処理時にエントリを追加したDNSテーブル及びポート番号予約テーブルを示す図 TCP通信開始時にエントリ追加したポート番号予約テーブルを示す図
符号の説明
100 グローバルネットワーク
101 プライベートネットワークA
102 プライベートネットワークB
103 プライベートネットワークC
104、2901 アドレス変換装置A
105、2902 アドレス変換装置B
106 アドレス変換装置C
107、108、113 クライアント端末
109、110、111、112 サーバ端末
114 DNSサーバ
201 プライベート側入出力部
202 グローバル側入出力部
203 フレーム転送部
204 アドレス変換部
205 DNS処理部
206 セッション学習テーブル
207 ホスト−ポート対応テーブル
208 DNSテーブル

Claims (8)

  1. プライベートネットワークとグローバルネットワークとの間にアドレス変換装置を配置し、一方のプライベートネットワークに存在するクライアント端末と他方のプライベートネットワークに存在するサーバ端末との間の前記グローバルネットワークを介した通信を実現するプライベートネットワーク間接続システムにおいて、
    前記一方のプライベートネットワークを配下に持つアドレス変換装置は、前記サーバ端末のプライベートIPアドレスの問い合わせに対するDNS処理において前記サーバ端末とのTCP通信に用いる送信元ポート番号群を割り当て、その割り当てた送信元ポート番号群と前記クライアント端末に通知したプライベートIPアドレスとを対応付けて保持する手段と、前記サーバ端末とのTCP通信処理において配下に属するクライアント端末のTCPセッション毎に前記送信元ポート番号群の中の1つと前記クライアント端末が設定したポート番号とを対応付けて管理する手段とを具備し、
    前記他方のプライベートネットワークを配下に持つアドレス変換装置は、前記一方のプライベートネットワークを配下に持つアドレス変換装置から通知を受けた前記送信元ポート番号群と前記サーバ端末のプライベートIPアドレスとを対応付けて保持する手段を具備することを特徴とするプライベートネットワーク間接続システム。
  2. 前記他方のプライベートネットワークを配下に持つアドレス変換装置は、前記一方のプライベートネットワークを配下に持つアドレス変換装置から通知を受けた前記送信元ポート番号群と前記サーバ端末のプライベートIPアドレスとを対応付けて保持する際に、送信元にプライベートIPアドレスを割り当てることを行い、その送信元に割り当てたプライベートIPアドレスを前記サーバ端末に転送するTCP通信受信フレームの送信元アドレスとして用いることを特徴とする請求項1記載のプライベートネットワーク間接続システム。
  3. 前記一方のプライベートネットワークを配下に持つアドレス変換装置は、前記他方のプライベートネットワークに存在する他のサーバ端末のプライベートIPアドレスの問い合わせに対するDNS処理において、前記送信元ポート番号群を通知して予約した通信相手の前記アドレス変換装置に対し、予約した前記送信元ポート番号群の全部または一部を取り消し、取り消した送信元ポート番号群を前記他のサーバ端末用に予約する手段を具備することを特徴とする請求項1記載のプライベートネットワーク間接続システム。
  4. 前記一方のプライベートネットワークを配下に持つアドレス変換装置は、前記同じサーバ端末のプライベートIPアドレスの問い合わせに対するDNS処理において、先に割り当てた前記送信元ポート番号群では足りない場合に、前記送信元ポート番号群を通知して予約した通信相手の前記アドレス変換装置に対し、新たに割り当てた送信元ポート番号群の追加予約を行う手段を具備することを特徴とする請求項1記載のプライベートネットワーク間接続システム。
  5. プライベートネットワークとグローバルネットワークとを接続するアドレス変換装置であって、
    配下に属するプライベートネットワークに存在するクライアント端末から他のプライベートネットワークに存在するサーバ端末のプライベートIPアドレスの問い合わせに対するDNS処理において前記サーバ端末とのTCP通信に用いる送信元ポート番号群を割り当て、その割り当てた送信元ポート番号群と前記クライアント端末に通知したプライベートIPアドレスとを対応付けて保持する手段と、
    他のアドレス変換装置から配下に属するプライベートネットワークに存在するサーバ端末宛てに通知された前記送信元ポート番号群と前記サーバ端末のプライベートIPアドレスとを対応付けて保持する手段と、
    前記サーバ端末とのTCP通信処理において配下に属するプライベートネットワークに存在するクライアント端末のTCPセッション毎に前記送信元ポート番号群の中の1つと前記クライアント端末が設定したポート番号とを対応付けて管理する手段と、を具備することを特徴とするアドレス変換装置。
  6. 前記他方のプライベートネットワークを配下に持つ場合に、他のアドレス変換装置から配下に属するプライベートネットワークに存在するサーバ端末宛てに通知された前記送信元ポート番号群と前記サーバ端末のプライベートIPアドレスとを対応付けて保持する際に、送信元にプライベートIPアドレスを割り当てることを行い、その送信元に割り当てたプライベートIPアドレスを前記サーバ端末に転送するTCP通信受信フレームの送信元アドレスとして用いることを特徴とする請求項5記載のアドレス変換装置。
  7. 配下に属するプライベートネットワークに存在するクライアント端末から前記他のプライベートネットワークに存在する前記サーバ端末以外のサーバ端末のプライベートIPアドレスの問い合わせに対するDNS処理において、前記送信元ポート番号群を通知して予約した通信相手の前記アドレス変換装置に対し、予約した前記送信元ポート番号群の全部または一部を取り消し、取り消した送信元ポート番号群を前記他のサーバ端末用に予約する手段を具備することを特徴とする請求項5記載のアドレス変換装置。
  8. 配下に属するプライベートネットワークに存在するクライアント端末から前記他のプライベートネットワークに存在する前記同じサーバ端末のプライベートIPアドレスの問い合わせに対するDNS処理において、先に割り当てた前記送信元ポート番号群では足りない場合に、前記送信元ポート番号群を通知して予約した通信相手の前記アドレス変換装置に対し、新たに割り当てた送信元ポート番号群の追加予約を行う手段を具備することを特徴とする請求項5記載のアドレス変換装置。
JP2005257171A 2005-09-05 2005-09-05 プライベートネットワーク間接続システム及びアドレス変換装置 Pending JP2007074172A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005257171A JP2007074172A (ja) 2005-09-05 2005-09-05 プライベートネットワーク間接続システム及びアドレス変換装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005257171A JP2007074172A (ja) 2005-09-05 2005-09-05 プライベートネットワーク間接続システム及びアドレス変換装置

Publications (1)

Publication Number Publication Date
JP2007074172A true JP2007074172A (ja) 2007-03-22

Family

ID=37935271

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005257171A Pending JP2007074172A (ja) 2005-09-05 2005-09-05 プライベートネットワーク間接続システム及びアドレス変換装置

Country Status (1)

Country Link
JP (1) JP2007074172A (ja)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010103709A (ja) * 2008-10-22 2010-05-06 Oki Networks Co Ltd パケット転送装置、パケット転送方法、パケット転送プログラム及び通信装置
WO2010143286A1 (ja) * 2009-06-10 2010-12-16 パイオニア株式会社 通信端末、アドレス解決サーバ、及びコンピュータプログラム
JP2011229182A (ja) * 2011-07-11 2011-11-10 Hitachi Ltd 通信システム
JP2013501483A (ja) * 2010-08-19 2013-01-10 華為技術有限公司 ネットワークアドレス変換のための管理方法および管理デバイス
JP2014045245A (ja) * 2012-08-24 2014-03-13 Nippon Telegraph & Telephone West Corp 中継装置及びその運用方法
JP2016086219A (ja) * 2014-10-23 2016-05-19 富士通株式会社 中継装置、中継システム、中継方法、及び、プログラム
US9485281B2 (en) 2009-03-11 2016-11-01 Hitachi, Ltd. Communication system and server
JP2020162146A (ja) * 2014-10-14 2020-10-01 ミド ホールディングス リミテッド 仮想ネットワークにおける分散型フロー状態p2p設定のためのシステムおよび方法
JP2021034946A (ja) * 2019-08-28 2021-03-01 Necプラットフォームズ株式会社 ルータ、通信システム、ルータの制御方法、及びコンピュータプログラム
USRE49276E1 (en) 2009-08-21 2022-11-01 Cisco Technology, Inc. Port chunk allocation in network address translation
USRE49926E1 (en) 2020-12-21 2024-04-16 Cisco Technology, Inc. Port chunk allocation in network address translation

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010103709A (ja) * 2008-10-22 2010-05-06 Oki Networks Co Ltd パケット転送装置、パケット転送方法、パケット転送プログラム及び通信装置
US9485281B2 (en) 2009-03-11 2016-11-01 Hitachi, Ltd. Communication system and server
WO2010143286A1 (ja) * 2009-06-10 2010-12-16 パイオニア株式会社 通信端末、アドレス解決サーバ、及びコンピュータプログラム
JP5010033B2 (ja) * 2009-06-10 2012-08-29 パイオニア株式会社 通信端末、アドレス解決サーバ、及びコンピュータプログラム
US9015280B2 (en) 2009-06-10 2015-04-21 Pioneer Corporation Communication terminal, address resolution server, and computer program
USRE49276E1 (en) 2009-08-21 2022-11-01 Cisco Technology, Inc. Port chunk allocation in network address translation
JP2013501483A (ja) * 2010-08-19 2013-01-10 華為技術有限公司 ネットワークアドレス変換のための管理方法および管理デバイス
US8612601B2 (en) 2010-08-19 2013-12-17 Huawei Technologies Co., Ltd. Management method and management device for network address translation
JP2011229182A (ja) * 2011-07-11 2011-11-10 Hitachi Ltd 通信システム
JP2014045245A (ja) * 2012-08-24 2014-03-13 Nippon Telegraph & Telephone West Corp 中継装置及びその運用方法
JP7004405B2 (ja) 2014-10-14 2022-02-10 ミド ホールディングス リミテッド 仮想ネットワークにおける分散型フロー状態p2p設定のためのシステムおよび方法
JP2020162146A (ja) * 2014-10-14 2020-10-01 ミド ホールディングス リミテッド 仮想ネットワークにおける分散型フロー状態p2p設定のためのシステムおよび方法
JP2016086219A (ja) * 2014-10-23 2016-05-19 富士通株式会社 中継装置、中継システム、中継方法、及び、プログラム
JP2021034946A (ja) * 2019-08-28 2021-03-01 Necプラットフォームズ株式会社 ルータ、通信システム、ルータの制御方法、及びコンピュータプログラム
JP7040790B2 (ja) 2019-08-28 2022-03-23 Necプラットフォームズ株式会社 ルータ、通信システム、ルータの制御方法、及びコンピュータプログラム
USRE49926E1 (en) 2020-12-21 2024-04-16 Cisco Technology, Inc. Port chunk allocation in network address translation

Similar Documents

Publication Publication Date Title
JP2007074172A (ja) プライベートネットワーク間接続システム及びアドレス変換装置
US7573903B2 (en) IPv6/IPv4 translator
US7010585B2 (en) DNS server, DHCP server, terminal and communication system
US7450499B2 (en) Method and apparatus for interconnecting IPv4 and IPv6 networks
JP4234482B2 (ja) 動的dns登録方法、ドメイン名解決方法、代理サーバ、及びアドレス変換装置
JP2003249942A (ja) インターネットプロトコルアドレス変換装置及びこれを用いたホームネットワークシステム並びにその通信方法
JP2003218953A (ja) インターネットプロトコルアドレス変換装置、これを用いた通信ネットワークシステム及び通信方法
US20100046517A1 (en) Address translator using address translation information in header area on network layer level and a method therefor
JP4766976B2 (ja) ノード間接続方法及び装置
KR20070003890A (ko) 적어도 두 대의 계산장치 사이에서의 연결설정시 주소와포트번호의 요약
Carpenter et al. IPv4 address behaviour today
US20060067350A1 (en) Method of assigning network identifiers by means of interface identifiers
JP4572938B2 (ja) アドレス変換方法
JP2002217941A (ja) ネットワークアドレス再割り当て方法及びルータ
CN101292501A (zh) 用于地址映射的装置和方法
KR100672050B1 (ko) 분산구조의 디엔에스 프록시 서버 기능이 내장된아이피브이4/아이피브이6 변환장치 및 이 장치를 이용한변환방법
JP2011061541A (ja) アドレス変換・プロトコル変換システム、並びに、トランスレータ装置及びトランスレータプログラム
JP2010062757A (ja) Dnsプロキシ装置及びdns中継方法
JP2005539428A (ja) 第一コンピュータ・ネットワークから第二コンピュータ・ネットワークへの通信セッションの始動
JP5921991B2 (ja) 中継装置及びその運用方法
Cisco Configuring Network Address Translation
Cisco Configuring Network Address Translation
Cisco Configuring Network Address Translation
JP4191180B2 (ja) 通信支援装置、システム、通信方法及びコンピュータプログラム
KR100693050B1 (ko) 네트워크 프로세서를 이용한 헤더 변환 시스템 및 그 방법