為什麼要使用nat
1.内網主機過多,沒有足夠的合法ip可用
2.當ISP發生變化時,使用nat技術避免了ip位址的重新編址
3.當兩個合并的網絡中出現了重複位址
4.利用nat可以解決TCP的負責均衡問題
5.隐藏内部網絡,增加安全性
nat就是将内網中使用的私有位址轉換為可在internat上路由的合法位址技術
私有位址範圍:
10.0.0.0—10.255.255.255
172.16.0.0—172.31.255.255
192.168.0.0—192.168.255.255
nat的四類位址:
1.inside local address(内部本地位址):内網中裝置所使用的位址,一般為私有位址。
2.inside global address(内部全局位址):公有位址,一般有ISP提供。用于内網和外網通信
3.outside local address(外部本地位址):外網中裝置所使用的位址,這個位址是在面向内網裝置時所使用的,它不一定是一個公網位址;
4.outside global address(外部全局位址):資料在外網中使用的位址,是個合法位址
nat分類:
1.靜态nat:一對一的轉換,如果内網有mail或者ftp伺服器可為外部使用者提供服務,這些伺服器位址必須采用靜态nat,一便外部使用者可以友善的通路這些伺服器
2.動态nat:靜态nat不能起到節省位址的作用。而動态nat可以讓多個内部本地位址共用一個内部全局位址,靜态nat不能和動态nat同時使用一個内部全局位址
3.pat端口複用:多個内部本地位址到一個内部全局位址的多對一轉換。通過端口号來确定多個内部主機的唯一性
nat的優缺點:
優點:
1.極大的節省了合法位址
2.能夠處理位址重複情況,避免了位址的重新編号,增加了編址的靈活性
3.隐藏了内部網絡位址,增加安全性
4.可以使多個使用TCP負載特性的伺服器之間實作資料的負載均衡
缺點:
1.由于nat要進行位址轉換,增加了傳輸的延遲
2.由于nat改動了ip。失去了跟蹤端到端ip流量的能力。
3.增加開銷。處理nat程序增加了CPU的負荷。
nat可以實作的幾個功能及工作原理:
實作功能:
1.Translation inside local address(内部位址翻譯)
2.Overlapping inside global address(内部全局位址複用)
3.TCP load distribution(TCP負載重配置設定)
4.Handing overlapping networks(處理重疊網絡)
工作原理:
這是一種比較簡單的方法,将ip位址一對一的映射。也即靜态nat。
在内部主機連接配接到外部網絡時,當第一個資料包到達nat路由器時,router檢查他的nat表,因為nat是靜态配置的,故可以查詢出來,然後router将資料包的内布局部位址(inside local address,源位址)更換成内部全局位址(inside global address)再轉發出去。外部主機接收到資料包用接收到的外部全局位址(outside global address,目的位址)來響應。nat接收到外部回來的資料包,再根據nat表把位址翻譯成内部局部位址(inside local address),轉發過去。
使用位址和端口将多個内部本地位址映射到較少的内部全局位址。這也就是所謂的PAT。和内部位址翻譯一樣,nat router同樣也負責查表和翻譯内部本地位址,唯一的差別就是由于使用了overloading,router将複用的内部全局位址,通過特定的端口來區分它和其他位址。nat router和外部主機的通信采用翻譯過的内部全局位址,故同一般的通信沒有差别,router到内部主機通訊時,同樣要查nat表。
和以上兩種操作不同,這是nat由外到内的翻譯,是以那種以為web server 一定要放置到nat外部的說法是錯誤的。
外部主機向虛拟主機(定義為内部全局位址)通信,nat router接收到外部主機的請求并依據nat表建立與内部主機的連結,把内部全局位址(目的位址)翻譯成内部局部位址,并轉發資料包到内部主機,内部主機接收包并作出響應。nat router在使用内部局部位址和端口查詢資料表,根據查詢到的外部位址和端口做出響應。
此時,如果同一主機再做第二次連結,nat router将根據nat表将建立與另一虛拟主機的連結,并轉發資料。
4.處理位址重疊(overlapping network)
這種方法主要用于兩個intranet的互連。同樣給我們處理兩個重疊網絡提供了方法。它的實作要求DNS server的支援。
4.1:當内網位址也是用公網注冊位址(或是外網合法位址)時,如果仍然按照标準的靜态nat或者動态nat轉換,則可能使得轉換的内網位址與外網中合法位址沖突,使資料包又傳回到本地網絡,這肯定是不行的。這時我們就要使用重疊網絡(overlapping network)的nat轉換方案了,把資料包中的目的位址轉換成與外網不在同一網段的全局位址。
使用重疊nat可以實作内網和外部網絡都使用注冊ip位址情況下的位址轉換。這裡的“重疊”其實就是指内網和外網使用ip位址段重疊(因為都是公網注冊ip位址)。
4.2:重疊nat的轉換原理
如下圖所示顯示了如何處理重疊網絡間的nat轉換。執行個體中内部網絡和外部網絡都使用了1.0.0.0/8這個注冊ip位址段。下面是重疊網絡nat位址轉換的示範示例。步驟序号是與圖中的序号對應的。
<a target="_blank" href="http://blog.51cto.com/attachment/201306/164302575.jpg"></a>
(1)内部網絡中ip位址為1.1.1.1的主機通過計算機名向外部網絡中的主機C發起連接配接。連接配接請求首先會向DNS伺服器發出一個由名稱到ip位址的查詢請求,請求包在到達路由器之前的源位址為1.1.1.1主機的内部本地位址1.1.1.1,目的位址為DNS伺服器位址。在到達路由器後,請求包的源位址被替換成1.1.1.1主機的内部全局位址2.2.2.2,目的位址不變。
(2)當DNS伺服器發出的查詢請求應答包(其中源位址為DNS伺服器位址,目的位址為1.1.1.1主機的内部全局位址2.2.2.2,并包括了解析出的C主機的ip位址1.1.1.3)到達nat路由器後,如果傳回位址有重疊(也就是傳回的位址在内部網絡中已使用),将轉換這個傳回的位址。轉換的方法是建立一個簡單的nat條目,把解析得到的C主機ip位址1.1.1.3映射到一個從獨立配置的外部本地位址池中配置設定到得外部本地位址3.3.3.3,參見圖中下面的nat表項。
DNS伺服器會檢查每一個DNS應答,確定解析得到的ip位址不是在網絡中已使用的ip位址,否則路由器将轉換這個解析得到的ip位址。
(3)當解析到C主機的ip位址後,内部網絡1.1.1.1主機會以映射後的3.3.3.3位址作為目的位址向外部網絡C主機發起連接配接。
(4)路由器利用原來已獲得的資訊建立一個内部本地位址、内部全局位址、外部本地位址和外部全局位址的nat映射表,參見圖中的nat映射表項。
(5)路由器繼續發送連接配接請求資料包,資料包的源位址用内部全局位址替換,資料包中的目的位址用外部全局位址替換,然後繼續發送連接配接請求資料包。
(6)當外部網絡主機C接收到這個資料包時,以一個應答資料包進行響應。應答資料包的源位址為C主機ip位址1.1.1.3,目的位址為内部網絡全局位址2.2.2.2。
(7)當路由器接收到這個應答包時,把應答包中的目的位址用内部本地位址1.1.1.1進行替換,而源位址用外部本地位址1.1.1.3進行替換,轉發給内部網絡1.1.1.1主機。
至于具體的配置指令這裡不再贅述. . . 歡迎指點!!!
本文轉自 liuyatao666 51CTO部落格,原文連結:http://blog.51cto.com/5503845/1167718,如需轉載請自行聯系原作者