📜  动态 NAT(在 ASA 上)

📅  最后修改于: 2022-05-13 01:57:01.215000             🧑  作者: Mango

动态 NAT(在 ASA 上)

先决条件 - 自适应安全设备 (ASA)、网络地址转换 (NAT)、静态 NAT(在 ASA 上)
网络地址转换用于在访问 Internet 时将私有 IP 地址转换为公共 IP 地址。NAT 通常在路由器或防火墙上运行。

动态 NAT –
在这种类型的 NAT 中,多个私有 IP 地址映射到一个公共 IP 地址池。当我们知道在给定时间点想要访问 Internet 的固定用户数量时使用它。

示例:如果我们在一个池中有 4 个公共 IP 地址,那么一次只有 4 个用户的私有 IP 地址被转换为公共地址。
首先有翻译请求的私有 IP 将首先得到翻译(如先到先服务)。如果池中的所有 IP 地址都忙并且收到转换请求,则数据包将被丢弃。

程序(在 ASA 上)–程序与静态 NAT 相同:

  • 步骤 1:配置访问列表 –
    建立访问列表,说明许可条件,即应该允许谁以及应该允许什么协议。
  • 步骤 2:将访问列表应用于接口 -
    access-group 命令将用于说明动作(上面指定的)应该发生的方向(出或入)。
  • 步骤 3:创建网络对象 -
    这将说明将应用动态 NAT 的主机或子网。

    请注意,这里创建了 2 个对象。一个将指定应在其上应用 NAT 的主机或子网(私有 IP 地址),另一个将指定公共 IP 地址池。

  • 第 4 步:创建动态 NAT 语句 –
    此步骤将指定应进行 NAT 的方向以及应在哪个 IP 地址(公共 IP 地址)上转换私有 IP 地址。

例如 NAT (DMZ, OUTSIDE)、Dynamic Private_hosts Public_pool:这表明当流量从 DMZ 流向 OUTSIDE 时将发生动态 NAT 操作,并将 IP 地址(在网络对象 Private_hosts 中指定)转换为可用 IP池(Public_pool)的地址。

例子 -

三个路由器,即Router1(IP地址- 10.1.1.1/24)、Router2(IP地址- 11.1.1.1/24)和Router3(IP地址- 101.1.1.1)连接到ASA(IP地址- 10.1.1.2/24),名称 – INSIDE 和安全级别 – Gi0/0 上的 100,IP 地址 – 11.1.1.2/24,名称 – DMZ 和安全级别 – Gi0/1 上的 50,IP 地址 – 101.1.1.2/24,名称-OUTSIDE 和安全级别– Gi0/2 上的 0)如上图所示。

在此任务中,我们将为从 INSIDE 到 OUTSIDE 的流量以及从 DMZ 到 OUTSIDE 的流量启用动态 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)#no shut 

在Router2上配置IP地址。

Router2(config)#int fa0/0
Router2(config-if)#ip address 11.1.1.1 255.255.255.0
Router2(config-if)#no shut 

在Router3上配置IP地址。

Router3(config)#int fa0/0
Router3(config-if)#ip address 101.1.1.1 255.255.255.0
Router3(config-if)#no shut 

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

asa(config)#int Gi0/0
asa(config-if)#no shut
asa(config-if)#ip address 10.1.1.2 255.255.255.0
asa(config-if)#nameif INSIDE 
asa(config-if)#security level 100
asa(config-if)#exit
asa(config)#int Gi0/1
asa(config-if)#no shut
asa(config-if)#ip address 11.1.1.2 255.255.255.0
asa(config-if)#nameif DMZ
asa(config-if)#security level 50
asa(config-if)#exit
asa(config)#int Gi0/2
asa(config-if)#no shut
asa(config-if)#ip address 101.1.1.2 255.255.255.0
asa(config-if)#nameif OUTSIDE
asa(config-if)#security level 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,它将允许从 OUTSIDE 到 INSIDE 的 ICMP 流量(具有任何掩码的 IP 地址)。
  2. 第二个访问列表已命名为 traffic_dmz,它将允许从 OUTSIDE 到 DMZ 的 ICMP 流量(具有任何掩码的 IP 地址)。

现在,我们必须将此访问列表应用于 ASA 接口:

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

第一条语句声明访问列表 traffic_out 向内应用到 OUTSIDE 接口
第二个语句声明访问列表 traffic_dmz 向内应用于 DMZ 接口。
现在,INSIDE 设备将能够 ping OUTSIDE 和 DMZ 设备。
现在,任务是在整个子网 (10.1.1.0/24) 流量从 INSIDE 到 OUTSIDE 以及网络 (11.1.1.0/24) 的流量从 DMZ 到 OUTSIDE 时在 ASA 上启用动态 NAT。

asa(config)#object network inside_nat
asa(config-network-object)#subnet 10.1.1.0 255.255.255.0
asa(config-network-object)#exit

首先,我们指定了应该翻译哪个子网。

asa(config)#object network NAT_pool
asa(config-network-object)#range 110.1.1.1 110.1.1.4
asa(config-network-object)#exit

现在,已经创建了包含公共 IP 地址的 NAT 池(私有 IP 地址被转换为其中)。现在,将指定 NAT 转换的方向。

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

现在,对从 DMZ 到 OUTSIDE 的流量应用 NAT。

asa(config)#object network dmz_nat
asa(config-network-object)#subnet 11.1.1.0 255.255.255.0
asa(config-network-object)#exit

现在,为此流量创建 NAT 池。

asa(config)#object network dmz_nat_pool
asa(config-network-object)#range 120.1.1.1 120.1.1.4
asa(config-network-object)#exit

池 dmz_nat_pool 包含 4 个公共 IP 地址,范围从(120.1.1.1 到 120.1.1.4)。现在,指定了 NAT 转换的方向。

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

上述命令指定应使用动态 NAT 将 dmz_nat 中的子网转换为池 dmz_nat_pool 的 IP 地址之一。