NAT

NAT(Network Address Translation網絡地址翻譯)將內部網絡私有地址翻譯成Internet上合法的IP地址。NAT可以節省IP地址資源(主要節省IPv4地址)。還可以將內部網絡的IP地址隱藏起來不被外界發現,有效地確保內部網絡的安全(但網絡內主機比較多時,安全性方面更推薦防火牆,因爲用NAT路由佔用的CPU資源比較多)。還可以爲內部網絡提供一致性的編址方案。

NAT術語:

內部本地Inside Local:私有IP,不能直接用於互聯網,如10.0.0.1

內部全局Inside Global:經由NAT路由器將內部本地IP地址轉換成互聯網上的合法地址,如172.2.2.2

外部全局Outside Global:外部網絡中的主機的IP地址,通常來自全局可路由的地址空間,如22.2.2.2。多數情況下該地址與外部全局地址相同。

外部本地Outside Local:內部網絡中看到Internet上外部主機的IP,如22.2.2.2

NAT路由器一邊連接內網,一邊連接外網的話,兩邊就分別是Inside/Outside。Inside這邊的是local地址。Outside這邊的是Global地址。從Inside進來到Outside出去,是先路由再做NAT轉換。從Outside進來到Inside出去,是先做NAT轉換再路由。

NAT類型:

靜態NAT:手動建立內部IP到外部IP的映射。例如企業內部設備(如企業內部E-mail服務器或FTP服務器等)需要被外部訪問時

動態NAT:將一個內部IP轉成一組外部IP池中的一個IP地址。當PC有一個向外的連接請求時,從地址池中取出一個IP,當連接斷開時將IP重新放回池中。但外部用戶不能訪問內部特定地址。例如企業內部共用多個公網IP供員工訪問外網

超載NAT:動態NAT的一種特殊形式,也稱爲PAT,NAPT,或端口複用NAT。用不同端口號將多個內部IP轉成一個外部IP。例如整個企業共用一個公網IP時。局域網共享上網。超載NAT對於節省IP地址是最爲有效的。

(可以這樣理解映射關係:靜態1對1,動態多對多,超載多對1)

配置靜態NAT:


PC要去訪問外部Server。配置一條靜態NAT,使得PC訪問外網時,PC的IP地址(3.3.3.1)不直接暴露給外網,而是經由NAT轉換成12.1.1.1去訪問外網。同樣外網想訪問PC時,外網只知道12.1.1.1這個IP地址,經NAT轉換成內網PC的IP地址後,才能訪問PC。


配置好靜態NAT的1對1映射關係後,查看NAT映射表項:


NAT路由器上打開debug,讓PC去ping 2.2.2.2 source 3.3.3.1,觀察NAT轉換過程:


反過來,外部Server去ping 12.1.1.1 source 2.2.2.2訪問PC,NAT轉換過程是上面的逆過程:


配置動態NAT:

拓撲圖上就一臺PC,假設有多臺PC連接NAT路由器訪問外網,可以在NAT路由器上配一個地址池,範圍是12.1.1.16-12.1.1.31。Inside端多臺PC訪問外網時,由NAT路由器從地址池中分配一個IP供PC使用:


假設有4臺PC分別去訪問外網:ping 2.2.2.2 source 3.3.0.1 / 3.3.1.1 / 3.3.2.1 / 3.3.3.1。打開NAT路由器的debug,觀察地址分配及地址轉換過程:


可以看到不同的PC(不同的源IP地址)被從地址池中分配了不同的公網IP地址。查看動態NAT的轉換列表:


被動態分配的外網IP地址是有timeout時間的,超時地址將回到地址池。


最後,如果動態NAT地址池中沒有足夠的地址,會出現提示NAT轉換失敗,並丟棄數據包。

配置超載NAT / PAT / NAPT / 端口複用NAT:

是一種特殊的動態NAT,地址池中只有一個地址,靠端口號來區分源地址:


假設有2臺PC分別去訪問外網:ping 2.2.2.2 source 3.3.0.1 / 3.3.1.1。打開NAT路由器的debug,觀察地址分配及地址轉換過程:


發現2臺PC的IP地址都被轉換成同一個外網IP地址12.1.1.16。查看NAT表項,發現轉換的地址都一樣的,但端口號不同:


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章