NAT(Network Address Translation)
网络地址转换
- 私有IPv4地址
私有地址空间
10.0.0.0-10.255.255.255
172.16.0.0-172.31.255.255
192.168.0.0 -192.168.255.255
2、NAT概述
Internet 技术的飞速发展,使越来越多的用户加入到互联网,因此IP 地址短缺已成为
一个十分突出的问题。NAT(Network Address Translation,网络地址翻译)是解决IP 地址
短缺的重要手段。
NAT 是一个IETF 标准,允许一个机构以一个地址出现在Internet 上。NAT 技术使得一
个私有网络可以通过Internet 注册IP 连接到外部世界,位于Inside 网络和Outside 网络中的NAT 路由器在发送数据包之前,负责把内部IP 地址翻译成外部合法IP 地址。NAT 将每个局域网节点的IP 地址转换成一个合法IP 地址,反之亦然。它也可以应用到防火墙技术里,把个别IP 地址隐藏起来不被外界发现,对内部网络设备起到保护的作用,同时,它还帮助网络可以超越地址的限制,合理地安排网络中的公有Internet 地址和私有IP 地址的使用。
3、NAT术语
内部本地地址:转转之前内部源地址的名字
外部本地地址:转换之前目标主机的名字
内部全局地址:转换之后内部主机的名字
外部全局地址:转换之后外部目标主机的名字
3、NAT三种类型
(1)静态NAT
将内部本地地址与内部全局地址进行一对一的明确转换。这种方法主要用在内部网络中有对外提供的服务器,如WEB、MAIL服务器时,该方法的缺点是需要独占宝贵的合法IP地址。即,如果某个合法IP地址已经被NAT静态地址转换定义,即时该地址当前没有被使用,也不能被用作其它的地址转换。
(2)动态NAT
动态地址转换也是将内部本地地址与内部全局地址进行一对一的转换。但是,是从内部全局地址翅中动态地选择一个未使用的地址对内部本地地址进行转换。该地址是由未被使用的地址组成的地址池中在定义时排在最前面的一个。当数据传输完毕后,路由器将把使用完的内部全局地址放回到地址池中,以供其它内部本地地址进行转换,但是在该地址被使用时,不能用改地址再进行一次转换。
(3)端口复用
复用地址转换也称为端口地址转换(PORT Address Translation,PAT),首先是一种动态地址转换。路由器将通过记录地址、应用程序端口等唯一标识一个转换。通过这种转换,可以是多个内部本地地址同时与同一个内部全局地址进行转换并对外部网络进行访问。对于只申请到少量IP地址甚至只有一个合法IP地址,却经常有很多用户同时要求上网的情况,这种转换方式非常有用
理想状态下,一个单一的IP可以使用的端口数为4000个
- 配置
(1)静态NAT转换
设置NAT内部和外部接口
(config)#interface f0/0
(config-if)#ip nat inside
(config)#interface f1/0
(config-if)#ip nat outside
指定地址转换映射
(config)#ip nat inside source static local-ip global-ip [extendable]
当需要访问多个网段的时候,加extendable
(config)#show ip nat translations
(config)#ip route 0.0.0.0 .0.0.0.0 ip-address 配置默认路由
可以映射具体的端口,实现通过访问公网ip访问内网的服务器
(config)#ip nat inside source static 协议 local-ip 端口号 global-ip 端口号 [extendable]
(2)动态NAT转换
(config)#interface f0/0
(config-if)#ip nat inside
(config)#interface f1/0
(config-if)#ip nat outside
(config)#access-list access-list-number permit source [source-wildcard] 定义访问控制列表 (使用反掩码)
(config)#ip nat pool pool-name star-ip end-ip {netmask netmask | prefix-length prefix-length} [type rotary] 定义地址池
(config)#ip nat inside source list access-list-number pool pool-name 指定地址转换映射
(config)#show ip nat translations
(3)PAT地址转换(overload)
(config)#interface f0/0
(config-if)#ip nat inside
(config)#interface f1/0
(config-if)#ip nat outside
(config)#access-list access-list-number permit source [source-wildcard] 定义访问控制列表
(config)#ip nat pool pool-name ip-address {netmask netmask | prefix-length prefix-length} [type rotary] 定义地址池(单IP)
Router(config)#ip nat pool onlyone 61.159.62.131 61.159.62.131 netmask 255.255.255.248
(config)#ip nat inside source list access-list-number [ interface interface-number | pool pool-name ] overload
(config)#show ip nat translations
其它命令
查看NAT转换条目
#show ip nat translations [verbose]
查看NAT统计信息
#show ip nat statistics
清除NAT转换表中的所有条目(静态NAT条目不会被清除
)
#clear ip nat translation *
清除包含内部转换的转换条目
#clear ip nat translation inside local-ip global-ip
清除包含外部转换的转换条目
#clear ip nat translation outside local-ip global-ip