NAT概述:
NAT即网络地址翻译
为什么要使用NAT:
• 随着Internet的飞速发展,网上丰富的资源产生着巨大的吸引力
• 接入Internet成为当今信息业最为迫切的需求
• 但这受到IP地址的许多限制
• 首先,许多局域网在未联入Internet之前,就已经运行许多年了,局域网上有了许多现成的资源和应用程序,但它的IP地址分配不符合 Internet的国际标准,因而需要重新分配局域网的IP地址,这无疑是 劳神费时的工作
• 其二,随着Internet的膨胀式发展,其可用的IP地址越来越少,要想在ISP处申请一个新的IP地址已不是很容易的事了
NAT是如何解决问题的:
• 它解决问题的办法是:在内部网络中使用内部地址,通过NAT把内部地址翻译成合法的IP地址,在Internet上使用
• 其具体的做法是把IP包内的地址池(内部本地)用合法的IP地址段(内部全局)来替换
NAT三种类型
• NAT有三种类型:静态NAT(staticNAT)、NAT池(pooledNAT)和端口NAT(PAT)。
• 其中静态NAT设置起来最为简单,内部网络中的每个主机都被永久映射成 外部网络中的某个合法的地址,多用于服务器。
• 而NAT池则是在外部网络中定义了一系列的合法地址,采用动态分配的方法映射到内部网络,多用于网络中的工作站。
• PAT则是把内部地址映射到外部网络的一个IP地址的不同端口上。
今天我们来配置静态NAT和动态NAT
首先从比较简单的静态NAT开始吧!
试验拓扑图如下:
拓扑介绍:
R1 和 R2 分别是企业的边界路由器。
R1的外网接口S0/0的IP为192.168.2.1,内网接口F1/0的IP为192.168.1.2。R1的内网计算机pc1的ip地址为192.168.1.1。
R2的外网接口S0/0的IP为192.168.2.2,内网接口F1/0的IP为192.168.3.1。R2的内网计算机pc2的ip地址为192.168.3.2。
试验目的:
把R2内pc2的内网ip地址192.168.3.2转换为公网ip 192.168.2.9。
最终实现192.168.1.1 能ping通192.168.2.9 ping192.168.3.2 则失败
192.168.3.2能ping通192.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 能ping通192.168.2.9 ping192.168.3.2 则失败
192.168.3.2能ping通192.168.2.6 ping192.168.1.1 则失败。
验证结果和试验要求一致,试验成功!
接下来我们来配置动态NAT
试验拓扑图如下
拓扑介绍:
R1 和 R2 分别是企业的边界路由器。
R1的外网接口S0/0的IP为192.168.2.1,内网接口F1/0的IP为192.168.1.2。R1的内网计算机pc1的ip地址为192.168.1.6。pc2的ip地址为192.168.1.7。pc3的ip地址为192.168.1.8。
R2的外网接口S0/0的IP为192.168.2.2,内网接口F1/0的IP为192.168.3.1。R2的内网计算机pc4的ip地址为192.168.3.6。pc5的ip地址为192.168.3.7。pc6的ip地址为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)#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)#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
0.0.0
访问控制列表
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)#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)#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
0.0.0
控制列表
r2(config)#exit
配置完成,开始验证。在R1 R2上show 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为例,
在pc1上ping 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
试验结果和预想的一样!试验成功……
本文转自 范琳琳 51CTO博客,原文链接:http://blog.51cto.com/fanlinlin/136393,如需转载请自行联系原作者