实验目的:
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地址数量不足的情况下,此解决方案并不能节省地址使用,因为每个私有地址需要对应一个公有地址。而后续的端口复用技术便可以使多个私有地址映射到一个公有地址,能够满足更加实际的工程需求。此实验完成。
- 还没有人评论,欢迎说说您的想法!