ICMP V6(计算机网络-网络层)

IPv6使用ICMPv6进行错误报告和信息提供,其报文格式类似IPv4的ICMP。ICMPv6包含了ARP和IGMP的功能,地址解析不再使用ARP广播,而是通过邻居请求多播。IPv6主机自动配置本地链路和全球单播地址,通过重复地址检测确保唯一性。地址创建涉及路由器请求和通告报文交互。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

IPv6 使用的 ICMP


IETF 制定的与IPv6配套使用的ICMP新版本,即ICMPv6

ICMPv6报文作为IPv6分组有效载荷进行传输,对应的IPv6“下一个首部字段”的值为58

ICMPv6 的报文格式和 IPv4 使用的 ICMP 的相似,即前 4 个字节的字段名称都是一样的,第 5 个字节起的后面部分作为报文主体

ICMPv6 的报文划分为两大类

差错报告报文(Error Message)

信息提供报文(Informational Message)

ICMPv6 包含 ARP 和 IGMP 的功能


地址解析协议 ARP网际组管理协议 IGMP 协议的功能都已被合并到 ICMPv6 中

 IPv6 的地址解析


主机A需要查找B的物理地址

IPv6的地址解析与IPv4的最大不同在于使用邻居请求多播来代替ARP请求的广播

 IPv6 无状态地址自动配置


IPv6一开始就设计了地址自动配置的机制

一个IPv6主机通常会自动为每个接口配置以下 IPv6 地址:

一个本地链路单播地址(必须)

一个公开全球单播地址

一个临时全球单播地址

每个单播地址对应的请求结点多播地址

所有结点多播地址

创建本地链路单播地址


        在默认情况下,IPv6结点会为接口自动创建一个IPv6本地链路单播地址,并利用该地址与同一网络内的其他结点通信

        本地链路单播地址由前缀FE80::/64和64位的接口标识符构成。64位的接口标识符通常由48位的局域网MAC地址映射生成(EUI-64机制)

        但为了用户的隐私性,现在很多操作系统都支持随机生成接口标识符的方法,例如Windows系统,以避免攻击者通过IPv6地址获取主机的MAC地址

重复地址检测


        为了保证自动创建的本地链路单播地址在本地链路上的唯一性,要利用ICMPv6的邻居请求报文进行重复地址检测(Duplicate Address Detection,DAD)

        检测结点首先发送一个邻居请求报文,报文目标地址字段值为需要检测唯一性的IPv6地址,该报文IPv6首部中的目的地址为检测地址对应的请求结点多播地址

        若本链路上存在另一接口使用该地址,则会用邻居通告报文对该邻居请求报文进行应答,即分配的地址发生冲突。若没有应答,则通过重复地址检测。

若结点采用 EUI-64 机制生成接口标识符,则重复地址检测失败会导致接口失效(通常不会发生)

若结点采用随机方法生成接口标识符,发现地址冲突后,会尝试生成新的地址

主机自动创建的所有单播地址都需要进行重复地址检测

创建全球单播地址


主机为创建全球单播地址,会多播发送一个ICMPv6的路由器请求报文(源地址为本地链路单播地址,目的地址为所有路由器多播地址)


路由器会单播发送路由器通告报文进行应答,该通告报文中包含所在链路的网络前缀等信息


主机根据接收到的网络前缀和自己生成的接口标识符来创建全球单播地址,并将该路由器的本地链路单播地址作为自己的默认网关地址

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

会做饭的网络工程师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值