標簽: tcp/ip
網絡地址轉換又稱網絡掩蔽、IP掩蔽(英語:Network Address Translation,縮寫:NAT),在計算機網絡中是壹種在IP數據包通過路由器或防火墻時重寫來源IP地址或目的IP地址的技術。這種技術被普遍使用在有多臺主機但只通過壹個公有IP地址訪問因特網的私有網絡中。它是壹個方便且得到了廣泛應用的技術。當然,NAT也讓主機之間的通信變得復雜,導致了通信效率的降低。
NAT是作為壹種 解決IPv4地址短缺 以避免保留IP地址困難的方案而流行起來的。
在壹個典型的配置中,壹個 本地網絡 使用壹個專有網絡的指定子網(比如192.168.x.x或10.x.x.x)和連在這個網絡上的壹個路由器。這個 路由器 占 有這個網絡地址空間的壹個 專有地址 (比如192.168.0.1),同時它還通過壹個或多個因特網服務提供商提供的 公有的IP地址(叫做“過載”NAT )連接到因特網上。 當信息由本地網絡向因特網傳遞時,源地址從專有地址轉換為公用地址。由路由器跟蹤每個連接上的基本數據,主要是目的地址和端口。當有回復返回路由器時,它通過輸出階段記錄的連接跟蹤數據來決定該轉發給內部網的哪個主機;如果有多個公用地址可用,當數據包返回時,TCP或UDP客戶機的端口號可以用來分解數據包。對於因特網上的通信,路由器本身充當源和目的。
流行在網絡上的壹種看法認為,IPv6的廣泛采用將使得NAT不再需要,因為NAT只是壹個處理IPv4的地址空間不足的方法。
原文: /gui951753/article/details/79593307
在壹個具有NAT功能的路由器下的主機並 沒有創建真正的IP地址 ,並且不能參與壹些因特網協議。壹些需要初始化從外部網絡創建的TCP連接和無狀態協議(比如UDP)無法實現。除非NAT路由器管理者預先設置了規則,否則送來的數據包將不能到達正確的目的地址。壹些協議有時可以在應用層網關(見下)的輔助下,在參與NAT的主機之間容納壹個NAT的實例,比如FTP。NAT也會使安全協議變的復雜,比如IPsec。
端對端連接是被IAB委員會(Internet Architecture Board)支持的核心因特網協議之壹,因此有些人據此認為NAT是對公用因特網的壹個破壞。壹些因特網服務提供商(ISP)只向他們的客戶提供本地IP地址,所以他們必須通過NAT來訪問ISP網絡以外的服務,並且這些公司能不能算的上真正的提供了因特網服務的話題也被談起。
NAT除了帶來方便和代價之外,對全雙工連接支持的缺少在壹些情況下可以看作是壹個有好處的特征而不是壹個限制。在壹定程度上,NAT依賴於本地網絡上的壹臺機器來初始化和路由器另壹邊的主機的任何連接,它可以阻止外部網絡上的主機的惡意活動。這樣就可以阻止網絡蠕蟲病毒來提高本地系統的可靠性,阻擋惡意瀏覽來提高本地系統的私密性。很多具有NAT功能的防火墻都是使用這種功能來提供核心保護的。另外,它也為UDP的跨局域網的傳輸提供了方便。
基本NAT和端口號轉換
基本網絡地址轉換(Basic NAT)
這壹種也 可稱作NAT或“靜態NAT” ,在RFC 2663中提供了信息。它在技術上比較簡單 ,僅支持地址轉換,不支持端口映射 。Basic NAT要求對 每壹個當前連接都要對應壹個公網IP地址 ,因此要維護壹個公網的地址池。寬帶(broadband)路由器通常使用這種方式來允許壹臺指定的設備去管理所有的外部鏈接,甚至當路由器本身只有壹個可用外部IP時也如此,這臺路由器有時也被標記為DMZ主機。由於改變了IP源地址,在重新封裝數據包時候必須重新計算校驗和,網絡層以上的只要涉及到IP地址的頭部校驗和都要重新計算。
網絡地址端口轉換(NAPT)
這種方式支持端口的映射,並允 許多臺主機***享壹個公網IP地址 。
支持端口轉換的NAT又可以分為兩類: 源地址轉換和目的地址轉換 。前壹種情形下發起連接的計算機的IP地址將會被重寫,使得內網主機發出的數據包能夠 到達外網主機 。後壹種情況下被連接計算機的IP地址將被重寫,使得外網主機發出的數據包能夠 到達內網主機 。實際上, 以上兩種方式通常會壹起被使用以支持雙向通信。
利用端口號的唯壹性實現了公網ip轉換為私網ip的這壹步。PAT(NAT重載)能夠使用 傳輸層端口號來標識主機 ,因此,從理論上說, 最多可讓大約65000臺主機***用壹個公有IP地址
NAPT維護壹個帶有IP以及端口號的NAT表,結構如下。
內網IP 外網IP
192.168.1.55:5566 219.152.168.222:9200
192.168.1.59:80 219.152.168.222:9201
192.168.1.59:4465 219.152.168.222:9202
不同類型的NAT:
完全圓錐型NAT(Full cone NAT),即壹對壹(one-to-one)NAT
壹旦壹個內部地址(iAddr:port)映射到外部地址(eAddr:port),所有發自iAddr:port的包都經由eAddr:port向外發送。任意外部主機都能通過給eAddr:port發包到達iAddr:port(註:port不需要壹樣)
端口受限圓錐型NAT(Port-Restricted cone NAT)
類似受限制錐形NAT(Restricted cone NAT),但是還有端口限制。
壹旦壹個內部地址(iAddr:port1)映射到外部地址(eAddr:port2),所有發自iAddr:port1的包都經由eAddr:port2向外發送。
在受限圓錐型NAT基礎上增加了外部主機源端口必須是固定的 。
對稱NAT(Symmetric NAT)
每壹個 來自相同內部IP與端口,到壹個特定目的地地址和端口的請求, 都映射到壹個獨特的外部IP地址和端口。
同壹內部IP與端口發到不同的目的地和端口的信息包,都使用不同的映射 只有曾經收到過內部主機數據的外部主機,才能夠把數據包發回