网络安全——网络地址转换及其应用

网络地址转换及其应用

网络地址转换(NAT)技术是指将一组IP地址映射到另一组IP地址的一种技术。一般是将私有IP地址转换为公有IP地址来实现访问公网的目的。通过地址转换的方式,不仅可以有效缓解IP地址不足的问题,更为重要的是可提高内网的安全性。

1、NAT

NAT是将IP数据包头中的IP地址转换为另一个IP地址的过程。NAT技术涉及私有地址和公有地址两个基本概念。私有地址是指互联网地址分配机构指定的可以在不同的内部网中重复使用的IP地址,而在互联网中包含这些地址的IP报文将被路由器丢弃,即私有地址不能在互联网上进行路由。私有地址包括:一个A类地址10.0.0.0/8, 16个B类地址172.16.0.0/16~172.30.0.0/16, 256个C类地址192.168.0.0/16~192.168.255.0/16。公有地址是指除私有地址以外的其他IP地址,也称为公网IP地址,它们可以在互联网上进行路由。

1.1、NAT的基本概念

随着互联网的应用普及,其上使用的公网IP地址越来越紧缺,各单位分配到的IP地址资源越来越有限,IP地址资源已经枯竭。为了解决这个问题,出现了多种解决方案,而解决此问题的一个有效方法,就是在路由器上实行不同种类的网络地址转换(NAT)​。NAT可分为基本NAT和网络地址端口转换(NAPT)两大类。

1.1.1、基本NAT

基本NAT允许具有私有IP地址的内部网络访问互联网,而且用户不需要为其网络中的每一台机器取得注册的IP地址。NAT技术主要有如下两个用途:一是进行内网和外网之间的地址转换;二是提供内网的安全性。

在实际应用中,NAT主要用于实现私有网络访问公共网络的功能。由于私有地址可以在不同的网络内部重复使用,这在很大程度上可以缓解IP地址短缺的问题。然而,使用私有IP地址的主机不能直接与互联网通信,而必须将IP报文中的私有地址转换成公有地址,才能与互联网通信。通过NAT进行私有地址和公有地址的相互转换,就可以实现使用私有地址的主机与互联网的通信。使用NAT之后,一个单位只需使用少量的公有地址,而大量使用私有地址。通常,使用路由器来实现网络地址转换的功能。

NAT技术多用于内网的安全,构成基于NAT的混合型防火墙系统。目前,防火墙技术多在网络层(IP地址过滤)和应用层(代理服务器)实现。IP包过滤技术仅根据源地址和目的地址来进行判断,而IP地址很容易被窃取,因此攻击者很容易伪造和篡改地址。代理服务器技术对传输的每一个IP报文均要经过代理主机转发,使得应用层的处理任务较重。把NAT技术集成在防火墙系统内,对进出内网的IP包的源地址和目的地址进行转换,这样外网所接收到的数据包中的IP地址已经被网关改写过,外网中的用户看到的只是一个虚拟的主机,因此难以了解和掌握与之通信的内网主机的真实IP地址。另外,由于NAT可以利用路由器或软件实现,因此与其他安全措施相比,NAT技术实现较为简便,属于一种底层的功能,对网络运行的影响较小。

当然,使用NAT也带来了一些不足。例如,NAT会影响交换性能。因为转换每一个包头中的IP地址都要花费一定时间,即增加了交换延时。将NAT用于实现网络安全,其不足之处是内网主机数目不能太多,否则由于要维护一个过大的地址对应链表数据结构,会使转换效率下降。解决的方法是采用"八二原则"​,当网络负载过高时,引入"公平队列"排队算法。

1.1.2、网络地址端口转换

网络地址端口转换(NAPT)是NAT的一种变形,它允许多个内部IP地址映射到同一个公有IP地址上,也称为多对一地址转换或地址复用。NAPT同时映射IP地址和端口号,来自不同内部地址的数据包的源地址可以映射到同一个外部地址,但它们的端口号被转换为该地址的不同端口号,因而仍然能够共享该地址。外网进入的数据包根据对应关系进行转换。这样做的优点是隐藏了内部网络的IP地址配置,节省了资源。

1.2、NAT的配置方式

NAT是为解决IP地址紧缺问题而提出的,通过NAT可以提高IP地址的利用率。一般说来,NAT有静态NAT、动态NAT和NAT超载3种配置方式。

  • 静态NAT。在静态NAT中,内部网络中的每个主机都被映射为外部网络中的某个合法地址。如果内部网络有E-mail服务器或者FTP服务器等可为外部用户提供服务,这些服务器的IP地址就必须采用静态地址转换,以便外部用户访问这些服务器。
  • 动态NAT。动态NAT首先要定义合法地址池,然后采用动态分配的方法映射到内部网络。动态NAT是动态一对一的映射。
  • NAT超载。NAT超载是把内部地址映射到外部网络IP地址的不同端口上,从而实现多对一的映射。NAT超载是使用最多的一种地址转换方式,也称为端口地址转换(Port Address Translation, PAT)或者网络地址端口转换(Network Address Port Translation, NAPT)。其工作原理是:当多个用户同时使用一个IP地址时,路由器利用上层的TCP或UDP端口号等来唯一地标识某台计算机。

由于路由器通常部署在网络的边界,具有NAT功能的设备大多安装在网络的边缘上。当网络内的计算机要访问本网络内的服务器时,直接使用私有IP地址即可;当访问外部服务器时,数据包被转发给路由器,路由器执行NAT操作,把内部的私有地址转换成外部的、可路由的公有IP地址后,再转发出去。同时,当外部的计算机想访问这个网络内部的服务器时,它们先访问这个网络的公有IP地址;当数据流量被发送到路由器时,路由器查询内部定义的静态转换条目,把对公有IP地址的访问转换成对内部私有IP地址的访问。

1.3、应用NAT时的专业术语

应用NAT技术配置网络时,常用到如下几个专业术语。

  • 内部本地地址,即内部网络主机使用的IP地址。这些地址不需要向网络信息中心(NIC)或互联网服务提供商(ISP)申请,一般使用私有IP地址。
  • 内部全局地址,即内部网络使用的公有IP地址。这些地址是向NIC或ISP申请后取得的公有IP地址。内部全局地址是指当使用私有IP地址的主机要与互联网通信时,网络地址转换时使用的IP地址。
  • 外部本地地址,即外部网络主机使用的IP地址。这些地址是公有IP地址,但是可以在内部网络中进行路由,它们对内部网络是可见的。
  • 外部全局地址,即外部网络主机使用的IP地址。这些地址是公有IP地址,但是这些IP地址在内部网络中是不可见的。

2、静态NAT的配置

静态NAT将一个特定的内部本地地址静态地映射到一个内部全局地址。这意味着在静态NAT中,每一个被映射的内部本地地址,一定对应着一个固定且唯一的内部全局地址。这种方式不但可以让内网设备访问外网,而且可以让外网直接访问内网设备。常用的静态NAT配置命令如表所示。

例如,在图所示的网络拓扑结构中,内部网络中有WWW、FTP和Mail 3台服务器,它们使用的都是内部私有IP地址,希望通过静态地址转换配置,使互联网上的主机能访问这3台服务器。这3台服务器使用的内部全局地址分别为222.56.127.162、222.56.127.163和222.56.127.164,对应的内部私有IP地址分别为192.168.0.2、192.168.0.3和192.168.0.4。路由器Router的E0口的IP地址为192.168.0.1, S0口的IP地址为222.56.127.161。

在路由器Router中设置静态NAT,其配置命令及配置过程如下:

3、动态NAT的配置

动态NAT又称为动态地址翻译,它是将内部本地地址与内部全局地址做一对一的替换。内部全局地址以地址池的形式供选择,内部本地地址只要符合访问外网的条件,在做地址转换时就从地址池中动态地选取最小的还没有被分配的内部全局地址来替换,其转换过程如下:

  • 根据可用的内部全局地址范围建立地址池。
  • 利用访问控制列表(ACL),定义允许访问外网的内部地址范围。
  • 定义内部本地地址与内部全局地址池之间的转换关系。
  • 定义内网端口和外网端口。

常用的动态NAT配置命令如表所示。

例如,某单位只申请到一个合法IP地址,即路由器fa0/0接口的IP地址192.168.3.240,此时要使全单位的计算机都可以访问互联网。Web服务器地址为192.168.2.2,子网掩码为255.255.255.0,网关为192.168.2.220, DNS是211.98.72.8。外部的一台计算机IP地址为192.168.3.3,子网掩码为255.255.255.0,网关为192.168.3.1, DNS是211.98.72.8。动态NAT配置示例的网络拓扑结构如图所示,其组网配置步骤如下。

  • 第1步:对路由器R1进行基本配置。
  • 第2步:对路由器R1进行配置,指定对外接口。

  • 第3步:对路由器R1进行配置,指定对内接口。

  • 第4步:对路由器R1进行配置,创建地址池。

  • 第5步:对路由器R1进行配置,允许被NAT。

  • 第6步:对路由器R1进行配置,关联允许被NAT的列表和地址池。

    在实际的网络组建配置过程中,若单位不对外提供Web等服务,选择的网络接入方式可以是动态IP接入(即宽带拨号等方式,这种方式比使用固定IP接入的费用低)​,也就是路由器的对外接口使用DHCP动态获取公网IP地址,由于获得的这个IP地址不固定,故无法创建地址池。这时可以把第4步和第6步合成一步,即将上述配置的第4步省略,把第6步的配置内容更换如下:

若内网需对外提供Web服务,则可在路由器R1上配置端口映射,配置内容如下:

4、网络地址端口转换配置

网络地址端口转换(NPAT)或简称为端口地址转换(PAT)可用于地址伪装,它可以让多个内网设备使用一个IP地址同时访问外网。NPAT的转换配置步骤如下:

  • 利用ACL定义允许访问外网的内部IP地址范围。
  • 为外网IP地址定义一个地址池名称。
  • 将地址池绑定至第1步定义的内部IP地址范围,并指定为overload(超载,即PAT)方式。
  • 定义内网端口和外网端口。

常用的网络地址端口转换(NPAT)配置命令如表所示。

NPAT配置示例的网络拓扑结构如图5.3所示。内部网络使用内部私有IP地址192.168.1.0/24,希望通过网络地址端口转换配置,实现内网与外网的通信。内部网络中只有一个内部全局地址202.116.65.129,该地址配置在路由器的S0口上。在路由器上需要做如下配置:

配置NAT和NPAT之后,通常还要用到以下一些命令:

路由器作为实现不同网络之间互联的必备设备,在局域网远程互联和互联网接入中起着非常重要的作用。路由器设置不当将直接影响局域网与外界的通信,甚至还会造成网络安全隐患,故必须加以重视。

相关推荐
猫咪宝妖2 小时前
【信息安全工程师】第一天考前准备
网络·安全·web安全
吴声子夜歌2 小时前
网络安全——网络安全防护技术(二)
网络·web安全
深圳恒讯2 小时前
乌克兰服务器的网络延迟、机房现状与稳定性情况
运维·服务器·网络
dogstarhuang2 小时前
实战:用 API 网关统一接入 GPT-5.6,多模型路由怎么省下 80% 成本
网络·gpt·大模型·api网关·ai推理·模型选型·按量计费
星夜夏空992 小时前
网络编程(5)—— Reactor实现(v1)
服务器·javascript·网络
数据知道3 小时前
网络安全实战:信息收集实战——子域名、端口、指纹、社工信息聚合
网络·安全·web安全·网络安全·servlet
超级赛博搬砖工3 小时前
什么是原生IP与广播IP?如何区分?原生IP有什么优势?
网络
fiveym13 小时前
01 - iPXE + Clonezilla 网络装机原理解析
linux·运维·服务器·网络
虎头金猫13 小时前
如何在群晖NAS上通过Docker部署CloudSaver?群晖部署CloudSaver教程|聚合资源搜索并实现远程访问
运维·服务器·网络·python·docker·容器·pandas