NAT對通信鏈路的影響:
1、NAT使IP會話的保持時效變短。
nat爲每個會話建立端口映射表,但是nat設備因爲自己的端口資源有限,在會話靜默期會自動利用超時機制回收端口資源。
所以,p2p應用需要有peer之間通信鏈路保活的應用協議(常說的心跳)。心跳時間間隔沒有明確規定(可5-15s)。nat映射保活需要兩端的peer都向對端發保活報文,一方發送並不能保障對端nat映射的有效期。
2、NAT使以IP來分析用戶行爲的機制失效。
因爲服務器收到的一個IP連接,後面可能對應多個用戶。
3、NAT網關的有多個外部IP時,一組相關聯的會話可能會被分配在不同的外部IP上。
NAT工作在網絡和傳輸層,依賴修改IP、端口號、校驗和來完成轉換。
NAT對認證協議(保障端描述信息不可變化,實際端描述信息變化了)、隧道協議(以外層ip標識隧道)、ICMP報文(以ip來標識兩端)都有影響。
IP分片後,傳輸層信息(src-port, dst-port)只在第一個分片中存在,NAT需要對IP分片做特別處理。(NAT難以識別後續分片與關聯表的對應關係。)
NAT穿越:
通常採用udp穿越。tcp穿越需要nat設備支持。
由於nat轉換是一種設備特性,設備廠商的實現會有差別,有時候不夠“標準”,所以nat穿越難免有失敗的可能。
NAT應用:
1、NAT多實例應用。
在一個物理網絡上可能會存在多個邏輯網絡,邏輯網絡之間不通但有訪問共享資源的需求。NAT可以把一個網絡空間映射到另一個網絡空間。
2、兩個衝突地址範圍的局域網合併。
在不改變雙方局域網地址的情況下,實現局域網合併。通過nat同時改變網絡包的源地址和目的地址來實現。
3、高可靠性組網。
一個設備提供多個公網接口。在多接口上部署NAT可以提供更高帶寬和多ISP就近訪問的能力。