NAT
一、概述
NAT(Network Address Translation,網絡地址轉換)是將IP數據報文頭中的IP地址轉換為另一個IP地址的過程。在實際應用中,NAT主要用於實現私有網絡訪問公共網絡的功能。這種通過使用少量的公網IP地址代表較多的私網IP地址的方式,將有助於減緩可用IP地址空間的枯竭。
- 私網IP地址是指內部網絡或主機的IP地址,公網IP地址是指在因特網上全球唯一的IP地址。
- RFC 1918為私有網絡預留出了三個IP地址塊,如下:
- A類:10.0.0.0~10.255.255.255
- B類:172.16.0.0~172.31.255.255
- C類:192.168.0.0~192.168.255.255
(上述三個范圍內的地址不會在因特網上被分配,因此可以不必向ISP或注冊中心申請而在公司或企業內部自由使用。)
- NAT最初的設計目的是用於實現私有網絡訪問公共網絡的功能,后擴展到實現任意兩個網絡間進行訪問時的地址轉換應用,本文中將這兩個網絡分別稱為內部網絡(內網)和外部網絡(外網),通常私網為內部網絡,公網為外部網絡。
地址轉換的基本過程

1、內網用戶主機(192.168.1.3)向外網服務器(1.1.1.2)發送的IP報文通過NAT設備。
- NAT設備查看報頭內容,發現該報文是發往外網的,將其源IP地址字段的私網地址92.168.1.3轉換成一個可在Internet上選路的公網地址20.1.1.1,並將該報文發送給外網服務器,同時在NAT設備的網絡地址轉換表中記錄這一映射。
2、外網服務器給內網用戶發送的應答報文(其初始目的IP地址為20.1.1.1)到達NAT設備后,
NAT設備再次查看報頭內容,然后查找當前網絡地址轉換表的記錄,用內網私有地址192.168.1.3替換初始的目的IP地址。
上述的NAT過程對終端(如圖中的Host和Server)來說是透明的。對外網服務器而言,它認為內網用戶主機的IP地址就是20.1.1.1,並不知道有192.168.1.3這個地址。因此,NAT“隱藏”了企業的私有網絡。
地址轉換的優點在於,在為內部網絡主機提供了“隱私”保護的前提下,實現了內部網絡的主機通過該功能訪問外部網絡的資源。但它也有一些缺點:
- 由於需要對數據報文進行IP地址的轉換,涉及IP地址的數據報文的報頭不能被加密。在應用協議中,如果報文中有地址或端口需要轉換,則報文不能被加密。例如,不能使用加密的FTP連接,否則FTP協議的port命令不能被正確轉換。
- 網絡調試變得更加困難。比如,某一台內部網絡的主機試圖攻擊其它網絡,則很難指出究竟哪一台主機是惡意的,因為主機的IP地址被屏蔽了。
二、地址轉換控制
在實際應用中,我們可能希望某些內部網絡的主機可以訪問外部網絡,而某些主機不允許訪問,即當NAT設備查看IP數據報文的報頭內容時,如果發現源IP地址屬於禁止訪問外部網絡的內部主機,它將不進行地址轉換。另外,也希望只有指定的公網地址才可用於地址轉換。
設備可以NAT規則的匹配條件和NAT地址池來對地址轉換進行控制。
- 匹配條件可以有效地控制地址轉換的使用范圍,只有滿足匹配條件的數據報文才可以進行地址轉換。
- 地址池是用於地址轉換的一些連續的公網IP地址的集合,它可以有效地控制公網地址的使用。用戶可根據自己擁有的合法IP地址數目、內部網絡主機數目以及實際應用情況,定義合適的地址池。在地址轉換的過程中,NAT設備將會從地址池中挑選一個IP地址作為數據報文轉換后的源IP地址。
三、NAT實現
通過創建並執行NAT規則來實現NAT功能。NAT規則有三類,分別為源NAT規則、目的NAT規則和靜態NAT規則。源NAT轉換源IP地址,從而隱藏內部IP地址或者分享有限的IP地址;目的NAT轉換目的IP地址,通常是將受保護的內部服務器的IP地址轉換成公網IP地址;靜態轉換是指將內部網絡的私有IP地址轉換為公有IP地址,IP地址對是一對一的,是一成不變的,某個私有IP地址只轉換為某個公有IP地址。
四、NAT日志簡介
NAT日志是NAT設備在進行NAT轉換時生成的一種系統信息。該信息包括報文的源IP地址、源端口、目的IP地址、目的端口、轉換后的IP地址、轉換后端口信息、NAT轉換類型等。利用NAT日志功能可以實時跟蹤、記錄內網、外部用戶互訪網絡的情況,增強網絡的安全性。
五、配置源NAT
1、配置准備
- 確定是否直接使用接口的IP地址作為轉換后的報文源地址。如果否的話,需要根據實際網絡情況,合理規划可用於地址轉換的公網IP地址池。
- 根據實際網絡情況,配置源NAT轉換的規則的匹配條件:源、目的IP地址對象、服務對象(具體配置見對象管理章節)。
2、配置
源地址轉換即內網地址向外訪問時,發起訪問的內網IP地址轉換為指定的IP地址(可指定具體的服務以及相應的端口或端口范圍),這可以使內網的多部主機可以通過一個或者多個有效的公網IP地址訪問外部網絡。
| 操作 | 命令 | 說明 |
| 進入系統試圖 | system-view | 必須 |
| 配置NAT轉換規則 | ip nat source interface-name {source address | any}{destination-address | any} service {pool | interface-name}[log][id] | 必須 |
六、配置目的NAT
1、配置准備
- 確定是否需要做端口映射,如果需要,則參見端口映射的配置。
- 根據實際網絡情況,配置目的NAT轉換的規則的匹配條件:源、目的IP地址對象、服務對象(具體配置見對象管理章節)。
- 需要根據實際網絡情況,配置可用於地址轉換的內部服務器IP地址池。
2、配置
目的NAT多用於外部網絡到內部服務器的訪問,內部服務器可使用保留IP地址。將外部主機訪問設定好的全局地址的數據包的目的地址替換成內部主機的地址,也就是常見的虛擬服務器,可對轉換業務進行端口映射。這樣外部主機可以訪問內部的主機,但內部主機無法主動訪問外部主機。
(1)基礎配置
| 操作 | 命令 | 說明 |
| 進入系統試圖 | system-view | 必須 |
| 配置目的NAT轉換規則 | ip nat destination interface-name{ip-address | any}{ip-address | any} servicepool[log][id] | 必須 |
(2)端口映射
| 操作 | 命令 | 說明 |
| 進入系統視圖 | system-view | 必須 |
| 配置目的NAT端口映射 | ip nat destination interface-name{ip-address | any}{ip-address | any} servicepool server port-num[log][id] | 必須 |
七、配置靜態NAT
外部網絡和內部網絡之間的地址映射關系在配置中確定。適用於內部網絡與外部網絡之間的少量固定訪問需求。支持一對一的轉換方式,即實現一個內部私網地址到一個外部公網地址的轉換。
| 操作 | 命令 | 說明 |
| 進入系統視圖 | system-view | - |
| 配置靜態NAT | ip nat static interface-name global-address local-address[id] | 必須 |
八、配置NAT ALG功能
在應用層協議中,有很多協議都包含多通道的信息,比如多媒體協議(H.323、SIP等)、FTP、TFTP等。這種多通道的應用需要首先在控制通道中對后續數據通道的地址和端口進行協商,然后根據協商結果創建多個數據通道連接。在NAT的實際應用過程中,NAT僅對網絡層報文的報文頭進行IP地址的識別和轉換,對於應用層協議協商過程中報文載荷攜帶的地址信息則無法進行識別和轉換,因此在有NAT處理的組網方案中,NAT利用ALG技術可以對多通道協議進行應用層的報文信息的解析和地址轉換,保證應用層上通信的正確性。
| 操作 | 命令 | 說明 |
| 進入系統視圖 | system-view | - |
| 配置NAT ALG | alg{ftp | h323 | pptp | sip | tftp | 必須 |
九、配置NAT地址池
地址轉換的過程中,NAT設備將會從配置的地址池中挑選一個IP地址作為轉換后的報文源地址或者目的地址。每個地址池里可以指定多段非連續的IP地址。
| 操作 | 命令 | 說明 |
| 進入系統試圖 | system-view | - |
| 創建NAT地址池 | ip nat pool pool-name | 必須 |
| 地址池中添加地址段 | ip address start-ip-address end-ip-address | 必須 |
十、NAT顯示和維護
| 操作 | 命令 |
| NAT配置顯示 | display running-config nat |
十一、參考文獻
h3c.com/cn 文獻下載: NAT配置指導 (372.78 KB)
