NAT中文意思是“网络地址转换”,它是一个IETF(Internet Engineering Task Force, Internet工程任务组)标准,允许一个整体机构以一个公用IP(Internet Protocol)地址出现在Internet上。顾名思义,它是一种把内部私有网络地址(IP地址)翻译成合法网络IP地址的技术。
      出现的目的:NAT 为了解决 IPv4 地址耗费问题的临时性解决方案。
 
NAT设备的工作方式:
      NAT设备维护一个状态表,用来把非法的IP地址映射到合法的IP地址上去。每个包在NAT设备中都被翻译成正确的IP地址,发往下一级,这意味着给处理器带来了一定的负担。但对于一般的网络来说,这种负担是微不足道的。
      在运行NAT的路由器中,当数据包被传送时,NAT可以转换数据包的IP地址和TCP/UDP数据包的端口号。设置NAT功能的路由器至少要有一个Inside(内部)端口和一个Outside(外部)端口。内部端口连接内网的用户,外部端口一般连接到Internet。当IP数据包离开内部网络时,NAT负责将内网IP源地址(通常是专用地址)转换为合法的公共IP地址。当IP数据包进入内网时,NAT将合法的公共IP目的地址转换为内网的IP源地址。
 
      NAT有三种类型:静态NAT(Static NAT)、动态地址NAT(Pooled NAT)、网络地址端口转换NAPT(Port-Level NAT)。
 
     静态NAT
      静态NAT设置起来最为简单和最容易实现的一种,内部网络中的每个主机都被永久映射成外部网络中的某个合法的地址。
      这种方法主要用在内部网络中有对外提供服务的服务器,如WEB、MAIL服务器时。这些服务器的IP地址必须采用静态地址转换,以便外部用户可以使用这些服务。该方法的缺点是需要独占宝贵的合法IP地址。即,如果某个合法IP地址已经被NAT静态地址转换定义,即使该地址当前没有被使用,也不能被用作其它的地址转换。
 
     动态地址NAT
      动态地址NAT则是在外部网络中定义了一系列的合法地址,采用动态分配的方法映射到内部网络。
      动态地址NAT只是转换IP地址,它为每一个内部的IP地址分配一个临时的外部IP地址,主要应用于拨号,对于频繁的远程联接也可以采用动态NAT。当远程用户联接上之后,动态地址NAT就会分配给他一个IP地址,用户断开时,这个IP地址就会被释放而留待以后使用。
 
     网络地址端口转换NAPT
      NAPT则是把内部地址映射到外部网络的一个IP地址的不同端口上。
      网络地址端口转换NAPT(Network Address Port Translation)是人们比较熟悉的一种转换方式。NAPT普遍应用于接入设备中,它可以将中小型的网络隐藏在一个合法的IP地址后面。
      优点:在Internet中使用NAPT时,所有不同的信息流看起来好像来源于同一个IP地址。这个优点在小型办公室内非常实用,通过从ISP处申请的一个IP地址,将多个连接通过NAPT接入Internet。对于只申请到少量IP地址甚至只有一个合法IP地址,却经常有很多用户同时要求上网的情况,这种转换方式非常有用。
      上面的优点虽然这样会导致信道的一定拥塞,但考虑到节省的ISP上网费用和易管理的特点,用NAPT还是很值得的。
NAPT与动态地址NAT不同,它将内部连接映射到外部网络中的一个单独的IP地址上,同时在该地址上加上一个由NAT设备选定的TCP端口号。
 
 
Cisco路由器配置3中NAT的主要命令:
      静态NAT:
      1、指定NAT内部接口
      在内网相应接口的接口配置模式下执行:ip nat inside
      2、指定NAT外部接口
      在外网相应接口的接口配置模式下执行:ip nat outside
      3、在内部本地地址与内部全局地址之间建立静态地址转换关系:
      ip nat insde source static 内部本地地址 内部全局地址
 
 
      动态地址NAT:
      1、指定NAT内部接口
      在内网相应接口的接口配置模式下执行:ip nat inside
      2、指定NAT外部接口
      在外网相应接口的接口配置模式下执行:ip nat outside
      3、在全局配置模式下,定义一个标准的access-list规则,声明允许哪些内部本地地址可以进行动态地址转换:
      access-list list-number permit 源地址 通配符
      其中,list-number为1-99之间的一个任意整数。
      4、在全局配置模式下,定义内部全局地址池:
      ip nat pool 地址池名  起始IP地址  终止IP地址  netmask  子网掩码
      其中,地址池名可以任意设定,但最好有一定的说明意义。
      5、在全局配置模式下,定义符合先前定义的access-list规则的IP数据包与先前定义的地址池中的IP地址进行转换:
      ip nat inside source list list-number pool 内部全局地址池名
 
 
      网络地址端口转换NAPT:
      1、指定NAT内部接口
      在内网相应接口的接口配置模式下执行:ip nat inside
      2、指定NAT外部接口
      在外网相应接口的接口配置模式下执行:ip nat outside
      3、在全局配置模式下,定义内部全局地址池:
      ip nat pool  地址池名  起始IP地址  终止IP地址  netmask  子网掩码
      其中,地址池名可以任意设定,但最好有一定的说明意义。
      4、在全局配置模式下,定义一个标准的access-list规则,声明允许哪些内部本地地址可以进行复用地址转换:
      access-list list-number permit 源地址 通配符
      其中,list-number为1-99之间的一个任意整数。
      5、在全局配置模式下,定义符合先前定义的access-list规则的IP数据包与先前定义的地址池中的IP地址进行复用地址转换:
      ip nat inside source list list-number pool 内部全局地址池名 overload
 
配置实例