实验目的:

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