●
CIDR
和
NAT
的出现都是为了解决
IPv4
地址不足的问题,就目前现状而言,这些方法确实起到了不错的效果,也正是由于它们的有效使用,延缓了
IPv6
替代
IPv4
的步伐。但应该明白,
IPv6
显然才是解决地址不足问题的更长效的方法,而
CIDR
和
NAT
只是过渡性方法。
●
CIDR
的主要作用:在路由表中汇总更为高效,从而提高了路由表的可扩展性。由于它可以汇总多个有类网络为单条路由,这可以看作是子网划分的逆过程,所以又称为超网(
supernetting
)。
●
私有地址主要用于在局域网分配,这些地址在
Internet
上是无效的。这样可以很好地隔离局域网和
Internet
。
RFC 1918
定义了三类私有地址段:
1
)
A
类私有地址:
10.0.0.0 �C 10.255.255.255
2
)
B
类私有地址:
172.16.0.0 �C 172.31.255.255
3
)
C
类私有地址:
192.168.0.0 �C 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.1
的
IP
包时,
NAT
路由器又将其目的地址转换为
192.168.0.1
,这样内部主机就可以接收到返回的
IP
包了。
●
一些
NAT
术语:
1
)
Inside Local address
(内部局域地址):分配给企业网络内部的主机,一般为私有地址。
2
)
Inside Global address
(内部全球地址):分配给企业网络内部的主机,一般是该企业所拥有的公网
IP
地址。
3
)
Outside Local address
(外部局域地址):分配给公网上的主机,一般为私有地址。
4
)
Outside 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 Local
和
Inside 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 PAT
,
NAT
路由器不但需要翻译
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