网工涨薪必备_NAT网络地址转化技术

前言

之前有小伙伴询问过有没有关于NAT方面的技术文章,思来想去,今天还是给大家安利上吧!

1.为什么需要NAT?

随着网络用户数量不断增长人们,对IPv4地址的需求也不断增加,导致可用IPv4地址空间逐渐耗尽。于是分配可重复使用的各类私网地址段给企业内部或家庭使用。但是,在互联网上私网地址是不能在网络上进行通信的, 于是在连接外网与内网的网关设备上部署NAT,实现内外网地址转换.

如下图所示:

2.什么是NAT?

NAT(Network Address Translation,网络地址转换)是一种网络地址转换技术, NAT使用少量公网IP地址代表比较多的私有IP地址这种方式方式,减缓可用的IP地址空间的枯竭,它不仅能解决IP地址不足的问题,而且还能够有效地避免来自网络外部的攻击,隐藏并保护网络内部的计算机。

3.NAT是如何解决地址不足的问题的?

内外网地址映射关系一对多,多对多的时候

4.什么是动态转换、端口多路复用?

NAT技术常见的转换方式:静态NAT:每个私有地址都有与之对应并且固定的共有地址,他们的关系是一对一的,如下图所示,在网关NAT映射表中,每个私网地址对应了一个公有地址;

动态NAT转换:将多个公有地址组成一个地址池,他们相当于多对多的关系,当内部私网地址需要访问公网时,临时分配一个公网地址池中未使用的地址,并将该地址标记为“In Use”,当主句不再使用时会进行回收,重新标记为“Not Use”。动态NAT地址池中的地址用尽以后,只能等待被占用的公用IP被释放后,其他主机才能使用它来访问公网。如图所示:

端口多路复用(Network Address Port Translation NAPT):允许多个内部地址映射到同一个公有地址的不同端口,实现公有地址与私有地址一对多的关系,不同私有地址(不同的私有地址,不同的源端口)映射到同一个公有地址(相同的公有地址,不同的源端口),如下图所示:

Easy IP:允许将内部多个内部地址映射到网关出接口地址上的不同端口,原理和NAPT相同,区别在于Easy IP没有地址池概念,使用接口作为NAT转换的共有地址。如下图所示:

NAT服务器:指定公有地址、端口与私有地址、端口实现一一对应关系,将内网服务器映射到公网,如图所示:

5.这些不同的NAT技术分别使用在什么场景下?

动态地址转换:内网主机使用内网IP地址访问外网主机,企业内的主机使用私网IP地址可以实现内网主机间的通信,但不能和外网通信。

设备通过配置动态NAT功能可以把需要访问外网的私网IP地址替换为公网IP地址,并建立映射关系,待返回报文到达设备时再“反向”把公网IP地址替换回私网IP地址,然后转发给主机,实现内网用户和外网的通信。

动态NAT在转换地址时,做不到用固定的公网IP和端口号替换同一个私网IP和端口号。而一些重要主机需要对外通信时使用固定的公网IP地址和端口号,此时动态NAT无法满足要求。

静态地址转换:内网的重要主机的IP地址和端口号映射成固定外网IP地址和端口号与外网主机通信,NAT在转换地址时,做不到用固定的公网IP和端口号替换同一个私网IP和端口号。

而一些重要主机需要对外通信时使用固定的公网IP地址和端口号,此时动态NAT无法满足要求。静态NAT可以建立固定的一对一的公网IP地址和私网IP地址的映射,特定的私网IP地址只会被特定的公网IP地址替换。这样,就保证了重要主机使用固定的公网IP地址访问外网

NAT服务器:外网用户访问内网服务器,NAT具有“屏蔽”内部主机的作用,但有时内网需要向外网提供服务,如提供WWW服务或FTP服务。

这种情况下需要内网的服务器不被“屏蔽”,外网用户可以随时访问内网。NAT服务器就 刚好解决这个问题,当外网访问内网时,它通过事先配置好的“公网IP地址+端口号”与“私网IP地址+端口号”间的映射关系,将服务器的“公网IP地址+端口号”根据映射关系替换成对应的“私网IP地址+端口号”。

附华为产品文档学习资料如下:

NAT简介

定义网络地址转换NAT(Network Address Translation)是将IP数据报文头中的IP地址转换为另一个IP地址的过程。

目的随着Internet的发展和网络应用的增多,IPv4地址枯竭已成为制约网络发展的瓶颈。尽管IPv6可以从根本上解决IPv4地址空间不足问题,但目前众多网络设备和网络应用大多是基于IPv4的,因此在IPv6广泛应用之前,一些过渡技术(如CIDR、私网地址等)的使用是解决这个问题最主要的技术手段。

NAT主要用于实现内部网络(简称内网,使用私有IP地址)访问外部网络(简称外网,使用公有IP地址)的功能。当内网的主机要访问外网时,通过NAT技术可以将其私网地址转换为公网地址,可以实现多个私网用户共用一个公网地址来访问外部网络,这样既可保证网络互通,又节省了公网地址。私网地址的类型和分类请参见IPv4地址。

受益作为减缓IP地址枯竭的一种过渡方案,NAT通过地址重用的方法来满足IP地址的需要,可以在一定程度上缓解IP地址空间枯竭的压力。NAT除了解决IP地址短缺的问题,还带来了两个好处:

有效避免来自外网的攻击,可以很大程度上提高网络安全性。控制内网主机访问外网,同时也可以控制外网主机访问内网,解决了内网和外网不能互通的问题

NAT概述

NAT是将IP数据报文头中的IP地址转换为另一个IP地址的过程,主要用于实现内部网络(私有IP地址)访问外部网络(公有IP地址)的功能。Basic NAT是实现一对一的IP地址转换,而NAPT可以实现多个私有IP地址映射到同一个公有IP地址上。

Basic NAT

Basic NAT方式属于一对一的地址转换,在这种方式下只转换IP地址,而不处理TCP/UDP协议的端口号,一个公网IP地址不能同时被多个私网用户使用。

图1 Basic NAT示意图

图1描述了Basic NAT的基本原理,实现过程如下:Router收到内网侧Host发送的访问公网侧Server的报文,其源IP地址为10.1.1.100。Router从地址池中选取一个空闲的公网IP地址,建立与内网侧报文源IP地址间的NAT转换表项(正反向),并依据查找正向NAT表项的结果将报文转换后向公网侧发送,其源IP地址是1.1.1.1,目的IP地址是2.2.2.2。

Router收到公网侧的回应报文后,根据其目的IP地址查找反向NAT表项,并依据查表结果将报文转换后向私网侧发送,其源IP地址是2.2.2.2,目的IP地址是10.1.1.100。

由于Basic NAT这种一对一的转换方式并未实现公网地址的复用,不能有效解决IP地址短缺的问题,因此在实际应用中并不常用。

NAT设备拥有的公有IP地址数目要远少于内部网络的主机数目,这是因为所有内部主机并不会同时访问外部网络。公有IP地址数目的确定,应根据网络高峰期可能访问外部网络的内部主机数目的统计值来确定。

NAPT

除了一对一的NAT转换方式外,网络地址端口转换NAPT(Network Address Port Translation)可以实现并发的地址转换。它允许多个内部地址映射到同一个公有地址上,因此也可以称为“多对一地址转换”或地址复用。NAPT方式属于多对一的地址转换,它通过使用“IP地址+端口号”的形式进行转换,使多个私网用户可共用一个公网IP地址访问外网。

图2 NAPT示意图

图2描述了NAPT的基本原理,实现过程如下:

Router收到内网侧Host发送的访问公网侧Server的报文。比如收到Host A报文的源地址是10.1.1.100,端口号1025。Router从地址池中选取一对空闲的“公网IP地址+端口号”,建立与内网侧报文“源IP地址+源端口号”间的NAPT转换表项(正反向),并依据查找正向NAPT表项的结果将报文转换后向公网侧发送。比如Host A的报文经Router转换后的报文源地址为1.1.1.1,端口号16384。Router收到公网侧的回应报文后,根据其“目的IP地址+目的端口号”查找反向NAPT表项,并依据查表结果将报文转换后向私网侧发送。比如Server回应Host A的报文经Router转换后,目的地址为10.1.1.100,端口号1025

NAT实现

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。

Easy IP示意图

如图1所示,Easy IP方式的处理过程如下:Router收到内网侧主机发送的访问公网侧服务器的报文。Router利用公网侧接口的“公网IP地址+端口号”,建立与内网侧报文“源IP地址+源端口号”间的Easy IP转换表项(正反向),并依据查找正向Easy IP表项的结果将报文转换后向公网侧发送。Router收到公网侧的回应报文后,根据其“目的IP地址+目的端口号”查找反向Easy IP表项,并依据查表结果将报文转换后向内网侧发送。

NAT Server

NAT具有“屏蔽”内部主机的作用,但有时内网需要向外网提供服务,比如提供WWW服务或者FTP服务。这种情况下需要内网的服务器不被“屏蔽”,外网用户可以随时访问内网服务器。NAT Server可以很好地解决这个问题,当外网用户访问内网服务器时,它通过事先配置好的“公网IP地址+端口号”与“私网IP地址+端口号”间的映射关系,将服务器的“公网IP地址+端口号”根据映射关系替换成对应的“私网IP地址+端口号”。

图2 NAT Server实现原理图

如图2所示,NAT Server的地址转换过程如下:

1.在Router上配置NAT Server的转换表项。

2.Router收到公网用户发起的访问请求,设备根据该请求的“目的IP+端口号”查找NAT Server转换表项,找出对应的“私网IP+端口号”,然后用查找结果替换报文的“目的IP+端口号”。

3.Router收到内网服务器的回应报文后,根据该回应报文的“源IP地址+源端口号”查找NAT Server转换表项,找出对应的“公网IP+端口号”,然后用查找结果替换报文的“源IP地址+源端口号”。

静态NAT/NAPT

静态NAT是指在进行NAT转换时,内部网络主机的IP同公网IP是一对一静态绑定的,静态NAT中的公网IP只会给唯一且固定的内网主机转换使用。

静态NAPT是指“内部网络主机的IP+协议号+端口号”同“公网IP+协议号+端口号”是一对一静态绑定的,静态NAPT中的公网IP可以为多个私网IP使用。

静态NAT/NAPT还支持将指定私网范围内的主机IP转换为指定的公网范围内的主机IP。当内部主机访问外部网络时,如果该主机地址在指定的内部主机地址范围内,会被转换为对应的公网地址;同样,当公网主机对内部主机进行访问时,如果该公网主机IP经过NAT转换后对应的私网IP地址在指定的内部主机地址范围内,也是可以直接访问到内部主机

NAT应用场景

私网主机访问公网在许多小区、学校和企业的内网规划中,由于公网地址资源有限,内网用户实际使用的都是私网地址,在这种情况下,可以使用NAT技术来实现私网用户对公网的访问。如图1所示,通过在Router上配置Easy IP,可以实现私网主机访问公网服务器。

图1 私网主机访问公网服务器示意图

公网主机访问私网服务器

在某些场合,私网内部有一些服务器需要向公网提供服务,比如一些位于私网内的Web服务器、FTP服务器等,NAT可以支持这样的应用。如图1所示,通过配置NAT Server,即定义“公网IP地址+端口号”与“私网IP地址+端口号”间的映射关系,使位于公网的主机能够通过该映射关系访问到位于私网的服务器。

图1 公网主机访问私网服务器示意图

私网主机通过域名访问私网服务器

在某些场合,私网用户希望通过域名访问位于同一私网的内部服务器,而DNS服务器却位于公网,此时可通过DNS Mapping方式来实现。如图1所示,通过配置DNS Mapping映射表,即定义“域名—公网IP地址—公网端口—协议类型”间的映射关系,将DNS响应报文中携带的公网IP地址替换成内部服务器的私网IP地址,从而使私网用户可以通过域名来访问该服务器。

图1 私网主机通过域名访问私网服务器示意图