NAT配置—常見問題安全
一、NAT的做用是什麼?服務器
NAT的做用是把內網的私有地址,轉化成外網的公有地址。使得內部網絡上的(被設置爲私有IP地址的)主機能夠訪問Internet。網絡
二、NAT分爲哪幾種?ide
NAT能夠分爲Basic NAT和PAT:動畫
- Basic NAT只轉化IP,不映射端口。設計
- PAT除了轉化IP,還作端口映射,能夠用於多個內部地址映射到少許(甚至一個)外部地址。3d
NAT還能夠分爲靜態NAT和動態NAT:blog
- 靜態NAT,將內部網絡中的每一個主機都永久映射成外部網絡中的某個合法的地址,多用於服務器。進程
- 動態NAT,則是在外部網絡中定義了一個或多個合法地址,採用動態分配的方法映射到內部網絡。路由
三、爲何須要有NAT?
NAT的主要做用,是解決IP地址數量緊缺。當大量的內部主機只能使用少許的合法的外部地址,就能夠使用NAT把內部地址轉化成外部地址。
NAT還能夠防止外部主機***內部主機(或服務器)。
四、怎樣映射?
如何將大量的內部地址,映射成少許的外部地址?
對於第四層是TCP或UDP的數據包,NAT經過更改源端口號,來實現多對少的映射。
例如:內部IP1~IP4,4個地址映射成外部一個地址IP5。
(IP1,Port1)映射成(IP5,Port1)
(IP2,Port1)映射成(IP5,Port2)
(IP3,Port2)映射成(IP5,Port3)
(IP4,Port2)映射成(IP5,Port4)
對於ICMP包,NAT經過更改ICMP的ID,來實現多對少的映射。
五、TCP或UDP的端口,本來是用來作什麼的?
端口號是用來鏈接上層程序的。例如,端口號23,對應了Telnet;端口號80,對應了Http等等。
所以,在本動畫中,當R1轉化H1發送給Server的TCP包的時候,不能轉化目的地端口。Server正是經過端口號23,才知道把收到的TCP交給Telnet處理。
六、NAT有什麼弊端?
在一個具備NAT功能的路由器下的主機並無創建真正的端對端鏈接,而且不能參與一些因特網協議。一些須要初始化從外部網絡創建的TCP鏈接,和使用無狀態協議(好比UDP)的服務將被中斷。除非NAT路由器做一些具體的努力,不然送來的數據包將不能到達正確的目的地址。(一些協議有時能夠在應用層網關的輔助下,在參與NAT的主機之間容納一個NAT的實例,好比FTP。)NAT也會使安全協議變的複雜。
七、NAT侷限性
(1)NAT違反了IP地址結構模型的設計原則。IP地址結構模型的基礎是每一個IP地址均標識了一個網絡的鏈接。Internet的軟件設計就是創建在這個前提之上,而NAT使得有不少主機可能在使用相同的地址,如10.0.0.1。
(2)NAT使得IP協議從面向無鏈接變成面向鏈接。NAT必須維護專用IP地址與公用IP地址以及端口號的映射關係。在TCP/IP協議體系中,若是一個路由器出現故障,不會影響到TCP協議的執行。由於只要幾秒收不到應答,發送進程就會進入超時重傳處理。而當存在NAT時,最初設計的TCP/IP協議過程將發生變化,Internet可能變得很是脆弱。
(3)NAT違反了基本的網絡分層結構模型的設計原則。由於在傳統的網絡分層結構模型中,第N層是不能修改第N+1層的報頭內容的。NAT破壞了這種各層獨立的原則。
(4)有些應用是將IP地址插入到正文的內容中,例如標準的FTP協議與IP Phone協議H.323。若是NAT與這一類協議一塊兒工做,那麼NAT協議必定要作適當地修正。同時,網絡的傳輸層也可能使用TCP與UDP協議以外的其餘協議,那麼NAT協議必須知道而且作相應的修改。因爲NAT的存在,使得P2P應用實現出現困難,由於P2P的文件共享與語音共享都是創建在IP協議的基礎上的。
(5)NAT同時存在對高層協議和安全性的影響問題。RFC對NAT存在的問題進行了討論。NAT的反對者認爲這種臨時性的緩解IP地址短缺的方案推遲了Ipv6遷移的進程,而並無解決深層次的問題,他們認爲是不可取的。