NAT(Network Address Translation) 术语: 内部本地:源端未NAT的私有IP 内部全局:源端NAT后的公有IP 外部全局:目标端NAT的公有IP 外部本地:目标端实际的私有IP

Static NAT: 将私有IP地址的主机映射到其单独的公有IP中,即实现外网与内网的一对一IP映射。 命令: (config)#ip nat  inside         source          static 10.1.1.1 202.106.224.48 (outside) (destination) 建立静态NAT INSIDE表,把源10.1.1.1转换为202.106.224.48,即把内部的源IP映射到外部IP。 ip nat inside source 将inside口的源IP进行转换(本地-全局),以及outside口的目的IP进行转换(全局-本地)。 ip nat outside des 将outside的目的IP进行转换,有待试验。

也可以使用outside和destination,则后跟目标地址然后是源地址,也就是把外部的目标IP映射为内部IP, 但仅对TCP有效,PING无效。 (config-inf)#ip nat inside (outside) 设定此接口为内部或外部接口。 在路由器中分别选定出口和入口接口,入口为内网IP与路由器的接口,出口为路由器与外网的接口。 NAT表没有名字,只有INSIDE和OUTSIDE两个表,所以在接口应用的时候只需告知使用的是INSIDE表还是OUTSIDE表即可。

Dynamic NAT: 就内网IP对应的外网公有IP设立一个地址池,使得内网IP随机的被映射为地址池中的IP连接到互联网。 命令: (config)#access-list 1 permit 10.1.1.1 0.0.0.255 建立一个ACL表,内容是10.1.1.1-255的IP (config)#ip nat pool name 202.106.224.1 202.106.224.254 netmask 255.255.255.0 建立叫NAME的动态NAT地址池,范围是202.106.224.1-254。 (config)#ip nat inside source list 1 pool name 建立静态NAT INSIDE表,把ACL 1中的地址转换到动态NAT地址池NAME中罗列的IP。 (config-inf)#ip nat inside 也就是说实际应用中是通过建立ACL产生有效地址范围,再建立NAT地址池,然后将两者放入静态NAT表中实现的。这时ACL的作用类似一种RANGE。 建立的pool可以是本地地址池,也可以是全局地址池,根据用在source还是destination区分。

PAT(Port Address Translation) 将内网全部IP映射到一个外网公有IP上,外网认知内网的唯一方法是通过不同的协议PORT号。 命令: 基本命令与DNAT相同,只是在建立NAT表时需要 ip nat inside source list 1 pool name overload. 且 name 池中的地址范围只能是一个IP地址,因为这个是将内网IP(LIST1中的)映射到同一个外网公有IP的不同端口上,所以此目标地址池NAME中只能有一个IP地址。 对于PAT让NAME池有地址范围的意义仅在于当传输TCP端口有冲突是才会使用范围中的次要地址作为公网IP映射。