全国统一咨询热线:022-85105633

NAT原理介绍之NAT分类有哪些?

发布作者:新盟教育 发布日期:2021-08-03 浏览人数:166人

NAT的技术你都了解哪些,全面吗,看下文介绍

一、动态NAT

私网ip地址和公网ip地址的转换是不固定的,即把需要访问公网的私网ip动态的和公网ip 地址建立动态的NAT映射关系,并将报文中的私网ip地址进行对应的临时替换,待返回的报 文到达设备时再反向(inbound)根据映射表把公网ip地址临时替换为对应的私网ip地址, 发送给主机,实现内网用户对外网的通信。


二、动态NAT的实现方式有BasicNAT和NAPT两种


Basic NAT:

Basic NAT方式属于一对一的地址转换,该转换是动态的。


当内网向公网发起请求时,请求报文中的私网ip地址会通过事先配置的公网ip地址池动态的 建立私网ip地址和公网ip地址的NAT映射表项,并利用所映射的公网ip地址将报文中的源地 址进行替换(只替换源地址)。然后发送给外网的目的主机。


当外网主机收到请求报文后进行响应时,响应报文到达NAT设备后,将根据发起请求报文时建立的NAT地址转换表项中的私网地址和公网地址的映射关系反向(inbound)将报文中的目的ip地址(请求报文映射关系中内部主机的私网ip地址映射后的公网ip地址)替换为 内部主机的私网ip地址,发送给内部主机。


NAPT:


使用场景

由于Basic NAT这种一对一的动态转换无法实现对公网ip地址的复用,浪费公网ip地址, 因此使用NAPT实现并发的地址转发,NAPT允许多个内部地址映射到同一个公网ip地址 上,也可以称为多对一地址转换以此实现地址复用。


NAPT使用IP地址+端口号的形式进行转换,也是通过公网地址池的方式(需要首先在NAT 设备上创建号公网地址池)。


Easy IP:

Easy IP的工作原理和NAPT类似,区别在于EasyIP不需要创建公网ip地址池,适用于小型网络。

 

三、静态NAT


使用场景:

动态NAT在进行地址转换时做不到在不同时间固定的使用同一个公网IP地址、端口号替换 同一个私网IP地址、端口号,存在不确定性,因为动态NAT的实现是从地址池和端口列表中 随机选取空闲的地址和端口号用于对私网IP地址做映射,但是无法让一些内网重要的主机固定的使用固定的公网ip地址访问外网。


静态NT可以建立固定的一对一的公网IP地址和私网IP地址的映射,特定的私网IP地址会被特定的公网IP地址替换,保证了内部主机可以使用固定的公网IP地址访问外网。


但是在实际的应用中,这种场景并不多见,且浪费IP地址,内部主机也不需要单独使用一个 固定的公网ip地址访问外网,通常用于内部服务器访问外网,但是基本没有这种内网服务器 主动访问外网的需求,通常内部服务器是被动接受连接,因此内部服务器访问外网通常使用“NAT Server”。


NAT Server:静态NAT和动态NAT都是由内网向外网发起的访问,通过NAT既可以实现多个内网用于共用一个或多个公网IP地址实现对外网的访问,同时又因为私网IP地址都经过了转换,因此具有隐藏和屏蔽内部主机IP地址的作用,如果遭受到外网攻击,通常出口都是防火墙之类的设备,可以抵御一定的外网攻击,保护内网设备安全。


有时内网需要为外网主机提供服务,比如架设于内网的各种服务器(WEB FTP 邮件等)需 要向外网用户提供服务,这种情况下需要内网服务器不能被屏蔽,外网用户可能随时需要访问内网服务器,这是一种由外网向内网发起访问的NAT转换情形。


NAT Server 可以很好的解决这个问题,当外网用户访问内网服务器时,它通过事先配置好的服务器的【公网ip地址:端口号】与【私网IP地址:端口号】的固定的映射关系,将【公网ip地址:端口号】替换为【私网ip地址:端口号】,以此实现外网用户对内网服务器的访问。从私网IP地址与公网IP地址的映射关系看,这也是一种静态映射的对应关系。

 

四、DNS Mapping

 

应用场景:

在某些应用中,私网用户希望通过域名访问和自身位于同一私网的内部服务器,而用于提供域名解析的DNS服务器位于公网,私网用于需要先向处于公网的DNS服务器发起域名解析请求进行域名解析,解析出对应的ip地址,而由于内部服务器做了NATserver,因此, DNS解析相应的为内部服务器映射后的公网ip地址,如果该公网地址没有被替换为内部服务器的私网ip地址,将导致私网用户无法通过域名访问内部服务器,因为此时私网用户访问的 是公网ip地址,而实际内部服务器位于私网,ip地址为私网ip地址。


内部服务器的私网ip地址为192.168.1.10,在GW设备上使能了nat server功能,将 内部服务器的私网ip地址192.168.1.10映射为了100.1.1.1,当私网用户192.168.2.10通过 域名去访问内部服务器时,首先需要向处于公网的DNS服务器114.114.114.114发起域名解 析请求,处于公网的DNS服务器114.114.114.114对次请求做出解析响应,解析为公网ip地 址100.1.1.1发送给内部用户主机192.168.2.10,内部主机拿到该公网地址100.1.1.1后,访 问内部服务器,这将导致无法访问的情况。


针对这一问题,可以使用DNS mapping解决,产生这一问题的根本原因是处于公网的 DNS服务器对域名解析请求的响应为公网ip地址,该公网ip地址没有被替换为内部服务器的 私网ip地址,由此导致了无法访问的情况。


DNS mapping在替换响应域名解析的请求报文的数据部分信息时,先要通过查找事先配 置的【域名-公网地址-公网端口-协议类型映射表】,找到对应域名所使用的公网ip地址后 使用NAT地址映射表对响应域名解析报文的中的目的IP地址及其数据部分中携带的公网ip地 址进行替换,替换为内部服务器的私网ip地址,至此,内部用户主机收到的DNS响应报文中携带的解析后的ip地址就为内部服务器的私网IP地址,内部用户主机就可以使用该地址为目的地址完成对内部服务器的访问。


当内部用户主机PC通过域名访问内部服务器Ser时,向处于公网的DNS服务器114.114.114.114发送域名解析请求报文,DNS服务器114.114.114.114响应DNS请求,目 的地址为100.1.1.1,报文中的data部分携带解析后的公网ip地址为100.1.1.1,发送给GW(nat server),GW收到DNS响应报文后,通过其中携带的域名查询事先配置的【域 名-公网地址-公网端口-协议类型】的映表,找到对应的公网ip地址,根据公网ip地址和 私网ip地址的静态映射表,找到对应的私网ip地址,将DNS的响应报文中的目的ip地址和 data部分中携带的公网ip地址替换为内部服务器的私网ip地址,发送给内部用户主机,内部 用户主机收到该报文后,完成 通过域名对内部服务器的访问。


注:DNS Mapping进可应用于静态NAT和NAT Server中,不能应用于动态NAT中,这也 是它与ALG技术的一种明显区别。

 

五、两次NAT



两次NAT是指源IP地址和目的IP地址同时转换,主要用于内部网络主机和外部网络主机地址重叠的情况下,通过一个中间的多个公网ip地址分别对双向的源和目的地址做转换,可用于静态NAT,动态NATNATServer这三种NAT特性中。

1.如图,内网主机要通过域名访问地址重叠的外网服务器,PC1会向DNS服务器发送一个DNS解析请求报文,DNS的响应报文的数据部分携带的是解析后的IP地址4.4.4.4,该报文 到达GW后,通过DNSALG,将数据部分的IP地址4.4.4.4转换为唯一的临时地址5.5.5.5, 然后发送给PC1。

2.PC1收到以后,以自身接口IP地址4.4.4.4为源,目的IP地址为5.5.5.5去访问外网服务器,报文到达GW后,执行outbound源地址转换,将4.4.4.4转换为5.5.5.6,此时GW检查到转换后的源地址5.5.5.6和目的地址5.5.5.5重叠,于是再次进行目的地址转换,将报文的目的地址转换为外网服务器的真实地址4.4.4.4,然后再将报文发送给外网服务器。

3.外网服务器收到后,对PC1的请求报文做出响应,以自身IP地址4.4.4.4为源,目的IP地址5.5.5.6为目的,将数据发往GW,GW收到该响应报文后,执行inbound的目的地址转 换,将5.5.5.6转换为4.4.4.4,此时GW检查到进行目的地址转换后的地址和源地址重叠,于是进行源地址的转换,将报文的源地址4.4.4.4转换为5.5.5.5,然后将报文发送给PC1。