公网/内网IP分配及NAT地址转换协议公网/内网IP分配及NAT地址转换协议(转自ReTu rner.D's blog)
上一篇 / 下一篇 2008-10-20 10:43:13 / 个人分类:无线通信
查看( 150 ) / 评论( 0 ) / 评分( 0 / 0 )公网IP/内网IP:
在TCP/IP协议中,专门保留了三个IP地址区域作为私有地址,其地址范围如下:
10.0.0.0/8:10.0.0.0~10.255.255.255
172.16.0.0/12:172.16.0.0~172.31.255.255
192.168.0.0/16:192.168.0.0~192.168.255.255
使用保留地址的网络只能在内部进行通信,而不能与其它网络互连。因为本网络中的地址同样也可能被其它网络使用,如果进行网络互连,那么寻找路由时就会因为地址的不唯一而出现问题。但是这些使用保留地址的网络可以通过将本网络内的保留地址翻译转换成公共地址的方式实现与外部网络的互连。这也是保证网络安全的重要方法之一。
但是有一些宽带运营商尽管也使用了非私有地址分配给用户使用,但是由于路由设置的原因,Internet 上的其它用户并不能访问到这些IP。
我们将这两种情况下应用的IP称为内网IP。
如果自己机器上网络接口的IP地址落在上述保留地址范围内,则可以肯定自己处于内网模式下。
内网IP对Internet的访问必须通过代理的方式,NAT(Network Address Translation)技术是基于TCP 层面的代理,能够相当好地使用于各种IP服务应用,因此被广泛应用。之所以说是相当好,是因为NAT 要求整个服务的连接是从内网向外网主动发起的,而外网用户则无法直接(主动)向内网内网的服务发起连接请求,除非在NAT的(所有)网关上针对服务的端口作了端口映射。
NAT转换的类型:
有四种NAT转换模型可以涵盖当前NAT的基本应用。
1、静态转换(Static NAT)
在路由器上手工配置私有IP地址和公网IP地址的对应关系,一经配置,转换表永久存在。明显的例子是NAT路由器上配置外网用户访问内网的服务器:内网服务器依然使用私网地址,在NAT路由器上,分
配一个公网地址并配置私网地址/公网地址的转换表,对外提供公网IP地址给外部网络用户访问。
NAT转换表:202.110.10.10 8080 ---> 10.110.10.10 80 (www)
2、动态转换(Dynamic NAT)
路由器上保留一个合法地址列表,每当有转换需求的时候,从列表中选择一个进行转换。注意:动态转换依然是一对一的。
1)由于从列表中选择,每次转换采用的IP地址并不一定是同一个;
2)合法地址被采用后,其他的转换需求不能再使用这个合法IP。
3、复用转换(Overloading NAT)
在动态转换中,每个合法的IP地址只能在转换表中使用一次,在内部网络主机访问外部需求增多的情况下,合法地址列表中的IP地址会很快不够用。这时,可以利用上层协议标识,例如利用传输层TCP/UD P的端口号字段来协助建立NAT转换表项(ICMP报文的ICMP头中的Identifier字段也可以用来实现与端口号类似的功能)。这样,多个私有地址可以通过一个合法地址进行转换,这种类型的NAT转换也可以称为PAT(端口地址转换)。
转换表项例子:
10.10.1.1 100 202.110.10.1 100
10.10.1.1 101 202.110.10.1 101
10.10.1.2 102 202.110.10.1 102
......
理论上,1个公网地址可以提供的转换表项为2^16=65535个(尚未扣除知名端口数量)。这是INTER NET上NAT的典型应用。通过复用转换,还可以实现服务器负载分担的功能。
4、重叠转换(Overlapping NAT)
内部网使用的地址跟外部网重叠,这时需要把跟外部重叠的IP地址进行变换。在NAT路由器上,将外部网的重叠IP重新映射成不重叠的IP地址。这个方案可以解决使用相同私网网段的企业网络的合并问题。
建立的转换表项如下:
10.10.10.1 168.192.10.1 172.10.1.1 10.10.10.1
10.10.10.1 172.10.1.1 168.192.10.1 10.10.10.1
在NAT路由器上,将外部网的重叠IP重新映射成不重叠的IP地址。这个方案可以解决使用相同私网网段的企业网络的合并问题。
------------------------------
4种地址类型分别是:
内部局部地址(IL Inside local address)
内部全局地址(IG Inside global address)
外部局部地址(OL Outside local address)
外部全局地址(OG Outside global address)
------------------------------
NAT转换表
NAT按照转换表进行数据包的转发。
1)转发原则根据数据包的来源是内部还是外部而不同。NAT重叠转换为例,建立如下转换表:
内部局部内部全局外部局部外部全局
10.10.10.1 172.10.10.1 ————
————168.192.10.1 10.10.10.1
10.10.10.1 172.10.10.1 168.192.10.1 10.10.10.1
左边主机访问右边主机发出的Packet_1 IP包到达NAT路由器转换后,源IP地址将根据转换表项第1行转换为172.10.10.1,目的IP地址将根据转换表项第2行转换为10.10.10.1,反之亦然。
2)按照数据驱动的方式建立,有静态,动态两种。静态地址转换类型表项一旦建立,将一直存在。动态地址表项在需要时动态建立,如果一段时间没有IP报文查询利用这个表项,到达老化时间后将自动删除,释放资源重新使用。
---------------------------
从功能上看,主要有以下几种典型的NAT:传统NAT(基本NAT,NAPT)、两次NAT、多宿主NAT。
两次NAT:即上文的“重叠转换NAT”
多宿主NAT(Multihomed NAT)
使用NAT会带来很多问题(RFC2993)。比如,NAT设备要为经过它的会话维护状态信息,而一个会话的请求和响应必须通过同一NAT设备做路由,因此通常要求允许NAT末梢域边界路由器必须是惟一的,所有的IP包要么发起,要么终结在该域。但这种配置将NAT设备变成了可能的单点故障点。
为了让一个内部网络能够在某个NAT链路故障的情况下,也可以保持与外部网络的连通性,通常希望内部网络到相同或不同的ISP具有多条连接(多宿主的),希望经过相同或不同的NAT设备。
又如,多个NAT设备或多条链路使用同一NAT,共享相同的NAT配置能够为相互之间提供故障备份。在这种情况下,有必要让备份NAT设备交换状态信息,以便当主NAT出现故障时,备份NAT能够担负起透明地保持会话的能力。
传统NAT(内部地址,端口)与(内部地址,端口)的映射方式主要有以下几种典型类型:ConeNAT(Full Cone、Restricted Cone、Port Restricted Cone、)和对称NAT。
1.锥形NAT(ConeNAT)