思科ASA防火墙之NAT的一次试验
实验拓扑
软件版本GN3 0.8.6 ASA镜像8.0(2)
实验环境
R1和R2模拟公司内网,R3模拟互联网设备。ASA作为公司出口,实现NAT地址转换。
实验需求
在ASA上做动态NAT实现对R1 loopback 0 网段的地址转换。
在ASA上做动态PAT实现对R1 loopback 1 网段的地址转换。
在ASA上做静态NAT实现对R2 loopback 0 地址经行转换。
在ASA上做静态PAT实现将R2的F0/0的23端口映射为218.1.1.1这个地址的23端口。
地址规划
- R1 loopback 0 IP: 192.168.10.1/24
- R1 loopback 1 IP: 172.16.1.1/24
- R1 F0/0 IP: 11.0.0.2/24
- R2 loopback 0 IP: 192.168.20.1/24
- R2 F0/0 IP: 12.0.0.2/24
- R3 F0/0 IP: 13.0.0.3/24
配置如下:
路由器的一些基本配置这里就不做解释了。 http://www.xiaoxiongboke.com/
R1配置:
- R1(config)#int f0/0
- R1(config-if)#ip add 11.0.0.2 255.255.255.0
- R1(config-if)#no shut
- R1(config-if)#int loo 0
- R1(config-if)#ip add 192.168.10.1 255.255.255.0
- R1(config-if)#int loo 1
- R1(config-if)#ip add 172.16.1.1 255.255.255.0
- R1(config-if)#exit
- R1(config)#ip route 0.0.0.0 0.0.0.0 11.0.0.1
R2配置:
- R2(config)#line vty 0 4
- R2(config-line)#password abc123
- R2(config-line)#login
- R2(config-line)#exit
- R2(config)#ip route 0.0.0.0 0.0.0.0 12.0.0.1
- R2(config-if)#ip add 12.0.0.2 255.255.255.0
- R2(config-if)#no shut
- R2(config-if)#int loo 0
- R2(config-if)#ip add 192.168.20.1 255.255.255.0
R3配置:
- R3(config)#int f0/0
- R3(config-if)#ip add 13.0.0.3 255.255.255.0
- R3(config-if)#no shut
为R1的loopback 0 接口做动态NAT
ASA1配置:
- ASA1(config)# int e0/0
- ASA1(config-if)# nameif inside //定义接口名称
- INFO: Security level for "intside" set to 100 by default.
- ASA1(config-if)# ip add 11.0.0.1 255.255.255.0
- ASA1(config-if)# no shut
- ASA1(config-if)# exit
- ASA1(config)# int e0/1
- ASA1(config-if)# nameif dmz
- INFO: Security level for "dmz" set to 0 by default.
- ASA1(config-if)# ip add 12.0.0.1 255.255.255.0
- ASA1(config-if)# security-level 50 //配置接口安全级别
- ASA1(config-if)# no shut
- ASA1(config-if)# int e0/2
- ASA1(config-if)# nameif outside
- ERROR: Name "outside" has been assigned to interface Ethernet0/0
- ASA1(config-if)# ip add 13.0.0.1 255.255.255.0
- ASA1(config-if)# no shut
- ASA1(config-if)# exit
- ASA1(config)# route inside 192.168.10.0 255.255.255.0 11.0.0.2
- ASA1(config)# route inside 172.16.1.0 255.255.255.0 11.0.0.2 //配置到达环回口的静态路由
- ASA1(config)# route dmz 192.168.20.0 255.255.255.0 12.0.0.2
- ASA1(config)# nat (inside) 1 192.168.10.0 255.255.255.0 //定义列表1,inside口要转换的地址
- ASA1(config)# global (outside) 1 200.1.1.10-200.1.1.20 netmask 255.255.255.0
- //配置公网地址池范围
- ASA1(config)# access-list 110 permit icmp any any //这里为了偷懒就允许所有icmp
在R3上添加回程路由,并开启debug
R3#debug ip icmp
R3#conf t
R3(config)#ip route 200.1.1.0 255.255.255.0 13.0.0.1
R1 loopback 0 ping R3 测试
从R3的debug信息可以看出NAT转换成功了
在ASA上为R1 loopback 1 接口做PAT
ASA1(config)# nat (inside) 2 172.16.1.0 255.255.255.0
ASA1(config)# global (outside) 2 interface
用R1 的 loopback 1 ping R3测试
查看R3上的debug信息,发现转换成功为外网口地址
在ASA上做为R2的loopback 0 做静态NAT,转换为222.222.222.222
ASA1(config)# static (dmz,outside) 222.222.222.222 192.168.20.1 //配置将192.168.20.1这个地址转换为222.222.222.222,注意公网地址是写在前面
在R3上做回程路由
R3(config)#ip route 222.222.222.222 255.255.255.255 13.0.0.1
在R2上ping 13.0.0.3 测试
在R3上查看debug信息,发现转换成功
在ASA上做静态PAT,将R2的F0/0的23端口映射为到218.1.1.1的23端口
ASA1(config)# static (dmz,outside) tcp 218.1.1.1 telnet 12.0.0.2 telnet
//配置将12.0.0.2的23端口映射到218.1.1.1这个地址的23端口,公网地址要写在前面
ASA1(config)# access-list 110 permit tcp host 13.0.0.3 host 218.1.1.1 eq 23
//定义一个ACL允许13.0.0.3对218.1.1.1进行telnet,由于之前110在接口上应用了这里就省略了
在R3上做回程路由
R3(config)#ip route 218.1.1.1 255.255.255.255 13.0.0.1
在R3上telnet 218.1.1.1 ,验证是否能映射到R2
总结:
动态NAT是多对多,定义一个地址池。地址池内有少个地址就可以有多少地址上公网。
动态PAT是一对多,让所有私网地址都复用一个地址去上公网。
静态NAT是一对一,一个私网地址指定一个公网地址。
静态PAT是端口映射,将一个公网地址的某个端口映射到私网的某个地址。