JP6978612B2 - ネットワークアドレス変換 - Google Patents

ネットワークアドレス変換 Download PDF

Info

Publication number
JP6978612B2
JP6978612B2 JP2020551868A JP2020551868A JP6978612B2 JP 6978612 B2 JP6978612 B2 JP 6978612B2 JP 2020551868 A JP2020551868 A JP 2020551868A JP 2020551868 A JP2020551868 A JP 2020551868A JP 6978612 B2 JP6978612 B2 JP 6978612B2
Authority
JP
Japan
Prior art keywords
bit
target
port
tuples
nat
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.)
Active
Application number
JP2020551868A
Other languages
English (en)
Other versions
JP2021517414A (ja
Inventor
紹亮 安
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.)
New H3C Technologies Co Ltd
Original Assignee
New H3C Technologies 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 New H3C Technologies Co Ltd filed Critical New H3C Technologies Co Ltd
Publication of JP2021517414A publication Critical patent/JP2021517414A/ja
Application granted granted Critical
Publication of JP6978612B2 publication Critical patent/JP6978612B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/2514Translation of Internet protocol [IP] addresses between local and global IP addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/2517Translation of Internet protocol [IP] addresses using port numbers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/255Maintenance or indexing of mapping tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/2557Translation policies or rules
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC

Description

NAT(Network Address Translation、ネットワークアドレス変換)機器は、パケットを受信した後、当該パケットがNAT処理される必要であるとともに当該パケットがセッション情報の確立条件を満たす場合に、確立フローを実行する。ここでの「セッション情報」は、例えば、パケットのソースIP(Internet Protocol、インターネットプロトコル)アドレス、宛先アドレス、ソースポート、宛先ポート及び伝送層プロトコルの5タプルを含む。
ソースIPアドレスのNAT処理を例とする。NATリソースプールから1つのIPアドレス及び当該IPアドレスの1つのポートを選定し、当該IPアドレス及び当該ポートを利用して当該パケットのオリジナル5タプルにおけるソースIPアドレス及びソースポートを付け替えて、新たな5タプルを形成し、更に、記憶媒体(例えば、DDR(Double Data Rate)データ倍速同期動的ランダムメモリ)に格納されたセッション表におけるハッシュ表を検索し、当該新たな5タプルが衝突しない5タプルであると判断したときに、即ち、算出された当該新たな5タプルのハッシュ値がハッシュ表においてハッシュ衝突を発生しないときに、当該ハッシュ表及び対応する結果表に当該新たな5タプル及び当該オリジナル5タプルを記録し、当該新たな5タプルに基づいて当該パケットに対してNAT処理を行い、そうでなければ、NATリソースプールから1つのIPアドレス及び当該IPアドレスの1つのポートを再度選定して分析を行う。
上記確立フローがNAT処理を実現可能であるが、以下の問題が存在する。セッション表のハッシュ表に基づく従来のデータ記憶方式では、毎回の衝突探りで1つの新たな5タプルしかテストできず、当該新たな5タプルに衝突が発生したときに、複数回の探りが必要となる。一方で、セッション表の所在する記憶媒体を読み取るたびにインターフェース遅延が存在するため、確立性能が悪いことに違いない。
本発明の例示的な実施例に示すネットワーキングシステムの構造模式図である。 本発明の例示的な実施例に示すNAT方法のフローチャートである。 本発明の例示的な実施例に示すソースIPアドレスを変換するときにビットマップに基づいてパケットに対応するターゲット5タプルを決定するグラフ模式図である。 本発明の例示的な実施例に示すソースIPアドレスを変換するときにビットマップにおけるビットを復元するグラフ模式図である。 本発明の例示的な実施例に示すNAT装置の構造模式図である。 本発明の例示的な実施例に示すNAT機器の構造模式図である。
ここで、例示的な実施例を詳細に説明する。その例示は、図面に示される。以下の記述は、図面に係る際、別途示さない限り、異なる図面における同じ符号が同じ又は類似する要素を示す。以下の例示的な実施例に記述される実施形態が本発明と一致する全ての実施形態を代表するわけではない。逆に、それらは、単に添付する特許請求の範囲に詳細に記述されるような、本発明の幾つかの態様に一致する装置及び方法の例である。
本発明で使用される用語は、単に特定の実施例を記述する目的であり、本発明を制限するためのものではない。本発明及び添付する特許請求の範囲で使用される単数形式の「一種」、「前記」及び「当該」も、文脈から他の意味を明瞭で分かる場合でなければ、複数の形式を含むことを意図する。理解すべきことは、本文で使用される用語「及び/又は」が、1つまたは複数の関連する列挙項目を含む如何なる或いは全ての可能な組み合わせを指す。
理解すべきことは、本発明において第1、第2、第3等という用語を用いて各種の情報を記述するが、これらの情報は、これらの用語に限定されるものではない。これらの用語は、単に同一のタイプの情報同士を区分するために用いられる。例えば、本発明の範囲を逸脱しない限り、第1情報が第2情報と呼称されてもよく、類似的に、第2情報が第1情報と呼称されてもよい。これは、コンテキストに依存する。例えば、ここで使用される言葉「場合」は、「…とき」や「…ときに」あるいは「特定の状況に応じて」として解釈されてもよい。
理解の便宜上、以下では、NAT(Network Address Translation、ネットワークアドレス変換)に関する関連内容を紹介する。
変換モードの側面から言うと、NATは、PAT(Port Address Translation、ポートを利用するアドレス変換)とNO−PAT(Not Port Address Translation、ポートを利用しないアドレス変換)とに分けられてもよい。ただし、NO−PATモードにおいて、1つのエクストラネットIPアドレス(即ち、パブリックネットワークIPアドレス)は、1つのイントラネットIPアドレスに割り当てられてNAT処理させるしかできない一方、PATモードにおいて、1つのエクストラネットIPアドレスは、同時に複数のイントラネットIPアドレスに割り当てられて共用されてもよい。本発明で現れるNATは、PATモードを指す。
また、異なるネットワーキング応用に応じて、NATは、入力インターフェース変換ソースIPアドレス、入力インターフェース変換宛先IPアドレス、出力インターフェース変換ソースIPアドレス及び出力インターフェース変換宛先IPアドレスに分けられてもよい。なお、異なるアドレスの変換手順は、類似する。
本発明は、NAT手順の確立性能が向上するように、NAT方法、装置及びNAT機器を提供する。
以下では、まず、本発明に係るNAT方法を紹介する。
本発明に係るNAT方法は、NAT機器に適用され、具体的に、当該NAT方法は、NAT機器におけるCPUによって実行されてもよく、無論、CPUと幾つかのハードウェアとによって共同実行されてもよい。ただし、当該幾つかのハードウェアは、集積回路ASIC(Application Specific Integrated Circuit)/FPGA(Field−Programmable Gate Array、フィールドプログラマブルゲートアレイ)であってもよい。ただし、所謂NAT機器は、ネットワークのエッジ機器であり、内部ネットワークユーザから外部パブリックネットワークへのアクセスを許容し、および外部パブリックネットワークから一部の内部リソース(例えば、内部サーバ)へのアクセスを許容する目的を果たす。例を挙げると、当該NAT機器の機器タイプは、ルータであってもよいが、これに限定されない。
また、本発明において、ビットマップを予め構築し、当該ビットマップにおける各ビットは、5タプルの状態、即ち、衝突状態か衝突しない状態かを示すために用いられる。ただし、当該ビットマップは、NAT機器の記憶媒体に記憶される。具体的に、当該ビットマップは、複数のエントリを含み、各エントリは、複数のビットを含み、各ビットは、第1種のビットと同じ桁数の1つの二進数文字列に対応する。当該第1種のビットは、5タプルの2種のポート(即ち、NAT処理が行われるポートと、NAT処理が行われないポート)の第1種のビットであり、ビット数と位置は、実際の状況に応じて設定され得る。例を挙げると、第1種のビットは、ポートの第0ビットであってもよく、ポートの第0ビットと第1ビットであってもよく、ポートの第0ビット、第1ビットと第2ビットであってもよく、ポートの第14ビットと第15ビット等のケースであってもよい。当該ビットマップの利用により、相違点があるポートの第1種のビットのみにある複数の5タプルは、同一のエントリにおいて1つのビットにそれぞれ唯一に対応可能である。つまり、何れか1つのエントリは、相違点が、あるポートの第1種のビットのみにある複数の5タプルに対応する。
ビットマップにおける各エントリは、1行のビットである。また、ビットマップを初期化するときに、各エントリは、固定桁数の1つのハッシュ値をインデックスとしてもよく、各エントリにおける複数のビットで示される状態は、何れも衝突しない状態に初期化可能である。こうして、衝突しないターゲット5タプルが毎回確立フローにおいて決定された後、ビットマップにおける当該ターゲット5タプルに対応するビットで示される状態を衝突状態に設定してもよい。また、具体的な応用において、各ビットは、0で衝突しない状態を示し、1で衝突する状態を示してもよい。その際、初期化時に、ビットマップにおけるビットは、全て0となる。
理解の便宜上、本発明は、本発明に係る方法に適用可能なネットワーキングシステムを例示する。当該ネットワーキングシステムの構造模式図は、図1を参照してもよい。図1に示すように、当該ネットワーキングシステムは、ホストA、NAT機器B及びサーバCを含む。ホストAとサーバCが異なるネットワークに属する(即ち、ホストAがイントラネットに属し、サーバCがエクストラネットに属する)ため、ホストAがサーバCへパケットを送信する際、NAT機器は、ホストAから送信されたパケットに対してNAT処理を行ってから、NAT処理されたパケットをサーバCへ送信する必要がある。類似的に、サーバCがホストAへパケットを送信する際、NAT機器は、サーバCから送信されたパケットに対してNAT処理を行った後、NAT処理されたパケットを当該ホストAへ送信する必要がある。確立性能が向上するように、図1におけるNAT機器Bは、本発明に係るNAT方法を利用して、ホストAからサーバCへ送信されたパケットに対してNAT処理、および、サーバCからホストAへ送信されたパケットに対してNAT処理を行ってもよい。
図2に示すように、本発明に係るNAT方法は、以下のステップを含んでもよい。
S101では、NATリソースプールから宛先IPアドレスおよび当該宛先IPアドレスの参照ポートを取得し、当該参照ポートは、当該宛先IPアドレスの1つの連続ポート範囲における1つのポートである。
NAT機器がネットワーキングシステムにおける他の機器から送信されたパケットを受信したときに、当該パケットがNAT処理される必要があり且つ当該パケットがセッション情報確立条件を満たす場合に、当該NAT機器が確立フローを実行する。本発明に供される技術案では、当該NAT機器は、確立フローを実行するときに、NATリソースプールから宛先IPアドレスおよび当該宛先IPアドレスの参照ポートを取得してもよい。当該参照ポートは、当該宛先IPアドレスの1つの連続ポート範囲における1つのポートである。また、当該NAT機器は、ポートを選択する際、当該パケットのオリジナル5タプルに対してハッシュ演算を行った値を利用して選択してもよく、ランダム選択または順次選択等を行ってもよい。
1つのパケットにとって、当該パケットにおけるオリジナル5タプルがソースIPアドレス、宛先IPアドレス、ソースポート、宛先ポート及び伝送プロトコルを含むが、NAT処理時の変換需要が、ソースIPアドレスのみを変換する或いは宛先IPアドレスのみを変換することであってもよく、ソースIPアドレスも宛先IPアドレスも変換することであってもよい。したがって、当該宛先IPアドレス及び当該参照ポートが取得された後、ソースIPアドレスを変換する必要があれば、当該宛先IPアドレスは、オリジナル5タプルにおけるソースIPアドレスを付け替えるために用いられ、参照ポートは、オリジナル5タプルにおけるソースポートを付け替えるために用いられる。宛先IPアドレスを変換する必要があれば、当該宛先IPアドレスは、オリジナル5タプルにおける宛先IPアドレスを付け替えるために用いられ、参照ポートは、オリジナル5タプルにおける宛先ポートを付け替えるために用いられる。また、本発明における前記宛先IPアドレスは、NATリソースプールから取り出された1つのIPアドレスであり、当該宛先IPアドレスは、ソースIPアドレスまたは宛先IPアドレスとされてもよい。当該参照ポートは、当該宛先IPアドレスの1つの連続ポート範囲における1つのポートであり、当該参照ポートは、ソースポートまたは宛先ポートとされてもよい。
また、ACL(Access Control List、アクセス制御リスト)に基づいて、パケットがNAT処理される必要があるか否か、NAT処理時の変換需要、およびNAT処理時に使用されるNATリソースプール等を決定してもよい。ただし、異なるタイプのIPアドレスに応対するように、NAT機器には、複数のNATリソースプールが記憶され、且つ、各NATリソースプールは、何れもIPアドレス及び対応するポート範囲を含む。
例を挙げて言うと、TCP(Transmission Control Protocol 伝送制御プロトコル)を採用するデータストリームにおけるパケットについて、パケットがセッション情報確立条件を満たすか否かの具体的な判断方式は、パケットが最初のパケットであるか否かを判断し、そうであれば、パケットがセッション情報確立条件を満たすと決定することを含んでもよい。UDP(User Datagram Protocol、ユーザデータグラムプロトコル)を採用するデータストリームにおけるパケットについて、パケットがセッション情報確立条件を満たすか否かの具体的な判断方式は、パケットがセッション表に基づいて直接NAT処理を実行され得るか否かを判断し、できなければ、パケットがセッション情報確立条件を満たすと決定することを含んでもよい。ここで、単にTCPプロトコル、UDPプロトコルを例として記述し、制限性を有さず、具体的な応用において、他のプロトコルを採用するデータストリームにおけるパケットについて、類似する処理を行ってもよい。例えば、当該パケットがセッション表に基づいて直接NAT処理を実行され得ないと判断したときに、パケットがセッション情報確立条件を満たすと決定する。
S102では、当該宛先IPアドレスと、当該参照ポートと、当該パケットのオリジナル5タプルとに基づいて、当該パケットに対応する第1の5タプルを生成し、当該第1の5タプルにおける参照ポートの第1種のビットに対してマスク処理を行い、第2の5タプルを取得する。
S103では、当該第2の5タプルに対してハッシュ演算を行った結果に基づいて、予め構築されたビットマップから、衝突しない状態を示すターゲットビットを決定する。
ただし、当該ビットマップにおける各ビットは、5タプルの状態が衝突状態であるか衝突しない状態であるかを示すために用いられる。
S104では、当該ターゲットビットで示される状態を衝突状態に設定し、当該ターゲットビットに基づいて、当該パケットに対応するターゲット5タプルを生成する。
当該宛先IPアドレス及び当該参照ポートが取得された後、当該NAT機器は、当該パケットに対応する変換需要に応じて、当該宛先IPアドレスで当該パケットのオリジナル5タプルにおけるソースIPアドレス又は宛先IPアドレスを付け替え、当該参照ポートで当該オリジナル5タプルにおけるソースポート又は宛先ポートを付け替えることにより、当該パケットに対応する第1の5タプルを生成してもよい。第1の5タプルが取得された後、当該NAT機器は、当該第1の5タプルにおける参照ポートの第1種のビットに対してマスク処理を行い、即ち、0にセットし、第2の5タプルを取得する。具体的に、ソースIPアドレスを変換するときに、当該第1の5タプルにおけるソースポートの第1種のビットに対してマスク処理を行い、宛先IPアドレスを変換するときに、当該第1の5タプルにおける宛先ポートの第1種のビットに対してマスク処理を行う。
更に、当該NAT機器は、当該第2の5タプルに対してハッシュ演算を行った結果に基づいて、予め構築されたビットマップから、衝突しない状態を示すターゲットビットを決定してもよい。また、ターゲットビットが取得された後、当該NAT機器は、当該ターゲットビットで示される状態を衝突状態に設定し、当該ターゲットビットに基づいて、当該パケットに対応するターゲット5タプルを生成してもよい。詳細に言えば、当該ターゲットビットに基づいて、当該パケットに対応するターゲット5タプルを生成することは、具体的に、当該ターゲットビットに対応する二進数文字列で、当該第2の5タプルにおけるマスク処理された第1種のビットを復元することにより、当該パケットに対応するターゲット5タプルを取得する。
理解できるように、ポートは、16ビットで示される。つまり、ソースポートと宛先ポートは、何れも16ビットで示される。第1種のビットは、ビット数と位置が実際の状況に応じて設定されてもよい。例を挙げると、第1種のビットは、ポートの第0ビットであってもよく、ポートの第0ビット及び第1ビットであってもよく、ポートの第0ビット、第1ビット及び第2ビットであってもよく、ポートの第14ビット及び第15ビットであってもよい。演算の便宜上、具体的な応用において、当該第1種のビットは、ポート末尾の連続する少なくとも1桁であり、具体的な桁数は、具体的な応用環境に応じて設定されてもよい。例を挙げると、当該第1種のビットは、ポートの末尾の連続する2桁であり、即ち、第0ビットと第1ビットであり、または、当該第1種のビットは、ポートの末尾の連続する3桁であり、即ち、第0ビット、第1ビットと第2ビットであり、または、当該第1種のビットは、ポートの末尾の連続する4桁であり、即ち、第0ビット、第1ビット、第2ビットと第3ビットである。
また、当該ビットマップが複数のエントリを含み、各エントリが複数のビットを含み、各ビットが第1種のビットと同じ桁数の1つの二進数文字列に対応するため、各エントリに含まれるビットの数は、第1種のビットの数に関連し、具体的に2Nであり、Nが第1種のビットの桁数である。各ビットは、第1種のビットと同じ桁数の1つの二進数文字列に対応し、当該対応関係は、二進数文字列の大小順に応じて配列されてもよい。例を挙げると、Nを7としたときに、1つのエントリは、前から後へのビットがそれぞれ0000000、0000001、0000010…1111111に対応し、または、それぞれ1111111、1111110、1111101、1111100…0000001、0000000に対応する。
具体的に、1つの実施形態において、前記当該第2の5タプルのハッシュ結果に基づいて、予め構築されたビットマップから、衝突しない状態を示すターゲットビットを決定するステップは、
第1ハッシュアルゴリズムを利用して当該第2の5タプルに対応する第1インデックス値を算出し、当該第1インデックス値を利用し、予め構築されたビットマップから第1エントリを決定することと、
当該第1エントリからターゲットビットを決定することと、を含んでもよい。ただし、当該ターゲットビットに対応する状態は、衝突しない状態であり、且つ当該ターゲットビットに対応する二進数文字列と、当該参照ポートのマスクされていない部分とで形成されたポートは、当該1つの連続ポート範囲内に存在する。
ただし、ビットマップにおける記憶内容から分かるように、当該第1エントリは、第2の5タプル、および第2の5タプルとの区別が第1種のビットのみにある複数の5タプルに対応するエントリである。また、当該第1ハッシュアルゴリズムは、MD(Message Digest Algorithm、メッセージダイジェストアルゴリズム)またはSHA(Secure Hash Algorithm、セキュアハッシュアルゴリズム)を含むが、それらに限定されない。
幾つかのポートがNATリソースプールにおける無効ポートに属し、第1エントリにおけるビットに対応する二進数文字列と当該参照ポートのマスクされていない部分とで形成されたポートが、NATリソースプールにおける無効ポートに属する可能性がある。したがって、当該ターゲットビットに基づいて生成されたターゲット5タプルにおけるポートが無効ポートに属することを回避させるように、決定されたターゲットビットは、以下の条件を満たす。
当該ターゲットビットに対応する状態は、衝突しない状態であり、且つ当該ターゲットビットに対応する二進数文字列と当該参照ポートのマスクされていない部分とで形成されたポートは、当該1つの連続ポート範囲内に存在する。
当該第1エントリからターゲットビットを決定する手順は、第1エントリから状態が衝突しない状態である少なくとも1つのビットを決定し、その後、少なくとも1つのビットから、対応する二進数文字列と当該参照ポートのマスクされていない部分とで形成されたポートが当該1つの連続ポート範囲内に存在するターゲットビットを決定することを含んでもよい。または、当該第1エントリからターゲットビットを決定する手順は、第1エントリから、対応する二進数文字列と当該参照ポートのマスクされていない部分とで形成されたポートが当該1つの連続ポート範囲内に存在する少なくとも1つのビットを決定し、更に、決定されたビットから、衝突しない状態を示すターゲットビットを決定することを含んでもよい。
また、具体的な応用において、1つのパケットに対して複数回のNAT処理を行う需要が存在するため、ターゲット5タプルの数は、複数であってもよい。当該処理思想をもとに、当該第2の5タプルのハッシュ結果に基づいて、ビットマップから、目標数のターゲットビットを決定してもよい。また、ACLには、当該目標数が記録されてもよく、更にACLを検索することで当該目標数を取得してもよい。
S105では、当該ターゲット5タプル及び当該オリジナル5タプルをセッション表に記録し、当該ターゲット5タプルに基づいて当該パケットに対してNAT処理を行う。
セッション表は、ハッシュ表と結果表との2階層の表に分けられる。ただし、ハッシュ表は、セッション表の第1階層の表であり、5タプルに対してハッシュ演算を行って得られた署名情報と、結果表を指すポインタとを記憶するために用いられ、結果表は、セッション表の第2階層の表であり、5タプル及び転送に関する他の情報を記憶するために用いられる。
したがって、当該ターゲット5タプルが決定された後、当該NAT機器は、ハッシュ表及び結果表に当該ターゲット5タプル及び当該オリジナル5タプルを記録してもよい。また、当該ターゲット5タプルが決定された後、当該NAT機器は、当該パケットに対してNAT処理を行ってもよく、具体的に、当該パケットにおけるオリジナル5タプルをターゲット5タプルに付け替えることを含んでもよい。
更に、当該セッション表から当該ターゲット5タプルに対応する記録内容を削除したと検出されたときに、当該ターゲット5タプルは、利用可能状態に回復し、ビットマップの有効性を保証するために、ビットマップにおける当該ターゲット5タプルに対応するビットで示される状態を復元してもよい。したがって、本発明に供されるNAT方法は、以下のステップを含んでもよい。
ステップa1では、当該セッション表から当該ターゲット5タプルに対応する記録内容を削除したと検出されたときに、当該ターゲット5タプルに対応するアドレス変換タイプを決定する。
ステップa2では、当該ターゲット5タプルにおける、当該アドレス変換タイプにマッチングするポートを決定し、決定されたポートの第1種のビットに対してマスク処理を行い、第3の5タプルを取得する。
ただし、決定されたアドレス変換タイプがソースIPアドレスを変換することであるときに、当該ターゲット5タプルにおける当該アドレス変換タイプにマッチングするポートはソースポートとなり、一方で、決定されたアドレス変換タイプが宛先IPアドレスを変換することであるときに、当該ターゲット5タプルにおける当該アドレス変換タイプにマッチングするポートは宛先ポートとなる。
ステップa3では、第1ハッシュアルゴリズムを利用して当該第3の5タプルに対応する第2インデックス値を算出し、当該第2インデックス値を利用し、当該ビットマップから第2エントリを決定する。
ステップa4では、当該第2エントリから、ターゲット二進数文字列に対応するビットを決定し、決定されたビットで示される状態を衝突しない状態に設定し、当該ターゲット二進数文字列は、当該ターゲット5タプルにおける当該アドレス変換タイプにマッチングするポートの第1種のビットである。
好ましくは、1つの具体的な実現形態において、NAT機器は、1種アドレス変換タイプに対応する。その際、当該ターゲット5タプルに対応するアドレス変換タイプを決定することは、具体的に、NAT機器に対応するアドレス変換タイプを当該ターゲット5タプルに対応するアドレス変換タイプとすることであってもよい。
好ましくは、別の具体的な実現形態において、NAT機器は、少なくとも2種のアドレス変換タイプに対応する。その際、当該ターゲット5タプル及び当該オリジナル5タプルをセッション表に記録するステップは、
当該ターゲット5タプル、当該オリジナル5タプル及び今回のNATのアドレス変換タイプをセッション表に記録することを含んでもよい。
それ相応に、当該ターゲット5タプルに対応するアドレス変換タイプを決定することは、具体的に、
セッション表から、当該ターゲット5タプルに対応するアドレス変換タイプを決定することであってもよい。
具体的に応用する時に、当該アドレス変換タイプは、ソースIPアドレスを変換すること、宛先IPアドレスを変換すること、ソースIPアドレスを変換してから宛先IPアドレスを変換すること、または、宛先IPアドレスを変換してからソースIPアドレスを変換することであってもよい。ただし、アドレス変換タイプの値の具体的な表す方式は、複数種あり得る。好ましくは、1種の具体的な実現形態において、アドレス変換タイプの値は、3ビットによって構成される。ただし、最上位ビットが変換するか否かを示し、下位2ビットが変換方式を示す。具体的に、3ビットでアドレス変換タイプを表すときに、アドレス変換タイプとタイプ値の対応関係は、以下の表1を参照してもよい。
Figure 0006978612
セッション表に記録されたオリジナル5タプルが(src_ip1, dst_ip1, src_port1, dst_port1, prot)であると仮定し、セッション表に記録されたターゲット5タプルに関する情報を削除したときに、ビットマップにおける対応するビットを復元する手順は、下記のようになる。
タイプ値の最上位ビットが0であれば、アドレス変換なしとして、終了する。
タイプ値が110(ソースIPアドレスの変換)であれば、ターゲット5タプルが(src_ip2, dst_ip1, src_port2, dst_port1, prot)であると仮定し、ビット復元時に、(src_ip2, dst_ip1, src_port2, dst_port1, prot)を利用すべき5タプル(即ち、ステップa1−a4におけるターゲット5タプル)として取り、上記与えられたビット復元手順、即ち、ステップa1−a4を実行する。
タイプ値が101(宛先IPアドレスの変換)であれば、ターゲット5タプルが(src_ip1, dst_ip2, src_port1, dst_port2, prot)であると仮定し、ビット復元時に、(src_ip1, dst_ip2, src_port1, dst_port2, prot)を利用すべき5タプル(即ち、ステップa1−a4におけるターゲット5タプル)として取り、上記与えられたビット復元手順、即ち、ステップa1−a4を実行する。
タイプ値が111(ソースIPアドレスを変換してから宛先IPアドレスを変換する)であれば、ターゲット5タプルが(src_ip2, dst_ip2, src_port2, dst_port2, prot)であると仮定し、ビット復元時に、(src_ip2, dst_ip1, src_port2, dst_port1, prot)を利用すべき5タプル(即ち、ステップa1−a4におけるターゲット5タプル)として取り、上記ビット復元手順を実行し、そして、(src_ip2, dst_ip2, src_port2, dst_port2, prot)を利用すべき5タプル(即ち、ステップa1−a4におけるターゲット5タプル)として取り、上記与えられたビット復元手順、即ち、ステップa1−a4を実行する。
タイプ値が100(宛先IPアドレスを変換してからソースIPアドレスを変換する)であれば、ターゲット5タプルが(src_ip2, dst_ip2, src_port2, dst_port2, prot)であると仮定し、ビット復元時に、(src_ip1, dst_ip2, src_port1, dst_port2, prot)を利用すべき5タプル(即ち、ステップa1−a4におけるターゲット5タプル)として取り、上記ビット復元手順を実行し、そして、(src_ip2, dst_ip2, src_port2, dst_port2, prot)を利用すべき5タプル(即ち、ステップa1−a4におけるターゲット5タプル)として取り、上記与えられたビット復元手順、即ち、ステップa1−a4を実行する。
上述したアドレス変換タイプの値が単に例示であり、当該構成は、本発明に対する限定にならない。
本発明に供される案では、予めビットマップを構築し、更に、確立フローにおいて、ビットマップを検索することで、衝突しない5タプルを決定し、当該ビットマップにおける各ビットが5タプルの状態を示す。本案では、直接ビットマップから衝突しない状態を示すターゲットビットを決定し、更にターゲットビットに基づいて衝突しない5タプルを決定し、記憶媒体に対する読取回数を減少させるため、本案によれば、確立性能が悪いという問題は解決できる。
以下では、応用実例を組み合わせて本発明に係るNAT方法を紹介する。
当該応用実例において、ネットワーキング模式図は、図1に示され、当該ネットワーキングシステムは、具体的にホストA、NAT機器B及びサーバCを備える。ただし、ホストAのIPアドレスは、192.168.1.2であり、NAT機器BのイントラネットIPアドレスは、192.168.1.1であり、エクストラネットIPアドレスは、1.1.1.1であり、サーバCのIPアドレスは、1.1.1.2である。
NAT機器のDDRにおいてビットマップを予め構築し、当該ビットマップにおける各エントリが128ビットを含み、各ビットが1つの7桁の二進数文字列に対応し、ビットの値が1であるときに衝突すると示し、ビットの値が0であるときに衝突しないと示す。また、初期化されたビットマップにおけるビットは、全て0となる。
図3と図4に示すように、本発明に係るNAT方法は、以下のステップを含んでもよい。
ステップb1では、NAT機器Bは、ホストA〜サーバCのパケットを受信した後、当該パケットがNAT処理される必要があり且つ当該パケットがセッション情報確立条件を満たすと判断すると、引き続きステップb2を実行する。
ただし、当該パケットにおけるオリジナル5タプルは、(192.168.1.2、1.1.1.2、2222、80、tcp)である。ただし、当該オリジナル5タプルにおいて、192.168.1.2は、ソースIPアドレスであり、1.1.1.2は、宛先IPアドレスであり、2222は、ソースポートであり、80は、宛先ポートであり、tcpは、伝送プロトコルである。
ステップb2では、NATリソースプールから宛先IPアドレスおよび宛先IPアドレスの参照ポートを取得し、当該参照ポートは、当該宛先IPアドレスの1つの連続ポート範囲における1つのポートである。
ただし、当該NATリソースプールは、ソースIPアドレスの変換において依拠されるリソースプールである。
ただし、当該宛先IPアドレスが1.1.1.1であり、参照ポートが2001であると仮定する。
ステップb3では、宛先IPアドレスでパケットのオリジナル5タプルにおけるソースIPアドレスを付け替え、参照ポートで当該オリジナル5タプルにおけるソースポートを付け替えて、当該パケットに対応する5タプルG1を生成し、当該第1の5タプルのソースポートの下位7桁に対してマスク処理を行い、即ち、0を充填し、5タプルG2を取得する。
ただし、5タプルG1が(1.1.1.1、1.1.1.2、2001、80、tcp)であり、それ相応に、5タプルG2は、(1.1.1.1、1.1.1.2、Psrc1、80、tcp)となる。
ステップb4では、SHAアルゴリズムを利用して5タプルG2に対応するインデックス値ind1を算出し、インデックス値ind1を利用し、ビットマップからエントリMを決定する。
ステップb5では、当該エントリMからターゲットビットを決定する。ただし、当該ターゲットビットに対応する状態は、衝突しない状態であり、且つターゲットビットに対応する二進数文字列とソースポートのマスクされていない部分で形成されたポートは、1つの連続ポート範囲内に存在する。
ステップb6では、ターゲットビットで示される状態を衝突状態に設定し、ターゲットビットに基づいて、当該パケットに対応するターゲット5タプルを生成する。
ただし、ターゲット5タプルは、(1.1.1.1、1.1.1.2、Psrc2、80、tcp)であり、当該Psrc2は、ターゲットビットに対応する二進数文字列でPsrc1における下位7桁を復元して得られた値である。
ステップb7では、ターゲット5タプル及びオリジナル5タプルをセッション表に記録し、ターゲット5タプルに基づいて当該パケットに対してNAT処理を行う。
ステップb8では、セッション表からターゲット5タプルに対応する記録内容を削除したと検出されたときに、ターゲット5タプルに対応するアドレス変換タイプをソースIPアドレスの変換として決定する。
ステップb9では、ターゲット5タプルにおけるアドレス変換タイプにマッチングするポートがソースポートであると決定し、ソースポートの下位7桁に対してマスク処理を行い、5タプルG3を取得する。
ただし、5タプルG3は、(1.1.1.1、1.1.1.2、Psrc1、80、tcp)である。
ステップb10では、SHAアルゴリズムを利用して5タプルG3に対応するインデックス値ind1を算出し、当該インデックス値ind1を利用して、当該ビットマップからエントリMを決定する。
ステップb11では、当該エントリMから、ターゲット二進数文字列に対応するビットを決定し、決定されたビットで示される状態を衝突しない状態に設定し、当該ターゲット二進数文字列は、当該ターゲット5タプルにおけるソースポートの下位7桁のビットである。
オリジナル5タプルに対応するアドレス変換タイプが宛先IPアドレスの変換であるときに、NATフローは、上記ステップb1−b12と類似し、区別が宛先ポートとソースポートとの処理を互いに入れ替えるのみにある。
また、図3と図4に示すビットマップにおいて、Xで各ビットの現在値を示し、当該現在値は、1又は0であってもよい。
本案では、直接ビットマップから衝突しない状態を示すターゲットビットを決定し、更にターゲットビットに基づいて衝突しない5タプルを決定し、記憶媒体に対する読取回数を減少させるため、本案によれば、確立性能が悪いという問題は解決できる。
上記方法実施例に相応し、本発明は、NAT装置を更に提供する。図5に示すように、前記装置は、以下のユニツトを備えてもよい。
情報取得ユニツト510は、NATリソースプールから宛先IPアドレスおよび前記宛先IPアドレスの参照ポートを取得するために用いられ、前記参照ポートは、前記宛先IPアドレスの1つの連続ポート範囲における1つのポートである。
情報処理ユニツト520は、前記宛先IPアドレスと、前記参照ポートと、パケットのオリジナル5タプルとに基づいて、前記パケットに対応する第1の5タプルを生成し、前記第1の5タプルにおける参照ポートの第1種のビットに対してマスク処理を行い、第2の5タプルを取得するために用いられる。
ビット決定ユニツト530は、前記第2の5タプルのハッシュ結果に基づいて、予め構築されたビットマップから、衝突しない状態を示すターゲットビットを決定するために用いられる。ただし、前記ビットマップにおける各ビットは、5タプルの状態が衝突状態であるか衝突しない状態であるかを示すために用いられる。
5タプル生成ユニツト540は、前記ターゲットビットで示される状態を衝突状態に設定し、前記ターゲットビットに基づいて前記パケットに対応するターゲット5タプルを生成するために用いられる。
NAT処理ユニツト550は、前記ターゲット5タプル及び前記オリジナル5タプルをセッション表に記録し、前記ターゲット5タプルに基づいて前記パケットに対してNAT処理を行うために用いられる。
本発明に供される案では、予めビットマップを構築し、更に、確立フローにおいて、ビットマップを検索することで、衝突しない5タプルを決定し、当該ビットマップにおける各ビットが5タプルの状態を示す。本案では、直接ビットマップから衝突しない状態を示すターゲットビットを決定し、更にターゲットビットに基づいて衝突しない5タプルを決定し、記憶媒体に対する読取回数を減少させるため、本案によれば、確立性能が悪いという問題は解決できる。
好ましくは、前記ビット決定ユニツト530は、具体的に、
第1ハッシュアルゴリズムを利用して前記第2の5タプルに対応する第1インデックス値を算出し、前記第1インデックス値を利用し、予め構築されたビットマップから第1エントリを決定し、
前記第1エントリからターゲットビットを決定するために用いられる。
ただし、前記ビットマップは、複数のエントリを含み、各エントリは、複数のビットを含み、各ビットは、第1種のビットと同じ桁数の1つの二進数文字列に対応し、前記ターゲットビットに対応する状態は、衝突しない状態であり、且つ前記ターゲットビットに対応する二進数文字列と、前記参照ポートのマスクされていない部分とで形成されたポートは、前記1つの連続ポート範囲内に存在する。
好ましくは、前記装置は、下記のユニツトを更に備える。
タイプ決定ユニツトは、前記セッション表から前記ターゲット5タプルに対応する記録内容を削除したと検出されたときに、前記ターゲット5タプルに対応するアドレス変換タイプを決定するために用いられる。
ポートマスクユニツトは、前記ターゲット5タプルにおける、前記アドレス変換タイプにマッチングするポートを決定し、決定されたポートの第1種のビットに対してマスク処理を行い、第3の5タプルを取得するために用いられる。
エントリ検索ユニツトは、第1ハッシュアルゴリズムを利用して前記第3の5タプルに対応する第2インデックス値を算出し、前記第2インデックス値を利用し、前記ビットマップから第2エントリを決定するために用いられる。
衝突調整ユニツトは、ターゲット二進数文字列に対応するビットを前記第2エントリから決定し、決定されたビットで示される状態を衝突しない状態に設定し、前記ターゲット二進数文字列は、前記ターゲット5タプルにおける前記アドレス変換タイプにマッチングするポートの第1種のビットであるために用いられる。
好ましくは、前記NAT処理ユニツト550は、具体的に、
前記ターゲット5タプル、前記オリジナル5タプル及びアドレス変換タイプをセッション表に記録し、前記ターゲット5タプルに基づいて前記パケットに対してNAT処理を行うために用いられる。
装置実施例は、方法実施例に基本的に対応するため、その関連箇所が方法実施例部分の説明を参照すればよい。上述した装置実施例は、単に例示であり、その中、分離部品として説明されるユニツトが物理的に分離されるものであってもよくでなくてもよい。また、ユニツトとして表示される部品は、物理ユニツトであってもでなくてもよい。更に、それらのユニツトは、1箇所に位置してもよく、複数のネットワークセルに分散してもよい。実際の需要に応じてその中の一部または全部のモジュールを選択して本実施例の目的を果たすことが可能である。当業者は、進歩性に値する労働をせずに、理解して実施可能である。
また、上記方法実施例に相応し、本発明は、NAT機器を更に提供する。図6に示すように、当該NAT機器は、内部バス610、記憶媒体620、プロセッサ630及び通信インターフェース640を備える。ただし、前記プロセッサ630、前記通信インターフェース640及び前記記憶媒体620は、前記内部バス610を介して互いの通信を実施する。
ただし、前記記憶媒体620は、NAT方法に対応する機器の実行可能な指令を記憶する。
前記プロセッサ630は、前記記憶媒体620における前記機器の実行可能な指令を読み取ることにより、本発明に係るNAT方法を実行する。
ただし、NAT方法に関する具体的なステップの関連記述は、本発明の方法実施例における記述内容を参照すればよいため、ここで繰り返し説明しない。また、注意すべきことは、当該NAT機器がルータであってもよいが、無論これに限定されない。
ただし、記憶媒体620は、例えば、不揮発性(non−volatile memory)記憶媒体であってもよい。プロセッサ630は、記憶媒体620におけるNAT方法を実現する論理指令を呼び出して実行することにより、上記NAT方法を実行してもよい。
NAT方法の論理指令を実現する機能は、ソフトウェア機能ユニツトの形式で実現され、且つ独立の製品として販売や使用されるときに、1つのコンピュータ読み取り可能な記憶媒体に記憶されてもよい。このような理解に基づいて、本発明の技術案は、本質的にまたは従来技術に対して貢献を与える部分または当該技術案の一部がソフトウェア製品の形式で体現されてもよい。当該コンピュータソフトウェア製品は、1つの記憶媒体に記憶され、幾つかの指令を含むことで一台のコンピュータ機器(パソコン、サーバまたはネットワーク機器等であってもよい)に本発明の各実施例の前記方法の全部或いは一部のステップを実行させる。上述した記憶媒体は、Uディスク、モバイルハードディスク、読み取り専用メモリ(ROM、Read−Only Memory)、ランダムアクセスメモリ(RAM、Random Access Memory)、磁気ディスクまたは光ディスク等の、プログラムコードを格納可能な各種の媒体を含む。
当業者は、明細書を考慮してここで開示された本発明を実践した後、本発明の他の実施案を容易に想到し得る。本発明は、本発明の如何なる変形、用途または適応的変化もカバーすることを意図する。これらの変形、用途または適応的変化は、本発明の一般的な原理に従い、本発明に開示されていない当分野における公知常識或いは慣用技術ユニツトを含む。明細書及び実施例は、単に例示と見なされ、本発明の真の範囲及び要旨は、請求項から与えられる。
理解できるように、本発明は、上述され且つ図面に示された精確な構造に限定されず、その範囲を逸脱しない範囲で各種の変更や改良を行うことが可能である。本発明の範囲は、添付する請求項のみで限定される。
上述したのは、本発明の実施例に過ぎず、本発明を制限するためのものではない。本発明の精神及び原則内でなされた如何なる変更、均等物による置換、改良等も、本発明の保護範囲内に含まれるべきである。

Claims (15)

  1. ネットワークアドレス変換(NAT)方法であって、
    当該方法は、
    NATリソースプールから宛先インターネットプロトコル(IP)アドレスと前記宛先IPアドレスの参照ポートとを取得するステップと、
    前記宛先IPアドレスと、前記参照ポートと、パケットのオリジナル5タプルとに基づいて、前記パケットに対応する第1の5タプルを生成し、前記第1の5タプルにおける参照ポートの第1種のビットに対してマスク処理を行い、第2の5タプルを取得するステップと、
    前記第2の5タプルのハッシュ結果に基づいて、予め構築されたビットマップから、衝突しない状態を示すターゲットビットを決定するステップと、
    前記ターゲットビットで示される状態を衝突状態に設定し、前記ターゲットビットに基づいて前記パケットに対応するターゲット5タプルを生成するステップと、
    前記ターゲット5タプル及び前記オリジナル5タプルをセッション表に記録し、前記ターゲット5タプルに基づいて前記パケットに対してNAT処理を行うステップと、を含み、
    前記参照ポートは、前記宛先IPアドレスの1つの連続ポート範囲における1つのポートであり、前記ビットマップにおける各ビットは、5タプルの状態が衝突状態であるか衝突しない状態であるかを示すために用いられることを特徴とするNAT方法。
  2. 前記第2の5タプルのハッシュ結果に基づいて、予め構築されたビットマップから、衝突しない状態を示すターゲットビットを決定するステップは、
    第1ハッシュアルゴリズムを利用して前記第2の5タプルに対応する第1インデックス値を算出し、前記第1インデックス値を利用し、予め構築されたビットマップから第1エントリを決定することと、
    前記第1エントリからターゲットビットを決定することと、を含み、
    前記ビットマップは、複数のエントリを含み、各エントリは、複数のビットを含み、各ビットは、第1種のビットと同じ桁数の1つの二進数文字列に対応し、前記ターゲットビットに対応する状態は、衝突しない状態であり、且つ前記ターゲットビットに対応する二進数文字列と、前記参照ポートのマスクされていない部分とで形成されたポートは、前記1つの連続ポート範囲内に存在することを特徴とする請求項1に記載のNAT方法。
  3. 前記方法は、
    前記セッション表から前記ターゲット5タプルに対応する記録内容を削除したと検出されたときに、前記ターゲット5タプルに対応するアドレス変換タイプを決定するステップと、
    前記ターゲット5タプルにおける、前記アドレス変換タイプにマッチングするポートを決定し、決定されたポートの第1種のビットに対してマスク処理を行い、第3の5タプルを取得するステップと、
    第1ハッシュアルゴリズムを利用して前記第3の5タプルに対応する第2インデックス値を算出し、前記第2インデックス値を利用し、前記ビットマップから第2エントリを決定するステップと、
    ターゲット二進数文字列に対応するビットを前記第2エントリから決定し、決定されたビットで示される状態を衝突しない状態に設定するステップと、を更に含み、
    前記ターゲット二進数文字列は、前記ターゲット5タプルにおける前記アドレス変換タイプにマッチングするポートの第1種のビットであることを特徴とする請求項1に記載のNAT方法。
  4. 前記ターゲット5タプル及び前記オリジナル5タプルをセッション表に記録するステップは、
    前記ターゲット5タプル、前記オリジナル5タプル及びアドレス変換タイプをセッション表に記録することを含むことを特徴とする請求項3に記載のNAT方法。
  5. 前記第1種のビットは、ポートを示すビットシーケンスの末尾の連続する少なくとも1桁であることを特徴とする請求項1から4の何れか一項に記載のNAT方法。
  6. ネットワークアドレス変換(NAT)装置であって、
    当該装置は、
    NATリソースプールから宛先インターネットプロトコル(IP)アドレスと前記宛先IPアドレスの参照ポートとを取得するための情報取得ユニツトと、
    前記宛先IPアドレスと、前記参照ポートと、パケットのオリジナル5タプルとに基づいて、前記パケットに対応する第1の5タプルを生成し、前記第1の5タプルにおける参照ポートの第1種のビットに対してマスク処理を行い、第2の5タプルを取得するための情報処理ユニツトと、
    前記第2の5タプルのハッシュ結果に基づいて、予め構築されたビットマップから、衝突しない状態を示すターゲットビットを決定するためのビット決定ユニツトと、
    前記ターゲットビットで示される状態を衝突状態に設定し、前記ターゲットビットに基づいて前記パケットに対応するターゲット5タプルを生成するための5タプル生成ユニツトと、
    前記ターゲット5タプル及び前記オリジナル5タプルをセッション表に記録し、前記ターゲット5タプルに基づいて前記パケットに対してNAT処理を行うためのNAT処理ユニツトと、を備え、
    前記参照ポートは、前記宛先IPアドレスの1つの連続ポート範囲における1つのポートであり、前記ビットマップにおける各ビットは、5タプルの状態が衝突状態であるか衝突しない状態であるかを示すために用いられることを特徴とするNAT装置。
  7. 前記ビット決定ユニツトは、
    第1ハッシュアルゴリズムを利用して前記第2の5タプルに対応する第1インデックス値を算出し、前記第1インデックス値を利用し、予め構築されたビットマップから第1エントリを決定し、
    前記第1エントリからターゲットビットを決定するために用いられ、
    前記ビットマップは、複数のエントリを含み、各エントリは、複数のビットを含み、各ビットは、第1種のビットと同じ桁数の1つの二進数文字列に対応し、前記ターゲットビットに対応する状態は、衝突しない状態であり、且つ前記ターゲットビットに対応する二進数文字列と、前記参照ポートのマスクされていない部分とで形成されたポートは、前記1つの連続ポート範囲内に存在することを特徴とする請求項6に記載のNAT装置。
  8. 前記NAT装置は、
    前記セッション表から前記ターゲット5タプルに対応する記録内容を削除したと検出されたときに、前記ターゲット5タプルに対応するアドレス変換タイプを決定するためのタイプ決定ユニツトと、
    前記ターゲット5タプルにおける、前記アドレス変換タイプにマッチングするポートを決定し、決定されたポートの第1種のビットに対してマスク処理を行い、第3の5タプルを取得するためのポートマスクユニツトと、
    第1ハッシュアルゴリズムを利用して前記第3の5タプルに対応する第2インデックス値を算出し、前記第2インデックス値を利用し、前記ビットマップから第2エントリを決定するためのエントリ検索ユニツトと、
    ターゲット二進数文字列に対応するビットを前記第2エントリから決定し、決定されたビットで示される状態を衝突しない状態に設定するための衝突調整ユニツトと、を更に備え、
    前記ターゲット二進数文字列は、前記ターゲット5タプルにおける前記アドレス変換タイプにマッチングするポートの第1種のビットであることを特徴とする請求項6に記載のNAT装置。
  9. 前記NAT処理ユニツトは、
    前記ターゲット5タプル、前記オリジナル5タプル及びアドレス変換タイプをセッション表に記録し、前記ターゲット5タプルに基づいて前記パケットに対してNAT処理を行うために用いられることを特徴とする請求項8に記載のNAT装置。
  10. 前記第1種のビットは、ポートを示すビットシーケンスの末尾の連続する少なくとも1桁であることを特徴とする請求項6から9の何れか一項に記載のNAT装置。
  11. ネットワークアドレス変換(NAT)機器であって、
    当該機器は、
    内部バスと、記憶媒体と、プロセッサと、通信インターフェースとを備え、
    前記プロセッサ、前記通信インターフェース及び前記記憶媒体は、前記内部バスを介して互いの通信を実施し、前記記憶媒体は、NAT方法に対応する機器の実行可能な指令を記憶し、
    前記プロセッサは、前記記憶媒体における前記機器の読み取り可能な指令を読み取ることにより、
    NATリソースプールから宛先インターネットプロトコル(IP)アドレスと前記宛先IPアドレスの参照ポートとを取得することと、
    前記宛先IPアドレスと、前記参照ポートと、パケットのオリジナル5タプルとに基づいて、前記パケットに対応する第1の5タプルを生成し、前記第1の5タプルにおける参照ポートの第1種のビットに対してマスク処理を行い、第2の5タプルを取得することと、
    前記第2の5タプルのハッシュ結果に基づいて、予め構築されたビットマップから、衝突しない状態を示すターゲットビットを決定することと、
    前記ターゲットビットで示される状態を衝突状態に設定し、前記ターゲットビットに基づいて前記パケットに対応するターゲット5タプルを生成することと、
    前記ターゲット5タプル及び前記オリジナル5タプルをセッション表に記録し、前記ターゲット5タプルに基づいて前記パケットに対してNAT処理を行うことと、を実行させ、
    前記参照ポートは、前記宛先IPアドレスの1つの連続ポート範囲における1つのポートであり、前記ビットマップにおける各ビットは、5タプルの状態が衝突状態であるか衝突しない状態であるかを示すために用いられることを特徴とするNAT機器。
  12. 前記第2の5タプルのハッシュ結果に基づいて、予め構築されたビットマップから、衝突しない状態を示すターゲットビットを決定するときに、前記プロセッサは、更に、前記機器の実行可能な指令により、
    第1ハッシュアルゴリズムを利用して前記第2の5タプルに対応する第1インデックス値を算出し、前記第1インデックス値を利用し、予め構築されたビットマップから第1エントリを決定することと、
    前記第1エントリからターゲットビットを決定することと、を実行させ、
    前記ビットマップは、複数のエントリを含み、各エントリは、複数のビットを含み、各ビットは、第1種のビットと同じ桁数の1つの二進数文字列に対応し、前記ターゲットビットに対応する状態は、衝突しない状態であり、且つ前記ターゲットビットに対応する二進数文字列と、前記参照ポートのマスクされていない部分とで形成されたポートは、前記1つの連続ポート範囲内に存在することを特徴とする請求項11に記載のNAT機器。
  13. 前記プロセッサは、更に、前記機器の実行可能な指令により、
    前記セッション表から前記ターゲット5タプルに対応する記録内容を削除したと検出されたときに、前記ターゲット5タプルに対応するアドレス変換タイプを決定することと、
    前記ターゲット5タプルにおける、前記アドレス変換タイプにマッチングするポートを決定し、決定されたポートの第1種のビットに対してマスク処理を行い、第3の5タプルを取得することと、
    第1ハッシュアルゴリズムを利用して前記第3の5タプルに対応する第2インデックス値を算出し、前記第2インデックス値を利用し、前記ビットマップから第2エントリを決定することと、
    ターゲット二進数文字列に対応するビットを前記第2エントリから決定し、決定されたビットで示される状態を衝突しない状態に設定することと、を実行させ、
    前記ターゲット二進数文字列は、前記ターゲット5タプルにおける前記アドレス変換タイプにマッチングするポートの第1種のビットであることを特徴とする請求項11に記載のNAT機器。
  14. 前記ターゲット5タプル及び前記オリジナル5タプルをセッション表に記録するときに、前記プロセッサは、更に、前記機器の実行可能な指令により、
    前記ターゲット5タプル、前記オリジナル5タプル及びアドレス変換タイプをセッション表に記録することを実行させることを特徴とする請求項13に記載のNAT機器。
  15. 前記第1種のビットは、ポートを示すビットシーケンスの末尾の連続する少なくとも1桁であることを特徴とする請求項11から14の何れか一項に記載のNAT機器。
JP2020551868A 2018-03-26 2019-03-22 ネットワークアドレス変換 Active JP6978612B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201810252611.3 2018-03-26
CN201810252611.3A CN109688237B (zh) 2018-03-26 2018-03-26 一种nat转换方法、装置及nat设备
PCT/CN2019/079161 WO2019184804A1 (zh) 2018-03-26 2019-03-22 网络地址转换

Publications (2)

Publication Number Publication Date
JP2021517414A JP2021517414A (ja) 2021-07-15
JP6978612B2 true JP6978612B2 (ja) 2021-12-08

Family

ID=66184406

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020551868A Active JP6978612B2 (ja) 2018-03-26 2019-03-22 ネットワークアドレス変換

Country Status (5)

Country Link
US (1) US11201852B2 (ja)
EP (1) EP3758341A4 (ja)
JP (1) JP6978612B2 (ja)
CN (1) CN109688237B (ja)
WO (1) WO2019184804A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114866316B (zh) * 2022-04-29 2023-08-01 中国科学院信息工程研究所 安全防护方法、装置、设备、存储介质

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI231434B (en) * 2003-10-06 2005-04-21 Inst Information Industry Network address and port number translation system
CN100477671C (zh) * 2005-12-16 2009-04-08 中国科学院计算技术研究所 Pat模式下支持多会话应用层协议的网络地址转换方法
JP2007208693A (ja) 2006-02-02 2007-08-16 Toshiba Corp 通信装置、通信システム、通信方法および通信プログラム
US7830905B2 (en) * 2007-04-20 2010-11-09 Cray Inc. Speculative forwarding in a high-radix router
US20090138960A1 (en) * 2007-10-26 2009-05-28 University Of Ottawa Control access rule conflict detection
CN101335770B (zh) * 2008-08-06 2011-04-20 杭州华三通信技术有限公司 一种网络地址端口转换方法和装置
CN101800690B (zh) * 2009-02-05 2012-08-15 北京启明星辰信息技术股份有限公司 一种使用地址池实现源地址转换的方法和装置
JP5036752B2 (ja) 2009-04-16 2012-09-26 アラクサラネットワークス株式会社 インタネットワーク装置、及び、ローカルアドレス及び各ローカルアドレスと共に用いられるローカルアドレス内通信ポート番号と、グローバルアドレス及び各グローバルアドレスと共に用いられるグローバルアドレス内通信ポート番号とを相互に変換する方法
US8009682B2 (en) * 2009-05-05 2011-08-30 Citrix Systems, Inc. Systems and methods for packet steering in a multi-core architecture
US8274918B2 (en) * 2009-06-01 2012-09-25 The Regents Of The University Of Michigan Method for extending the use of single IPv4 addresses to multiple network end-hosts
CN101702657B (zh) * 2009-12-04 2012-04-18 杭州华三通信技术有限公司 一种nat业务的热备份方法和设备
CN102111331B (zh) * 2010-12-17 2015-04-01 曙光信息产业(北京)有限公司 一种基于hash表实现的带掩码五元组规则的匹配方法
CN102438331B (zh) * 2012-01-12 2016-04-13 惠州Tcl移动通信有限公司 一种移动终端通过手机上网的方法及系统
JP2013179421A (ja) 2012-02-28 2013-09-09 Nippon Telegr & Teleph Corp <Ntt> エントリの登録方法及び処理装置
US9185072B2 (en) * 2012-05-14 2015-11-10 Futurewei Technologies, Inc. Stateless NAT44
US8891540B2 (en) * 2012-05-14 2014-11-18 Juniper Networks, Inc. Inline network address translation within a mobile gateway router
JP2013247389A (ja) 2012-05-23 2013-12-09 Nippon Telegr & Teleph Corp <Ntt> ネットワーク機器、ハッシュ関数選定方法
KR20150053620A (ko) * 2013-11-08 2015-05-18 한국전자통신연구원 패킷 전송 장치 및 방법
CN104243631A (zh) * 2014-10-13 2014-12-24 北京太一星晨信息技术有限公司 一种IPv4地址与IPv6地址有状态转换的方法及设备
JP2016103697A (ja) 2014-11-27 2016-06-02 日本電気株式会社 ネットワークシステム、制御装置、通信装置、通信装置の制御方法及びプログラム
US9553806B2 (en) * 2015-02-06 2017-01-24 Telefonaktiebolaget L M Ericsson (Publ) Method and system for supporting port ranging in a software-defined networking (SDN) system
CN106534394B (zh) * 2015-09-15 2020-01-07 瞻博网络公司 用于管理端口的设备、系统和方法
KR102430960B1 (ko) * 2015-10-30 2022-08-09 텔레콤 이탈리아 소시에떼 퍼 아찌오니 패킷 교환 통신 네트워크 내 성능 측정
US10621080B2 (en) * 2016-04-01 2020-04-14 Intel Corporation Pipelined hash table with reduced collisions
US10257061B2 (en) * 2016-05-31 2019-04-09 128 Technology, Inc. Detecting source network address translation in a communication system
US10305799B2 (en) * 2016-08-17 2019-05-28 Cisco Technology, Inc. Re-configurable lookup pipeline architecture for packet forwarding
US10834085B2 (en) * 2017-04-14 2020-11-10 Nxp Usa, Inc. Method and apparatus for speeding up ACL rule lookups that include TCP/UDP port ranges in the rules
CN107547690B (zh) * 2017-09-25 2021-06-18 新华三信息安全技术有限公司 Nat中的端口分配方法、装置、nat设备及存储介质
US10681011B2 (en) * 2017-11-30 2020-06-09 International Business Machines Corporation Preemptive determination of reserved IP conflicts on VPNs
CN109688238B (zh) 2018-03-26 2020-06-09 新华三技术有限公司 一种nat转换方法、装置及nat设备

Also Published As

Publication number Publication date
CN109688237B (zh) 2020-05-12
JP2021517414A (ja) 2021-07-15
US11201852B2 (en) 2021-12-14
CN109688237A (zh) 2019-04-26
WO2019184804A1 (zh) 2019-10-03
EP3758341A1 (en) 2020-12-30
US20210036984A1 (en) 2021-02-04
EP3758341A4 (en) 2021-03-10

Similar Documents

Publication Publication Date Title
CA3145192C (en) Securing communications between services in a cluster using load balancing systems and methods
CN109218301B (zh) 多协议间软件定义的帧头映射的方法和装置
US7937586B2 (en) Defending against denial of service attacks
US7594031B2 (en) Network address selection
WO2013123420A1 (en) Load balancing using dns in a ipv4/ipv6 environment
WO2014127605A1 (zh) 基于哈希表和tcam表的mac地址硬件学习方法及系统
JP6911158B2 (ja) 差分プライバシーを備える忘却型アクセス
Kim et al. ONTAS: Flexible and scalable online network traffic anonymization system
CN105490995A (zh) 一种在nvo3网络中nve转发报文的方法和设备
CN111107181B (zh) Nat规则匹配方法、装置、电子设备及存储介质
CN112839054A (zh) 一种网络攻击检测方法、装置、设备及介质
US10554547B2 (en) Scalable network address translation at high speed in a network environment
US20150295883A1 (en) Storage and retrieval of information using internet protocol addresses
JP7082211B2 (ja) ネットワークアドレス変換
JP6978612B2 (ja) ネットワークアドレス変換
CN111756636B (zh) 数据包处理方法、装置及设备、存储介质
US10374950B2 (en) Routing traffic between networks governed by different versions of the internet protocol
CN112187743B (zh) 一种基于ip地址最长前缀的网络策略匹配方法及系统
US9544226B1 (en) Efficient address-based rule resolution in a network employing a bit-mapped index
JPWO2019184803A5 (ja)
US10397109B2 (en) Routing packets in overlapping address spaces
US20200145379A1 (en) Efficient matching of feature-rich security policy with dynamic content using incremental precondition changes
US10965647B2 (en) Efficient matching of feature-rich security policy with dynamic content
Hu et al. DScan6: Fast IPv6 Address Scanning Technology Based on Cross-Kernel Asynchronously Sending and Receiving
JP2005275481A (ja) ファイル管理システム、ファイル管理方法及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200930

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20211005

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20211019

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211111

R150 Certificate of patent or registration of utility model

Ref document number: 6978612

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150