无状态地址自动配置

IPv6同时定义了无状态和有状态地址自动配置机制。有状态地址自动配置使用DHCPv6来给主机动态分配IPv6地址,无状态地址自动配置通过NDP来实现。在无状态地址自动配置中,主机通过接收链路上的路由器发出的RA消息,结合接口的标识符而生成一个全球单播地址。

1.路由器发现

路由器发现是指主机定位本地链路上的路由器和确定其配置信息的过程,主要包含以下3方面内容:

(1)路由器发现(Router Discovery):主机发现邻居路由器及选择某一个路由器作为默认网关的过程。

(2)前缀发现(Prefix Discovery):主机发现本地链路上的一组IPv6前缀,生成前缀列表。该列表用于主机的地址自动配置和on-link判断。

(3)参数发现(Parameter Discovery):主机发现相关操作参数的过程,如MTU、报文的默认跳数限制、地址分配方式等信息。

2.重复地址检测

DAD(Duplicate Address Detection,重复地址检测)是节点确定即将使用的地址是否在链路上唯一的过程。所有的IPv6单播地址,包括自动配置或手动配置的单播地址,在节点使用之前必须要通过重复地址检测。

DAD机制通过NS和NA报文实现。节点会发送NS报文,其源地址为未指定地址,目的地址为接口配置的IPv6地址。在NS报文发送到链路上后,如果在规定时间内没有收到应答的NA报文,则认为这个单播地址在链路上是唯一的,可以分配给接口;反之,如果收到应答的NA报文,则表明这个地址已经被其他节点所使用,不能配置到接口。

3.前缀重新编址

前缀重新编址(Prefix Renumbering)允许网络从以前的前缀平稳地过渡到新的前缀,用于提供对用户透明的网络重新编址能力。路由器通过RA报文中的优先时间和有效时间参数来实现前缀重新编址。

(1)优先时间(Preferred Lifetime):无状态自动配置得到的地址保持优先选择状态的时间。

(2)有效时间(Valid Lifetime):地址保持有效状态的时间。

对于一个地址或前缀,优先时间小于或等于有效时间。当地址的优先时间到期时,该地址不能被用来建立新连接,但是在有效时间内,该地址还能用来保持以前建立的连接。在重新编址时,站点内的路由器会继续通告当前前缀,但是有效时间和优先时间将被减小到接近于0;同时,路由器开始通告新的前缀。这样,在每个链路上至少有两个前缀共存,RA消息中包括一个旧的和一个新的IPv6前缀信息。

4.无状态地址自动配置过程

NDP的无状态自动配置包含两个阶段:链路本地地址的配置和全球单播地址的配置。当一个接口启用时,主机会首先根据本地前缀FE80::/64和EUI-64接口标识符,为该接口生成一个链路本地地址,如果在后续的DAD中发生地址冲突,则必须对该接口手动配置本地链路地址,否则该接口将不可用。需要说明的是,一个链路本地地址的优先时间和有效时间是无限的,永远不超时。

对于主机上全球单播地址的配置步骤如下:

① 主机节点NodeA在配置好链路本地地址后,发送RS报文,请求路由器的前缀信息。

② 路由器收到RS报文后,发送单播RA报文,携带用于无状态地址自动配置的前缀信息,同时路由器也会周期性地发送组播RA报文。

③ NodeA收到RA报文后,根据前缀信息和配置信息生成一个临时的全球单播地址。同时启动DAD,发送NS报文验证临时地址的唯一性,此时该地址处于临时状态。

④ 链路上的其他节点收到DAD的NS报文后,如果没有用户使用该地址,则丢弃报文,否则产生应答NS的NA报文。

⑤ NodeA如果没有收到DAD的NA报文,说明地址是全局唯一的,则用该临时地址初始化接口,此时地址进入有效状态。

地址自动配置完成后,路由器可以自动进行NUD,周期性地发送NS报文,探测该地址是否可达

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章