5.6 动态NAT
实验目的:
1、掌握动态NAT的基本编写。
2、理解动态NAT的基本特性。
实验拓扑:
实验步骤:
1、依据图中拓扑,配置各个路由器的IP地址,并部署静态和默认路由,配置如下:
R1上
R1(config)# ip route 0.0.0.0 0.0.0.0 12.1.1.2
R2上
R2(config)#ip route 192.168.1.0 255.255.255.0 12.1.1.1
R2(config)#ip route 192.168.2.0 255.255.255.0 12.1.1.1
R2(config)#ip route 0.0.0.0 0.0.0.0 100.1.23.3
测试连通性,如下:
R2#ping 8.8.8.8
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 8.8.8.8, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 28/33/44 ms
R1#ping 8.8.8.8 source 192.168.1.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 8.8.8.8, timeout is 2 seconds:
Packet sent with a source address of 192.168.1.1
.....
Success rate is 0 percent (0/5)
可以看到,边缘路由器可以访问互联网,但是内网无法访问互联网。因为互联网路由器没有到内网的私有路由,一般需要部署NAT技术,将内网地址转换成公网地址,才能实现通信。
2、在R2上部署动态NAT,使得内网所有设备可以访问外网,配置如下:
①定义内网流量和公网地址池
R2(config)#access-list 1 permit 192.168.1.0 0.0.0.255
R2(config)#access-list 2 permit 192.168.2.0 0.0.0.255
R2(config)#ip nat pool DNAT 100.1.23.100 100.1.23.200 netmask 255.255.255.0
②定义内外接口
R2(config)#int f0/0
R2(config-if)#ip nat inside
R2(config-if)#exit
R2(config)#int f1/0
R2(config-if)#ip nat outside
R2(config-if)#exit
③执行动态NAT
R2(config)#ip nat inside source list 1 pool DNAT
3、测试动态NAT,如下:
在R2上调试NAT进程
R2#debug ip nat
在R1上访问互联网
R1#ping 8.8.8.8 source 192.168.1.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 8.8.8.8, timeout is 2 seconds:
Packet sent with a source address of 192.168.1.1
.!!!!
Success rate is 80 percent (4/5), round-trip min/avg/max = 60/77/124 ms
R1#ping 8.8.8.8 source 192.168.2.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 8.8.8.8, timeout is 2 seconds:
Packet sent with a source address of 192.168.2.1
.!!!!
Success rate is 80 percent (4/5), round-trip min/avg/max = 60/69/76 ms
从上面可以看到内网已经能够访问外网。
在R2上查看NAT调试信息
R2#
*Mar 1 00:27:01.063: NAT*: s=192.168.1.1->100.1.23.100, d=8.8.8.8 [6]
*Mar 1 00:27:01.127: NAT*: s=8.8.8.8, d=100.1.23.100->192.168.1.1 [6]
*Mar 1 00:27:01.155: NAT*: s=192.168.1.1->100.1.23.100, d=8.8.8.8 [7]
*Mar 1 00:27:01.187: NAT*: s=8.8.8.8, d=100.1.23.100->192.168.1.1 [7]
*Mar 1 00:27:01.219: NAT*: s=192.168.1.1->100.1.23.100, d=8.8.8.8 [8]
*Mar 1 00:27:01.247: NAT*: s=8.8.8.8, d=100.1.23.100->192.168.1.1 [8]
*Mar 1 00:27:01.279: NAT*: s=192.168.1.1->100.1.23.100, d=8.8.8.8 [9]
*Mar 1 00:27:01.307: NAT*: s=8.8.8.8, d=100.1.23.100->192.168.1.1 [9]
*Mar 1 00:27:44.667: NAT*: s=192.168.2.1->100.1.23.101, d=8.8.8.8 [16]
*Mar 1 00:27:44.719: NAT*: s=8.8.8.8, d=100.1.23.101->192.168.2.1 [16]
*Mar 1 00:27:44.751: NAT*: s=192.168.2.1->100.1.23.101, d=8.8.8.8 [17]
*Mar 1 00:27:44.783: NAT*: s=8.8.8.8, d=100.1.23.101->192.168.2.1 [17]
*Mar 1 00:27:44.815: NAT*: s=192.168.2.1->100.1.23.101, d=8.8.8.8 [18]
*Mar 1 00:27:44.847: NAT*: s=8.8.8.8, d=100.1.23.101->192.168.2.1 [18]
*Mar 1 00:27:44.879: NAT*: s=192.168.2.1->100.1.23.101, d=8.8.8.8 [19]
*Mar 1 00:27:44.907: NAT*: s=8.8.8.8, d=100.1.23.101->192.168.2.1 [19]
从调试过程可以看到,不同的内网地址被翻转到不同的外部地址。
查看R2上NAT转换表
R2#show ip nat translations
Pro Inside global Inside local Outside local Outside global
icmp 100.1.23.100:4 192.168.1.1:4 8.8.8.8:4 8.8.8.8:4
--- 100.1.23.100 192.168.1.1 --- ---
icmp 100.1.23.101:5 192.168.2.1:5 8.8.8.8:5 8.8.8.8:5
--- 100.1.23.101 192.168.2.1 --- ---
从转换表可以看出,内网地址被一一映射到公网地址上。
查看R2上NAT转换状态
R2#show ip nat statistics
Total active translations: 2 (0 static, 2 dynamic; 0 extended)
Outside interfaces:
FastEthernet1/0
Inside interfaces:
FastEthernet0/0, FastEthernet3/0
Hits: 34 Misses: 4
CEF Translated packets: 38, CEF Punted packets: 0
Expired translations: 4
Dynamic mappings:
-- Inside Source
[Id: 2] access-list 1 pool DNAT refcount 2
pool DNAT: netmask 255.255.255.0
start 100.1.23.100 end 100.1.23.200
type generic, total addresses 101, allocated 2 (1%), misses 0
Queued Packets: 0
从上面可以看到公网地址池分配的状态。通过本实验可以看到,动态NAT可以实现内网到外网的地址转换,并且将地址一对一映射出去,但是在Ipv4地址数量不足的情况下,此解决方案并不能节省地址使用,因为每个私有地址需要对应一个公有地址。而后续的端口复用技术便可以使多个私有地址映射到一个公有地址,能够满足更加实际的工程需求。此实验完成。
==========================================
PingingLab・高品质IT教育提供商
CCIE 实验室・IT项目实战・高端人才定制
深圳拼客信息科技有限公司・广州大学城外环西路站
新浪微博:@拼客科技PingingLab @PingingLab-陈鑫杰
PingingLab微信公众号:pinginglab
PingingLab技术交流群:240920680