Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP7082211B2 - ネットワークアドレス変換 - Google Patents
[go: Go Back, main page]

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

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

Info

Publication number
JP7082211B2
JP7082211B2 JP2020551961A JP2020551961A JP7082211B2 JP 7082211 B2 JP7082211 B2 JP 7082211B2 JP 2020551961 A JP2020551961 A JP 2020551961A JP 2020551961 A JP2020551961 A JP 2020551961A JP 7082211 B2 JP7082211 B2 JP 7082211B2
Authority
JP
Japan
Prior art keywords
tuples
target
hash
nat
port
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
JP2020551961A
Other languages
English (en)
Other versions
JP2021516923A5 (ja
JP2021516923A (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 JP2021516923A publication Critical patent/JP2021516923A/ja
Publication of JP2021516923A5 publication Critical patent/JP2021516923A5/ja
Application granted granted Critical
Publication of JP7082211B2 publication Critical patent/JP7082211B2/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
    • H04L61/2521Translation architectures other than single NAT servers
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/7453Address table lookup; Address filtering using hashing
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

NAT(Network Address Translation、ネットワークアドレス変換)機器は、パケットを受信した後、当該パケットがNAT処理される必要であるとともに当該パケットがセッション情報の確立条件を満たす場合に、確立フローを実行する。ここでの「セッション情報」は、例えば、パケットのソースIP(Internet Protocol、インターネットプロトコル)アドレス、宛先IPアドレス、ソースポート、宛先ポート及び伝送層プロトコルの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方法のフローチャートである。 本発明に係るNAT方法に基づいてソースIPアドレス変換を行うグラフ模式図である。 本発明に係るNAT方法に基づいてソース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機器の機器タイプは、ルータであってもよいが、これに限定されない。
また、セッション表は、2階層の表に分けられる。具体的に、セッション表の第1階層は、ハッシュ表であり、5タプルに対してハッシュ演算を行って得られた署名情報と、結果表を指すポインタとを記憶するために用いられ、セッション表の第2階層は、結果表であり、5タプル及び転送に関する他の情報を記憶するために用いられる。
セッション情報確立フローにおいて、ハッシュ表を検索することによって衝突しないターゲット5タプルを決定した後、ハッシュ表に当該ターゲット5タプル及び対応するオリジナル5タプルを記録してもよい。具体的に、(1)当該ハッシュ表における1つのハッシュバケットに、当該オリジナル5タプルに対応する署名情報と、結果表を指すポインタとを記憶し、(2)ターゲット5タプルについて位置交換を行い、位置交換後のターゲット5タプルを取得し、ハッシュ表における1つのハッシュバケットに、位置交換後のターゲット5タプルに対応する署名情報と、結果表を指すポインタとを記憶する。ただし、所謂位置交換は、ソースIPアドレスと宛先IPアドレスとの互いの入れ替え、及び、ソースポートと宛先ポートとの互いの入れ替えである。
ハッシュ表に含まれ得るパケットのオリジナル5タプルに対応する署名情報の記録は、当該パケットの、ハッシュ表における正方向ハッシュ記録に属する一方、ハッシュ表に含まれる位置交換後のターゲット5タプルに対応する署名情報の記録は、当該パケットの、ハッシュ表における逆方向ハッシュ記録に属する。また、同一のパケットに対応する正方向ハッシュ記録と逆方向ハッシュ記録とは、同じポインタを含む。つまり、同一のパケットに対応する正方向ハッシュ記録と逆方向ハッシュ記録とは、結果表における同一の記録に対応する。ただし、結果表における何れか1つの記録は、1つのパケットのオリジナル5タプルと、当該パケットに対応する位置交換後のターゲット5タプルとを少なくとも含む。
本発明では、ハッシュ表に5タプルの関連情報を記録する記憶方式に対して変更を行った。例えば、IPアドレスが同じでありポートが連続する複数の5タプルについて、ハッシュ表における対応するハッシュバケットも連続する。こうして、連続する複数のハッシュバケットを一度で読み取り可能であり、連続する複数のハッシュバケットに対応する複数の5タプルのそれぞれがハッシュ衝突を発生するか否かを判断可能である。
理解の便宜上、本発明は、本発明に係る方法に適用可能なネットワーキングシステムを例示する。当該ネットワーキングシステムの構造模式図は、図1を参照してもよい。図1に示すように、当該ネットワーキングシステムは、ホストA、NAT機器B及びサーバCを含む。ホストAとサーバCが異なるネットワークに属する(即ち、ホストAがイントラネットに属し、サーバCがエクストラネットに属する)ため、ホストAがサーバCへパケットを送信する際、NAT機器Bは、ホストAから送信されたパケットに対してNAT処理を行ってから、NAT処理されたパケットをサーバCへ送信する必要がある。類似的に、サーバCがホストAへパケットを送信する際、NAT機器Bは、サーバ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処理を実行され得ないと判断したときに、パケットがセッション情報確立条件を満たすと決定する。
パケットがセッション表に基づいて直接NAT処理を実行され得るか否かを判断する手順は、ハッシュ表を利用する必要があるが、本発明においてハッシュ表の記憶方式が変更されたため、パケットがセッション表に基づいて直接NAT処理を実行され得るか否かを判断する手順も変化する。後で詳しく紹介する。
S102では、当該ターゲットIPアドレスと、当該参照ポートと、当該パケットのオリジナル5タプルとに基づいて、当該パケットに対応する第1の5タプルを生成し、当該第1の5タプルの2種のポート(即ち、NAT処理が行われるポートと、NAT処理が行われないポート)の第1種のビットに対してマスク処理を行い、第2の5タプルを取得する。
S103では、当該第2の5タプルのハッシュ結果に基づいて、ハッシュ表の連続する複数のハッシュバケットから衝突しないターゲット5タプルを決定する。
当該ターゲットIPアドレス及び当該参照ポートが取得された後、当該NAT機器は、当該パケットに対応する変換需要に応じて、当該ターゲットIPアドレスで当該パケットのオリジナル5タプルにおけるソースIPアドレス又は宛先IPアドレスを付け替え、当該参照ポートで当該オリジナル5タプルにおけるソースポート又は宛先ポートを付け替えることにより、当該パケットに対応する第1の5タプルを生成してもよい。第1の5タプルが取得された後、当該NAT機器は、当該第1の5タプルの2種のポートの第1種のビットに対してマスク処理を行い、即ち、0にセットし、第2の5タプルを取得する。更に、当該NAT機器は、当該第2の5タプルのハッシュ結果に基づいて、ハッシュ表の連続する複数のハッシュバケットから衝突しないターゲット5タプルを決定する。セッション表に基づいて直接NAT処理を行う際、変換されるのがソースIPアドレスであるかそれとも宛先IPアドレスであるかを決定できないため、本発明では、第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ビット等のケースである。
ハッシュ表に対応する記憶領域は、複数のハッシュバケットに分けられ、そして、固定桁数の二進数文字列をハッシュバケットのインデックス値とする。衝突テスト速度を向上させて確立性能を高めるために、本発明では、複数の5タプルに対応するハッシュバケットを連続させる必要がある。このような需要に応じて、ハッシュ表における1つのハッシュバケットに、何れか1つの5タプルに対応する署名情報を記憶する具体的な手順は、下記のことを含んでもよい。
(1)当該5タプル中ソースポート及び宛先ポートの第1種のビットに対してマスク処理を行い、第1ハッシュアルゴリズムを利用し、マスク後の5タプルに対応するインデックス値を算出する。
ただし、区別が2種のポートの第1種のビットのみにある複数の5タプルは、同一のインデックス値に対応してもよい。
(2)当該インデックス値に対してオフセット処理を行い、固定桁数を有する新たなインデックス値を形成し、当該5タプルに対応する署名情報を当該新たなインデックス値に対応するハッシュバケットに記録する。ただし、オフセット処理は、当該5タプルにおける2種のポートの第1種のビットの組み合わせでインデックス値の下位N桁を付け替えること、または、インデックス値の尾部に当該組み合わせを補うことである。ただし、Nは、当該5タプルにおける2種のポートの第1種のビットの総桁数である。
上述した何れか1つの5タプルがハッシュ表に格納される方式に基づいて、複数の5タプルが衝突しない5タプルであるか否かを一度で探るために、第1の5タプルが取得された後、まず、当該第1の5タプルの2種のポートの第1種のビットに対してマスク処理を行って第2の5タプルを取得し、更に当該第2の5タプルのハッシュ結果に基づいて、ハッシュ表における連続する複数のハッシュバケットを決定し、当該連続する複数のハッシュバケットから、衝突しないターゲット5タプルを決定してもよい。
具体的に、当該第2の5タプルのハッシュ結果に基づいて、ハッシュ表の連続する複数のハッシュバケットから衝突しないターゲット5タプルを決定するステップは、
第1ハッシュアルゴリズムを利用し、当該第2の5タプルに対応する第1インデックス値を算出することと、
当該第1インデックス値に対してベースアドレス処理を行い、第2インデックス値を取得し、当該第2インデックス値をベースアドレスとしてハッシュ表を検索し、連続するM個の第1種のハッシュバケットを決定することと、
当該第2の5タプルと第2ハッシュアルゴリズムとに基づいて、当該M個の第1種のハッシュバケットから衝突しないターゲット5タプルを決定することと、を含んでもよく、
当該ベースアドレス処理は、当該第1インデックス値の下位N桁を0にセットすること、または、当該第1インデックス値の末尾にN桁の0を補うことを含み、
Nは、2種のポートの第1種のビットの数の合計であり、Mは、2である。
理解できるように、当該ベースアドレス処理は、上記オフセット処理に対して対応性を有する。具体的に、当該オフセット処理が5タプルにおける2種のポートの第1種のビットの組み合わせでインデックス値の下位N桁を付け替えることである場合に、それ相応に、当該ベースアドレス処理は、当該第1インデックス値の下位N桁を0にセットすることとなる一方、当該オフセット処理がインデックス値の末に当該組み合わせを補うことである場合に、それ相応に、当該ベースアドレス処理は、第1インデックス値の末尾にN桁の0を補うこととなる。また、第1ハッシュアルゴリズムは、MD(Message Digest Algorithm、メッセージダイジェストアルゴリズム)又はSHA(Secure Hash Algorithm、セキュアハッシュアルゴリズム)等を含んでもよい。
また、当該第2インデックス値をベースアドレスとしてハッシュ表を検索し、連続するM個の第1種のハッシュバケットを決定する具体的な手順は、当該第2インデックス値に対応する第1種のハッシュバケットを決定し、当該第2インデックス値に対応する第1種のハッシュバケットを始点として、連続するM個の第1種のハッシュバケットを読み取る。更に、前記当該第2の5タプルと第2ハッシュアルゴリズムとに基づいて、当該M個の第1種のハッシュバケットから衝突しないターゲット5タプルを決定するステップは、
当該第2の5タプルにおける第1種のポートの第1種のビットを復元し、第3の5タプルを取得することと、
当該M個の第1種のハッシュバケットから衝突しないターゲット5タプルが決定されるまで、当該第3の5タプルに対して衝突テストを実行することと、を含んでもよく、当該第1種のポートは、当該オリジナル5タプルにおける、NAT処理が行われないポートであり、
前記衝突テストは、
当該第3の5タプルにおける第2種のポートの第1種のビットを0にセットする及び/又は1にセットする方式により、その第2種のポートが当該1つの連続ポート範囲に属する第4の5タプルを生成することと、
第2ハッシュアルゴリズムを利用し、第4の5タプルに対応する第1署名情報を算出することと、
第1目標値を第3インデックス値として、当該M個の第1種のハッシュバケットからターゲットハッシュバケットを決定することと、
当該ターゲットハッシュバケットに記録された有効な署名情報、当該第1署名情報が存在しないと判断されたときに、当該第4の5タプルを衝突しないターゲット5タプルとして決定することとを含み、
当該第2種のポートは、当該オリジナル5タプルにおけるNAT処理が行われるポートであり、当該第1目標値は、当該第4の5タプルにおける2種のポートの第1種のビットの組み合わせである。
ただし、第2ハッシュアルゴリズムは、MD(Message Digest Algorithm、メッセージダイジェストアルゴリズム)又はSHA(Secure Hash Algorithm、セキュアハッシュアルゴリズム)等を含んでもよい。また、第1目標値を第3インデックス値として、当該M個の第1種のハッシュバケットからターゲットハッシュバケットを決定する具体的な手順は、当該第1目標値を第3インデックス値とし、更に、当該M個の第1種のハッシュバケットのうち、当該第3インデックス値に対応する第1種のハッシュバケットをターゲットハッシュバケットとする。
理解できるように、幾つかのポートがNATリソースプールにおける無効ポートに属し、当該第3の5タプルにおける第2種のポートの第1種のビットを0にセットして及び/又は1にセットして得られたポートは、NATリソースプールにおける無効ポートに属する可能性がある。したがって、第4の5タプルの第2種のポートが当該無効ポートに属することを回避するために、第4の5タプルを生成する際、当該第4の5タプルの第2種のポートは、参照ポートの所在する当該1つの連続ポート範囲内に限定されてもよい。
また、説明すべきことは、ハッシュ表を初期化するとき、ハッシュエントリにおける署名情報とポインタとを何れも無効値に設定してもよい。5タプルをハッシュ表に書き込むとき、当該5タプルに応じて、対応する署名情報及びポインタを有効値に変更してもよい。署名情報及びポインタが無効値であるか有効値であるかを区分するために、本案において、ハッシュエントリに、署名情報及びポインタごとに、1つのビットを対応設置し、当該ビットを0又は1にセットすることで、無効値か有効値かを区分してもよい。
S104では、当該ハッシュ表及び対応する結果表に当該ターゲット5タプル及び当該オリジナル5タプルを記録し、当該ターゲット5タプルに基づいて当該パケットに対してNAT処理を行う。
ハッシュ表の連続する複数のハッシュバケットから衝突しないターゲット5タプルが決定された後、当該ハッシュ表及び対応する結果表に当該ターゲット5タプル及び当該オリジナル5タプルを記録し、当該ターゲット5タプルに基づいて当該パケットに対してNAT処理を行ってもよい。ただし、結果表に当該ターゲット5タプル及び当該オリジナル5タプルを記録することは、当該オリジナル5タプルと、当該ターゲット5タプルに対して位置交換を行った5タプルとを当該結果表に記録することを含んでもよい。当該ターゲット5タプルに基づいて当該パケットに対してNAT処理を行うことは、当該パケットにおけるオリジナル5タプルをターゲット5タプルに付け替えることを含んでもよい。本発明において、当該ハッシュ表及び対応する結果表に当該ターゲット5タプル及び当該オリジナル5タプルを記録する具体的な手順は、下記のことを含んでもよい。
(1)第2ハッシュアルゴリズムを利用し、当該オリジナル5タプルに対応する署名情報を算出することと、当該オリジナル5タプルのソースポート及び宛先ポートの第1種のビットに対してマスク処理を行って新たな5タプルを取得し、第1ハッシュアルゴリズムを利用して当該オリジナル5タプルに対応する新たな5タプルのインデックス値を取得し、オリジナル5タプルの2種のポートの第1種のビットの組み合わせを利用して当該新たな5タプルのインデックス値に対してオフセット処理を行い、新たなインデックス値を取得することと、当該新たなインデックス値で当該ハッシュ表を検索し、1つのハッシュバケットを決定し、当該オリジナル5タプルに対応する署名情報と結果表を指すポインタとを決定された当該ハッシュバケットに記憶することとが含まれる。
(2)当該ターゲット5タプルに対して位置交換を行って位置交換後のターゲット5タプルを取得することと、第2ハッシュアルゴリズムを利用して位置交換後のターゲット5タプルに対応する署名情報を算出することと、位置交換後のターゲット5タプルの2種のポートの第1種のビットに対してマスク処理を行い、位置交換後のターゲット5タプルに対応する新たな5タプルを取得することと、第1ハッシュアルゴリズムを利用して当該新たな5タプルのインデックス値を算出することと、位置交換後のターゲット5タプルの2種のポートの第1種のビットの組み合わせに基づいて、当該インデックス値に対してオフセット処理を行い、新たなインデックス値を形成することと、当該新たなインデックス値で当該ハッシュ表を検索し、1つのハッシュバケットを決定し、位置交換後のターゲット5タプルに対応する署名情報と結果表を指すポインタとを決定された当該ハッシュバケットに記憶することとが含まれる。また、理解できるように、当該パケットがNAT処理されるべきと判断したときに、確立手順を実行する前に、更に、当該パケットがセッション表に基づいて直接NAT処理を実行され得るか否かを判断してもよい。したがって、本発明に係るNAT方法は、以下のステップを更に含んでもよい。
ステップ01では、当該パケットがNAT処理されるべきと判断したときに、第2ハッシュアルゴリズムを利用し、当該オリジナル5タプルに対応する第2署名情報を算出する。
ステップ02では、当該オリジナル5タプルの2種のポートの第1種のビットに対してマスク処理を行い、第5の5タプルを取得する。
ステップ03では、第1ハッシュアルゴリズムを利用し、当該第5の5タプルに対応する第4インデックス値を算出する。
ステップ04では、当該第4インデックス値に対してオフセット処理を行い、第5インデックス値を形成し、当該第5インデックス値で当該ハッシュ表を検索し、第2種のハッシュバケットを決定し、ただし、当該オフセット処理は、第2目標値で当該第4インデックス値の下位N桁を付け替えること、または、当該第4インデックス値の末尾に当該第2目標値を補うことであり、当該第2目標値は、当該オリジナル5タプルの2種のポートの第1種のビットの組み合わせである。
ステップ05では、当該第2種のハッシュバケットに記録された有効な署名情報のうち、当該第2署名情報が存在すると判断したときに、当該結果表に基づいて当該パケットに対してNAT処理を行い、そうでなければ、前記NATリソースプールからターゲットIPアドレスおよび前記ターゲットIPアドレスの参照ポートを取得するステップを実行する。
ただし、当該結果表に基づいて当該パケットに対してNAT処理を行うステップは、具体的に、当該第2種のハッシュバケットに記録された第2署名情報に対応するポインタに基づいて、結果表から5タプルを決定し、更に決定された5タプルに基づいて、当該パケットに対してNAT処理を行う。
本発明に係る技術案では、ハッシュ表の連続する複数のハッシュバケットを一度で決定し、更に、衝突しないターゲット5タプルをハッシュ表の連続する複数のハッシュバケットから決定する。つまり、連続する複数のハッシュバケットに対応する複数の5タプルが衝突しない5タプルであるか否かを一度で探る。これにより、衝突テストのときに記憶媒体に対する読取回数が減少可能であるため、NAT手順における確立性能が向上することができる。
以下では、応用実例を組み合わせて本発明に係る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である。
図3と図4に示すように、本発明に係るNAT方法は、以下のステップを含んでもよい。
s01では、NAT機器Bは、ホストA~サーバCのパケットを受信した後、ACLに基づいて、当該パケットがNAT処理されるべきであると決定する。
s02では、当該パケットにおけるオリジナル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は、伝送プロトコルである。
s03では、MDアルゴリズムを利用して、当該オリジナル5タプルに対応する署名情報sig1を算出する。
s04では、当該オリジナル5タプルのソースポートの第0ビットp0と宛先ポートの第0ビットp1とに対してマスク処理を行い、5タプルG 1(192.168.1.2、1.1.1.2、Psrc1、Pdst1、tcp)を取得する。
ただし、Psrc1は、ソースポート2222の第0ビットp0に対してマスク処理を行って得られた値であり、Pdst1は、宛先ポート80の第0ビットp1に対してマスク処理を行って得られた値である。
s05では、SHAアルゴリズムを利用して、当該5タプルG 1に対応するインデックス値ind1を算出する。
s06では、p0とp1との組み合わせでインデックス値ind1の下位2桁を付け替え、インデックス値ind2を形成する。
s07では、インデックス値ind2でハッシュ表を検索し、ハッシュバケットD1を決定する。
s08では、当該ハッシュバケットD1に記録された有効な署名情報のうち、署名情報sig1が存在すると判断されたときに、結果表に基づいて当該パケットに対してNAT処理を行い、そうでなければ、s09を実行する。
図3に示すハッシュ表において、vは、署名情報及びポインタが有効値か無効値かを認識するために用いられる。ただし、vが0であるときに、署名情報及びポインタが無効値であることを示し、vが1であるときに、署名情報及びポインタが有効値であることを示す。
s09では、ACLに基づいて、当該パケットに対応するアドレス変換タイプがソースIPアドレスの変換であると決定する。
s10では、ソースIPアドレスに対応するNATリソースプールからターゲットIPアドレス及び参照ポートを取得する。
ただし、当該ターゲットIPアドレスが1.1.1.1であり、参照ポートが2001であると仮定する。
s11では、ターゲットIPアドレスでオリジナル5タプルにおけるソースIPアドレスを付け替え、参照ポートでオリジナル5タプルにおけるソースポートを付け替えて、5タプルG2を取得し、5タプルG2のソースポートの第0ビットp2と宛先ポートの第0ビットp1とに対してマスク処理を行い、5タプルG3を取得する。
ただし、図4に示すように、5タプルG2は、(1.1.1.1、1.1.1.2、2001、80、tcp)であり、それ相応に、5タプルG3は、(1.1.1.1、1.1.1.2、Psrc2、Pdst2、tcp)である。
ただし、Psrc2は、5タプルG2のソースポートの第0ビットp2に対してマスク処理を行って得られた値であり、Pdst2は、5タプルG2の宛先ポートの第0ビットp1に対してマスク処理を行って得られた値である。
s12では、SHAアルゴリズムを利用して、5タプルG3に対応するインデックス値ind3を算出する。
s13では、インデックス値ind3の下位2桁を0にセットしてインデックス値ind4を取得し、インデックス値ind4をインデックスとして、ハッシュ表から4つの連続する第1種のハッシュバケットを読み取る。
s14では、5タプルG3の宛先ポートのマスクビットを復元して5タプルG4を取得する。
ただし、5タプルG4は、(1.1.1.1、1.1.1.2、Psrc2、80、tcp)である。
s15では、5タプルG4のソースポートの第0ビットP2を0にセットして5タプルG5を取得し、MDアルゴリズムを利用して5タプルG5に対応する署名情報sig2を算出し、p2とp1との組み合わせをインデックスとして、連続する4個の第1種のハッシュバケットからハッシュバケットD2を決定し、当該ハッシュバケットD2に記録された有効な署名情報のうち、当該sig2が存在するか否かを検索し、存在しない場合に、5タプルG5を当該パケットに対応するターゲット5タプルとし、ハッシュ表及び対応する結果表に5タプルG5及びオリジナル5タプルを記録し、5タプルG5に基づいて当該パケットに対してNAT処理を行い、存在する場合に、s16を実行する。
s16では、5タプルG4のソースポートの第0ビットP2を1にセットして5タプルG6を取得し、MDアルゴリズムを利用して5タプルG6に対応する署名情報sig3を算出し、p2とp1との組み合わせをインデックスとして、連続する4個の第1種のハッシュバケットからハッシュバケットD3を決定、当該ハッシュバケットD3に記録された有効な署名情報のうち、当該sig3が存在するか否かを検索し、存在しない場合に、5タプルG6を当該パケットに対応するターゲット5タプルとし、ハッシュ表及び対応する結果表に5タプルG6及びオリジナル5タプルを記録し、5タプルG6に基づいて当該パケットに対してNAT処理を行い、存在する場合に、戻ってs10を実行し、ソースIPアドレスに対応するNATリソースプールから新たなターゲットIPアドレス及び参照ポートを取得する。
オリジナル5タプルに対応するアドレス変換タイプが宛先IPアドレスであるときに、NATフローは、s01-s16と類似し、区別が宛先ポートとソースポートとの処理を互いに入れ替えることにある。
これにより、本具体的な実施例において、衝突テストのときに記憶媒体に対する読取回数が減ったため、セッション情報確立性能が悪いという問題は解決できる。
上記方法実施例に相応し、本発明は、NAT装置を提供する。図5に示すように、前記装置は、以下のユニットを備える。
取得ユニット510は、NATリソースプールからターゲットIPアドレスおよび前記ターゲットIPアドレスの参照ポートを取得するために用いられ、前記参照ポートは、前記ターゲットIPアドレスの1つの連続ポート範囲における1つのポートである。
処理ユニット520は、前記ターゲットIPアドレスと、前記参照ポートと、パケットのオリジナル5タプルとに基づいて、前記パケットに対応する第1の5タプルを生成し、それぞれ前記第1の5タプルの2種のポートの第1種のビットに対してマスク処理を行い、第2の5タプルを取得するために用いられる。
決定ユニット530は、前記第2の5タプルに対するハッシュ演算の結果に基づいて、ハッシュ表の連続する複数のハッシュバケットからターゲット5タプルを決定するために用いられる。
変換ユニット540は、前記ハッシュ表及び対応する結果表に前記ターゲット5タプル及び前記オリジナル5タプルを記録し、前記ターゲット5タプルに基づいて前記パケットに対してNAT処理を行うために用いられる。
本発明に係る技術案では、ハッシュ表の連続する複数のハッシュバケットを一度で決定し、更に、衝突しないターゲット5タプルをハッシュ表の連続する複数のハッシュバケットから決定する。つまり、連続する複数のハッシュバケットに対応する複数の5タプルが衝突しない5タプルであるか否かを一度で探る。これにより、衝突テストのときに記憶媒体に対する読取回数が減少可能であるため、NAT手順における確立性能が向上することができる。
好ましくは、前記決定ユニット530は、下記のサブユニットを含んでもよい。
算出サブユニットは、第1ハッシュアルゴリズムを利用し、前記第2の5タプルに対応する第1インデックス値を算出するために用いられる。
検索サブユニットは、前記第1インデックス値に対してベースアドレス処理を行って第2インデックス値を取得し、前記第2インデックス値をベースアドレスとしてハッシュ表を検索し、連続するM個の第1種のハッシュバケットを決定するために用いられる。
決定サブユニットは、前記第2の5タプルと第2ハッシュアルゴリズムとに基づいて、前記M個の第1種のハッシュバケットからターゲット5タプルを決定するために用いられる。
ただし、前記ベースアドレス処理は、前記第1インデックス値の下位N桁を0にセットすること、または、前記第1インデックス値の末尾にN桁の0を補うことを含み、
Nは、2種のポートの第1種のビットの数の合計であり、Mは、2である。
好ましくは、前記決定サブユニットは、具体的に、
前記第2の5タプルにおける第1種のポートの第1種のビットを復元し、第3の5タプルを取得し、
前記M個の第1種のハッシュバケットからターゲット5タプルが決定されるまで、前記第3の5タプルに対して衝突テストを実行するために用いられ、ただし、前記第1種のポートは、前記オリジナル5タプルにおける、NAT処理が行われないポートであり、
前記衝突テストは、
前記第3の5タプルにおける第2種のポートの第1種のビットを0にセットする及び/又は1にセットすることにより、その第2種のポートが前記1つの連続ポート範囲に属する第4の5タプルを生成することと、
第2ハッシュアルゴリズムを利用し、前記第4の5タプルに対応する第1署名情報を算出することと、
第1目標値を第3インデックス値として、前記M個の第1種のハッシュバケットからターゲットハッシュバケットを決定することと、
前記ターゲットハッシュバケットに記録された有効な署名情報、前記第1署名情報が存在しないと判断されたときに、前記第4の5タプルをターゲット5タプルとして決定することとを含み、
ただし、前記第2種のポートは、前記オリジナル5タプルにおける、NAT処理が行われるポートであり、前記第1目標値は、前記第4の5タプルにおける2種のポートの第1種のビットの組み合わせである。
好ましくは、前記装置は、以下のユニットを更に備える。
算出ユニットは、前記パケットがNAT処理されるべきであると判断されたときに、第2ハッシュアルゴリズムを利用し、前記オリジナル5タプルに対応する第2署名情報を算出する。
マスクユニットは、前記オリジナル5タプルの2種のポートの第1種のビットに対してマスク処理を行い、第5の5タプルを取得するために用いられる。
生成ユニットは、第1ハッシュアルゴリズムを利用し、前記第5の5タプルに対応する第4インデックス値を算出するために用いられる。
インデックスユニットは、前記第4インデックス値に対してオフセット処理を行って第5インデックス値を形成し、前記第5インデックス値で前記ハッシュ表を検索し、第2種のハッシュバケットを決定するために用いられ、ただし、前記オフセット処理は、前記第4インデックス値の下位N桁を第2目標値で付け替えること、又は、前記第4インデックス値の末尾に前記第2目標値を補うことであり、前記第2目標値は、前記オリジナル5タプルの2種のポートの第1種のビットの組み合わせである。
分析ユニットは、前記第2種のハッシュバケットに記録された有効な署名情報のうち、前記第2署名情報が存在すると判断されたときに、前記結果表に基づいて前記パケットに対してNAT処理を行い、そうでなければ、前記NATリソースプールから新たなターゲットIPアドレスおよび前記新たなターゲットIPアドレスの参照ポートを取得するために用いられる。
装置実施例は、方法実施例に基本的に対応するため、その関連箇所が方法実施例部分の説明を参照すればよい。上述した装置実施例は、単に例示であり、その中、分離部品として説明されるユニットが物理的に分離されるものであってもよくでなくてもよい。また、ユニットとして表示される部品は、物理ユニットであってもでなくてもよい。更に、それらのユニットは、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 (14)

  1. ネットワークアドレス変換(NAT)方法であって、
    当該方法は、
    NATリソースプールからターゲットインターネットプロトコル(IP)アドレスと前記ターゲットIPアドレスの参照ポートとを取得するステップと、
    前記ターゲットIPアドレスと、前記参照ポートと、パケットのオリジナル5タプルとに基づいて、前記パケットに対応する第1の5タプルを生成し、それぞれ前記第1の5タプルの2種のポートの第1種のビットに対してマスク処理を行い、第2の5タプルを取得するステップと、
    前記第2の5タプルのハッシュ結果に基づいて、ハッシュ表の連続する複数のハッシュバケットからターゲット5タプルを決定するステップと、
    前記ハッシュ表及び対応する結果表に前記ターゲット5タプル及び前記オリジナル5タプルを記録し、前記ターゲット5タプルに基づいて前記パケットに対してNAT処理を行うステップと、を含み、
    前記参照ポートは、前記ターゲットIPアドレスの1つの連続ポート範囲における1つのポートであることを特徴とするNAT方法。
  2. 前記第2の5タプルのハッシュ結果に基づいて、ハッシュ表の連続する複数のハッシュバケットからターゲット5タプルを決定するステップは、
    第1ハッシュアルゴリズムを利用し、前記第2の5タプルに対応する第1インデックス値を算出することと、
    前記第1インデックス値に対してベースアドレス処理を行って第2インデックス値を取得し、前記第2インデックス値をベースアドレスとしてハッシュ表を検索し、連続するM個の第1種のハッシュバケットを決定することと、
    前記第2の5タプルと第2ハッシュアルゴリズムとに基づいて、前記M個の第1種のハッシュバケットからターゲット5タプルを決定することと、を含み、
    前記ベースアドレス処理は、前記第1インデックス値の下位N桁を0にセットすることと、前記第1インデックス値の末尾にN桁の0を補うこととの何れか一方を含み、
    Nは、2種のポートの第1種のビットの数の合計であり、Mは、2であることを特徴とする請求項1に記載のNAT方法。
  3. 前記第2の5タプルと第2ハッシュアルゴリズムとに基づいて、前記M個の第1種のハッシュバケットからターゲット5タプルを決定することは、
    前記第2の5タプルにおける第1種のポートの第1種のビットを復元し、第3の5タプルを取得することと、
    前記M個の第1種のハッシュバケットからターゲット5タプルが決定されるまで、前記第3の5タプルに対して衝突テストを実行することとを含み、
    前記第1種のポートは、前記オリジナル5タプルにおける、NAT処理が行われないポートであり、
    前記衝突テストは、
    前記第3の5タプルにおける第2種のポートの第1種のビットを0にセットする及び/又は1にセットすることにより、その第2種のポートが前記1つの連続ポート範囲に属する第4の5タプルを生成することと、
    第2ハッシュアルゴリズムを利用し、前記第4の5タプルに対応する第1署名情報を算出することと、
    第1目標値を第3インデックス値として、前記M個の第1種のハッシュバケットからターゲットハッシュバケットを決定することと、
    前記ターゲットハッシュバケットに記録された有効な署名情報、前記第1署名情報が存在しないときに、前記第4の5タプルをターゲット5タプルとして決定することとを含み、
    前記第2種のポートは、前記オリジナル5タプルにおける、NAT処理が行われるポートであり、前記第1目標値は、前記第4の5タプルにおける2種のポートの第1種のビットの組み合わせであることを特徴とする請求項2に記載のNAT方法。
  4. 前記方法は、
    前記パケットがNAT処理されるべきであると判断したときに、第2ハッシュアルゴリズムを利用し、前記オリジナル5タプルに対応する第2署名情報を算出するステップと、
    前記オリジナル5タプルの2種のポートの第1種のビットに対してマスク処理を行い、第5の5タプルを取得するステップと、
    第1ハッシュアルゴリズムを利用し、前記第5の5タプルに対応する第4インデックス値を算出するステップと、
    前記第4インデックス値に対してオフセット処理を行って第5インデックス値を形成し、前記第5インデックス値で前記ハッシュ表を検索し、第2種のハッシュバケットを決定するステップと、
    前記第2種のハッシュバケットに記録された有効な署名情報、前記第2署名情報が存在するときに、前記結果表に基づいて前記パケットに対してNAT処理を行い、前記第2種のハッシュバケットに記録された有効な署名情報、前記第2署名情報が存在しないときに、前記NATリソースプールから新たなターゲットIPアドレスおよび前記新たなターゲットIPアドレスの参照ポートを取得するステップと、を更に含み、
    前記オフセット処理は、前記第4インデックス値の下位N桁を第2目標値で付け替えることと、前記第4インデックス値の末尾に前記第2目標値を補うこととの何れか一方であり、前記第2目標値は、前記オリジナル5タプルの2種のポートの第1種のビットの組み合わせであることを特徴とする請求項1から3の何れか一項に記載のNAT方法。
  5. 前記第1種のビットは、ポートを示すためのビットシーケンスの末尾の連続する少なくとも1桁であることを特徴とする請求項1から3の何れか一項に記載のNAT方法。
  6. ネットワークアドレス変換(NAT)装置であって、
    当該装置は、
    NATリソースプールからターゲットインターネットプロトコル(IP)アドレスと前記ターゲットIPアドレスの参照ポートとを取得するための取得ユニットと、
    前記ターゲットIPアドレスと、前記参照ポートと、パケットのオリジナル5タプルとに基づいて、前記パケットに対応する第1の5タプルを生成し、それぞれ前記第1の5タプルの2種のポートの第1種のビットに対してマスク処理を行い、第2の5タプルを取得するための処理ユニットと、
    前記第2の5タプルのハッシュ結果に基づいて、ハッシュ表の連続する複数のハッシュバケットからターゲット5タプルを決定するための決定ユニットと、
    前記ハッシュ表及び対応する結果表に前記ターゲット5タプル及び前記オリジナル5タプルを記録し、前記ターゲット5タプルに基づいて前記パケットに対してNAT処理を行うための変換ユニットと、を備え、
    前記参照ポートは、前記ターゲットIPアドレスの1つの連続ポート範囲における1つのポートであることを特徴とするNAT装置。
  7. 前記決定ユニットは、
    第1ハッシュアルゴリズムを利用し、前記第2の5タプルに対応する第1インデックス値を算出するための算出サブユニットと、
    前記第1インデックス値に対してベースアドレス処理を行って第2インデックス値を取得し、前記第2インデックス値をベースアドレスとしてハッシュ表を検索し、連続するM個の第1種のハッシュバケットを決定するための検索サブユニットと、
    前記第2の5タプルと第2ハッシュアルゴリズムとに基づいて、前記M個の第1種のハッシュバケットからターゲット5タプルを決定するための決定サブユニットと、を備え、
    前記ベースアドレス処理は、前記第1インデックス値の下位N桁を0にセットすることと、前記第1インデックス値の末尾にN桁の0を補うこととの何れか一方を含み、
    Nは、2種のポートの第1種のビットの数の合計であり、Mは、2であることを特徴とする請求項6に記載のNAT装置。
  8. 前記決定サブユニットは、
    前記第2の5タプルにおける第1種のポートの第1種のビットを復元し、第3の5タプルを取得し、
    前記M個の第1種のハッシュバケットからターゲット5タプルが決定されるまで、前記第3の5タプルに対して衝突テストを実行するために用いられ、
    前記第1種のポートは、前記オリジナル5タプルにおける、NAT処理が行われないポートであり、
    前記衝突テストは、
    前記第3の5タプルにおける第2種のポートの第1種のビットを0にセットする及び/又は1にセットすることにより、その第2種のポートが前記1つの連続ポート範囲に属する第4の5タプルを生成することと、
    第2ハッシュアルゴリズムを利用し、前記第4の5タプルに対応する第1署名情報を算出することと、
    第1目標値を第3インデックス値として、前記M個の第1種のハッシュバケットからターゲットハッシュバケットを決定することと、
    前記ターゲットハッシュバケットに記録された有効な署名情報、前記第1署名情報が存在しないときに、前記第4の5タプルをターゲット5タプルとして決定することと、を含み、
    前記第2種のポートは、前記オリジナル5タプルにおける、NAT処理が行われるポートであり、前記第1目標値は、前記第4の5タプルにおける2種のポートの第1種のビットの組み合わせであることを特徴とする請求項7に記載のNAT装置。
  9. 前記装置は、
    前記パケットがNAT処理されるべきであると判断されたときに、第2ハッシュアルゴリズムを利用し、前記オリジナル5タプルに対応する第2署名情報を算出するための算出ユニットと、
    前記オリジナル5タプルの2種のポートの第1種のビットに対してマスク処理を行い、第5の5タプルを取得するためのマスクユニットと、
    第1ハッシュアルゴリズムを利用し、前記第5の5タプルに対応する第4インデックス値を算出するための生成ユニットと、
    前記第4インデックス値に対してオフセット処理を行って第5インデックス値を形成し、前記第5インデックス値で前記ハッシュ表を検索し、第2種のハッシュバケットを決定するためのインデックスユニットと、
    前記第2種のハッシュバケットに記録された有効な署名情報、前記第2署名情報が存在するときに、前記結果表に基づいて前記パケットに対してNAT処理を行い、前記第2種のハッシュバケットに記録された有効な署名情報、前記第2署名情報が存在しないときに、前記NATリソースプールから新たなターゲットIPアドレスおよび前記新たなターゲットIPアドレスの参照ポートを取得するための分析ユニットと、を更に備え、
    前記オフセット処理は、前記第4インデックス値の下位N桁を第2目標値で付け替えることと、前記第4インデックス値の末尾に前記第2目標値を補うこととの何れか一方であり、前記第2目標値は、前記オリジナル5タプルの2種のポートの第1種のビットの組み合わせであることを特徴とする請求項6から8の何れか一項に記載のNAT装置。
  10. ネットワークアドレス変換(NAT)機器であって、
    当該機器は、
    内部バスと、非一時的記憶媒体と、プロセッサと、通信インターフェースとを備え、
    前記プロセッサ、前記通信インターフェース及び前記非一時的記憶媒体は、前記内部バスを介して互いの通信を実施し、前記記憶媒体は、NAT方法に対応する機器の実行可能な指令を記憶し、
    前記プロセッサは、前記記憶媒体における前記機器の実行可能な指令を読み取ることにより、
    NATリソースプールからターゲットインターネットプロトコル(IP)アドレスと前記ターゲットIPアドレスの参照ポートとを取得することと、
    前記ターゲットIPアドレスと、前記参照ポートと、パケットのオリジナル5タプルとに基づいて、前記パケットに対応する第1の5タプルを生成し、それぞれ前記第1の5タプルの2種のポートの第1種のビットに対してマスク処理を行い、第2の5タプルを取得することと、
    前記第2の5タプルのハッシュ結果に基づいて、ハッシュ表の連続する複数のハッシュバケットからターゲット5タプルを決定することと、
    前記ハッシュ表及び対応する結果表に前記ターゲット5タプル及び前記オリジナル5タプルを記録し、前記ターゲット5タプルに基づいて前記パケットに対してNAT処理を行うことと、を実行させ、
    前記参照ポートは、前記ターゲットIPアドレスの1つの連続ポート範囲における1つのポートであることを特徴とするNAT機器。
  11. 前記第2の5タプルのハッシュ結果に基づいて、ハッシュ表の連続する複数のハッシュバケットからターゲット5タプルを決定するときに、前記プロセッサは、更に、前記機器の実行可能な指令により、
    第1ハッシュアルゴリズムを利用し、前記第2の5タプルに対応する第1インデックス値を算出することと、
    前記第1インデックス値に対してベースアドレス処理を行って第2インデックス値を取得し、前記第2インデックス値をベースアドレスとしてハッシュ表を検索し、連続するM個の第1種のハッシュバケットを決定することと、
    前記第2の5タプルと第2ハッシュアルゴリズムとに基づいて、前記M個の第1種のハッシュバケットからターゲット5タプルを決定することと、を実行させ、
    前記ベースアドレス処理は、前記第1インデックス値の下位N桁を0にセットすることと、前記第1インデックス値の末尾にN桁の0を補うこととの何れか一方を含み、
    Nは、2種のポートの第1種のビットの数の合計であり、Mは、2であることを特徴とする請求項10に記載のNAT機器。
  12. 前記第2の5タプルと第2ハッシュアルゴリズムとに基づいて、前記M個の第1種のハッシュバケットからターゲット5タプルを決定するときに、前記プロセッサは、更に、前記機器の実行可能な指令により、
    前記第2の5タプルにおける第1種のポートの第1種のビットを復元し、第3の5タプルを取得することと、
    前記M個の第1種のハッシュバケットからターゲット5タプルが決定されるまで、前記第3の5タプルに対して衝突テストを実行することと、を実行させ、
    前記第1種のポートは、前記オリジナル5タプルにおける、NAT処理が行われないポートであり、
    前記衝突テストは、
    前記第3の5タプルにおける第2種のポートの第1種のビットを0にセットする及び/又は1にセットすることにより、その第2種のポートが前記1つの連続ポート範囲に属する第4の5タプルを生成することと、
    第2ハッシュアルゴリズムを利用し、前記第4の5タプルに対応する第1署名情報を算出することと、
    第1目標値を第3インデックス値として、前記M個の第1種のハッシュバケットからターゲットハッシュバケットを決定することと、
    前記ターゲットハッシュバケットに記録された有効な署名情報、前記第1署名情報が存在しないときに、前記第4の5タプルをターゲット5タプルとして決定することとを含み、
    前記第2種のポートは、前記オリジナル5タプルにおける、NAT処理が行われるポートであり、前記第1目標値は、前記第4の5タプルにおける2種のポートの第1種のビットの組み合わせであることを特徴とする請求項11に記載のNAT機器。
  13. 前記プロセッサは、更に、前記機器の実行可能な指令により、
    前記パケットがNAT処理されるべきであると判断したときに、第2ハッシュアルゴリズムを利用し、前記オリジナル5タプルに対応する第2署名情報を算出することと、
    前記オリジナル5タプルの2種のポートの第1種のビットに対してマスク処理を行い、第5の5タプルを取得することと、
    第1ハッシュアルゴリズムを利用し、前記第5の5タプルに対応する第4インデックス値を算出することと、
    前記第4インデックス値に対してオフセット処理を行って第5インデックス値を形成し、前記第5インデックス値で前記ハッシュ表を検索し、第2種のハッシュバケットを決定することと、
    前記第2種のハッシュバケットに記録された有効な署名情報、前記第2署名情報が存在するときに、前記結果表に基づいて前記パケットに対してNAT処理を行う、前記第2種のハッシュバケットに記録された有効な署名情報、前記第2署名情報が存在しないときに、前記NATリソースプールから新たなターゲットIPアドレスおよび前記新たなターゲットIPアドレスの参照ポートを取得することと、を実行させ、
    前記オフセット処理は、前記第4インデックス値の下位N桁を第2目標値で付け替えることと、前記第4インデックス値の末尾に前記第2目標値を補うこととの何れか一方であり、前記第2目標値は、前記オリジナル5タプルの2種のポートの第1種のビットの組み合わせであることを特徴とする請求項10から12の何れか一項に記載のNAT機器。
  14. 前記第1種のビットは、ポートを示すためのビットシーケンスの末尾の連続する少なくとも1桁であることを特徴とする請求項10から12の何れか一項に記載のNAT機器。
JP2020551961A 2018-03-26 2019-03-22 ネットワークアドレス変換 Active JP7082211B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201810253605.X 2018-03-26
CN201810253605.XA CN109688238B (zh) 2018-03-26 2018-03-26 一种nat转换方法、装置及nat设备
PCT/CN2019/079157 WO2019184803A1 (zh) 2018-03-26 2019-03-22 网络地址转换

Publications (3)

Publication Number Publication Date
JP2021516923A JP2021516923A (ja) 2021-07-08
JP2021516923A5 JP2021516923A5 (ja) 2022-05-17
JP7082211B2 true JP7082211B2 (ja) 2022-06-07

Family

ID=66184415

Family Applications (1)

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

Country Status (5)

Country Link
US (1) US10965642B2 (ja)
EP (1) EP3758340A4 (ja)
JP (1) JP7082211B2 (ja)
CN (1) CN109688238B (ja)
WO (1) WO2019184803A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109688237B (zh) * 2018-03-26 2020-05-12 新华三技术有限公司 一种nat转换方法、装置及nat设备
CN113132242B (zh) * 2021-03-19 2022-11-15 翱捷科技股份有限公司 一种网络设备及其共享发送和接收缓存的方法
CN115665092A (zh) * 2022-09-27 2023-01-31 湖南网数科技有限公司 一种用于网络通信和内容分发领域的ip识别方法
CN115834528B (zh) * 2022-11-23 2025-02-28 东软集团股份有限公司 数据转发方法、装置、电子设备和存储介质
CN115801283B (zh) * 2022-11-29 2025-07-18 武汉船舶通信研究所(中国船舶重工集团公司第七二二研究所) 一种网络安全接入设备
CN116668369A (zh) * 2023-05-27 2023-08-29 新华三技术有限公司 一种流表处理方法、装置、设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010252103A (ja) 2009-04-16 2010-11-04 Alaxala Networks Corp インタネットワーク装置、及び、ローカルアドレス及び各ローカルアドレスと共に用いられるローカルアドレス内通信ポート番号と、グローバルアドレス及び各グローバルアドレスと共に用いられるグローバルアドレス内通信ポート番号とを相互に変換する方法
CN107566549A (zh) 2017-09-30 2018-01-09 东软集团股份有限公司 一种网络地址转换映射表的处理方法、装置及设备

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7146354B1 (en) * 1999-06-18 2006-12-05 F5 Networks, Inc. Method and system for network load balancing with a compound data structure
CN100477671C (zh) * 2005-12-16 2009-04-08 中国科学院计算技术研究所 Pat模式下支持多会话应用层协议的网络地址转换方法
US7830905B2 (en) * 2007-04-20 2010-11-09 Cray Inc. Speculative forwarding in a high-radix router
CN101132424B (zh) * 2007-09-29 2011-08-31 杭州华三通信技术有限公司 网络地址转换的方法及装置
US20090138960A1 (en) * 2007-10-26 2009-05-28 University Of Ottawa Control access rule conflict detection
CN101800690B (zh) 2009-02-05 2012-08-15 北京启明星辰信息技术股份有限公司 一种使用地址池实现源地址转换的方法和装置
US8009682B2 (en) 2009-05-05 2011-08-30 Citrix Systems, Inc. Systems and methods for packet steering in a multi-core architecture
CN101702657B (zh) 2009-12-04 2012-04-18 杭州华三通信技术有限公司 一种nat业务的热备份方法和设备
CN102438331B (zh) 2012-01-12 2016-04-13 惠州Tcl移动通信有限公司 一种移动终端通过手机上网的方法及系统
US8891540B2 (en) * 2012-05-14 2014-11-18 Juniper Networks, Inc. Inline network address translation within a mobile gateway router
US9185072B2 (en) * 2012-05-14 2015-11-10 Futurewei Technologies, Inc. Stateless NAT44
KR20150053620A (ko) * 2013-11-08 2015-05-18 한국전자통신연구원 패킷 전송 장치 및 방법
CN104243631A (zh) 2014-10-13 2014-12-24 北京太一星晨信息技术有限公司 一种IPv4地址与IPv6地址有状态转换的方法及设备
CN104468381B (zh) * 2014-12-01 2017-05-10 国家计算机网络与信息安全管理中心 一种多域流规则匹配的实现方法
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 瞻博网络公司 用于管理端口的设备、系统和方法
EP3369213B1 (en) * 2015-10-30 2020-08-05 Telecom Italia S.p.A. Performance measurement in a packet-switched communication network
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
US10681011B2 (en) * 2017-11-30 2020-06-09 International Business Machines Corporation Preemptive determination of reserved IP conflicts on VPNs

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010252103A (ja) 2009-04-16 2010-11-04 Alaxala Networks Corp インタネットワーク装置、及び、ローカルアドレス及び各ローカルアドレスと共に用いられるローカルアドレス内通信ポート番号と、グローバルアドレス及び各グローバルアドレスと共に用いられるグローバルアドレス内通信ポート番号とを相互に変換する方法
CN107566549A (zh) 2017-09-30 2018-01-09 东软集团股份有限公司 一种网络地址转换映射表的处理方法、装置及设备

Also Published As

Publication number Publication date
US10965642B2 (en) 2021-03-30
EP3758340A1 (en) 2020-12-30
EP3758340A4 (en) 2021-02-24
US20210014194A1 (en) 2021-01-14
JP2021516923A (ja) 2021-07-08
WO2019184803A1 (zh) 2019-10-03
CN109688238A (zh) 2019-04-26
CN109688238B (zh) 2020-06-09

Similar Documents

Publication Publication Date Title
JP7082211B2 (ja) ネットワークアドレス変換
JP6978612B2 (ja) ネットワークアドレス変換
JP2021516923A5 (ja)
CN103238145B (zh) 用于网络装备中的高性能、可更新和确定的哈希表的方法和设备
JP6911158B2 (ja) 差分プライバシーを備える忘却型アクセス
WO2014127605A1 (zh) 基于哈希表和tcam表的mac地址硬件学习方法及系统
US20170366459A1 (en) Jump on a Match Optimization for Longest Prefix Match using a Binary Search Tree
US10547547B1 (en) Uniform route distribution for a forwarding table
US20140358886A1 (en) Internal search engines architecture
CN106164898A (zh) 数据处理方法和装置
CN109672623B (zh) 一种报文处理方法和装置
CN112187743B (zh) 一种基于ip地址最长前缀的网络策略匹配方法及系统
US20030210691A1 (en) Network address-port translation apparatus and method
US20190334818A1 (en) Routing packets in overlapping address spaces
US8539547B2 (en) Policy selector representation for fast retrieval
EP4704380A1 (en) Method and apparatus for policy matching
JP6070863B2 (ja) パケット処理方法及び転送要素
CN111756636B (zh) 数据包处理方法、装置及设备、存储介质
CN106878308A (zh) 一种icmp报文匹配系统及方法
TW201211785A (en) Addressing a workload partition
US7735128B2 (en) Method of storing pattern matching policy and method of controlling alert message
CN107155307B (zh) 访问文件的方法、系统和主机
JPWO2005013566A1 (ja) データ検索方法及び装置
JP2017034723A (ja) パケット処理方法及び転送要素
CN117336246A (zh) 数据报文的处理方法及装置、电子设备及存储介质

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: 20211020

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211026

A524 Written submission of copy of amendment under article 19 pct

Free format text: JAPANESE INTERMEDIATE CODE: A524

Effective date: 20220121

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: 20220524

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220526

R150 Certificate of patent or registration of utility model

Ref document number: 7082211

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250