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
。
试验目的:
通过配置静态
NAT
,把
R1
内pc1
的内网ip
地址192.168.1.1
转换为公网ip 192.168.2.6
。
把
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)#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 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
|