IPv4今日地址行为( 三 )


的Internet之间 , NAT改变发往Internet的数据包的源IPv4地址 , 也改变来自Internet
的数据包的目的IPv4地址 。当一个NAT采用地址复用技术用在互相联络的路由区域
时 , 例如:在两个内部网的直线连接时 , NAT将修改双方的IP头中的地址 。既然NAT
修改IP头中的地址 , NAT同样也修改传输(例如:TCP,UDP)伪头的效验和 。经过观
察可以发现 , 当互相联络的路由区域采用地址复用时 , 在网络和传输头的一系列操作被
NAT完成同时做为一个透明的ALG完成在网络层和传输层的一系列操作的子集 。
通过定义 , NAT不清楚一个应用数据流的对象和语义 。因此 , NAT不支持在应用
层传输IP地址的应用(例如:FTP的PORT或者PASV命令[RFC959]) 。另一方面 ,
NAT可以支持一些不在应用层传输IP地址的应用 。比较而言 , ALG只支持应用代码 。
可以断定NAT和ALG都有自己的限制 , 这个可以限制它们的用处 , 把NAT和
ALG的功能合用在一个简单的设备可以克服一些 , 但不是全部限制 。这个设备可以用
NAT功能进行不传输IP地址的应用 , 当处理传输IP地址的应用时则依靠ALG功能 。
例如:一个这样的设备将用NAT功能去处理FTP数据连接 , 同时用ALG功能去处理
FTP控制连接 。然而 , 这样一个设备将不能完全处理一个传输IP地址的应用 , 当设备
不支持经过ALG功能的应用时 , 宁愿处理它用NAT功能 。
通过ALG或NAT的通信也包括改变网络头(特指源和目的地址) , 同样转换传输
头 。既然IP安全认证头假设在网络头的地址是被端到端的预先保留 , 通过ALG或NAT
我们不清楚在通信的一对主机中该如何支持基于安全的IP认证 。既然IP是安全的 , 当
用于信任时加密端到端的整个传输层 , 还是不清楚ALG和NAT是如何根据它们的要求
修改加密数据包的 。换句话说 , 在用于认证和信任时 , ALG和NAT在两个不同的IP
安全域中都被强制分界 , 除非设计了用于此目的非凡的增强的IP安全策略 。
经过ALG和NAT进行中间连接的路由区域依靠DNS[RFC1035] 。非凡的 , 对于
一个给定的(中间连接)路由区域 , 哪怕在整个系列中网络层地址不再是唯一的 , 高质
量的域名服务需要唯一性的存在于整个系列中 。然而 , 一个运行NAT和ALG的站点
可能需要两个DNS服务器 , 一个是NAT或ALG内部的 , 一个是其外部的 , 对标示的
查询给出不同的答案 。更具体的讨论看[kre] 。DNS安全[RFC2065] , 同时假设动态
DNS更新[dns2]在NAT/ALG边界不在有效 , 所以 , 我们必须假设外部的DNS服务器
通过其它的机器获得了至少一部分的路由表 。
作为总结 , 自从RFC1918 , 我们还没有真正的改变过地址空间的唯一性 , 就好象
公认是有多个空间 , 例如:通过NAT或ALG(看上面的讨论)每个空间一直是个路由
区域比如是个内部网 , 可能连接到别的内部网 , 或者是Internet , 地址的暂时的唯一性
在RFC1918中仍没有改变 。
4.2.地址不再全是临时唯一.
注重 , 一旦地址的意义在地址空间的某个地方改变 , 在每个地方都会有一些现象改
变 。事实上这个已经发生了 。
IPv4地址块是为许多年分配的年代史 , 例如:在网络拓扑更为有效 。这个导致路
由表的持续的增长;难以伸缩 。今天阶级路由(CIDR[RFC1518],[RFC1519])作为一个
在路由区域中提高路由的伸缩性的设备 。尤其是在Internet中 。(附录对CIDR有具体
的解释) 。
可伸缩性的CIDR基于地址分配对网络拓扑的最大影响的假设 , 地址信息集合的边

推荐阅读