NAT介绍

定义

网络地址转换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概述

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

Basic NAT

Basic NAT方式属于一对一的地址转换,在这种方式下只转换IP地址,而不处理
TCP/UDP协议的端口号,一个公网IP地址不能同时被多个私网用户使用。
图 3-1 Basic NAT 示意图
在这里插入图片描述
图3-1描述了Basic NAT的基本原理,实现过程如下:

  1. Router收到内网侧Host发送的访问公网侧Server的报文,其源IP地址为10.1.1.100。
  2. Router从地址池中选取一个空闲的公网IP地址,建立与内网侧报文源IP地址间的
    NAT转换表项(正反向),并依据查找正向NAT表项的结果将报文转换后向公网侧发送,其源IP地址是1.1.1.1,目的IP地址是2.2.2.2。
  3. 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地址访问外网。
在这里插入图片描述
图3-2描述了NAPT的基本原理,实现过程如下:

  1. Router收到内网侧Host发送的访问公网侧Server的报文。比如收到Host A报文的
    源地址是10.1.1.100,端口号1025。
  2. Router从地址池中选取一对空闲的“公网IP地址+端口号”,建立与内网侧报文
    “源IP地址+源端口号”间的NAPT转换表项(正反向),并依据查找正向NAPT
    表项的结果将报文转换后向公网侧发送。比如Host A的报文经Router转换后的报
    文源地址为1.1.1.1,端口号16384。
  3. 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。

在这里插入图片描述
如图3-3所示,Easy IP方式的处理过程如下:

  1. Router收到内网侧主机发送的访问公网侧服务器的报文。
  2. Router利用公网侧接口的“公网IP地址+端口号”,建立与内网侧报文“源IP地址
    +源端口号”间的Easy IP转换表项(正反向),并依据查找正向Easy IP表项的结果将报文转换后向公网侧发送。
  3. Router收到公网侧的回应报文后,根据其“目的IP地址+目的端口号”查找反向
    Easy IP表项,并依据查表结果将报文转换后向内网侧发送。
NAT Server

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

在这里插入图片描述
如图3-4所示,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 ALG

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 Mapping

在某些应用中,私网用户希望通过域名访问位于同一私网的内部服务器,而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

NAT不仅可以使内部网络的用户访问外部网络,还允许内部网络中分属于不同VPN(Virtual Private Network)的用户通过同一个出口访问外部网络,解决内部网络中IP地址重叠的VPN同时访问外网主机的问题;NAT还支持VPN关联的NAT Server,允许外部网络中的主机访问内网中分属不同VPN的服务器,同时支持内网多个VPN地址重叠的场景。

VPN 关联的源 NAT

VPN关联的源NAT是指内部网络中分属于不同VPN的用户通过NAT技术访问外部网
络,组网如图3-6所示。
在这里插入图片描述
VPN关联的源NAT的实现方式如下:

  1. VPN 1内的主机A和VPN 2内的主机B地址重叠,都为私网地址10.1.1.1,都要同时访问外部网络的一个服务器。
  2. Router在做源NAT时,将内部VPN作为一个NAT的匹配条件,将主机A发出报文的源IP转换为1.1.1.1,将主机B发出报文的源IP转换为1.1.2.1,同时在建立的NAT转
    换表中,记录用户的VPN信息。
  3. 当外部网络服务器回应内部网络主机A和B的报文经过Router时,根据已建立的NAT映射表,NAT模块将发往主机A报文的目的IP从1.1.1.1转换为10.1.1.1,然后再发往VPN 1的目的主机;将发往主机B报文的目的IP从1.1.2.1转换为10.1.1.1,然后再发往VPN 2的目的主机。
VPN 关联的 NAT Server

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的实现方式如下:

  1. 外部网络的主机访问VPN 1内的Server A,报文目的IP是1.1.10.1;访问VPN 2内 的Server B,报文目的IP是1.1.20.1。
  2. Router在做NAT server时,根据报文的目的IP及VPN信息进行判断,将目的IP是
    1.1.10.1的报文的目的IP转换为10.1.1.1,然后发往VPN 1的目的Server A;将目的IP是1.1.20.1的报文的目的IP转换为10.1.1.1,然后发往VPN 2的目的Server B;同时在新建的NAT映射表中,记录下关联的VPN信息。
  3. 当内部Server A和B回应外部网络主机的报文经过Router时,根据已建立的NAT映
    射表,NAT模块将从Server A发出的报文的源IP从10.1.1.1转换为1.1.10.1,再发往
    外部网络;将从Server B发出的报文的源IP从10.1.1.1转换为1.1.20.1,再发往外部
    网络。
3.6 两次 NAT

两次NAT即Twice NAT,指源IP和目的IP同时转换,该技术应用于内部网络主机地址与
外部网络上主机地址重叠的情况。

在这里插入图片描述
如图3-8所示,两次NAT转换的过程如下:

  1. 内网Host A要访问地址重叠的外部网络Host B,Host A向位于外部网络的DNS服务器发送访问外网Host B的DNS请求,DNS服务器应答Host B的IP地址为1.1.1.1,DNS应答报文在经过Router时,进行DNS ALG,Router将DNS应答报文中的重叠地址1.1.1.1转换为唯一的临时地址3.3.3.1,然后再转发给Host A。
  2. Host A访问Host B,目的IP为临时地址3.3.3.1,报文在经过Router时,Router检查到目的IP是临时地址,进行目的地址转换,将报文的目的IP转换为Host B的真实地址1.1.1.1,同时进行正常的NAT Outbound转换,将报文的源IP转换为源NAT地址池地址;Router将报文转发到Host B。
  3. Host B回应Host A,目的IP为Host A的NAT Outbound地址池地址,源IP为HostB的地址1.1.1.1,报文在经过Router时,Router检查到源IP是重叠地址,进行源地址转换,将报文的源IP转换为对应的临时地址3.3.3.1,同时进行正常的目的地址转换,将报文的目的IP从源NAT地址池地址转换为Host A的内网地址1.1.1.1;Router将报文转发到Host A。
  4. 在这里插入图片描述
    考虑到内网有多个VPN的场景,且内网多个VPN的地址一样的情况下,在Router上DNS ALG时,增加内网VPN信息作为重叠地址池到临时地址的映射关系匹配条件之
    一,如图3-9所示。内网多VPN情况下的两次NAT转换过程和两次NAT转换的过程类
    似,只是VPN A中的Host A转换为临时地址3.3.3.1,而VPN B中的Host B转换为临时
    地址4.4.4.1。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

举世无双勇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值