前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >华为HCIA重要技术点——NAT详解

华为HCIA重要技术点——NAT详解

原创
作者头像
网络技术联盟站
修改于 2021-04-27 09:54:04
修改于 2021-04-27 09:54:04
2.5K04
代码可运行
举报
运行总次数:4
代码可运行

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

网络地址转换技术NAT(Network Address Translation)主要用于实现位于内部网络的主机访问外部网络的功能。当局域网内的主机需要访问外部网络时,通过NAT技术可以将其私网地址转换为公网地址,并且多个私网用户可以共用一个公网地址,这样既可保证网络互通,又节省了公网地址。

随着网络设备的数量不断增长,对IPv4地址的需求也不断增加,导致可用IPv4地址空间逐渐耗尽。解决IPv4地址枯竭问题的权宜之计是分配可重复使用的各类私网地址段给企业内部或家庭使用。但是,私有地址不能在公网中路由,即私网主机不能与公网通信,也不能通过公网与另外一个私网通信。

NAT是将IP数据报报头中的IP地址转换为另一个IP地址的过程,主要用于实现内部网络(私有IP地址)访问外部网络(公有IP地址)的功能。NAT一般部署在连接内网和外网的网关设备上。当收到的报文源地址为私网地址、目的地址为公网地址时,NAT可以将源私网地址转换成一个公网地址。这样公网目的地就能够收到报文,并做出响应。此外,网关上还会创建一个NAT映射表,以便判断从公网收到的报文应该发往的私网目的地址。

NAT的实现方式有多种,适用于不同的场景。

静态NAT实现了私有地址和公有地址的一对一映射。如果希望一台主机优先使用某个关联地址,或者想要外部网络使用一个指定的公网地址访问内部服务器时,可以使用静态NAT。但是在大型网络中,这种一对一的IP地址映射无法缓解公用地址短缺的问题。

在本示例中,源地址为192.168.1.1的报文需要发往公网地址100.1.1.1。在网关RTA上配置了一个私网地址192.168.1.1到公网地址200.10.10.1的映射。当网关收到主机A发送的数据包后,会先将报文中的源地址192.168.1.1转换为200.10.10.1,然后转发报文到目的设备。目的设备回复的报文目的地址是200.10.10.1。当网关收到回复报文后,也会执行静态地址转换,将200.10.10.1转换成192.168.1.1,然后转发报文到主机A。和主机A在同一个网络中其他主机,如主机B,访问公网的过程也需要网关RTA做静态NAT转换。

动态NAT通过使用地址池来实现。

本示例中,当内部主机A和主机B需要与公网中的目的主机通信时,网关RTA会从配置的公网地址池中选择一个未使用的公网地址与之做映射。每台主机都会分配到地址池中的一个唯一地址。当不需要此连接时,对应的地址映射将会被删除,公网地址也会被恢复到地址池中待用。当网关收到回复报文后,会根据之前的映射再次进行转换之后转发给对应主机。

动态NAT地址池中的地址用尽以后,只能等待被占用的公用IP被释放后,其他主机才能使用它来访问公网。

网络地址端口转换NAPT(Network Address Port Translation)允许多个内部地址映射到同一个公有地址的不同端口。

本例中,RTA收到一个私网主机发送的报文,源IP地址是192.168.1.1,源端口号是1025,目的IP地址是100.1.1.1,目的端口是80。RTA会从配置的公网地址池中选择一个空闲的公网IP地址和端口号,并建立相应的NAPT表项。这些NAPT表项指定了报文的私网IP地址和端口号与公网IP地址和端口号的映射关系。之后,RTA将报文的源IP地址和端口号转换成公网地址200.10.10.1和端口号2843,并转发报文到公网。当网关RTA收到回复报文后,会根据之前的映射表再次进行转换之后转发给主机A。主机B同理。

Easy IP适用于小规模局域网中的主机访问Internet的场景。小规模局域网通常部署在小型的网吧或者办公室中,这些地方内部主机不多,出接口可以通过拨号方式获取一个临时公网IP地址。Easy IP可以实现内部主机使用这个临时公网IP地址访问Internet。

本示例说明了Easy IP的实现过程。RTA收到一个主机A访问公网的请求报文,报文的源IP地址是192.168.1.1,源端口号是1025。RTA会建立Easy IP表项,这些表项指定了源IP地址和端口号与出接口的公网IP地址和端口号的映射关系。之后,根据匹配的Easy IP表项,将报文的源IP地址和端口号转换成出接口的IP地址和端口号,并转发报文到公网。报文的源IP地址转换成200.10.10.10/24,相应的端口号是2843。

路由器收到回复报文后,会根据报文的目的IP地址和端口号,查询Easy IP表项。路由器根据匹配的Easy IP表项,将报文的目的IP地址和端口号转换成私网主机的IP地址和端口号,并转发报文到主机。

NAT在使内网用户访问公网的同时,也屏蔽了公网用户访问私网主机的需求。当一个私网需要向公网用户提供Web和FTP服务时,私网中的服务器必须随时可供公网用户访问。

NAT服务器可以实现这个需求,但是需要配置服务器私网IP地址和端口号转换为公网IP地址和端口号并发布出去。路由器在收到一个公网主机的请求报文后,根据报文的目的IP地址和端口号查询地址转换表项。路由器根据匹配的地址转换表项,将报文的目的IP地址和端口号转换成私网IP地址和端口号,并转发报文到私网中的服务器。

本例中,主机C需要访问私网服务器,发送报文的目的IP地址是200.10.10.1,目的端口号是80。RTA收到此报文后会查找地址转换表项,并将目的IP地址转换成192.168.1.1,目的端口号保持不变。服务器收到报文后会进行响应,RTA收到私网服务器发来的响应报文后,根据报文的源IP地址192.168.1.1和端口号80查询地址转换表项。然后,路由器根据匹配的地址转换表项,将报文的源IP地址和端口号转换成公网IP地址200.10.10.1和端口号80,并转发报文到目的公网主机。

nat static global { global-address} inside {host-address } 命令用于创建静态NAT。

  1. global参数用于配置外部公网地址。
  2. inside参数用于配置内部私有地址。

命令display nat static用于查看静态NAT的配置。

  • Global IP/Port表示公网地址和服务端口号。
  • Inside IP/Port表示私有地址和服务端口号。

nat outbound命令用来将一个访问控制列表ACL和一个地址池关联起来,表示ACL中规定的地址可以使用地址池进行地址转换。ACL用于指定一个规则,用来过滤特定流量。后续将会介绍有关ACL的详细信息。

nat address-group命令用来配置NAT地址池。

本示例中使用nat outbound命令将ACL 2000与待转换的192.168.1.0/24网段的流量关联起来,并使用地址池1(address-group 1)中的地址进行地址转换。no-pat表示只转换数据报文的地址而不转换端口信息。

display nat address-group group-index命令用来查看NAT地址池配置信息。

命令display nat outbound用来查看动态NAT配置信息。

可以用这两条命令验证动态NAT的详细配置。在本示例中,指定接口Serial 1/0/0与ACL关联在一起,并定义了用于地址转换的地址池1。参数no-pat说明没有进行端口地址转换。

nat outbound acl-number命令用来配置Easy-IP地址转换。Easy IP的配置与动态NAT的配置类似,需要定义ACL和nat outbound命令,主要区别是Easy IP不需要配置地址池,所以nat outbound命令中不需要配置参数address-group。

在本示例中,命令nat outbound 2000表示对ACL 2000定义的地址段进行地址转换,并且直接使用Serial1/0/0接口的IP地址作为NAT转换后的地址。

命令display nat outbound用于查看命令nat outbound的配置结果。

Address-group/IP/Interface表项表明接口和ACL已经关联成功,type表项表明Easy IP已经配置成功。

nat server [ protocol protocol-number icmp | tcp | udp global global-address current-interface global-port inside {host-address host-port } vpn-instance vpn-instance-name acl acl-number description description ]命令用来定义一个内部服务器的映射表,外部用户可以通过公网地址和端口来访问内部服务器。

  • 参数protocol指定一个需要地址转换的协议;
  • 参数global-address指定需要转换的公网地址;
  • 参数inside指定内网服务器的地址。

display nat server命令用于查看详细的NAT服务器配置结果。

可以通过此命令验证地址转换的接口、全局和内部IP地址以及关联的端口号。在本示例中,全局地址202.10.10.1和关联的端口号80(www)分别被转换成内部服务器地址192.168.1.1和端口号8080。

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功能的协议包括:DNSFTPSIPPPTPRTSP。不同协议支持的NAT转换字段如表1所示。

静态NAT配置:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 nat static global 12.1.1.3 inside 192.168.1.1 netmask 255.255.255.255
 nat static global 12.1.1.4 inside 192.168.1.2 netmask 255.255.255.255
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[AR1]dis nat static 
  Static Nat Information:
  Interface  : GigabitEthernet0/0/1
    Global IP/Port     : 12.1.1.3/---- 
    Inside IP/Port     : 192.168.1.1/----
    Protocol : ----     
    VPN instance-name  : ----                            
    Acl number         : ----
    Netmask  : 255.255.255.255 
    Description : ----

    Global IP/Port     : 12.1.1.4/---- 
    Inside IP/Port     : 192.168.1.2/----
    Protocol : ----     
    VPN instance-name  : ----                            
    Acl number         : ----
    Netmask  : 255.255.255.255 
    Description : ----

  Total :    2

动态NAT配置:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
acl number 2000    \\利用ACL匹配流量
 rule 1 permit source 192.168.1.0 0.0.0.255 
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[AR1]dis acl all
 Total quantity of nonempty ACL number is 1 

Basic ACL 2000, 1 rule
Acl's step is 5
 rule 1 permit source 192.168.1.0 0.0.0.255 

 nat address-group 1 11.1.1.1 11.1.1.2  \\配置公网地址池

[AR1]dis nat address-group 

 NAT Address-Group Information:
 --------------------------------------
 Index   Start-address      End-address
 --------------------------------------
 1            11.1.1.1         11.1.1.2
 --------------------------------------

interface GigabitEthernet0/0/1
 ip address 12.1.1.1 255.255.255.0 
 nat outbound 2000 address-group 1 no-pat
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[AR1]dis nat outbound 
 NAT Outbound Information:
 --------------------------------------------------------------------------
 Interface                     Acl     Address-group/IP/Interface      Type
 --------------------------------------------------------------------------
 GigabitEthernet0/0/1         2000                              1    no-pat
 --------------------------------------------------------------------------
  Total : 1

EASY IP配置:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
acl number 2000    \\利用ACL匹配流量
 rule 1 permit source 192.168.1.0 0.0.0.255 
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
interface GigabitEthernet0/0/1
 ip address 12.1.1.1 255.255.255.0 
 nat outbound 2000

NAT SERVER配置:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
interface GigabitEthernet0/0/1
 ip address 12.1.1.1 255.255.255.0 
 nat server protocol tcp global 12.1.1.3 www inside 192.168.1.2 www  \\映射内网服务器
 nat outbound 2000

 dns server 172.16.1.2
 dns proxy enable
 dns relay enable
ip host www.baidu.com 192.168.1.2
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[AR1-GigabitEthernet0/0/1]nat server protocol tcp global ?  \\static和nat server中可以使用本地接口地址作为global地址使用
  X.X.X.X            Global IP address of NAT
  current-interface  Address of current interface
  interface          Specify the interface

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
NAT网络地址转换_路由交换基础
网络地址转换NAT(Network Address Translation)主要用于实现位于内部网络的主机访问外部网络的功能,实现局域网内的主机访问外部网络。通过NAT技术可以将其私网地址转换为公网地址,并且多个私网用户可以共用一个公网地址,既保证网络互通,又节省公网地址。
张旭博客
2022/12/27
1K0
NAT网络地址转换_路由交换基础
网络地址转换 NAT知识点总结及案例习题
公司有一个Web服务器部署在内网IP地址 192.168.10.10,端口为8080。公网IP为 203.1.1.1,要求外部用户访问该公网地址即可访问内网服务器。
知孤云出岫
2025/06/09
1450
42张图详解 NAT : 换个马甲就能上网
IP 地址分为公网地址和私有地址。公网地址有 IANA 统一分配,用于连接互联网;私有地址可以自由分配,用于私有网络内部通信。
用户7656790
2021/04/30
2.1K0
42张图详解 NAT : 换个马甲就能上网
非常重要的地址转换(NAT)技术,必须好好捋一遍!
RFC1631文档描述了:NAT是将IP数据报的报头中的IP地址转换为另一个IP地质大过程。在实际应用中,NAT主要用于实现私有网络访问外部网络的功能。这种通过允许使用少量的公有IP地址代表多数私有IP地址的方式将有助于减缓可用IP地址空间站枯竭的速度。
网络技术联盟站
2020/05/06
5.4K0
华为设备ACL与NAT技术
ACL 访问控制列表(Access Control Lists),是应用在路由器(或三层交换机)接口上的指令列表,用来告诉路由器哪些数据可以接收,哪些数据是需要被拒绝的,ACL的定义是基于协议的,它适用于所有的路由协议,并根据预先定义好的规则对数据包进行过滤,从而更好的控制数据的流入与流出.
王 瑞
2022/12/28
5670
华为设备ACL与NAT技术
访问控制列表ACL配置规则_路由交换
定义一系列不同的规则对数据包进行分类,针对不同的报文进行不同的处理,实现对网络访问行为的控制、限制网络流量、提高网络性能、防止网络攻击等。
张旭博客
2022/12/27
9420
访问控制列表ACL配置规则_路由交换
内网向外网提供服务,如何“漠视”NAT?NAT Server技术就这样诞生了!
今天给大家介绍一下NAT Server,包括NAT Server的原理、工作过程、配置(华为、思科、Juniper)。
网络技术联盟站
2023/07/22
8590
内网向外网提供服务,如何“漠视”NAT?NAT Server技术就这样诞生了!
NAT的双机热备方案
一般的NAT组网中,内网用户通过单台设备进行NAT转换访问外网,NAT设备承担了所有内外网之间的流量,无法规避单点故障。一旦发生单点故障,将导致内网用户无法与外网通信。
全栈程序员站长
2022/07/23
1.7K0
华为ensp中nat地址转换(静态nat 动态nat NAPT 和Easy IP)配置命令
静态NAT(Static NAT)是一种网络地址转换(NAT)技术,它将一个内部私有IP地址转换为一个公有IP地址。静态NAT通常用于允许内部网络上的设备访问互联网。
神秘泣男子
2024/06/03
2.2K1
华为ensp中nat地址转换(静态nat 动态nat NAPT 和Easy IP)配置命令
华为模拟器NAT地址转换技术
防火墙NAT Server配置 (CLI) 配置内部Web和FTP服务器 [USG] nat server wwwserver protocol tcp global 202.169.10.1 80 inside 192.168.20.2 8080 [USG] nat server ftpserver protocol tcp global 202.169.10.1 ftp inside 192.168.20.3 ftp 配置域间包过滤规则 [USG] security-policy [USG -policy-security] rule name p1 [USG -policy-security-rule-p1] source-zone untrust [USG -policy-security-rule-p1] destination-zone dmz [USG -policy-security-rule-p1] destination-address 192.168.20.2 32 [USG -policy-security-rule-p1] service http [USG -policy-security-rule-p1] action permit [USG -policy-security] rule name p2 [USG -policy-security-rule-p2] source-zone untrust 配置内部Web和FTP服务器(web)
团团生活志
2022/08/16
9230
华为模拟器NAT地址转换技术
计算机网络实验四访问控制列表NAT应用
掌握ACL在企业网络中的应用;掌握ACL的工作原理;掌握ACL的配置;掌握NAT的工作原理;掌握NAT的基本配置。
全栈程序员站长
2022/09/15
5010
内网转公网转换协议NAT综合协议配置【附学习总结】
1、基本配置基本配置(接口 IP 地址、设备主机名等)【这里就不演示了,兄弟们可以自行设置】
Ponnie
2022/03/15
1.2K0
内网转公网转换协议NAT综合协议配置【附学习总结】
华为datacom-HCIA学习笔记汇总2.0
1.1.1.3. [R2-g0/0/1]ospf authentication-mode simple huawei 6
青灯古酒
2023/10/16
5060
华为datacom-HCIA学习笔记汇总2.0
iis7NAT端口的映射方法
本地地址与全局地址(公网)之间一对一映射,即一台主机对应一个公网IP。在使用IIS7服务器监控工具的时候发现该软件风格简约,操作简单,删除系统缓存,重启服务器,修改服务器账号密码,修复服务器复制功能等,也可以一键开启关闭MYSQL和503错误的监控,省去了繁琐的操作步骤,一键完成。也可以直接修改远程端口范围,省去繁琐步骤。
it妹
2019/08/09
1.5K0
iis7NAT端口的映射方法
h3c nat
       ACL允许(permit)的保温将被进行NAT转换,被拒绝(deny)的保温不会被 转换。
py3study
2020/01/06
8200
什么是两次NAT(Twice NAT)技术?华为和思科设备如何配置?本文给您解惑!
两次NAT技术允许同时对源IP地址和目的IP地址进行转换。它适用于内部网络中的主机地址与外部网络上的主机地址重叠的情况。在本文中,我们将详细探讨两次NAT技术的原理和应用。
网络技术联盟站
2023/09/06
1.4K0
什么是两次NAT(Twice NAT)技术?华为和思科设备如何配置?本文给您解惑!
3万字总结!华三H3CNE知识点大集合,网络工程师收藏
H3CNE我是太熟悉了,大学时候考H3CTE证书,H3CNE属于基础部分,那本《构建中小型企业网络》书籍不知道被我翻了多少遍,左一遍又一遍,看到最后,随便提到哪个技术点,我能一下子翻到,笔记也是做的密密麻麻。
网络技术联盟站
2023/03/01
3.1K0
3万字总结!华三H3CNE知识点大集合,网络工程师收藏
3万字总结!华三H3CNE知识点大集合,网络工程师收藏
H3CNE我是太熟悉了,大学时候考H3CTE证书,H3CNE属于基础部分,那本《构建中小型企业网络》书籍不知道被我翻了多少遍,左一遍又一遍,看到最后,随便提到哪个技术点,我能一下子翻到,笔记也是做的密密麻麻。
网络技术联盟站
2023/02/07
2.4K0
3万字总结!华三H3CNE知识点大集合,网络工程师收藏
ENSP Nat地址转换(配置命令 )
[Huawei]int g0/0/0 [Huawei-GigabitEthernet0/0/0]ip add 192.168.1.1 24 [Huawei-GigabitEthernet0/0/0]int g0/0/1 [Huawei-GigabitEthernet0/0/1]ip add 202.0.0.1 26 [Huawei]ip route-static 0.0.0.0 0 202.0.0.2              默认路由 所有的数据都指向 202.0.0.2
神秘泣男子
2024/06/03
3820
ENSP Nat地址转换(配置命令 )
ensp学习第九弹网络地址转换
地址转换nat(network address translation)是将IP书记报文头中的IP地址转换到另一个IP地址的过程,作为减缓IP地址枯竭的一种过渡方案,nat通过地址重用的方法满足IP地址的需要,可以一定程度上缓解IP地址空间的压力。nat除了解决IP地址短缺的问题还带来了两个好处:
用户8447427
2022/08/18
8850
ensp学习第九弹网络地址转换
推荐阅读
相关推荐
NAT网络地址转换_路由交换基础
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验