hostname(config)#global (dmz) 1 10.1.1.23 当 inside 访问 outside 的时候,地址被转换为 209.165.201.3-209.165.201.10;当 inside 访问 dmz 的时候, 执行 PAT,地址转换为 10.1.1.23;当 dmz 访问 outside 的时候,地址被转换为 209.165.201.3-209.165.201.10;
下面看一个 outside nat 和 inside nat 的例子:
使用 nat 指明一组地址,那么这组地址访问低安全级别或相同安全级别的接口的时候必须要执行 NAT 转换;当这组地址访问高安全级别接口接口的时候,使用 outside 关键字的时候,DMZ 的主机访问 Inside 的 主机的时候,DMZ 主机的地址就会被转换为一个 Inside 网段的一个地址;如果不使用该关键字,那么流量 返回的时候只会根据 static 转换条目转发;
hostname(config)#nat (dmz) 1 10.1.1.0 255.255.255.0 outside hostname(config)#nat (dmz)1 10.1.1.0 255.255.255.0
hostname(config)#static (inside,dmz) 10.1.1.5 10.1.2.27 netmask 255.255.255.255 //用于 DMZ 访问 inside hostname(config)#global(outside) 1 209.165.201.3-209.165.201.4
hostname(config)#global(inside) 1 10.1.2.30-10.1.2.40
当 DMZ 的主机访问 outside 的时候,将源地址转换为 209.165.201.3-209.165.201.4 中的地址;由于存在 到内部的静态 NAT,所以允许从 DMZ 访问内部主机 10.1.2.27,当 DMZ 访问内部 10.1.2.27 主机的时候,包 的源地址为自己的地址,目的地址为 10.1.1.5,ASA 将源地址被转换为 10.1.2.30-10.1.2.40 中的地址,目的地
址根据静态转换转换为 10.1.2.27;
6.6 实验练习
6.6.1 地址重叠
- 21 -
两个网络使用相同的网络地址空间(192.168.100.0/24),但是两个网络中的主机(192.168.100.2)必须 相互通信。要求只能配置防火墙来完成这个任务。
解: 我们用 R1 代替 ASA Inside 地址为 192.168.100.2/24 的主机,用 R3 代替 DMZ 区的 192.168.100.2/24
的 主机;
凡是遇到地址重叠的情况,首先想到的就是使用双向 NAT 来解决; 1.基本路由(只使用静态) R1:
interface Ethernet0/0
ip address 192.168.100.2 255.255.255.0 R2:
interface Ethernet0/0
ip address 10.1.1.2 255.255.255.0 !
interface Ethernet0/1
ip address 192.168.100.22 255.255.255.0 !
R3:
interface Ethernet0/0
ip address 192.168.100.2 255.255.255.0 !
ASA:
interface Ethernet0/0 nameif dmz security-level 50
ip address 10.1.1.1 255.255.255.0 !
interface Ethernet0/1 nameif inside security-level 100
ip address 192.168.100.3 255.255.255.0 access-list outsideacl extended permit ip any any //为了便于测试,所以用 ip any any
2.NAT 配置
将来自 inside 去往 dmz 的 192.168.100.0 网段的流量的 IP 转换为 10.1.2.0 网段中的地址;
- 22 -
static (inside,dmz) 10.1.2.0 192.168.100.0 netmask 255.255.255.0 将来自 dmz 去往 inside 的 192.168.100.0 网段的流量的 IP 转换为 10.1.3.0 网段中的地址; static (dmz,inside) 10.1.3.0 192.168.100.0 netmask 255.255.255.0 因此,此时对于 R3 看来,它是在和 10.1.2.2 通信;在 R1 看来,它是在和 10.1.3.2 通信
3.路由问题:
转换后要重新考虑路由的问题,对于 R2 来说,它并不知道怎么去 10.1.2.0/24 网段,而对于 R1 来说,它不 知道怎么去 10.1.3.0/24 网段,因为我这里使用的是静态路由,因此加静态路由;如果使用的是动态路由协议, 那么就要在 ASA 上将相应的网段通告给相应的设备; r1(config)#ip route 10.1.3.0 255.255.255.0
192.168.100.3 r2(config)#ip route 10.1.2.0 255.255.255.0 10.1.1.1 r3(config)#ip route 10.1.2.0 255.255.255.0 192.168.100.22
对于 ASA,收到 R3 去往 inside 的 192.168.100.0 的包的时候它就会直接转发给和自己直连的 192.168.100.0
网段;但是当 ASA 收到从 R1 返回给 R3 的包的时候,在 outside 方向上却找不到去往 192.168.100.0 的路
上打开 log 可以看到: 由 ,在 ASA
asa(config)# logging on asa(config)# logging buffered 7 asa(config)# show logg %ASA-6-110001: No route to 192.168.100.1 from 10.1.2.1
因此,需要在 outside 方向上加一个去往 192.168.100.0 的静态路由,但是又不能加 24 位的,因为 24 位的已经和 inside 口直连了,因此要加一个掩码不同的网段; route outside 192.168.100.0 255.255.255.128 10.1.1.2 route outside 192.168.100.128 255.255.255.128 10.1.1.2 加完路由后,在 R3 上 telnet 10.1.2.2,然后在防火墙上 show conn 以及在 R1 上 debug ip packet detail 可以看 到:
asa(config)# show conn 1 in use, 10 most used
TCP out 10.1.3.2(192.168.100.2):11005 in 192.168.100.2:23 idle 0:01:12 bytes 111 flags UIOB asa(config)#
r1#show logg
*Mar 1 01:07:15.265: IP: s=10.1.3.2 (Ethernet0/0), d=192.168.100.2 (Ethernet0/0), len 43, rcvd
6.6.2 端口重定向
- 23 -
需求:
1.在 ASA 上配置静态 PAT,转换后的地址为 outside 接口的地址 20.1.1.10,要求在 PC 上 telnet
20.1.1.10 16800 的时候是 telnet 到 R1 上;telnet 20.1.1.10 16811 的时候是 telnet 到 R2 上; 解: 1.
ASA(config)# static (inside,outside) tcp interface 16800 10.1.1.1 23 ASA(config)# static (inside,outside) tcp interface 16811 10.1.1.2 23 放流量:
ASA(config)# access-list outsideacl permit tcp host 20.1.1.1 host 20.1.1.10 eq 16800
ASA(config)# access-list outsideacl permit tcp host 20.1.1.1 host 20.1.1.10 eq 16811
测试:
6.6.3
- 24 -

