赞
踩
网络地址转换NAT(Network Address Translation)是将IP数据报文头中的IP地址转换
为另一个IP地址的过程。
随着Internet的发展和网络应用的增多,IPv4地址枯竭已成为制约网络发展的瓶颈。尽
管IPv6可以从根本上解决IPv4地址空间不足问题,但目前众多网络设备和网络应用大
多是基于IPv4的,因此在IPv6广泛应用之前,一些过渡技术(如CIDR、私网地址等)
的使用是解决这个问题最主要的技术手段。NAT主要用于实现内部网络(简称内网,
使用私有IP地址)访问外部网络(简称外网,使用公有IP地址)的功能。当内网的主机
要访问外网时,通过NAT技术可以将其私网地址转换为公网地址,可以实现多个私网
用户共用一个公网地址来访问外部网络,这样既可保证网络互通,又节省了公网地
址。
作为减缓IP地址枯竭的一种过渡方案,NAT通过地址重用的方法来满足IP地址的需要,
可以在一定程度上缓解IP地址空间枯竭的压力。NAT除了解决IP地址短缺的问题,还带
来了两个好处:
● 有效避免来自外网的攻击,可以很大程度上提高网络安全性。
● 控制内网主机访问外网,同时也可以控制外网主机访问内网,解决了内网和外网
不能互通的问题
NAT是将IP数据报文头中的IP地址转换为另一个IP地址的过程,主要用于实现内部网络
(私有IP地址)访问外部网络(公有IP地址)的功能。Basic NAT是实现一对一的IP地
址转换,而NAPT可以实现多个私有IP地址映射到同一个公有IP地址上。
Basic NAT方式属于一对一的地址转换,在这种方式下只转换IP地址,而不处理
TCP/UDP协议的端口号,一个公网IP地址不能同时被多个私网用户使用。
图 3-1 Basic NAT 示意图
图3-1描述了Basic NAT的基本原理,实现过程如下:
由于Basic NAT这种一对一的转换方式并未实现公网地址的复用,不能有效解决IP地址短缺的问
题,因此在实际应用中并不常用。
NAT设备拥有的公有IP地址数目要远少于内部网络的主机数目,这是因为所有内部主机并不会同
时访问外部网络。公有IP地址数目的确定,应根据网络高峰期可能访问外部网络的内部主机数目
的统计值来确定。
除了一对一的NAT转换方式外,网络地址端口转换NAPT(Network Address Port
Translation)可以实现并发的地址转换。它允许多个内部地址映射到同一个公有地址
上,因此也可以称为“多对一地址转换”或地址复用。
NAPT方式属于多对一的地址转换,它通过使用“IP地址+端口号”的形式进行转换,
使多个私网用户可共用一个公网IP地址访问外网。
图3-2描述了NAPT的基本原理,实现过程如下:
Basic NAT和NAPT是私网IP地址通过NAT设备转换成公网IP地址的过程,分别实现一
对一和多对一的地址转换功能。在现网环境下,NAT功能的实现还得依据Basic NAT和
NAPT的原理,NAT实现主要包括:Easy IP、地址池NAT、NAT Server和静态NAT/
NAPT。
地址池NAT和Easy IP类似,此处只介绍Easy IP,关于地址池NAT相关内容请参见NAT概述中的NAPT。
Easy IP
Easy IP方式可以利用访问控制列表来控制哪些内部地址可以进行地址转换。
Easy IP方式特别适合小型局域网访问Internet的情况。这里的小型局域网主要指中小型
网吧、小型办公室等环境,一般具有以下特点:内部主机较少、出接口通过拨号方式
获得临时公网IP地址以供内部主机访问Internet。对于这种情况,可以使用Easy IP方式
使局域网用户都通过这个IP地址接入Internet。
如图3-3所示,Easy IP方式的处理过程如下:
NAT具有“屏蔽”内部主机的作用,但有时内网需要向外网提供服务,比如提供
WWW服务或者FTP服务。这种情况下需要内网的服务器不被“屏蔽”,外网用户可以
随时访问内网服务器。
NAT Server可以很好地解决这个问题,当外网用户访问内网服务器时,它通过事先配
置好的“公网IP地址+端口号”与“私网IP地址+端口号”间的映射关系,将服务器的
“公网IP地址+端口号”根据映射关系替换成对应的“私网IP地址+端口号”。
如图3-4所示,NAT Server的地址转换过程如下:
静态NAT是指在进行NAT转换时,内部网络主机的IP同公网IP是一对一静态绑定的,静
态NAT中的公网IP只会给唯一且固定的内网主机转换使用。
静态NAPT是指“内部网络主机的IP+协议号+端口号”同“公网IP+协议号+端口号”是
一对一静态绑定的,静态NAPT中的公网IP可以为多个私网IP使用。
静态NAT/NAPT还支持将指定私网范围内的主机IP转换为指定的公网范围内的主机IP。
当内部主机访问外部网络时,如果该主机地址在指定的内部主机地址范围内,会被转
换为对应的公网地址;同样,当公网主机对内部主机进行访问时,如果该公网主机IP
经过NAT转换后对应的私网IP地址在指定的内部主机地址范围内,也是可以直接访问
到内部主机。
NAT和NAPT只能对IP报文的头部地址TCP/UDP头部的端口信息进行转换。对于一些特殊协议,例如FTP等,它们报文的数据部分可能包含IP地址信息或者端口信息,这些内容不能被NAT有效的转换。解决这些特殊协议的NAT转换问题的方法就是在NAT实现中使用应用层网关ALG(Application Level Gateway)功能。ALG是对特定的应用层协议进行转换,在对这些特定的应用层协议进行NAT转换过程中,通过NAT的状态信息来改变封装在IP报文数据部分中的特定数据,最终使应用层协议可以跨越不同范围
运行。例如,一个使用内部IP地址的FTP服务器可能在和外部网络主机建立会话的过程中需要
将自己的IP地址发送给对方。而这个地址信息是放到IP报文的数据部分,NAT无法对它进行转换。当外部网络主机接收了这个私有地址并使用它,这时FTP服务器将表现为不可达。目前支持ALG功能的协议包括:DNS、FTP、SIP、PPTP和RTSP。不同协议支持的NAT转换字段如表3-1所示。
在某些应用中,私网用户希望通过域名访问位于同一私网的内部服务器,而DNS服务
器却位于公网。由于通常DNS响应报文中携带的是内部服务器的公网IP地址,因此若
NAT设备未将DNS Server解析的公网IP替换成内部服务器对应的私网IP,私网用户将
无法通过域名访问到内部服务器。
这个问题可以使用DNS Mapping方式来解决,通过配置“域名—公网IP地址—公网端
口—协议类型”映射表,建立内部服务器的域名与其公网信息间的对应关系。
如图3-5所示,私网用户Host希望通过域名方式访问Web Server,Router作为NAT服务器。当Router设备收到DNS响应报文后,先根据其中携带的域名查找DNS Mapping映射表,再根据“公网IP地址—公网端口—协议类型”查找Web Server,然后将DNS响应报文中的公网IP地址替换成Web Server的私网IP地址。这样,Host收到的DNS响应报文中就携带了Web Server的私网IP地址,从而可以通过域名来访问Web Server。
NAT不仅可以使内部网络的用户访问外部网络,还允许内部网络中分属于不同VPN(Virtual Private Network)的用户通过同一个出口访问外部网络,解决内部网络中IP地址重叠的VPN同时访问外网主机的问题;NAT还支持VPN关联的NAT Server,允许外部网络中的主机访问内网中分属不同VPN的服务器,同时支持内网多个VPN地址重叠的场景。
VPN关联的源NAT是指内部网络中分属于不同VPN的用户通过NAT技术访问外部网
络,组网如图3-6所示。
VPN关联的源NAT的实现方式如下:
VPN关联的NAT Server是指外网主机通过NAT技术访问内网中分属不同VPN的服务
器。
组网如图3-7所示,VPN 1内Server A和VPN 2内的Server B的地址都是10.1.1.1;使用
1.1.10.1做为VPN 1内的Server A的外部地址,使用1.1.20.1做为VPN 2内的Server B的
外部地址。这样,外部网络的用户使用1.1.10.1就可以访问到VPN 1提供的服务,使用
1.1.20.1就可以访问VPN 2提供的服务。
VPN关联的NAT Server的实现方式如下:
两次NAT即Twice NAT,指源IP和目的IP同时转换,该技术应用于内部网络主机地址与
外部网络上主机地址重叠的情况。
如图3-8所示,两次NAT转换的过程如下:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。