NAT 技术白皮书

zhaoyi4200

贡献于2015-06-17

字数:0 关键词: 网络技术

NAT技术白皮书 杭州华三通信技术有限公司 www.h3c.com.cn 第1页,共15页 NAT技术白皮书 关键词:NAT,NAPT,ALG,EASY IP,DNS mapping 摘 要:本文对NAT技术产生的背景、原理以及实现方式等进行了整体介绍,其中包括各种 NAT转换方式的使用方法、适用范围和组网方案等。 缩略语: 缩略语 英文全名 中文解释 ALG Application Layer Gateway 应用级网关 CIDR Classless InterDomain Routing 无类域间路由选择 DNS Domain Name System 域名系统 DHCP Dynamic Host Configuration Protocol 动态主机配置协议 FTP File Transfer Protocol 文件传输协议 HTTP Hyper Text Transport Protocol 超级文本传输协议 ILS Internet Locator Server 互联网定位服务 NAT Network Address Translation 网络地址转换 NAPT Network Address Port Translation 网络地址端口转换 SIP Session Initiation Protocol 会话发起协议 TCP Transmission Control Protocol 传输控制协议 UDP User Datagram Protocol 用户数据报协议 NAT技术白皮书 杭州华三通信技术有限公司 www.h3c.com.cn 第2页,共15页 目 录 1 概述 .......................................................................................................................................3 1.1 产生背景 ......................................................................................................................3 1.2 技术优点 ......................................................................................................................3 2 NAT技术实现 .........................................................................................................................4 2.1 NAT实现方式...............................................................................................................4 2.1.1 Basic NAT方式 ..................................................................................................4 2.1.2 NAPT方式..........................................................................................................5 2.1.3 NAT Server方式.................................................................................................6 2.1.4 EASY IP方式 .....................................................................................................6 1.1.2 DNS Mapping方式.............................................................................................7 2.2 ALG机制 ......................................................................................................................8 2.2.1 ALG机制简介.....................................................................................................8 2.2.2 FTP协议的ALG处理...........................................................................................9 2.3 NAT多实例的实现......................................................................................................11 3 典型组网应用 .......................................................................................................................12 3.1 私网主机访问公网服务器 ...........................................................................................12 3.2 公网主机访问私网服务器 ...........................................................................................13 3.3 私网主机通过域名访问私网服务器.............................................................................13 3.4 NAT多实例.................................................................................................................14 4 参考文献 ..............................................................................................................................14 NAT技术白皮书 杭州华三通信技术有限公司 www.h3c.com.cn 第3页,共15页 1 概述 1.1 产生背景 随着Internet的发展和网络应用的增多,IPv4地址枯竭已成为制约网络发展的瓶 颈。尽管IPv6可以从根本上解决IPv4地址空间不足问题,但目前众多网络设备和网 络应用大多是基于IPv4的,因此在IPv6广泛应用之前,一些过渡技术(如CIDR、 私网地址等)的使用是解决这个问题最主要的技术手段。 其中,使用私网地址之所以能够节省IPv4地址,主要是利用了这样一个事实:一个 局域网中在一定时间内只有很少的主机需访问外部网络,而80%左右的流量只局限 于局域网内部。由于局域网内部的互访可通过私网地址实现,且私网地址在不同局 域网内可被重复利用,因此私网地址的使用有效缓解了IPv4地址不足的问题。当局 域网内的主机要访问外部网络时,只需通过NAT技术将其私网地址转换为公网地址 即可,这样既可保证网络互通,又节省了公网地址。 说明: z IANA 保留以下三个网段中的地址作为私网地址: 10.0.0.0/8、172.16.0.0/12 和 192.168.0.0/16。 z 使用私网地址的主机不能直接访问 Internet,而在 Internet 上也不能直接访问使用私 网地址的主机。 1.2 技术优点 作为一种过渡方案,NAT通过地址重用的方法来满足IP地址的需要,可以在一定程 度上缓解IP地址空间枯竭的压力。它具备以下优点: z 对于内部通讯可以利用私网地址,如果需要与外部通讯或访问外部资源,则 可通过将私网地址转换成公网地址来实现。 z 通过公网地址与端口的结合,可使多个私网用户共用一个公网地址。 z 通过静态映射,不同的内部服务器可以映射到同一个公网地址。外部用户可 通过公网地址和端口访问不同的内部服务器,同时还隐藏了内部服务器的真 实 IP 地址,从而防止外部对内部服务器乃至内部网络的攻击行为。 NAT技术白皮书 杭州华三通信技术有限公司 www.h3c.com.cn 第4页,共15页 z 方便网络管理,如通过改变映射表就可实现私网服务器的迁移,内部网络的 改变也很容易。 2 NAT技术实现 NAT的基本原理是仅在私网主机需要访问Internet时才会分配到合法的公网地址, 而在内部互联时则使用私网地址。当访问Internet的报文经过NAT网关时,NAT网 关会用一个合法的公网地址替换原报文中的源IP地址,并对这种转换进行记录;之 后,当报文从Internet侧返回时,NAT网关查找原有的记录,将报文的目的地址再 替换回原来的私网地址,并送回发出请求的主机。这样,在私网侧或公网侧设备看 来,这个过程与普通的网络访问并没有任何的区别。 2.1 NAT实现方式 2.1.1 Basic NAT方式 Basic NAT方式属于一对一的地址转换,在这种方式下只转换IP地址,而对 TCP/UDP协议的端口号不处理,一个公网IP地址不能同时被多个用户使用。 图1 Basic NAT方式原理图 如图1所示,Basic NAT方式的处理过程如下: (1) NAT设备收到私网侧主机发送的访问公网侧服务器的报文。 (2) NAT设备从地址池中选取一个空闲的公网IP地址,建立与私网侧报文源IP地 址间的NAT转换表项(正反向),并依据查找正向NAT表项的结果将报文转 换后向公网侧发送。 NAT技术白皮书 杭州华三通信技术有限公司 www.h3c.com.cn 第5页,共15页 (3) NAT设备收到公网侧的回应报文后,根据其目的IP地址查找反向NAT表项, 并依据查表结果将报文转换后向私网侧发送。 说明: 由于 Basic NAT 这种一对一的转换方式并未实现公网地址的复用,不能有效解决 IP 地址短缺的问题,因此在实际应用中并不常用。 2.1.2 NAPT方式 由于Basic NAT方式并未实现地址复用,因此并不能解决公网地址短缺的问题,而 NAPT方式则可以解决这个问题。 NAPT方式属于多对一的地址转换,它通过使用“IP地址+端口号”的形式进行转 换,使多个私网用户可共用一个公网IP地址访问外网,因此是地址转换实现的主要 形式。 Source: 10.1.1.100:1025 10.1.1.100/8 10.1.1.200/8 211.100.7.34/24 NAT Source: 10.1.1.200:1028 Source: 162.105.178.65:16384 Source: 162.105.178.65:16400 Destination: 10.1.1.100:1025 Destination: 162.105.178.65:16384 Destination: 162.105.178.65:16400 Destination: 10.1.1.200:1028 162.105.178.65 162.105.178.66 162.105.178.67 ... Address group Packet from Host A to Server Packet from Server to Host A Packet from Host B to Server Packet from Server to Host B Host A Host B Server 10.1.1.100:1025 Before NAT After NAT 162.105.178.65:16384 Way Outbound 162.105.178.65:16384 10.1.1.100:1025 10.1.1.200:1028 162.105.178.65:16400 162.105.178.65:16400 10.1.1.200:1028 NAPT table Outbound Inbound Inbound Intranet Internet 图2 NAPT方式原理图 如图2所示,NAPT方式的处理过程如下: (1) NAT设备收到私网侧主机发送的访问公网侧服务器的报文。 (2) NAT设备从地址池中选取一对空闲的“公网IP地址+端口号”,建立与私网 侧报文“源IP地址+源端口号”间的NAPT转换表项(正反向),并依据查找 正向NAPT表项的结果将报文转换后向公网侧发送。 NAT技术白皮书 杭州华三通信技术有限公司 www.h3c.com.cn 第6页,共15页 (3) NAT设备收到公网侧的回应报文后,根据其“目的IP地址+目的端口号”查 找反向NAPT表项,并依据查表结果将报文转换后向私网侧发送。 2.1.3 NAT Server方式 出于安全考虑,大部分私网主机通常并不希望被公网用户访问。但在某些实际应用 中,需要给公网用户提供一个访问私网服务器的机会。而在Basic NAT或NAPT方 式下,由于由公网用户发起的访问无法动态建立NAT表项,因此公网用户无法访问 私网主机。NAT Server(NAT内部服务器)方式就可以解决这个问题——通过静 态配置“公网IP地址+端口号”与“私网IP地址+端口号”间的映射关系,NAT设 备可以将公网地址“反向”转换成私网地址。 图3 NAT Server方式原理图 如图3所示,NAT Server方式的处理过程如下: (1) 在NAT设备上手工配置静态NAT转换表项(正反向)。 (2) NAT设备收到公网侧主机发送的访问私网侧服务器的报文。 (3) NAT设备根据公网侧报文的“目的IP地址+目的端口号”查找反向静态NAT 表项,并依据查表结果将报文转换后向私网侧发送。 (4) NAT设备收到私网侧的回应报文后,根据其“源IP地址+源端口号”查找正 向静态NAT表项,并依据查表结果将报文转换后向公网侧发送。 2.1.4 EASY IP方式 EASY IP方式是指直接使用接口的公网IP地址作为转换后的源地址进行地址转换, 它可以动态获取出接口地址,从而有效支持出接口通过拨号或DHCP方式获取公网 IP地址的应用场景。同时,EASY IP方式也可以利用访问控制列表来控制哪些内部 地址可以进行地址转换。 NAT技术白皮书 杭州华三通信技术有限公司 www.h3c.com.cn 第7页,共15页 EASY IP方式特别适合小型局域网访问Internet的情况。这里的小型局域网主要指 中小型网吧、小型办公室等环境,一般具有以下特点:内部主机较少、出接口通过 拨号方式获得临时公网IP地址以供内部主机访问Internet。对于这种情况,可以使 用EASY IP方式使局域网用户都通过这个IP地址接入Internet。 10.1.1.100/8 10.1.1.200/8 211.100.7.34/24 NAT Source: 10.1.1.200:1586 Destination: 10.1.1.200:1586 Packet from Host A to Server Packet from Server to Host A Packet from Host B to Server Packet from Server to Host B Host A Host B Server Intranet Internet 162.10.2.8/24 Source: 10.1.1.100:1540 Destination: 10.1.1.100:1540 Source: 162.10.2.8:5480 Destination: 162.10.2.8:5480 Source: 162.10.2.8:5481 Destination: 162.10.2.8:5481 10.1.1.100:1540 Before NAT After NAT 162.10.2.8:5480 Way Outbound 162.10.2.8:5480 10.1.1.100:1540 10.1.1.200:1586 162.10.2.8:5481 162.10.2.8:5481 10.1.1.200:1586 EASY IP table Outbound Inbound Inbound 图4 EASY IP方式原理图 如图4所示,EASY IP方式的处理过程如下: (1) NAT设备收到私网侧主机发送的访问公网侧服务器的报文。 (2) NAT设备利用公网侧接口的“公网IP地址+端口号”,建立与私网侧报文 “源IP地址+源端口号”间的EASY IP转换表项(正反向),并依据查找正 向EASY IP表项的结果将报文转换后向公网侧发送。 (3) NAT设备收到公网侧的回应报文后,根据其“目的IP地址+目的端口号”查 找反向EASY IP表项,并依据查表结果将报文转换后向私网侧发送。 1.1.2 DNS Mapping方式 在某些应用中,私网用户希望通过域名访问位于同一私网的内部服务器,而DNS服 务器却位于公网。由于通常DNS响应报文中携带的是内部服务器的公网IP地址,因 此若不在NAT设备上进行处理,私网用户将无法通过域名访问到内部服务器。 这个问题可以使用DNS Mapping方式来解决,通过配置“域名—公网IP地址—公 网端口—协议类型”映射表,建立内部服务器的域名与其公网信息间的对应关系。 NAT技术白皮书 杭州华三通信技术有限公司 www.h3c.com.cn 第8页,共15页 图5 DNS Mapping方式原理图 如图5所示,私网用户Host希望通过域名方式访问Web服务器。当NAT设备收到 DNS响应报文后,先根据其中携带的域名查找DNS Mapping映射表,再根据“公 网IP地址—公网端口—协议类型”查找Web服务器,然后将DNS响应报文中的公网 IP地址替换成Web服务器的私网IP地址。这样,Host收到的DNS响应报文中就携带 了Web服务器的私网IP地址,从而可以通过域名来访问Web服务器。 2.2 ALG机制 2.2.1 ALG机制简介 通常情况下,NAT只改变IP报文头部地址信息,而不对报文载荷进行分析,这对于 普通的应用层协议(如Telnet)来说,并不会影响其业务的开展;然而有一些应用 层协议,其报文载荷中可能也携带有地址或端口信息,若这些信息不能被有效转 换,就可能导致问题。譬如,某些应用层协议会在客户端与服务器之间协商端口 号,然后服务器使用协商出的端口号向客户端发起连接。如果NAT设备对二者的协 商过程一无所知,那么当服务器向客户端发起连接时,就会因为在NAT设备上找不 到内部与外部的IP地址/端口号对应关系而造成连接失败。 这个问题可以通过应用级网关(ALG)机制来解决。ALG是特定应用协议的转换代 理,它通过对IP报文的载荷进行解析,改变封装在其中的地址和端口信息,并完成 其它必要的工作以使应用协议可以穿越NAT。ALG机制可处理的应用层协议包括 NAT技术白皮书 杭州华三通信技术有限公司 www.h3c.com.cn 第9页,共15页 DNS、FTP、H.323、ILS和SIP等,下面以FTP协议为例介绍ALG处理的过程。 2.2.2 FTP协议的ALG处理 在FTP工作过程中,客户端与服务器之间将建立两条TCP连接:一条为控制连接, 负责传输诸如用户指令和参数等控制信息,其中包括发起数据连接时要用到的端口 信息;另一条为数据连接,负责在服务器与客户端之间建立数据通道以传送文件。 FTP可分为主动和被动两种模式,根据所采用的模式以及服务器/客户端的位置来 决定是否需要进行ALG处理: 1. 主动模式 在主动模式下,在由客户端发起控制连接中,客户端将指定的端口通过PORT指令 发送给服务器,然后由服务器向该端口发起数据连接,因此: z 当客户端位于公网而服务器位于私网时,由于客户端向服务器通告的是公网 地址和端口,服务器可直接向其发起数据连接,因此无需在控制连接中进行 ALG 处理; z 当客户端位于私网而服务器位于公网时,由于客户端向服务器通告的是私网 地址和端口,因此需在控制连接中通过ALG处理将其转换为公网地址和端 口,以供服务器发起数据连接所用,其过程如 图 6所示。 Data connect (IP 2, Port 2) Data connect (IP 1, Port 1) NATClient FTP server Control connection Data connection Intranet Internet PORT (IP 1, Port 1) ALG: (IP 1, Port 1) -> (IP 2, Port 2) PORT (IP 2, Port 2) 图6 主动模式下的ALG处理 (1) 首先,由客户端向服务器发送PORT指令,以向服务器通知发起数据连接所 应使用的地址和端口(IP 1,Port 1); NAT技术白皮书 杭州华三通信技术有限公司 www.h3c.com.cn 第10页,共15页 (2) NAT设备收到该指令后,将其中所携带的私网地址和端口(IP 1,Port 1)替 换为公网地址和端口(IP 2,Port 2),并据此创建相应的NAPT表项——此 过程即为ALG处理; (3) 服务器收到该指令后,主动向公网地址和端口(IP 2,Port 2)发起数据连 接,并在通过NAT设备时被转化为私网地址和端口(IP 1,Port 1)。 2. 被动模式 在被动模式下,在由客户端发起控制连接中,客户端向服务器发送PASV请求来通 知服务器它将发起被动模式,服务器再将指定的端口通过PASV响应发送给客户 端,然后由客户端向该端口发起数据连接,因此: z 当服务器位于公网而客户端位于私网时,由于服务器向客户端通告的是公网 地址和端口,客户端可直接向其发起数据连接,因此无需在控制连接中进行 ALG 处理; z 当服务器位于私网而客户端位于公网时,由于服务器向客户端通告的是私网 地址和端口,因此需在控制连接中通过ALG处理将其转换为公网地址和端 口,以供客户端发起数据连接所用,其过程如 图 7所示。 PASV Data connect (IP 2, Port 2) Data connect (IP 1, Port 1) ClientFTP server Entering passive (IP 1, Port 1) Control connection Data connection NAT InternetIntranet ALG: (IP 1, Port 1) -> (IP 2, Port 2) Entering passive (IP 2, Port 2) 图7 被动模式下的ALG处理 (1) 首先,由客户端向服务器发送PASV请求; (2) 服务器收到该请求后,选择并打开服务器端数据通道的地址和端口(IP 1, Port 1),并通过PASV响应向客户端返回该地址和端口; NAT技术白皮书 杭州华三通信技术有限公司 www.h3c.com.cn 第11页,共15页 (3) NAT设备收到该响应后,将其中所携带的私网地址和端口(IP 1,Port 1)替 换为公网地址和端口(IP 2,Port 2),并据此创建相应的NAPT表项——此 过程即为ALG处理; (4) 客户端收到该响应后,向公网地址和端口(IP 2,Port 2)发起数据连接,并 在通过NAT设备时被转换为私网地址和端口(IP 1,Port 1)。 2.3 NAT多实例的实现 NAT多实例主要针对MPLS L3VPN用户访问公网或为公网提供服务而提出,可实 现不同VPN内、使用相同私网地址的用户同时访问外部网络。NAT多实例在转换过 程中增加了对VPN的识别和处理,把VPN作为区分会话的参数之一,以此实现了多 实例同时访问公网的功能。 1. 多实例Basic NAT 与单实例一样,多实例的Basic NAT只对私网的IP地址进行转换,但不同的是多实 例Basic NAT在原有私网IP地址转换的基础上增加了对VPN的识别和处理,即在 NAT转换表项中增加了VPN信息,并将其作为转换依据之一,以确保将不同VPN内 相同的私网IP地址转换成不同的公网IP地址。 2. 多实例NAPT 与单实例相比,多实例的NAPT在原有私网IP地址和端口号转换的基础上,增加了 对VPN的识别和处理,即在NAPT转换表项中增加了VPN信息,并将其作为转换依 据之一,以确保将不同VPN内相同的“私网IP地址+端口号”转换成不同的“公网 IP地址+端口号”。 3. 多实例NAT Server 与单实例相比,多实例的NAT Server增加了私网侧对VPN的支持,即在所配置的 静态NAT转换表项中增加了VPN信息,并将其作为转换依据之一,以确保将访问不 同VPN的报文送达正确的VPN,其处理流程与单实例相同。 4. 多实例EASY IP 与单实例相比,多实例的EASY IP在原有私网IP地址和端口号转换的基础上,增加 了对VPN的识别和处理,即在EASY IP转换表项中增加了VPN信息,并将其作为转 换依据之一,以确保将不同VPN内相同的“私网IP地址+端口号”转换成不同的 NAT技术白皮书 杭州华三通信技术有限公司 www.h3c.com.cn 第12页,共15页 “公网IP地址+端口号”。 5. 多实例DNS Mapping 与单实例相比,多实例的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)进行映射。 3 典型组网应用 3.1 私网主机访问公网服务器 在许多小区、学校和企业网的内网规划中,由于公网地址资源有限,内部用户实际 使用的都是私网地址,在这种情况下,可以使用NAT技术来实现内部用户对公网的 访问。如图8所示,通过在NAT网关上配置NAT转换规则,可以实现私网主机访问 公网服务器。 Intranet 图8 私网主机访问公网服务器组网图 NAT技术白皮书 杭州华三通信技术有限公司 www.h3c.com.cn 第13页,共15页 3.2 公网主机访问私网服务器 在某些场合,私网内部有一些服务器需要向公网提供服务,比如一些位于私网内的 Web服务器、FTP服务器等,NAT可以支持这样的应用。如图9所示,通过配置 NAT Server,即定义“公网IP地址+端口号”与“私网IP地址+端口号”间的映射 关系,使位于公网的主机能够通过该映射关系访问到位于私网的服务器。 Intranet 图9 公网主机访问私网服务器组网图 3.3 私网主机通过域名访问私网服务器 在某些场合,私网用户希望通过域名访问位于同一私网的内部服务器,而DNS服务 器却位于公网,此时可通过DNS Mapping方式来实现。如图10所示,通过配置 DNS Mapping映射表,即定义“域名—公网IP地址—公网端口—协议类型”间的 映射关系,将DNS响应报文中携带的公网IP地址替换成内部服务器的私网IP地址, 从而使私网用户可以通过域名来访问该服务器。 NAT技术白皮书 杭州华三通信技术有限公司 www.h3c.com.cn 第14页,共15页 192.168.1.1/24 192.168.1.2/24 NAT Host A Host B Intranet 192.168.1.100/24 www.test.com Web server Internet 210.33.5.1/24 www.test.com = 211.65.3.1 DNS server 图10 私网主机通过域名访问私网服务器组网图 3.4 NAT多实例 当分属不同MPLS VPN的主机使用相同的私网地址,并通过同一个出口设备访问 Internet时,NAT多实例可实现这些地址重叠的主机同时访问公网服务器。如图11 所示,尽管Host A和Host B具有相同的私网地址,但由于其分属不同的VPN,于是 NAT能够区分属于不同VPN的主机,允许二者同时访问公网服务器。 图11 NAT多实例组网图 4 参考文献 z RFC 1631:The IP Network Address Translator (NAT) NAT技术白皮书 杭州华三通信技术有限公司 www.h3c.com.cn 第15页,共15页 z RFC 2663 : IP Network Address Translator (NAT) Terminology and Considerations z RFC 3022:Traditional IP Network Address Translator (Traditional NAT) Copyright ©2008 杭州华三通信技术有限公司 版权所有,保留一切权利。 非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传播。 本文档中的信息可能变动,恕不另行通知。

下载文档,方便阅读与编辑

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 3 金币 [ 分享文档获得金币 ] 0 人已下载

下载文档

相关文档