(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-05
(45)【発行日】2024-11-13
(54)【発明の名称】通信制御装置、通信制御システム、通信制御方法及びプログラム
(51)【国際特許分類】
H04L 61/256 20220101AFI20241106BHJP
【FI】
H04L61/256
(21)【出願番号】P 2022002165
(22)【出願日】2022-01-11
【審査請求日】2023-05-12
(73)【特許権者】
【識別番号】000227205
【氏名又は名称】NECプラットフォームズ株式会社
(74)【代理人】
【識別番号】100103894
【氏名又は名称】家入 健
(72)【発明者】
【氏名】山田 真寛
【審査官】長谷川 未貴
(56)【参考文献】
【文献】米国特許第10237235(US,B1)
【文献】米国特許出願公開第2013/0185404(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 12/00-101/00
(57)【特許請求の範囲】
【請求項1】
プライベートネットワークに接続され、第1グローバルアドレスを有する第1通信制御部と、
前記プライベートネットワークに接続され、前記第1グローバルアドレスと異なる第2グローバルアドレスを有する第2通信制御部と
を備え、
前記第1通信制御部は、
受信したIPパケットに送信元情報として含まれる、プライベートアドレス及び変換前ポート番号のセットが、OSI参照モデルのネットワーク層のNAPT(Network Address Port Translation)変換に用いられる第1変換テーブルであって、プライベートアドレス及び変換前ポート番号と、グローバルアドレス及び変換後ポート番号とを対応付ける第1変換テーブルに基づいて、新規な組み合わせと判定される場合、前記第1グローバルアドレスに対応するポート番号であって、前記NAPT変換に利用可能なポート番号の数が予め定められた閾値以下であるか否かを判定し、
前記NAPT変換に利用可能なポート番号の数が前記閾値以下である場合は、
受信した前記IPパケットに送信元情報として含まれる前記セットと、前記第2グローバルアドレスとを対応付けて前記第1変換テーブルに登録し、
前記第2通信制御部に、受信した前記IPパケットを転送し、
前記プライベートネットワーク配下のクライアント装置と外部のネットワークの装置とが通信する場合に、前記第2通信制御部よりも優先して、前記通信にかかるIPパケットを受信する
通信制御システム。
【請求項2】
前記第1通信制御部は、
前記NAPT変換に利用可能なポート番号の数が前記閾値より大きい場合は、
受信した前記IPパケットに送信元情報として含まれる前記セットに対して、利用可能な1のポート番号を変換後ポート番号として割り当て、
受信した前記IPパケットに送信元情報として含まれる前記セットを、前記第1グローバルアドレス及び前記変換後ポート番号のセットに変換し、
受信した前記IPパケットに送信元情報として含まれる前記セットと、変換した前記セットとを対応付けて、前記第1変換テーブルに登録し、
送信元情報が変換された前記IPパケットを宛先の装置に送信する
請求項1に記載の通信制御システム。
【請求項3】
前記第1通信制御部は、
受信した前記IPパケットに送信元情報として含まれる前記セットが、前記第1変換テーブルに基づいて新規な組み合わせと判定されなかった場合、前記第1変換テーブルにおいて、受信した前記IPパケットに送信元情報として含まれる前記セットに対応付けられたグローバルアドレス及び変換後ポート番号のセットを読み出し、
読み出した前記セットに含まれるグローバルアドレスが前記第1グローバルアドレスである場合、
受信した前記IPパケットに送信元情報として含まれる前記セットを、読み出した前記セットに変換し、
送信元情報が変換された前記IPパケットを宛先の装置に送信し、
読み出した前記セットに含まれるグローバルアドレスが前記第2グローバルアドレスである場合、受信した前記IPパケットを前記第2通信制御部に転送する
請求項1又は2に記載の通信制御システム。
【請求項4】
宛先情報としてグローバルアドレス及び変換後ポート番号のセットを含むIPパケットを受信した場合、前記第1変換テーブルにおいて、受信した前記IPパケットに宛先情報として含まれる前記セットに対応付けられたプライベートアドレス及び変換後ポート番号のセットを読み出し、
受信した前記IPパケットを、読み出した前記セットに対応付けられたクライアント装置に転送する
請求項1から3のいずれか1項に記載の通信制御システム。
【請求項5】
前記第2通信制御部は、
受信した前記IPパケットに送信元情報として含まれる、プライベートアドレス及び変換前ポート番号のセットが、前記第2通信制御部によるNAPT変換に用いられる第2変換テーブルであって、プライベートアドレス及び変換前ポート番号と、グローバルアドレス及び変換後ポート番号とを対応付ける第2変換テーブルに基づいて、新規な組み合わせと判定される場合、前記第2グローバルアドレスに対応するポート番号であって、前記NAPT変換に利用可能なポート番号の数が予め定められた第2閾値以下であるか否かを判定し、
前記NAPT変換に利用可能なポート番号の数が前記第2閾値より大きい場合は、
受信した前記IPパケットに送信元情報として含まれる前記セットに対して、利用可能な1のポート番号を変換後ポート番号として割り当て、
受信した前記IPパケットに送信元情報として含まれる前記セットを、前記第2グローバルアドレス及び前記変換後ポート番号のセットに変換し、
受信した前記IPパケットに送信元情報として含まれる前記セットと、変換した前記セットとを対応付けて、前記第2変換テーブルに登録し、
送信元情報が変換された前記IPパケットを宛先の装置に送信し、
前記NAPT変換に利用可能なポート番号の数が前記第2閾値以下である場合は、
受信した前記IPパケットに送信元情報として含まれる前記セットと、前記第1グローバルアドレスとを対応付けて前記第2変換テーブルに登録し、
前記第1通信制御部に、受信した前記IPパケットを転送する
請求項1から4のいずれか1項に記載の通信制御システム。
【請求項6】
複数の通信制御装置間の前記IPパケットの転送回数が予め定められた回数以上となった場合、前記複数の通信制御装置のいずれかの通信制御装置は、前記IPパケットを廃棄する
請求項5に記載の通信制御システム。
【請求項7】
受信したIPパケットに送信元情報として含まれる、プライベートアドレス及び変換前ポート番号のセットが、プライベートアドレス及び変換前ポート番号のセットと、グローバルアドレス及び変換後ポート番号のセットとを対応付ける変換テーブルであって、OSI参照モデルのネットワーク層のNAPT(Network Address Port Translation)変換に用いられる変換テーブルに基づいて、新規な組み合わせと判定される場合、自己が有するグローバルアドレスに対応するポート番号であって、前記NAPT変換に利用可能なポート番号の数が予め定められた閾値以下であるか否かを判定し、
前記NAPT変換に利用可能なポート番号の数が前記閾値以下である場合は、
受信した前記IPパケットに送信元情報として含まれる前記セットと、
プライベートネットワークに接続された他の通信制御装置が有するグローバルアドレスとを対応付けて前記変換テーブルに登録し、
前記他の通信制御装置に、受信した前記IPパケットを転送し、
前記プライベートネットワーク配下のクライアント装置と外部のネットワークの装置とが通信する場合に、前記他の通信制御装置よりも優先して、前記通信にかかるIPパケットを受信する
通信制御装置。
【請求項8】
前記NAPT変換に利用可能なポート番号の数が前記閾値より大きい場合は、
受信した前記IPパケットに送信元情報として含まれる前記セットに対して、利用可能な1のポート番号を変換後ポート番号として割り当て、
受信した前記IPパケットに送信元情報として含まれる前記セットを、自己が有する前記グローバルアドレス及び前記変換後ポート番号のセットに変換し、
受信した前記IPパケットに送信元情報として含まれる前記セットと、変換した前記セットとを対応付けて、前記変換テーブルに登録し、
受信した前記IPパケットを、宛先の装置に送信する
請求項7に記載の通信制御装置。
【請求項9】
受信したIPパケットに送信元情報として含まれるプライベートアドレス及び変換前ポート番号のセットが、プライベートアドレス及び変換前ポート番号のセットと、グローバルアドレス及び変換後ポート番号のセットとを対応付ける変換テーブルであって、OSI参照モデルのネットワーク層のNAPT(Network Address Port Translation)変換に用いられる変換テーブルに基づいて、新規な組み合わせと判定される場合、自己が有するグローバルアドレスに対応するポート番号であって、前記NAPT変換に利用可能なポート番号の数が予め定められた閾値以下であるか否かを判定し、
前記NAPT変換に利用可能なポート番号の数が前記閾値以下である場合は、
受信した前記IPパケットに送信元情報として含まれる前記セットと、
プライベートネットワークに接続された他の通信制御装置が有するグローバルアドレスとを対応付けて前記変換テーブルに登録し、
前記他の通信制御装置に、受信した前記IPパケットを転送し、
前記プライベートネットワーク配下のクライアント装置と外部のネットワークの装置とが通信する場合に、前記他の通信制御装置よりも優先して、前記通信にかかるIPパケットを受信する
通信制御方法。
【請求項10】
コンピュータに、
受信したIPパケットに送信元情報として含まれるプライベートアドレス及び変換前ポート番号のセットが、プライベートアドレス及び変換前ポート番号のセットと、グローバルアドレス及び変換後ポート番号のセットとを対応付ける変換テーブルであって、OSI参照モデルのネットワーク層のNAPT(Network Address Port Translation)変換に用いられる変換テーブルに基づいて、新規な組み合わせと判定される場合、自己が有するグローバルアドレスに対応するポート番号であって、前記NAPT変換に利用可能なポート番号の数が予め定められた閾値以下であるか否かを判定する処理と、
前記NAPT変換に利用可能なポート番号の数が前記閾値以下である場合は、
受信した前記IPパケットに送信元情報として含まれる前記セットと、
プライベートネットワークに接続された他の通信制御装置が有するグローバルアドレスとを対応付けて前記変換テーブルに登録し、
前記他の通信制御装置に、受信した前記IPパケットを転送する処理と、
前記プライベートネットワーク配下のクライアント装置と外部のネットワークの装置とが通信する場合に、前記他の通信制御装置よりも優先して、前記通信にかかるIPパケットを受信する処理と、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、通信制御装置、通信制御システム、通信制御方法及びプログラムに関し、特にレイヤ3ネットワークのNAPT利用環境における通信制御装置、通信制御システム、通信制御方法及びプログラムに関する。
【背景技術】
【0002】
通信制御装置の標準的な仕様として、OSI参照モデル(Open Systems Interconnection reference model)のレイヤ3(ネットワーク層)においてIPパケットの通信仕様が定められている。また、グローバルネットワークとプライベートネットワーク間で通信を行うための一般的なアドレス変換技術として、NAPT(Network Address Port Translation)が知られている(例えば特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
NAPT配下で大量のエンドポイントを処理する環境では、ポート番号の枯渇による障害が発生することがあり、これを回避するにはネットワーク構成を制限する必要があるという問題があった。
【0005】
本開示の目的は、上述した課題に鑑み、NAPT利用環境において多数のエンドポイントが好適に処理されるようなネットワーク環境の構築を実現する通信制御装置、通信制御システム、通信制御方法及びプログラムを提供することにある。
【課題を解決するための手段】
【0006】
本開示の一態様にかかる通信制御システムは、
プライベートネットワークに接続され、第1グローバルアドレスを有する第1通信制御部と、
前記プライベートネットワークに接続され、前記第1グローバルアドレスと異なる第2グローバルアドレスを有する第2通信制御部と
を備える。
前記第1通信制御部は、
受信したIPパケットに送信元情報として含まれる、プライベートアドレス及び変換前ポート番号のセットが、OSI参照モデルのネットワーク層のNAPT変換に用いられる第1変換テーブルであって、プライベートアドレス及び変換前ポート番号と、グローバルアドレス及び変換後ポート番号とを対応付ける第1変換テーブルに基づいて、新規な組み合わせと判定される場合、前記第1グローバルアドレスに対応するポート番号であって、前記NAPT変換に利用可能なポート番号の数が予め定められた閾値以下であるか否かを判定し、
前記NAPT変換に利用可能なポート番号の数が前記閾値以下である場合は、
受信した前記IPパケットに送信元情報として含まれる前記セットと、前記第2グローバルアドレスとを対応付けて前記第1変換テーブルに登録し、
前記第2通信制御部に、受信した前記IPパケットを転送する。
【0007】
本開示の一態様にかかる通信制御装置は、
受信したIPパケットに送信元情報として含まれる、プライベートアドレス及び変換前ポート番号のセットが、プライベートアドレス及び変換前ポート番号のセットと、グローバルアドレス及び変換後ポート番号のセットとを対応付ける変換テーブルであって、OSI参照モデルのネットワーク層のNAPT変換に用いられる変換テーブルに基づいて、新規な組み合わせと判定される場合、自己が有するグローバルアドレスに対応するポート番号であって、前記NAPT変換に利用可能なポート番号の数が予め定められた閾値以下であるか否かを判定し、
前記NAPT変換に利用可能なポート番号の数が前記閾値以下である場合は、
受信した前記IPパケットに送信元情報として含まれる前記セットと、他の通信制御装置が有するグローバルアドレスとを対応付けて前記変換テーブルに登録し、
前記他の通信制御装置に、受信した前記IPパケットを転送する。
【0008】
本開示の一態様にかかる通信制御方法は、
受信したIPパケットに送信元情報として含まれるプライベートアドレス及び変換前ポート番号のセットが、プライベートアドレス及び変換前ポート番号のセットと、グローバルアドレス及び変換後ポート番号のセットとを対応付ける変換テーブルであって、OSI参照モデルのネットワーク層のNAPT変換に用いられる変換テーブルに基づいて、新規な組み合わせと判定される場合、自己が有するグローバルアドレスに対応するポート番号であって、前記NAPT変換に利用可能なポート番号の数が予め定められた閾値以下であるか否かを判定し、
前記NAPT変換に利用可能なポート番号の数が前記閾値以下である場合は、
受信した前記IPパケットに送信元情報として含まれる前記セットと、他の通信制御装置が有するグローバルアドレスとを対応付けて前記変換テーブルに登録し、
前記他の通信制御装置に、受信した前記IPパケットを転送する。
【0009】
本開示の一態様にかかるプログラムは、
コンピュータに、
受信したIPパケットに送信元情報として含まれるプライベートアドレス及び変換前ポート番号のセットが、プライベートアドレス及び変換前ポート番号のセットと、グローバルアドレス及び変換後ポート番号のセットとを対応付ける変換テーブルであって、OSI参照モデルのネットワーク層のNAPT変換に用いられる変換テーブルに基づいて、新規な組み合わせと判定される場合、自己が有するグローバルアドレスに対応するポート番号であって、前記NAPT変換に利用可能なポート番号の数が予め定められた閾値以下であるか否かを判定する処理と、
前記NAPT変換に利用可能なポート番号の数が前記閾値以下である場合は、
受信した前記IPパケットに送信元情報として含まれる前記セットと、他の通信制御装置が有するグローバルアドレスとを対応付けて前記変換テーブルに登録し、
前記他の通信制御装置に、受信した前記IPパケットを転送する処理と
を実行させる。
【発明の効果】
【0010】
本開示により、NAPT利用環境において多数のエンドポイントが好適に処理されるようなネットワーク環境の構築を実現する通信制御装置、通信制御システム、通信制御方法及びプログラムを提供できる。
【図面の簡単な説明】
【0011】
【
図1】実施形態1にかかるシステムの構成を示すブロック図である。
【
図2】実施形態1にかかる第1変換テーブルのデータ構造の一例を示す図である。
【
図3】実施形態1にかかる第1通信制御部による通信制御方法の流れを示すフローチャートである。
【
図4】実施形態1にかかる第1通信制御部による通信制御方法の流れを示すフローチャートである。
【
図5】実施形態1にかかる第1通信制御部による通信制御方法の流れを示すフローチャートである。
【
図6】実施形態2にかかるシステムの構成を示すブロック図である。
【
図7】実施形態2にかかるシステムの処理の流れを示すシーケンス図である。
【
図8】実施形態2にかかるシステムの処理の流れを示すシーケンス図である。
【
図9】実施形態3にかかるシステムの構成を示すブロック図である。
【
図10】実施形態4にかかるシステムの構成を示すブロック図である。
【
図11】実施形態4にかかる変換テーブルのデータ構造の一例を示す図である。
【
図13】関連するシステムの構成を示すブロック図である。
【
図14】関連する変換テーブルのデータ構造の一例を示す図である。
【発明を実施するための形態】
【0012】
以下では、本開示の実施形態について、図面を参照しながら詳細に説明する。各図面において、同一又は対応する要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略される。
【0013】
<実施形態の課題>
関連する技術においては、NAPT(Network Address Port Translation)は、例えば
図13に示すシステム9のようなネットワーク構成において用いられている。
図13は、関連するシステム9の構成を示すブロック図である。
【0014】
システム9は、通信制御装置90と、複数のクライアント装置20と、外部装置30とを備える。通信制御装置90と外部装置30とは、グローバルネットワークGNに接続されている。
【0015】
通信制御装置90は、NAPTが動作する一般的な通信制御装置である。通信制御装置90は、グローバルネットワークGNとプライベートネットワークPNとを接続するゲートウェイ部に設置されている。プライベートネットワークPNの配下には、複数のクライアント装置20が接続されている。通信制御装置90及び複数のクライアント装置20は、PN側システム900を構成している。複数のクライアント装置20の各々には、プライベートIPアドレスが割り当てられている。以下では、プライベートIPアドレスを、単にプライベートアドレスと呼ぶ。通信制御装置90がNAPTによるアドレス変換(以下、NAPT変換と呼ぶことがある)を行うことにより、複数のクライアント装置20の各々は、グローバルネットワークGNに存在する外部装置30と通信することが可能になる。
【0016】
NAPTによるアドレス変換について、
図14を用いて説明する。
図14は、関連する変換テーブルT0のデータ構造の一例を示す図である。NAPTによるアドレス変換は、変換テーブルT0に従って行われる。通信制御装置90は、グローバルネットワークGN上の体系に変換したアドレスをプライベートネットワーク上の体系に戻すために、変換前の情報と変換後の情報を一対一に対応させる必要がある。
【0017】
変換前の情報は送信元のプライベートアドレスとポート番号の組(セット)となっており、本実施形態内ではこのセットをエンドポイントと呼ぶ。変換後の情報はグローバルアドレスとポート番号のセットである。変換後のグローバルIPアドレスには通信制御装置90に割り当てられたグローバルアドレスG1のみが用いられる。以下では、グローバルIPアドレスを、単にグローバルアドレスと呼ぶ。NAPT変換後のポート番号として利用できるポート番号の範囲は、NAPTの実装による。例えば予約済みポート番号を除いて可能な限り広い変換範囲を確保する場合、1024から65535までのポート番号が用いられる。
【0018】
NAPTでは、変換前のエンドポイントと変換後のポートを一対一で変換する。したがって通信制御装置90が多数のエンドポイントに対してNAPT変換を実施した場合、変換先のポートが不足し、それ以上のNAPT変換を行えなくなる場合がある。通信制御装置90がポート番号を1024から65535まで利用できる環境にある場合、変換可能なポート数は64512個となるため、エンドポイント数がこれを超える場合はそれ以上のNAPT変換が不可能となる。よって
図14のR0に示されるエンドポイントから受信したIPパケットは廃棄される。
【0019】
一例として、システム9のPN側システム900には、1台のゲートウェイルータ配下に個別のプライベートアドレスが割り当てられた65台のクライアント装置が存在するとする。クライアントはウェブ会議などの用途でグローバルネットワークGNに存在するサーバに接続することがあり、1回の接続あたり送信元ポートの異なる通信を1000セッション生成する必要があるものとする。全社会議などで65台のクライアントが同時に接続を行う場合、エンドポイントの合計数は65×1000=65000件となるため、NAPT変換の上限数である64512個を超過する。この状況下では新たな通信のためのNAPT変換が行えず、通信制御装置90の他の機能でも新たなポートを利用することができないため、通信に障害が生じる可能性がある。この事態を回避するには、多数のセッションが生成されることで利用可能なポート番号が枯渇することがないように同時接続するクライアント数をあらかじめ抑制してネットワーク構成を制限するなどの対策が必要である。
【0020】
このように、NAPT配下で大量のエンドポイントを処理する環境では、ポート番号の枯渇による障害が発生することがあり、これを回避するにはネットワーク構成を制限する必要があるという問題があった。
【0021】
以下の実施形態の少なくとも1つは、このような課題を解決するものである。
【0022】
<実施形態1>
実施形態1は、後述する実施形態2~4の概要として説明されてよい。本実施形態1では、複数のグローバルアドレスを使用できる回線環境において、それぞれの回線で以下のNAPTによるアドレス変換を実施可能な通信制御装置を用いる。
【0023】
図1は、実施形態1にかかるシステム1の構成を示すブロック図である。
システム1は、プライベートネットワークPN配下のクライアント装置20と、グローバルネットワークGN上の外部装置30とが通信するためのコンピュータシステムである。システム1は、
図13に示すシステム9と同様に、複数のクライアント装置20と外部装置30とを備えるが、通信制御装置90に代えて通信制御システム10を備える点で相違する。通信制御システム10は、1のコンピュータ装置(通信制御装置)であってもよいし、複数のコンピュータ装置(通信制御装置)を含むコンピュータシステムであってもよい。
【0024】
プライベートネットワークPNの配下には、複数のクライアント装置20が接続されている。そして外部装置30は、グローバルネットワークGNに接続されている。
【0025】
通信制御システム10は、第1通信制御部12と、第2通信制御部14とを備える。
第1通信制御部12は、プライベートネットワークPNとグローバルネットワークGNとに接続される。そして第1通信制御部12は、第1グローバルアドレスG1を有する。
第2通信制御部14は、第1通信制御部12と同様にプライベートネットワークPNとグローバルネットワークGNとに接続される。そして第2通信制御部14は、第1グローバルアドレスG1と異なる第2グローバルアドレスG2を有する。
【0026】
第1通信制御部12は、OSI参照モデルの規定に従った、通常のNAPTを含む通常の通信制御機能を有するとともに、後述するNAPT拡張アルゴリズムに従って動作する機能を有する。第2通信制御部14は、第1通信制御部12と連動して動作する機能を有する。
【0027】
第1通信制御部12がアクセス可能な記憶装置には、第1変換テーブルが格納され、第2通信制御部14がアクセス可能な記憶装置には、第2変換テーブルが格納される。第1変換テーブル及び第2変換テーブルは、それぞれ、第1通信制御部12及び第2通信制御部14がNAPTによるアドレス変換を実行するために用いるNAPT変換テーブルである。上記記憶装置は、通信制御システム10に含まれていてよい。本実施形態1では、第1通信制御部12及び第2通信制御部14がアクセス可能な記憶装置は、同一の記憶装置であってもよいし、異なる記憶装置であってもよい。また本実施形態1では、第1変換テーブル及び第2変換テーブルが異なるテーブルであるが、同じテーブルであってもよい。
【0028】
ここで第1通信制御部12及び第2通信制御部14は、それぞれ、互いのグローバルアドレスと、各クライアント装置20のプライベートアドレスとを保持している。例えばユーザ設定により、第1通信制御部12がアクセス可能な記憶装置及び第2通信制御部14がアクセス可能な記憶装置に、これらのアドレスを格納させてよい。また通信制御システム10に含まれる通信制御部が複数ある場合、それぞれ、自己のポート番号が不足した場合にどの通信制御部がどの通信制御部を代理として用いるかを予め定めておく。
【0029】
図2は、実施形態1にかかる第1変換テーブルT1のデータ構造の一例を示す図である。第1変換テーブルT1は、プライベートアドレス及び変換前ポート番号と、グローバルアドレス及び変換後ポート番号とを、一対一で対応付けている。第1変換テーブルT1は、利用可能なポート番号が所定閾値より大きいレコードR1では、プライベートアドレス及び変換前ポート番号のセットを、第1グローバルアドレスG1及び、受信順番に基づいて一意に決定される変換後ポート番号のセットに対応付けている。一方、第1変換テーブルT1は、利用可能なポート番号が所定閾値以下のレコードR2では、プライベートアドレス及び変換前ポート番号のセットを、第2グローバルアドレスG2に対応付けている。
【0030】
以下では1行のレコードをエントリと呼ぶことがあり、1行のレコードに格納された情報をまとめて、アドレス変換情報と呼ぶことがある。
【0031】
尚、第2変換テーブルも基本的に同様のデータ構造を有する。ただし第2変換テーブルにおいては、上述の説明の第1グローバルアドレスG1及び第2グローバルアドレスG2を、それぞれ第2グローバルアドレスG2及び第1グローバルアドレスG1に読み替える。また登録される各アドレスおよびポート番号の値は、第1変換テーブルと異なってよい。
【0032】
少なくとも第1通信制御部12は、NAPTによるアドレス変換処理によって第1変換テーブルT1に新たなエントリを追加しようとした場合、ポート番号不足が発生しているか否かによって後続の処理が異なる。第1通信制御部12は、NAPT変換によるポート番号不足が発生していない状況下では、通常のNAPT変換と同様の処理を実行する。すなわち第1通信制御部12は、通常通り、まず第1グローバルアドレスG1と新たに割り当てたポート番号とを第1変換テーブルT1に登録する。そして第1通信制御部12は、通常通り、NAPT変換およびNAPTによるパケット転送を実行する。
【0033】
一方、通常のNAPT変換でポート番号不足が発生した場合は、第1通信制御部12は、第1グローバルアドレスG1の代わりに、予め保持している第2グローバルアドレスG2を用いて、第1変換テーブルT1の変換後のグローバルアドレスの部分を更新する。第2グローバルアドレスG2は、第1通信制御部12と連動する第2通信制御部14のグローバルアドレスである。なお変換後ポート番号として書き込む値は任意であってよい。
【0034】
このように第1通信制御部12は、通常のNAPTの動作に拡張的な動作を加えたNAPT拡張アルゴリズムを採用する。
【0035】
図3~5は、実施形態1にかかる第1通信制御部12による通信制御方法の流れを示すフローチャートである。
図2~4は、通信制御装置90がプライベートネットワークPNからIPパケットを受信することを契機として動作するNAPT拡張アルゴリズムを示している。
【0036】
まず第1通信制御部12は、プライベートネットワークPNの配下のクライアント装置20のいずれかから、IPパケットを受信した場合(S10)、第1変換テーブルを参照する(S11)。次に第1通信制御部12は、受信したIPパケットに送信元情報として含まれるプライベートアドレス及び変換前ポート番号のセットが、第1変換テーブルT1に基づいて、新規な組み合わせか否かを判定する(S12)。具体的には第1通信制御部12は、受信したIPパケットのヘッダ部分から送信元IPアドレス及び送信元ポート番号として含まれるプライベートアドレス及び変換前ポート番号のセットを抽出する。そして第1通信制御部12は、当該セットが変換テーブルT1に登録されているか否かを判定する。
【0037】
第1通信制御部12は、当該セットが変換テーブルT1に登録されていない、つまり新規な組み合わせである場合(S12でYes)、処理をS13に進める。
【0038】
S13において、第1グローバルアドレスG1に対応するポート番号であって、NAPT変換に利用可能なポート番号の数が所定閾値以下であるか否かを判定する。第1グローバルアドレスG1に対応するポート番号とは、第1グローバルアドレスG1と組み合わせ可能なポート番号である。閾値は0であってもよいし、0より大きくてもよい。後者であれば、利用可能なポート番号に余裕を残したままそれ以上のポート番号が消費されることを抑制できる。したがってポート番号を利用する他の機能がポート番号不足による影響を受ける可能性を前者よりも低減できる。
【0039】
NAPT変換に利用可能なポート番号の数が所定閾値以下である場合は(S13でYes)、第1通信制御部12は、IPパケットに送信元情報として含まれるセットと、第2グローバルアドレスG2とを対応付けて第1変換テーブルT1に登録する(S14)。そして第1通信制御部12は、連動する第2通信制御部14に、処理中パケット、つまり受信したIPパケットを転送する(S15)。このとき第1通信制御部12は、処理対象パケットのレイヤ3以上の送信元情報、宛先情報及びデータ部の情報は書き換えずに全て維持したままIPパケットを転送する。第2通信制御部14が第1通信制御部12と別の装置である場合、第2通信制御部14への転送は、第2通信制御部14に対応するMACアドレス(Media Access Control address)をレイヤ2の送信先として指定し、プライベートネットワークPN経由で送信することで実現する。
【0040】
転送されたIPパケットは、第2通信制御部14が取得する。第2通信制御部14は受信したIPパケットに対して通常のNAPT変換処理を適用し、送信元情報が変換されたIPパケットを、宛先情報に応じた装置、つまり、グローバルネットワークGN上の外部装置30に送信する。
【0041】
一方、NAPT変換に利用可能なポート番号の数が所定閾値より大きい場合は(S13でNo)、通信制御システム10は処理をS16~S19(フローA)に進める。フローAは、通常のNAPT変換処理である。S16において第1通信制御部12は、まず受信したIPパケットに送信元情報として含まれるセットに対して、利用可能な1のポート番号を変換後ポート番号として割り当てる。次に第1通信制御部12は、受信したIPパケットに送信元情報として含まれるセットと、第1グローバルアドレスG1及び変換後ポート番号のセット(変換後のセット)とを対応付けて、第1変換テーブルT1に登録する(S17)。次に第1通信制御部12は、受信したIPパケットに送信元情報として含まれるセットを、変換後のセットに変換する(S18;NAPT変換)。尚、変換とは、付け替えることを意味する。またS17及びS18に示す処理は、並行して行われてもよいし、S18の後にS17に示す処理が行われてもよい。最後に第1通信制御部12は、送信元情報が変換されたIPパケットを、宛先情報に応じた装置、つまりグローバルネットワークGN上の外部装置30に送信する(S19)。
【0042】
第1通信制御部12は、受信したIPパケットに送信元情報として含まれるセットが変換テーブルT1に登録されている、つまり新規な組み合わせでない場合(S12でNo)、処理をS20~S24(フローB)に進める。
【0043】
S20において、第1通信制御部12は、第1変換テーブルT1において、受信したIPパケットに送信元情報として含まれるセットに対応付けられたグローバルアドレス及び変換後ポート番号のセットを読み出す。次に第1通信制御部12は、読み出したセットに含まれるグローバルアドレスが第1グローバルアドレスG1である場合(S21でYes)、処理をS22に進める。
【0044】
S22において第1通信制御部12は、通常のNAPT変換処理を実行する。つまり第1通信制御部12は、受信したIPパケットの送信元情報に含まれるセットを、読み出したセットに変換する。そして第1通信制御部12は、送信元情報が変換されたIPパケットを宛先情報に応じた外部装置30に送信する(S23)。
【0045】
尚、第1通信制御部12は読み出したセットに含まれるグローバルアドレスが第2グローバルアドレスG2である場合(S21でNo)、S15と同様にIPパケットを第2通信制御部14に転送する(S24)。
【0046】
尚、NAPT拡張アルゴリズムが適用されたエンドポイントから再びグローバルネットワークGNに対する通信が発生した場合、エンドポイントはNAPT拡張アルゴリズムに関知しないため、IPパケットを第1通信制御部12に対して送信する。この場合、第1通信制御部12は、第1変換テーブルT1を参照することにより、受信したIPパケットの送信元情報に該当する変換先アドレスが第2通信制御部14のものであることが判断できる。したがって第1通信制御部12は、
図5のS24と同様にIPパケットを第2通信制御部14に転送する。
【0047】
このように実施形態1によれば、第1通信制御部12でNAPTのポート番号不足が発生している場合、上記NAPT拡張アルゴリズムを用いて第2通信制御部14にIPパケットを転送し、NAPT変換処理を代行させる。したがってポート番号不足でも通信を失敗させずに新たな通信を確立できる。上記で示したNAPT処理の代行は、第2通信制御部14において利用可能なポート番号に空きがある限り実行できる。また3台以上の通信制御部を用いても、同様の仕組みでNAPT処理の代行を行うことができる。
【0048】
これにより、利用可能な回線数に応じてNAPT変換処理で変換可能なエンドポイント数の上限を拡張できる。つまりNAPT利用環境において多数のエンドポイントが好適に処理されることができる。その結果、ポート番号不足による通信障害を回避するとともに、ネットワーク構成の制限を拡張できる。
【0049】
尚、上述では、転送されたIPパケットを受信した第2通信制御部14は、通常のNAPT変換処理を適用させるとしたが、これに代えて、第1通信制御部12と同様の拡張NAPT変換アルゴリズムを適用させてもよい。この場合、第2通信制御部14においてもポート番号不足である場合には、第2通信制御部14はIPパケットを他の通信制御部に転送する。この転送先は第1通信制御部12であってもよいし、その他の通信制御部であってもよい。
【0050】
尚、上述では、第1通信制御部12は、クライアント装置20から外部装置30にIPパケットを送信する場合にNAPT拡張アルゴリズムを用いるとしたが、外部装置30からクライアント装置20にIPパケットを送信する場合は、通常のアルゴリズムを用いてよい。すなわち第1通信制御部12は、宛先情報としてグローバルアドレス及び変換後ポート番号のセットを含むIPパケットを受信した場合、以下の処理を実行してよい。まず第1通信制御部12は、第1変換テーブルT1において、宛先情報として含まれるセットに対応付けられたプライベートアドレス及び変換後ポート番号のセットを読み出してよい。そして第1通信制御部12は、受信したIPパケットを、読み出したセットに対応するクライアント装置20に転送してよい。
【0051】
<実施形態2>
次に、本開示の実施形態2について説明する。
図6は、実施形態2にかかるシステム1aの構成を示すブロック図である。実施形態2において、第1通信制御部と第2通信制御部とは、主・副の関係にある。
【0052】
システム1aは、システム1と基本的に同様の構成を有するが、第1通信制御部12の一例として主系装置12aと、第2通信制御部14の一例として副系装置14aと、外部装置30の一例としてサーバ31とを備える。
【0053】
主系装置12a及び副系装置14aは、いずれもNAPTが動作可能なコンピュータ装置である。両装置の配下には同一のプライベートネットワークPNが存在する。プライベートネットワークPN内には複数のクライアント装置20-1,20-2,20-3が存在する。尚、クライアント装置20の数はこれに限らない。複数のクライアント装置20は、グローバルネットワークGN上に存在するサーバ31に対して通信を試み、多数のセッションを生成しようとする。尚、複数のクライアント装置20は主系装置12aをデフォルトルートとし、サーバ31と通信する場合はまず主系装置12aを経由するものとする。つまり主系装置12aは、クライアント装置20とサーバ31とが通信する場合に、副系装置14aよりも優先して、通信にかかるIPパケットを受信する。
【0054】
そして主系装置12a及び副系装置14aは、実施形態1と同様のNAPT拡張アルゴリズムを実施可能である。
【0055】
図7~8は、実施形態2にかかるシステムの処理の流れを示すシーケンス図である。
図7は、送信元情報のセットが新規であり、かつポート番号の不足が発生していない場合のシステムの処理の流れを示している。
【0056】
クライアント装置20-1がサーバ31に対して新しいセッションを張ろうとした場合、クライアント装置20-1は、サーバ31に対してセッション確立を要求するIPパケットを主系装置12aに送信する(S100)。送信されたIPパケットは、送信元情報としてプライベートアドレスP1及びポート番号p1を含む。
【0057】
この場合、送信元情報のセットが新規であり、かつポート番号の不足が発生していないため、IPパケットを受信した主系装置12aは、通常のNAPT変換処理に従って、受信したIPパケットを処理する。
【0058】
このとき主系装置12aは、まず
図4のS16~S17に示す第1変換テーブルT1の登録処理を実行する(S101)。そして主系装置12aは、
図4のS18に示すNAPT変換処理を実行する(S102)。そして主系装置12aは、送信元情報が変換されたIPパケットを、サーバ31に送信する(S103)。送信されたIPパケットは、送信元情報としてグローバルアドレスG1及びポート番号p11を含む。
【0059】
IPパケットを受信したサーバ31は、グローバルアドレスG1及びポート番号p11を宛先情報として含む応答パケットを用いて、グローバルアドレスG1に対応する主系装置12aに対して応答する(S104)。主系装置12aは、第1変換テーブルT1を用いてNAPT変換処理を実行する(S105)。すなわち主系装置12aは、第1変換テーブルT1において、宛先情報に含まれるセットに対応付けられたプライベートアドレスP1及びポート番号p1のセットを読み出す。そして主系装置12aは、宛先情報のセットを読み出したセットに変換し、変換後の応答パケットを該当するエンドポイント(クライアント装置20-1)に送信する(S106)。
【0060】
クライアント装置20が新規セッションの生成を試みる度に、その都度S100~S106に示す処理が実行されてよい。
【0061】
そして一度第1変換テーブルT1に登録されたクライアント装置20-1が、その後、サーバ31に対して同じセッションでIPパケットを主系装置12aに送信したとする(S110)。この場合、主系装置12aは、第1変換テーブルT1を用いてNAPT変換処理を実行し(S111)、送信元情報が変換されたIPパケットをサーバ31に送信する(S112)。
【0062】
次に、上記処理が繰り返され、主系装置12aで利用可能なポート番号が使い切られた場合について説明する。
【0063】
図8は、送信元情報のセットが新規であり、かつポート番号の不足が発生している場合のシステムの処理の流れを示している。
【0064】
クライアント装置20-2がサーバ31に対して新しいセッションを張ろうとした場合、クライアント装置20-2は、サーバ31に対してセッション確立を要求するIPパケットを主系装置12aに送信する(S120)。送信されたIPパケットは、送信元情報としてプライベートアドレスP2及びポート番号p2を含む。
【0065】
この場合、送信元情報のセットが新規であり、かつポート番号の不足が発生しているため、IPパケットを受信した主系装置12aは、上述したNAPT拡張アルゴリズムに従って、受信したIPパケットを処理する。
【0066】
このとき主系装置12aは、まず
図3のS11~S14に示す第1変換テーブルT1の登録処理を実行する(S121)。このとき主系装置12aは、登録するグローバルアドレスとして、副系装置14aのグローバルアドレスG2を用いる。そして主系装置12aは、
図3のS15と同様に受信したIPパケットを、送信元情報を変えないで、副系装置14aに転送する(S122)。このとき主系装置12aは、第1変換テーブルT1を副系装置14aに共有しないでよい。
【0067】
副系装置14aは、プライベートネットワークPN側インタフェースでIPパケットを受信する。IPパケットを受信した副系装置14aは、
図7のS101~S102と同様に通常のNAPT処理を実行する。具体的には、副系装置14aは、IPパケットに対して通常のNAPT変換処理を適用するため、利用可能な1のポート番号を変換後ポート番号として割り当て、第2変換テーブルT2にアドレス変換情報を追加で登録する(S123)。アドレス変換情報は、送信元情報に含まれるプライベートアドレス及び変換前ポート番号のセットと、第2グローバルアドレスG2及び変換後ポート番号のセットとを対応付けた情報である。次に副系装置14aは、送信元情報に含まれるプライベートアドレス及び変換前ポート番号のセットを、第2グローバルアドレスG2及び変換後ポート番号のセットに変換する(S124)。そして副系装置14aは、NAPT変換したIPパケットを宛先情報に応じた装置、つまりサーバ31へ送信する(S125)。送信されたIPパケットの送信元情報は、第2グローバルアドレスG2及びポート番号p21のセットを含む。
【0068】
サーバ31は、通信の送信元を副系装置14aと認識するため、サーバ31からの応答は副系装置14aへと送信される(S126)。副系装置14aはサーバ31からの応答パケットを通常のNAPT変換処理で変換し(S127)、変換した宛先情報に該当するエンドポイント(クライアント装置20-2)に、応答パケットを送信する(S128)。
【0069】
クライアント装置20-2がサーバ31に対して再び通信を行った場合、IPパケットはデフォルトルートに従って主系装置12aへと送信される(S130)。主系装置12aはNAPT拡張アルゴリズムに従って、受信したIPパケットを副系装置14aへと転送する。副系装置14aは第2変換テーブルT2に従ってIPパケットをNAPT変換し(S132)、送信元情報が変換されたIPパケットをサーバ31に送信する(S133)。
【0070】
このように、主系装置12aでポート番号が枯渇した場合でも、副系装置14aにIPパケットを転送してNAPT変換処理を代行させることで、クライアント装置20群とサーバ31との間で新たなアドレス変換を成立させ、セッションを確立できる。
【0071】
<実施形態2の効果>
関連するNAPT環境では、NAPT変換に利用できるポート数の上限が64512個であることから、NAPTで処理可能なエンドポイント数も64512が上限であった。しかし本実施形態2によれば、上述した上限を超える数のエンドポイントをNAPT変換できる。
【0072】
実施形態2では、主系装置12aと副系装置14a双方のポート番号を利用してNAPT変換処理を行うことで、NAPTに利用できるポート番号の数が疑似的に2倍に拡張できる。グローバルアドレス及び通信制御部として機能する装置の台数を増やすことで、疑似的に拡張できるポート番号数をさらに増加できる。尚、装置間で変換テーブルを共有しなくてよいため、装置の台数を増やしても変換テーブルの管理が簡易である。したがって、装置の台数を容易に増やすことができる。
【0073】
本実施形態2ではNAPTに利用可能なポート番号数を拡張することで、ポート番号不足によるNAPT変換処理の失敗を防止し、通信障害を抑制できる。また、処理できるエンドポイント数が増加するため、ネットワーク構成の制限を緩和してより大規模なネットワークを構築できる。
【0074】
<実施形態3>
次に、本開示の実施形態3について説明する。実施形態3では、通信制御システムに含まれる複数の通信制御部が互いに負荷分散又は冗長化されており、デフォルトルートが決まっていない。
【0075】
図9は、実施形態3にかかるシステム1bの構成を示すブロック図である。実施形態3のシステム1bは、実施形態2のシステム1aと基本的に同様の構成であるが、主系装置12a及び副系装置14aに代えて、第1通信制御装置12b、第2通信制御装置14b、および第3通信制御装置16bを備える点で相違する。尚、通信制御装置の数は3に限らず、2であってもよいし、4以上であってもよい。
【0076】
本実施形態3では、システム1bの管理者は、各通信制御装置について、ポート番号不足が発生した場合の代理装置を予め設定する。例えば第1通信制御装置12b、第2通信制御装置14b及び第3通信制御装置16bは、それぞれ、ポート番号不足時には第2通信制御装置14b、第3通信制御装置16b及び第1通信制御装置12bを代理装置として用いるように設定する。通信制御装置が2つの場合は、2つの通信制御装置が互いに互いの代理装置となるように設定してよい。
【0077】
尚、クライアント装置20群とサーバ31との通信は、第1通信制御装置12b、第2通信制御装置14b及び第3通信制御装置16bによって負荷分散または冗長化されている。本実施形態3では、クライアント装置20群のデフォルトルートが1の通信制御装置に限定されておらず、3つの通信制御装置のいずれもクライアント装置20群から送信される通信のネクストホップとなる可能性がある。
【0078】
第1通信制御装置12b、第2通信制御装置14b及び第3通信制御装置16bはいずれも、自己のポート番号が不足した場合、上述したNAPT拡張アルゴリズムに従って、代理先装置にIPパケットを転送する。そして代理先装置においてNAPT変換処理が実行される。
【0079】
例として第1通信制御装置12bでポート番号不足が発生した場合、NAPT拡張アルゴリズムに従って第2通信制御装置14bにIPパケットを転送し、第2通信制御装置14bにNAPT変換処理を行わせることができる。このとき第2通信制御装置14bでポート番号不足が枯渇していた場合は、第2通信制御装置14bはさらに第3通信制御装置16bにIPパケットを転送してNAPT変換処理を行わせることができる。
【0080】
尚、通信制御システム10に含まれる全ての通信制御装置でポート番号の逼迫が発生している場合、NAPT拡張アルゴリズムによる代理装置への転送が繰り返されるというループが発生する。これを防止するために、複数の通信制御装置間のIPパケットの転送回数が所定回数以上となった場合、複数の通信制御装置のいずれかの通信制御装置は、IPパケットを廃棄してよい。具体的には通信制御装置が代理装置にIPパケットを転送する場合に、転送するIPパケットのTTL(Time to live)フィールドを減算する。これによりIPパケットの転送が所定回数繰り返された場合にIPパケットを消滅させることができる。
【0081】
実施形態3によれば、いずれの通信制御装置でポート番号不足が発生するか不明な場合でも、ある通信制御装置でポート番号不足が発生した場合に別の通信制御装置でポート番号を補うことができる。したがって、より柔軟な障害防止及びネットワーク構成が可能となる。
【0082】
尚、上述の実施形態3では、通信制御システム10bに3つの通信制御装置が含まれる場合について説明したが、通信制御装置の数はこれに限らない。例えば通信制御装置の数が第1通信制御装置12b及び第2通信制御装置14bの2つである場合、第1通信制御装置12b及び第2通信制御装置14bは、各々が互いの代理装置となる。
【0083】
<実施形態4>
次に、本開示の実施形態4について説明する。実施形態4は、NAPT拡張アルゴリズムを単体の装置で実現する。
【0084】
図10は、実施形態4にかかるシステム1cの構成を示すブロック図である。実施形態4のシステム1cは、実施形態2のシステム1aと基本的に同様の構成を有する。但し、システム1cは、通信制御システム10aに代えて、単体の通信制御装置10cを備える。
【0085】
通信制御装置10cは、複数のインタフェースでグローバルネットワークGNと接続されて、各インタフェースで異なるグローバルアドレスG1,G2が割り当てられている。クライアント装置20がサーバ31と通信する場合、デフォルトルートの送信先としてグローバルアドレスG1が選択される。
【0086】
つまり通信制御装置10cは、グローバルアドレスG1が割り当てられた第1インタフェースを有する第1通信制御部12cと、別回線のグローバルアドレスG2が割り当てられた第2インタフェースを有する第2通信制御部14cとを備えると見ることができる。通信制御装置10cは、第1変換テーブルT1及び第2変換テーブルT2を統合した変換テーブルT3を記憶装置に有するか、参照可能な状態にある。
【0087】
図11は、実施形態4にかかる変換テーブルT3のデータ構造の一例を示す図である。変換テーブルT3では、グローバルアドレスG1に対応するポート番号が不足した場合に記録されるレコードR2において、変換後アドレスとして、グローバルアドレスG2に加えて、グローバルアドレスG2に対応するポート番号が記録されている。
【0088】
このようなシステム1cにおいて、通信制御装置10cは、
図3~
図5に示すNAPT拡張アルゴリズムを実行する。すなわち通信制御装置10cは、グローバルアドレスG1に対応するポート番号が不足していない状況においては、通常のNAPT変換処理を実行する。具体的には第1通信制御部12cは、クライアント装置20群の新たなエンドポイントからサーバ31を宛先としたIPパケットを受信した場合、デフォルトルート上にあるグローバルアドレスG1を変換後アドレスとしてS16~S18に示す処理を実行する。そしてS19で、第1通信制御部12cは、グローバルアドレスG1からIPパケットをサーバ31に送信する。
【0089】
一方、グローバルアドレスG1に対応するポート番号が不足している状況下では、通信制御装置10cは、アルゴリズムの拡張部分を実行する。つまり通信制御装置10cの第1通信制御部12cは、グローバルアドレスG1ではなくグローバルアドレスG2を用いてNAPT変換処理を実行し、変換テーブルT3を更新する。次に通信制御装置10cの第2通信制御部14cは、IPパケットを取得し、変換テーブルT3を参照する。次に第2通信制御部14cは、IPパケットのアドレス情報を変換する。次に第2通信制御部14cは、IPパケットの送信元情報を、アドレス変換されたアドレス及びポート番号としてグローバルネットワークGN上のサーバ31に送信する。このアドレス変換は通信制御装置10cの変換テーブルT3に保持されるため、通信制御装置10cは、同様のエンドポイントを送信元又は宛先とするIPパケットを受信した場合、通常のNAPT変換処理によってIPパケットを送信する。
【0090】
実施形態4によれば、複数の外部回線に対して1台の通信制御装置が接続されている環境下であれば、複数の通信制御装置を用意せずともNAPT拡張アルゴリズムを実行できる。
【0091】
続いて、通信制御システムに含まれる通信制御装置の物理構成を説明する。
図12は、通信制御装置として用いられ得るコンピュータの構成例を示す図である。コンピュータ1000は、プロセッサ1010、記憶部1020、ROM(Read Only Memory)1030、RAM(Random Access Memory)1040、通信インタフェース(IF:Interface)1050、及びユーザインタフェース1060を有する。
【0092】
通信インタフェース1050は、有線通信手段又は無線通信手段などを介して、コンピュータ1000と通信ネットワークとを接続するためのインタフェースである。ユーザインタフェース1060は、例えばディスプレイなどの表示部を含む。また、ユーザインタフェース1060は、キーボード、マウス、及びタッチパネルなどの入力部を含む。尚、ユーザインタフェース1060は、必須ではない。
【0093】
記憶部1020は、各種のデータを保持できる補助記憶装置である。記憶部1020は、必ずしもコンピュータ1000の一部である必要はなく、外部記憶装置であってもよいし、ネットワークを介してコンピュータ1000に接続されたクラウドストレージであってもよい。
【0094】
ROM1030は、不揮発性の記憶装置である。ROM1030には、例えば比較的容量が少ないフラッシュメモリなどの半導体記憶装置が用いられる。プロセッサ1010が実行するプログラムは、記憶部1020又はROM1030に格納され得る。記憶部1020又はROM1030は、例えば通信制御装置内の各部の機能を実現するための各種プログラムを記憶する。
【0095】
上記プログラムは、コンピュータに読み込まれた場合に、実施形態で説明された1又はそれ以上の機能をコンピュータに行わせるための命令群(又はソフトウェアコード)を含む。プログラムは、非一時的なコンピュータ可読媒体又は実体のある記憶媒体に格納されてもよい。限定ではなく例として、コンピュータ可読媒体又は実体のある記憶媒体は、random-access memory(RAM)、read-only memory(ROM)、フラッシュメモリ、solid-state drive(SSD)又はその他のメモリ技術、CD-ROM、digital versatile disc(DVD)、Blu-ray(登録商標)ディスク又はその他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ又はその他の磁気ストレージデバイスを含む。プログラムは、一時的なコンピュータ可読媒体又は通信媒体上で送信されてもよい。限定ではなく例として、一時的なコンピュータ可読媒体又は通信媒体は、電気的、光学的、音響的、またはその他の形式の伝搬信号を含む。
【0096】
RAM1040は、揮発性の記憶装置である。RAM1040には、DRAM(Dynamic Random Access Memory)又はSRAM(Static Random Access Memory)などの各種半導体メモリデバイスが用いられる。RAM1040は、データなどを一時的に格納する内部バッファとして用いられ得る。プロセッサ1010は、記憶部1020又はROM1030に格納されたプログラムをRAM1040に展開し、実行する。プロセッサ1010は、CPU(Central Processing Unit)又はGPU(Graphics Processing Unit)であってよい。プロセッサ1010がプログラムを実行することで、通信制御装置内の各部の機能が実現され得る。プロセッサ1010は、データなどを一時的に格納できる内部バッファを有してもよい。
【0097】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
【0098】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)
プライベートネットワークに接続され、第1グローバルアドレスを有する第1通信制御部と、
前記プライベートネットワークに接続され、前記第1グローバルアドレスと異なる第2グローバルアドレスを有する第2通信制御部と
を備え、
前記第1通信制御部は、
受信したIPパケットに送信元情報として含まれる、プライベートアドレス及び変換前ポート番号のセットが、OSI参照モデルのネットワーク層のNAPT(Network Address Port Translation)変換に用いられる第1変換テーブルであって、プライベートアドレス及び変換前ポート番号と、グローバルアドレス及び変換後ポート番号とを対応付ける第1変換テーブルに基づいて、新規な組み合わせと判定される場合、前記第1グローバルアドレスに対応するポート番号であって、前記NAPT変換に利用可能なポート番号の数が予め定められた閾値以下であるか否かを判定し、
前記NAPT変換に利用可能なポート番号の数が前記閾値以下である場合は、
受信した前記IPパケットに送信元情報として含まれる前記セットと、前記第2グローバルアドレスとを対応付けて前記第1変換テーブルに登録し、
前記第2通信制御部に、受信した前記IPパケットを転送する
通信制御システム。
(付記2)
前記第1通信制御部は、
前記NAPT変換に利用可能なポート番号の数が前記閾値より大きい場合は、
受信した前記IPパケットに送信元情報として含まれる前記セットに対して、利用可能な1のポート番号を変換後ポート番号として割り当て、
受信した前記IPパケットに送信元情報として含まれる前記セットを、前記第1グローバルアドレス及び前記変換後ポート番号のセットに変換し、
受信した前記IPパケットに送信元情報として含まれる前記セットと、変換した前記セットとを対応付けて、前記第1変換テーブルに登録し、
送信元情報が変換された前記IPパケットを宛先の装置に送信する
付記1に記載の通信制御システム。
(付記3)
前記第1通信制御部は、
受信した前記IPパケットに送信元情報として含まれる前記セットが、前記第1変換テーブルに基づいて新規な組み合わせと判定されなかった場合、前記第1変換テーブルにおいて、受信した前記IPパケットに送信元情報として含まれる前記セットに対応付けられたグローバルアドレス及び変換後ポート番号のセットを読み出し、
読み出した前記セットに含まれるグローバルアドレスが前記第1グローバルアドレスである場合、
受信した前記IPパケットに送信元情報として含まれる前記セットを、読み出した前記セットに変換し、
送信元情報が変換された前記IPパケットを宛先の装置に送信し、
読み出した前記セットに含まれるグローバルアドレスが前記第2グローバルアドレスである場合、受信した前記IPパケットを前記第2通信制御部に転送する
付記1又は2に記載の通信制御システム。
(付記4)
宛先情報としてグローバルアドレス及び変換後ポート番号のセットを含むIPパケットを受信した場合、前記第1変換テーブルにおいて、受信した前記IPパケットに宛先情報として含まれる前記セットに対応付けられたプライベートアドレス及び変換後ポート番号のセットを読み出し、
受信した前記IPパケットを、読み出した前記セットに対応付けられたクライアント装置に転送する
付記1から3のいずれか1項に記載の通信制御システム。
(付記5)
前記第1通信制御部は、前記プライベートネットワーク配下のクライアント装置と外部のネットワークの装置とが通信する場合に、前記第2通信制御部よりも優先して、前記通信にかかるIPパケットを受信する
付記1から4のいずれか1項に記載の通信制御システム。
(付記6)
前記第1通信制御部及び前記第2通信制御部は、冗長化されている
付記1から4のいずれか1項に記載の通信制御システム。
(付記7)
前記第2通信制御部は、
受信した前記IPパケットに送信元情報として含まれる、プライベートアドレス及び変換前ポート番号のセットが、前記第2通信制御部によるNAPT変換に用いられる第2変換テーブルであって、プライベートアドレス及び変換前ポート番号と、グローバルアドレス及び変換後ポート番号とを対応付ける第2変換テーブルに基づいて、新規な組み合わせと判定される場合、前記第2グローバルアドレスに対応するポート番号であって、前記NAPT変換に利用可能なポート番号の数が予め定められた第2閾値以下であるか否かを判定し、
前記NAPT変換に利用可能なポート番号の数が前記第2閾値より大きい場合は、
受信した前記IPパケットに送信元情報として含まれる前記セットに対して、利用可能な1のポート番号を変換後ポート番号として割り当て、
受信した前記IPパケットに送信元情報として含まれる前記セットを、前記第2グローバルアドレス及び前記変換後ポート番号のセットに変換し、
受信した前記IPパケットに送信元情報として含まれる前記セットと、変換した前記セットとを対応付けて、前記第2変換テーブルに登録し、
送信元情報が変換された前記IPパケットを宛先の装置に送信し、
前記NAPT変換に利用可能なポート番号の数が前記第2閾値以下である場合は、
受信した前記IPパケットに送信元情報として含まれる前記セットと、前記第1グローバルアドレスとを対応付けて前記第2変換テーブルに登録し、
前記第1通信制御部に、受信した前記IPパケットを転送する
付記1から6のいずれか1項に記載の通信制御システム。
(付記8)
複数の通信制御装置間の前記IPパケットの転送回数が予め定められた回数以上となった場合、前記複数の通信制御装置のいずれかの通信制御装置は、前記IPパケットを廃棄する
付記7に記載の通信制御システム。
(付記9)
受信したIPパケットに送信元情報として含まれる、プライベートアドレス及び変換前ポート番号のセットが、プライベートアドレス及び変換前ポート番号のセットと、グローバルアドレス及び変換後ポート番号のセットとを対応付ける変換テーブルであって、OSI参照モデルのネットワーク層のNAPT(Network Address Port Translation)変換に用いられる変換テーブルに基づいて、新規な組み合わせと判定される場合、自己が有するグローバルアドレスに対応するポート番号であって、前記NAPT変換に利用可能なポート番号の数が予め定められた閾値以下であるか否かを判定し、
前記NAPT変換に利用可能なポート番号の数が前記閾値以下である場合は、
受信した前記IPパケットに送信元情報として含まれる前記セットと、他の通信制御装置が有するグローバルアドレスとを対応付けて前記変換テーブルに登録し、
前記他の通信制御装置に、受信した前記IPパケットを転送する
通信制御装置。
(付記10)
前記NAPT変換に利用可能なポート番号の数が前記閾値より大きい場合は、
受信した前記IPパケットに送信元情報として含まれる前記セットに対して、利用可能な1のポート番号を変換後ポート番号として割り当て、
受信した前記IPパケットに送信元情報として含まれる前記セットを、自己が有する前記グローバルアドレス及び前記変換後ポート番号のセットに変換し、
受信した前記IPパケットに送信元情報として含まれる前記セットと、変換した前記セットとを対応付けて、前記変換テーブルに登録し、
受信した前記IPパケットを、宛先の装置に送信する
付記9に記載の通信制御装置。
(付記11)
受信したIPパケットに送信元情報として含まれるプライベートアドレス及び変換前ポート番号のセットが、プライベートアドレス及び変換前ポート番号のセットと、グローバルアドレス及び変換後ポート番号のセットとを対応付ける変換テーブルであって、OSI参照モデルのネットワーク層のNAPT(Network Address Port Translation)変換に用いられる変換テーブルに基づいて、新規な組み合わせと判定される場合、自己が有するグローバルアドレスに対応するポート番号であって、前記NAPT変換に利用可能なポート番号の数が予め定められた閾値以下であるか否かを判定し、
前記NAPT変換に利用可能なポート番号の数が前記閾値以下である場合は、
受信した前記IPパケットに送信元情報として含まれる前記セットと、他の通信制御装置が有するグローバルアドレスとを対応付けて前記変換テーブルに登録し、
前記他の通信制御装置に、受信した前記IPパケットを転送する
通信制御方法。
(付記12)
コンピュータに、
受信したIPパケットに送信元情報として含まれるプライベートアドレス及び変換前ポート番号のセットが、プライベートアドレス及び変換前ポート番号のセットと、グローバルアドレス及び変換後ポート番号のセットとを対応付ける変換テーブルであって、OSI参照モデルのネットワーク層のNAPT(Network Address Port Translation)変換に用いられる変換テーブルに基づいて、新規な組み合わせと判定される場合、自己が有するグローバルアドレスに対応するポート番号であって、前記NAPT変換に利用可能なポート番号の数が予め定められた閾値以下であるか否かを判定する処理と、
前記NAPT変換に利用可能なポート番号の数が前記閾値以下である場合は、
受信した前記IPパケットに送信元情報として含まれる前記セットと、他の通信制御装置が有するグローバルアドレスとを対応付けて前記変換テーブルに登録し、
前記他の通信制御装置に、受信した前記IPパケットを転送する処理と
を実行させるためのプログラム。
【符号の説明】
【0099】
1,1a,1b,1c システム
9 システム
10,10a,10b 通信制御システム
10c 通信制御装置(通信制御システム)
12,12c 第1通信制御部
12a 主系装置(第1通信制御部)
12b 第1通信制御装置(第1通信制御部)
14,14c 第2通信制御部
14b 第2通信制御装置(第2通信制御部)
14a 副系装置(第2通信制御部)
16b 第3通信制御装置
90 通信制御装置
20 クライアント装置
30 外部装置
31 サーバ
1000 コンピュータ
1010 プロセッサ
1020 記憶部
1030 ROM
1040 RAM
1050 通信インタフェース(IF)
1060 ユーザインタフェース(IF)
G1,G2 グローバルアドレス
GN グローバルネットワーク
PN プライベートネットワーク