2016年3月29日 星期二

NAT 種類

最近在研究關於 NAT 的內容,所以分享一下 NAT 好了。

NAT 大家比較熟悉的應該是用在家用分享器上,在一個 WAN IP 可以 Mapping 到多個 LAN 裝置,其中 Mapping 的方式有很多種,例如我們舉幾個維基裡所提到的種類,這也是大多數的人會探討的幾個。

  • Full cone NAT 
  • Address-Restricted cone NAT 
  • Port-Restricted cone NAT 
  • Symmetric NAT

這幾個項目的原理,大家可以參考 NAT@wikipedia,裡面有詳細的說明,不過感覺很繞口不易懂,所以我大概用自己的話解釋一下。
  • Full cone NAT
基本上是最寬鬆的,一剛開始 NAT 經由 LAN-side 穿過 router 至 WAN-side,router 會有一個對應的 NAT table 去紀錄兩端之間的關係,而 Full cone NAT 寬鬆在於,WAN-side 可以用對應 port (相反的 destination port, source port),進入 router,進而導回 LAN-side 的裝置。

  • Address-Restricted cone NAT
由於 Full cone NAT 只要知道有哪些開放的 IP 和 Port 就可以進入 LAN-side,因此存在有一些危險性,所以在 Address-Restricted cone NAT 做了 IP 簡單的檢查,就是說由 LAN-side 送到 WAN-side A,當封包從 WAN-side 回來時,嘗試要經由 router 導回 LAN-side 的裝置,router 會進行 WAN 來的封包內容檢查 Source IP,看是否是曾經從 LAN-side 送出去過的,但在這邊並不檢查 IP。

  • Port-Restricted cone NAT
和 Address-Restricted cone NAT 很類似,但多了檢查 Port 的項目,也就是從 LAN-side 出去的 destination IP:destination port == A:B,則從 WAN-side 回到 router 時,router 會檢查是否 source IP:source port 是否為 A:B
  • Symmetric NAT
Symmetric NAT 是最嚴格的部分,當 LAN-side 往 WAN-side 送出去的封包,會因為送到不同的 WAN-side IP 和 Port,而改變 router 之間的 IP 和 Port,這就符合 Symmetric NAT 的部分。
例如:
A(200) ----> router(200) -----> B(10000)
D(200) ----> router(200) -----> C(10000)
A(200) ----> router(201) -----> C(10000)

可由第一個和第三個進行比較,我們可以發現到分別送到 B 和 C 的封包,NAT 會進行不一樣的轉換,但來源同樣都是 A,而且 Port 沒有進行改變,會有這樣的轉換是在於,怕當封包從 WAN-side 要回到 LAN-side 時,搞錯對應的來源 WAN-side,因此 NAT 會進行這樣的區別,算是符合 Symmetric NAT。

沒有留言:

張貼留言