CIDRNAT的出现都是为了解决IPv4地址不足的问题,就目前现状而言,这些方法确实起到了不错的效果,也正是由于它们的有效使用,延缓了IPv6替代IPv4的步伐。但应该明白,IPv6显然才是解决地址不足问题的更长效的方法,而CIDRNAT只是过渡性方法。
 
CIDR的主要作用:在路由表中汇总更为高效,从而提高了路由表的可扩展性。由于它可以汇总多个有类网络为单条路由,这可以看作是子网划分的逆过程,所以又称为超网(supernetting)。
 
私有地址主要用于在局域网分配,这些地址在Internet上是无效的。这样可以很好地隔离局域网和InternetRFC 1918定义了三类私有地址段:
1A类私有地址:10.0.0.0 – 10.255.255.255
2B类私有地址:172.16.0.0 – 172.31.255.255
3C类私有地址:192.168.0.0 – 192.168.255.255
 
网络地址翻译(NAT)定义在RFC 1631中。有了这项技术,局域网内部的IP地址可以与Internet上的主机进行通信。特别在使用私有地址的局域网中,该项技术使用十分广泛。简单地说:NAT将内部IP地址转换成公网上可用的IP地址,从而实现内部IP地址与外部公网的通信。
举例:假设某公司注册的公网IP地址段是212.2.3.0/24,局域网使用的是私有地址段192.168.0.0/22,已定义NAT记录:202.2.3.1对应192.168.0.1。它的工作过程是这样的:当内部主机192.168.0.1发送IP包时,其源地址为192.168.0.1,通过NAT路由器,其源地址就转换为202.2.3.1,这就是公网上可用的IP地址了。当公网上的服务器接收到这个IP包时,它会认为连接来自202.2.3.1,因为是有效的IP地址,所以可以建立连接并通信,当服务器发送目的地址为202.2.3.1IP包时,NAT路由器又将其目的地址转换为192.168.0.1,这样内部主机就可以接收到返回的IP包了。
 
一些NAT术语:
1Inside Local address(内部局域地址):分配给企业网络内部的主机,一般为私有地址。
2Inside Global address(内部全球地址):分配给企业网络内部的主机,一般是该企业所拥有的公网IP地址。
3Outside Local address(外部局域地址):分配给公网上的主机,一般为私有地址。
4Outside Global address(外部全球地址):分配给公网上的主机,一般为公网地址。
 
静态NAT
静态NAT是最简单的一种NAT配置方式,通过手工配置,建立私有地址和公网地址的一一对应关系。它的主要特性有:
1)一个Inside Local address总是映射到同一个Inside Global address
2)一个Outside Local address也总是映射到同一个Outside Global address
3)不提供公网地址节余。
通常静态NAT用于内部服务器(该服务器分配的是内部私有地址,但允许公网主机访问)的地址配置。
配置示例:
#conf t
(config)#int fa 0/1
(config-if)#ip address 192.168.0.1 255.255.255.0
(config-if)#ip nat inside
(config-if)#int se 0/0
(config-if)#ip address 202.1.2.1 255.255.255.0
(config-if)#ip nat outside
(config-if)#^Z
(config)#ip nat inside source static 192.168.0.1 202.1.2.1
配置好后可以用show ip nat trans查看NAT配置表信息。
 
●不PAT(端口地址翻译)的动态NAT
不带PAT的动态NAT类似于静态NAT,也是创建Inside LocalInside Global地址的一一对应关系,只不过,它不是定义两个单地址之间的映射,而是定义两组地址(地址池)之间的映射,在地址组之间可以实现动态分配。例如可将私有地址组192.168.0.1/24映射到公网地址组202.1.2.1 -- 202.1.2.5。当192.168.0.1/24网段内的主机需要与公网通信时,它会动态地从202.1.2.1 -- 202.1.2.5中选择一个未被占用的,注意这样最多能够支持5台内部主机同时与公网通信。
配置示例:
#conf t
(config)#ip nat pool example 202.1.2.1 200.1.2.2 netmask 255.255.255.252
(config)#access-list 1 permit 192.168.0.1 0.0.0.255
(config)#ip nat inside source list 1 pool example
 
PAT(端口地址翻译)的动态NAT
PAT又称为NAT重载(NAT overloading),它可以提供公网IP地址节余的功能。我们知道,每个连接是用IP地址+端口号来唯一定义的,如果我们使用不同的端口号来建立连接,就可以在一个IP地址上复用多条连接,这就是NAT with PAT的主要思想。
为了实现NAT with PATNAT路由器不但需要翻译IP地址,也要翻译端口号。一般端口号字段的长度是16位,这样最多可以支持65000多个并发的端口连接。
配置示例:
#conf t
(config)#ip nat pool example 202.1.2.1 netmask 255.255.255.252
(config)#access-list 1 permit 192.168.0.1 0.0.0.255
(config)#ip nat inside source list 1 pool example overload