环境:Windows XP 、PacketTracert5.3 、GNS3.0.7.2 、VMware workstation 7.1.2
目的:了解各种NAT的作用和并学会如何配置NAT
说明:
NAT(网络地址转换)是将私有IP地址转化为合法IP的转换技术,它被广泛应用于各种类型Internet接入方式和各种类型的网络中。NAT不仅完美地解决了lP地址不足的题,而且还能够有效地避免来自网络外部的攻击,隐藏并保护网络内部的计算机。 NAT有五种方式:静态Nat、动态Nat 、超载NAT、NAT的TCP负载均衡(只对TCP协议流量)、重叠网络的NAT。
注意NAT中的几个术语:
(1) 内部本地:是由专用网络使用的私有IP地址。
(2) 内部全球:是公共IP地址,是内部本地地址将转换为的注册IP。
(3) 外部全球:是外部主机的实际IP地址
(4) 外部本地:是用来对外部全球IP地址进行转换的IP地址
实验A、(静态NAT)PacketTracert创建如下拓扑:
配置R0:
Router>en
Router#conf t
Router(config)#host R0
R0(config)#int fa0/0
R0(config-if)#ip add 192.168.80.254 255.255.255.0
R0(config-if)#ip nat inside
R0(config-if)#no sh
R0(config-if)#exit
R0(config)#int fa0/1
R0(config-if)# ip add 192.168.21.254 255.255.255.0
R0(config-if)#ip nat inside
R0(config-if)#no sh
R0(config-if)#exit
R0(config)#int s0/0
R0(config-if)#ip add 202.168.12.1 255.255.255.0
R0(config-if)#ip nat outside
R0(config-if)#clock rate 64000
R0(config-if)#no sh
R0(config-if)#exit
R0(config)#ip nat inside source static 192.168.80.80 202.168.12.3
R0(config)#ip nat inside source static tcp 192.168.21.21 21 202.168.12.1 21
R0(config)#ip route 0.0.0.0 0.0.0.0 202.168.12.2
配置R1:
Router>en
Router#conf t
Router(config)#host R1
R1(config)#int fa0/0
R1(config-if)#ip add 192.168.1.254 255.255.255.0
R1(config-if)#no sh
R1(config-if)#exit
R1(config)#int s0/0
R1(config-if)#ip add 202.168.12.2 255.255.255.0
R1(config-if)#no sh
R1(config-if)#exit
测试NAT效果:
实验B、(动态NAT)PacketTracert 创建如下拓扑:
配置R0:
Router>en
Router#conf t
Router(config)#host R0
R0(config)#int fa0/0
R0(config-if)#ip add 192.168.80.254 255.255.255.0
R0(config-if)#no sh
R0(config-if)#exit
R0(config)#int s0/0
R0(config-if)#ip add 202.168.12.1 255.255.255.0
R0(config-if)#no sh
配置R1:
Router>en
Router#conf t
Router(config)#host R1
R1(config)#int fa 0/0
R1(config-if)#ip add 192.168.0.254 255.255.255.0
R1(config-if)#ip nat inside
R1(config-if)#no sh
R1(config-if)#exit
R1(config)#int fa0/1
R1(config-if)#ip add 192.168.1.254 255.255.255.0
R1(config-if)#ip nat inside
R1(config-if)#no sh
R1(config-if)#exit
R1(config)#int s0/0
R1(config-if)#ip add 202.168.12.2 255.255.255.0
R1(config-if)#clock rate 64000
R1(config-if)#ip nat outside
R1(config-if)#no sh
R1(config-if)#exit
R1(config)#access-list 1 deny 192.168.0.0 0.0.0.255
R1(config)#access-list 1 permit 192.168.1.0 0.0.0.255
R1(config)#ip nat pool InternetPool 202.168.12.3 202.168.12.10 netmask 255.255.255.0
R1(config)#ip nat inside source list 1 pool InternetPool
R1(config)#ip route 0.0.0.0 0.0.0.0 202.168.12.1
测试NAT效果:
实验C、(超载NAT)PacketTracert创建拓扑:
配置R0:
Router>en
Router#conf t
Router(config)#host R0
R0(config)#int fa0/0
R0(config-if)#ip add 192.168.80.254 255.255.255.0
R0(config-if)#no sh
R0(config-if)#exit
R0(config)#int s0/0
R0(config-if)#ip add 202.168.12.1 255.255.255.0
R0(config-if)#clock rate 64000
R0(config-if)#no sh
R0(config-if)#exit
配置R1:
Router>en
Router#conf t
Router(config)#int fa0/0
Router(config-if)#exit
Router(config)#host R1
R1(config)#int fa0/0
R1(config-if)#ip add 192.168.0.254 255.255.255.0
R1(config-if)#ip nat inside
R1(config-if)#no sh
R1(config-if)#exit
R1(config)#int fa0/1
R1(config-if)#ip add 192.168.1.254 255.255.255.0
R1(config-if)#ip nat inside
R1(config-if)#no sh
R1(config-if)#exit
R1(config)#int s0/0
R1(config-if)#ip add 202.168.12.2 255.255.255.0
R1(config-if)#ip nat outside
R1(config-if)#no sh
R1(config-if)#exit
R1(config)#access-list 1 deny 192.168.0.0 0.0.0.255
R1(config)#access-list 1 permit 192.168.1.0 0.0.0.255
R1(config)#ip nat inside source list 1 int s0/0 overload
R1(config)#ip route 0.0.0.0 0.0.0.0 192.168.12.1
测试NAT效果:
实验D、(NAT的TCP负载均衡)GNS与Vmware workstation7.1.2结合创建如下拓扑:
说明:
(1)两台安装好的windows 2003 虚拟机FTP1 和FTP2,并搭建FTP服务器
(2)FTP1与FTP2 关联到VMware workstation的vmnet1网卡,并按图配置IP。
(3)PC关联到物理电脑的Loopback 0网卡,并按图配置IP
(4)注意:NAT 的TCP负载分配只针对TCP流量,其它的流量不能实现
配置R1:
Router>en
Router#conf t
Router(config)#host R0
R1(config)#int e0/3
R1(config-if)#ip add 192.168.21.254 255.255.255.0
R1(config-if)#ip nat inside
R1(config-if)#no sh
R1(config-if)#exit
R1(config)#int e0/2
R1(config-if)#ip add 202.168.12.1 255.255.255.0
R1(config-if)#ip nat outside
R1(config-if)#no sh
R1(config-if)#exit
R1(config)#access-list 1 permit host 202.168.12.21
R1(config)#ip nat pool realIP 192.168.21.1 192.168.21.2 netmask 255.255.255.0 type rotary //轮循的从NAT中取出IP地址转换成公共的IP
R0(config)#ip nat inside destination list 1 pool realIP
R0(config)#ip route 0.0.0.0 0.0.0.0 202.168.12.2
配置R2:
Router>en
Router#conf t
Router(config)#host R2
R2(config)#int e0/2
R2(config-if)#ip add 202.168.12.2 255.255.255.0
R2(config-if)#no sh
R2(config-if)#exi
R2(config)#int e0/0
R2(config-if)#ip add 192.168.1.254 255.255.255.0
R2(config-if)#no sh
R2(config-if)#exit
测试NAT效果:
1、 开启虚拟机FTP1,关闭虚拟机FTP2,在物理机上访问ftp://202.168.12.21
2、关闭虚拟机FTP1,开启虚拟机FTP2,在物理机上访问ftp://202.168.12.21
实验E、(重叠网络的NAT)PacketTracert 5.3创建拓扑:
配置R0:
Router>en
Router#conf t
Router(config)#host R0
R0(config)#int fa0/1
R0(config-if)#ip add 192.168.19.254 255.255.255.0
R0(config-if)#no sh
R0(config-if)#exit
R0(config)#int s0/0
R0(config-if)#ip add 202.168.12.1 255.255.255.0
R0(config-if)#no sh
R0(config-if)#exit
R0(config)#ip route 0.0.0.0 0.0.0.0 202.168.12.2
配置R1:
Router>en
Router#conf t
Router(config)#host R1
R1(config)#int fa0/1
R1(config-if)#ip add 192.168.19.254 255.255.255.0
R1(config-if)#ip nat inside
R1(config-if)#no sh
R1(config-if)#exit
R1(config)#int s0/0
R1(config-if)#ip add 202.168.12.2 255.255.255.0
R1(config)#ip nat outside
R1(config-if)#clock rate 64000
R1(config-if)#no sh
R1(config-if)#exit
R1(config)#ip nat inside source static 192.168.19.80 202.168.12.80
R1(config)#ip nat inside source static 192.168.19.53 202.168.12.53
R1(config)#ip route 0.0.0.0 0.0.0.0 202.168.12.1
当这样配置完成后发现:
(1) R0不能访问R1的私有网络,R1也不能访问R0的私有网络。
(2) 两边的私有网络都不能互访。
(3) 同一局域网内主机可以互访。DNS能解析域名kkfloat.com并浏览WWW服务器
(4) R1私有网络中的主机能ping通202.168.12.80 和202.168.12.53 说明NAT没问题。
原因是R1与R2的私有网络发生了网络重叠。当数据包流到各自网络的路由器时,路由器都误以为目标网络与源网络都是自己的私有网络,所以数据包并不会在串行接口上流出去而是把数据包发送到自己的私有网络接口上。
解决网络重叠问题按如下配置R0:
R0>en
R0#conf t
R0(config)#int fa0/1
R0(config-if)#ip nat inside
R0(config-if)#exit
R0(config)#int s0/0
R0(config-if)#ip nat outside
R0(config-if)#exit
R0(config)#ip nat pool netout 202.168.12.10 202.168.12.30 netmask 255.255.255.0
R0(config)#ip nat pool netin 172.16.0.1 172.16.0.254 netmask 255.255.255.0
R0(config)#access-list 1 permit 192.168.19.0 0.0.0.255
R0(config)#ip nat inside source list 1 pool netout overload
R0(config)#ip nat outside source list 1 pool netin
测试NAT效果:
注意:当PC0 使用“ping 192.168.19.53”或“ping 192.168.19.80”时依然是ping不通目标主机的。