《新华三:2022 NAT技术白皮书(17页).pdf》由会员分享,可在线阅读,更多相关《新华三:2022 NAT技术白皮书(17页).pdf(17页珍藏版)》请在三个皮匠报告上搜索。
1、NAT 技术白皮书 Copyright 2019 新华三技术有限公司 版权所有,保留一切权利。非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传播。除新华三技术有限公司的商标外,本手册中出现的其它公司的商标、产品标识及商品名称,由各自权利人拥有。本文中的内容为通用性技术信息,某些信息可能不适用于您所购买的产品。i 目 录 1 概述 1 1.1 产生背景 1 1.2 技术优点 1 2 NAT 技术实现 1 2.1 NAT 基本概念 1 2.2 NAT 基本原理 1 2.3 NAT 实现方式 2 2.3.1 静态方式 2 2.3.2 NO-PAT 方式
2、2 2.3.3 PAT 方式 2 2.3.4 NAT Server 方式 3 2.3.5 Easy IP 方式 4 2.3.6 NAT hairpin 5 2.4 NAT ALG 机制 7 2.4.1 NAT ALG 机制简介 7 2.4.2 基本概念 8 2.4.3 FTP 协议的 ALG 处理 8 2.4.4 DNS 协议的 ALG 处理 10 2.4.5 ICMP 协议的 ALG 处理 11 2.4.6 DNS Mapping 方式 11 2.5 NAT 支持多 VPN 实例 12 3 典型组网应用 13 3.1 私网主机访问公网服务器 13 3.2 公网主机访问私网服务器 13 3.3
3、 私网主机通过域名访问私网服务器 14 3.4 不同 VPN 的主机使用相同的私网地址访问公网 14 4 参考文献 15 1 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、内部网络的改变也很容易。2 NAT 技术实现技术实现 2.1 NAT基本概念 NAT 基本概念如下:NAT 设备:配置了 NAT 功能的连接内部网络和外部网络的边缘设备。NAT 规则:用于进行地址转换的 NAT 配置称为 NAT 规则。NAT 地址:用于进行地址转换的公网 IP 地址,与外部网络路由可达,可静态指定或动态分配。NAT 表项:NAT 设备上用于记录网络地址转换映射关系的表项。Easy IP 功能:NAT 转换时直接使用设备上接口的 IP 地址作为 NAT 地址。设备上接口的地址可静态指定或通过 DHCP 协议动态获取。2.2 NAT基本原理 当内部网络访问外部网络的报文经过 NA
6、T 设备时,NAT 设备会用一个合法的公网地址替换原报文中的源 IP 地址,并对这种转换进行记录;之后,当报文从外网侧返回时,NAT 设备查找原有的记录,将报文的目的地址再替换回原来的私网地址,并转发给内网侧主机。这个过程对于私网侧或公网侧设备透明。基于这种基本的地址转换原理,数量庞大的内网主机就不再需要公网 IP 地址了。2 2.3 NAT实现方式 2.3.1 静态方式 静态方式的地址转换是指外部网络和内部网络之间的地址映射关系由配置确定,即一个公网 IP 地址唯一对应一个内部主机。该方式适用于内部网络与外部网络之间存在固定访问需求的组网环境。静态地址转换支持双向互访:内网用户可以主动访问外
7、网,外网用户也可以主动访问内网。2.3.2 NO-PAT 方式 NO-PAT 方式属于一对一的地址转换,在这种方式下只转换 IP 地址,而对 TCP/UDP 协议的端口号不处理,一个公网 IP 地址不能同时被多个用户使用。如图 1 所示,NO-PAT 方式的处理过程如下:(1)NAT 设备收到私网侧主机发送的访问公网侧服务器的报文。(2)NAT 设备从地址池中选取一个空闲的公网 IP 地址,建立与私网侧报文源 IP 地址间的 NAT 转换表项,并依据查找 NAT 表项的结果将报文转换后向公网侧发送。(3)NAT 设备收到公网侧的回应报文后,根据其目的 IP 地址反向查找 NAT 表项,并依据查
8、表结果将报文转换后向私网侧发送。由于NO-PAT这种一对一的转换方式并未实现公网地址的复用,不能有效解决IP地址短缺的问题,因此在实际应用中并不常用。图1 NO-PAT 方式原理图 2.3.3 PAT 方式 由于 NO-PAT 方式并未实现地址复用,因此并不能解决公网地址短缺的问题,而 PAT(Port Address Translation)方式则可以解决这个问题。10.1.1.100/8NATServer211.100.7.34/24HostDestination:10.1.1.100Source:10.1.1.100Destination:162.105.178.65Source:162
9、.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.105.178.65 3 PAT 方式属于多对一的地址转换,它通过使用“IP 地址端口号”的形式进行转换,使多个私网用户可共用一个公网 IP 地址访问外网,实现了
10、地址的复用,因此是地址转换实现的主要形式。目前 PAT 仅支持对传输层协议为 TCP、UDP 或 ICMP 的报文进行“IP 地址端口号”转换。如图 2 所示,PAT 方式的处理过程如下:(1)NAT 设备收到私网侧主机发送的访问公网侧服务器的报文。(2)NAT 设备从地址池中选取一对空闲的“公网 IP 地址端口号”,建立与私网侧报文“源 IP地址源端口号”间的 PAT 转换表项,并依据查找 PAT 表项的结果将报文转换后向公网侧发送。(3)NAT 设备收到公网侧的回应报文后,根据其“目的 IP 地址目的端口号”反向查找 PAT 表项,并依据查表结果将报文转换后向私网侧发送。图2 PAT 方式
11、原理图 2.3.4 NAT Server 方式 出于安全考虑,大部分私网主机通常并不希望被公网用户访问。但在某些实际应用中,需要给公网用户提供一个访问私网服务器的机会。而在 NO-PAT 或 PAT 方式下,由于由公网用户发起的访问无法动态建立 NAT 表项,因此公网用户无法访问私网主机。NAT Server(NAT 内部服务器)方式就可以解决这个问题通过静态配置“公网 IP 地址端口号”与“私网 IP 地址端口号”间的映射关系,NAT 设备可以将公网地址“反向”转换成私网地址。如图 3 所示,NAT Server 方式的处理过程如下:(1)NAT 设备收到公网侧主机发送的访问私网侧服务器的报
12、文。(2)NAT 设备根据公网侧报文的“目的 IP 地址目的端口号”反向查找静态 NAT 表项,并依据查表结果将报文转换后向私网侧发送。(3)NAT 设备收到私网侧的回应报文后,根据其“源 IP 地址源端口号”查找静态 NAT 表项,并依据查表结果将报文转换后向公网侧发送。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:16384Source:162.105.178.65:16400Destination:10.1.1.100:
13、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 to Host BHost AHost BServer10.1.1.100:1025Befo
14、re 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 tableOutboundInboundInboundIntranetInternet 4 图3 NAT Server 方式原理图 2.3.5 Easy IP 方式 EASY IP 方式是指直接使用接口的公网 IP 地址作为转换后的源地址进行地址转换,它可以动态获取出接口地址,从而有效支
15、持出接口通过拨号或 DHCP 方式获取公网 IP 地址的应用场景。EASY IP 方式特别适合小型局域网访问 Internet 的情况。这里的小型局域网主要指中小型网吧、小型办公室等环境,一般具有以下特点:内部主机较少、出接口通过拨号方式获得临时公网 IP 地址以供内部主机访问 Internet。对于这种情况,可以使用 EASY IP 方式使局域网用户都通过这个 IP 地址接入 Internet。如图 4 所示,EASY IP 方式的处理过程如下:(1)NAT 设备收到私网侧主机发送的访问公网侧服务器的报文。(2)NAT 设备利用公网侧接口的“公网 IP 地址端口号”,建立与私网侧报文“源 I
16、P 地址源端口号”间的 EASY IP 转换表项(正反向),并依据查找正向 EASY IP 表项的结果将报文转换后向公网侧发送。(3)NAT 设备收到公网侧的回应报文后,根据其“目的 IP 地址目的端口号”查找反向 EASY IP表项,并依据查表结果将报文转换后向私网侧发送。10.1.1.2/8NATServer211.100.7.3/24HostDestination:10.1.1.2:80Source:10.1.1.2:80Destination:162.105.178.6:80Source:162.105.178.6:80Packet from Host to ServerPacket
17、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 5 图4 EASY IP 方式原理图 2.3.6 NAT hairpin NAT hairpin 功能用于满足位于内网侧的用户之间或内网侧的用户与服务器之间通过 NAT 地址进行访问的需求。开启 NAT hairpin 的内网侧接口上会对
18、报文同时进行源地址和目的地址的转换。它支持两种组网模式:(1)P2P:位于内网侧的用户之间通过NAT地址互访。内网各主机首先向外网服务器注册自己NAT转换后的外网 IP 地址和端口号信息。如图 5 和图 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:1586Packet from Host A to ServerPa
19、cket 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.8:548110.1.1.100:1540Before NA
20、TAfter 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 6 图5 P2P 组网模式下的 NAT hairpin(Packet from Host A to Host B)图6 P2P 组网模式下的 NAT hairpin(Packet from Host B to Host A)(2)C/S:位于内网侧的用户使用 NAT 地址访问
21、内网服务器。如图 7 和图 8 所示,内部网络中有一台 FTP 服务器,内网用户使用 NAT 地址访问该 FTP 服务器时,NAT 设备同时转换访问内网服务器的报文的源和目的 IP 地址,其中,目的 IP 地址转换通过匹配外网接口上的内部服务器配置来完成,源地址转换通过匹配内部服务器所在接口上的出方向动态地址转换或出方向静态地址转换来完成。Packet from Host A to Host BClient B192.168.1.3/24Client A192.168.1.2/24Registration server200.2.2.2/24NAT内网口192.168.1.1/24公网口202
22、.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 NATWayInbound192.168.1.2:1025NAT tableOu
23、tbound192.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:16400InternetPacket from Host B to Host ABefore
24、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 7 图7 C/S 组网模式下的 NAT hairpin(Packet from Host to Server)图8 C/S 组网模式下的 NAT hairpin(Packet from S
25、erver to Host)2.4 NAT ALG机制 2.4.1 NAT ALG 机制简介 通常情况下,NAT 只改变 IP 报文头部地址信息,而不对报文载荷进行分析,这对于普通的应用层协议(如 Telnet)来说,并不会影响其业务的开展;然而有一些应用层协议,其报文载荷中可能也携带有地址或端口信息,若这些信息不能被有效转换,就可能导致问题。譬如,某些应用层协议会在客户端与服务器之间协商端口号,然后服务器使用协商出的端口号向客户端发起连接。如果 NAT设备对二者的协商过程一无所知,那么当服务器向客户端发起连接时,就会因为在 NAT 设备上找不到内部与外部的 IP 地址/端口号对应关系而造成连
26、接失败。这个问题可以通过 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 server192.168.1.4/24Source:202.38.1.1:1025Des
27、tination: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.38.1.1:1025Destination:192.168.1.4:21Pac
28、ket 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-192.168.1.4NAT serverInternet转换前Source:
29、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 8 ALG 机制可处理的应用层协议包括 DNS、FTP、H.323、ILS 和 SIP 等。2.4.2 基本概念 1.会话 会话记录了传输层报文之间的交互信息,包括源 IP 地址、源端口、目的 IP 地址、目的端口,协议类型和源/目的 IP 地址所属的 VPN 实例。2.动态通道 当应用层协议报文中携带地
30、址信息时,这些地址信息会被用于建立动态通道,后续符合该地址信息的连接将使用已经建立的动态通道来传输数据。2.4.3 FTP 协议的 ALG 处理 在 FTP 工作过程中,客户端与服务器之间将建立两条 TCP 连接:一条为控制连接,负责传输诸如用户指令和参数等控制信息,其中包括发起数据连接时要用到的端口信息;另一条为数据连接,负责在服务器与客户端之间建立数据通道以传送文件。FTP 有两种不同的工作模式:PORT(主动模式)和 PASV(被动模式)。不同模式下,FTP 连接建立过程中 NAT ALG 的处理机制有所不同。下面介绍两种不同模式下 FTP 的连接建立过程。1.主动模式下的 FTP 连接
31、建立过程 在主动模式下,在由客户端发起控制连接中,客户端将指定的端口通过 PORT 指令发送给服务器,然后由服务器向该端口发起数据连接。主动模式下,是否需要在控制连接中进行 ALG 处理与服务器和客户端所处的位置有关,具体如下:客户端位于公网而服务器位于私网的情况下,由于客户端向服务器通告的是公网地址和端口,服务器可直接向其发起数据连接,因此无需在控制连接中进行 ALG 处理。客户端位于私网而服务器位于公网的情况下,由于客户端向服务器通告的是私网地址和端口,因此需在控制连接中通过 ALG 处理将其转换为公网地址和端口,以供服务器发起数据连接所用。图9 主动模式下的 ALG 处理 Data co
32、nnect(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)9 如图 9 所示,位于内部网络的客户端以 PORT 方式访问位于外部网络的 FTP 服务器,NAT 设备上配置了内网地址 IP1 到外网地址 IP2 的映射。同时,在 NAT 设备上开启 ALG 功能。(2)首先,由客户端向服务器发送 PORT 指令
33、,以向服务器通知发起数据连接所应使用的地址和端口(IP 1,Port 1);(3)NAT 设备收到该指令后,将其中载荷所携带的私网地址和端口(IP 1,Port 1)替换为公网地址和端口(IP 2,Port 2),并据此创建相应的 PAT 表项此过程即为 ALG 处理;(4)服务器收到该指令后,主动向公网地址和端口(IP 2,Port 2)发起数据连接,并在通过 NAT设备时被转化为私网地址和端口(IP 1,Port 1)。2.被动模式下的 FTP 连接建立过程 在被动模式下,在由客户端发起控制连接中,客户端向服务器发送 PASV 请求来通知服务器它将发起被动模式,服务器再将指定的端口通过 P
34、ASV 响应发送给客户端,然后由客户端向该端口发起数据连接。被动模式下,是否需要在控制连接中进行 ALG 处理与服务器和客户端所处的位置有关,具体如下:服务器位于公网而客户端位于私网的情况下,由于服务器向客户端通告的是公网地址和端口,客户端可直接向其发起数据连接,因此无需在控制连接中进行 ALG 处理。服务器位于私网而客户端位于公网的情况下,由于服务器向客户端通告的是私网地址和端口,因此需在控制连接中通过 ALG 处理将其转换为公网地址和端口,以供客户端发起数据连接所用。图10 被动模式下的 ALG 处理 如图 10 所示,位于外部网络的 FTP 客户端以 PASV 方式访问位于内部网络的 F
35、TP 服务器,NAT设备上配置了内网地址 IP1 到外网地址 IP2 的映射,开启 ALG 功能后的地址转换过程如下:(2)客户端向服务器发送 PASV 请求;(3)服务器收到该请求后,选择并打开服务器端数据通道的地址和端口(IP 1,Port 1),并通过PASV 响应向客户端返回该地址和端口;(4)NAT 设备收到该响应后,将其中载荷所携带的私网地址和端口(IP 1,Port 1)替换为公网地址和端口(IP 2,Port 2),并据此创建相应的 PAT 表项此过程即为 ALG 处理;PASVData connect(IP 2,Port 2)Data connect(IP 1,Port 1)
36、ClientFTP serverEntering passive(IP 1,Port 1)ControlconnectionDataconnectionNATInternetIntranetALG:(IP 1,Port 1)-(IP 2,Port 2)Entering passive(IP 2,Port 2)10(5)客户端收到该响应后,向公网地址和端口(IP 2,Port 2)发起数据连接,并在通过 NAT 设备时被转换为私网地址和端口(IP 1,Port 1)。2.4.4 DNS 协议的 ALG 处理 如图 11 所示,私网侧主机要使用域名访问内部 WWW 服务器(域名为 ,对外公网地址为
37、 50.10.10.10),但它查询的 DNS 服务器位于公网,DNS 服务器的响应报文中包含的是内部WWW 服务器的公网地址,导致收到响应报文的私网用户无法利用域名访问内部服务器。此时,需要 NAT 设备在转换 DNS 报文的同时进行 ALG 处理,将 DNS 响应报文中携带的公网地址转换为服务器的私网地址。图11 DNS 报文载荷的 ALG处理示意图 DNS 报文载荷的 NAT ALG 处理机制如下:(2)私网主机向公网的 DNS 服务器发起 DNS 查询。(3)DNS 服务器收到查询报文后进行查询处理,并将查询到的结果(域名 对应 IP地址 50.10.10.10)放在 DNS 响应报文
38、(DNS Answer)中发送给私网主机对应的公网地址。(4)DNS 响应报文在到达具有 ALG 特性的 NAT 设备时,报文载荷中的公网地址会被映射成为内部 WWW 服务器的私网地址。即,NAT 设备将收到的 DNS 响应报文数据载荷中的 IP 地址50.10.10.10 替换为 192.168.0.10 后,将 DNS 响应报文发往私网。(5)这样,私网主机收到的DNS响应报文中就携带了 的私网 IP地址,从而实现私网客户端通过公网 DNS 服务器以域名方式访问私网服务器的功能。192.168.0.3I50.10.10.10DNS serverWWW =192.168.0.10HostNA
39、T(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)11 2.4.5 ICMP 协议的 ALG 处理 如图 12 所示,公网侧的主机要访问私网中的 FTP 服务器,该内部服务器对外的公网地址为50.10.10.10。若内部 FTP 服务器的 21 端口未打开,那么它会向主机发送一个 ICMP 差错报文,该差错报文的数据载荷中的 IP 地址信息为 FTP 服务器的私网 IP 地址。在这种情况下,如果 ICMP 差错报文未经 ALG 处理直接从私网发
40、送到公网,那么公网主机就无法识别该差错报文属于哪个应用程序,同时也会将 FTP 服务器的私网地址泄漏到公网中。因此,需要 NAT 设备对 ICMP 差错报文进行 ALG处理。ALG会根据原始 FTP 会话的地址转换信息记录,将其数据载荷中的私网地址 192.168.0.10 还原成公网地址 50.10.10.10,再将该 ICMP 差错报文发送到公网。这样,公网主机就可以正确识别出错的应用程序,同时也避免了私网地址的泄漏。图12 ICMP 差错报文载荷的 ALG 处理示意图 2.4.6 DNS Mapping 方式 DNS Mapping 主要用于解决普通的 NAT ALG 在特定组网时的问题
41、。如图 13 所示,DNS 服务器位于公网,NAT 设备使用一个公网地址映射内部的多个服务器,内网主机通过域名访问内网 Web 服务器时,由于 NAT 设备开启了 DNS ALG 功能,因此会将 DNS 响应报文中的公网地址修改为内部服务器的私网地址。但是,由于 DNS 服务器的响应报文的载荷中只包含域名和应用服务器的外网IP 地址,不包含传输协议类型和端口号。所以 NAT 设备在修改 DNS 响应报文载荷中的外网 IP 地址时,有可能将其修改为 FTP 服务器的私网地址。这种情况下,内部主机收到响应报文后向 FTP服务器发起 HTTP 访问,该访问将以失败告终。为了解决上述问题,需要借助 D
42、NS 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端口未打开,发送ICMP端口不可达报文,该报文数据载荷中的目的IP地址是192.168.0.10ICMP报文数据载荷中的目
43、的IP地址是50.10.10.10Private networkPublic network 12 当 NAT 设备收到 DNS 响应报文后,载荷中域名 对应的 IP 地址为 162.10.2.5,NAT设备查找 DNS Mapping,得到“域名公网 IP 地址公网端口协议类型”的对应关系,然后再从 NAT server 配置中得到对应的 Web 服务器的私网地址 10.1.1.200,NAT 设备将 DNS 响应报文中的地址修改为 10.1.1.200 后发送给内部主机。内部主机收到该 DNS 相应后,向 10.1.1.200 对应的服务器发起 HTTP 访问。图13 DNS Mappin
44、g 方式原理图 2.5 NAT支持多VPN实例 NAT 多实例主要针对 MPLS L3VPN 用户访问公网或为公网提供服务而提出,可实现不同 VPN 内使用相同私网地址的用户同时访问外部网络。NAT多实例在转换过程中增加了对VPN的识别和处理,把 VPN 作为区分会话的参数之一,以此实现了多实例同时访问公网的功能。1.多实例 NO-PAT 与单实例一样,多实例的 NO-PAT 只对私网的 IP 地址进行转换,但不同的是多实例 NO-PAT 在原有私网IP地址转换的基础上增加了对VPN的识别和处理,即在NAT转换表项中增加了VPN信息,并将其作为转换依据之一,以确保将不同 VPN 内相同的私网
45、IP 地址转换成不同的公网 IP 地址。2.多实例 PAT 与单实例相比,多实例的 PAT 在原有私网 IP 地址和端口号转换的基础上,增加了对 VPN 的识别和处理,即在 PAT 转换表项中增加了 VPN 信息,并将其作为转换依据之一,以确保将不同 VPN 内相同的“私网 IP 地址端口号”转换成不同的“公网 IP 地址端口号”。DNS request for 211.100.7.34/=162.10.2.5NATDNS serverIntranetInternetWeb server10.1.1.200/DNS response=162.10.2.5DNS response=10.1.1.
46、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 13 3.多实例 NAT Server 与单实例相比,多实例的 NAT Server 增加了私网侧对 VPN 的支持,即在所配置的静态 NAT 转换表项中增加了 VPN 信息,并将其作为转换依据之一,以确保将访问不同 VPN 的报文送达正确的VPN,其处理流程与单实例相同。4.多实例 EASY
47、 IP 与单实例相比,多实例的 EASY IP 在原有私网 IP 地址和端口号转换的基础上,增加了对 VPN 的识别和处理,即在 EASY IP 转换表项中增加了 VPN 信息,并将其作为转换依据之一,以确保将不同VPN 内相同的“私网 IP 地址端口号”转换成不同的“公网 IP 地址端口号”。5.多实例 DNS Mapping 与单实例相比,多实例的 DNS Mapping 增加了私网侧对 VPN 的支持,即在所配置的 DNS Mapping映射表项中增加了 VPN 信息,并将其作为转换依据之一,以确保将访问不同 VPN 的报文送达正确的 VPN,其处理流程与单实例相同。6.多实例 ALG
48、处理 多实例的 ALG处理流程与单实例基本相同,不同的是 NAT 设备在创建公网与私网的地址端口映射表项时,NAT 多实例在私网侧地址和端口基础上增加了对 VPN 的识别与处理,即在映射表项中增加了 VPN 信息,譬如将私网侧的(VPN A,IP 1,Port 1)与公网侧的(IP 2,Port 2)进行映射。3 典型组网应用典型组网应用 3.1 私网主机访问公网服务器 在许多小区、学校和企业网的内网规划中,由于公网地址资源有限,内部用户实际使用的都是私网地址,在这种情况下,可以使用 NAT 技术来实现内部用户对公网的访问。如图 14 所示,通过在NAT 网关上配置 NAT 转换规则,可以实现
49、私网主机访问公网服务器。图14 私网主机访问公网服务器组网图 3.2 公网主机访问私网服务器 在某些场合,私网内部有一些服务器需要向公网提供服务,比如一些位于私网内的 Web 服务器、FTP 服务器等,NAT 可以支持这样的应用。如图 15 所示,通过配置 NAT Server,即定义“公网 IP192.168.1.1/24192.168.1.2/24NATHost AHost BServerIntranet192.168.1.3/24Host CInternet210.33.5.1/24 14 地址端口号”与“私网 IP 地址端口号”间的映射关系,位于公网的主机能够通过该映射关系访问到位于私
50、网的服务器。图15 公网主机访问私网服务器组网图 3.3 私网主机通过域名访问私网服务器 在某些场合,私网用户希望通过域名访问位于同一私网的内部服务器,而 DNS 服务器却位于公网,此时可通过 DNS Mapping 方式来实现。如图 16 所示,通过配置 DNS Mapping 映射表,即定义“域名公网 IP 地址公网端口协议类型”间的映射关系,将 DNS 响应报文中携带的公网 IP 地址替换成内部服务器的私网 IP 地址,从而使私网用户可以通过域名来访问该服务器。图16 私网主机通过域名访问私网服务器组网图 3.4 不同VPN的主机使用相同的私网地址访问公网 当分属不同 MPLS VPN
51、的主机使用相同的私网地址,并通过同一个出口设备访问 Internet 时,NAT多实例可实现这些地址重叠的主机同时访问公网服务器。如图 17 所示,Host A 和 Host B 具有相同的私网地址,且分属不同的 VPN,NAT 能够区分属于不同 VPN 的主机,允许二者同时访问公网服务器。192.168.1.1/24192.168.1.2/24NATHost AHost BIntranet192.168.1.100/24ServerInternetHost C210.33.5.1/24192.168.1.1/24192.168.1.2/24NATHost AHost BIntranet192
52、.168.1.100/Web serverInternet210.33.5.1/=211.65.3.1DNS server 15 图17 NAT 多实例组网图 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 NATVPN AVPN BCE ACE B211.65.3.1/24ServerInternetHost AHost B192.168.1.1/24192.168.1.1/24210.33.5.1/24