《新華三:2024年NAT技術白皮書(18頁).pdf》由會員分享,可在線閱讀,更多相關《新華三:2024年NAT技術白皮書(18頁).pdf(18頁珍藏版)》請在三個皮匠報告上搜索。
1、i NAT 技術白皮書 Copyright 2024 新華三技術有限公司 版權所有,保留一切權利。非經本公司書面許可,任何單位和個人不得擅自摘抄、復制本文檔內容的部分或全部,并不得以任何形式傳播。除新華三技術有限公司的商標外,本手冊中出現的其它公司的商標、產品標識及商品名稱,由各自權利人擁有。本文中的內容為通用性技術信息,某些信息可能不適用于您所購買的產品。1 目 錄 1 概述 2 1.1 產生背景 2 1.2 技術優點 2 2 NAT 技術實現 1 2.1 NAT 基本概念 1 2.2 NAT 基本原理 1 2.3 NAT 實現方式 1 2.3.1 靜態方式 1 2.3.2 NO-PAT 方
2、式 1 2.3.3 PAT 方式 2 2.3.4 NAT Server 方式 3 2.3.5 Easy IP 方式 4 2.3.6 NAT hairpin 4 2.4 NAT ALG 機制 6 2.4.1 NAT ALG 機制簡介 6 2.4.2 基本概念 7 2.4.3 FTP 協議的 ALG 處理 7 2.4.4 DNS 協議的 ALG 處理 9 2.4.5 ICMP 協議的 ALG 處理 10 2.4.6 DNS Mapping 方式 10 2.5 NAT 支持端口復用 11 2.6 NAT 支持多 VPN 實例 12 3 典型組網應用 1 3.1 私網主機訪問公網服務器 1 3.2 公
3、網主機訪問私網服務器 1 3.3 私網主機通過域名訪問私網服務器 2 3.4 不同 VPN 的主機使用相同的私網地址訪問公網 2 4 參考文獻 1 2 1 概述概述 1.1 產生背景 隨著 Internet 的發展和網絡應用的增多,IPv4 地址枯竭已成為制約網絡發展的瓶頸。盡管 IPv6 可以從根本上解決 IPv4 地址空間不足問題,但目前眾多網絡設備和網絡應用大多是基于 IPv4 的,IPv6在實際引入上進展緩慢。在 IPv6 廣泛應用之前,即 IPv4 向 IPv6 過渡期間,使用 NAT(Network Address Translation,網絡地址轉換)能夠提高 IPv4 地址的利
4、用率,保證業務的平滑過渡,為 IPv6的部署爭取時間。1.2 技術優點 作為一種過渡方案,NAT 通過地址重用的方法來滿足 IP 地址的需要,可以在一定程度上緩解 IP 地址空間枯竭的壓力。它具備以下優點:對于內部通訊可以利用私網地址,如果需要與外部通訊或訪問外部資源,則可通過將私網地址轉換成公網地址來實現。通過公網地址與端口的結合,可使多個私網用戶共用一個公網地址。通過靜態映射,不同的內部服務器可以映射到同一個公網地址。外部用戶可通過公網地址和端口訪問不同的內部服務器,同時還隱藏了內部服務器的真實 IP 地址,從而防止外部對內部服務器乃至內部網絡的攻擊行為。方便網絡管理,如通過改變地址映射表
5、就可實現私網服務器的遷移,內部網絡的改變也很容易。1 2 NAT 技術實現技術實現 2.1 NAT基本概念 NAT 基本概念如下:NAT 設備:配置了 NAT 功能的連接內部網絡和外部網絡的邊緣設備。NAT 規則:用于進行地址轉換的 NAT 配置稱為 NAT 規則。NAT 地址:用于進行地址轉換的公網 IP 地址,與外部網絡路由可達,可靜態指定或動態分配。NAT 表項:NAT 設備上用于記錄網絡地址轉換映射關系的表項。Easy IP 功能:NAT 轉換時直接使用設備上接口的 IP 地址作為 NAT 地址。設備上接口的地址可靜態指定或通過 DHCP 協議動態獲取。2.2 NAT基本原理 當內部網
6、絡訪問外部網絡的報文經過 NAT 設備時,NAT 設備會用一個合法的公網地址替換原報文中的源 IP 地址,并對這種轉換進行記錄;之后,當報文從外網側返回時,NAT 設備查找原有的記錄,將報文的目的地址再替換回原來的私網地址,并轉發給內網側主機。這個過程對于私網側或公網側設備透明?;谶@種基本的地址轉換原理,數量龐大的內網主機就不再需要公網 IP 地址了。2.3 NAT實現方式 2.3.1 靜態方式 靜態方式的地址轉換是指外部網絡和內部網絡之間的地址映射關系由配置確定,即一個公網 IP 地址唯一對應一個內部主機。該方式適用于內部網絡與外部網絡之間存在固定訪問需求的組網環境。靜態地址轉換支持雙向互
7、訪:內網用戶可以主動訪問外網,外網用戶也可以主動訪問內網。2.3.2 NO-PAT 方式 NO-PAT 方式屬于一對一的地址轉換,在這種方式下只轉換 IP 地址,而對 TCP/UDP 協議的端口號不處理,一個公網 IP 地址不能同時被多個用戶使用。如圖 2-1 所示,NO-PAT 方式的處理過程如下:(1)NAT 設備收到私網側主機發送的訪問公網側服務器的報文。(2)NAT 設備從地址池中選取一個空閑的公網 IP 地址,建立與私網側報文源 IP 地址間的 NAT 轉換表項,并依據查找 NAT 表項的結果將報文轉換后向公網側發送。(3)NAT 設備收到公網側的回應報文后,根據其目的 IP 地址反
8、向查找 NAT 表項,并依據查表結果將報文轉換后向私網側發送。2 由于NO-PAT這種一對一的轉換方式并未實現公網地址的復用,不能有效解決IP地址短缺的問題,因此在實際應用中并不常用。圖2-1 NO-PAT 方式原理圖 2.3.3 PAT 方式 由于 NO-PAT 方式并未實現地址復用,因此并不能解決公網地址短缺的問題,而 PAT(Port Address Translation)方式則可以解決這個問題。PAT 方式屬于多對一的地址轉換,它通過使用“IP 地址端口號”的形式進行轉換,使多個私網用戶可共用一個公網 IP 地址訪問外網,實現了地址的復用,因此是地址轉換實現的主要形式。目前 PAT
9、僅支持對傳輸層協議為 TCP、UDP 或 ICMP 的報文進行“IP 地址端口號”轉換。如圖 2-2 所示,PAT 方式的處理過程如下:(1)NAT 設備收到私網側主機發送的訪問公網側服務器的報文。(2)NAT 設備從地址池中選取一對空閑的“公網 IP 地址端口號”,建立與私網側報文“源 IP地址源端口號”間的 PAT 轉換表項,并依據查找 PAT 表項的結果將報文轉換后向公網側發送。(3)NAT 設備收到公網側的回應報文后,根據其“目的 IP 地址目的端口號”反向查找 PAT 表項,并依據查表結果將報文轉換后向私網側發送。10.1.1.100/8NATServer211.100.7.34/2
10、4HostDestination:10.1.1.100Source:10.1.1.100Destination:162.105.178.65Source:162.105.178.65Packet from Host to ServerPacket from Server to HostIntranetInternet162.105.178.65162.105.178.66162.105.178.67.Address group162.105.178.65Before NATAfter NATWayInbound10.1.1.100NAT tableOutbound10.1.1.100162.1
11、05.178.65 3 圖2-2 PAT 方式原理圖 2.3.4 NAT Server 方式 出于安全考慮,大部分私網主機通常并不希望被公網用戶訪問。但在某些實際應用中,需要給公網用戶提供一個訪問私網服務器的機會。而在 NO-PAT 或 PAT 方式下,由于由公網用戶發起的訪問無法動態建立 NAT 表項,因此公網用戶無法訪問私網主機。NAT Server(NAT 內部服務器)方式就可以解決這個問題通過靜態配置“公網 IP 地址端口號”與“私網 IP 地址端口號”間的映射關系,NAT 設備可以將公網地址“反向”轉換成私網地址。如圖 2-3 所示,NAT Server 方式的處理過程如下:(1)N
12、AT 設備收到公網側主機發送的訪問私網側服務器的報文。(2)NAT 設備根據公網側報文的“目的 IP 地址目的端口號”反向查找靜態 NAT 表項,并依據查表結果將報文轉換后向私網側發送。(3)NAT 設備收到私網側的回應報文后,根據其“源 IP 地址源端口號”查找靜態 NAT 表項,并依據查表結果將報文轉換后向公網側發送。圖2-3 NAT Server 方式原理圖 Source:10.1.1.100:102510.1.1.100/810.1.1.200/8211.100.7.34/24NATSource:10.1.1.200:1028Source:162.105.178.65:16384Sou
13、rce:162.105.178.65:16400Destination:10.1.1.100:1025Destination:162.105.178.65:16384Destination:162.105.178.65:16400Destination:10.1.1.200:1028162.105.178.65162.105.178.66162.105.178.67.Address groupPacket from Host A to ServerPacket from Server to Host APacket from Host B to ServerPacket from Server
14、 to Host BHost AHost BServer10.1.1.100:1025Before NATAfter NAT162.105.178.65:16384WayOutbound162.105.178.65:1638410.1.1.100:102510.1.1.200:1028162.105.178.65:16400162.105.178.65:1640010.1.1.200:1028NAPT tableOutboundInboundInboundIntranetInternet10.1.1.2/8NATServer211.100.7.3/24HostDestination:10.1.
15、1.2:80Source:10.1.1.2:80Destination:162.105.178.6:80Source:162.105.178.6:80Packet from Host to ServerPacket from Server to Host162.105.178.6:80Before NATAfter NATWayInbound10.1.1.2:80Static NAT tableOutbound10.1.1.2:80162.105.178.6:80IntranetInternet162.105.178.6:80-10.1.1.2:80NAT server 4 2.3.5 Eas
16、y IP 方式 EASY IP 方式是指直接使用接口的公網 IP 地址作為轉換后的源地址進行地址轉換,它可以動態獲取出接口地址,從而有效支持出接口通過撥號或 DHCP 方式獲取公網 IP 地址的應用場景。EASY IP 方式特別適合小型局域網訪問 Internet 的情況。這里的小型局域網主要指中小型網吧、小型辦公室等環境,一般具有以下特點:內部主機較少、出接口通過撥號方式獲得臨時公網 IP 地址以供內部主機訪問 Internet。對于這種情況,可以使用 EASY IP 方式使局域網用戶都通過這個 IP 地址接入 Internet。如圖 2-4 所示,EASY IP 方式的處理過程如下:(1)
17、NAT 設備收到私網側主機發送的訪問公網側服務器的報文。(2)NAT 設備利用公網側接口的“公網 IP 地址端口號”,建立與私網側報文“源 IP 地址源端口號”間的 EASY IP 轉換表項(正反向),并依據查找正向 EASY IP 表項的結果將報文轉換后向公網側發送。(3)NAT 設備收到公網側的回應報文后,根據其“目的 IP 地址目的端口號”查找反向 EASY IP表項,并依據查表結果將報文轉換后向私網側發送。圖2-4 EASY IP 方式原理圖 2.3.6 NAT hairpin NAT hairpin 功能用于滿足位于內網側的用戶之間或內網側的用戶與服務器之間通過 NAT 地址進行訪問
18、的需求。開啟 NAT hairpin 的內網側接口上會對報文同時進行源地址和目的地址的轉換。它支持兩種組網模式:P2P:位于內網側的用戶之間通過 NAT 地址互訪。內網各主機首先向外網服務器注冊自己 NAT轉換后的外網 IP 地址和端口號信息。如圖 2-5 和圖 2-6 所示,當內網的一個客戶端使用 NAT地址訪問內網的另一個客戶端時,首先從服務器獲取對方注冊的 IP 地址和端口號信息,然后根據該信息與對方建立連接。10.1.1.100/810.1.1.200/8211.100.7.34/24NATSource:10.1.1.200:1586Destination:10.1.1.200:158
19、6Packet from Host A to ServerPacket from Server to Host APacket from Host B to ServerPacket from Server to Host BHost AHost BServerIntranetInternet162.10.2.8/24Source:10.1.1.100:1540Destination:10.1.1.100:1540Source:162.10.2.8:5480Destination:162.10.2.8:5480Source:162.10.2.8:5481Destination:162.10.2
20、.8:548110.1.1.100:1540Before NATAfter NAT162.10.2.8:5480WayOutbound162.10.2.8:548010.1.1.100:154010.1.1.200:1586162.10.2.8:5481162.10.2.8:548110.1.1.200:1586EASY IP tableOutboundInboundInbound 5 圖2-5 P2P 組網模式下的 NAT hairpin(Packet from Host A to Host B)圖2-6 P2P 組網模式下的 NAT hairpin(Packet from Host B t
21、o Host A)C/S:位于內網側的用戶使用 NAT 地址訪問內網服務器。如圖 2-7 和圖 2-8 所示,內部網絡中有一臺 FTP 服務器,內網用戶使用 NAT 地址訪問該 FTP 服務器時,NAT 設備同時轉換訪問內網服務器的報文的源和目的 IP 地址,其中,目的 IP 地址轉換通過匹配外網接口上的內部服務器配置來完成,源地址轉換通過匹配內部服務器所在接口上的出方向動態地址轉換或出方向靜態地址轉換來完成。Packet from Host A to Host BClient B192.168.1.3/24Client A192.168.1.2/24Registration server20
22、0.2.2.2/24NAT內網口192.168.1.1/24公網口202.38.1.3/24Source:192.168.1.2:1025Destination:202.38.1.3:16384轉換前Source:192.168.1.2:1025Destination:202.38.1.3:16384Source:202.38.1.3:16384Destination:192.168.1.3:1028轉換后Source:202.38.1.3:16400Destination:192.168.1.3:1028Internet202.38.1.3:16384Before NATAfter NATW
23、ayInbound192.168.1.2:1025NAT tableOutbound192.168.1.3:1028202.38.1.3:16400Client B192.168.1.3/24Client A192.168.1.2/24Registration server200.2.2.2/24NAT內網口192.168.1.1/24公網口202.38.1.3/24轉換后Source:202.38.1.3:16384Destination:192.168.1.2:1025轉換前Source:192.168.1.3:1028Destination:202.38.1.3:16400Interne
24、tPacket from Host B to Host ABefore NATAfter NATWayNAT table192.168.1.3:1028Outbound202.38.1.3:16384202.38.1.3:16400Inbound192.168.1.2:1025Source:192.168.1.3:1028Destination:202.38.1.3:16400Source:202.38.1.3:16384Destination:192.168.1.2:1025 6 圖2-7 C/S 組網模式下的 NAT hairpin(Packet from Host to Server)圖
25、2-8 C/S 組網模式下的 NAT hairpin(Packet from Server to Host)2.4 NAT ALG機制 2.4.1 NAT ALG 機制簡介 通常情況下,NAT 只改變 IP 報文頭部地址信息,而不對報文載荷進行分析,這對于普通的應用層協議(如 Telnet)來說,并不會影響其業務的開展;然而有一些應用層協議,其報文載荷中可能也攜帶有地址或端口信息,若這些信息不能被有效轉換,就可能導致問題。譬如,某些應用層協議會在客戶端與服務器之間協商端口號,然后服務器使用協商出的端口號向客戶端發起連接。如果 NAT設備對二者的協商過程一無所知,那么當服務器向客戶端發起連接時,
26、就會因為在 NAT 設備上找不到內部與外部的 IP 地址/端口號對應關系而造成連接失敗。這個問題可以通過 ALG(Application Level Gateway,應用層網關)來解決。ALG 主要完成對應用層報文的解析和處理。NAT 利用 ALG 技術可以對應用層協議的報文載荷進行信息解析,改變封裝在其中的地址和端口信息,并完成其它必要的工作以使應用協議可以穿越 NAT。Source:192.168.1.2:33350Destination:202.38.1.2:21Host192.168.1.2/24內網口192.168.1.1/24公網口202.38.1.1/24NATFTP serve
27、r192.168.1.4/24Source:202.38.1.1:1025Destination:192.168.1.4:21轉換前Source:192.168.1.2:33350Destination:202.38.1.2:21Packet from Host to Server202.38.1.2-192.168.1.4NAT serverBefore NATAfter NATWay192.168.1.2:33350NAT tableOutbound202.38.1.1:1025202.38.1.2:21Inbound192.168.1.4:21Internet轉換后Source:202.
28、38.1.1:1025Destination:192.168.1.4:21Packet from Server to HostSource:192.168.1.4:21Destination:202.38.1.1:1025Source:202.38.1.2:21Destination:192.168.1.2:33350Host192.168.1.2/24內網口192.168.1.1/24公網口202.38.1.1/24NATFTP server192.168.1.4/24轉換后Source:202.38.1.2:21Destination:192.168.1.2:33350202.38.1.2
29、-192.168.1.4NAT serverInternet轉換前Source:192.168.1.4:21Destination:202.38.1.1:1025202.38.1.1:1025Before NATAfter NATWayOutbound192.168.1.4:21NAT tableInbound192.168.1.2:33350202.38.1.2:21 7 ALG 機制可處理的應用層協議包括 DNS、FTP、H.323、ILS 和 SIP 等。2.4.2 基本概念 1.會話 會話記錄了傳輸層報文之間的交互信息,包括源 IP 地址、源端口、目的 IP 地址、目的端口,協議類型和
30、源/目的 IP 地址所屬的 VPN 實例。2.動態通道 當應用層協議報文中攜帶地址信息時,這些地址信息會被用于建立動態通道,后續符合該地址信息的連接將使用已經建立的動態通道來傳輸數據。2.4.3 FTP 協議的 ALG 處理 在 FTP 工作過程中,客戶端與服務器之間將建立兩條 TCP 連接:一條為控制連接,負責傳輸諸如用戶指令和參數等控制信息,其中包括發起數據連接時要用到的端口信息;另一條為數據連接,負責在服務器與客戶端之間建立數據通道以傳送文件。FTP 有兩種不同的工作模式:PORT(主動模式)和 PASV(被動模式)。不同模式下,FTP 連接建立過程中 NAT ALG 的處理機制有所不同
31、。下面介紹兩種不同模式下 FTP 的連接建立過程。1.主動模式下的 FTP 連接建立過程 在主動模式下,在由客戶端發起控制連接中,客戶端將指定的端口通過 PORT 指令發送給服務器,然后由服務器向該端口發起數據連接。主動模式下,是否需要在控制連接中進行 ALG 處理與服務器和客戶端所處的位置有關,具體如下:客戶端位于公網而服務器位于私網的情況下,由于客戶端向服務器通告的是公網地址和端口,服務器可直接向其發起數據連接,因此無需在控制連接中進行 ALG 處理??蛻舳宋挥谒骄W而服務器位于公網的情況下,由于客戶端向服務器通告的是私網地址和端口,因此需在控制連接中通過 ALG 處理將其轉換為公網地址和端
32、口,以供服務器發起數據連接所用。圖2-9 主動模式下的 ALG 處理 Data connect(IP 2,Port 2)Data connect(IP 1,Port 1)NATClientFTP serverControlconnectionDataconnectionIntranetInternetPORT(IP 1,Port 1)ALG:(IP 1,Port 1)-(IP 2,Port 2)PORT(IP 2,Port 2)8 如圖 2-9 所示,位于內部網絡的客戶端以 PORT 方式訪問位于外部網絡的 FTP 服務器,NAT 設備上配置了內網地址 IP1 到外網地址 IP2 的映射。同時
33、,在 NAT 設備上開啟 ALG 功能。(1)首先,由客戶端向服務器發送 PORT 指令,以向服務器通知發起數據連接所應使用的地址和端口(IP 1,Port 1);(2)NAT 設備收到該指令后,將其中載荷所攜帶的私網地址和端口(IP 1,Port 1)替換為公網地址和端口(IP 2,Port 2),并據此創建相應的 PAT 表項此過程即為 ALG 處理;(3)服務器收到該指令后,主動向公網地址和端口(IP 2,Port 2)發起數據連接,并在通過 NAT設備時被轉化為私網地址和端口(IP 1,Port 1)。2.被動模式下的 FTP 連接建立過程 在被動模式下,在由客戶端發起控制連接中,客戶
34、端向服務器發送 PASV 請求來通知服務器它將發起被動模式,服務器再將指定的端口通過 PASV 響應發送給客戶端,然后由客戶端向該端口發起數據連接。被動模式下,是否需要在控制連接中進行 ALG 處理與服務器和客戶端所處的位置有關,具體如下:服務器位于公網而客戶端位于私網的情況下,由于服務器向客戶端通告的是公網地址和端口,客戶端可直接向其發起數據連接,因此無需在控制連接中進行 ALG 處理。服務器位于私網而客戶端位于公網的情況下,由于服務器向客戶端通告的是私網地址和端口,因此需在控制連接中通過 ALG 處理將其轉換為公網地址和端口,以供客戶端發起數據連接所用。圖2-10 被動模式下的 ALG 處
35、理 如圖 2-10 所示,位于外部網絡的 FTP 客戶端以 PASV 方式訪問位于內部網絡的 FTP 服務器,NAT設備上配置了內網地址 IP1 到外網地址 IP2 的映射,開啟 ALG 功能后的地址轉換過程如下:(1)客戶端向服務器發送 PASV 請求;(2)服務器收到該請求后,選擇并打開服務器端數據通道的地址和端口(IP 1,Port 1),并通過PASV 響應向客戶端返回該地址和端口;(3)NAT 設備收到該響應后,將其中載荷所攜帶的私網地址和端口(IP 1,Port 1)替換為公網地址和端口(IP 2,Port 2),并據此創建相應的 PAT 表項此過程即為 ALG 處理;PASVDa
36、ta connect(IP 2,Port 2)Data connect(IP 1,Port 1)ClientFTP serverEntering passive(IP 1,Port 1)ControlconnectionDataconnectionNATInternetIntranetALG:(IP 1,Port 1)-(IP 2,Port 2)Entering passive(IP 2,Port 2)9(4)客戶端收到該響應后,向公網地址和端口(IP 2,Port 2)發起數據連接,并在通過 NAT 設備時被轉換為私網地址和端口(IP 1,Port 1)。2.4.4 DNS 協議的 ALG
37、處理 如圖 2-11 所示,私網側主機要使用域名訪問內部 WWW 服務器(域名為 ,對外公網地址為 50.10.10.10),但它查詢的 DNS 服務器位于公網,DNS 服務器的響應報文中包含的是內部 WWW 服務器的公網地址,導致收到響應報文的私網用戶無法利用域名訪問內部服務器。此時,需要 NAT 設備在轉換 DNS 報文的同時進行 ALG 處理,將 DNS 響應報文中攜帶的公網地址轉換為服務器的私網地址。圖2-11 DNS 報文載荷的 ALG處理示意圖 DNS 報文載荷的 NAT ALG 處理機制如下:(1)私網主機向公網的 DNS 服務器發起 DNS 查詢。(2)DNS 服務器收到查詢報
38、文后進行查詢處理,并將查詢到的結果(域名 對應 IP 地址 50.10.10.10)放在 DNS 響應報文(DNS Answer)中發送給私網主機對應的公網地址。(3)DNS 響應報文在到達具有 ALG 特性的 NAT 設備時,報文載荷中的公網地址會被映射成為內部 WWW 服務器的私網地址。即,NAT 設備將收到的 DNS 響應報文數據載荷中的 IP 地址50.10.10.10 替換為 192.168.0.10 后,將 DNS 響應報文發往私網。(4)這樣,私網主機收到的DNS響應報文中就攜帶了的私網IP地址,從而實現私網客戶端通過公網 DNS 服務器以域名方式訪問私網服務器的功能。192.1
39、68.0.3I50.10.10.10DNS serverWWW =192.168.0.10HostNAT(1)DNS request for (2)DNS answer=50.10.10.10ALG處理(3)DNS answer=192.168.0.10(192.168.0.1050.10.10.10)10 2.4.5 ICMP 協議的 ALG 處理 如圖 2-12 所示,公網側的主機要訪問私網中的 FTP 服務器,該內部服務器對外的公網地址為50.10.10.10。若內部 FTP 服務器的 21 端口未打開,那么它會向主機發送一個 ICMP 差錯報文,該差錯報文的數據載荷中的 IP 地址信息
40、為 FTP 服務器的私網 IP 地址。在這種情況下,如果 ICMP 差錯報文未經 ALG 處理直接從私網發送到公網,那么公網主機就無法識別該差錯報文屬于哪個應用程序,同時也會將 FTP 服務器的私網地址泄漏到公網中。因此,需要 NAT 設備對 ICMP 差錯報文進行 ALG處理。ALG會根據原始 FTP 會話的地址轉換信息記錄,將其數據載荷中的私網地址 192.168.0.10 還原成公網地址 50.10.10.10,再將該 ICMP 差錯報文發送到公網。這樣,公網主機就可以正確識別出錯的應用程序,同時也避免了私網地址的泄漏。圖2-12 ICMP 差錯報文載荷的 ALG 處理示意圖 2.4.6
41、 DNS Mapping 方式 DNS Mapping 主要用于解決普通的 NAT ALG 在特定組網時的問題。如圖 2-13 所示,DNS 服務器位于公網,NAT 設備使用一個公網地址映射內部的多個服務器,內網主機通過域名訪問內網 Web服務器時,由于 NAT 設備開啟了 DNS ALG 功能,因此會將 DNS 響應報文中的公網地址修改為內部服務器的私網地址。但是,由于 DNS 服務器的響應報文的載荷中只包含域名和應用服務器的外網 IP 地址,不包含傳輸協議類型和端口號。所以 NAT 設備在修改 DNS 響應報文載荷中的外網 IP地址時,有可能將其修改為 FTP 服務器的私網地址。這種情況下
42、,內部主機收到響應報文后向 FTP服務器發起 HTTP 訪問,該訪問將以失敗告終。為了解決上述問題,需要借助 DNS mapping,通過指定域名與應用服務器的外網 IP 地址、端口和協議的映射關系,由域名獲取應用服務器的外網 IP 地址、端口和協議,進而精確匹配內部服務器配置獲取應用服務器的內網 IP 地址。IP networkHost2.2.2.2FTP server192.168.0.10NATALG處理(192.168.0.1050.10.10.10)該請求報文的目的地址已被轉換成192.168.0.10Host向50.10.10.10發起FTP連接FTP server的21端口未打開
43、,發送ICMP端口不可達報文,該報文數據載荷中的目的IP地址是192.168.0.10ICMP報文數據載荷中的目的IP地址是50.10.10.10Private networkPublic network 11 當 NAT 設備收到 DNS 響應報文后,載荷中域名 對應的 IP 地址為 162.10.2.5,NAT 設備查找 DNS Mapping,得到“域名公網 IP 地址公網端口協議類型”的對應關系,然后再從 NAT server 配置中得到對應的 Web 服務器的私網地址 10.1.1.200,NAT 設備將 DNS 響應報文中的地址修改為 10.1.1.200 后發送給內部主機。內部主
44、機收到該 DNS 相應后,向 10.1.1.200對應的服務器發起 HTTP 訪問。圖2-13 DNS Mapping 方式原理圖 2.5 NAT支持端口復用 NAT 端口復用技術是專門為需要進行大規模私網到互聯網源地址轉換的大型企業、運營商、金融數據中心等開發的,以節約互聯網地址為目的的技術。1.實現原理 在 PAT 模式的地址轉換中,不同會話的地址轉換結果可以共享同一個轉換后的源端口。只要其地址轉換后的三元組(源地址、源端口號、協議類型)不同或五元組(源地址、源端口號、協議類型、目的地址、目的端口號)不同即可。假設源地址為 10.1.1.1 的設備訪問目的地址為 5.5.5.5 的設備 1
45、23 端口時,NAT 地址轉換將源地址轉換為 3.3.3.3,源端口轉換為 1023。此時會有以下情況:當源地址為 10.1.1.2 的設備也訪問目的地址為 5.5.5.5 的設備 123 端口時,NAT 地址轉換不可以將源地址轉換為 3.3.3.3,源端口轉換為 1023。當源地址為 10.1.1.3 的設備訪問目的地址為 5.5.5.5 的設備 124 端口時,NAT 地址轉換仍然可以將源地址轉換為 3.3.3.3,源端口轉換為 1023。DNS request for 211.100.7.34/=162.10.2.5NATDNS serverIntranetInternetWeb ser
46、ver10.1.1.200/DNS response=162.10.2.5DNS response=10.1.1.200DNS mapping: protocol tcp ip 162.10.2.5 port httpNAT server:protocol tcp global 162.10.2.5 inside 10.1.1.200 httpHost10.1.1.100/8FTP server10.1.1.300 12 一般來說,單個 NAT 地址的端口數量有限,如果會話數量非常多,傳統方法需要很多 NAT 地址才能滿足需求。然而,端口復用功能有效地解決了這個問題。理論上,借助端口復用,一個
47、 NAT 地址足以支持無限的會話數量。2.技術優點 每個互聯網地址可以提供超過六萬五千個端口數量的 NAT 會話。端口復用功能可以進一步節省公網IP,減少企業購買和維護大量公網 IP 地址的成本,在高并發的網絡環境中,端口復用能夠支持更多的連接。2.6 NAT支持多VPN實例 NAT 多實例主要針對 MPLS L3VPN 用戶訪問公網或為公網提供服務而提出,可實現不同 VPN 內使用相同私網地址的用戶同時訪問外部網絡。NAT多實例在轉換過程中增加了對VPN的識別和處理,把 VPN 作為區分會話的參數之一,以此實現了多實例同時訪問公網的功能。1.多實例 NO-PAT 與單實例一樣,多實例的 NO
48、-PAT 只對私網的 IP 地址進行轉換,但不同的是多實例 NO-PAT 在原有私網IP地址轉換的基礎上增加了對VPN的識別和處理,即在NAT轉換表項中增加了VPN信息,并將其作為轉換依據之一,以確保將不同 VPN 內相同的私網 IP 地址轉換成不同的公網 IP 地址。2.多實例 PAT 與單實例相比,多實例的 PAT 在原有私網 IP 地址和端口號轉換的基礎上,增加了對 VPN 的識別和處理,即在 PAT 轉換表項中增加了 VPN 信息,并將其作為轉換依據之一,以確保將不同 VPN 內相同的“私網 IP 地址端口號”轉換成不同的“公網 IP 地址端口號”。3.多實例 NAT Server 與
49、單實例相比,多實例的 NAT Server 增加了私網側對 VPN 的支持,即在所配置的靜態 NAT 轉換表項中增加了 VPN 信息,并將其作為轉換依據之一,以確保將訪問不同 VPN 的報文送達正確的VPN,其處理流程與單實例相同。4.多實例 EASY IP 與單實例相比,多實例的 EASY IP 在原有私網 IP 地址和端口號轉換的基礎上,增加了對 VPN 的識別和處理,即在 EASY IP 轉換表項中增加了 VPN 信息,并將其作為轉換依據之一,以確保將不同VPN 內相同的“私網 IP 地址端口號”轉換成不同的“公網 IP 地址端口號”。5.多實例 DNS Mapping 與單實例相比,多
50、實例的 DNS Mapping 增加了私網側對 VPN 的支持,即在所配置的 DNS Mapping映射表項中增加了 VPN 信息,并將其作為轉換依據之一,以確保將訪問不同 VPN 的報文送達正確的 VPN,其處理流程與單實例相同。6.多實例 ALG 處理 多實例的 ALG處理流程與單實例基本相同,不同的是 NAT 設備在創建公網與私網的地址端口映射表項時,NAT 多實例在私網側地址和端口基礎上增加了對 VPN 的識別與處理,即在映射表項中增加了 VPN 信息,譬如將私網側的(VPN A,IP 1,Port 1)與公網側的(IP 2,Port 2)進行映射。1 3 典型組網應用典型組網應用 3
51、.1 私網主機訪問公網服務器 在許多小區、學校和企業網的內網規劃中,由于公網地址資源有限,內部用戶實際使用的都是私網地址,在這種情況下,可以使用 NAT 技術來實現內部用戶對公網的訪問。如圖 3-1 所示,通過在NAT 網關上配置 NAT 轉換規則,可以實現私網主機訪問公網服務器。圖3-1 私網主機訪問公網服務器組網圖 3.2 公網主機訪問私網服務器 在某些場合,私網內部有一些服務器需要向公網提供服務,比如一些位于私網內的 Web 服務器、FTP 服務器等,NAT 可以支持這樣的應用。如圖 3-2 所示,通過配置 NAT Server,即定義“公網IP 地址端口號”與“私網 IP 地址端口號”
52、間的映射關系,位于公網的主機能夠通過該映射關系訪問到位于私網的服務器。圖3-2 公網主機訪問私網服務器組網圖 192.168.1.1/24192.168.1.2/24NATHost AHost BServerIntranet192.168.1.3/24Host CInternet210.33.5.1/24192.168.1.1/24192.168.1.2/24NATHost AHost BIntranet192.168.1.100/24ServerInternetHost C210.33.5.1/24 2 3.3 私網主機通過域名訪問私網服務器 在某些場合,私網用戶希望通過域名訪問位于同一私網
53、的內部服務器,而 DNS 服務器卻位于公網,此時可通過 DNS Mapping 方式來實現。如圖 3-3 所示,通過配置 DNS Mapping 映射表,即定義“域名公網 IP 地址公網端口協議類型”間的映射關系,將 DNS 響應報文中攜帶的公網 IP 地址替換成內部服務器的私網 IP 地址,從而使私網用戶可以通過域名來訪問該服務器。圖3-3 私網主機通過域名訪問私網服務器組網圖 3.4 不同VPN的主機使用相同的私網地址訪問公網 當分屬不同 MPLS VPN 的主機使用相同的私網地址,并通過同一個出口設備訪問 Internet 時,NAT多實例可實現這些地址重疊的主機同時訪問公網服務器。如圖
54、 3-4 所示,Host A 和 Host B 具有相同的私網地址,且分屬不同的 VPN,NAT 能夠區分屬于不同 VPN 的主機,允許二者同時訪問公網服務器。圖3-4 NAT 多實例組網圖 192.168.1.1/24192.168.1.2/24NATHost AHost BIntranet192.168.1.100/Web serverInternet210.33.5.1/=211.65.3.1DNS serverNATVPN AVPN BCE ACE B211.65.3.1/24ServerInternetHost AHost B192.168.1.1/24192.168.1.1/242
55、10.33.5.1/24 1 4 參考文獻參考文獻 RFC 1631:The IP Network Address Translator(NAT)RFC 2663:IP Network Address Translator(NAT)Terminology and Considerations RFC 2993:Architectural Implications of NAT RFC 3022:Traditional IP Network Address Translator(Traditional NAT)RFC 3027:Protocol Complications with the IP Network Address Translator