《部署IPv6网络(修订版)》一2.3 IPv6 Internet控制消息协议(ICMPv6)

本节书摘来自异步社区《部署IPv6网络(修订版)》一书中的第2章,第2.3节,作者【美】Ciprian Popoviciu , Eric Levy-Abegnoli , Patrick Grossetete,更多章节内容可以访问云栖社区“异步社区”公众号查看

2.3 IPv6 Internet控制消息协议(ICMPv6)

部署IPv6网络(修订版)
ICMPv6是IPv6体系结构不可分割的一个部分,必须被所有IPv6实现完全支持。它合并了IPv4中不同协议下支持的功能:ICMP(Internet控制消息协议版本4)、IGMP(Internet组成员协议)和ARP(地址解析协议)。ICMPv6以单播和多播方式运行在IPv6之上,因此,它是不可靠的,不能用于需要可靠性的特性。ICMPv6在RFC 2463中描述。表2-9列出了定义ICMPv6功能的RFC和用于这些功能的标识ICMPv6类型的代码。

类似于ICMPv4,ICMPv6使IPv6节点能够报告错误和执行各种控制平面功能。许多现有的ICMPv4功能已经迁移到ICMPv6,虽然有些做了简化,但许多已被添加。ICMP的这种再工程是独立于协议版本而发生的。但是,IPv4使这种方法不能现实已经有所部署,因此一种新的协议类型(下一个头部)特别为ICMPv6定义(ICMPv6的协议类型是58,而ICMPv4的是1)。在此上下文中,ICMPv6最终成为与ICMPv4不同的一种协议。有些功能与IPv4相应的功能类似(某些错误消息,如目的地不可达)。有些功能没有迁移,主要由于变得不再常用(如定义于RFC 1393的traceroute)。引入了一些新的功能(如链路层地址解析,或分组太大),导致了某些与IPv4不同的基本设计差异。

表2-9给出ICMPv6与ICMPv4之间的比较。在ICMPv6栏中,在IPv6中不作考虑的ICMPv4消息标为NC。在ICMPv4栏中,不采用的ICMPv6消息标为NA。

image
image

ICMPv6类型1到127为错误保留,从128开始的值用于控制和信息报告。

不管消息类型为何,所有的ICMPv6消息共用如图2-18所示的相同消息头部格式。

image

如果净荷数据中的高层协议是ICMPv6,那么IPv6头部中的下一个头部字段的值是58。

如果消息是对一个ICMPv6消息的回应,且是发送到节点的单播地址之一,那么SA使用相同的地址。否则,使用源地址选择算法(见本章后面的“SAS算法”小节)计算SA。

如图2-18所示,类型字段能够取在表2-9中的枚举值之一,代码值依赖于每条信息。

和ICMPv4不同,校验和涵盖了伪头部(来自于IPv6头部的一组重要字段),加上ICMPv6整个消息。包含伪头部使ICMPv6在没有第3层头部校验和的情况下,能够检查IPv6头部中重要元素(组成)的完整性(见本章前面的“IPv6分组格式”部分)。

2.3.1 ICMPv6错误消息

ICMP的功能之一是分发错误消息,这对运行一个网络会有所帮助。目前,ICMPv6使用4个错误消息:

目的地不可达;
分组太大;
超时;
参数问题。
在后续小节中将讨论这些消息的范围、用途和格式。

一、目的地不可达
有时分组在到达其目的地的路径上会被丢弃,从这种意义上来说,IPv6和IPv4一样不可靠。在多数情况下,这是由于网络拥塞造成的暂时问题或暂时的连接丢失,能够由如TCP这样的高层协议加以恢复。但在有些情况下需要一种反馈机制。例如,在分组中给出的目的地可能是错误的,或路由选择协议不能分布到目的地的路由选择信息。以IPv4中的相同方式,ICMP目的地不可达提供了这样的反馈机制。ICMP不可达消息给出一个原因代码,以协助源排除问题并采取合适的动作。表2-10列出ICMP代码值。

image

注意ICMPv6的代码比ICMPv4少,主要由于有些IPv4消息不适合IPv6。例如,因为在中间路由器上不发生分段,所以“需要分段且DF位设置”不能应用到IPv6。除了原因代码外,消息也包含能够容纳到1 280字节分组的原始数据报(datagram)部分。

二、超时
和IPv4中相同,一个IPv6分组可能在网络中循环(因为不正确的路由选择配置,或在大型网络中的暂时路由选择状态)。ICMPv6超时是从ICMPv4中传承而来的,设计用来阻止分组在网络中无休止地循环。在IPv6头部中一个跳计数字段在最后到达0之前,每一跳都减1,到达0时分组丢弃并向源发送ICMPv6超时。

注释:

和IPv4中相同,超时消息偏离了其原始目标,提供了在网络中跟踪路径的非常低效却有用的方法(即traceroute)。一条UDP分组多次发送到目的地,从1开始到“到达目的地需要的跳数”,每次将跳数字段加1。路径上的每个节点将顺次发回一条ICMPv6超时消息,使源能够判别在路径上的每台路由器。
三、分组太大
这是由IPv6引入的与分组分段过程相关的多个修改之一。不像IPv4,如果分组不适合外发链路的MTU,其中到目的地路径上的任何路由器都能将一个分组分段,IPv6不支持这项功能。虽然对于主机而言,在需要的地方依赖于由路由器实施的分段会非常方便,但这也对路由器产生了很大的处理负担。路由器必须为分段过程保持状态并使用额外内存。这就说明,在网络中间不支持分段功能的理由并不充分。客观上要求提供一些反馈机制,从而使在到达目的地路径上的路由器能够发送信号给发送分组的源主机,指明分组需要分段。分组太大ICMPv6消息用于这个目的。它包括不能发送分组的链路的MTU和适合1 280字节分组的原始分组部分。

ICMPv6消息主要是一条错误消息。但是,它有点偏离其初衷,即能使主机发现到特定主机路径上的最小MTU。这是在RFC 1981中描述的PMTU发现功能。简而言之,其思想是一台主机假定路径MTU(PMTU)就是路径第一跳的MTU。收到分组太大ICMPv6消息后,它减小PMTU并随之分段分组。主机继续发送直到接收到分组太大消息而停止。

通过IPv6 ICMP排错输出,例2-9给出了在一台Cisco路由器上的PMTU过程。

例2-9 一台Cisco路由器实施的PMTU发现

image

四、参数问题
与IPv4中相同,参数问题消息为路由器提供了报告一般问题的方法,前面描述的前3条信息覆盖不了这些问题。ICMPv6消息能够指出(通过指示字段偏移)在IPv6头部中的任何异常字段,该字段阻止了分组的进一步处理。下面的代码值使反映问题的节点能够提供附加的指示信息。

image

2.3.2 ICMPv6信息类消息

在ICMPv4中产生的Echo请求和Echo应答被承载到ICMPv6。与ICMPv4中相同,通过ping命令,这两条消息被广泛用于执行简单的连接性诊断。消息格式基本上没变。除了一个类型(1)和一个代码(1),消息包括一个标识符和一个序列号,加上从请求中拷贝到响应的一些选项数据。

为了有利于大量的协议类型,在各种RFC中规范了很多信息类的消息,如邻居发现、MIPv6和多播。在相应章节中详细讲述了这些消息。

2.3.3 源地址选择算法

IPv6的独特特性之一是,当选择分组的源或目的地时,一个节点一般具有多个地址可供选择。相同接口能够配置多个单播地址,它们可能有不同可达性范围(链路本地或全局)。双栈节点甚至可能需要在IPv4和IPv6地址间选择,特别是DNS服务器为一个给定名称提供两个地址的情况下。多点接入极可能使每个节点具有多个地址,MIPv6在同一个节点引入家乡地址和关注地址。

在RFC 3484中已经规范了两种算法,一种算法用于源地址选择(SAS),另一种算法用于目的地址选择(DAS)。本节详细描述前一种算法(SAS),因为它普遍由ICMPv6在产生一条错误或信息类消息之前,用来选择SA。IPv6运行的多个其他功能,除了ICMP,需要处理SAS或具有SAS多项选择的情况;并且在一些情况下,SAS会遇到问题。MIPv6和VPNv6代表了两个示例,因此在相关章节中将再次提到SAS主题。

这里列出的算法描述了SAS的当前状态。SAS算法不剥夺应用或高层的选择权力。例如,在ICMP情况中,对一条请求的响应仅使用的SA是相应请求的DA。当使用时,为算法给出了一个候选地址列表,算法将一组规则应用到这个列表以选择匹配这些规则最多的候选者。如果一条规则没有匹配的候选者,那么在此规则应用之前的来自于该列表的一个候选地址被选中。

图2-19给出了SAS算法的一个逻辑图。

如2.1节中所述,站点本地范围的地址已经不再使用,而被全局范围的唯一本地地址代替。在SAS中还没有明确地找到这些地址所使用的方式,但它们应该在范围规则的上下文中考虑。

image

2.3.4 关于ICMPv6的结论

ICMPv6本质上没有偏离ICMPv4。它仍然是一个消息协议、无状态的并用于多种不同用途(从错误报告到诊断和网络运行)。消息使用ICMPv4中相同方式的结构,有类型、代码和消息体;有些消息类型是从ICMPv4承载而来的,有些消息类型是新定义的。

但是,ICMPv6的用途,特别在邻居发现协议(NDP)中的应用,比ICMPv4中的用途大得多。这是否是正确的方法和正确的协议有待于看部署的结果,因为该协议执行多种功能,如地址解析、错误报告、自动配置、MIPv6等功能。

CISCO官方配置手册IPV6-DHCP.pdf The “Implementing DHCP for IPv6” module describes how to configure Dynamic Host Configuration Protocol (DHCP) for IPv6 prefix delegation on your networking devices. General prefixes can be defined in several ways: manually, based on a 6to4 interface, and dynamically, from a prefix received by a DHCP for IPv6 prefix delegation client. 立即下载

相关推荐

12-CCNPIPv6配置操作下.pdf

学习网络的绝佳智资料,CCNA CCNP 培训专用资料

ICMPV6协议及NDP协议

ICMPV6 1、基于ipv6ICMPv6Internet control message protocol for IPv6)是 IPv6 下的 Internet 控制报文协议;在 IPv6 中,ICMPv6 整合实现了 IPv4 中的 ICMP(ping命令)、ARP 以及 IGMP 的所有功能,主要包括错误报告、网络诊断(ping6命令)、邻居发现、多播实现和重定向等。 ...

u013237642的博客 1万+

IPv6部署 PDF

部署IPv6的详细介绍。英文版,PDF文件。

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

检测结点首先发送个邻居请求报文,报文目标地址字段值为需要检测唯性的IPv6地址,该报文IPv6首部中的目的地址为检测地址对应的请求结点多播地址。ICMPv6 的报文格式和 IPv4 使用的 ICMP 的相似,即前 4 个字节的字段名称都是样的,第 5 个字节起的后面部分作为报文主体。主机根据接收到的网络前缀和自己生成的接口标识符来创建全球单播地址,并将该路由器的本地链路单播地址作为自己的默认网关地址。为了保证自动创建的本地链路单播地址在本地链路上的唯性,要利用ICMPv6的邻居请求报文进行。

公众号:风景邮递Yuan的博客 1385

IPv6变化概述

  IPv6中的变化体现在以下五个重要方面:•

qinzdc的专栏 2826

2016-4-18 ICMPv6协议[RFC2463]--报文详解

Technorati 标签: IPv6,ICMPv6,CCIE,路由,ICMP差错概要--ICMPv6 (Internet Control Message protocol for the IPv6)IPv6的基础协议.定义在RFC2463.--用于传递报文转发中产生的信息或者错误.--ICMPv6定义的报文被广泛的应用在其他协议.包括:NDP(neighbor d...

weixin_33989780的博客 745

ipv6单播地址包括哪两种类型_IPV6中为啥没有ARP了呢?文带你搞懂NDP邻居发现协议...

前言前面我们介绍了ICMPv6协议除了提供ICMPv4常用的基本功能之外,还有邻居发现(ND)的功能。文带你看懂ICMPv6ICMPv4的区别那么究竟什么是邻居发现协议(ND)呢?邻居发现协议NDP(Neighbor Discovery Protocol)IPv6协议体系中个重要的基础协议。邻居发现协议替代了IPv4的ARP(Address Resolution Protoco...

weixin_39934296的博客 1471

4.3 ICMP、IGMP、ICMPv6(主要讲ICMP,剩下两个稍作了解)

ICMP、IGMP、ICMPv6ICMP——网际控制报文协议报文分类差错报文询问报文何时不回复差错报文ICMP报文数字段内容:IGMP——网际组管理协议IGMP两个工作阶段IGMP采取的具体措施多播路由选择协议洪泛与剪枝隧道技术基于核心的路由发现技术ICMPv6报文分类 ICMP——网际控制报文协议 网络协议,IP协议字段值1 报文分类 差错报文 终点不可达 类型 3 接口不对应 时间超...

pix_csdn的博客 3013

部署IPv6网络修订版)》1.5 安 全 性

本节书摘来自异步社区《部署IPv6网络修订版)》中的第1章,第1.5节,作者【美】Ciprian Popoviciu , Eric Levy-Abegnoli , Patrick Grossetete,更多章节内容可以访问云栖社区“异步社区”公众号查看 1.5 安 全 性 部署IPv6网络修订版)在今天的生态环境中,软件应用和网络基础设施是关键元...

weixin_34306593的博客 122

文解释NDP协议IPv6邻居发现协议)&ICMPv6

NDP(Neighbor Discovery Protocol,邻居发现协议) 这个协议ICMPv6协议发现,但是抓包抓不到NDP报文,可以抓icmpv6IPv6个关键协议,它组合了IPv4中的ARP、ICMP路由器发现和ICMP重定向等协议,并对它们作了改进。作为IPv6的基础性协议,NDP还提供了前缀发现、邻居不可达检测、重复地址监测、地址自动配置等功能。 NDP利用的就是ICMPv6部分功能

里晓山的博客 2万+

打开个网页,需要用到多少协议

浏览网页,打开网页上网,网络协议

StepByStepTo的专栏 1万+

局放监测如何重塑电力设备的“预警—检修”闭环?

<think>我们只需要根据内容生成≤150字的摘要。需要概括主要观点:局放监测技术从信号机理、传感方法、工程应用三个维度,填补绝缘状态实时感知缺口;主流方法对比,超高频+超声波联合;构建数据驱动运维闭环,多参量融合、边缘智能、数字孪生趋势;核心价值是推动电力设备绝缘管理从经验驱动到数据驱动。要求≤150字,注意字数。</think>局放监测技术通过捕捉绝缘缺陷的电磁、声学等微弱信号,将静默劣化转化为可量化数据,实现从“事后补救”到“事前预警”的跃迁。文章系统解析信号机理、主流方法对

sxgzzn的博客 330

在 Linux CentOS 系统中设置静态 IP

如果使用的是 CentOS 7/8 且系统启用了 NetworkManager,使用。在 Linux CentOS 系统中设置静态 IP,通常有修改配置文件和使用。编辑器打开对应网卡的配置文件(将。命令行工具两种常用方法。命令确认网卡名称(例如。

Syc1102g的博客 232

[IT Network]如何配置反向路徑過濾器(rp_filter),以解決路由不對稱問題?

前陣子開始在樹莓派中安裝Rocky Linux OS,基於個人方便使用,部署Tailscale並建置Subnet Router,便於由外網連到樹莓派作業。經過段時間使用,發現個現象,當在同個區域網路(LAN)內,電腦若啟動Tailscale往往無法透過內部區網IP直接SSH連線到樹莓派,同時也無法ping到內部區網IP。經查詢,才了解有個反向路徑過濾(rp_filter)機制需要適當配置模式。

分享实用工具、好书阅读、教育学习与思维概念等等多元化的主题。 283

国内是否存在成熟工业机器人方案?解码中控技术工业 AI 机器人落地路径

工业企业挑选国内工业机器人方案,无需纠结繁多的硬件参数,核心要看方案能否适配真实复杂工业现场、实现长期稳定运行。石化、化工、电力、冶金、水务、仓储物流等行业的机器人设备,需耐受高温、高压、防爆、腐蚀、强磁、复杂地形,适配24小时连续生产工况。

zxlsdmn123的博客 318

极空间NAS部署DeepSeekHarness实战指南

<think>我们根据要求,生成个≤150字的文章摘要。内容是关于DeepSeekHarness(DSH)部署运维手册,适用于Docker(极空间NAS)。摘要需要概括关键信息:部署方式、主要功能、注意事项等。控制在150字以内。</think>DeepSeekHarness(DSH)是AI Agent运行平台,支持Web交互、插件、子代理、记忆与自动化。本文档提供Docker部署运维指南,基于node:22-bookworm镜像,配置环境变量与卷挂载,实现数据持久化。强调需

suaizai_的博客 178

亿级用户IM系统 之 接入网关负载均衡架构(网络结构与DPVS部署

本文讨论了亿级用户的IM系统在网络结构上设计以及入口4层负载均衡DPVS使用模式的相关内容。

robinfoxnan的专栏 306

docker-android Android 17 支持与编译修改

Android 17(API 37.0)因上游 emulator/系统镜像 bug 无法稳定运行,已放弃,改用 Android 16(API 36)。本文档记录完整过程。

yeshen.org 235
上一篇: Spark源码分析 -- SchedulableBuilder
下一篇: 《iOS 8案例开发大全》——实例008 实现断点调试
weixin_34024034
博客等级 码龄11年 6727粉丝 137原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值