目前NAT一共有三种用法
 
第一:是一个公有地址对应一个私有地址
 
第二: 几个私有地址对应几个公有地址(数量不需要相等,公有地址多的话,就不会做NAT转换了,还不如一个人直接给一个公有地址。这点别搞胡涂了。所以这个一般出现在一群私有地址对应几个公有IP地址情况)

第三种是:一个公有地址对应一大群私有地址(这个目前用的很多)
 

 
设置NAT功能的路由器至少要有一个内部端口(Inside),一个外部端口(Outside)。内部端口连接的网络用户使用的是内部IP地址。 内部端口可以为任意一个路由器端口。外部端口连接的是外部的网络,如Internet 。外部端口可以为路由器上的任意端口。
  设置NAT功能的路由器的IOS应支持NAT功能(本文事例所用路由器为Cisco2501,其IOS为11.2版本以上支持NAT功能)。

四、关于NAT的几个概念:
  内部本地地址(Inside local address):分配给内部网络中的计算机的内部IP地址。
  内部合法地址(Inside global address):对外进入IP通信时,代表一个或多个内部本地地址的合法IP地址。需要申请才可取得的IP地址。
五、NAT的设置方法:
  NAT设置可以分为静态地址转换、动态地址转换、复用动态地址转换。

1、静态地址转换适用的环境

静态地址转换将内部本地地址与内部合法地址进行一对一的转换,且需要指定和哪个合法地址进行转换。如果内部网络有E-mail服务器或FTP服务器等可以为外部用户提供的服务,这些服务器的IP地址必须采用静态地址转换,以便外部用户可以使用这些服务。
  静态地址转换基本配置步骤:
   (1)、在内部本地地址与内部合法地址之间建立静态地址转换。在全局设置状态下输入:
    Ip nat inside source static 内部本地地址 内部合法地址
  (2)、指定连接网络的内部端口 在端口设置状态下输入:
     ip nat inside
  (3)、指定连接外部网络的外部端口 在端口设置状态下输入:
     ip nat outside
  注:可以根据实际需要定义多个内部端口及多个外部端口。
实例1:
本实例实现静态NAT地址转换功能。将2501的以太口作为内部端口,同步端口0作为外部端口。其中10.1.1.2,10.1.1.3,10.1.1.4的内部本地地址采用静态地址转换。其内部合法地址分别对应为192.1.1.2,192.1.1.3,192.1.1.4。
路由器2501的配置:
Current configuration:
hostname 2501
ip nat inside source static 10.1.1.2 192.1.1.2
ip nat inside source static 10.1.1.3 192.1.1.3
ip nat inside source static 10.1.1.4 192.1.1.4

interface Ethernet0
ip address 10.1.1.1 255.255.255.0
ip nat inside

interface Serial0
description "Connect to ISP"
ip address 192.1.1.1 255.255.255.0
ip nat outside
bandwidth 2000
no fair-queue
clockrate 2000000
ip route 0.0.0.0 0.0.0.0 Serial0

配置完成后可以用以下语句进行查看:
show ip nat statistcs
show ip nat translations

2、动态地址转换适用的环境:

动态地址转换也是将本地地址与内部合法地址一对一的转换,但是动态地址转换是从内部合法地址池中动态地选择一个末使用的地址对内部本地地址进行转换。
  动态地址转换基本配置步骤:
  (1)、在全局设置模式下,定义内部合法地址池
   ip nat pool 地址池名称 起始IP地址 终止IP地址 子网掩码
   其中地址池名称可以任意设定。
  (2)、在全局设置模式下,定义一个标准的access-list规则以允许哪些内部地址可以进行动态地址转换。
   Access-list 标号 permit 源地址 通配符
   其中标号为1-99之间的整数。
  (3)、在全局设置模式下,将由access-list指定的内部本地地址与指定的内部合法地址池进行地址转换。
   ip nat inside source list 访问列表标号 pool内部合法地址池名字
  (4)、指定与内部网络相连的内部端口在端口设置状态下:
   ip nat inside
  (5)、指定与外部网络相连的外部端口
   Ip nat outside
实例2:
   本实例中硬件配置同上,运用了动态NAT地址转换功能。将2501的以太口作为内部端口,同步端口0作为外部端口。其中10.1.1.0网段采用动态地址转换。对应内部合法地址为192.1.1.2~192.1.1.10
Current configuration:
hostname 2501
ip nat pool aaa 192.1.1.2 192.1.1.10 netmask 255.255.255.0
ip nat inside source list 1 pool aaa
interface Ethernet0
ip address 10.1.1.1 255.255.255.0
ip nat inside
interface Serial0
ip address 192.1.1.1 255.255.255.0
ip nat outside
bandwidth 2000
clockrate 2000000

ip route 0.0.0.0 0.0.0.0 Serial0
access-list 1 permit 10.1.1.0 0.0.0.255
  3、复用动态地址转换适用的环境:

  复用动态地址转换首先是一种动态地址转换,但是它可以允许多个内部本地地址共用一个内部合法地址。只申请到少量IP地址但却经常同时有多于合法地址个数的用户上外部网络的情况,这种转换极为有用。
  注意:当多个用户同时使用一个IP地址,外部网络通过路由器内部利用上层的如TCP或UDP端口号等唯一标识某台计算机。  
  复用动态地址转换配置步骤:
  在全局设置模式下,定义内部合地址池
  ip nat pool 地址池名字 起始IP地址 终止IP地址 子网掩码
  其中地址池名字可以任意设定。
  在全局设置模式下,定义一个标准的access-list规则以允许哪些内部本地地址可以进行动态地址转换。
  access-list 标号 permit 源地址 通配符
  其中标号为1-99之间的整数。
  在全局设置模式下,设置在内部的本地地址与内部合法IP地址间建立复用动态地址转换。
 ip nat inside source list 访问列表标号 pool 内部合法地址池名字 overload
  在端口设置状态下,指定与内部网络相连的内部端口
  ip nat inside
  在端口设置状态下,指定与外部网络相连的外部端口
  ip nat outside
实例:应用了复用动态NAT地址转换功能。将2501的以太口作为内部端口,同步端口0作为外部端口。10.1.1.0网段采用复用动态地址转换。假设企业只申请了一个合法的IP地址192.1.1.1。
2501的配置
Current configuration:
hostname 2501
ip nat pool bbb 192.1.1.1 192.1.1.1 netmask 255.255.255.0
ip nat inside source list 1 pool bbb overload
interface Ethernet0
ip address 10.1.1.1 255.255.255.0
ip nat inside

interface Serial0
ip address 192.1.1.1 255.255.255.0
ip nat outside
no ip mroute-cache
bandwidth 2000
no fair-queue
clockrate 2000000
ip route 0.0.0.0 0.0.0.0 Serial0
access-list 1 permit 10.1.1.0 0.0.0.255