NAT概述
NAT即网络地址翻译
为什么要使用NAT
          随着Internet的飞速发展,网上丰富的资源产生着巨大的吸引力
          接入Internet成为当今信息业最为迫切的需求
 
          但这受到IP地址的许多限制
          首先,许多局域网在未联入Internet之前,就已经运行许多年了,局域网上有了许多现成的资源和应用程序,但它的IP地址分配不符合 Internet的国际标准,因而需要重新分配局域网的IP地址,这无疑是 劳神费时的工作
          其二,随着Internet的膨胀式发展,其可用的IP地址越来越少,要想ISP处申请一个新的IP地址已不是很容易的事了
NAT是如何解决问题的:
          它解决问题的办法是:在内部网络中使用内部地址,通过NAT把内部地址翻译成合法的IP地址,在Internet上使用
          其具体的做法是把IP包内的地址池(内部本地)用合法的IP地址段(内部全局)来替换
NAT三种类型
          NAT有三种类型:静态NATstaticNAT)、NAT池(pooledNAT)和端口NATPAT)。
 
          其中静态NAT设置起来最为简单,内部网络中的每个主机都被永久映射成 外部网络中的某个合法的地址,多用于服务器。
 
          NAT池则是在外部网络中定义了一系列的合法地址,采用动态分配的方法映射到内部网络,多用于网络中的工作站。
 
          PAT则是把内部地址映射到外部网络的一个IP地址的不同端口上。
 
今天我们来配置静态NAT和动态NAT
首先从比较简单的静态NAT开始吧!
试验拓扑图如下:
拓扑介绍:
R1 R2 分别是企业的边界路由器。
R1的外网接口S0/0IP192.168.2.1,内网接口F1/0IP192.168.1.2R1的内网计算机pc1ip地址为192.168.1.1
R2的外网接口S0/0IP192.168.2.2,内网接口F1/0IP192.168.3.1R2的内网计算机pc2ip地址为192.168.3.2
试验目的:
通过配置静态NATR1pc1的内网ip地址192.168.1.1转换为公网ip 192.168.2.6
R2pc2的内网ip地址192.168.3.2转换为公网ip 192.168.2.9
最终实现192.168.1.1 ping192.168.2.9   ping192.168.3.2 则失败
192.168.3.2ping192.168.2.6   ping192.168.1.1 则失败。
上述现象的原因是从外网到内网建立静态映射后,外网能PING通内部全局地址,如果使用真实地址,则访问失败,这是因为从外网没有到达内网的路由存在!
 
试验开始:
R1
 
Router>en
Router#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)#host r1
r1(config)#int f1/0
r1(config-if)#ip addr 192.168.1.2 255.255.255.0
r1(config-if)#no shut
r1(config-if)#ip nat inside                             指定内部接口
r1(config-if)#int s0/0
r1(config-if)#ip addr 192.168.2.1 255.255.255.0
r1(config-if)#ip nat outside                            指定外部接口
r1(config-if)#exit
r1(config)#ip nat inside source static 192.168.1.1 192.168.2.6建立两个ip地址之间的静态映射
r1(config)#exit
 
 
 
Router>en
Router#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)#host r2
r2(config)#int f1/0
r2(config-if)#ip addr 192.168.3.1 255.255.255.0
r2(config-if)#no shut
r2(config-if)#ip nat inside                             指定内部接口
r2(config-if)#int s0/0
r2(config-if)#ip addr 192.168.2.2 255.255.255.0
r2(config-if)#no shut
r2(config-if)#ip nat outside                            指定外部接口
r2(config-if)#exit
r2(config)#ip nat inside source static 192.168.3.2 192.168.2.9建立两个ip地址之间的静态映射
r2(config)#exit
 
配置完成,现在开始验证:
VPCS 1 >ping 192.168.2.9
192.168.2.9 icmp_seq=1 time=345.000 ms
192.168.2.9 icmp_seq=2 time=390.000 ms
192.168.2.9 icmp_seq=3 time=208.000 ms
192.168.2.9 icmp_seq=4 time=190.000 ms
192.168.2.9 icmp_seq=5 time=234.000 ms
 
VPCS 1 >ping 192.168.3.2
192.168.3.2 icmp_seq=1 timeout
192.168.3.2 icmp_seq=2 timeout
192.168.3.2 icmp_seq=3 timeout
192.168.3.2 icmp_seq=4 timeout
192.168.3.2 icmp_seq=5 timeout
 
VPCS 2 >ping 192.168.2.6
192.168.2.6 icmp_seq=1 time=613.000 ms
192.168.2.6 icmp_seq=2 time=256.000 ms
192.168.2.6 icmp_seq=3 time=412.000 ms
192.168.2.6 icmp_seq=4 time=216.000 ms
192.168.2.6 icmp_seq=5 time=155.000 ms
 
VPCS 2 >ping 192.168.1.1
192.168.1.1 icmp_seq=1 timeout
192.168.1.1 icmp_seq=2 timeout
192.168.1.1 icmp_seq=3 timeout
192.168.1.1 icmp_seq=4 timeout
192.168.1.1 icmp_seq=5 timeout
 
192.168.1.1 ping192.168.2.9   ping192.168.3.2 则失败
192.168.3.2ping192.168.2.6   ping192.168.1.1 则失败。
验证结果和试验要求一致,试验成功!
 
 
接下来我们来配置动态NAT
试验拓扑图如下
拓扑介绍:
R1 R2 分别是企业的边界路由器。
R1的外网接口S0/0IP192.168.2.1,内网接口F1/0IP192.168.1.2R1的内网计算机pc1ip地址为192.168.1.6pc2ip地址为192.168.1.7pc3ip地址为192.168.1.8
R2的外网接口S0/0IP192.168.2.2,内网接口F1/0IP192.168.3.1R2的内网计算机pc4ip地址为192.168.3.6pc5ip地址为192.168.3.7pc6ip地址为192.168.3.8
两个交换机都不做任何配置。
试验目的:
通过完成动态NAT的配置,
R1内的内网ip地址转换为公网ip。公网ip地址池为(192.168.2.11------192.168.2.14
R2内的内网ip地址转换为公网ip。公网ip地址池为(192.168.2.15------192.168.2.18
 
试验开始:
R1
 
Router>en
Router#conf t
Router(config)#host r1mmands, one per line.  End with CNTL/Z.
r1(config)#int f1/0
r1(config-if)#ip addr 192.168.1.2 255.255.255.0
r1(config-if)#ip nat inside       指定内部接口
r1(config-if)#no shut
r1(config-if)#exit
r1(config)#int s0/0
r1(config-if)#ip addr 192.168.2.1 255.255.255.0
r1(config-if)#ip nat outside     指定外部接口
r1(config-if)#no shut
r1(config-if)#exit
r1(config)#ip nat pool name1 192.168.2.11 192.168.2.14 netmask 255.255.255.0定义全局地址池
r1(config)#access-list 1 permit 192.168.1.0 0.0.0.255通过标准访问控制列表定义内部网络的上网条件
r1(config)#ip nat inside source list 1 pool name1建立全局地址池和标准访问控制列表之间的映射关系
r1(config)#exit
 
 
R2
Router>en
Router#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)#host r2
r2(config)#int f1/0
r2(config-if)#ip addr 192.168.3.1 255.255.255.0
r2(config-if)#ip nat inside      定义内部接口
r2(config-if)#no shut
r2(config-if)#exit
r2(config)#int s0/0
r2(config-if)#ip addr 192.168.2.2 255.255.255.0
r2(config-if)#ip nat outside     定义外部接口
r2(config-if)#no shut
r2(config-if)#exit
r2(config)#ip nat pool name2 192.168.2.15 192.168.2.18 netmask 255.255.255.0定义全局地址池
r2(config)#access-list 2 permit 192.168.3.0 0.0.0.255通过标准访问控制列表定义内部网络的上网条件
r2(config)#ip nat inside source list 2 pool name2建立全局地址池和标准访问控制列表之间的映射关系
r2(config)#exit
 
 
配置完成,开始验证。在R1 R2show ip nat translations查看NAT地址转换表
R1
r1#show ip nat translations
Pro Inside global      Inside local       Outside local      Outside global
--- 192.168.2.11       192.168.1.6        ---                ---
--- 192.168.2.12       192.168.1.7        ---                ---
--- 192.168.2.13       192.168.1.8        ---                ---
 
 
R2
r2#show ip nat translations
Pro Inside global      Inside local       Outside local      Outside global
--- 192.168.2.15       192.168.3.6        ---                ---
--- 192.168.2.16       192.168.3.7        ---                ---
--- 192.168.2.17       192.168.3.8        ---                ---
查看结果表明R1 R2的内部ip地址都转换成了外网地址。
 
pc1为例,
pc1ping R2内的内网地址都不能通讯。
根据NAT地址转换表,pc 1  ping R2内网地址相应的外网ip则能通讯。
 
VPCS 1 >ping 192.168.3.6
192.168.3.6 icmp_seq=1 timeout
192.168.3.6 icmp_seq=2 timeout
192.168.3.6 icmp_seq=3 timeout
192.168.3.6 icmp_seq=4 timeout
192.168.3.6 icmp_seq=5 timeout
 
VPCS 1 >ping 192.168.3.7
192.168.3.7 icmp_seq=1 timeout
192.168.3.7 icmp_seq=2 timeout
192.168.3.7 icmp_seq=3 timeout
192.168.3.7 icmp_seq=4 timeout
192.168.3.7 icmp_seq=5 timeout
 
VPCS 1 >ping 192.168.3.8
192.168.3.8 icmp_seq=1 timeout
192.168.3.8 icmp_seq=2 timeout
192.168.3.8 icmp_seq=3 timeout
192.168.3.8 icmp_seq=4 timeout
192.168.3.8 icmp_seq=5 timeout
 
VPCS 1 >ping 192.168.2.15
192.168.2.15 icmp_seq=1 time=578.000 ms
192.168.2.15 icmp_seq=2 time=578.000 ms
192.168.2.15 icmp_seq=3 time=484.000 ms
192.168.2.15 icmp_seq=4 time=485.000 ms
192.168.2.15 icmp_seq=5 time=625.000 ms
 
VPCS 1 >ping 192.168.2.16
192.168.2.16 icmp_seq=1 time=813.000 ms
192.168.2.16 icmp_seq=2 time=500.000 ms
192.168.2.16 icmp_seq=3 time=422.000 ms
192.168.2.16 icmp_seq=4 time=687.000 ms
192.168.2.16 icmp_seq=5 time=484.000 ms
 
VPCS 1 >ping 192.168.2.17
192.168.2.17 icmp_seq=1 time=515.000 ms
192.168.2.17 icmp_seq=2 time=454.000 ms
192.168.2.17 icmp_seq=3 time=407.000 ms
192.168.2.17 icmp_seq=4 time=562.000 ms
192.168.2.17 icmp_seq=5 time=438.000 ms