基本NAT配置命令与原理

来源:互联网 发布:淘宝分类代码生成器 编辑:程序博客网 时间:2024/05/12 03:44

一. 实验目的
本实验的目的是通过配置静态地址传输,动态地址传输,让学员对NAT的工作原理有初步的认识,掌握NAT在路由器上的配置方法,对NAT在网络上的应用有更深的了解。

二. 实验原理
1. 什么是NAT?
NAT即Network Address Translation,它可以让那些使用私有地址的内部网络连接到Internet或其它IP网络上。NAT路由器在将内部网络的数据包发送到公用网络时,在IP包的报头把私有地址转换成合法的IP地址。
2.在NAT实验中需要理解的术语:
1) 内部局部地址(Inside Local):在内部网络中分配给主机的私有IP地址。
2) 内部全局地址(Inside Global):一个合法的IP地址,它对外代表一个或多个内部局部IP地址。
3) 外部全局地址(Outside Global):由其所有者给外部网络上的主机分配的IP地址。
4) 外部局部地址(Outside Local):外部主机在内部网络中表现出来的IP地址。
3.NAT的优点和缺点:
NAT的优点:
(1) 对于那些家庭用户或者小型的商业机构来说,使用NAT可以更便宜,更有效率地接入Internet。
(2) 使用NAT可以缓解目前全球IP地址不足的问题。
(3) 在很多情况下,NAT能够满足安全性的需要。
(4) 使用NAT可以方便网络的管理,并大大提高了网络的适应性。
NAT的缺点:
(1) NAT会增加延迟,因为要转换每个数据包包头的IP地址,自然要增加延迟.
(2) NAT会使某些要使用内嵌地址的应用不能正常工作.

4.NAT的工作原理:
当内部网络中的一台主机想传输数据到外部网络时,它先将数据包传输到NAT路由器上,路由器检查数据包的报头,获取该数据包的源IP信息,并从它的NAT映射表中找出与该IP匹配的转换条目,用所选用的内部全局地址(全球唯一的IP地址)来替换内部局部地址,并转发数据包。
当外部网络对内部主机进行应答时,数据包被送到NAT路由器上,路由器接收到目的地址为内部全局地址的数据包后,它将用内部全局地址通过NAT映射表查找出内部局部地址,然后将数据包的目的地址替换成内部局部地址,并将数据包转发到内部主机。
5.NAT配置中的常用命令:
ip nat {inside|outside}:接口配置命令。以在至少一个内部和一个外部接口上启用NAT。
ip nat inside source static local-ip global-ip:全局配置命令。在对内部局部地址使用静态地址转换时,用该命令进行地址定义。
access-list access-list-number {permit|deny} local-ip-address:使用该命令为内部网络定义一个标准的IP访问控制列表。
ip nat pool pool-name start-ip end-ip netmask netmask [type rotary]:使用该命令为内部网络定义一个NAT地址池。
ip nat inside source list access-list-number pool pool-name [overload]:使用该命令定义访问控制列表与NAT内部全局地址池之间的映射。
ip nat outside source list access-list-number pool pool-name [overload]:使用该命令定义访问控制列表与NAT外部局部地址池之间的映射。
ip nat inside destination list access-list-number pool pool-name:使用该命令定义访问控制列表与终端NAT地址池之间的映射。
show ip nat translations:显示当前存在的NAT转换信息。
show ip nat statistics:查看NAT的统计信息。
show ip nat translations verbose:显示当前存在的NAT转换的详细信息。
debug ip nat:跟踪NAT操作,显示出每个被转换的数据包。
Clear ip nat translations *:删除NAT映射表中的所有内容.

三. 实验设备
Cisco路由器两部,带超级终端的PC机三台,Cisco集线器两台。

四. 实验步骤
(一) 静态NAT,单向动态NAT和PAT:


此主题相关图片如下:


1、配置路由器端口的IP地址,并在RouterB和RouterC上配置到202.116.78.0网段的静态路由。
2、在RouterA上分别为RouterB和RouterC配置一条到达内部全局地址的静态路由。完成配置后使用show ip route,show interface,show running-configuration查看路由配置的正确性。
RouterA#config t
RouterA(config)#ip route 202.116.65.0 255.255.255.0 202.116.64.1
RouterA(config)#ip route 202.116.67.0 255.255.255.0 202.116.66.1
3、在RouterA的f0端口配置ACL过滤掉所有私有地址。
(1)静态NAT:
以RouterB为例
RouterB#config t
RouterB(config)# ip nat inside source static 10.0.1.2 202.116.65.1
RouterB(config)#int f0
RouterB(config-if)#ip nat inside
RouterB(config-if)#int s0
RouterB(config-if)#ip nat outside
查看静态NAT的配置:
RouterB#show ip nat translations
RouterB#show ip nat statistics
RouterB#show ip nat translations verbose
RouterB#debug ip nat
检验静态NAT:
在Host_1上ping 202.116.65.1是否成功?
在Host_3上ping Host_1是否成功?
现在再由Host_1 ping 202.116.65.1是否成功?
为什么?
(2)动态NAT(先删除静态NAT的配置):
以RouterB为例NAT
RouterB#config t
RouterB(config)# ip nat pool CISCO 202.116.65.1 202.116.65.254 netmask 255.255.255.0
RouterB(config)# access-list 1 permit 10.0.1.2 0.0.0.255
RouterB(config)#ip nat inside source list 1 pool CISCO
RouterB(config)#int f0
RouterB(config-if)#ip nat inside
RouterB(config-if)#int s0
RouterB(config-if)#ip nat outside
用(1)中的命令查看动态NAT的配置。
检验动态NAT。
(3)PAT(删除所有NAT配置,保留ACL的配置):
以RouterB为例
RouterB(config)#int loop0
RouterB(config-if)#ip address 202.116.65.1 255.255.255.0
RouterB(config-if)#no shut
RouterB(config)#ip nat inside source list 1 interface loop0 overload