2016-4-18 ICMPv6协议[RFC2463]--报文详解
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的协议报头.
附件是相关的抓包.
ICMPv6的type类:
1, 错误类消息(error message),也称为差错报文,最高bit为0,也就是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),也称为信息报文,最高bit为1,也就是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]--报文详解相关推荐
- STM32 MQTT协议 连接中国移动OneNet服务器 上传接收数据(二)MQTT协议常用报文详解
STM32 MQTT协议 连接中国移动OneNet服务器 上传接收数据(二)MQTT协议常用报文详解 上一次我们讲了OneNet平台的注册,这次我们来讲一下MQTT的常用报文用法 上一篇地址https ...
- TCP协议中报文详解
TCP协议中报文SYN.ACK.FIN.RST.PSH.URG详解 1. SYN:同步连接序号,TCP SYN报文就是把这个标志设置为1,来请求建立连接: 2. ACK:请求/应答状态.0为请求,1为 ...
- HTTP协议之报文详解
学习WEB开发需要对HTTP协议熟悉,下面直接进入主题. 一.什么是报文 报文,是网络中交换和传输的数据单元,即站点一次性要发送的数据块.报文包含了将要发送的完整的数据信息,其长短很不一致,长度不限且 ...
- 虚拟路由器冗余协议VRRP原理详解!
虚拟路由器冗余协议VRRP原理详解! https://virtual.51cto.com/art/201905/596666.htm?pc 我们知道,为了实现不同子网之间的设备通信,需要配置路由.目前 ...
- 传输协议之ICMP详解
文章目录 TCP和UDP ICMP 简介 ICMP出现的原因 ICMP的用途 ICMP作为IP的上层协议在工作(报文) ICMP实现之MTU探索 ICMP实现之改变路由 ICMP实现之源点抑制 ICM ...
- OSPF报文详解——LSA概述
目录 一.OSPF报文详解: (1)---OSPF头部分析: (2)---hello字段分析: 二.LSA报文--链路状态通告 (1)---简介: (2)---头部信息: (3)---数据部分: 一. ...
- HTTP权威指南读书笔记(一)HTTP概述、URL和资源及报文详解
一.HTTP概述 1.WEB客户端和服务器. 2.资源:资源可以是各种格式的静态文件,也可以是应用程序. 3.媒体类型 4.URI:统一资源标识符 URL:统一资源定位符. URL的第一部分称为方案: ...
- 流媒体协议之RTMP详解
流媒体协议之RTMP详解 文章目录 流媒体协议之RTMP详解 1 RTMP概述 2 RTMP交互过程 2.1 握手协议 2.2 RTMP分块(chunk) 2.3 协议控制消息(Protocol Co ...
- bgp 建立邻居发送的报文_bgp邻居建立过程及报文详解.doc
bgp邻居建立过程及报文详解.doc 还剩 4页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,喜欢就下载吧,价低环保! 内容要点: 前缀长度和网络号8.当路由失效时,也发送 update ...
- http请求报文和相应报文详解
Http协议的特点 HTTP协议的特点 基于请求/响应模型的协议. 请求和响应必须成对: 先有请求后有响应. 简单快捷 因为发送请求的时候只需要发送请求方式和请求路径即可 HTTP协议默认的端口:80 ...
最新文章
- 欢迎大家批评:CSDN Blog用户体验调查
- [C++] vector 定义和初始化
- linux 设置环境变量以及查看环境变量
- require_once的用法
- 计算数字的位数并逆序输出
- html window设置,JavaScript Window
- NB-IoT(9)---云平台对接及使用
- 导入数据库出现html lang='zh' dir='ltr' class='ie ie7错误代码解决方法
- kafka的延迟操作-pull操作详解
- Csrf漏洞概述及其原理
- Oracle数据库编程:PL/SQL编程基础
- jQuery表单插件ajaxForm,ajaxSubmit使用详解
- 使用uiautomation 实现微信自动发送消息
- 《活着》的优秀读后感范文3000字
- python实现Excel邮件合并
- ASP网站访问量计数器
- 洛谷P4238 多项式乘法逆元
- opencv——批量处理图片并保存
- WPA3的特点有哪些?
- 立体感css播放按钮样式
热门文章
- mvc html post参数,ASP MVC HTML表单POST列表Entity
- 会话推荐和 序列推荐
- Transformer-XL 2
- 199.二叉树的右视图
- 用python写WordCount的MapReduce代码
- Chapter 1 : MySQL体系结构和搜索引擎
- git提交过滤target文件 idea_详解如何在IntelliJ IDEA中使用.ignore插件忽略不必要提交的文件...
- DnsFookup:一款功能强大的DNS重绑定工具
- 101.对称二叉树(力扣leetcode) 博主可答疑该问题
- 172.阶乘后的零 (力扣leetcode) 博主可答疑该问题