前言

网络地址转换(NAT)技术实现了私有网络中的主机与公共网络中的资源之间的通信,还提供了一定的安全功能,并且也会在网络迁移时成为管理员的首选方案

NAT原理

NAT简介:

  • 改变IP报文中的源或目的地址的一种处理方式;
  • 让局域网用户访问外网资源,也可以设定内部的应用对外提供服务;
  • 隐藏内部局域网的IP主机,起到安全保护的作用;
  • NAT功能通常被集成到路由器、防火墙、ISDN路由器或者单独的NAT设备中。

IANA为私有网络预留的IP地址空间:
10.0.0.0/8的地址范围是10.0.0.0~10.255.255.255
172.16.0.0/12的地址范围是172.16.0.0~172.31.255.255
192.168.0.0/16的地址范围是192.168.0.0~192.168.255.255

NAT的优点:

  • 节省合法的注册公网地址;
  • 在地址重叠时提供解决方案;
  • 提高连接到Internet的灵活性;
  • 在网络发生变化时避免重新编址。

NAT的缺点:

  • 地址转换将增加交换延迟;
  • 导致无法进行端到端IP追踪;
  • 导致有些应用程序无法正常运行。

为上网主机提供NAT转换:
通过在网关设备上部署NAT技术,为整个使用私有IP地址空间的私有网络提供一个或多个公网可路由的IP地址,NAT在执行网络地址转换的同时,也会对外隐藏私有网络内部的地址结构。于是,在ISP看来,宽带用户或组织机构只使用了自己分配出去的IP地址,而并不知道宽带用户实际使用了几台设备上网,也不会知道组织机构的内部网络结构。

企业网络融合的过渡解决方案:

企业的网络需要与合作伙伴的网络进行部分互联时,为了确保一定的安全性,管理员可以使用NAT技术对合作伙伴隐藏自己的内部网络结构;或者在企业并购后要把多个企业网络合并为一个新企业网络的环境中,如果合并前的多个网络使用了相同范围的私有IP地址,或者私有IP地址有部分重叠,那么管理员就可以使用NAT技术作为割接时的过渡手段,优先实现企业业务流量的正常转发。日后再在对网络进行重新设计后,逐步实施旧网络规划到新网络规划的迁移。

NAT的工作原理

传统NAT的介绍:

  • 实现内网主机向外网主机发起并建立会话;
  • 主机用户是不会体验到通信的过程经历了网络地址转换的操作;
  • 包含基本NAT和NAPT。

在实施了NAT后,不仅内网主机使用的私有IP地址会被转换为公网可路由的公有IP地址,并且外网(公网)设备无法主动向内网主机发起访问,如果需要外网主动向内网发起访问的话,需要配置一种特殊类型的NAT。

基本NAT的操作拓扑:
管理员考虑到近期的扩展需求而向ISP申请了4个公网地址。这时管理员就可以在企业网关路由器上静态配置一对一的IP地址转换关系,比如把PC1使用的私有IP地址10.0.0.1/24转换为ISP分配的公网IP地址123.119.122.1/29,把PC2使用的私有IP地址10.0.0.2/24转换为ISP分配的公网IP地址123.119.122.2/29

PC1发出的数据包:
网关路由器收到PC1发出的数据包后查找路由表找出出接口;
依据出站口上的NAT规则,确定PC1的IP地址符合需要转换的条件并做对应的转换;
重新以转换后的地址封装去往目标的数据包,并从G0/0/1发送出去。

以上图中PC1访问外网的需求说明基本NAT的工作原理:从接口G0/0/0接收到PC1发来的去往互联网中某网站(43.226.160.17)的数据包,根据目的IP地址查询IP路由表,找到出站接口G0/0/1;
根据出站接口G0/0/1上定义的NAT规则,确定PC1的IP地址(10.0.0.1)符合需要转换的条件,并且应被转换为123.119.122.1;
重新以源IP地址123.119.122.1封装去往43.226.160.17的数据包,并从G0/0/1发送出去。

外网返回给PC1的数据包到达路由器后,依据NAT规则,将之前更换的源IP还原作为目的IP;
路由器再查找去往PC1的地址的路由表,从接口G0/0/0发出;
PC1收到外网资源的回馈信息。

从接口G0/0/1接收到从43.226.160.17发来且去往123.119.122.1的数据包,根据G0/0/1接口上定义的NAT规则,确定这个目的IP地址123.119.122.1应该被转换为10.0.0.1;
根据转换后的目的IP地址10.0.0.1查询IP路由表,找到出站接口G0/0/0;
重新以目的IP地址10.0.0.1封装来自43.226.160.17的数据包,并从G0/0/0发送出去。

NAPT的操作拓扑:
企业内部使用10.0.0.0/24私有IP地址范围,企业向ISP申请了1个公网IP地址123.119.122.200,管理员在企业网关路由器的G0/0/1接口上实施了NAPT。

PC1的数据包:
网关路由器收到PC1发出的数据包后,查找路由表找出出接口;
依据出站口上的NAT规则,匹配第一条对源IP和源端口进行转换;
重新以转换后的地址和端口封装去往目标的数据包,并从G0/0/1发送出去。

以上图中PC1访问外网的需求说明NAPT的工作原理:从接口G0/0/0接到PC1发来的源IP为10.0.0.1、源端口为3017、目的IP为43.226.160.17、目的端口为23的数据包后,查询路由表找到出站接口G0/0/1;
根据出站接口G0/0/1上定义的NAPT,把PC1数据包的源IP:源端口转换为123.119.122.200:1024,并在NAT转换表中记录这条转换规则。显然,转换之前的内部源端口的取值是由PC1决定的,但转换后的公网源端口是由执行网络地址转换的路由器决定的,路由器会选取当前未转换出去的端口来使用;
重新以源IP:源端口123.119.122.200:1024封装去往43.226.160.17:23的数据包,并从G0/0/1发送出去。

PC2的数据包:
网关路由器收到PC2发出的数据包后,查找路由表找出出接口;
依据出站口上的NAT规则,匹配第二条对源IP和源端口进行转换;
重新以转换后的地址和端口封装去往目标的数据包,并从G0/0/1发送出去。

以PC2访问外网的需求说明NAPT的工作原理:从接口G0/0/0收到PC2发来的源IP:源端口为10.0.0.2:3017、目的IP:目的端口为43.226.160.17:23的数据包后,查询路由表找到出站接口G0/0/1;
根据出站接口G0/0/1上定义的NAPT,把PC2数据包的源IP:源端口转换为123.119.122.200:1025,并在NAT转换表中记录这条转换规则。在本例中,我们为了说明即使多台内部主机选择使用了相同的源端口号,NAPT也能够为它们建立唯一的转换关系,所以假设PC1和PC2都恰好选取了相同的源端口来建立Telnet会话;
重新以源IP:源端口123.119.122.200:1025封装去往43.226.160.17:23的数据包,并从G0/0/1发送出去。

NAT的类型

NAT的主要类型包括:

  • 静态NAT/NAPT
  • Easy IP
  • NAT服务器

静态NAT简介:

  • 内网中一个主机的私有IP地址与一个公网IP地址相绑定;
  • 实现一对一的转换关系;

实际中很少用,因为一个公网IP地址无法为内网中的多台主机同时提供外网连接。
静态NAT是通过将内网的私网IP与公网IP做一对一的映射关系,所以没有起到节省公网IP的作用,实际中只有特殊的情况才会使用它。

NAPT简介:

把二元组“内部网络主机的IP+端口号”和“公网IP+端口号”执行一对一绑定;
一个公网IP地址可以同时为多个私有IP地址提供外网连接。

NAPT是通过IP+端口二元组的方式进行动态的创建映射,因此通过端口号的不同,一个公网IP可以同时向多个私网IP进行IP+端口的一对一映射,实际中常用到这种NAT方式。

Easy IP简介:

常用于拨号上网的网络环境中;
拨号得到的公网地址自动成为转换的公网IP;
所有内网主机都需要使用这个临时公网获取的IP地址来访问互联网。

使用Easy IP的话,路由器在拨号成功并获得公网IP地址后,会自动把这个公网IP地址应用为转换后的IP地址,无需管理员进行更多的操作。这种方式适合在小型局域网中进行部署,为小型局域网提供上网服务,比如小型办公室或中小型网吧。这种环境的特点是内部主机的数量较少,出站接口需要通过拨号的方式获得ISP分配的临时公网IP地址,所有内网主机都需要使用这个临时公网IP地址来访问互联网。管理员可以在Easy IP的配置中应用ACL(访问控制列表),来指定能够进行NAT转换以访问互联网的私有IP地址范围。

企业网关路由器接收到了内网主机(比如PC1)访问外网主机的数据包,源地址为10.0.0.1,端口号为3017
企业网关路由器根据ISP分配的公网IP地址,把内部主机使用的私有“源IP地址+源端口号”转换为公网“源IP地址+源端口号”,并把NAT转换关系记录在Easy IP转换表中。路由器在收到出向(PC1发往外部主机)的数据包时,会正向查找Easy IP表条目,把数据包的源IP地址+源端口号转换为123.119.122.200:1024并发送出去;
企业网关路由器在接收到入站(外部主机响应PC1)的数据包时,会反向查找Easy IP表条目,把数据包的目的IP地址+目的端口号转换为10.0.0.1:3017并发送给PC1。

NAT服务器简介:

用于内网应用对外提供服务;
静态配置公网“IP地址+端口号”和私有“IP地址+端口号”之间的转换;
公网用户只知道通过公网IP访问服务,内网的IP隐藏起到保护作用。

由于NAT具有隐藏内部IP地址结构的功能,一般情况下外网主机无法主动访问内网主机,但有时企业又需要使用内网服务器对外网主机提供特定服务,这时管理员可以使用称为NAT服务器(NAT Server)的实现方法,使内网服务器不被屏蔽,以便外网用户能够随时主动访问内网服务器。

NAT服务器的操作:
管理员需要事先在企业网关路由器上配置NAT服务器的转换条目;
企业网关路由器在接收到(公网用户主动发起的)入站数据包时,会根据公网用户希望访问的公网“IP地址+端口号”来查找NAT服务器转换表条目,找到它所对应的私有“IP地址+端口号”,并根据查找结果对入向数据包的目的“IP地址+端口号”进行转换。在本例中,外网主机发送的数据包目的“IP地址+端口号”是123.119.122.200:80,转换后的私有“IP地址+端口号”是10.0.0.10:80
企业网关路由器在接收到内部网页服务器的响应数据包后,会根据这个数据包的源“IP地址+端口号”查找NAT服务器转换表条目,找到它所对应的公网“IP地址+端口号”,并根据查找结果对出站数据包的源“IP地址+端口号”进行转换。在本例中,内网网页服务器响应的数据包源“IP地址+端口号”是10.0.0.10:80,转换后的公网“IP地址+端口号”是123.119.122.200:80

配置NAT

配置基本NAT

配置基本NAT的网络环境:
在所示环境中,内网中只有一台PC能够访问互联网,它的私有IP地址是10.0.0.10/24,网关IP地址是10.0.0.1/24。作为网关的路由器GW-AR1一边通过接口G0/0/1连接内网,使用私有IP地址10.0.0.1/24,一边通过接口G0/0/0连接ISP,使用固定公网IP地址202.108.0.1/24。ISP侧连接GW-AR1的接口IP地址为202.108.0.2/24。现在管理员要在GW-AR上把上网PC的私有IP地址10.0.0.10静态转换为公网IP地址202.108.0.3,让PC能够通过这个公网IP地址访问互联网。

静态NAT的配置句法:

nat static global global-address inside host-address

验证及查看静态NAT的配置:

display nat static

在GW-AR1上配置基本NAT:

<Huawei>system-view
[Huawei]sysname GW-AR1
[GW-AR1]interface gigabitethernet 0/0/1
[GW-AR1-GigabitEthernet0/0/1]ip address 10.0.0.1 255.255.255.0
[GW-AR1-GigabitEthernet0/0/1]quit
[GW-AR1]interface gigabitethernet 0/0/0
[GW-AR1-GigabitEthernet0/0/0]ip address 202.108.0.1 255.255.255.0
[GW-AR1-GigabitEthernet0/0/0]nat static global 202.108.0.3 inside 10.0.0.10
[GW-AR1-GigabitEthernet0/0/0]quit
[GW-AR1]ip route-static 0.0.0.0 0.0.0.0 202.108.0.2

查看GW-AR1上的静态NAT配置:

[GW-AR1]display nat static Static Nat Information:Interface  : GigabitEthernet0/0/0Global IP/Port     : 202.108.0.3/---- Inside IP/Port     : 10.0.0.10/----Protocol : ----     VPN instance-name  : ----                            Acl number         : ----Netmask  : 255.255.255.255 Description : ----Total :    1

使用display nat static命令查看了GW-AR1上的静态NAT配置,从这条命令的输出信息中我们可以看出,G0/0/0接口下有一对转换关系:公网IP地址202.108.0.3和内部IP地址10.0.0.10之间的转换。除此之外,从这里我们还可以了解到,静态NAT的配置中还可以设置端口号、指定具体协议、应用ACL,以及添加描述信息。

在上网PC上测试联网结果:

配置NAPT

配置NAPT的网络环境:
在所示环境中,内网分为两个VLAN(VLAN 10和VLAN 20),VLAN 10中主机使用的IP地址范围是10.0.10.0/24,网关地址是10.0.10.1;VLAN 20中主机使用的IP地址范围是10.0.20.0/24,网关地址是10.0.20.1。作为网关的路由器GW-AR1一边通过接口G0/0/1G0/0/2分别连接内网中的两个VLAN,这两个接口上分别配置了IP地址10.0.10.1/2410.0.20.1/24,一边通过接口G0/0/0连接ISP,使用固定公网IP地址202.108.0.1/24。ISP侧连接GW-AR1的接口IP地址为202.108.0.2/24。ISP为这个网络分配了4个可用的公网IP地址:202.108.0.3~202.108.0.6。现在管理员要把前两个公网IP地址分给VLAN 10的用户,把后两个分给VLAN 20的用户。

访问控制列表:

  • 由ACL命令生成;
  • 用于抓取需要访问外部网络的内部网络主机的地址或者网段;
  • 用于判定是否是允许转换的数据包。

地址池:

  • 由一些外部地址组合而成的地址集合;
  • 内部网络通过地址转换到达外部网络时,选择地址池中的某个地址作为转换后的源地-址,有效的利用外部地址,提高内部网络访问外部网络的能力。

转换关联:

  • 将一个地址池和一个访问列表关联起来;
  • 从访问控制列表中定义的源内网IP动态与地址池中的地址进行转换映射表。
    配置地址池句法:
nat address-group group-index start-address end-address

配置NAT绑定关系句法:

nat outbound acl-number address-group group-index

验证及查看NAPT的配置:

display nat address-group
display nat outbound

Display nat address-group:查看配置的地址池信息
Display nat outbound:查看NAT的绑定关系
管理员也可以在接口视图的命令nat outbound acl-number address-group group-index中添加关键字no-pat,来为某个NAT转换关系禁用端口转换功能。

在GW-AR1上配置NAPT:

[GW-AR1]acl 2010
[GW-AR1-acl-basic-2010]rule permit source 10.0.10.0 0.0.0.255
[GW-AR1-acl-basic-2010]quit
[GW-AR1]acl 2020
[GW-AR1-acl-basic-2020]rule permit source 10.0.20.0 0.0.0.255
[GW-AR1-acl-basic-2020]quit
[GW-AR1]nat address-group 1 202.108.0.3 202.108.0.4
[GW-AR1]nat address-group 2 202.108.0.5 202.108.0.6
[GW-AR1-GigabitEthernet0/0/0]nat outbound 2010 address-group 1
[GW-AR1-GigabitEthernet0/0/0]nat outbound 2020 address-group 2

使用基本ACL来指定私有IP地址范围,配置ACL 2010抓取了VLAN 10的用户地址,而ACL 2020抓取VLAN 20的用户地址。
使用系统视图命令nat address-group group-index start-address end-address来指定公网IP地址范围。其中group-index是地址组的编号,这个编号的取值范围会根据不同的设备平台而有所不同,管理员在配置时,可以使用问号(?)功能查看设备所支持的编号范围,也可以查询产品手册和命令参考文档来确定取值范围。start-address end-address是管理员要指定的IP地址范围中的第1个和最后一个IP地址。
在连接外网的接口上使用接口视图命令nat outbound acl-number address-group group-index,绑定NAT转换关系。参数acl-number部分需要输入管理员之前创建的基本ACL,参数group-index部分需要输入NAT地址组编号,这样就可以通过一条命令建立一个转换关系。

查看GW-AR1上的NAT地址组配置:

[GW-AR1]display nat address-group NAT Address-Group Information:--------------------------------------Index   Start-address      End-address--------------------------------------1         202.108.0.3      202.108.0.42         202.108.0.5      202.108.0.6--------------------------------------Total : 2

使用命令display nat address-group查看了GW-AR1上的NAT地址组配置。从命令的输出内容中我们可以看出,GW-AR1上配置了两个NAT地址组,编号、起始地址和结束地址都清晰地以列表的形式列出。

查看GW-AR1上的出向NAPT配置:

[GW-AR1]display nat outbound NAT Outbound Information:--------------------------------------------------------------------Interface               Acl    Address-group/IP/Interface     Type--------------------------------------------------------------------GigabitEthernet0/0/0    2010                        1          patGigabitEthernet0/0/0    2020                        2          pat--------------------------------------------------------------------Total : 2

命令display nat outbound可以用来查看出向NAT的转换关系。从输出内容中我们可以看出,G0/0/0接口上有两个NAT出向转换关系,Type(类型)都是pat。类型pat指的是启用端口转换功能,这也是NAPT的默认配置。管理员也可以在接口视图的命令nat outbound acl-number address-group group-index中添加关键字no-pat,来为某个NAT转换关系禁用端口转换功能。
抓取数据包:
GE0/0/1:

从内网接口G0/0/1的抓包信息可以看出,PC10向外网地址202.108.0.2发起了ping测试,并且测试成功,它们都收到了ISP路由器的应答。

GE0/0/2:

从内网接口G0/0/2的抓包信息可以看出,PC20向外网地址202.108.0.2发起了ping测试,并且测试成功,它们都收到了ISP路由器的应答。

GE0/0/0:
GW-AR1先后收到了来自202.108.0.3202.108.0.5的ping请求消息。说明GW-AR1把PC10发出的数据包源IP地址转换为202.108.0.3,把PC20发出的数据包源IP地址转换为202.108.0.5,正好是它们各自NAT地址组中的第一个IP地址。

配置Easy IP

配置Easy IP的网络环境:

出口: 先写acl 匹配内网私网地址段

acl number 2000
rule 5 permit source 192.168.31.0 0.0.0.255

注:acl 用来做匹配范围时,没有默认隐含允许所有的规则。 int gi 0/0/1 (公网接口) nat outbound 2000 (2000是acl 的表号) 原理:内网私网地址出包时转换成公网接口gi 0/0/1 当前的ip地址。

server NAT:

可以将某服务器的某端口映射出去 (非常安全)
实验拓扑:

NAT服务器的配置句法:

nat server protocol {tcp | udp} global
global-address global-port inside host-address
[host-port]
int gi 0/0/1nat server protocol tcp global 12.1.1.4 www inside 192.168.31.254 www

ensp-网络地址转换相关推荐

  1. 一看就懂:华为ensp网络地址转换(NAT)原理和配置!

    一.什么是NAT,为什么要做NAT NAT是网络地址转换的意思,英文"Network Address Translation",顾名思义,就是对IP地址进行转换的作用. 我们上网的 ...

  2. eNSP—静态路由+NAT网络地址转换

    实验需求 1.全网可达 2.拓扑中所需地址全部基于192.168.0.0/24划分所得 3.静态路由(不许使用其他动态) 4.R1的有三个环回,需要汇总 DNS.http部分属于扩展部分,模拟网页访问 ...

  3. 运营商级网络地址转换(LSN/CGN)方案介绍

    运营商级网络地址转换(LSN/CGN)方案介绍 简述: 随着近期国内主要运营商移动互联网业务终端(如智能手机等)用户数目的迅猛增长,各种形式的终端设备对数据业务(据统计约90%以上的智能手机用户都有访 ...

  4. 4.3.4 网络地址转换NAT

    4.3.4 网络地址转换NAT

  5. 路由器NAT网络地址转换

    实验名称:配置静态网络地址转换 实验拓扑: 实验步骤: (1)设置路由器接口地址,主机和服务器的IP地址及网关 (2)配置路由器Router0的静态地址映射 (3)验证 总结:实验只需对路由器1进行设 ...

  6. (九)洞悉linux下的Netfilteramp;iptables:网络地址转换原理之DNAT

    网络地址转换:NAT Netfitler为NAT在内核中维护了一张名为nat的表,用来处理所有和地址映射相关的操作.诸如filter.nat.mangle抑或raw这些在用户空间所认为的"表 ...

  7. 什么是网络地址转换(NAT)—Vecloud 微云

    网络地址转换(NAT)最初在RFC 1631中进行了描述.尽管最初是作为防止IPv4地址耗尽的短期解决方案提出的,但仍在使用它.NAT有什么特别之处,使网络工程师可以使用26年以上?让我们找出答案. ...

  8. 如何配置网络地址转换(NAT)—Vecloud微云

    什么是 NAT? 网络地址转换(NAT)为IP地址保存设计. 这使得采用未注册IP地址的专用IP网络可以连接到Internet. NAT在路由器上运行,通常将两个网络连接在一起,并在数据包转发到另一个 ...

  9. 【CyberSecurityLearning 44】iptables包过滤与网络地址转换

    目录 iptables包过滤与网络地址转换 Linux包过滤防火墙概述 iptables的基本语法 iptables的管理选项 iptables规则的匹配条件 常见的通用匹配条件 常用的隐含匹配条件( ...

  10. 网络名称 转换 网络地址_网络地址转换| 计算机网络

    网络名称 转换 网络地址 At the time of classful addressing, the number of household users and small businesses ...

最新文章

  1. 【FFmpeg】打印日志函数分析(可以根据不同级别打印不同颜色的日志)
  2. SharePoint服务器如果需要安装杀毒软件, 需要注意什么?
  3. 浅析IPDCC的地理信息识别和服务
  4. deb 安装_本地安装DEB包的3种命令行工具(适合Ubuntu和Deepin )
  5. JS的Object.keys
  6. JS中的HTML片段
  7. 在.NET3.5平台上使用LinQ to SQL + NBear 创建三层WEB应用
  8. github生成SSH公钥
  9. 不限速的远程链接软件ToDesk
  10. 实现页面弹框背景虚化效果
  11. 在ionic2中集成swiper插件
  12. 听说你还不会归并排序?
  13. Git:git同步git push时候提示filename too long解决办法
  14. vue项目使用阿里矢量图标库
  15. NOI题库答案(1.2 编程基础之变量定义、赋值及转换)
  16. 低配置电脑最适合系统—win10企业版2016长期服务版本密钥和激活方法
  17. 本体论:Gene Ontology (基因本体)
  18. 计算机驱动空间的c盘不足怎么办,c盘空间不足
  19. Java前方交会后方交会编程_摄影测量后方交会、前方交会程序
  20. nginx反向代理异步传输模式(原理)

热门文章

  1. 【网络时间同步】基于马尔科夫随机场最大后验估计和Gardner环的无线传感器网络时间同步算法matlab仿真
  2. word选中所有图形
  3. LeetCode之玩筹码
  4. VIM:消除~ 和 .un~后缀的备份文件
  5. 【如何开发小程序?】如何快速开发一个小程序
  6. 概率初步(1 Juin, 2019)
  7. 使用Guardium和WebSphere Application Server监视应用程序用户的数据库活动
  8. Logism · 汉字字库存储芯片扩展 实验
  9. 正则表达 包含 英文、数字、特殊字符
  10. PS鼠绘教程:PS鼠绘炫酷红色保时捷跑车