在公司内网一般使用私有IP地址,但私有IP不允许在Internet上使用,全部使用公网IP需要支付高额费用,于是很多公司采用NAT技术实现对Internet的访问。更多时候NAT功能是直接在路由器上实现的。
一.NAT概述
1.NAT的概念
当在专用网内部的一些主机本来已经分配到了本地IP地址(即仅在本专用网内使用的专用地址),但现在又想和因特网上的主机通信(并不需要加密)时,可使用NAT方法。
这种方法需要在专用网连接到因特网的路由器上安装NAT软件。装有NAT软件的路由器叫做NAT路由器,它至少有一个有效的外部全球IP地址。这样,所有使用本地地址的主机在和外界通信时,都要在NAT路由器上将其本地地址转换成全球IP地址,才能和因特网连接。
另外,这种通过使用少量的公有IP 地址代表较多的私有IP 地址的方式,将有助于减缓可用的IP地址空间的枯竭
① 私有 IP 地址是指内部网络或主机的IP 地址,公有IP 地址是指在因特网上全球唯一的IP 地址。RFC 1918 为私有网络预留出了三个IP 地址块,如下:
代码语言:javascript复制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的转换方式
NAT的实现方式有三种,即静态转换Static Nat、动态转换Dynamic Nat和端口多路复用OverLoad。
①静态转换是指将内部网络的私有IP地址转换为公有IP地址,IP地址对是一对一的,是一成不变的,某个私有IP地址只转换为某个公有IP地址。借助于静态转换,可以实现外部网络对内部网络中某些特定设备(如服务器)的访问。
②动态转换是指将内部网络的私有IP地址转换为公用IP地址时,IP地址是不确定的,是随机的,所有被授权访问上Internet的私有IP地址可随机转换为任何指定的合法IP地址。也就是说,只要指定哪些内部地址可以进行转换,以及用哪些合法地址作为外部地址时,就可以进行动态转换。动态转换可以使用多个合法外部地址集。当ISP提供的合法IP地址略少于网络内部的计算机数量时。可以采用动态转换的方式。
③端口多路复用(Port address Translation,PAT)是指改变外出数据包的源端口并进行端口转换,即端口地址转换(PAT,Port Address Translation).采用端口多路复用方式。内部网络的所有主机均可共享一个合法外部IP地址实现对Internet的访问,从而可以最大限度地节约IP地址资源。同时,又可隐藏网络内部的所有主机,有效避免来自internet的攻击。因此,目前网络中应用最多的就是端口多路复用方式。
ALG(Application Level Gateway),即应用程序级网关技术:传统的NAT技术只对IP层和传输层头部进行转换处理,但是一些应用层协议,在协议数据报文中包含了地址信息。为了使得这些应用也能透明地完成NAT转换,NAT使用一种称作ALG的技术,它能对这些应用程序在通信时所包含的地址信息也进行相应的NAT转换。例如:对于FTP协议的PORT/PASV命令、DNS协议的 “A” 和 “PTR” queries命令和部分ICMP消息类型等都需要相应的ALG来支持。
如果协议数据报文中不包含地址信息,则很容易利用传统的NAT技术来完成透明的地址转换功能,通常我们使用的如下应用就可以直接利用传统的NAT技术:HTTP、TELNET、FINGER、NTP、NFS、ARCHIE、RLOGIN、RSH、RCP等。
三.NAT的工作方式
借助于NAT,私有(保留)地址的"内部"网络通过路由器发送数据包时,私有地址被转换成合法的IP地址,一个局域网只需使用少量IP地址(甚至是1个)即可实现私有地址网络内所有计算机与Internet的通信需求。
NAT将自动修改IP报文的源IP地址和目的IP地址,Ip地址校验则在NAT处理过程中自动完成。有些应用程序将源IP地址嵌入到IP报文的数据部分中,所以还需要同时对报文的数据部分进行修改,以匹配IP头中已经修改过的源IP地址。否则,在报文数据部分嵌入IP地址的应用程序就不能正常工作。
1.静态NAT
2.动态转换
四、NAPT
1.NAPT地址转换
当公司用户超过200个,动态NAT技术就无法满足需求了,因为无论是静态NAT还是还是动态NAT,同一时刻一个公有IP地址只能与一个私有IP地址进行映射(绑定)。
为了进一步提高公有IP地址的利用率,使得一个公有IP地址可以与多个私有IP地址进行映射,我们可以使用NAPT技术。 NAPT的原理就是将TCP报文与UDP报文中的端口号作为映射参数纳入公有IP地址与私有IP地址之间的映射关系中,从而使得同一个公有IP地址在同一时刻可以与多个私有IP地址进行映射。
五、Easy IP
Easy IP 技术是NAPT的一种简化情况, Easy IP 无需建立公有IP地址资源池,因为 Easy IP 只会用到一个公有IP地址,该IP地址就是路由器与外网服务器连接的接口地址。
六、NAT Server
NAT Server是最常用的基于目的地址的NAT 。当内网部署了一台服务器,其真实IP是私网地址,但是希望公网用户可以通过一个公网地址来访问该服务器,这时可以配置NAT Server,使设备将公网用户访问该公网地址的报文自动转发给内网服务器。
NAT Server功能使得内部服务器可以供外部网络访问。外部网络的用户访问内部服务器时,NAT将请求报文的目的地址转换成内部服务器的私有地址。对内部服务器回应报文而言,NAT还会自动将回应报文的源地址(私网地址)转换成公网地址。
NAT Server可以通过静态IP(即global IP地址)和动态IP(即接口IP地址)两种方式实现地址转换。当通过global IP地址配置NAT Server后,再通过基于接口地址的方式配置NAT Server,当被借用的接口的地址与global IP地址相同时,二者冲突,基于接口方式的NAT Server不生效。
七、NAT的特性
网络地址与端口号转换其特点是:
(1)在路由器转发IP数据报时NAPT对IP地址和端口号都进行转换转换过程如下对于出专用网的数据把专用网内不同的源IP地址转换为同样的全球IP地址把源主机端口号转换为不同的新的端口号;对于入专用网的应答NAPT根据不同的目的端口号从NAPT转换表中找到正确的目的主机。
(2)NAPT工作在网络层和传输层。NAT优点:(1)通过NAT专用网内部主机可使用专用地址与因特网上的主机通信。(2)通过NAT一个全球合法IP地址可被多台专用网内部主机分享使用节省全球IP地址资源。NAT缺点:通信必须由专用网内的主机发起专用网内部的主机不能充当服务器。
1. NAT的优点
- ①节省公有合法IP地址
- ②处理地址交叉
- ③增强灵活性
- ④安全性
2.NAT的缺点
- ①延迟增大
- ②配置和维护的复杂性
- ③不支持某些应用
八、NAT故障处理
在实际工作中经常会碰到NAT故障,这些问题基本上可以归于两类,分别是配置错误和没有正确理解NAT的工作方式。 出现这些问题的征兆基本相同,即内部局域网的IP地址被配置了NAT,而内部的局域网络却没有像预期结果那样能够访问外部网络。
如果理解了实施NAT要到达的目标,然后通过查看配置,检查下面的错误是否是问题的原因,一般可以将问题解决。
1.是否设置了ACL,阻塞了进行过NAT或者没有进行过NAT的流量,配置时要牢记与ACL相关的NAT操作。如果针对没有进行ACL的流量配置了ACL,而到达的流量实际上是进行了NAT的流量,这就导致流量被丢弃。
2.定义需要进行NAT的ACL时,漏掉了需要进行地址转换的网络,用来定义需要进行NAT操作的网络地址的ACL,应该包括所有需要进行NAT的网络。如果列表中缺少一个或很多个地址,都将导致无法对来自这些地址的流量进行NAT。
3.在NAT语句中漏掉了overload
关键字。为了建立PAT
,在NAT配置命令的最后,必须是用overload关键字。漏掉这个关键字,将会导致无法进行PAT,最终将会导致只有数目有限的主机可以访问公用网络或者互联网,而不是期望中的所有主机。
4.不对称路由导致NAT失败。当分组进入一个使用 ip nat inside
命令进行配置的接口时,以及离开使用ip nat outside
命令配置的接口时,就会发生NAT。在有很多接口的路由器上,必须确保需要进行NAT流量进入路由器的所有接口都是用 ip nat inside
命令进行配置的,而这个流量离开的所有接口都是用ip nat outside
命令配置的。否则,流量在经过没有使用正确的NAT命令配置的接口时,无法进行NAT。
5.NAT地址池和静态NAT表项中有重叠地址。确保NAT地址池中的 ip 地址也不能用于静态NAT,这是很重要的,否则将会导致间断性的NAT失败。如果将广播地址配置到NAT地址池中,也会出现间断性的NAT失败。
6.inside
和outside
接口配置错误,也会造成NAT失败。
比较有用的排错命令是 show ip nat statistics
,可以通过此命令查看NAT的各种信息。如果想要跟踪NAT的操作,可以使用debug ip nat
命令显示出每个转换的数据包。
技
术
是
用
来
学
的
,
不
是
用
来
收
藏
的
!