AC:C1:EE:38:07:A1接口ID与前缀拼装成IPv6 GUA地是多少

无线网络如何上ipv6
无线网络如何上ipv6
08-09-20 &匿名提问
随着以IPv4为核心技术的Internet获得巨大成功,促使IP技术广泛应用,从而产生对IP地址的巨大需求,但IPv4地址资源紧张直接限制了IP技术应用的进一步发展。IETF在20世纪90年代提出下一代互联网协议——IPv6,该协议被公认为IPv4未来的升级版本。IPv6将地址长度由32位增加到128位,从本质上改进了地址资源紧缺问题——几乎达到了无限的地址空间。   协议处理机制:IPv4还是IPv6?   目前,H3C公司集中管理架构WLAN在接入点和接入控制器之间采用CAPWAP协议构建,而且同时支持IPv4和IPv6协议。也就是,接入控制器作为服务器,可以接收来自IPv4以及IPv6网络的接入点的链接请求;而且接入点可以动态的选择使用IPv4或者IPv6,和接入控制器建立链接。   无线接入用户使用IPv4还是IPv6网络,对于H3C公司WLAN网络是透明的,WLAN设备只是实现了无线接入用户数据的二层转发。CAPWAP协议不关心无线接入用户的上层协议,同样无线接入用户也不需要关心CAPWAP数据隧道采用IPv4还是IPv6协议。   H3C公司的Fit AP设备为零配置设备,该设备在上电后可以自动发现接入控制器,选择当前能够提供最优服务的接入控制器建立链接。由于接入点为零配置设备,不能判断当前接入的网络为IPv4还是IPv6网络,所以H3C的接入点会首先在IPv4网络进行接入控制器的发现和链接处理,如果接入点无法成功通过IPv4网络和接入控制器建立链接,则接入点会切换到使用IPv6进行接入控制器的发现和链接处理。   设备处理流程   下图描述了H3C公司的Fit AP自动建立隧道的过程:   H3C公司的Fit AP设备通过上面的自动使用IPv4隧道和IPv6隧道机制,可以使用在任何网络中的应用。当Fit AP被安装在IPv4网络中,Fit AP可以使用IPv4隧道和AC建立连接,如果Fit AP被安装在IPv6网络中时,Fit AP将无法使用IPv4隧道和AC建立连接,进而可以和AC建立IPv6的隧道并开始提供服务。   在IPv4网络中提供IPv6的WLAN接入服务   在上图中,接入控制器AC和企业总部的IPv6网络相连接,接入控制器AC提供了WLAN到企业总部IPv6网络的Portal功能,实现了WLAN网络和IPv6网络连通,进而创建了一个IPv6的WLAN网络。接入点Fit AP通过IPv4骨干网络和接入控制器建立连接,实现了穿越IPv4网络提供WLAN接入服务功能,而且对现有网络不需要进行任何的改造。   在IPv6网络中提供IPv4的WLAN接入服务   在上图中,接入控制器AC和IPv4网络相互连通,接入控制器起到WLAN网络的Portal功能,实现了WLAN网络和IPv4网络的连通,进而构建了一个IPv4的WLAN网络。当接入点Fit AP通过IPv6骨干网络和接入控制器成功建立连接,进而实现了穿越IPv6网络提供WLAN接入服务。当企业无线接入用户成功和接入点AP建立无线链路连接后,便成功接入到该WLAN网络,而且对IPv6网络不需要进行任何的改造。   在IPv6网络中提供私有的IPv6的WLAN网络服务   当网络发展成纯IPv6网络时,H3C公司的WLAN同样可以在该网络中提供WLAN接入服务。   通过WLAN接入服务,无线客户端犹如直接连接到该指定网络中。所有的无线终端相关报文数据都会被转发到控制器和接入点之间的隧道,在无线终端和接入网之间进行转发,而无线终端不需要关心隧道所穿越的网络类型。
请登录后再发表评论!
需要设备本身的支持,否则不予支持.
请登录后再发表评论!
IPv6是&Internet Protocol Version 6&的缩写,也被称作下一代互联网 协议,它是由IETF设计的用来替代现行的IPv4协议的一种新的IP协议。现在的互联网大多数应用的是IPv4协议,IPv4协议已经使用了20多年,在这20多年的应用中,IPv4获得了巨大的成功,同时随着应用范围的扩大,它也面临着越来越不容忽视的危机,例如地址匮乏等等。IPv6是为了解决IPv4所存在的一些问题和不足而提出的,同时它还在许多方面提出了改进,例如路由方面、自动配置方面。经过一个较长的IPv4和IPv6共存的时期,IPv6最终会完全取代IPv4在互连网上占据统治地位。对比IPv4,IPv6有如下的特点,这些特点也可以称作是IPv6的优点:简化的报头和灵活的扩展;层次化的地址结构;即插即用的连网方式;网络层的认证与加密;服务质量的满足;对移动通讯更好的支持。目录 [隐藏] 1 IPv4的局限性及其缺点 2 IPv6变化概述 3 IPV6的包头结构 4 IPv4与IPv6的比较 5 IPv6的分段 6 IPv6寻址及地址类型 7 IPV6的地址类型 8 ICMPv6 9 为IP增加安全性 10 IPV6的选路问题 11 IPSEC
IPv6-IPv4的局限性及其缺点    在当前计算机工业飞速发展的步伐下,指出IPv4的局限性和缺点如同指出小汽车和卡车的内燃机是有缺陷的动力源一样。IP的确是一个非常强壮的协议,并已经证明了它能够连接小至几个节点,大至Internet上难以计数的主机。为交通工具选择动力源时,只要能像汽油机或柴油机一样提供动力,任何人都可以使用包括电能、太阳能或是风能作为上路的动力而不会影响别人,与此不同的是,IP的升级将对所有使用IP的人产生重大影响。TCP/IP的工程师和设计人员早在80年代初期就意识到了升级的需求,因为当时已经发现IP地址空间随着Internet的发展只能支持很短的时间。下面将介绍IP必须升级的原因以及可以同时改进之处,其中包括:地址空间的局限性:IP地址空间的危机由来已久,这正是升级的主要动力性能:尽管IP表现得不错,一些源自20年甚至更早以前的设计还能够进一步改进安全性:安全性一直被认为是由网络层以上的层负责,但它现在已经成为IP的下一个版本可以发挥作用的地方自动配置:对于IPv4节点的配置一直比较复杂,而网络管理员与用户则更喜欢“即插即用”,即:将计算机插在网络上然后就可以开始使用。IP主机移动性的增强也要求当主机在不同网络间移动和使用不同的网络接入点时能提供更好的配置支持。IP地址空间危机Internet经历了核爆炸般的发展,在过去的10到15年间,连接到Internet的网络数量每隔不到一年的时间就会增加一倍。但即便是这样的发展速度,也并不足以导致90年代后期IP地址的匮乏。IP地址为32位长,经常以4个两位十六进制数字表示,也常常以4个0至255间的数字表示,数字间以小数点间隔。每个IP主机地址包括两部分:网络地址,用于指出该主机属于哪一个网络(属于同一个网络的主机使用同样的网络地址);主机地址,它唯一地定义了网络上的主机。这种安排一方面是IP协议的长处所在,另一方面也导致了地址危机的产生。由于IPv4的地址空间可能具有多于40亿的地址,有人可能会认为Internet很容易容纳数以亿计的主机,至少几年内仍可以应付连续的倍增。但是,这只适用于IP地址以顺序化分布的情况,即第一台主机的地址为1,第二台主机的地址为2,依此类推。通过使用分级地址格式,即每台主机首先依据它所连接的网络进行标识,IP可支持简单的选路协议,主机只需要了解彼此的IP地址,就可以将数据从一台主机上转移至另一台主机。这种分级地址把地址分配的工作交给了每个网络的管理者,从而不再需要中央授权机构为Internet上的每台主机指派地址。到网络外的数据依据网络地址进行选路,在数据到达目的主机所连接的路由器之前无需要了解主机地址。通过中央授权机构顺序化地为每台主机指派地址可能会使地址指派更加高效,但是这几乎使所有其他的网络功能不可行。例如,选路将实质上不可行,因为这将要求每个中间路由器去查询中央数据库以确定向何处转发包,而且每个路由器都需要最新的Internet拓扑图获知向何处转发包。每一次主机的地址变动都将导致中央数据库的更新,因为需在其中修改或删除该主机的表项。IP地址被分为五类,只有三类用于IP网络,这三类地址一度被认为足以应付将来的网络互联。A类地址只有126个,用于那些最大的实体,如政府机关,因为它们连接着最多的主机:理论上最多可达一千六百万台。B类地址大约16000个,用于大型机构,如大学和大公司,理论上可支持超过65000台主机。C类网络超过两百万个,每个网络上的主机数量不超过255个,用于使用IP网络的其他机构。更小的公司,某些只有几台主机,它们对于C类地址的使用效率很低;而大型机构在寻找B类地址时却发现越来越难;那些幸运地获得A类地址的少数公司很少能够高效地使用它们的一千六百万个主机地址。这导致了在过去几年中一直使用的网络地址指派规程陷入了困境,在试图更有效地分发地址空间的同时,还要注意保存现有的未指派地址。与此同时,一些解决地址危机的办法开始得以广泛使用,其中包括无类域间选路(CIDR)、网络地址翻译和使用非选路网络地址。IP性能议题IP刚开始时,从各方面看就像一个实验品,其主要目的在于为在异种网络间进行数据的可靠、健壮和高效传输探索最佳机制,从而实现不同计算机的互操作。在很大程度上IP实现了此目标,但这并不意味着IP可以继续实现这些目标,也不意味着在对IP进行修改后而不能更好。在过去的几年中,很明显不仅IP有改进余地,同时新的开发也导致修改IP的呼声越来越高。在这次升级中考虑了最大传输单元、最大包长度、IP头的设计、校验和的使用、IP选项的应用等议题。针对这些议题已经提出了专门建议并已引入IPv6中,这将有利于提高IPv6的性能并改进IPv6作为继续高速发展的网络的基础能力。IP安全性议题刚开始时连入Internet的都是侧重于研究与开发的机构,至少其中的研究人员互相间了解各自的名声,而他们与军队和政府的密切关系也保证了安全性不是一个主要问题。更重要的是,很久以来人们认为安全性议题在网络协议栈的低层并不重要,应用安全性的责任仍交给应用层。在许多情况下,IPv4设计为只具备最少的安全性选项,而IPv6的设计者们已在其中加入了安全性选项来强力支持IP的安全性。IPv6安全性的增强无疑将改进虚拟专用网(VPN)的互操作性。IPv6的安全性特性中包括数据的加密与对于所传输的加密数据和未加密数据进行的身份验证。这些功能也许将被证实是有价值的,但其价值(和功效)将主要体现在政治上而不是技术上。自动配置在IP还很年轻时,大部分计算机被放在雕花地板的房间里且其价格超过了大多数人一年(甚至更长时间)的收入。这些系统无法搬到任何其他地方去:它们年复一年地放在一个房间或建筑物中,它们与Internet的连接基本上是静态的,极少改变。那时也没有ISP,它们通过电话公司提供的线路来链接至其他网络或Internet骨干网。现在事情有了些变化。有数百个ISP可供选择,如果对于用户系统与网络间的选路和转发没有影响的话,理论上用户可以在不同的ISP间切换,从而更好地利用不同的速率和服务。同样,越来越多用户的工作方式要求网络服务具有更大的移动性。他们可能在家中使用一个或多个系统,可能在世界各地使用所携带的膝上型或笔记本电脑,也可能使用办公室中的任何一部电脑。更复杂的事情在于,这些人可能不只受雇于一个雇主,也可能为多个雇主工作。即便是同一个人使用同一部计算机,该计算机也会频繁地升级或售出。随着工作和计算机对于移动性要求的与日俱增,IP也必须做出一些改变以适应这种需求。针对这个问题,IPv4已经有了一些改变,动态主机配置协议(DHCP)可以允许系统在启动甚至只在需要时才通过服务器获取其正确和完整的IP网络配置。目前,主机(无论是移动的还是固定的)仍然依赖于到网络的单点连接。当用户携带笔记本电脑出差时,只需给其ISP打一个电话就可以恢复连接能力。如果该ISP不能提供区域外的免费长途号码,就需要打长途电话来拨入该ISP。但是,还可以进行更多的改进,IPv6应该能够旁路到单一ISP的静态连接,让用户系统能够检测到最近的网络网关并通过它进行连接。紧迫感对IP地址体系结构不足的官方认可可以参见1991年发布的RFC1287,其中定义了IP在成长过程中遇到的问题。至少从1992年就已开始了网络地址的定量分配,那时候对新的B类地址提出了要求,而不足以使用B类地址的中型机构开始接受成块的C类地址(参见RFC1366和RFC1466)。与最后一分钟(或更晚)才开始的为2000年问题所做的努力不同,IPv6的升级工作体现了多年来许多专职工程师和计算机科学家的努力。他们已完成的工作使Internet和其他IP网络继续高效地发挥作用并保持多年的增长。IPv6-IPv6变化概述    IPv6中的变化体现在以下五个重要方面:?  扩展地址?  简化头格式?  增强对于扩展和选项的支持?  流标记?  身份验证和保密对于IP的这些改变对IAB于1991年制定的IPv6发展方向中的绝大部分都有所改进。IPv6的扩展地址意味着IP可以继续增长而无需考虑资源的匮乏,该地址结构对于提高路由效率有所帮助;对于包头的简化减少了路由器上所需的处理过程,从而提高了选路效率;同时,改进对头扩展和选项的支持意味着可以在几乎不影响普通数据包和特殊包选路的前提下适应更多的特殊需求;流标记办法为更加高效地处理包流提供了一种机制,这种办法对于实时应用尤其有用;身份验证和保密方面的改进使得IPv6更加适用于那些要求对敏感信息和资源特别对待的商业应用。1. 扩展地址IPv6的地址结构中除了把32位地址空间扩展到了128位外,还对IP主机可能获得的不同类型地址作了一些调整。IPv6中取消了广播地址而代之以任意点播地址。IPv4中用于指定一个网络接口的单播地址和用于指定由一个或多个主机侦听的组播地址基本不变。2. 简化的包头IPv6中包括总长为40字节的8个字段(其中两个是源地址和目的地址)。它与IPv4包头的不同在于,IPv4中包含至少12个不同字段,且长度在没有选项时为20字节,但在包含选项时可达60字节。IPv6使用了固定格式的包头并减少了需要检查和处理的字段的数量,这将使得选路的效率更高。包头的简化使得IP的某些工作方式发生了变化。一方面,所有包头长度统一,因此不再需要包头长度字段。此外,通过修改包分段的规则可以在包头中去掉一些字段。IPv6中的分段只能由源节点进行:该包所经过的中间路由器不能再进行任何分段。最后,去掉IP头校验和不会影响可靠性,这主要是因为头校验和将由更高层协议(UDP和TCP)负责。3. 对扩展和选项支持的改进在IPv4中可以在IP头的尾部加入选项,与此不同,IPv6中把选项加在单独的扩展头中。通过这种方法,选项头只有在必要的时候才需要检查和处理。为便于说明,考虑以下两种不同类型的扩展部分:分段头和选路头。IPv6中的分段只发生在源节点上,因此需要考虑分段扩展头的节点只有源节点和目的节点。源节点负责分段并创建扩展头,该扩展头将放在IPv6头和下一个高层协议头之间。目的节点接收该包并使用扩展头进行重装。所有中间节点都可以安全地忽略该分段扩展头,这样就提高了包选路的效率。另一种选择方案中,逐跳(hop-by-hop)选项扩展头要求包的路径上的每一个节点都处理该头字段。这种情况下,每个路由器必须在处理IPv6包头的同时也处理逐跳选项。第一个逐跳选项被定义用于超长IP包(巨型净荷)。包含巨型净荷的包需要受到特别对待,因为并不是所有链路都有能力处理那样长的传输单元,且路由器希望尽量避免把它们发送到不能处理的网络上。因此,这就需要在包经过的每个节点上都对选项进行检查。4. 流在IPv4中,对所有包大致同等对待,这意味着每个包都是由中间路由器按照自己的方式来处理的。路由器并不跟踪任意两台主机间发送的包,因此不能“记住”如何对将来的包进行处理。IPv6实现了流概念,其定义如RFC1883中所述:流指的是从一个特定源发向一个特定(单播或者是组播)目的地的包序列,源点希望中间路由器对这些包进行特殊处理。路由器需要对流进行跟踪并保持一定的信息,这些信息在流中的每个包中都是不变的。这种方法使路由器可以对流中的包进行高效处理。对流中的包的处理可以与其他包不同,但无论如何,对于它们的处理更快,因为路由器无需对每个包头重新处理。路由器需要对流进行跟踪并保持一定的信息,这些信息在流中的每个包中都是不变的。这种方法使路由器可以对流中的包进行高效处理。对流中的包的处理可以与其他包不同,但无论如何,对于它们的处理更快,因为路由器无需对每个包头重新处理。5. 身份验证和保密RFC1825(IP的安全性体系结构)描述了IP的安全性体系结构,包括IPv4和IPv6。它发表于在1995年8月,目前正在进行修改和更新。1998年3月发表了一个更新版Internet草案。IP安全性的基本结构仍然很坚固,且已经进行了一些显著的改变和补充。IPv6使用了两种安全性扩展:IP身份验证头(AH)首先由RFC1826(IP身份验证头)描述,而IP封装安全性净荷(ESP)首先在RFC1827(IP封装安全性净荷(ESP))中描述。报文摘要功能通过对包的安全可靠性的检查和计算来提供身份验证功能。发送方计算报文摘要并把结果插入到身份验证头中,接收方根据收到的报文摘要重新进行计算,并把计算结果与AH头中的数值进行比较。如果两个数值相等,接收方可以确认数据在传输过程中没有被改变;如果不相等,接受方可以推测出数据或者是在传输过程中遭到了破坏,或者是被某些人进行了故意的修改。封装安全性提供机制,可以用来加密IP包的净荷,或者在加密整个IP包后以隧道方式在Internet上传输。其中的区别在于,如果只对包的净荷进行加密的话,包中的其他部分(包头)将公开传输。这意味着破译者可以由此确定发送主机和接收主机以及其他与该包相关的信息。使用ESP对IP进行隧道传输意味着对整个IP包进行加密,并由作为安全性网关操作的系统将其封装在另一IP包中。通过这种方法,被加密的IP包中的所有细节均被隐藏起来。这种技术是创建虚拟专用网(VPN)的基础,它允许各机构使用Internet作为其专用骨干网络来共享敏感信息。IPv6-IPV6的包头结构    在IPv4中,所有包头以32位为单位,即基本的长度单位是4个字节。在IPv6中,包头以64位为单位,且包头的总长度是40字节。IPv6协议为对其包头定义了以下字段:?  版本:长度为4位,对于IPv6,该字段必须为6。?  类别:长度为8位,指明为该包提供了某种“区分服务”。RFC1883中最初定义该字段只有4位,并命名为“优先级字段”,后来该字段的名字改为“类别”,在最新的 IPv6 Internet 草案中,称之为“业务流类别”。该字段的定义独立于IPv6,目前尚未在任何RFC中定义。该字段的默认值是全0。?  流标签:长度为20位,用于标识属于同一业务流的包。一个节点可以同时作为多个业务流的发送源。流标签和源节点地址唯一标识了一个业务流。在RFC1883中这个字段最初被设计为24位,但当类别字段的长度增加到8位后,流标签字段被迫减小长度来作补偿。?  净荷长度:长度为16位,其中包括包净荷的字节长度,即IPv6头后的包中包含的字节数。这意味着在计算净荷长度时包含了IPv6扩展头的长度。?  下一个头:这个字段指出了IPv6头后所跟的头字段中的协议类型。与IPv6协议字段类似,下一个头字段可以用来指出高层是TCP还是UDP,但它也可以用来指明IPv6扩展头的存在。?  跳极限:长度为8位。每当一个节点对包进行一次转发之后,这个字段就会被减1。如果该字段达到0,这个包就将被丢弃。IPv4中有一个具有类似功能的生存期字段,但与IPv4不同,人们不愿意在IPv6中由协议定义一个关于包生存时间的上限。这意味着对过期包进行超时判断的功能可以由高层协议完成。?  源地址:长度为128位,指出了IPv6包的发送方地址。?  目的地址:长度为128位,指出了IPv6包的接收方地址。这个地址可以是一个单播、组播或任意点播地址。如果使用了选路扩展头(其中定义了一个包必须经过的特殊路由),其目的地址可以是其中某一个中间节点的地址而不必是最终地址。下图中显示了IPv6头的格式
IPv6-IPv4与IPv6的比较    IPV4字段中有一些与IPv6头类似,但其中真正完全保持不变的只有第一个字段,即版本字段,因为在同一条线路上传输时,必须保证IPv4和IPv6的兼容性。下一个字段,即包头长度,则与IPv6无关,因为IPv6头是固定长度,IPv4中需要这个字段是因为它的包头可能在20字节到40字节间变化。服务类型字段与IPv6的流类别字段相似,但TOS的位置比该字段要靠后一些,而且在具体实现中也没有广泛应用。下一个字段是数据报长度,后来发展成了IPv6中的净荷长度。IPv6的净荷长度中包含了扩展头,而IPv4数据报长度字段中则指明包含包头在内的整个数据报的长度。这样一来,在IPv4中,路由器可以通过将数据报长度减去包头长度来计算包的净荷长度,而在IPv6中则无须这种计算。后面的三个字段是数据报ID、分段标志和分段偏移值,它们都用于IPv4数据报的分段。由于IPv6中由源结点取代中间路由器来进行分段(后面将有更多关于分段的内容),这些字段在IPv6中变得不重要,并被IPv6从包头中去掉了。而生存期字段,正如上面所述,变成了跳极限字段。生存期字段最初表示的是一个包穿越Internet时以秒为单位的存在时间的上限。如果生存期计数值变为0,该包将被丢弃。其原因是包可能会存在于循环路由中,如果没有方法让它消失,它可能会一直选路(或者直到网络崩溃为止)。在最初的规范中要求路由器根据转发包的时间与收到包的时间的差值(以秒为单位)来减小生存期的值。在实际情况中,大部分路由器都设计为每次对该值减1,而不是计算路由器上真正的处理时间。协议字段,如前所述,指出在IPv4包中封装的高层协议类型。各协议对应的数值在最新版本的RFC(现在是RFC1700)中可以查到。这个字段后来发展成为IPv6中的下一个头字段,其中定义了下一个头是一个扩展头字段还是另一层的协议头。由于如TCP和UDP等高层协议均计算头的校验和,IPv4头校验显得有些多余,因此这个字段在IPv6中已消失。对于那些真的需要对内容进行身份验证的应用,IPv6中提供了身份验证头。IPv6中仍然保留了32位的IPv4源地址和目的地址,但将它们扩展为128位。而IP选项字段则已经彻底消失,取而代之的是IPv6扩展头。IPv6-IPv6的分段     IPv6的分段只能由源节点和目的节点进行,这样就简化了包头并减少了用于选路的开销。逐跳分段被认为是一种有害的方法。首先,它在端到端的分段中将产生更多的分段。此外在传输中,一个分段的丢失将导致所有分段重传。IPv6的确可以通过其扩展头来支持分段,但是如下所述,了解IPv4分段如何工作将有助于了解IPv6中为什么要进行改变。在IPv4中,当一个没有分段的包由于太长而无法沿着发送源到目的地的网络链路进行传输时,就需要进行包的分段。举例来说,一个源节点可以创建一个长度为1500字节的包,并把它向Internet上的某个远端目的地发送。这个包通过源节点的本地以太网到达该节点的默认路由器。然后路由器通过其链路把数据发到Internet上,这条链路可能是到一个ISP的点到点连接。在Internet中的某处或离目的节点较近的某处,可能有条网络链路无法处理这样一大块的数据。在这种情况下,使用该网络链路的路由器将不得不把1500字节的数据报分割成许多不超过下一个网络的最大传输单元(MTU)的分段。因此,如果假设下一个链路可以处理的包长度不能超过1280字节的话,路由器将把最初的一个包分割为两个。第一个包的长度为1260字节,留下的20字节用于IPv4头。第二段的长度就是剩余数据的长度,240字节,另外再用20字节作为另一个IPv4头。IPv4中的分段由包沿途的中间路由器根据需要进行。进行分段的路由器根据需要修改包头并在其中包含进最初的包的数据报标识,同时还将正确地设置分段标志和分段偏移值。当目的节点收到由此产生的分段包之后,该系统必须根据每个分段包的IPv4头后的分段数据重组最初的包。在使用了分段之后,不论中间的网络是什么类型,不同类型网络上的节点都可以互操作,源节点无需了解任何有关目的节点网络的信息,同时也无需了解它们之间的网络信息。这一直被认为是一个不错的特性,由于不需要节点或路由器存储信息或记录整个Internet的结构,从而Internet可以获得很好的扩展性。但另一方面,它也为路由器带来了性能方面的问题,对IP包进行分段消耗了沿途路由器和目的地的处理能力和时间。了解IP数据报标识、计算分段偏移值、真正把数据分段以及在目的地进行重装都会带来额外的开销。问题在于对于任何一个指定的路由器,虽然源节点能够了解链路的MTU是多大,但却没有办法事先知道整个路径的MTU。路径MTU是源节点和目的节点之间在不分段时可以沿着该路由穿越任何网络的最大包长。然而,目前有两种方法可以减少或消除对于分段的需求。第一种方法可用在IPv4中,它使用一种叫做“路径MTU发现”的方法。通过这种方法,路由器可以向目的地发送一个包来报告该路由器上链路的MTU值。如果包到达了一条必须对其进行分段的链路,负责分段的路由器将使用ICMP回送一个报文来指出分段路由器上链路的MTU值。这种过程可以重复进行直到路由器确定路径MTU为止。另一种减少分段需求的方法是要求所有支持IP的链路必须能够处理一些合理的最小长度的包。换句话说,如果一个链路的MTU超过20字节,那么所有的节点都必须准备产生可观数量的分段包。另一方面,如果能够提出所有网络链路都可以适应的某个合理的长度,并把它设置为允许包长度的绝对最小值,那么就可以消灭分段。IPv6中实际上同时使用了上面两种方法。在最初的RFC中,IPv6规定每个链路支持的MTU最小为576字节。那么这些包的净荷长度将是536字节,另外40字节用于IPv6头。由于RFC1883发表于1995年,后来产生了很多关于更大的MTU的争论。在Huitema提出的报告(参见《IPv6:新的IP》第2版,Prentice-Hall)中,建议值为1997,SteveDeering则正在促使将MTU值改为1500字节。在最新的于1997年11月发表的Internet草案中,MTU值被设为1280字节。很明显,关注的焦点在于:倡导较短MTU的人希望那些不能支持较长MTU的网络不会被完全丢弃,而倡导较长MTU的人不希望为照顾小部分接近于废弃的网络而使得整个Internet的性能下降。为了对较短的MTU进行一些弥补,IPv6标准中强烈推荐所有IPv6节点都支持路径MTU发现。路径MTU发现最早出现在RFC1191中,其中使用了分段标志中的“不能分段”来要求中间路由器在发现包太长时返回一个ICMP出错报文。路径MTU发现的IPv6版本在RFC1981(IPv6的路径MTU发现)中描述。这是对原有的RFC1191的升级,但其中加入了一些改变使之可以工作在IPv6中。其中最重要的是,由于IPv6头中不支持分段,因此也就没有“不能分段”位。正在执行路径MTU发现的节点只是简单地在自己的网络链路上向目的地发送允许的最长包。如果一条中间链路无法处理该长度的包,尝试转发路径MTU发现包的路由器将向源节点回送一个ICMPv6出错报文。然后源节点将发送另一个较小的包。这个过程将一直重复,直到不再收到ICMPv6出错报文为止,然后源节点就可以使用最新的MTU作为路径MTU。这里需要注意,有一些实例并没有实现路径MTU发现。例如,使用最小IPv6实现来进行远程网络启动的终端只是简单地使用576字节的路径MTU。从源节点到目的节点的IPv6分段,作为一个扩展头来实现。IPv6-IPv6寻址及地址类型    首先介绍一些与使用I P寻址来标识和定位I P网络上的节点相关的问题。多年以来,I P地址被认为是可以在I P网络上最终唯一并持久的节点标识符。近年中,尤其是随着下一代I P技术的发展,对于I P地址的这种观点正在改变。如果仍像过去所使用的方法来分配网络和节点地址,那将是一种不必要和低效的办法。在介绍了RFC2373(IPv6寻址体系结构)中描述的I P寻址体系结构之后,将首先介绍一些与I P寻址相关的议题。然后将介绍几种可能的地址分配方法。本文将I P v 6寻址分成了以下几个部分:1 2 8位地址的结构和命名及I P v 6地址的不同类型(单播、组播和泛播)。I P v 6的设计者们可以只是简单地在I P v 4寻址体系结构中扩大地址空间。但是这样一来将使我们丧失一个改进I P的巨大机会。对于整个寻址体系结构的修改所带来的巨大机会,不仅体现在提高地址分配的效率上,同时也体现在提高I P选路性能上。本文将介绍这些改进。地址I P v 4与I P v 6地址之间最明显的差别在于长度:I P v 4地址长度为3 2位,而I P v 6地址长度为1 2 8位。RFC2373 中不仅解释了这些地址的表现方式,同时还介绍了不同的地址类型及其结构。I P v 4地址可以被分为2至3个不同部分(网络标识符、节点标识符,有时还有子网标识符), I P v 6地址中拥有更大的地址空间,可以支持更多的字段。I P v 6地址有三类、单播、组播和泛播地址。下一节将对此作更详细的介绍。单播和组播地址与I P v 4的地址非常类似;但I P v 6中不再支持I P v 4中的广播地址,而增加了一个泛播地址。本节介绍的是I P v 6的寻址模型、地址类型、地址表达方式以及地址中的特例。地址表达方式I P v 4地址一般以4部分间点分的方法来表示,即4个数字用点分隔。例如,下面是一些合法的I P v 4地址,都用十进制整数表示:1 0 . 5 . 3 . 1 1 2 7 . 0 . 0 . 1 2 0 1 . 1 9 9 . 2 4 4 . 1 0 1 I P v 4地址也时常以一组4个2位的十六进制整数或4个8位的二进制整数表示,但后一种情况较少见。I P v 6地址长度4倍于I P v 4地址,表达起来的复杂程度也是I P v 4地址的4倍。I P v 6地址的基本表达方式是X : X : X : X : X : X : X : X,其中X是一个4位十六进制整数( 1 6位)。每一个数字包含4位,每个整数包含4个数字,每个地址包括8个整数,共计1 2 8位( 4×4×8 = 1 2 8 )。例如,下面是一些合法的I P v 6地址:C D C D : 9 1 0 A : 2 2 2 2 : 5 4 9 8 : 8 4 7 5 : 1111 : 3 9 0 0 : 2 0 2 0 1 0 3 0 : 0 : 0 : 0 : C 9 B 4 : F F 1 2 : 4 8 A A : 1 A 2 B 2 0 0 0 : 0 : 0 : 0 : 0 : 0 : 0 : 1 请注意这些整数是十六进制整数,其中A到F表示的是1 0到1 5。地址中的每个整数都必须表示出来,但起始的0可以不必表示。这是一种比较标准的I P v 6地址表达方式,此外还有另外两种更加清楚和易于使用的方式。某些I P v 6地址中可能包含一长串的0 (就像上面的第二和第三个例子一样)。当出现这种情况时,标准中允许用“空隙”来表示这一长串的0。换句话说,地址2 0 0 0 : 0 : 0 : 0 : 0 : 0 : 0 : 1 可以被表示为:2 0 0 0 : : 1 这两个冒号表示该地址可以扩展到一个完整的1 2 8位地址。在这种方法中,只有当1 6位组全部为0时才会被两个冒号取代,且两个冒号在地址中只能出现一次。在I P v 4和I P v 6的混合环境中可能有第三种方法。I P v 6地址中的最低3 2位可以用于表示I P v 4 地址,该地址可以按照一种混合方式表达,即X : X : X : X : X : X : d . d . d . d,其中X表示一个1 6位整数,而d表示一个8位十进制整数。例如,地址0 : 0 : 0 : 0 : 0 : 0 : 1 0 . 0 . 0 . 1 就是一个合法的I P v 4地址。把两种可能的表达方式组合在一起,该地址也可以表示为:: : 1 0 . 0 . 0 . 1 由于I P v 6地址被分成两个部分—子网前缀和接口标识符,因此人们期待一个I P节点地址可以按照类似C I D R地址的方式被表示为一个携带额外数值的地址,其中指出了地址中有多少位是掩码。即,I P v 6节点地址中指出了前缀长度,该长度与I P v 6地址间以斜杠区分,例如:1 0 3 0 : 0 : 0 : 0 : C 9 B 4 : F F 1 2 : 4 8 A A : 1 A 2 B / 6 0 这个地址中用于选路的前缀长度为6 0位。寻址模型I P v 6寻址模型与I P v 4很相似。每个单播地址标识一个单独的网络接口。I P地址被指定给网络接口而不是节点,因此一个拥有多个网络接口的节点可以具备多个I P v 6地址,其中任何一个I P v 6地址都可以代表该节点。尽管一个网络接口能与多个单播地址相关联,但一个单播地址只能与一个网络接口相关联。每个网络接口必须至少具备一个单播地址。这里有一个非常重要的声明和一个非常重要的例外。这个声明与点到点链路的使用有关。在I P v 4 中,所有的网络接口,其中包括连接一个节点与路由器的点到点链路(用许多拨号I n t e r n e t连接中),都需要一个专用的I P地址。随着许多机构开始使用点到点链路来连接其分支机构,每条链路均需要其自己的子网,这样一来消耗了许多地址空间。在I P v 6中,如果点到点链路的任何一个端点都不需要从非邻居节点接受和发送数据的话,它们就可以不需要特殊的地址。即,如果两个节点主要是传递业务流,则它们并不需要具备I P v 6地址。为每个网络接口分配一个全球唯一的单播地址的要求阻碍了I P v 4地址的扩展。一个提供通用服务的服务器在高需求量的情况下可能会崩溃。因此,I P v 6地址模型中又提出了一个重要的例外:如果硬件有能力在多个网络接口上正确地共享其网络负载的话,那么多个网络接口可以共享一个I P v 6地址。这使得从服务器扩展至负载分担的服务器集群成为可能,而不再需要在服务器的需求量上升时必须进行硬件升级。地址空间RFC2373中包含了一个I P v 6地址空间“图”,其中显示了地址空间是如何进行分配的,地址分配的不同类型,前缀(地址分配中前面的位值)和作为整个地址空间的一部分的地址分配的长度。下图显示了I P v 6地址空间的分配。
在I P v 6地址分配中需要注意几点。首先,在RFC1884中,地址空间的四分之一被用于两类不同地址:八分之一是基于供应商的单播地址,而另八分之一是基于地理位置的单播地址。人们希望地址的分配可以根据网络服务供应商或者用户所在网络的物理位置进行。基于供应商的集聚,正如它最初的名字一样,要求网络从提供I n t e r n e t接入的供应商那里得到可集聚的I P地址。但是,这种方法对于具有距离较远的分支机构的大型机构来说并不是一种完美的解决办法,因为其中许多分支机构可能会使用不同的供应商。基于供应商的集聚将为这些大单位带来更多的I P地址管理问题。Steve Deering提议把基于地理位置的地址分配方法作为S I P ( S I P P的前身,在第4章中有介绍)中的一种办法。这些地址与基于供应商的地址不同,以一种非常类似I P v 4的方法分配地址。这些地址与地理位置有关,且供应商将不得不保留额外的路由器来支持I P v 6地址空间中可集聚部分外的这些网络。I S P实际上并不赞同这个解决方案,因为管理基于地理位置的寻址将大大增加复杂性(和花费)。另一方面,难以对基于供应商的地址进行配置和重配置也引起许多对基于供应商的分配方案的反对。如果没有广泛使用基于I P v 4自动配置方案(如D H C P ),那么所有机构的网络将会存在巨大的管理问题。尽管I P v 6对于自动配置功能有着更好的支持,但并没有将地理位置的分配方法最终融合进去。注意,绝大部分的地址空间并没有分配,地址分配的第一部分被保留了下来。地址类型如上所述,I P地址有三种类型:单播、组播和任意点播。广播地址已不再有效。R F C 2 3 7 3中定义了三种I P v 6地址类型:? 单播:一个单接口的标识符。送往一个单播地址的包将被传送至该地址标识的接口上。广播路在何方广播地址从一开始就为I P v 4网络带来了问题。广播被用来携带去向多个节点的信息或被那些不知信息来自何方的节点用来发出请求。但是,广播可能将为网络性能设置障碍。同一网络链路上的大量广播意味着该链路上的所有每个节点都必须处理所有广播,其中绝大部分节点最终都将忽略该广播,因为该信息与自己无关。把广播在子网之间进行转发将导致更多的问题,因为路由器上将充斥着这种业务流。I P v 6对此的解决办法是使用一个“所有节点”组播地址来替代那些必须使用广播的情况,同时,对那些原来使用了广播地址的场合,则使用一些更加有限的组播地址。通过这种方法,对于原来由广播携带的业务流感兴趣的节点可以加入一个组播地址,而其他对该信息不感兴趣的节点则可以忽略发往该地址的包。广播从来不能解决信息穿越I n t e r n e t的问题,如选路信息,而组播则提供了一个更加可行的方法。单播单播地址标识了一个单独的I P v 6接口。一个节点可以具有多个I P v 6网络接口。每个接口必须具有一个与之相关的单播地址。单播地址可被认为包含了一段信息,这段信息被包含在1 2 8位字段中:该地址可以完整地定义一个特定的接口。此外,地址中数据可以被解释为多个小段的信息。但无论如何,当所有的信息被放在一起后,将构成标识一个节点接口的1 2 8位地址。I P v 6地址本身可以为节点提供关于其结构的或多或少的信息,这主要根据是由谁来观察这个地址以及观察什么。例如,节点可能只需简单地了解整个1 2 8位地址是一个全球唯一的标识符,而无须了解节点在网络中是否存在。另一方面,路由器可以通过该地址来决定,地址中的一部分标识了一个特定网络或子网上的一个唯一节点。例如,一个I P v 6单播地址可看成是一个两字段实体,其中一个字段用来标识网络,而另一个字段则用来标识该网络上节点的接口。在后面讨论特定的单播地址类型时还会看到,网络标识符可被划分为几部分,分别标识不同的网络部分。I P v 6单播地址功能与I P v 4地址一样受制于C I D R,即,在一个特定边界上将地址分为两部分。地址的高位部分包含选路用的前缀,而地址的低位部分包含网络接口标识符。最简单的方法是把I P v 6地址作为不加区分的一块1 2 8位的数据,而从格式化的观点来看,可把它分为两段,即接口标识符和子网前缀。RFC2373中表示的格式见上图。接口标识符的长度取决于子网前缀的长度。两者的长度是可以变化的,这取决于谁对它进行解释。对于非常靠近寻址的节点接口(远离骨干网)的路由器可用相对较少的位数来标识接口。而离骨干网近的路由器,只需用少量地址位来指定子网前缀,这样,地址的大部分将用来标识接口标识符。下面要讨论的是可集聚的单播地址,它的结构更为复杂。 RFC2373中定义的IPv6单播地址的简单格式
I P v 6单播地址包括下面几种类型:? 可集聚全球地址。? 未指定地址或全0地址。? 回返地址。? 嵌有I P v 4地址的I P v 6地址。? 基于供应商和基于地理位置的供应商地址。? OSI 网络服务访问点( N S A P )地址。? 网络互联包交换( I P X )地址。单播地址格式RFC1884给出了几种通用的不同类型的I P v 6地址。给N S A P和I P X分配的地址、基于O S I 网络和N e t Wa r e地址都无缝地包含在I P v 6体系结构中。分别占八分之一的地址空间的基于供应商和基于地理位置分配的地址组成了一批可分配的地址。链路本地和站点本地地址提供了1 0 型网络地址转换的网络统一不变的版本。然而,RFC2373改变和简化了I P v 6的地址分配。其中之一是取消了基于地理位置的地址分配,基于供应商的单播地址改变成可集聚全球单播地址。从名字的改变上就可看出,对于基于供应商的地址,允许前面定义的集聚以及基于交换局的新型集聚。这也反映了一种更平衡的地址分类。N S A P和I P X地址空间仍然保留着,且八分之一的地址分配给可集聚地址。另外,除了组播地址和某类保留地址外,I P v 6地址空间的其余部分都是未分配的地址,为将来的发展预留了足够的空间。1. 接口标识符在I P v 6寻址体系结构中,任何I P v 6单播地址都需要一个接口标识符。接口标识符非常像48 位的介质访问控制( M A C )地址,M A C地址由硬件编码在网络接口卡中,由厂商烧入网卡中,而且地址具有全球唯一性,不会有两个网卡具有相同的M A C地址。这些地址能用来唯一标识网络链路层上的接口。I P v 6主机地址的接口标识符基于IEEE EUI-64格式。该格式基于已存在的M A C地址来创建6 4位接口标识符,这样的标识符在本地和全球范围是唯一的。RFC2373 包括的附录解释了如何创建接口标识符。有关IEEE EUI-64 标准更多的信息,请访问I E E E标准网点:h t t p : / / s t a n d a r d s . i e e e . o rg / d b / o u i / t u t o r i a l s / E U I 6 4 . h t m l。这些6 4位接口标识符能在全球范围内逐个编址,并唯一地标识每个网络接口。这意味着理论上可多达26 4个不同的物理接口,大约有1 . 8×1 01 9个不同的地址,而且这也只用了I P v 6地址空间的一半。这至少在可预见的未来是足够的。2. 可集聚全球单播地址本文已经提到了基于供应商的集聚,它的概念还会在第8章中再次提到。可集聚全球单播地址是另一种类型的集聚,它是独立于I S P的。基于供应商的可集聚地址必须随着供应商的改变而改变,而基于交换局的地址则由I P v 6交换实体直接定位。由交换局提供地址块,而用户和供应商为网络接入签订合同。这样的网络接入或者是直接由供应商提供,或者通过交换局间接提供,但选路通过交换局。这就使得用户改换供应商时,无需重新编址。同时也允许用户使用多个I S P来处理单块网络地址。可集聚全球单播地址包括地址格式的起始3位为0 0 1的所有地址(此格式可在将来用于当前尚未分配的其他单播前缀)。地址格式化为下图所示的字段。 RFC2373中定义的IPv6全球可集聚单播地址格式
图中包括下列字段:? F P 字段:I P v 6地址中的格式前缀,3位长,用来标识该地址在I P v 6地址空间中属于哪类地址。目前该字段为“0 0 1”,标识这是可集聚全球单播地址。? TLA ID字段:顶级集聚标识符,包含最高级地址选路信息。这指的是网络互连中最大的选路信息。目前,该字段为1 3位,可得到最大8 1 9 2个不同的顶级路由。? R E S 字段:该字段为8位,保留为将来用。最终可能会用于扩展顶级或下一级集聚标识符字段。? NLA ID字段:下一级集聚标识符,2 4位长。该标识符被一些机构用于控制顶级集聚以安排地址空间。换句话说,这些机构(可能包括大型I S P和其他提供公网接入的机构)能按照他们自己的寻址分级结构来将此2 4位字段切开用。这样,一个实体可以用2位分割成4 个实体内部的顶级路由,其余的2 2位地址空间分配给其他实体(如规模较小的本地I S P )。这些实体如果得到足够的地址空间,可将分配给它们的空间用同样的方法再子分。? SLA ID字段:站点级集聚标识符,被一些机构用来安排内部的网络结构。每个机构可以用与I P v 4同样的方法来创建自己内部的分级网络结构。若1 6位字段全部用作平面地址空间,则最多可有65 535 个不同子网。如果用前8位作该组织内较高级的选路,那么允许2 5 5个高级子网,每个高级子网可有多达2 5 5个子子网。? 接口标识符字段:6 4位长,包含IEEE EUI-64接口标识符的6 4位值。现在很清楚,I P v 6单播地址能包括大量的组合,甚至超过了将来R F C可能会指定的显式字段。不论是站点级集聚标识符,还是下一级集聚标识符都提供了大量空间,以便某些网络接入供应商和机构通过分级结构再子分这两个字段来增加附加的拓扑结构。3.特殊地址和保留地址在第一个1/256 IPv6地址空间中,所有地址的第一个8位:被保留。大部分空的地址空间用作特殊地址,这些特殊地址包括:? 未指定地址:这是一个“全0”地址,当没有有效地址时,可采用该地址。例如当一个主机从网络第一次启动时,它尚未得到一个I P v 6地址,就可以用这个地址,即当发出配置信息请求时,在I P v 6包的源地址中填入该地址。该地址可表示为0 : 0 : 0 : 0 : 0 : 0 : 0 : 0,如前所述,也可写成: :。? 回返地址:在I P v 4中,回返地址定义为1 2 7 . 0 . 0 . 1。任何发送回返地址的包必须通过协议栈到网络接口,但不发送到网络链路上。网络接口本身必须接受这些包,就好像是从外面节点收到的一样,并传回给协议栈。回返功能用来测试软件和配置。I P v 6回返地址除了最低位外,全为0,即回返地址可表示为0 : 0 : 0 : 0 : 0 : 0 : 0 : 1或: : 1。? 嵌有I P v 4地址的I P v 6地址:有两类地址,一类允许I P v 6节点访问不支持I P v 6的I P v 4节点,另一类允许I P v 6路由器用隧道方式,在I P v 4网络上传送I P v 6包。这两类地址将在下面进行讨论。4. 嵌有I P v 4地址的I P v 6地址不管人们是否愿意,逐渐向I P v 6过渡已成定局。这意味着I P v 4和I P v 6节点必须找到共存的方法。当然两个不同I P版本最明显的一个差别是地址。最早由RFC1884 定义,然后被带入RFC2373中,I P v 6提供两类嵌有I P v 4地址的特殊地址。这两类地址高阶8 0位均为0,低价3 2位包含I P v 4地址。当中间的1 6位被置为F F F F时,则指示该地址为I P v 4映象的I P v 6地址。I P v 4兼容地址被节点用于通过I P v 4路由器以隧道方式传送I P v 6包。这些节点既理解I P v 4又理解I P v 6。I P v 4映象地址则被I P v 6节点用于访问只支持I P v 4的节点。5. 链路本地和站点本地地址对于不愿意申请全球唯一性的I P v 4网络地址的一些机构,通过采用网络1 0型地址对I P v 4 网络地址进行翻译,可以为这些机构提供一个选项。位于机构之外,但由机构使用的路由器不应该转发这些地址,但是不能阻止转发这些地址,也不能区分这些地址和其他有效的I P v 4 地址。可以相对容易地配置路由器,使其能转发这些地址。链路本地地址用于单网络链路上给主机编号。前缀的前1 0位标识的地址即链路本地地址。路由器在它们的源端和目的端对具有链路本地地址的包不予处理,因为永远也不会转发这些包。该地址的中间5 4位置成0。而6 4位接口标识符同样用如前所述的I E E E结构,地址空间的这部分允许个别网络连接多达( 2的64次方-1)个主机。NSAP和I P X地址分配I P n g的目标之一是要统一整个网络世界,使I P、I P X和O S I网络间能进行互操作。为了支持这种互操作性,I P v 6为O S I和I P X各保留了1 / 1 2 8地址空间。在本书写作时,I P X地址格式尚未精确定义;N S A P地址分配的描述见RFC10(OSI NSAP和I P v 6 )。对O S I和N S A P的讨论已超出本书范围,感兴趣的读者可以在R F C中找到更完整的论述。组播像广播地址一样,组播地址在类似老式的以太网的本地网中特别有用,在这种网中,所有节点都能检测出线路上传输的所有数据。每次传输开始时,每个节点检查其目的地址,如果与本节点接口地址一致,节点就拾取该传输的其余部分。这使节点拾取广播和组播传输相对比较简单。如果是广播,节点只要侦听,无须做任何决定,因此简单。对组播来说,稍复杂一些,节点要预订一个组播地址,当检测出目的地址为组播地址时,必须确定是否是节点预定的那个组播地址。I P组播就更为复杂。一个重要的原因是I P并不是不加鉴别就将业务流放在I n t e r n e t上转发至所有节点,这是I P成功之处。如果要这样做的话,它将迫使大多数甚至所有连接的网络屈服。这就是为什么路由器不应该转发广播包的原因。不过,对组播而言,只要路由器以其他节点的名义预订组播地址,就能有选择地转发它。当节点预订组播地址时,它声明要成为组播的一个成员。于是任何本地路由器将以该节点的名义预订组播地址。同一网络上的其他节点要发送信息到该组播地址时,I P组播包将被封装到链路层组播数据传输单元中。在以太网上,封装的单元指向以太网组播地址;在其他用点对点电路传输的网络上(如AT M ) ,通过其他某些机制将包发送给订户,通常通过某类服务器将包发送给每个订户。从本地网以外来的组播,用同样方法处理,只是传递给路由器,由路由器把包转发给预订节点。1. 组播地址格式I P v 6组播地址的格式不同于I P v 6单播地址,采用更为严格的格式。组播地址只能用作目的地址,没有数据报把组播地址用作源地址。地址格式中的第1个字节为全“1”,标识其为组播地址。回顾图6 - 1,组播地址占了I P v 6 地址空间的整整1 / 2 5 6。组播地址格式中除第1字节外的其余部分,包括如下三个字段:? 标志字段:由4 个单个位标志组成。目前只指定了第4 位,该位用来表示该地址是由I n t e r n e t编号机构指定的熟知的组播地址,还是特定场合使用的临时组播地址。如果该标志位为“0”,表示该地址为熟知地址;如果该位为“1”,表示该地址为临时地址。其他3个标志位保留将来用。? 范围字段:长4位,用来表示组播的范围。即,组播组是只包括同一本地网、同一站点、同一机构中的节点,还是包括I P v 6全球地址空间中任何位置的节点。该4位的可能值为0 ~ 1 5? 组标识符字段:长11 2 位,用于标识组播组。根据组播地址是临时的还是熟知的以及地址的范围,同一个组播标识符可以表示不同的组。永久组播地址用指定的赋予特殊含义的组标识符,组中的成员既依赖于组标识符,又依赖于范围 RFC2373中指定的IPv6组播范围值
所有I P v 6组播地址以F F开始,表示地址的第1个8位为全“1”。目前,因为标志的其余位未定义,所以地址的第3个十六进制数字若为“0”,则表示熟知地址;若为“1”, 则表示临时地址。第4个十六进制数字表示范围,可以是未分配的值或保留的值,见上图。组播组I P v 4已具备使用组播的应用,由于这种应用将同样的数据发送到多个节点,例如,电视会议或财经新闻及股票行情的发布,因而需要高带宽。用分配的组播地址和组播范围进行组合,可以表现出多种含义,并用在其他应用上。一些早期注册的组播地址,包括成组的路由器、D H C P服务、音频和视频服务以及网络游戏服务,详情请参阅RFC2375(IPv6组播地址分配)。考虑组播组标识符为“所有D H C P服务器”时可能发生的情况。用组标识符1 : 3来代表这个组。用2表示链路本地范围(本地网络链路),则I P v 6组播地址为F F 0 2 : 0 : 0 : 0 : 0 : 0 : 1 : 3。该地址可解释为:链路本地范围内的所有D H C P服务器,即,所有D H C P服务器在同一网络上。如果将范围改为站点本地,那么该地址的意思变为“同一站点上的所有D H C P服务器”。保留的组播组标识符可用于扩展范围字段。如果范围字段值为1,表示组标识符所指定的所有特定类型的服务器只包括本地节点上的服务器。如果范围字段值为2,除了包括本地节点上的服务器外,再加上连接到同一网络的其他所有服务器。例如,只有当一个网络时间协议( N T P )服务器运行在本地节点上时,用组标识符标识范围值为1的该服务器将具有一个激活的成员;如果范围值增至2,则包括连接到同一网络的运行一个NTP 服务器的任何节点;如果范围值增至8,它将包括运行在整个机构的所有N T P服务器;如果范围值增至E (十进制为1 4 ), 它将包括互联网上任何地点的所有N T P服务器。另一方面,对于临时组播地址的组标识符,在它们自己的范围以外没有意义。全球范围的临时组播组和链路本地的组,即使它们可能有相同的组标识符,也没有任何关系。泛播组播地址在某种意义上可以由多个节点共享。组播地址成员的所有节点均期待着接收发给该地址的所有包。一个连接5个不同的本地以太网网络的路由器,要向每个网络转发一个组播包的副本(假设每个网络上至少有一个预订了该组播地址)。泛播地址与组播地址类似,同样是多个节点共享一个泛播地址,不同的是,只有一个节点期待接收给泛播地址的数据报。泛播对提供某些类型的服务特别有用,尤其是对于客户机和服务器之间不需要有特定关系的一些服务,例如域名服务器和时间服务器。名字服务器就是个名字服务器,不论远近都应该工作得一样好。同样,一个近的时间服务器,从准确性来说,更为可取。因此当一个主机为了获取信息,发出请求到泛播地址,响应的应该是与该泛播地址相关联的最近的服务器。泛播地址的分配及其格式泛播地址被分配在正常的I P v 6单播地址空间以外。因为泛播地址在形式上与单播地址无法区分开,一个泛播地址的每个成员,必须显式地加以配置,以便识别泛播地址。泛播选路了解如何为一个单播包确定路由,必须从指定单个单播地址的一组主机中提取最低的公共选路命名符。即,它们必定有某些公共的网络地址号,并且其前缀定义了所有泛播节点存在的地区。比如一个I S P可能要求它的每一个用户机构提供一个时间服务器,这些时间服务器共享单个泛播地址。在这种情况下,定义泛播地区的前缀,被分配给I S P作再分发用。发生在该地区中的选路是由共享泛播地址的主机的分发来定义的。在该地区中,一个泛播地址必定带有一个选路项:该选路项包括一些指针,指向共享该泛播地址的所有节点的网络接口。上述情况下,地区限定在有限范围内。泛播主机也可能分散在全球Internet 上,如果是这种情况的话,那么泛播地址必须添加到遍及世界的所有路由表上。IPv6-IPV6的地址类型    IP地址有三种类型:单播、组播和任意点播。广播地址已不再有效。RFC2373中定义了三种IPv6地址类型:?  单播:一个单接口的标识符。送往一个单播地址的包将被传送至该地址标识的接口上。?  泛播:一组接口(一般属于不同节点)的标识符。送往一个泛播地址的包将被传送至该地址标识的接口之一(根据选路协议对于距离的计算方法选择“最近”的一个)。?  组播:一组接口(一般属于不同节点)的标识符。送往一个组播地址的包将被传送至有该地址标识的所有接口上。广播路在何方广播地址从一开始就为IPv4网络带来了问题。广播被用来携带去向多个节点的信息或被那些不知信息来自何方的节点用来发出请求。但是,广播可能将为网络性能设置障碍。同一网络链路上的大量广播意味着该链路上的所有每个节点都必须处理所有广播,其中绝大部分节点最终都将忽略该广播,因为该信息与自己无关。把广播在子网之间进行转发将导致更多的问题,因为路由器上将充斥着这种业务流。IPv6对此的解决办法是使用一个“所有节点”组播地址来替代那些必须使用广播的情况,同时,对那些原来使用了广播地址的场合,则使用一些更加有限的组播地址。通过这种方法,对于原来由广播携带的业务流感兴趣的节点可以加入一个组播地址,而其他对该信息不感兴趣的节点则可以忽略发往该地址的包。广播从来不能解决信息穿越Internet的问题,如选路信息,而组播则提供了一个更加可行的方法。单播单播地址标识了一个单独的IPv6接口。一个节点可以具有多个IPv6网络接口。每个接口必须具有一个与之相关的单播地址。单播地址可被认为包含了一段信息,这段信息被包含在128位字段中:该地址可以完整地定义一个特定的接口。此外,地址中数据可以被解释为多个小段的信息。但无论如何,当所有的信息被放在一起后,将构成标识一个节点接口的128位地址。IPv6地址本身可以为节点提供关于其结构的或多或少的信息,这主要根据是由谁来观察这个地址以及观察什么。例如,节点可能只需简单地了解整个128位地址是一个全球唯一的标识符,而无须了解节点在网络中是否存在。另一方面,路由器可以通过该地址来决定,地址中的一部分标识了一个特定网络或子网上的一个唯一节点。例如,一个IPv6单播地址可看成是一个两字段实体,其中一个字段用来标识网络,而另一个字段则用来标识该网络上节点的接口。在后面讨论特定的单播地址类型时还会看到,网络标识符可被划分为几部分,分别标识不同的网络部分。IPv6单播地址功能与IPv4地址一样受制于CIDR,即,在一个特定边界上将地址分为两部分。地址的高位部分包含选路用的前缀,而地址的低位部分包含网络接口标识符。最简单的方法是把IPv6地址作为不加区分的一块128位的数据,而从格式化的观点来看,可把它分为两段,即接口标识符和子网前缀。接口标识符的长度取决于子网前缀的长度。两者的长度是可以变化的,这取决于谁对它进行解释。对于非常靠近寻址的节点接口(远离骨干网)的路由器可用相对较少的位数来标识接口。而离骨干网近的路由器,只需用少量地址位来指定子网前缀,这样,地址的大部分将用来标识接口标识符。下面要讨论的是可集聚的单播地址,它的结构更为复杂。 RFC2373中定义的IPv6单播地址的简单格式
IPv6单播地址包括下面几种类型:?可集聚全球地址?未指定地址或全0地址?回返地址?嵌有IPv4地址的IPv6地址?基于供应商和基于地理位置的供应商地址?OSI网络服务访问点(NSAP)地址?网络互联包交换(IPX)地址单播地址格式RFC1884给出了几种通用的不同类型的IPv6地址。给NSAP和IPX分配的地址、基于OSI网络和NetWare地址都无缝地包含在IPv6体系结构中。分别占八分之一的地址空间的基于供应商和基于地理位置分配的地址组成了一批可分配的地址。链路本地和站点本地地址提供了10型网络地址转换的网络统一不变的版本。然而,RFC2373改变和简化了IPv6的地址分配。其中之一是取消了基于地理位置的地址分配,基于供应商的单播地址改变成可集聚全球单播地址。从名字的改变上就可看出,对于基于供应商的地址,允许前面定义的集聚以及基于交换局的新型集聚。这也反映了一种更平衡的地址分类。NSAP和IPX地址空间仍然保留着,且八分之一的地址分配给可集聚地址。另外,除了组播地址和某类保留地址外,IPv6地址空间的其余部分都是未分配的地址,为将来的发展预留了足够的空间。1.接口标识符在IPv6寻址体系结构中,任何IPv6单播地址都需要一个接口标识符。接口标识符非常像48位的介质访问控制(MAC)地址,MAC地址由硬件编码在网络接口卡中,由厂商烧入网卡中,而且地址具有全球唯一性,不会有两个网卡具有相同的MAC地址。这些地址能用来唯一标识网络链路层上的接口。IPv6主机地址的接口标识符基于IEEEEUI-64格式。该格式基于已存在的MAC地址来创建64位接口标识符,这样的标识符在本地和全球范围是唯一的。RFC2373包括的附录解释了如何创建接口标识符。这些64位接口标识符能在全球范围内逐个编址,并唯一地标识每个网络接口。这意味着理论上可多达264个不同的物理接口,大约有1.8×1019个不同的地址,而且这也只用了IPv6地址空间的一半。这至少在可预见的未来是足够的。2.可集聚全球单播地址此处已经提到了基于供应商的集聚,它的概念还会在第8章中再次提到。可集聚全球单播地址是另一种类型的集聚,它是独立于ISP的。基于供应商的可集聚地址必须随着供应商的改变而改变,而基于交换局的地址则由IPv6交换实体直接定位。由交换局提供地址块,而用户和供应商为网络接入签订合同。这样的网络接入或者是直接由供应商提供,或者通过交换局间接提供,但选路通过交换局。这就使得用户改换供应商时,无需重新编址。同时也允许用户使用多个ISP来处理单块网络地址。可集聚全球单播地址包括地址格式的起始3位为001的所有地址(此格式可在将来用于当前尚未分配的其他单播前缀)。地址格式化为下图所示的字段。 RFC2373中定义的IPv6全球可集聚单播地址格式
图中包括下列字段:?FP字段:IPv6地址中的格式前缀,3位长,用来标识该地址在IPv6地址空间中属于哪类地址。目前该字段为“001”,标识这是可集聚全球单播地址。?TLAID字段:顶级集聚标识符,包含最高级地址选路信息。这指的是网络互连中最大的选路信息。目前,该字段为13位,可得到最大8192个不同的顶级路由。?RES字段:该字段为8位,保留为将来用。最终可能会用于扩展顶级或下一级集聚标识符字段。?NLAID字段:下一级集聚标识符,24位长。该标识符被一些机构用于控制顶级集聚以安排地址空间。换句话说,这些机构(可能包括大型ISP和其他提供公网接入的机构)能按照他们自己的寻址分级结构来将此24位字段切开用。这样,一个实体可以用2位分割成4个实体内部的顶级路由,其余的22位地址空间分配给其他实体(如规模较小的本地ISP)。这些实体如果得到足够的地址空间,可将分配给它们的空间用同样的方法再子分。?SLAID字段:站点级集聚标识符,被一些机构用来安排内部的网络结构。每个机构可以用与IPv4同样的方法来创建自己内部的分级网络结构。若16位字段全部用作平面地址空间,则最多可有65535个不同子网。如果用前8位作该组织内较高级的选路,那么允许255个高级子网,每个高级子网可有多达255个子子网。?接口标识符字段:64位长,包含IEEEEUI-64接口标识符的64位值。现在很清楚,IPv6单播地址能包括大量的组合,甚至超过了将来RFC可能会指定的显式字段。不论是站点级集聚标识符,还是下一级集聚标识符都提供了大量空间,以便某些网络接入供应商和机构通过分级结构再子分这两个字段来增加附加的拓扑结构。3.特殊地址和保留地址在第一个1/256IPv6地址空间中,所有地址的第一个8位:被保留。大部分空的地址空间用作特殊地址,这些特殊地址包括:?未指定地址:这是一个“全0”地址,当没有有效地址时,可采用该地址。例如当一个主机从网络第一次启动时,它尚未得到一个IPv6地址,就可以用这个地址,即当发出配置信息请求时,在IPv6包的源地址中填入该地址。该地址可表示为0:0:0:0:0:0:0:0,如前所述,也可写成::。?回返地址:在IPv4中,回返地址定义为127.0.0.1。任何发送回返地址的包必须通过协议栈到网络接口,但不发送到网络链路上。网络接口本身必须接受这些包,就好像是从外面节点收到的一样,并传回给协议栈。回返功能用来测试软件和配置。IPv6回返地址除了最低位外,全为0,即回返地址可表示为0:0:0:0:0:0:0:1或::1。?嵌有IPv4地址的IPv6地址:有两类地址,一类允许IPv6节点访问不支持IPv6的IPv4节点,另一类允许IPv6路由器用隧道方式,在IPv4网络上传送IPv6包。这两类地址将在下面进行讨论。4.嵌有IPv4地址的IPv6地址不管人们是否愿意,逐渐向IPv6过渡已成定局。这意味着IPv4和IPv6节点必须找到共存的方法。当然两个不同IP版本最明显的一个差别是地址。最早由RFC1884定义,然后被带入RFC2373中,IPv6提供两类嵌有IPv4地址的特殊地址。这两类地址高阶80位均为0,低价32位包含IPv4地址。当中间的16位被置为FFFF时,则指示该地址为IPv4映象的IPv6地址。图6-4显示了这两类地址结构。IPv4兼容地址被节点用于通过IPv4路由器以隧道方式传送IPv6包。这些节点既理解IPv4又理解IPv6。IPv4映象地址则被IPv6节点用于访问只支持IPv4的节点。5.链路本地和站点本地地址对于不愿意申请全球唯一性的IPv4网络地址的一些机构,通过采用网络10型地址对IPv4网络地址进行翻译,可以为这些机构提供一个选项。位于机构之外,但由机构使用的路由器不应该转发这些地址,但是不能阻止转发这些地址,也不能区分这些地址和其他有效的IPv4地址。可以相对容易地配置路由器,使其能转发这些地址。 RFC2373定义的嵌有IPv4地址的IPv6地址
为实现这一功能,IPv6从全球唯一的Internet空间中分出两个不同的地址段。下图,源自RFC2373,显示了链路本地和站点本地地址的结构。 RFC2373中指定的链路本地和站点本地网络地址
链路本地地址用于单网络链路上给主机编号。前缀的前10位标识的地址即链路本地地址。路由器在它们的源端和目的端对具有链路本地地址的包不予处理,因为永远也不会转发这些包。该地址的中间54位置成0。而64位接口标识符同样用如前所述的IEEE结构,地址空间的这部分允许个别网络连接多达(26的4次方-1)个主机。如果说链路本地地址只用于单个网络链路的话,那么站点本地地址则可用于站点。这意味着站点本地地址能用在内联网中传送数据,但不允许从站点直接选路到全球Internet。站点内的路由器只能在站点内转发包,而不能把包转发到站点外去。站点本地地址的10位前缀与链路本地地址的10位前缀略有区别,然后后面紧跟一连串“0”。站点本地地址的子网标识符为16位,而接口标识符同样是64位基于IEEE地址。6.NSAP和IPX地址分配IPng的目标之一是要统一整个网络世界,使IP、IPX和OSI网络间能进行互操作。为了支持这种互操作性,IPv6为OSI和IPX各保留了1/128地址空间。在本书写作时,IPX地址格式尚未精确定义;NSAP地址分配的描述见RFC10(OSINSAP和IPv6)。对OSI和NSAP的讨论已超出本书范围。组播像广播地址一样,组播地址在类似老式的以太网的本地网中特别有用,在这种网中,所有节点都能检测出线路上传输的所有数据。每次传输开始时,每个节点检查其目的地址,如果与本节点接口地址一致,节点就拾取该传输的其余部分。这使节点拾取广播和组播传输相对比较简单。如果是广播,节点只要侦听,无须做任何决定,因此简单。对组播来说,稍复杂一些,节点要预订一个组播地址,当检测出目的地址为组播地址时,必须确定是否是节点预定的那个组播地址。IP组播就更为复杂。一个重要的原因是IP并不是不加鉴别就将业务流放在Internet上转发至所有节点,这是IP成功之处。如果要这样做的话,它将迫使大多数甚至所有连接的网络屈服。这就是为什么路由器不应该转发广播包的原因。不过,对组播而言,只要路由器以其他节点的名义预订组播地址,就能有选择地转发它。当节点预订组播地址时,它声明要成为组播的一个成员。于是任何本地路由器将以该节点的名义预订组播地址。同一网络上的其他节点要发送信息到该组播地址时,IP组播包将被封装到链路层组播数据传输单元中。在以太网上,封装的单元指向以太网组播地址;在其他用点对点电路传输的网络上(如ATM),通过其他某些机制将包发送给订户,通常通过某类服务器将包发送给每个订户。从本地网以外来的组播,用同样方法处理,只是传递给路由器,由路由器把包转发给预订节点。1.组播地址格式IPv6组播地址的格式不同于IPv6单播地址,采用图6-6所示的更为严格的格式。组播地址只能用作目的地址,没有数据报把组播地址用作源地址。地址格式中的第1个字节为全“1”,标识其为组播地址。回顾上图,组播地址占了IPv6地址空间的整整1/256。组播地址格式中除第1字节外的其余部分,包括如下三个字段:?标志字段:由4个单个位标志组成。目前只指定了第4位,该位用来表示该地址是由Internet编号机构指定的熟知的组播地址,还是特定场合使用的临时组播地址。如果该标志位为“0”,表示该地址为熟知地址;如果该位为“1”,表示该地址为临时地址。其他3个标志位保留将来用。?范围字段:长4位,用来表示组播的范围。即,组播组是只包括同一本地网、同一站点、同一机构中的节点,还是包括IPv6全球地址空间中任何位置的节点。该4位的可能值为0~15,见下图 RFC2373中指定的IPv6组播地址格式
?组标识符字段:长112位,用于标识组播组。根据组播地址是临时的还是熟知的以及地址的范围,同一个组播标识符可以表示不同的组。永久组播地址用指定的赋予特殊含义的组标识符,组中的成员既依赖于组标识符,又依赖于范围。 RFC2373中指定的IPv6组播范围值
所有IPv6组播地址以FF开始,表示地址的第1个8位为全“1”。目前,因为标志的其余位未定义,所以地址的第3个十六进制数字若为“0”,则表示熟知地址;若为“1”,则表示临时地址。第4个十六进制数字表示范围,可以是未分配的值或保留的值,见图6-7。2.组播组IPv4已具备使用组播的应用,由于这种应用将同样的数据发送到多个节点,例如,电视会议或财经新闻及股票行情的发布,因而需要高带宽。用分配的组播地址和组播范围进行组合,可以表现出多种含义,并用在其他应用上。一些早期注册的组播地址,包括成组的路由器、DHCP服务、音频和视频服务以及网络游戏服务,详情请参阅RFC2375(IPv6组播地址分配)。考虑组播组标识符为“所有DHCP服务器”时可能发生的情况。用组标识符1:3来代表这个组。用2表示链路本地范围(本地网络链路),则IPv6组播地址为FF02:0:0:0:0:0:1:3。该地址可解释为:链路本地范围内的所有DHCP服务器,即,所有DHCP服务器在同一网络上。如果将范围改为站点本地,那么该地址的意思变为“同一站点上的所有DHCP服务器”。保留的组播组标识符可用于扩展范围字段。如果范围字段值为1,表示组标识符所指定的所有特定类型的服务器只包括本地节点上的服务器。如果范围字段值为2,除了包括本地节点上的服务器外,再加上连接到同一网络的其他所有服务器。例如,只有当一个网络时间协议(NTP)服务器运行在本地节点上时,用组标识符标识范围值为1的该服务器将具有一个激活的成员;如果范围值增至2,则包括连接到同一网络的运行一个NTP服务器的任何节点;如果范围值增至8,它将包括运行在整个机构的所有NTP服务器;如果范围值增至E(十进制为14),它将包括互联网上任何地点的所有NTP服务器。另一方面,对于临时组播地址的组标识符,在它们自己的范围以外没有意义。全球范围的临时组播组和链路本地的组,即使它们可能有相同的组标识符,也没有任何关系。泛播组播地址在某种意义上可以由多个节点共享。组播地址成员的所有节点均期待着接收发给该地址的所有包。一个连接5个不同的本地以太网网络的路由器,要向每个网络转发一个组播包的副本(假设每个网络上至少有一个预订了该组播地址)。泛播地址与组播地址类似,同样是多个节点共享一个泛播地址,不同的是,只有一个节点期待接收给泛播地址的数据报。泛播对提供某些类型的服务特别有用,尤其是对于客户机和服务器之间不需要有特定关系的一些服务,例如域名服务器和时间服务器。名字服务器就是个名字服务器,不论远近都应该工作得一样好。同样,一个近的时间服务器,从准确性来说,更为可取。因此当一个主机为了获取信息,发出请求到泛播地址,响应的应该是与该泛播地址相关联的最近的服务器。1.泛播地址的分配及其格式泛播地址被分配在正常的IPv6单播地址空间以外。因为泛播地址在形式上与单播地址无法区分开,一个泛播地址的每个成员,必须显式地加以配置,以便识别泛播地址。2.泛播选路了解如何为一个单播包确定路由,必须从指定单个单播地址的一组主机中提取最低的公共选路命名符。即,它们必定有某些公共的网络地址号,并且其前缀定义了所有泛播节点存在的地区。比如一个ISP可能要求它的每一个用户机构提供一个时间服务器,这些时间服务器共享单个泛播地址。在这种情况下,定义泛播地区的前缀,被分配给ISP作再分发用。发生在该地区中的选路是由共享泛播地址的主机的分发来定义的。在该地区中,一个泛播地址必定带有一个选路项:该选路项包括一些指针,指向共享该泛播地址的所有节点的网络接口。上述情况下,地区限定在有限范围内。泛播主机也可能分散在全球Internet上,如果是这种情况的话,那么泛播地址必须添加到遍及世界的所有路由表上。IPv6-ICMPv6    IP节点需要一个特殊的协议来交换报文以了解与IP相关的情况。ICMP正好适用于这种需求。在IPv4升级到IPv6的过程中,ICMP也经历了一定的修改。ICMPv6在RFC1885中定义。ICMP报文可以用来报告错误和信息状态,以及类似于包的Internet探询(Ping)和跟踪路由的功能。IGMP一开始就包含在ICMPv6规范中,并且在1997年11月发表的RFC2236中得到更新,1998年初秋,IGMP第3版也开始了讨论。IGMP可以用来支持组播传输,它为主机提供了向本地路由器报告其属于某个组播组的方法。ICMPv6报文ICMP报文的产生来源于一些错误情况。例如,如果一个路由器由于某些原因不能处理一个IP包,它就可能会产生某种类型的ICMP报文,并直接回送到包的源节点,然后源节点将采取一些办法来纠正所报告的错误状态。例如,如果路由器无法处理一个IP包的原因是由于包太长而无法将其发送到网络链路上,则路由器将产生一个ICMP错误报文来指出包太长,源节点在收到该报文后可以用它来确定一个更加合适的包长度,并通过一系列新的IP包来重新发送该数据。RFC1885中定义了以下报文类型(没有包括该文档中定义的有关组的报文):?目的地不可达。?包太长。?超时。?参数问题。?回声请求。?回声应答。下面将详细介绍这些报文。1.目的地不可达这个报文由路由器或源主机在由于除业务流拥塞之外的原因而无法转发一个包的时候产生。这种错误报文有五个代码,包括:?0:没有到达目的地的路由。这个报文在路由器没有定义IP包的目的地路由时产生,路由器将采用默认路由来发送无法利用路由器的路由表进行转发的包。?1:与目的地的通信被管理员禁止。当被禁止的某类业务流欲到达防火墙内部的一个主机时,包过滤防火墙将产生该报文。?2:不是邻居。当使用IPv6选路扩展头并严格限定路由时,将使用这个代码。当列表中的下一个目的地与当前正执行转发的节点不能共享一个网络链路时,将会产生该报文。?3:地址不可达。这个代码指出在把高层地址解析到链路层(网络)地址时遇到了一些问题,或者在目的地网络的链路层上去往其目的地时遇到了问题。?4:端口不可达。这种情况发生在高层协议(如DP)没有侦听包目的端口的业务量,且传输层协议又没有其他办法把这个问题通知源节点时。2.包太长当接收某包的路由器由于包长度大于将要转发到的链路的MTU,而无法对其进行转发时,将会产生包太长报文。该ICMPv6错误报文中有一个字段指出导致该问题的链路的MTU值。在路径MTU发现过程中这是一个有用的错误报文。3.超时当路由器收到一个跳极限为1的包时,它必须在转发该包之前减小这个数值。如果在路由器减小该数值后,跳极限字段的值变为0(或者是路由器收到一个跳限制字段为0的包),那么路由器必须丢弃该包,并向源节点发送ICMPv6超时报文。源节点在收到该报文后,可以认为最初的跳限制设置得太小(包的真实路由比源节点想象的要长),也可以认为有一个选路循环导致包无法交付。在“跟踪路由”功能中这个报文非常有用。这个功能使得一个节点可以标识一个包在从源节点到目的节点的路径上的所有路由器。它的工作方式如下:首先,一个去往目的地的包的跳极限被设置为1。它所到达的第一个路由器将跳减少极限,并回送一个超时报文,这样一来源节点就标识了路径上的第一个路由器。然后如果该包必须经过第二个路由器的话,源节点会再发送一个跳极限为2的包,该路由器将把跳极限减小到0,并产生另一个超时报文。这将持续到包最终到达其目的地为止。同时源节点也获得了从每个中间路由器发来的超时报文。4.参数问题当IPv6头或扩展头中的某些部分有问题时,路由器由于无法处理该包而会将其丢弃。路由器的实现中应该可以产生一个ICMP参数错误报文来指出问题的类型(如错误的头字段、无法识别的下一个头类型或无法识别的IPv6选项),并通过一个指针值指出在第几个字节遇到这种错误情况。5.ICMPv6回声功能ICMPv6中包含了一个与错误情况无关的功能。所有IPv6节点都需要支持两种报文:回声请求和回声应答。回声请求报文可以向任何一个正确的IPv6地址发送,并在其中包含一个回声请求标识符、一个顺序号和一些数据。尽管二者都是可选项,但回声请求标识符和顺序号可以用来区分对应不同请求的响应。回声请求的数据也是一个选项,并可用于诊断。当一个IPv6节点收到一个回声请求报文后,它必须回送一个回声应答报文。在应答中包含相同的请求标识符、顺序号和在最初的请求报文中携带的数据。ICMP回声请求/应答报文对是ping功能的基础。ping是一个重要的诊断功能,因为它提供了一种方法来决定一个特定的主机是否与其他一些主机连接在相同的网络上。IPv6-为IP增加安全性    IPv4的目的只是作为简单的网络互通协议,因而其中没有包含安全特性。如果IPv4仅作为研究工具,或者在包括研究、军事、教育和政府网络的相对严格的辖区中作为产品型网络协议而使用,缺乏安全性并不是一个严重的缺陷。但是,随着IP网络在商用和消费网络中的重要性与日俱增,攻击所导致的潜在危害将具有空前的破坏性。本文主要内容包括:?人们已经为IP定义的安全性目标。?这些目标如何满足。?这些目标和相关论题如何在IP中定义。下一节将介绍IP的安全性体系结构(又称为IPsec)本身的细节以及为完成上述目标而安装的一些工具。应注意,RFC1825以及后续文档中所定义的IPsec提供的是IP的安全性体系结构,而不是Internet的安全性体系结构。两者的区别很重要:IPsec定义了在IP层使用的安全性服务,对IPv4和IPv6都可用。如果在适当的IPv4选项格式中实现AH和ESP头,IPv4也可以使用这种安全性功能,只是在IPv6中更容易实现。安全性目标对于安全性,可以定义如下三个公认的目标:?身份验证:能够可靠地确定接收到的数据与发送的数据一致,并且确保发送该数据的实体与其所宣称的身份一致。?完整性:能够可靠地确定数据在从源到目的地传送的过程中没有被修改。?机密性:确保数据只能为预期的接收者使用或读出,而不能为其他任何实体使用或读出。完整性和身份验证经常密切相关,而机密性有时使用公共密钥加密来实现,这样也有助于对源端进行身份验证。AH和ESP头有助于在IP上实现上述目标。很简单,AH为源节点提供了在包上进行数字签名的机制。AH之后的数据都是纯文本格式,可能被攻击者截取。但是,在目的节点接收之后,可以使用AH中包含的数据来进行身份验证。另一方面,可以使用ESP头对数据内容进行加密。ESP头之后的所有数据都进行了加密,ESP头为接收者提供了足够的数据以对包的其余部分进行解密。Internet安全性(实际上任何一种安全性)的问题在于很难创建安全性,尤其是在开放的网络中,包可能经过任意数量的未知网络,任一个网络中都可能有包嗅探器在工作,而任何网络都无法察觉。在这样的开放环境中,即使使用了加密和数字签名,安全性也将受到严重的威胁。对IP业务流的攻击也包括诸如侦听之类,致使从一个实体发往另一个实体的数据被未经授权的第三个实体所窃取。此外,IP安全性还应该解决下列安全性威胁:?否认服务攻击:即实体使用网络传送数据,致使某个授权用户无法访问网络资源。例如,攻击者可能使某主机淹没于大量请求中,从而致使系统崩溃;或者重复传送很长的email报文,企图以恶意业务流塞满用户或站点带宽。?愚弄攻击:即实体传送虚报来源的包。例如,有一种愚弄攻击是由攻击者发送e-mail报文,报头的“From:”指明该报文的发信人是美国总统。那些在在包头携带错误源地址的攻击则更加阴险。密钥处理问题则更加复杂。为使身份验证和加密更可靠,IP安全性体系结构要求使用密钥。如何安全地管理和分配密钥,同时又能正确地将密钥与实体结合以避免中间者的攻击,这是Internet业界所面临的最棘手的问题之一。这种中间者的攻击是指,攻击者(假设为C)将自己置于两个通信实体(假设为A和B)之间,拦截A和B之间传送的所有数据,冒充A把数据重新发送给B,也冒充B把数据重新发送给A。如果C能够以类似B的公共密钥进行身份验证,从而让A确认它就是B,同样也让B误以为它就是A,那么A和B就会误认为他们之间的传送是安全的。IPsec本身不能使Internet更加安全。本章只提出与Internet安全性相关的几个最迫切的问题。对Internet安全性的细节感兴趣的读者,请参考本书作者的另一本书《PersonalEncryptionClearlyExplained》(APProfessional,1998),书中讨论了加密、数字签名和Internet安全性问题。RFC1825及建议的更新RFC年8月发布,共有22页;其第5版修改草案完成于1998年5月,已经达到66页。安全性的正确实现要求认真考虑细节问题,这是对原RFC进行扩充的主要原因。更新后的文档在最终发布时,在关于如何实现所有的IP协议(包括ICMP和组播)方面将提供更多的细节,同时将更详细讨论密钥管理相关问题和安全性关联问题。IPsecIPsec的目标是提供既可用于IPv4也可用于IPv6的安全性机制,该服务由IP层提供。一个系统可以使用IPsec来要求与其他系统的交互以安全的方式进行—通过使用特定的安全性算法和协议。IPsec提供了必要的工具,用于一个系统与其他系统之间对彼此可接受的安全性进行协商。这意味着,一个系统可能有多个可接受的加密算法,这些算法允许该系统使用它所倾向的算法和其他系统协商,但如果其他系统不支持它的第一选择,则它也可以接受某些替代算法。IPsec中可能考虑如下安全性服务:?访问控制。如果没有正确的密码就不能访问一个服务或系统。可以调用安全性协议来控制密钥的安全交换,用户身份验证可以用于访问控制。?无连接的完整性。使用IPsec,有可能在不参照其他包的情况下,对任一单独的IP包进行完整性校验。此时每个包都是独立的,可以通过自身来确认。此功能可以通过使用安全散列技术来完成,它与使用检查数字类似,但可靠性更高,并且更不容易被未授权实体所篡改。?数据源身份验证。IPsec提供的又一项安全性服务是对IP包内包含的数据的来源进行标识。此功能通过使用数字签名算法来完成。?对包重放攻击的防御。作为无连接协议,IP很容易受到重放攻击的威胁。重放攻击是指攻击者发送一个目的主机已接收过的包,通过占用接收系统的资源,这种攻击使系统的可用性受到损害。为对付这种花招,IPsec提供了包计数器机制。?加密。数据机密性是指只允许身份验证正确者访问数据,对其他任何人一律不准。它是通过使用加密来提供的。?有限的业务流机密性。有时候只使用加密数据不足以保护系统。只要知道一次加密交换的末端点、交互的频度或有关数据传送的其他信息,坚决的攻击者就有足够的信息来使系统混乱或毁灭系统。通过使用IP隧道方法,尤其是与安全性网关共同使用,IPsec提供了有限的业务流机密性。通过正确使用ESP头和AH,上述所有功能都有可能得以实现。IPv6-IPV6的选路问题    目前好像几乎人人都知道IPv4网络地址即将耗尽。另一个问题却不是如此显而易见,即非默认路由器,或者是列出Internet上所有路由的路由器,即在Internet骨干网上或骨干网附近、因而必须知道全部路由的路由器,它们如何处理日益庞大的路由表。路由表中必须列出到达所有独立网络的路由,因此CIDR广受欢迎。使用CIDR,一个上述骨干路由器可以用一个涵盖8位地址空间的CIDR路由代替256个C类网络的256条路由。所有的256条路由可以经由一个Internet访问供应商来选路,因此CIDR可以显著减少映射到Internet所需要的路由数目。IPv6没有IPv4中的地址类别的概念。不论A、B、C类地址的存在对于IPv4如何有用,长期以来这种分类都是对地址的浪费,对于网络地址体系结构,子网或超网能力好像用处更多。而且出于选路目的,IPv6地址可以积累起来,理论上有很大潜力可以显著地减少非默认选路表的大小。当然,这种高度集聚的体系结构也有缺点,即一旦一个机构改变其供应商,就必须对网络重新编号。同样,多宿主网络可能引起更多的问题。实际上,基于供应商的CIDR模式集聚方法的反对者把这个问题称为“专制”,他们已经提出了替代方案。很显然,这些替代方案在IPv6中没有采纳,但是这些方案有助于使自动配置和供应商移动性成为IPv6过渡策略的关键部分。看起来IPv6选路协议和IPv4选路协议好像没有显著的不同,这一点也许会很令人吃惊。毕竟IPv6寻址体系结构自身将显著改进选路效率,并减少非默认选路表的大小,因此选路算法和协议只需要进行极少的修改便可取得更好的执行效果。为支持IPv6,对这些协议所做的修改大部分都与如何处理较长的IPv6地址有关。IP选路协议IP选路协议实质上可以分为链路状态协议和矢量距离(或路径矢量)协议两类,也可以按照内部选路和外部选路来分类。这两种分类方法看起来很简单,但足以满足本书的要求。1.内部选路和外部选路内部选路和外部选路的概念对Internet的结构非常重要。这两个概念与Internet以及相连的互联网络之间的交互方式密切相关。例如,某个公司的内联网通过一条链路与Internet相连,该内联网与全球Internet之间的全部业务流都经由该链路来传送。如果这条链路中断,内联网就不再有外部连接能力。这种类型的网络称为自治系统(AS),因为网络内部的一切都由单一的管理机构来管辖。这种系统的自治性体现在如果想要访问系统内的任何节点,全球Internet路由器只需要了解一条路由。同样,AS内的任何节点可以使用默认路由来向AS之外的任何节点发送包。默认路由用于标识链接该AS与全球Internet的路由器。内部选路参与AS内部包的选路。换言之,在相对小型的互联网络内的选路,所谓小型是相对于全球Internet而言。AS内部的路由器保持的

我要回帖

更多关于 如果EEID和密码忘了怎么办 的文章

 

随机推荐