1、ICS 33.040.40 M33 YD 中华人民共和国通信行业标准YD/T 1344-2005 IPv6地址结构协议IPv6无状态地址自动配置I Pv6 address structure protocol -一IPv6 stateless address autoconfiguration 2005-05-11发布2005-11-01实施中华人民共和国信息产业部发布YD厅1344-2005目次前言E1 范围.2 规范性引用文件.3 定义.4 概述.45 配置参数.55.1 节点配置变量55.2 自动配置相关变量.56 地址生成.币6.1 链路本地地址的产生.币6.2 全局和站点本地地址的产
2、生.67 重复地址检测.77.1 消息有效性87.2 发送邻居多方请求消息87.3 接收邻居多方请求消息.97.4 接收邻居宣告消息.97.5 当重复地址检测失效时.98 元状态地址配置过程.98.1链路本地地址配置过程.98.2 站点本地地址和全局地址配置过程.109 站点重编号.10 配置一致性. 11 安全.12 IPv6元状态地址自动配置的保密性扩展.12.1 假定1212.2 随机接口标识符的产生1212.3 生成临时地址.1312.4 临时地址的失效1512.5 随机接口标识符的再生15YD厅1344-2005前言本标准修改采用IETF的RFC2462和盯C3041,主要差异如下:
3、1.按照GB1 (2000)系列的要求对标准格式进行了修改;2.为了标准的完整性,参考并修改了盯C2462的内容,作为本标准的第4、5,6、7、8、9、10、11章,将RFC31的内容写人本标准的第12章。本标准是IPv6协议系列标准之一,该系列标准预计的结构及名称如下:1. IPv6基本协议一-IPv6协议2. IPv6技术要求一一支持计算机移动部分3. IPv6技术要求一一地址、过搜及服务质量4. IPv6地址结构一-IPv6无状态地址自动配置5. IPv6邻居发现协议一一基于IPv6的邻居发现协议6. IPv6协议一致性测试方法本标准由中国通信标准化协会提出并归口。本标准起草单位:信息产
4、业部电信研究院本标准主要起草人:吴英桦薛宁王浩杜禾青II YD厅1344-2005IPv6地址结构协议一一IPv6无状态地址自动配置1 范围本标准规定了IPv6元状态地址自动配置的技术要求,包括配置条件的基本要求、配置参数、地址生成、重复地址检测、配置一致性和安全等。本标准适用于支持IPv6的设备。2 规范性引用文件下列文件中的条款通过本标准的引用而成为本标准的条款。凡是注日期的引用文件,其随后所有的修改单(不包括勘误的内容)或修订版均不适用于本标准,然而,鼓励根据本标准达成协议的各方研究是否可使用这些文件的最新版本。凡是不注日期的引用文件,其最新版本适用于本标准。IETF RFC 2462
5、( 1998 ) IETF盯C3041 (2001) IPv6无状态地址自动配置IPv6元状态地址自动配置的保密性扩展3定义下列术语和定义用于本标准。3.1 IP internet protocol 因特网协议版本6。术语IPv4仅用于有必要避免混淆的地方。3.2 节点node 执行IPv6的设备。3.3 路由器router 负责转发(目标地址不是它本身)IP包的节点。3.4 主机host 除路由器以外的节点。3.5 上层upper layer 紧靠F层上面的协议层,该协议层可能是传输层协议,如TCP、UDP,或者如ICMP等控制协议、OSPF等路由协议以及在E层上建立隧道的互联网(intem
6、et)或低层协议,比如IPX、AppleTalk,或者也可以是E协议本身。YD厅1344-20053.6 链路link通信设备或媒介,节点可以通过这种通信设备或媒介进行链路层(IP层的下一层)通信。链路的例子有以太网(简单的或桥接的)、pp时连路、X.25、帧中继或ATM网,另外还有internet层(或上层)隧道,如基于IPv4或IPv6的隧道。3.7 接口interface节点到链路的连接点。3.8 数据包packet E头和有效载荷构成的数据块。3.9 地址address 为个接口或一组接口分配的E层标示符。3.10 单蟠地址unicast address 为单个接口分配的标示符,目标地
7、址是单播地址的包将被发送到由该地址标识的接口。3.11 组蟠地址multicast address 分配给一组接口的地址,该组接口可以属于不同的节点,目标地址是组播地址的包将发送到所有由该地址标识的接口。3.12 泛播地址anycast address 分配给一组接口的地址,该组接口可以属于不同的节点,目标地址是泛播地址的包将发送到所有由该地址标识的接口中的一个,此接口是按路由协议中的距离标准确定的路由距离最短的一个。参见地址结构。3.13 请求节点组蟠地址Solicited-nodemulticast address 邻居多方请求消息发送到的组播地址。计算该地址的算法参见邻居发现。3.14
8、链路层地址Iink-Iayeraddress 为一个接口分配的链路层标识符,如以太网链路的IEEE802地址和ISDN链路的E.l64地址。3.15 链路本地地址link-Iocal address 局限于链路范围的用于到达同一链路上的邻居节点的地址,所有的接口都有一个链路本地单播地址。3.16 站点本地地址site-Iocal address 2 3.17 3.18 局限于本地站点范围内的地址。全局地址global address 范围无限制的地址。通信communication YD厅1344-2005节点之间进行的任何包交换,要求在这种包交换过程中,每个节点进行交换时使用的地址保持不变。
9、例如,TCP连接或UDP请求与响应。3.19 临时地址tentativeaddress 将一个地址分配到一个接口之前要确认其在链路上的惟一性,正在进行确认的这种地址称为临时地址。临时地址不是通常意义上认为的分配到一个接口上的地址。对临时地址要进行重复地址检测操作,接口会接收与此有关的邻居发现包,但对收到的其他寻址到临时地址的包予以丢弃。3.20 推荐地址preferred address 分配给接口的一个地址,高层协议对它的使用不受限制。推荐地址可以被用做出(或人)接口的源(或目的)地址。3.21 不推荐地址deprecated address 分配给接口的一个地址,对它的使用不鼓励,但也不禁
10、止。在新的通信过程中,不推荐地址应不再用做源地址,但送往不推荐地址或从不推荐地址送出的包仍按预期方式传送。在转向推荐地址给特定高层行为(例如,一个现存的TCP连接)带来困难的情况下,通信过程中会继续用不推荐地址做源地址。3.22 有效地址validaddress 推荐或不推荐地址。有效地址可以作为一个包的源地址或目的地址出现,intemet路由系统会将发往有效地址的包传送到它们希望送达的接收者。3.23 无效地址invalid address 未分配给任何接口的地址或有效地址超过有效生存期之后成为无效地址。元效地址不应作为包的目的或源地址出现。在前一种情况下,intemet路由系统将不能传送该
11、包,在后一种情况下,包的接收者将不能发送响应。3.24 推荐生存期preferred lifetime 有效地址作为推荐地址的时长(即直到成为不推荐地址之前的时间)。超过推荐生存期之后,地址变成不推荐地址。3.25 有效生存期valid lifetime 3 YD厅1344-2005地址保持有效状态的时长(即直到元效之前的时间)。有效生存期必须大于等于推荐生存期。超过有效生存期之后,地址变为无效。3.26 接口标识符interface identifier 对应于一个接口,(至少)在每条链路上惟一的基于链路的标识符。无状态地址自动配置用一个接口标识符和一个前缀合成一个地址。从地址自动配置的观点
12、来看,接口标识符是一个已知长度的比特串。接口标识符的确切长度以及产生的方式在单独的链路类型特定文件中定义,文件中会涉及在某种链路类型(如以太网)上传送F的有关问题。在很多情况下,标识符与接口的链路层地址相同。4 概述本标准规定的自动配置过程适用于主机,不适用于路由器。由于主机的自动配置要使用路由器发布的信息,因此路由器的配置要通过其他方式完成。但有种情况例外,即路由器在产生链路本地地址时会使用本标准中规定的机制。自动配置分为有状态地址自动配置和无状态地址自动配置。当站点不特别关注主机使用的确切地址,只要求该地址是惟一的并且能通过造当方式被寻路时,使用元状态地址自动配置;当站点对确切的地址分配要
13、求进行较严格的控制时,使用有状态地址自动配置。在路由器宣告里元状态地址自动配置和有状态地址自动配置的处理是彼此独立的,并且主机可以同时使用元状态地址自动配置和有状态地址自动配置。站点管理者通过对路由器宣告消息中的适当字段进行设置,来规定使用哪种类型的自动配置。无状态地址自动配置和有状态地址自动配置互为补充,例如,主机可以使用无状态自动配置来配置自己的地址,但使用有状态自动配置来获取其他信息。在有状态自动配置模型中,主机从服务器获得接口地址和/或配置信息及参数。服务器维护一个数据库,对哪个地址已被分配给了哪个主机进行跟踪。有状态地址自动配置使主机能够从服务器获得地址、或其他配置信息,或同时获得这
14、两种信息。元状态自动配置不要求对主机进行手动配置,对路由器要求进行最少(若有)的配置,并且不要求有额外的服务器。元状态机制通过将本地可获取的信息与路由器发布的信息相结合,使主机能够产生自己的地址。对于与一条链路相关的子网,路由器发布标识该子网的前缀,主机则产生在该子网上惟一标识一个接口的接口标识符,通过将前缀和接口标识符结合在一起产生地址。在没有路由器的情况下,主机只能产生链路本地地址,但连接到同一链路的节点之间完全能够利用链路本地地址进行通信。本标准只规定元状态地址配置方面的要求,IPv6有状态地址配置方面的规定有待进一步研究。有关信息参见DHCPv6。4 无状态地址自动配置机制应满足下列要
15、求:一在将单个设备连到网络之前不必进行手动配置,而是通过自动配置机制使主机能够为其每个接口获得或产生惟-地址。每个接口能够提供对应于该接口的惟一标识符(即一个接口标识符)。在最简单的情况下,接口标识符由接口的链路层地址构成。接口标识符可与前缀结合起来构成一个地址。一对于由连接到单一链路的一组设备构成的小型站点,不应把提供有状态服务器或路由器作为进行通信的前提条件。即插即用通信是通过使用链路本地地址实现的。链路本地地址具有一个众所周知的前缀,该前缀标识了一组节点连接到(单一)共享链路。主机将自己的接口标识符附加到链YD厅1344-2005路本地前缀后边,构成一个链路本地地址。一对于由多个网络和路
16、由器构成的大型站点,不应要求提供有状态地址配置服务器。为了产生站点本地地址或全局地址,主机必须确定其连接的子网前缀。路由器周期性地产生路由器宣告消息,其中包含的选项列出了一条链路上一组激活的前缀。一地址配置应便于站点设备的顺利重编号。例如,当一个站点转移到一个新的网络业务提供者时,其所有的节点可能需要重编号。重编号是通过将地址租用给接口以及将多个地址分配给同一个接口实现的。当前缀的租用生存期过期时,站点废止该前缀。将多个地址分配给一个接口时存在一个过渡期,在过渡期内新地址和即将过期作废的地址同时工作。一系统管理者要具备规定使用元状态自动配置、有状态自动配置或两者都用的能力。路由器宣告消息中包含
17、的标记规定了主机应使用哪种机制。5 配置参数5.1 节点配置变量对于每个广播接口,节点必须允许系统管理配置下列自动配置相关变量:一DupAddrDetectTransmits在一个临时地址上完成重复地址检测工作时发送连续的邻居多方请求消息的数目。值为0表示不在临时地址上完成重复地址检测工作;值为1表示只传送一次,没有后续的重传。请求消息的数目默认值为1,但在涉及特定链路类型上传送E的文件中,这个值可以被一个链路类型特定值覆盖。- RetransTimer 自动配置还假定存在变量RetransTimer。为进行自动配置,RetransTimer规定了进行重复地址检测时,完成连续的邻居多方请求消息
18、传送之间的延迟(如果DupAddrDetectTransmits大于1 ),以及节点在结束重复地址检测过程之前,发送最后一个邻居多方请求消息之后等待的时间。5.2自动配置相关变量主机维护若干个与自动配置有关的数据结构和标记。以下列出几个概念上的变量,并说明如何利用这些变量完成自动配置。这些特定变量只用于示范,并不要求所有的实现方式都具有这些变量,只要求实现方式的外在行为符合本标准的规定。除链路本地地址的构成以及重复地址检测机制的使用之外,路由器如何(自动)配置其接口不在本标准的涉及范围内。主机针对每个接口维护下列变量:一ManagedFlag从最近接收的路由器宣告消息的M标记字段(即被管理地址
19、配置标记)拷贝。该标记指明是否使用有状态自动配置机制来配置地址,初始为F且.5E状态。一OtherConfigFlag从最近接收的路由器宣告消息的0标记宇段(即其他有状态配置标记)拷贝。该标记指明除地址之外的其他信息是否要使用有状态地址自动配置机制获得,初始为FALSE状态。此外,当ManagedFlag值为TRUE时,OtherConfigFlag值也隐含为咽四。一台主机如果使用有状态地址自动配置只请求得到地址,而不接收其他配置信息,则不是一个有效的YD厅1344-2005配置。主机还维护一个地址及其相应生存期的表。地址表中包含自动配置的地址和手工配置的地址。6 地址生成6.1 链路本地地址
20、的产生每当接口启动时节点就形成一个链路本地地址。一个接口可以在下列任何一个事件之后启动:一接口在系统启动时初始化;一接口在暂时的接口故障或被系统管理暂时禁用之后重新启动;一接口第一次被连在链路上;一接口被系统管理通过管理手段禁用之后启动。链路本地地址是将众所周知的(适当长度的)链路本地前缀FE80:0加在接口标识符前边形成的。若接口标识符的长度为N比特,则接口标识符取代链路本地前缀最右边的N个0比特。若接口标识符长度超过118比特,则自动配置失败,需要进行手工配置。注意,接口标识符一般为64比特,并且基于EUI-64标识符。链路本地地址具有元限首选井有效的生存期,永远不会过期失效。6.2 全局
21、和站点本地地址的产生全局和站点本地地址是通过将接口标识符附加到一个适当长度的前缀之后构成的。前缀是从路由器宣告中包含的前缀信息选项中得到的。全局和站点本地地址的产生以及本节描述的其他参数的配置应可在本地完成。然而,下文描述的处理必须是缺省启用的。6.2.1路由器宣告处理路由器宣告包含了两个标识,即M比特和0比特。M比特为管理地址配置标记,指明主机是否使用无状态自动配置以外的管理(有状态)协议来获得地址;0比特为其他有状态配置标记,标识指明主机是否应该使用被管理的(有状态)协议来获得除地址外的其他信息。主机接收到一个合法的路由器宣告后,将宣告信息的M比特值拷贝到ManagedFIag中,如果Ma
22、nagedFIag的值由FALSE变为回归,而且该主机尚未运行有状态地址自动配置协议,则应该调用有状态地址自动配置协议,请求得到地址信息和其他信息;女口果ManagedFIag的值由TRUE变为F且施,主机应继续运行有状态地址自动配置,也就是说,ManagedFlag值的改变对主机的运行没有任何影响;如果该标识位的值没有改变,则主机不做任何动作。尤其需要说明的是,如果一台主机在先前宣告中已经启用了有状态协议,则不需要重新调用有状态地址配置协议。路由宣告的0标志位以类似的方式处理。主叫将0标志位的值拷贝到OtherConfigFlag中,如果OtherConfigFlag的值由FALSE变为TR
23、阻,主机就应该调用有状态自动配置协议来请求得到信息(如果ManagedFlag的值为FALSE,则不包括地址信息)j如果OtherConfigFlag的值由TRUE变为FALSE,则主机继续运行有状态地址自动配置协议,也就是说,0标志位对OtherConfigFlag值的改变没有影响;如果该标志位的值没有变化,则不采取任何动作。尤其需要说明的是,如果一台主机在先前宣告中已经启用了有状态协议,则不需要重新调用有状态地址配置。路由器宣告也包含零个或多个前缀信息选项,这些选项的内容包括元状态地址自动配置生成站点本地地址和全局地址所使用的信息。前缀信息选项域中的自治地址配置标记指明该前缀信息是否可用于
24、地址的自动配置。如果可以,选项域中还要包括一个子网前缀,同时指明用该前缀生成的地址的生存期。对于路由宣告中的每个前缀信息选项进行如下处理。a)如果没有设置自治地址配置标记,则忽略前缀信息选项。b)如果前缀是链路本地前缀,则忽略前缀信息选项。YD厅1344-2005c)如果推荐生存期大于有效生存期,则忽略前缀信息选项,在这种情况下,节点可能会记录一个系统管理差错。d)如果宣告的前缀与地址列表中的前缀不符,并且其有效生存期不是0,则在列表中由这个宣告的前缀和链路接口标识符按下列格式创建一个地址:(128-的比特一一|链路前缀N比特接口标识符. 如果前缀长度与接口标识符长度的和不等于128比特,则必
25、须忽略前缀信息、选项。此时应记录一个系统管理差错。系统管理器应负责确保路由宣告中包含的前缀长度与该链路类型的接口标识符的长度匹配。注意,接口标识符的典型长度是64比特。如果成功的创建了一个地址,主机将其加人分配给该接口的地址列表中,并在前缀信息选项中初始化其指定的有效生存期的值。e)如果宣告的前缀与该接口相关的地址列表中的自动配置地址(即通过有状态地址自动配置或元状态地址自动配置获得的地址)前缀相匹配,则根据收到的宣告中的有效生存期和前面自动配置的地址的生存期(以下称作存储的生存期)采取动作:1 )如果收到的生存期2h,或者超过存储的生存期,则更新相应地址存储的生存期。2)如果存储的生存期运组
26、,并且收到的生存期小于或等于存储的生存期,除非获得该前缀信息选项的路由宣告是已被授权的,否则忽略该前缀。如果路由宣告已授权,则存储的生存期应设置成接收到的选项中的生存期。3)如果不是上述两种情况,则重新设置相关地址中存储的生存期为2h。上述规则防止了带有非常小有效生存期前缀的伪造宣告的业务攻击。如果没有上述规则,仅一个包含具有很短生存期的前缀信息选项的未授权宣告可能会导致所有节点的地址过早失效。上述规则确保合法的宣告(它们是定期发送的)在真正生效前将生存期短的宣告删掉。6.2.2 地址生存期过期当指定的生存期过期后,一个指定的地址将失效。在当前的通信中,一个失效的地址应该继续当做一个源地址,但
27、如果有一个可用的替换(没有失效的)地址并且其范围足够时,失效地址不能用于新的通信。既然失效地址仍然是接口的一个合法地址,IP层和更高层(如TCP和UDP)必须继续接受目标是该失效地址的数据包。在实际操作中可能会避免新的通信使用已失效的地址,但是系统管理必须有能力废止该功能,并在系统中默认该功能已被废止。当有效的生存期过期后,一个地址和它相关的接口就变为无效。失效的地址不能当做通信中的源地址,也不能当做接收接口的目标地址。7 重复地址检测将单播地址配置到一个接口之前,如果该接口的DupAddrDetectTransmits的值大于0,则要进行重复地址检测。重复地址检测必须在给接口配置地址之前执行
28、是为了防止多个节点同时使用相同的地址)。如果一个节点在进行重复地址检测的同时开始使用某一地址,并且别的节点已经在使用该地址,则执行YD.厅1344-2005重复地址检测的节点就会错误地处理实际上是对另一个节点的数据流,这就会导致一种可能的负面效果,即要重新建立传输控制协议的连接。元论通过状态(有状态的、元状态的)或手工配置获得的单播地址,都必须进行重复地址检测,但以下情况例外:-不能对泛播地址执行重复地址检测。一每一个单播地址都应该进行惟一性检测。但是当使用无状态地址自动配置时,假定指定的子网前缀都是正确的,地址的惟一性仅仅决定于接口标识符(也就是说,如果所有接口地址都由一个标识符产生,那么其
29、中所有的地址都不会有重复)。因此,对产生于同一个接口标识符的一组地址来说,检查产生于该标识符的链路本地在该链路上的惟一性就足够了。而且在这种情况下,链路本地地址必须进行惟一性检测,如果没有检测到重复地址,则对于从同一个接口标识符产生的附加地址,可以不进行重复地址检测。重复地址检测过程使用如下所述的邻居多方请求和宣告消息。如果在过程中发现重复地址,就不能将这个地址配置给接口。如果该地址是由接口标识符得出的,则需要对该接口设置一个新的标识符,或者对该接口的全部P地址进行人工配置。注意检测重复的方法不是完全可靠的,并且很可能重复地址仍然会存在(例如,当执行重复地址检测的时链路是分开的)。重复地址检测
30、成功完成以前,即检测过程中使用的地址被称作是临时的。从传统意义上讲,临时地址是不考虑分派给接口的。也就是说,该接口必须接受在目标地址域里包含该临时地址的邻居多方请求和宣告消息,但对此类包的处理不同于对那些目标地址与配置到接口上的地址相匹配的数据包的处理。其他指向该临时地址的数据包应当被丢弃。下面的小节描述节点为确定地址惟一性所进行的特定测试。如果在DupAddrDetectTransmits次邻居多方请求消息之后,在RetransTimer毫秒内没有检测出存在重复的地址,那么该地址就可以被认为是惟一的。一旦某一地址被判定是惟一的,就可以把它配置到接口。7.1 消息有效性节点必须悄悄丢弃任何未通
31、过在邻居发现协议里规定的有效性检查的邻居多方请求或宣告消息。通过有效性检查的请求被称作有效多方请求或有效宣告。7.2 发送邻居多方请求消息发送邻居多方请求之前,接口必须具有全部节点的组播地址以及临时地址的请求节点组播地址。前者确保该节点收到来自其他已经在使用这个地址的节点的邻居宣告;后者确保企图同时使用同样地址的两个节点探测到彼此的存在。为了检查一个地址,节点发送DupAddrDetectTransmits次邻居多方请求,每次间隔RetransTimer毫秒。该请求的目标地址设置为被检查的地址,该E的源地址设置为未指定的地址,而该E的目的地址设置为目标地址的多方请求节点组播地址。如果该邻居多方
32、请求是接口在(重新)初始化以后接口发出的第一个消息,则该节点应该延迟发送该消息,延迟的时间是随机的,范围为0和Max_Rtr_Solicitation_Delay之间的任意值。在该链路上许多节点同时启动时这种服务能缓解拥塞,比如在电源故障以后的情况,并且可以有助于避免同时有多个节点试图请求同样地址时的竞争情况。为了改善重复地址检测算法的健壮性,在延迟传输初始邻居多方请求期间,对发送给所有节点的组播地址或临时地址的请求节点组播地址的数据报,接口必须予以接收和处理。8 YD厅1344-20057.3 接收邻居多方请求消息当接口收到有效邻居多方请求消息时,节点的行为取决于该目的地址是否是临时的。如果
33、目的地址不是临时的(配置给该接收接口的),该请求按邻居发现协议中规定的方式处理;如果该目的地址是临时的,并且源地址是单播地址,则该请求的发送者是在该目的地址上执行地址解析,此时应悄悄地,忽略这个请求。否则,进行如下所述的处理。在所有情况下,节点必须不应答对临时地址的邻居多方请求。如果邻居多方请求的源地址是未指定的地址,那么该请求来自于执行重复地址检测的节点;如果该请求来自于另一节点,该临时地址就是重复的并且不得使用(对其中一个节点);如果该请求来自于该节点本身(因为节点回送组播包),则该请求并不表明存在一重复地址。实现者注意:许多接口为上层提供了对该多点传送数据包的回送功能,可以有选择地将这种
34、功能设置为激活或去激活。这类设备的实现细节可能会妨碍重复地址检测正确地工作。下面的测试用于确认临时地址不惟一的条件:如果在对一临时地址发送邻居多方请求之前收到了一条邻居多方请求消息,那么该临时地址是重复的。这种情况发生在两个节点同时进行重复地址检测,但在不同的时期传送初始请求消息的情况(例如,通过在传送初始请求之前选择不同的随机延迟时间)。如果实际收到邻居多方请求的次数超过按回路计算的数目(例如,该接口不回送包,但仍然收到一个或多个请求),该临时地址就是重复的。这种情况发生在两节点同时进行重复地址检测,并且在大致相同的时候发送请求消息的情形。7.4 接收邻居宣告消息当接口收到有效邻居宣告消息时
35、,节点的行为取决于该目标地址是否是临时的或者与分派给该接口的单点传送或泛播地址相匹配。如果该目标地址是被分派给该接收接口的,该请求就如邻居发现协议里的要求来处理;如果该目标地址是临时的,该临时地址就不是惟一的。7.5 当重复地址检测失败时按上述方法判定为重复的临时地址,决不能分派给接口并且该节点应该记录系统管理错误。如果该地址是一由接口标识符形成的链路本地地址,该接口就应设置为不激活状态。8 无状态地址配置过程本章概述了当接口对自身进行自动配置时采取的典型步骤。自动配置仅仅在有多点传送能力的链路上执行,并且只在有多点传送能力的接口处于激活状态时开始(例如,在系统启动期间)。元状态自动配置过程主
36、要包括链路本地地址配置过程、站点本地地址和全局地址配置过程两个主要步骤。为加速自动配置的过程,主机可以在等待一个路由器宣告的同时生成它的链路本地地址(并且检验它的惟一性)。因为路由器可以延迟几秒回答一个路由器多方请求,如果这两个步骤分别完成,那么完成自动配置所需要的总时间可能要长得多。8.1 链路本地地址配置过程8.1.1 生成链路本地地址临时地址节点(包括主机和路由器两类)通过给接口构成一个链路本地地址来开始自动配置过程。一个链路本地地址是通过将接口标识符拼接到己知的链路本地前缀后面构成的。8.1.2 检验临时地址的惟一性在将链路本地地址配置到接口使用之前,节点必须检验这个临时的地址是否被用
37、在该链路的另9 YD厅1344-2005一个节点上。节点发送一个包含该临时地址做为目标的邻居多方请求消息。如果别的节点已经在使用这个地址,它就会返回一邻居宣告说明这个情况。如果别的节点也企图使用同样的地址,它也会给该目标发送一邻居多方请求。该邻居多方请求被(重)传送的准确次数和连续请求间延迟的精确时间值是由具体链路确定的,并且可以由系统管理者来设定。8.1.3 临时地址不惟一情况下的处理如果节点断定该临时链路本地地址不惟一的话,就会停止自动配置并且要求对接口进行手工配置。在这种情况下为了简化恢复,应该让管理员提供一个可选择的接口标识符来替换缺省的标识符,这样可以采用新的接口标识(假定是惟一的)
38、来使自动配置机制得以应用。为了简化这种情况下的恢复过程,应当给管理员提供一种手段,使他可以选择接口标识符(假定是惟一的),来替换由自动配置机制生成的缺省标识符。否则的话,链路本地地址及其他地址需要进行人工配置。8.1 .4 将确认惟一性的链蹄本地地址配置到接口一旦节点确定其临时链路本地地址是惟一的,就把这个地址配置给接口。此时,该节点就与相邻节点有了P层的连接。剩余的自动配置步骤仅由主机执行;路由器的(自动)配置不在本标准中规定。8.2 站点本地地址和全局地址配置过程自动配置的下一阶段涉及到路由器宣告信息的获取,或者判定是否有路由器存在。如果有路由器存在,路由器就要发送路由器宣告来规定主机将做
39、哪种自动配置。如果没有路由器存在,应当激活有状态自动配置。8.2.1 请求得到路由器重告路由器宣告是周期性地发送给所有节点的组播地址,但是连续宣告之间的延迟通常要比执行自动配置的主机可以等待的时间长-些。为了快速获得一个宣告信息,主机发送一个或多个路由器多方请求到所有路由器多点传送组。8.2.2 未出现路由器宣告情况下的处理如果一条链路上没有路由器,主机必须尝试使用有状态自动配置来获得地址和其他配置信息。在这种情况下,实现上可以提供一种方法禁止调用有状态自动配置,但缺省状态下应可以调用。从自动配置的观点来看,如果发送少量几个RouterSolicitation之后,未收到路由器宣告,就认为链路
40、上没有路由器。8.2.3 路由器宣告的处理主机接收路由器宣告之后,根据宣告中的内容确定使用元状态地址配置还是有状态地址配置。在使用元状态地址配置的情况下,主机利用路由器宣告中的前缀信息与本地的接口标识符拼接,构成站点本地地址和全局地址,同时确定地址的生存期。因为路由器周期性地产生路由器宣告,主机就会不断地收到新宣告信息。主机处理在上述各个宣告里包含的信息,添加并刷新在前面宣告里接收到的信息。8.2.4检验地址的惟一性为安全起见,所有的地址必须在它们被配置到接口之前检验其惟一性。然而,在通过无状态自动配置生成地址的情况下,地址的惟一性主要是由地址中接口标识符构成的那部分来决定的。这样,如果节点已
41、经验证了链路本地地址的惟一性,则由同一接口标识符生成的其他地址(包括全局地址和站点本地地址)不必单独检验。与之相反,所有手工获得的或由有状态地址自动配置得到地址应该单独检验惟一性。为了调节那些在执行重复地址检验时产生超出其能力外开销的站点,通过管理上设定各个界面配置10 标识可以把重复地址检验的功能关闭。8.2.5 将确认惟一性的地址配置到接口确定了站点本地地址和全局地址的惟一性之后,主机可将该地址配置到接口。9 站点重编号YD厅1344-2005对分派给主机接口的地址采用超时限制的方法,这样临时地址租用会使站点重编号变得容易。目前,在一个连接打开期间上层协议(例如,传输控制协议)不支持改变终
42、点地址。如果一个终点地址变为元效的话,那么现有的连接中断并且所有到该元效地址的通信失败。即使当应用以用户数据报协议作为传输协议时,在包交换期间地址一般仍旧必须保持相同。把有效地址划分为推荐地址和不推荐地址两类,这样可提供一种方法提示上层有一个有效地址可能很快变为元效,并且将来用这个地址的通信会失败,地址的有效生存期将要在通信结束之前终结。为了避免这种情形,高层应该使用推荐地址(假定有一个充分大的范围)来增加地址在整个通信周期内保持有效的可能性。应该由系统管理员来设置适当的前缀寿命期,以减小在进行重编号时通信失败的影响。这种不推荐周期应当持续足够久,以便在一个地址变成元效时,大多数(如果不是全部
43、)通信使用的是新地址。期望E层对上层(包括应用)提供一种方法,目的是选择最适合于给定的特定目的地和其他可能约束的源地址。一个应用可以在开始新的通信之前选定自身源地址或不指定该地址,在后一种情况下上面的网络层就要使用由E层提供的机制为该应用选择一个适当地址。详细的地址选择规则不在本标准叙述。10 配置一致性主机可能采用无状态和有状态两种协议来获取地址信息,因为这两种协议可以同时使用。其他配置参数的值(如最大传送单元(MTU)长度和跳数限定)也可能从路由广播和有状态自动配置协议中得到。如果有多个来源提供了同样的配置信息,则该信息的值应该一致。但是,没有考虑如果来自多个来源的信息不一致而导致的致命错
44、误。主机接收的是所有通过无状态和有状态协议到达的信息集合。如果从不同的来源出现了不一致性信息,则以最新收到的值为准。11 安全无状态地址自动配置允许一个主机连人一个网络配置地址,并且开始与其他节点进行通信,而且不需要在当地对主机进行注册或论证。这就允许非授权用户连人并使用一个网络,这种威胁在因特网结构中是与生俱有的。任何有物理连接到网络的节点能够生成一个提供连接的地址(采用各种特别技术)。采用重复地址检测敞开了拒绝服务攻击。任何节点能够对邻居多方请求的临时地址进行应答,从而导致其他节点以为是重复地址而拒绝。这种攻击类似于其他包括诱骗邻居发现信息的攻击,但只要要求邻居发现数据包被认证,这种攻击就
45、能被定位出来。12 IPv6无状态地址自动配置的保密性扩展本章的目的是定义以下步骤:1 )不改变由元状态地址自动配置产生地址的基本行为。11 YD厅1344-20052)在供全局范围地址使用的随机接口标识符的基础上产生其他的全局范围地址。可以用这些地址启始外向会话。这些随机或临时的地址可以在一个短时期(从几小时到几天)内使用,然后不再推荐使用。不推荐地址能继续在已经建立的连接中使用,但是建立新连接时不使用。周期性地产生新临时地址来替换过期的临时地址,周期的长度取决于地址产生的本地策略。3)从一个接口标识符序列里生产一个临时全局范围地址序列,这种看似随机的产生方式对一个外部观察者来说很难根据当前的地址来预测未来的地址(或标识符),也很难在只知道当前地址的情况下确定先前的地址(或标识符)。4)从相同的(随机的)接口标识符产生一组地址,每个地址对应一个前缀,该前缀是通过元状态自动配置产生全局地址所对应的前缀。使用相同接口标识符来产生一组临时地址可以减少主机必须参加的E组播组的数目。对于节点支持的每个单播地址,节点都要加入相应的多方请求节点组播地址,并且多方请求节点组播地址仅由相应地址的最低位决定。作出该决定要强调的是,对一个加入很多组播组的节点来说,可能需要把其接口设为混杂模式,从而有可能导致降低性能。12.1 假定下列算法假定每个接口保持关联的随机