米葫芦网

IPv4今日地址行为

热度:6℃ 发布时间:2023-11-16 19:38:29

本备忘录的状态
本备忘录提供Internet通讯所需的信息,它并不指定Internet的某一方面的标准。本备
忘录的发布不受任何限制。
版权声明
Copyright(C)TheInternetSociety(2001).AllRightsReserved.
摘要
这个注释的主要作用是使网络现有的对32位IPv4地址空间的解释更清楚,自从它最初
被定义后,它的意义已经发生了本质的改变。将有一小节介绍IPv6与IPv4地址的主要的相
似点和不同点。
目录
1.介绍 2
2.术语 2
3.标准的属性 3
4.纵览IPv4地址空间的现状 3
4.1.地址不再全局唯一定位 4
4.2.地址不再全是临时唯一. 5
4.3.多播和广播. 5
4.4.小结 6
5.IPv6讨论 6
附录: 7
对IPv4地址分配和路由的正确实践。 7
安全性讨论 8
鸣谢 8
参考书 8
作者地址 10
1.介绍
这个注释的主要作用是使网络现有的对32位IPv4地址空间的解释更清楚,自从它最初
在1981年[RFC791]被定义后,它的意义已经发生了本质的改变。
这个解释将有助于协议设计者,产品制造商,Internet服务提供商和用户站点。它的目
的是随着Internet近几年的成指数级的增长所带来的实质上的改变,避免大家对IP地址的误
解。将有一小节介绍IPv6与IPv4地址的主要的相似点和不同点。
2.术语
在计算机网络中,目录,命名,网络地址和路由的概念是显然不同的,必须被独立的分
析[RFC1498]。然而,“网络地址”(从这里开始缩写为“地址”)的定义可以被细分为至少
两个的观点也是很重要的,命名“标示”和“定位”,在rfc791出版以前这个可能是少为人
知的。
在这篇文档中,术语“主机”指是产生或终止IPv4包的系统,“路由”指的是一些转
发IPv4包从从一个主机或路由到其它主机或路由的系统。
就这篇文档的目的,一个“identifier”是贯穿两个主机之间一次交流会话的整个生存时
间的位串,去标示其中的一个主机就如讨论的另一个一样。一个标示用于验证输入包的源(主
机)对交流的另一方是真正毫无疑问的,例如:在伪TCP头[RFC793]或在IP安全协会
[RFC1825]。习惯上,在每一个数据包中的源IPv4地址中都用于此目的。
注重有时另一个“identifier”的定义被使用。这篇文档不着重讨论。结束点标示符的一
些事情。
就这篇文档而言,“locator”是一个位串,用于确认在什么地方一个特定的包必须不同。
例如:它的服务器在网络拓扑结构中去定位可联结目标主机的位置。习惯上,在每一个数
据包中的IPv4目标地址都用于此用途。IP路由协议说明了IPv4地址作为定位和路由表的
组成是基于那些分配路径的(它们有自己的定位)要求去知道一条通往特定主机定位的路径。
标示和定位都需要唯一性,但彼此的需要是不同的,一般认为标示必须在一系列互相交
流的主机中保持唯一,而定位必须在每一个互相交流的路由(我们叫它路由区域)中保持唯
一。同时定位必须在一个给定的路由区域中保持唯一,这种唯一性(不是可路由性)可以
扩展到更多的区域。这样相对于一系列定位不唯一(复用)的区域,我们更轻易区分一系列
唯一定位的区域。
标示和定位都需要生存时间,但它们的需要是不同的。标示必须在两个互相交流的主机
的最大生存时间内有效。定位只要在路由的机械设备需要的时候有效就可以(在一次通讯中
它可以比生存时间短或长一些)。
还有一个历史的偶然的事实必须注重,在RFC791和RFC793中标示和定位在IP头(源
和目的地址)中都用同样的地址空间和字段表示,在传统的Internet主机中,标示可以用定
位来表示,这正如空间的唯一性(单一的)和暂时的唯一性(永恒不变的)。
这些唯一性条件在路由(IPv4的定位可用的基础)和传输协议(一些依靠IP进行连接
的)的设计和假设中起了很大的影响。一个地址的空间唯一性是说它为接口标示和一个主机
的标示服务,就好象要害字对路由表的作用。一个地址的暂时的唯一性是说对于TCP实现
来说不象IP地址一样,需要保持关于远端的状态。所以IP地址可以被用于端到端的IP安
全性和绑定到上层会话。
一般来说,IPv4地址用做定位比用做标示更加重要,无论什么时候,在两种使用之间
发生冲突时,定位的使用是主要的。也就是说,在分发一个数据包时它已经被认为更加有效。
接着该担心提供一个不能被分发的数据包时如何去标示端点。换句话说,在路由协议中这将
是集中工作,在地址习惯用法的其它方面几乎没有什么具体的工作。
3.标准的属性
无论上面提到的什么规范,很轻易理解标示和定位的标准的属性。标示应该在一开始就
分配,永不改变,永不被重用。定位用于描述主机在网络拓扑结构上的位置,无论什么时候
都可以随着拓扑的改变而改变。
不幸的是没有一个上述的标准可以在IPv4地址中看到。这篇文档其余部分将对现在流
行的现状做简要介绍。
4.纵览IPv4地址空间的现状
事实上,IPv4地址不再是全局唯一的,也不是都有无限的生存时间。
4.1.地址不再全局唯一定位
RFC1918显示公司的网络是如何工作的,a.k.a.内部局域网,也许适当的重用一个
IPv4地址空间的子集来形成多路由区域是有必要的。在两个(或更多)的路由区域边
界,我们可以找到一个用于使区域之间的交流可用的设备的范围。
在一个范围的结尾是一个纯粹的应用层网关(ALG),这样的设备作为应用层数据
流的端点,对终端用户是可见的。例如:当在路由区域A的终端用户Ua想与在路由区
域B的终端用户Ub交流的时候,Ua首先明确的同A与B之间交流的ALG建立连接,
只有经过这样Ua可以和Ub建立通信。我们称呼这样的网关为“不透明的”ALG.
另一种形式的ALG与终端用户的通讯是透明的。用上面的例子,在一个透明的
ALG,在开始和Ub通信前,Ua将不需要明确的和ALG建立连接。这样将建立对Ua
透明的连接,使的Ua将只可以看到与Ub的连接。
为了完成的目的,注重经过ALG的通讯并不是导致网络头的改变的必要的原因,
一个ALG仅仅用于在一个会话开始时的认证,在离开ALG后,通讯将自然的继续进
行。
不透明和透明的ALG都需要(通过定义)理解应用数据流的对象和语义。从网络
层结构看来,ALG是很简单的,在每一个区域中它们将表现为Internet主机,例如:它
们作为通讯的始端和终端。
在系列的另一方面是关于网络地址转换(NAT)[RFC1631]。在这个文档中我们定
义NAT作为一个设备,它仅仅修改网络层和传输层头,但它不清楚应用层数据流的对
象/语义(用我们的术语也就是描述在RFC1631上的一个同时具有NAT和ALG的功
能设备。)。
作为一个标准,NAT被用在使用私有地址的公司网络[RFC1918]和使用公用地址
的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基于地址分配对网络拓扑的最大影响的假设,地址信息集合的边
界不再需要用一个简单的组织填充,--他们可能跨过多个组织(例如:提供者和他的用
户)。因此,假如一个用户改变他的供给者,然后可以避免在Internet路由系统中添加
附加的头,用户需要被重新编号。
改变提供者只是被重新编号的一个可能。信息文档[RFC1900]显示为什么重新编
号是一个不断增长的事件。在DHCP[RFC154]和PPP[RFC]中升级了动态地址分配的
使用。
总而言之,随着DHCP和PPP的发展和进化,而且重新编号好象是将成为一个一
般事件,IP地址的意义已经深深的被改变了。空间的唯一性也将一样,只要地址一直
是有效的定位。不能再保证暂时的的唯一性,它可能非常的短,很有可能比一个TCP
连接时间还短。就这方面看,IP地址不再是一个好的标示。这将对端到端的安全有些
影响,而且将破坏通用的TCP形式。
4.3.多播和广播.
既然我们讨论多播[RFC1112],我们必须把对IP地址意义的争论转化为对源和目
标地址的意义的思考。一个目的多播地址(例如:一个拓扑中的的扩展到主机组的定位)
可以经过一个NAT,而且它不必限定在一个内部网(或者在公共Internet)。它的生存
时间也很短。
一个广播地址的概念具有语义上定位任何施行相等的功能的一组系统的一个地
址。,它永远不可能作为一个在本文定义的标示来服务,所以它不是唯一的标示主机。
就这一方面来说,暂时的的唯一性,或有用的生存时间对一个IP地址的影响将是比建
立一个TCP连接更短的时间。
在这里,我们已经用TCP简单的描述了一个联合的想法—许多基于应用的UDP
(或在IP之上的别的系统层)在接受或发送第一个数据包以前分配状态,基于源和/
或目标。所有的都被暂时唯一性的存在所影响,而仅仅只有路由结构受空间唯一性改变
的影响。
4.4.小结
网络的经常的重组取决于动态地址的分配和不断的增长,IPv4地址的暂时的唯一
性将不再是全局授权,而只是将他们的使用作为标示放在服务请求中。空间在路由区域
中的唯一性根据内部网的增加来决定不再授权,中间路由区域经过ALG或者NAT而逐
渐完善。在这种规则下,这样的相互连接比直接连接的内部网将有更少的功能。实践中,
功能的不同可能是也可能不是什么事情,依靠于分散的环路。
5.IPv6讨论
正如暂时的的唯一性的讨论(好象标示的行为),IPv6的模型与IPv4的模型很相似,只
不过多了些。IP6将在IPv6主机中提供自动配置IPv6地址的机制。前缀的改变,需要全局
所有的主机的IPv6地址在一个给定的前缀下改变,这是可以想象的。因此,IPv6将扩大这
个存在的问题:去寻找稳定的标示用于端到端的安全和如TCP状态会话绑定。
IAB感觉这是不幸运的,而且到IPv6的转换将是提供端到端的暂时的唯一标示的高层
协议一个理想的原因。这些标识符的准确的天性要求更深的学习。
正如对空间唯一(好似定位的行为)关心,IPv6地址空间是如此的大以致于地址的短
缺,查询接近于RFC1918的类似地址转换,是难于想象的。虽然并不缺少IPv6地址,在
IPv6[RFC1884,第2.4.8节]仍然有一个定义好的机制去包容硬件-本地地址和网站-本地地
址。IPv6的这些属性不能阻止从IPv6中分离路由区域,假如这样描述(在多安全域的结果)。
在现有情形下,我们不能标示一个在多IPv6路由区域中将需要的原因,它也很难于给定一
个预先定义的答案对是否将只有一个,或者多于一个IPv6路由区域。假如假设将有多于一
个的IPv6路由区域,这种区域将通过ALG和NAT互相连接。考虑到在IPv4中,这样ALG
和NAT表现为标示。
附录:
对IPv4地址分配和路由的正确实践。
初始化IP地址结构,同时IP路由将围绕网络数目分类的想法来设计(A/B/C类网)
[RFC790]。在Internet90年代早期的成长要求了两个方面的重要性的改进,在Internet
路由系统的可伸缩性上,就好象对IP地址空间的利用。IP地址空间的类结构化和路由
按类分配导致相对需要得到不充分的结果,所以,在1992-1993年代,Internet接受了
无阶级的内部域路由(CIDR)[RFC1380],[RFC1518],[RFC1519]。CIDR成就了一
个新的地址分配方案,新的路由协议,和一个新的IP地址结构。
CIDR通过在独立子网和网络的基础上扩展了阶级路由的想法来提高Internet路
由系统的伸缩性。答应路由信息的集合不只停留在独立子网和网络的层次上。同时在独
立站点的层次上,就比如在ISP(Internet服务提供商)的层次上。所以一个组织(站
点)能在组织以内为所有目的充当一个集成者。同样的,一个提供者在他的用户内可以
成为所有的目标的集成者(建立到提供者的直接连接)。
扩展阶级路由的想法到独立的站点和提供者层次,答应站点和提供者作为路由信息
(需要改变地址分配过程)和路由协议的集成者。在早期的CIDR中,在独立网络数字
层的基础上分配个站点地址时没有对地址集成的需要做任何考虑,基于CIDR的地址分
配建议地址分配时应该这样做:用站点和提供者去作为地址信息的集成者,这样的分配
是“基于集成”。为了从“基于集成”的地址分配方案受益,CIDR介绍了一个中间域
路由协议(BGP-4)[RFC1771,RFC1772]在独立站点和提供者层次上提供路由信息集
成的性能。
CIDR由消除网络类的观点改进地址空间利用,并且用连续的可变尺寸(2的力量)
的地址块代替它。在需要大量的地址空间而且已经提供了大量的地址空间的情况下,
提供一个好的对比[RFC1466]。它也便于基于集合的地址分配。消除网络分类的想法
需要在路由协议中建立新的兼容性(内部和外部域之间都是),IP转发。非凡的CIDR
兼容的协议需要处理到达的用不同长度的地址前缀表示的(地址)信息,而且,转发需
要实现最长长度的匹配”算法。在[RFC1817]中描述了CIDR对路由协议的影响。
CIDR的伸缩性基于地址分配对网络拓扑的最大影响的假设,尤其是在站点层次
上,与提供者的相互连接,使得站点和提供者形成一个集合。假如一个站点改变它的提
供者,然后去避免在Internet路由系统添加附加的头,站点需要去重新编号。同时,CIDR
不需要每一个站点通过改变它的提供者来实现重新编号,这一点反应很重要:假如没有
一个改变它的提供者的站点重新编码,Internet路由系统当处理大量需要处理的路由信
息时有可能崩溃。
包括“基于集合”的地址分配(升级路由系统的可伸缩性),和支持站点性能的需
要去改变它们的提供者(去完成升级)需要对重编站点来说要求实践解决。在迅速增长
的Internet路由系统对包括头的需要好象使重新编号越来越普遍[RFC1900]。
对Internet路由系统伸缩性的需要,和用CIDR作为伸缩性的主要机制,是对
Internet的地址分配和治理政策所作出的进一步结果。加上“借地址”政策的进化作为
一个可提供的“地址私有”政策的进一步结果[RFC2008]。
自从IP地址的第一次指定[RFC791],IP地址和路由不停的进化。一些地址和路由
规则已经遭到反对,一些规则已经被保留,同时新规则也被推出。现在的Internet路由
和地址(基于CIDR)是一个进化的步骤,趋向于使用层次去包括全球Internet路由表。
安全性讨论
IP地址模型在安全方面的影响以在这篇文档的4.1小节和第五节讨论。
鸣谢
ThisdocumentwasdevelopedintheIAB.ConstrUCtivecommentswerereceivedfrom
RanAtkinson,JimBound,MattCrawford,TonyLi,MichaelA.Patton,JeffSchiller.Earlier
privatecommunicationsfromNoelChiappahelpedtoclarifytheconceptsoflocatorsand
identifiers.
参考书
[RFC791]Postel,J.,"InternetProtocol",STD5,RFC791,September1981.
[RFC790]Postel,J.,"AssignedNumbers",September1981.
[RFC959]Postel,J.,andJ.Reynolds,"FileTransferProtocol",STD9,RFC959,October
1985.
[RFC1035]Mockapetris,P.,"DomainNames-ImplementationandSpecification",STD
13,RFC1035,November1987.
[RFC1112]Deering,S.,"HostExtensionsforIpMulticasting",STD5,RFC1112,
September1989.
[RFC1380]Gross,P.,andP.Almquist,"IESGDeliberationsonRoutingandAddressing",
RFC1380,November1992.
[RFC1466]Gerich,E.,"GuidelinesforManagementofIpAddressSpace",RFC1466,
May1993.
[RFC1498]Saltzer,J.,"OntheNamingandBindingofNetworkDestinations",RFC
1498,August1993(originallypublished1982).
[RFC1518]Rekhter,Y.,andT.Li,"AnArchitectureforIpAddressAllocationwith
CIDR",RFC1518,September1993.
[RFC1519]Fuller,V.,Li,T.,Yu,J.,andK.Varadhan,"ClasslessInter-DomainRouting
(CIDR):anAddressAssignmentandAggregationStrategy",RFC1519,September
1993.
[RFC1541]Droms,R.,"DynamicHostConfigurationProtocol",RFC1541,October
1993.
[RFC1661]Simpson,W.,"ThePoint-to-PointProtocol(PPP)",STD51,RFC1661,July
1994.
[RFC1771]Rekhter,Y.,andT.Li,"ABorderGatewayProtocol4(BGP-4)",RFC1771,
March1995.
[RFC1772]Rekhter,Y.,andP.Gross,"ApplicationoftheBorderGatewayProtocolin
theInternet",RFC1772,March1995.
[RFC1817]Rekhter,Y.,"CIDRandClassfulRouting",RFC1817,September1995.
[RFC1825]Atkinson,R.,"SecurityArchitecturefortheInternetProtocol",RFC1825,
September1995.
[RFC1900]Carpenter,B.,andY.Rekhter,"RenumberingNeedsWork",RFC1900,
February1996.
[RFC1918]Rekhter,Y.,Moskowitz,B.,Karrenberg,D.,deGroot,G.J.,andE.Lear,
"AddressAllocationforPrivateInternets",RFC1918,February1996.
[RFC1933]Gilligan,R.,andE.Nordmark,"TransitionMechanismsforIPv6Hostsand
Routers",RFC1933,April1996.
[RFC2008]Rekhter,Y.,andT.Li,"ImplicationsofVariousAddressAllocation
PoliciesforInternetRouting",RFC2008,October1996.
[kre]Elz,R.,et.al.,"SelectionandOperationofSecondaryDNSServers",Workin
Progress.
[RFC2065]Eastlake,E.,andC.Kaufman,"DomainNameSystemSecurityExtensions",
RFC2065,January1997.
[dns2]Vixie,P.,et.al.,"DynamicUpdatesintheDomainNameSystem(DNS
UPDATE)",WorkinProgress.
作者地址
BrianE.Carpenter
ComputingandNetworksDivision
CERN
EuropeanLaboratoryforParticlePhysics
1211Geneva23,Switzerland
EMail:brian@dxcoms.cern.ch
JonCrowcroft
Dept.ofComputerScience
UniversityCollegeLondon
LondonWC1E6BT,UK
EMail:j.crowcroft@cs.ucl.ac.uk
YakovRekhter
Ciscosystems
170WestTasmanDrive
SanJose,CA,USA
Phone:+19145280090
Fax:+1408526-4952
EMail:yakov@cisco.com



网友评论
评论
发 布

更多软件教程
  • 软件教程推荐
更多+
Greenfoot设置中文的方法

Greenfoot设置中文的方法

Greenfoot是一款简单易用的Java开发环境,该软件界面清爽简约,既可以作为一个开发框使用,也能够作为集成开发环境使用,操作起来十分简单。这款软件支持多种语言,但是默认的语言是英文,因此将该软件下载到电脑上的时候,会发现软件的界面语言是英文版本的,这对于英语基础较差的朋友来说,使用这款软件就会...

07-05

Egret UI Editor修改快捷键的方法

Egret UI Editor修改快捷键的方法

Egret UI Editor是一款开源的2D游戏开发代码编辑软件,其主要功能是针对Egret项目中的Exml皮肤文件进行可视化编辑,功能十分强大。我们在使用这款软件的过程中,可以将一些常用操作设置快捷键,这样就可以简化编程,从而提高代码编辑的工作效率。但是这款软件在日常生活中使用得不多,并且专业性...

07-05

KittenCode新建项目的方法

KittenCode新建项目的方法

KittenCode是一款十分专业的编程软件,该软件给用户提供了可视化的操作界面,支持Python语言的编程开发以及第三方库管理,并且提供了很多实用的工具,功能十分强大。我们在使用这款软件进行编程开发的过程中,最基本、最常做的操作就是新建项目,因此我们很有必要掌握新建项目的方法。但是这款软件的专业性...

07-05

Thonny设置中文的方法

Thonny设置中文的方法

Thonny是一款十分专业的Python编辑软件,该软件界面清爽简单,给用户提供了丰富的编程工具,具备代码补全、语法错误显示等功能,非常的适合新手使用。该软件还支持多种语言,所以在下载这款软件的时候,有时候下载到电脑中的软件是英文版本的,这对于英语基础较差的小伙伴来说,使用这款软件就会变得十分困难,...

07-05

最新软件下载