您的当前位置:首页正文

ICMPv6报文格式

2024-06-12 来源:个人技术集锦
端口up起来之后,PC上抓包:清楚neighbor后,pingPC,PC抓包:相邻节点搜索功能定义了五种新的 Internet 控制消息协议 (Internet Control MessageProtocol, ICMP) 消息。这些消息具有以下用途:路由器请求(RS)-当接口变为启用状态时,主机可以发送路由器请求消息。这种请求要求路由器立即生成路由器通告,而不是在下次预定时间生成。路由器通告(RA)-路由器通告其存在状态、各种链路参数和 Internet 参数。路由器会定期或在响应路由器请求消息时发出通告。路由器通告包含用于确定是否在链路中或用于配置地址的前缀以及建议的跃点限制值等。相邻节点请求(NS)节点发送相邻节点请求消息,以确定相邻节点的链路层地址,并验证相邻节点是否仍可以通过缓存的链路层地址进行访问。相邻节点请求还可用于检测重复地址。相邻节点通告(NA)节点发送相邻节点通告消息以响应相邻节点请求消息。节点还可以发送未经请求的相邻节点通告以公布链路层地址更改。重定向(redirected)-路由器使用重定向消息来通告主机:对于某个目标有一个更好的第一个跃点,或者该目标在同一个链路上。自动配置过程自动配置仅在能够进行多点传送的链路上执行。1. 启用能够进行多点传送的接口,例如,在启动某个节点上的系统时启用该接口。2. 节点在执行自动配置过程时首先为接口生成链路本地地址。(如图,生成链路本地地址是根据接口的介质访问控制 (Media Access Control, MAC) 地址构造的。3. 节点发送相邻节点请求消息,其中包含暂定为目标的链路本地地址。(如图NO.5)发送此消息的目的在于验证要使用的地址未由链路上的其他节点占用。在验证之后,可以将链路本地地址指定给接口。A. 如果建议的地址已被另一个节点使用,则该节点将返回一条相邻节点通告,声明该地址正在使用中。B. 如果另一个节点也正在尝试使用同一地址,则该节点也会针对该目标发送一条相邻节点请求。相邻节点请求传输或重新传输的数量以及连续请求之间的延迟与链路有关。如有必要,可以设置这些参数。4. 如果某个节点发现它要使用的链路本地地址不唯一,则自动配置过程会停止。此时,您必须手动配置该接口的链路本地地址。要简化恢复操作,可以提供一个备用接口 ID 来覆盖缺省标识符。这样,自动配置机制就可以使用这个可能唯一的新接口 ID 继续工作。5. 如果某个节点发现它要使用的链路本地地址唯一,该节点会将此地址指定给这个接口。此时,该节点与相邻节点具有 IP 级别的连通性。其余的自动配置步骤只能由主机执行。获取路由器通告自动配置的下一个阶段涉及到获取路由器通告或者确定是否没有路由器存在。如果存在路由器,路由器会发送路由器通告,以指定主机应当执行哪种类型的自动配置。(如NO.17)_路由器定期发送路由器通告。但是,相邻通告之间的延迟通常比执行自动配置的主机可以等待的时间要长。为了快速获取通告,主机可以向所有路由器多点传送组发送一个或多个路由前缀配置变量路由器通告还包含前缀变量,其中包含无状态地址自动配置用于生成前缀的信息。路由器通告中“无状态地址自动配置”字段是单独处理的。“地址自动配置”标志是一个包含前缀信息的选项字段,它指示该选项是否可以应用于无状态自动配置过程。如果该选项字段确实适用,则其他选项字段中包含具有生命周期值的子网前缀。这些值指示根据前缀创建的地址保持优先和有效的时间长度。(具体内容见报文结构)因为路由器会定期生成路由器通告,所以主机会不断收到新通告。启用了 IPv6 的主机可处理包含在每个通告中的信息。主机会添加到这些信息中,还会刷新在以前的通告中收到的信息。地址的唯一性(重复地址检测)出于安全方面的考虑,在将每个地址指定给接口之前,必须测试它们是否唯一。对于通过无状态自动配置过程创建的地址,情况会有所不同。地址是否唯一主要由地址中基于接口 ID创建的那一部分来确定。因此,如果经过验证,节点的链路本地地址唯一,则无需再逐一测试其他地址。这些地址必须是根据同一个接口 ID 创建的。与之相反,对于手动获取的所有地址,必须逐一测试它们是否唯一。某些站点的系统管理员认为执行重复地址检测得不偿失。对于这些站点,可通过设置每接口配置标志来禁用重复地址检测功能。为了加速自动配置过程,主机可以生成其链路本地地址,并在等待路由器通告的同时验证该地址是否唯一。路由器可能会延迟几秒来响应路由器请求。因此,如果连续执行两个步骤,则完成自动配置所必需的总时间可能会非常长。相邻节点请求和不可访问性相邻节点搜索功能使用相邻节点请求消息来确定是否可以向同一个单点传送地址指定多个节点。相邻节点不可访问性检测功能检测相邻节点或到相邻节点的转发路径中是否有故障。该检测功能要求确认发送到某个相邻节点的包能够实际到达该相邻节点,还确定节点的 IP 层是否能够正确处理这些包。相邻节点不可访问性检测功能使用来自以下两个来源的确认: 上层协议和相邻节点请求消息。如有可能,上层协议会确认某个连接正在执行转发。例如,当收到新的 TCP 确认时,上层协议会确认以前发送的数据已正确传送。如果某个节点没有收到来自上层协议的肯定确认,该节点将发送单点传送相邻节点请求消息。这些消息会请求相邻节点通告,并根据此通告确认下一个跃点的可访问性。为了减少不必要的网络通信流量,探测消息只会发送到该节点将包实际发送到的相邻节点。链路本地地址更改已知其链路本地地址发生更改的节点可以发出未经请求的多点传送相邻节点通告包。该节点可以向所有的节点发送多点传送包,从而更新所缓存的已无效的链路本地地址。发送未经请求的通告仅是为了提高性能。相邻节点不可访问性检测算法可确保所有的节点都能够可靠地搜索新地址,尽管延迟时间可能会稍长些。NS、NA的作用有地址解析、验证邻居不可达、地址重复检测三种,对于一个NS报文,这三种过程都有不同的标志,可以识别出当前报文交互属于何种过程:上图中,NO.123、124是地址解析过程,可以看到NS报文的目的地址是被请求节点组播地址,这是地址解析过程区别于验证邻居不可达和重复检测的一个标志在NO.152、153、179、180,是验证邻居可达,其目的地址是单播地址,可以为全球单播地址,也可以为本地链路地址,根据目的地址和源地址,可以识别出是验证邻居可达过程,这而地址重复检测的过程标志,则为其源地址为“::”,而目的地址为待检测的IPv6地址对应的被请求节点组播地址相邻节点搜索协议与 ARP 和相关 IPv4 协议的比较IPv6 相邻节点搜索协议的功能与下列 IPv4 协议的组合相对应: 地址解析协议 (AddressResolution Protocol, ARP)、Internet 控制消息协议 (Internet Control Message Protocol,ICMP)、路由器搜索和 ICMP 重定向。IPv4 对于相邻节点不可访问性检测没有公认的协议或机制。但是,主机要求确实为停用网关检测指定了一些可能的算法。停用网关检测所解决的问题是相邻节点不可访问性检测所能解决的问题的一部分。以下是对相邻节点搜索协议和一组相关 IPv4 协议进行的比较。路由器搜索是基础 IPv6 协议集的一部分。IPv6 主机无需针对路由协议执行 snoop 即可查找路由器。IPv4 使用 ARP、ICMP 路由器搜索和 ICMP 重定向来搜索路由器。IPv6 路由器通告传输链路本地地址。无需进行其他包交换即可解析路由器的链路本地地址。路由器通告传输链路的站点前缀。无需像在 IPv4 中那样使用单独的机制来配置网络掩码。路由器通告功能允许自动配置地址。在 IPv4 中未实现自动配置过程。相邻节点搜索允许 IPv6 路由器通告主机要在链路上使用的 MTU。因此,在缺乏完善定义的MTU 的链路上,所有的节点都使用相同的 MTU 值。同一个网络上的 IPv4 主机可能具有不同的 MTU。与 IPv4 广播地址不同的是,IPv6 地址解析多点传送分布到 40 亿 (2^32) 个多点传送地址上,这会大大减少目标以外的节点上与地址解析有关的中断。而且,非 IPv6 机器根本就不应当中断。IPv6 重定向包含新的第一个跃点的链路本地地址。在接收重定向消息时无需进行单独的地址解析。多个站点前缀可以与同一个 IPv6 网络相关联。缺省情况下,主机可以从路由器通告中获知所有的本地站点前缀。但是,可以将路由器配置为忽略来自路由器通告的部分或全部前缀。在这种情况下,主机会假定目标位于远程网络上。因此,主机会向路由器发送通信。路由器随后可以根据需要发出重定向命令。与 IPv4 不同的是,IPv6 重定向消息的接收者假定下一个新跃点位于本地网络上。在 IPv4中,主机根据网络掩码会忽略那些指定下一个跃点不在本地网络上的重定向消息。IPv6 重定向机制与 IPv4 中的 Xredirect 功能相似。重定向机制在非广播链路和共享介质链路上非常有用。在这些网络上,节点不应当检查本地链路目标的所有前缀。IPv6 相邻节点不可访问性检测改进了在路由器存在故障时的包传送能力。此功能改进了包在部分故障链路或分区链路上的传送能力,还改进了包在可更改其链路本地地址的节点上的传送能力。例如,移动节点可移出本地网络,而不会因存在过时的 ARP 高速缓存而失去任何连通性。IPv4 没有与相邻节点不可访问性检测相对应的方法。与 ARP 不同的是,相邻节点搜索功能使用相邻节点不可访问性检测机制来检测半链路故障。相邻节点搜索功能可避免在没有双向连通性的情况下向相邻节点发送通信。IPv6 主机使用链路本地地址来唯一标识路由器,从而可以维护路由器关联。对于路由器通告和重定向消息,这种路由器标识功能是必需的。如果站点使用新的全局前缀,主机需要维护路由器关联。IPv4 没有与路由器标识功能相对应的方法。因为相邻节点搜索消息在接收时的跃点限制为 255,所以,相邻节点搜索协议不会受到来自链路外节点的欺骗攻击。与之相反,IPv4 链路外节点可以发送 ICMP 重定向消息。IPv4 链路外节点还可以发送路由器通告消息。将地址解析放在 ICMP 层,使得相邻节点搜索比 ARP 更加独立于介质。因此可以使用标准的 IP 验证和安全机制。该文档可以用于了解ICMPv6报文构造、测试中编辑ICMPv6报文以及辅助理解IPv6 NDP、ICMPv6错误信息回复、Echo执行过程的实现该文档中英文部分为RFC上对报文字段的解释参考文档:RFC2461、RFC4861、RFC2463、RFC4443、TCP/IP指南(卷1)、系统管理指南:IP 服务(docs.sun.com )、H3C S3610[S5510]系列以太网交换机 操作手册-RELEASE5301(V1.04)、IPv6 NDP(hansong)

因篇幅问题不能全部显示,请点此查看更多更全内容

Top