通俗易懂:快速理解ipv4的NAT穿透原理
阿新 • • 發佈:2018-11-10
NAT基礎
IPv4由於最初的設計原因,長度只有32位,所以只提供了大約40億個地址。這造成了地址耗盡危機。
NAT(Network Address Translation,網路地址轉換),也叫做網路掩蔽或者IP掩蔽。NAT是一種網路地址翻譯技術,主要是將內部的私有IP地址(private IP)轉換成可以在公網使用的公網IP(public IP)。NAT的本質就是讓一群機器公用同一個IP,這樣就暫時解決了IP短缺的問題。NAT是一項神奇的技術,說它神奇在於它的出現幾乎使IPv4起死回生。在IPv4已經被認為行將結束歷史使命之後近20年時間裡,人們幾乎忘了IPv4的地址空間即將耗盡這樣一個事實。
RFC1918規定了三個保留地址段落:10.0.0.0-10.255.255.255;172.16.0.0-172.31.255.255;192.168.0.0-192.168.255.255。這三段地址就是內網的私有IP地址。
NAT實現方式
1.靜態NAT
靜態NAT也稱為基礎NAT,一對一NAT,例如:
內網IP | 外網IP |
---|---|
192.18.1.2 | 122.225.220.183 |
192.18.1.3 | 122.225.220.184 |
192.18.1.4 | 122.225.220.185 |
2.NAPT
埠多路複用技術。與靜態NAT的差別是,NAPT不但要轉換IP地址,還要進行傳輸層的埠轉換。具體的表現形式就是,對外只有一個公網IP,通過埠來區別不同私有IP主機的資料。NAT會記錄下表的內容以方便查詢。
內網IP | 外網IP |
---|---|
192.18.1.2:8080 | 122.225.220.183:12000 |
192.18.1.3:3389 | 122.225.220.183:12001 |
192.18.1.4:22 | 122.225.220.183:12002 |
一旦NAT 表裡某記錄很久不活躍,沒有包發出或者收入(通常是5-30分鐘,可以自行設定),就會把該記錄刪除掉。
NAT的問題
NAT也會帶來一系列的問題:
- NAT使IP會話的保持時效變短。
- NAT在實現上將多個內部主機發出的連線複用到一個IP上,這就使依賴IP進行主機跟蹤的機制都失效了
- NAT工作機制依賴於修改IP包頭的資訊,這會妨礙一些安全協議的工作
- NAT限制了使用一些高層協議(FTP、Quake、SIP)的Peer兩端的P2P通訊
參考資料:
【協議森林】15 逆襲 (CIDR與NAT)
通俗易懂:快速理解P2P技術中的NAT穿透原理