RFC4862 IPV6无状态地址自动配置 阅读记录

RFC4862 IPV6无状态地址自动配置 阅读记录

最近接触IPV6。首次接触RFC文档。之前总是以为,rfc标准都是已经实现好的,不需要自己实现,直接用就好了。现在才知道,rfc只是说明了实现的流程。具体实现还是要自己实现的。颠覆了自己的认知。
下面就学习RFC 4862 关于ipv6无状态地址自动配置的学习记录如下。

  • 第一章 引言
    在IPV6中,主机在决定如何自动配置它的接口时采取步骤如下。
    自动配置处理包括利用无状态自动配置生成链路本地地址(linklocal地址),生成全球地址,以及启动验证链路上地址唯一性的重复地址检测(Duplicate Address Detection)DAD程序。
    IPV6无状态自动配置机制要求主机无需手工配置,路由器(如果有)仅最少配置,以及无需附加服务器。无状态机制允许主机使用本地可获得信息和路由器通告信息的组合,生成它自己的地址。路由器通告前缀,前缀标识与链路关联的子网,而主机生成“接口标识符”,接口标识符唯一标识子网上的接口。组合二者形成地址。在没有路由器情况,主机仅能生成 linklocal 地址。然而,附着在相同链路上的节点间实现通信,链路本地地址足矣。
    一般,如果不特别关注主机们使用的精确地址时,使用无状态方法,只要这些地址时唯一的并且使可适当路由的即可。另外,如果站点需要更加严密控制精确地址分配时,使用DHCPV6无状态地址自动配置和DHCPV6可以同时使用
    为确保给定链路上所有配置的地址基本上是唯一的,在地址被分配到接口前,节点在地址上运行“重复地址检测DAD”算法。DAD算法在所有地址上执行,独立于这些地址是经无状态自动配置获得,还是经DHCPV6获得。
    RFC 4862 规定的自动配置处理方法仅适用于主机,不适用于路由器。
  • 第二章 术语
    tentative address
    临时地址。一个地址,在被分配到接口前,它在链路上的唯一性正在被验证。一般意义上,不认为临时地址分配给接口。接口抛弃收到的寻址到临时地址的分组,但是接受与临时地址的DAD相关的ND分组。
    preferred address
    优先地址。分配到接口的可由上层协议不受限制使用的地址。优先地址可用作发送到(或来自)该接口的分组的源地址(或目的地址)。
    deprecated address
    过时地址。分配到接口的地址,它的使用不受鼓励,但是不被禁止。在新的通信中应当不再用过时地址作为源地址,但是发送到或者来自过时地址的分组被正常交付。在这样的情况过时地址可以继续作为源地址在通信中使用,那里转变到优先地址会给特定上层活动(例如,现存TCP连接)带来困难。
    valid address
    合法地址。优先地址或过时地址。合法地址可作为分组的源地址或目的地址,并且可以期待互联网路由系统会将发送到合法地址的分组交付到它们的预期接收者。
    invalid address
    不合法地址。没有分配给任何接口的地址。合法地址在它的合法生存期到期后将变成不合法地址。不合法地址不应当作为分组的目的地址或源地址。对于前者,互联网路由系统将不能传递该分组;对于后者,分组的接收者将不能响应该分组。
    preferred lifetime
    优先生存期。合法地址处于优先状态的时间长度(即,到过期前的时间)。当优先生存期到期,地址变成过时地址。
    valid lifetime
    合法生存期。地址保持合法状态的时间长度(即,到不合法前的时间)。合法生存期必须大于等于优先生存期。合法生存期到期,地址将变成不合法。
  • 第三章 设计目标
    无状态自动配置设计,考虑到遵循下述目标:
    在连接个别结算及到网络前应当不需要对它们进行手工配置。因此,需要一种机制,以便允许主机为它的每一个接口获得或生成唯一地址。地址自动配置假设每个接口能够提供那个接口的唯一标识符。在最简单的情况,接口标识符由接口的链路层地址构成。接口标识符可与前缀组合形成地址。
  • 第四章 协议综述
    综述当接口自动配置自身时发生的典型步骤。仅在有多播能力的链路上执行自动配置,仅当有多播能力接口被开启时,例如系统启动期间,才开始自动配置。通过生成接口的linklocal地址,节点(主机和路由器)开始自动配置处理。将接口标识符挂到熟知链路本地前缀上(FE80......),形成linklocal地址。
    然而,能够分配linklocal地址到接口并开始使用前,节点必须尝试验证链路上没有另一个节点已经在使用这个“临时”地址。具体来说,节点发送用该临时地址为目标地址的NS消息。如果另一个节点已经在使用那个地址,另一个节点将返回NA说明此情况。如果另一个节点也在尝试使用相同地址,该节点也将发送用该临时地址为目标地址的NS消息。(重复)发送NS的精确次数,和连续请求间的延迟时间不同链路各不相同,可以由系统管理设置。
    如果节点判定它的的临时linklocal地址不是唯一的,自动配置停止,接口需要手工配置。为了简化这种情况下的恢复,管理者应当能够提供替代接口标识符,该替代接口标识符以这样的方法取代默认标识符,该方法是:自动配置机制接着能够被启动,使用新的(假设是唯一的)接口标识符。作为替代,需要手工配置linklocal地址和其他地址。
    一旦节点判定它的临时linklocal地址是唯一的,它分配该地址给接口。此时,节点与邻居节点有IP层(IP-level)连接。其余自动配置步骤仅由主机执行;自动配置下一阶段设计获得RA或者判定有没有路由器的存在。如果存在路由器,路由器们将发送规定主机能够进行何种自动配置的RA。注意,即使不存在路由器,仍然可以获得涉及地址配置的DHCPV6服务
    路由器定期发送RA,但是连续通告间的延迟时间通常比执行自动配置的主机希望等待的事件要长。为了快速获得通告,主机发送一个或多个RS给all-routers多播组。
    RA也包括零个或多个prefix information选项,这些选项包括生成全球地址的无状态自动配置使用的信息。应当注意,主机可以同时使用无状态地址自动配置和DHCPV6.一个prefix information选项字段,“autonomous address-configuration flag”,指出无论如何该选项都适用于无状态自动配置。如果这是真的,附加的选项字段包括子网前缀,以及生存期值,根据该前缀剩余的优先生存期和剩余的合法生存期,指出地址生成已经有多长时间。
    因为路由器定期生成RA,主机连续收到新的通告。主机按上面所述处理诶个通告中包含的信息,对前面通告收到的信息添加新内容,和更新前面通告信息。默认情况,出于安全考虑,所有地址在被分配接口前,应当接受唯一性检验。对所有手工获得的,经无状态地址自动配置获得的,或经DHCPV6获得的地址,检验应当分别执行。为了适应有些站点认为执行DAD的开销超过获益,通过在管理上设置每个接口配置标记,可以关闭DAD应用。
    为了加速自动配置处理,主机可以将生成它的linklocal地址(并检验唯一性),与等待RA同时进行。因为路由可能延迟几秒响应RS,如果两个步骤前后执行,完成自动配置需要的总时间会有一定延长。
  • 第五章 协议标准
    节点必须允许系统管理为每个有多播能力的接口配置下面这个与自动配置有关的变量:
    节点配置变量--> DupAddrDetectTransmits
    当在临时地址上执行 Duplicate Address Detection 时, 发送的连续 Neighbor Solicitation消息数目。 值为 0 表示没有在临时地址上执行 Duplicate Address Detection。值为 1 表示仅发送一次,没有后续重复发送。
    默认值: 1,但是可由介绍在特定链路类型上 IP 发送相关问题的文件([RFC-2464])中规定的链路类型特定值取代。
    自动配置也假设存在如[RFC-4861]定义的变量RetransTimer。出于自动配置考虑,RetransTimer规定在Duplicate Address Detection期间执行的连续Neighbor Solicitation发送间的延迟(如果DupAddrDetectTransmits大于1),以及发送最后一个NeighborSolicitation之后,结束Duplicate Address Detection处理之前,节点等待时间。
    与自动配置有关的结构
    主机将地址列表和这些地址对应的生存期放在一起维护。地址列表既包括自动配置的地址,也包括手工配置的地址。
    链路本地地址生成
    一旦开启接口,节点就形成链路本地地址。接口在下述任何事件之后可以变为开启状态:
    -- 系统启动时接口被初始化。
    -- 接口暂时出故障后或接口被系统管理临时关闭后接口被重新初始化。
    -- 接口第一次附着到链路。包括由于无线网络访问点的改变导致动态改变节点所附着的链路。
    -- 在被管理上关闭之后系统管理又开启接口。
    链路本地地址由 (适当长度的) 熟知链路本地前缀 (well-known link-local prefix)FE80::0[RFC-4291]和下述接口标识符的组合形成:
    --地址最左边那些“前缀长度”比特是链路本地前缀比特。
    --地址中到链路本地前缀右边的比特被设置为全 0。
    --如果接口标识符长度为 N 比特,地址最右边 N 比特被接口标识符取代。
    注意,链路本地地址无限优先生存期和合法生存期;它绝不会超时
    重复地址检测
    重复地址检测(Duplicate Address Detection)必须在所有单播地址上执行, 是在这些地址被分配到接口前执行,无论这些地址是通过无状态自动配置, DHCPv6,或手工配置获得的,但有下述例外:
    -- 如果接口的 DupAddrDetectTransmits 变量被设置为 0,不执行 Duplicate Address Detection。
    -- 必须不在任播地址上执行 Duplicate Address Detection (注意, 在语义上任播地址与单播地
    址区分不开)。
    检测重复地址的程序使用 Neighbor Solicitation 和 Neighbor Advertisement 消息,如下面所述。 如果在程序执行过程中发现重复地址,不能分配该地址给接口。如果地址是从接口标识符推演出的,需要分配新的标识符给那个地址,或者那个接口的所有 IP 地址需要手工配置。注意,检测重复的方法不完全可靠, 可能仍然存在重复地址(例如,如果在执行 Duplicate Address Detection 时链路被分割)。

原文地址:http://blog.51cto.com/qiaopeng688/2096843

时间: 2024-11-10 16:03:54

RFC4862 IPV6无状态地址自动配置 阅读记录的相关文章

基于Cisco CDP协议的家用路由器以及盒子的自动配置随想

每次买来一个设备,比如一台新的路由器,家庭盒子,就是荣耀立方,小米盒子这种,唯一觉得头大的就是它们的初始配置.        这种盒子几乎都有一个初始IP地址用于插上网线登录界面后来配置盒子的IP地址,或者说更加先进一点,其本身有一个AP,然后用你的手机连上这个热点进行手机配置,看起来简直特别的酷!但这是假象!        手机连接这个AP期间,手机不能连别的AP,甚至无法4G/3G,或者说用笔记本配置的话,网线连接笔记本和盒子的时候,这个笔记本要添加一个盒子的初始IP地址同网段的IP,然后接

SpringBoot是如何实现自动配置的?--SpringBoot源码(四)

注:该源码分析对应SpringBoot版本为2.1.0.RELEASE 1 前言 本篇接助力SpringBoot自动配置的条件注解ConditionalOnXXX分析--SpringBoot源码(三) 温故而知新,我们来简单回顾一下上篇的内容,上一篇我们分析了SpringBoot的条件注解@ConditionalOnXxx的相关源码,现挑重点总结如下: SpringBoot的所有@ConditionalOnXxx的条件类OnXxxCondition都是继承于SpringBootCondition

IPv6系列-彻底弄明白有状态与无状态配置IPv6地址

深入研究自动分配IPv6地址的Stateless(无状态)与Stateful(有状态)方式 小慢哥的原创文章,欢迎转载 目录 ? 一. Link-Local Address的生成方式 ? 二. Global Address的生成方式 ? 三. RA报文中3个关键的Flag ? 四. 流程示意图 ? 五. 测试获得IP效果 ? 六. 应用场景(选择无状态还是有状态) ? 七. 后续内容 ? 附. 参考文档 一. Link-Local Address的生成方式 生成"链路本地地址",有2种

IPv6技术系列⑥——IPv6 SLAAC与有状态自动配置

拓扑结构 1.配置无状态自动获得IP地址(SLAAC) Router0:ipv6 unicast-routing ----开启ipv6路由功能后,才可以发送RAinterface G0/0ipv6 address 2023::2/64no shutdowRouter1:interface G0/0ipv6 address autoconfig执行:show ipv6 interface FastEthernet 0/0查看接口状态 2.调整ND Router0:interface g0/0ipv

如何关闭WIN7自动配置 IPV4 地址 169.254

如何关闭WIN7自动配置 IPV4 地址 169.254 以管理员身份运行cmd.exe 输入:netsh winsock reset catalog 回车 输入:netsh int ip reset reset.log  回车 重启电脑 最好换个固定ip地址,可能跟别人冲突了,系统给你自动又分配的这个地址. 取消IPv6: 然后以管理员身份打开CMD 运行以下命令 手动关闭IPV6的隧道() netsh interface teredo set state disable netsh inte

win7设置固定IP重启后无法上网,ipconfig显示为自动配置IPV4 169.254的地址

近日安装原版Win7系统打完网卡驱动补丁后,给电脑设置了固定的IP地址后一切正常,但是电脑重启后发现上不了网了,右下角网络图标有个感叹号,打开网络和共享中心-->本地连接-->详细信息-->发现IPv4的地址与ipconfig /all得到的IP地址一致,均显示为:自动配置IPv4地址:169.254.123.188(首选) 但是查看本地连接-->属性里看到之前设置的固定IP地址是没有问题的, 所以想到了应该是电脑启用了自动配置IPv4功能,导致了固定IP无法分配给电脑, 尝试用命

网络连接详细信息出现两个自动配置ipv4地址

  问题:网络连接详细信息出现两个自动配置ipv4地址,一个是有效地址,一个是无效地址.   解决办法:先将本地连接ip设置成自动获取,然后点击开始-->运行-->输入cmd,回车,进入命令行界面,输入ipconfig  /release回车,然后输入ipconfig  /renew,然后等待ip更新,一般到这里问题已经解决,然后再设置静态ip就行了.

禁用win7自动配置ipv4地址

现象 一台新电脑,连了网线,没有dhcp,需要手动配置Ip. 配置了一个Ip后,发现ping网关不通. ipconfig 发现有2 个IP: 自动配置 IPv4 地址  . . . . . . . : 169.254.11.19(首选) 子网掩码  . . . . . . . . . . . . : 255.255.0.0 IPv4 地址 . . . . . . . . . . . . : 172.16.1.11(复制) 子网掩码  . . . . . . . . . . . . : 255.2

虚拟机下 windows 自动配置 IPv4 地址 169.254.X.X(首选)

问题: windows server上,自己手动配置的ip不生效,自动获取地址虽然ok,但是服务器必须指定ip. 诊段: ipconfig/all里查看 自动配置 IPv4 地址  169.254.X.X(首选) 自己配的那条ipv4,X.X.X.X(复制) ping 该ip 显示一般故障. 解决: 先按网上的方法,netsh winsock reset 无效 手动设置同段其他ip,ok,怀疑是冲突了.arp -a 果然有一条对应我配置的IP地址,但是这个mac地址不是网卡的,而且清掉arp解析