实训目的

· 熟悉动态NAT/NAPT。

实训背景

NAT(Network Address Translation, 网络地址转换)是1994年提出的,用于将内网地址转换成因特网上的公网地址,并与因特网上其他主机通讯。

动态NAT是在内网连接外网时,临时将内网地址与公网地址组成映射关系,一段时间没用就会删除映射关系。动态NAT一般用在有多个公网地址、并且内网地址同时并发数小于等于公网地址的情况下,单纯的动态NAT一般用在ISP级别,比较少用。

NAPT(Network Address Port Translation, 网络地址端口转换)或者说是NAT overload,是将源地址+源端口与目地址+目端口记录在NAT表中做匹配的,所以可以实现大量内网地址共用少量(1个)公网地址的方式,现在被广泛使用。普通家用路由器就是NAPT方式。

在锐捷RSR20中,动态NAT即使不加overload也是默认端口复用(NAPT)。

实训拓扑

实训所需设备:

环境:Cisco Packet Tracer 8.0
设备: 3台PC,1台二层交换机,1台2811路由器,1台Server服务器

实训步骤

步骤1:基本配置。

R1:

Ruijie>enable
Ruijie#configure terminal
Ruijie(config)#hostname R1
R1(config)#
步骤2:SW1不用配置,当成普通交换机,设置路由器R1内外接口。
R1(config)#interface fastEthernet 0/0
R1(config-if-FastEthernet 0/0)#no shutdown
R1(config-if-FastEthernet 0/0)#ip address 208.60.117.98 255.255.255.0
R1(config-if-FastEthernet 0/0)#ip nat outside
R1(config-if-FastEthernet 0/0)#exit
R1(config)#interface fastEthernet 0/1
R1(config-if-FastEthernet 0/0)#no shutdown
R1(config-if-FastEthernet 0/1)#ip address 192.168.1.1 255.255.255.0
R1(config-if-FastEthernet 0/1)#ip nat inside
R1(config-if-FastEthernet 0/1)#exit
R1(config)#
步骤3:配置PC1、PC2、PC3的IP地址。

PC1:

PC2:

PC3:

Server:

因为Server代表了因特网上的服务器,所以它并不需要把默认网关设置为我们的路由器R1。

步骤4:设置动态NAT规则。
R1(config)#ip nat pool gzccc1 208.60.117.98 208.60.117.99 netmask 255.255.255.0  //定义名为gzccc1的地址池,本例中有2个出口地址,208.60.117.99不需要在F0/0上配置也能使用
R1(config)#access-list 2 permit 192.168.1.0 0.0.0.255   //定义ACL,允许哪些IP可以经过NAT
R1(config)#ip nat inside source list 2 pool gzccc1 overload   //设置动态NAT规则
R1(config)#end
R1#

以上规则创建了动态的NAT,将多个内网地址192.168.1.0/24 经过R1转换成多个公网地址(208.60.117.98或208.60.117.99),这个规则有3个特点:

· 多对多的动态转换,内网访问外网会在地址池内择一转换。

· 除了外网接口的公网IP外,地址池中的其他地址,并不需要配置,路由器会根据内部的NAT表来响应。

· 在锐捷RSR20中,外网地址是依次轮流使用的,例如PC1先发起连接,则 208.60.117.98会先分配给PC1,下一台PC分配到208.60.117.99,再下一台PC分配到 208.60.117.98,依此循环,重复使用。

步骤5:验证。
R1#show ip nat translations

在R1中show ip nat translations,发现此时表为空。

在PC1的浏览器中访问208.60.117.100,可以看到,R1分配了IP地址 218.85.152.98 给PC1作为临时外网地址。

查看R1的NAT转换表

R1#show ip nat translations

在Server中查看其arp,发现Server虽然能响应PC1~3的连接,但是Server并不知道PC1 ~ 3的存在。这就是NAT起的作用。

Server中有 208.60.117.98 和 208.60.117.99 的MAC地址(都是R1的F0/0端口MAC),但是Server主动去ping 208.60.117.99 却丢包,说明动态NAT的其他地址(208.60.117.99)不需要配置,R1上也没有真正的208.60.117.99,R1会根据内部的NAT表来响应与 208.60.117.99相关的通讯。

例如内网PC2临时映射了 208.60.117.99,则在外网返回数据给 208.60.117.99 时,R1会将数据返回给PC2,而外网主动连接 208.60.117.99 时,R1没有在NAT表中没有找到匹配记录,于是丢弃,不响应。

步骤6:NAT表的超时。

PC1 ~ 3都不访问Server,静等2分钟后,在R1中show ip nat translations,发现此时表已清空。

最后修改:2022 年 06 月 06 日
如果觉得我的文章对你有用,请随意赞赏