Technorati 标签: IPv6,ICMPv6,CCIE,路由,ICMP差错

概要

--ICMPv6 (Internet Control Message protocol for the IPv6)是IPv6的基础协议之一.定义在RFC2463中.

--用于传递报文转发中产生的信息或者错误.

--ICMPv6定义的报文被广泛的应用在其他协议中.包括:NDP(neighbor discovery protocol, PathMTU路径发现机制,MLD协议[替代IPv4中组播的IGMP协议]等等)

ICMPv6包头是属于上层协议的报头.他一定会处于所有的扩展报头后面.

在指明ICMPv6的报头的时候,基本包头或者是扩展报头中的"Next header=58"[Next-header=0x3a],这样IPv6的基本包头或者扩展报头才能和ICMPv6报头进行关联.

下面的报文,就是一个ICMPv6的报文.

这里面,有一个IPv6的基本包头,在Next-header里面指定的是0x3a.指定的就是ICMPv6的协议报头.

附件是相关的抓包.

ICMPv6type类:

1, 错误类消息(error message),也称为差错报文,最高bit0,也就是ICMPv6 type=[0-127].

NOTES:如果是错误消息的话,那么ICMPv6报头中的type会是在0-127之间.

差错报文:

---1,差错报文(RFC2463)

~~~~目的不可达Destination unreachable (type=1)

Code=0: 没有达到目标的路由

如果在网络中,R1--R2--R3.

R1 ping "R5"的环回口,保证这个"R5"在所有网络中都没有路由存在.

那么R1会把ICMP送向R2这个默认网关,但是R2会给R1回应一个差错报文,code=0.标示没有达到目标的路由.

R1--R2--R3

在R1上面ping 2055::1,这个环回口没有任何路由有这个路由.

通过抓包来看,R1 ping 2055:1,把ICMPv6报文甩给R2的e0/0 input,结果因为R2收到了以后没有路由信息,就直接R2给R1回应ICMPv6的差错报文.Type=1, code=0,没有路由.

Code=1: 与目标的通信被管理策略禁止

这种情况,一般是在中途链路做了ACL等策略禁止ICMP报文通行.

下面就是一个做了ACL的策略ping包的抓包.

R1---[e0/0]R2---R3

在R2上面的e0/0的input方向应用了一个ACL.禁止R1发送的所有ICMP报文.

下面红色框中就是R2回应R1的一个ICMP差错报文,code=1.与目标的通信被管理策略禁止.   

●Code=2: 未指定

Code=3: 地址不可达

这里先还是要说一下,地址不可达,和code=0,路由不可达..有什么区别.code=3,是说我有Destination的路由,但是地址通不了.Code=0是说完全没有路由.

模拟过程:这里是说,R1--R2---2023::x/64---R3

这里R2和R3相互连接的接口地址分别是:2023::2/64和2023::3/64

但是,在R1上面去ping 2023::10/64这个完全不存在的地址.数据从R1甩到R2以后,R2有路由,但是这个"2023::10/64"是完全不可达的.

模拟拓扑图为:R1---2012::x/64---R2(2023::2/64)-----(2023::3/64)R3

在R1上面ping 2023::10这个不存在的地址.

在R1上面debug的信息如下:

*Apr 18 16:31:24.045: ICMPv6: Sent echo request, Src=2012::1, Dst=2023::10.

*Apr 18 16:31:27.265: ICMPv6: Received Unreachable code 3, Src=2012::2, Dst=2012::1

PS.R2在返回ICMP报文code=3的时候,会有一定的时延,因为R2收到报文以后,因为有路由,所以R2还要花时间进行地址查找,发送NS出去,等待NA回来.如果NA连续不会超时,这个时候R2才会反馈ICMPv6的差错报文.

Code=4: 端口不可达

关于这点,用traceroute 工具即可.

R1---R2---R3

登陆到R1上面traceroute R3的环回口.这个时候会相应端口不可达.

R1: traceroute 2033::1

这个时候在R1上面收到ICMP差错报文,code=4的报文.

*Apr 18 17:32:23.110: ICMPv6: Received Time Exceeded, Src=2012::2, Dst=2012::1

*Apr 18 17:32:23.116: ICMPv6: Received Time Exceeded, Src=2012::2, Dst=2012::1

*Apr 18 17:32:23.121: ICMPv6: Received Time Exceeded, Src=2012::2, Dst=2012::1

*Apr 18 17:32:23.127: ICMPv6: Received Unreachable code 4, Src=2023::3, Dst=2012::1

*Apr 18 17:32:23.132: ICMPv6: Received Unreachable code 4, Src=2023::3, Dst=2012::1

*Apr 18 17:32:23.137: ICMPv6: Received Unreachable code 4, Src=2023::3, Dst=2012::1

~~~~数据包超长Packet Too Big (Type=2)

●Code=0

~~~~超时Time Exceeded (Type=3)

●Code=0: 在传输中超越了跳数限制(hot-limit超时,IPv4的TTL超时)

●Code=1: 分片重组时超时

~~~~参数问题Parameter Problem (Type=4)

●Code=0: 遇到错误的报头字段

●Code=1: 遇到无法识别的Next-header

●Code=2: 遇到无法识别的IPv6选项

---2,信息类消息(information message),也称为信息报文,最高bit1,也就是ICMPv6 Type=[128-255].

NOTES:如果是信息类的消息,那么type的值会在128-255之间.

信息类报文(RFC2463),我们用得最多的就是type=128 Echo request和129, echo reply.

~~~~回送请求报文(Echo Request)

●Type=128, Code=0.

~~~~回送应答报文(Echo Reply)

●Type=129, Code=0.

附件有我做实验的相关ICMP6的抓包,有需要的朋友可以下载对比进行梳理概念.

本文转自 hny2000 51CTO博客,原文链接:http://blog.51cto.com/361531/1765168

2016-4-18 ICMPv6协议[RFC2463]--报文详解相关推荐

  1. STM32 MQTT协议 连接中国移动OneNet服务器 上传接收数据(二)MQTT协议常用报文详解

    STM32 MQTT协议 连接中国移动OneNet服务器 上传接收数据(二)MQTT协议常用报文详解 上一次我们讲了OneNet平台的注册,这次我们来讲一下MQTT的常用报文用法 上一篇地址https ...

  2. TCP协议中报文详解

    TCP协议中报文SYN.ACK.FIN.RST.PSH.URG详解 1. SYN:同步连接序号,TCP SYN报文就是把这个标志设置为1,来请求建立连接: 2. ACK:请求/应答状态.0为请求,1为 ...

  3. HTTP协议之报文详解

    学习WEB开发需要对HTTP协议熟悉,下面直接进入主题. 一.什么是报文 报文,是网络中交换和传输的数据单元,即站点一次性要发送的数据块.报文包含了将要发送的完整的数据信息,其长短很不一致,长度不限且 ...

  4. 虚拟路由器冗余协议VRRP原理详解!

    虚拟路由器冗余协议VRRP原理详解! https://virtual.51cto.com/art/201905/596666.htm?pc 我们知道,为了实现不同子网之间的设备通信,需要配置路由.目前 ...

  5. 传输协议之ICMP详解

    文章目录 TCP和UDP ICMP 简介 ICMP出现的原因 ICMP的用途 ICMP作为IP的上层协议在工作(报文) ICMP实现之MTU探索 ICMP实现之改变路由 ICMP实现之源点抑制 ICM ...

  6. OSPF报文详解——LSA概述

    目录 一.OSPF报文详解: (1)---OSPF头部分析: (2)---hello字段分析: 二.LSA报文--链路状态通告 (1)---简介: (2)---头部信息: (3)---数据部分: 一. ...

  7. HTTP权威指南读书笔记(一)HTTP概述、URL和资源及报文详解

    一.HTTP概述 1.WEB客户端和服务器. 2.资源:资源可以是各种格式的静态文件,也可以是应用程序. 3.媒体类型 4.URI:统一资源标识符 URL:统一资源定位符. URL的第一部分称为方案: ...

  8. 流媒体协议之RTMP详解

    流媒体协议之RTMP详解 文章目录 流媒体协议之RTMP详解 1 RTMP概述 2 RTMP交互过程 2.1 握手协议 2.2 RTMP分块(chunk) 2.3 协议控制消息(Protocol Co ...

  9. bgp 建立邻居发送的报文_bgp邻居建立过程及报文详解.doc

    bgp邻居建立过程及报文详解.doc 还剩 4页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,喜欢就下载吧,价低环保! 内容要点: 前缀长度和网络号8.当路由失效时,也发送 update ...

  10. http请求报文和相应报文详解

    Http协议的特点 HTTP协议的特点 基于请求/响应模型的协议. 请求和响应必须成对: 先有请求后有响应. 简单快捷 因为发送请求的时候只需要发送请求方式和请求路径即可 HTTP协议默认的端口:80 ...

最新文章

  1. 欢迎大家批评:CSDN Blog用户体验调查
  2. [C++] vector 定义和初始化
  3. linux 设置环境变量以及查看环境变量
  4. require_once的用法
  5. 计算数字的位数并逆序输出
  6. html window设置,JavaScript Window
  7. NB-IoT(9)---云平台对接及使用
  8. 导入数据库出现html lang='zh' dir='ltr' class='ie ie7错误代码解决方法
  9. kafka的延迟操作-pull操作详解
  10. Csrf漏洞概述及其原理
  11. Oracle数据库编程:PL/SQL编程基础
  12. jQuery表单插件ajaxForm,ajaxSubmit使用详解
  13. 使用uiautomation 实现微信自动发送消息
  14. 《活着》的优秀读后感范文3000字
  15. python实现Excel邮件合并
  16. ASP网站访问量计数器
  17. 洛谷P4238 多项式乘法逆元
  18. opencv——批量处理图片并保存
  19. WPA3的特点有哪些?
  20. 立体感css播放按钮样式

热门文章

  1. mvc html post参数,ASP MVC HTML表单POST列表Entity
  2. 会话推荐和 序列推荐
  3. Transformer-XL 2
  4. 199.二叉树的右视图
  5. 用python写WordCount的MapReduce代码
  6. Chapter 1 : MySQL体系结构和搜索引擎
  7. git提交过滤target文件 idea_详解如何在IntelliJ IDEA中使用.ignore插件忽略不必要提交的文件...
  8. DnsFookup:一款功能强大的DNS重绑定工具
  9. 101.对称二叉树(力扣leetcode) 博主可答疑该问题
  10. 172.阶乘后的零 (力扣leetcode) 博主可答疑该问题