2013年(28)
分类: 网络与安全
2013-02-27 17:54:56
简介
NAT(Network Address Translation 网络地址翻译)是一个IETF标准,允许一个机构以一个地址出现在Internet上。NAT技术使得一个私有网络可以通过Internet注册IP连接到外部世界,位于Inside网络和Outside网络中的NAT路由器在发送数据包之前,将内部网络的IP地址隐藏起来不被外界发现,对内部网络设备起到保护的作用,同时,它还帮助网络可以超越地址的限制,合理地安排网络中的公有Internet地址和私有IP地址的使用。
NAT主要优点:
①NAT允许对内部网络实行私有编址,从而维护合法注册的共有编址方案,并节省IP地址。
②NAT增强了公有网络连接的灵活性。
③NAT为内部网络编址方案提供了一致性。
④NAT提供了网络安全性;由于私有网络在实施NAT时不会通告其地址或内部拓扑,因此有效地确保内部网络的安
全,不过,NAT不能完全取代防火墙。
NAT主要缺点:
①参与NAT功能的设备的性能被降低,NAT会增加交换延迟。
②端到端功能减弱,因为NAT会更改端到端地址,因此会阻止一些使用IP寻址的应用程序。
③经过多个NAT地址转换后,数据报地址已改变很多次,因此跟踪数据包将更加困难,排除故障也更具挑战性。
④使用NAT也会使隧道协议(如IPsec)更加复杂,因为NAT会修改数据包头部中的值,从而干扰IPSec和其它隧道协
议执行的完整性检查。
NAT的3种类型:
静态NAT:在静态NAT中,内部网络中的每个主机都被永久映射成外部网络中的某个合法的地址。静态NAT将内部
本地地址与内部全局地址进行一对一的转换。如果内部网络有E-mail服务器或FTP服务器等可以为外部用户提
供的服务,这些服务器的IP地址必须采用静态地址转换,以便外部用户可以访问这些服务。
动态NAT:是动态一对一的映射。动态NAT首先要定义合法地址池,然后采用动态分配的方法映射到内部网络。
NAT过载/端口复用/PAT/PNAT:PAT则是把内部地址映射到外部网络IP地址的不同端口上,从而可以实现多对
一的映射。由上面推论,PAT理论上可以同时支持(65535 - 1024) = 64511个会话连接。但是实际使用中由于
设备性能和物理连接特性是不能达到的,Cisco的路由器NAT功能中每个公共IP最多能有效地支持大约4000个会
话。另外PAT对于节省IP地址是最为有效的。
术语:
内部本地(Inside Local)地址:通常是RFC1918私有地址。
内部全局(Inside Global)地址:当内部主机流量流出NAT路由器时分配给内部主机的有效公有地址。
外部本地(Outside Local)地址:分配给外部网络上主机的本地IP地址,大多情况下,此地址与外部设备的外
部全局地址相同。
外部全局(Outside Global)地址:分配给Internet上主机的可达IP地址。
静态NAT
R1(config)#router eigrp 1
R1(config-router)#no auto-summary
R1(config-router)#network 12.1.1.0 0.0.0.255
R2(config)#router eigrp 1
R2(config-router)#no auto-summary
R2(config-router)#network 12.1.1.0 0.0.0.255
R2(config-router)#network 2.1.1.0 0.0.0.255
配置静态NAT:
R1(config)#ip nat inside source static 172.16.1.2 12.1.1.3 //内部本地与内部全局的静态转换
R1(config)#ip nat inside source static 172.16.1.3 12.1.1.4
R1(config)#int f0/0
R1(config-if)#ip nat inside //配置NAT内部接口
R1(config)#int s1/0
R1(config-if)#ip nat outside //配置NAT外部接口
实验调试:
R1#debug ip nat //查看NAT地址转换的过程
Client:ping 12.1.1.3
R1#show ip nat translations //查看NAT表
说明:在静态映射时,NAT表一直存在。
动态NAT
配置动态NAT:
R1(config)#ip nat pool D_NAT 12.1.1.3 12.1.1.13 netmask 255.255.255.0 //动态NAT转换地址池
R1(config)#access-list 1 permit 172.16.1.0 0.0.0.255 //配置允许动态NAT转换的内部地址
R1(config)#ip nat inside source list 1 pool D_NAT //配置动态NAT映射,将NAT地址池与ACL绑定
R1(config)#int f0/0
R1(config-if)#ip nat inside
R1(config)#int s1/0
R1(config-if)#ip nat outside
实验调试:
R1#clear ip nat translation * //清除动态NAT表
R1#show ip nat translations
PC2:ping 2.1.1.100
说明:
①如果NAT地址池中没有足够的地址作动态映射,则会出现类似下面的信息,提示NAT转换失败,并丢弃数据包:
②动态转换的默认超时时间为24小时,扩展条目默认超时时间为1分钟;可以通过下面的命令来修改超时时间:
R1(config)#ip nat translation timeout timeout //timeout参数的范围是{0-536870|never}
R1#show ip nat statistics //查看NAT转换的统计信息
NAT过载
配置NAT过载:
方法一:
R1(config)#ip nat pool P_NAT1 12.1.1.3 12.1.1.3 netmask 255.255.255.0
R1(config)#access-list 1 permit 172.16.1.0 0.0.0.255
R1(config)#ip nat inside source list 1 pool 1 overload //配置NAT过载
方法二:
R1(config)#ip nat pool P_NAT2 12.1.1.4 12.1.1.14 netmask 255.255.255.0
R1(config)#access-list 1 permit 172.16.1.0 0.0.0.255
R1(config)#ip nat inside source list 1 pool 2 overload
方法三:(可以直接使用outside接口地址配置NAT过载,不必定义地址池)
R1(config)#access-list 1 permit 172.16.1.0 0.0.0.255
R1(config)#ip nat inside source list 1 int s1/0 overload
R1(config)#int f0/0
R1(config-if)#ip nat inside
R1(config)#int s1/0
R1(config-if)#ip nat outside
说明:如果需要转换的主机数量不是很多,可以使用方法一和三;本实验采用的方法三。
实验调试:
R1#show ip nat translations
以上输出表明进行NAT过载转换的每个条目的协议类型和使用的端口号。无论是Ping,还是Telnet等,使用的内部全局地址都是“12.1.1.1”,但是端口号不同。