网工干货知识

超全学习笔记
当前位置:首页 > 干货知识

动态NAT(在ASA设备上实现)

更新时间:2026年03月27日   作者:spoto   标签(Tag):

先决条件 –自适应安全设备(ASA), 网络地址转换(NAT), 静态NAT(适用于ASA设备)
网络地址转换用于将私有IP地址转换为公共IP地址,从而实现互联网访问。NAT通常运行在路由器或防火墙上。
动态NAT –
在这种NAT类型中,多个私有IP地址被映射到一组公共IP地址上。这种方式适用于那些在某一特定时间点需要访问互联网的固定用户数量已知的情况。
示例:如果我们有一个包含4个公共IP地址的池,那么在同一时间,只有4个用户的私有IP地址会被转换为公共IP地址。
那些先提出翻译请求的私有IP地址将会优先被处理(遵循“先来先服务”的原则)。如果池中的所有IP地址都被占用,那么这些请求就会被忽略,数据包将被丢弃。
程序/流程(针对ASA)该流程与静态NAT的过程相同。

  • 步骤1:配置访问列表——
    请编制一个访问列表,明确允许进入的人员的条件,即哪些人可以被允许进入,以及应该允许使用哪些协议。
  • 步骤2:将访问控制列表应用到某个接口上。
    “access-group”命令用于指定上述操作应该执行的方向,即是向外发送还是向内发送。
  • 步骤3:创建网络对象 –
    这将指定了将应用动态NAT功能的主机或子网。
    注意:在这里,共创建了两个对象。其中一个对象用于指定需要应用NAT功能的主机或子网(即私有IP地址),另一个对象则用于存放公共IP地址的列表。
  • 步骤4:创建动态NAT配置语句——
    这一步骤将明确说明NAT应该进行的方向,以及私有IP地址应该被转换到的IP地址(即公共IP地址)。

例如,NAT(DMZ,外部区域)、动态私有主机与公共池的映射:这意味着,当流量从DMZ传输到外部区域时,将会进行动态NAT处理。此时,网络对象中指定的私有主机的IP地址会被转换为公共池中可用的IP地址。
示例 –

如图所示,有三个路由器:Router1的IP地址为10.1.1.1/24,Router2的IP地址为11.1.1.1/24,而Router3的IP地址为101.1.1.1。这三个路由器都连接到了ASA设备。ASA设备的IP地址为10.1.1.2/24,名称是INSIDE,其安全等级为100,接口Gi0/0上连接着该设备。另外,ASA设备的另一个接口Gi0/1上的IP地址为11.1.1.2/24,名称是DMZ,其安全等级为50。再有一个接口Gi0/2上的IP地址为101.1.1.2/24,名称是OUTSIDE,其安全等级为0。
在这个任务中,我们将为从内部到外部的流量以及从DMZ到外部的流量启用动态NAT功能。
在所有路由器和ASA设备上配置IP地址。
在Router1上配置IP地址。

Router1(config)#int fa0/0
Router1(config-if)#ip address 10.1.1.1 255.255.255.0
Router1(config-if)#取消“shut”功能


在Router2上配置IP地址。

Router2(config)#int fa0/0
Router2(config-if)#ip address 11.1.1.1 255.255.255.0
Router2(config-if)#取消“shut”功能


在路由器3上配置IP地址。

Router3(config)#int fa0/0
Router3(config-if)#ip address 101.1.1.1 255.255.255.0
Router3(config-if)#取消关闭功能

在 ASA的接口上配置IP地址、名称以及安全级别。

asa(config)#int Gi0/0
asa(config-if)#取消“shut”功能
asa(config-if)#ip address 10.1.1.2 255.255.255.0
asa(config-if)#nameif 内部
asa(config-if)#安全等级 100
asa(config-if)#退出
asa(config)#int Gi0/1
asa(config-if)#取消“shut”功能
asa(config-if)#ip address 11.1.1.2 255.255.255.0
asa(config-if)#nameif DMZ
asa(config-if)#安全等级 50
asa(config-if)#退出
asa(config)#int Gi0/2
asa(config-if)#关闭shut功能
asa(config-if)#ip address 101.1.1.2 255.255.255.0
asa(config-if)#nameif OUTSIDE
asa(config-if)#安全等级为0

现在,我们将静态路由配置给这些路由器。将对Router1进行静态路由的配置。

Router1(config)#ip route 0.0.0.0 0.0.0.0 10.1.1.2

将静态路由配置到Router2上。

Router2(config)#ip route 0.0.0.0 0.0.0.0 11.1.1.2

将静态路由配置到Router3上。

Router3(config)#ip route 0.0.0.0 0.0.0.0 101.1.1.2

现在,终于可以配置一条静态路由来指向ASA了。

asa(config)#route INSIDE 10.1.1.0 255.255.255.0 10.1.1.1
asa(config)#route OUTSIDE 101.1.1.0 255.255.255.0 101.1.1.1
asa(config)#route DMZ 11.1.1.0 255.255.255.0 10.1.1.1

现在,对于ICMP来说,要么我们必须检查相关情况,要么需要使用ACL来允许从安全性较低的级别向安全性较高的级别发送ICMP回显响应。之所以需要这样做,是因为默认情况下,不允许从安全性较低的级别向安全性较高的级别发送任何流量。
配置访问列表:

asa(config)#access-list traffic_out permit icmp any any
asa(config)#access-list traffic_dmz permit icmp any any

在这里,已经创建了两个访问列表:

  1. 首先,该访问列表的名称是“traffic_out”。这个列表允许来自外部的ICMP流量进入内部网络(这些流量的IP地址可以是任何掩码)。
  2. 第二个访问列表被命名为“traffic_dmz”。该列表允许来自外部的ICMP流量进入DMZ区域,这些流量的IP地址可以是任何掩码。

现在,我们需要将这个访问列表应用到ASA接口上。

asa(config)#access-group traffic_out in interface OUTSIDE
asa(config)#access-group traffic_dmz in interface DMZ

第一条语句表明,access-list traffic_out这个规则被应用于对OUTSIDE接口的入站方向。
第二句话指出,access-list traffic_dmz规则被应用于进入DMZ接口的流量。
现在,内部的设备能够向外部的设备和DMZ中的设备发送请求了。
现在,任务是在整个子网(10.1.1.0/24)的流量从内部流向外部时,同时让ASA支持动态NAT功能。此外,网络中的另一个子网(11.1.1.0/24)的流量也从DMZ区域流向外部时,同样需要启用动态NAT功能。

asa(config)# 对象网络:inside_nat
asa(config-network-object)#subnet 10.1.1.0 255.255.255.0
asa(config-network-object)#退出

首先,我们已经确定了应该进行翻译的子网。

asa(config)#对象网络:NAT_Pool
asa(config-network-object)#range 110.1.1.1 110.1.1.4
asa(config-network-object)#退出

现在,已经创建了一个NAT池,该池中包含了公共IP地址(私有IP地址会被映射到这个公共IP地址上)。接下来,需要指定NAT转换的方向。

asa(config)#nat (INSIDE, OUTSIDE) source dynamic inside_nat NAT_pool

现在,我们需要对从DMZ向外发送的流量进行NAT处理。

asa(config)#对象网络 DMZ_NAT
asa(config-network-object)#subnet 11.1.1.0 255.255.255.0
asa(config-network-object)#退出

现在,为这条流量创建NAT池吧。

asa(config)#对象网络 dmz_nat_pool
asa(config-network-object)#range 120.1.1.1 120.1.1.4
asa(config-network-object)#退出

pool_dmz_nat_pool中包含4个公共IP地址,这些IP地址的范围为120.1.1.1到120.1.1.4。现在,NAT转换的方向已经确定下来了。

asa(config)#nat (DMZ, OUTSIDE) source dynamic dmz_nat dmz_nat_pool

上述命令指定了,dmz_nat中的子网应该通过动态NAT技术,被转换为dmz_nat_pool这个IP地址池中的一个IP地址。

              马上抢免费试听资格
意向课程:*必选
姓名:*必填
联系方式:*必填
QQ:
思博SPOTO在线咨询

相关资讯

即刻预约

免费试听-咨询课程-获取免费资料