实训目的
- 熟悉动态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)。
实训拓扑
实训所需设备:
设备类型 | 设备型号 | 数量 |
---|---|---|
路由器 | RSR20 | 1 |
三层交换机 | S3760 | 1 |
主机 | Windows 10 | 4 |
实训步骤
步骤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)#ip address 218.85.152.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/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 JX1 218.85.152.98 218.85.152.99 netmask 255.255.255.0
//定义名为JX1的地址池,本例中有2个出口地址,218.85.152.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 JX1 overload
//设置动态NAT规则
R1(config)#end
R1#
以上规则创建了动态的NAT,将多个内网地址192.168.1.0/24 经过R1转换成多个公网地址(218.85.152.98或218.85.152.99),这个规则有3个特点:
- 多对多的动态转换,内网访问外网会在地址池内择一转换。
- 除了外网接口的公网IP外,地址池中的其他地址,并不需要配置,路由器会根据内部的NAT表来响应。
- 在锐捷RSR20中,外网地址是依次轮流使用的,例如PC1先发起连接,则 218.85.152.98 会先分配给PC1,下一台PC分配到 218.85.152.99,再下一台PC分配到 218.85.152.98,依此循环,重复使用。
步骤5:验证。
R1#show ip nat translations
在R1中show ip nat translations,发现此时表为空。
在PC1的浏览器中访问http://218.85.152.100 ,可以看到,R1分配了IP地址 218.85.152.98 给PC1作为临时外网地址。
在PC2的浏览器中访问http://218.85.152.100 ,可以看到,R1分配了IP地址 218.85.152.99 给PC2作为临时外网地址。
在PC3的浏览器中访问http://218.85.152.100 ,可以看到,R1分配了IP地址 218.85.152.98给PC3作为临时外网地址。
查看R1的NAT转换表
R1#show ip nat translations
在Server中查看其arp,发现Server虽然能响应PC1~3的连接,但是Server并不知道PC1 ~ 3的存在。这就是NAT起的作用。
Server中有 218.85.152.98 和 218.85.152.99 的MAC地址(都是R1的F0/0端口MAC),但是Server主动去ping 218.85.152.99 却丢包,说明动态NAT的其他地址(218.85.152.99)不需要配置,R1上也没有真正的 218.85.152.99,R1会根据内部的NAT表来响应与 218.85.152.99相关的通讯。
例如内网PC2临时映射了 218.85.152.99,则在外网返回数据给 218.85.152.99 时,R1会将数据返回给PC2,而外网主动连接 218.85.152.99 时,R1没有在NAT表中没有找到匹配记录,于是丢弃,不响应。
步骤6:NAT表的超时。
PC1 ~ 3都不访问Server,静等2分钟后,在R1中show ip nat translations,发现此时表已清空。