IPV6——2 ICMPV6
ICMP V6
在ipv4中,internet 控制报文协议 icmp向源节点报告关于向目的地传输IP数据包过程 中错误 和信息,在IPV6中,ICMPV6除了提供ICMPV4常用的功能之 外,还有其它的一些机制需要ICMPv6消息 ,(邻居发现,无状态地址配置,PMTU发现等等)
协议类型,next header 为58
广泛应用于邻居发现
Type code checksum message body
Type:2的8次方
0-127为错误类的信息
128-255为消息类消息
CODE
差错报文
1目标不可达 destination unreachable type 1
Code=0 没有到达目标 的路由UUUU
Code=1 与目标的通信 被 =管理 策略禁止AAA,code=5 SSS
Code=2 超出了源地址范围
Code=3 地址不可达
Code=4 端口不可达
看图中显示, unreachable 就是type 1 ,code 1 那么显示 被 策略干掉。
如果是正常的通信 应该是这样儿的
去是echo request 回来时是echo reply
去Ping一个根本就不存在的地址,回显是U ,code=0, R2给回复 ,没有到达目标 的路由
数据包超长 packet too big type 2
Code=0
超时 time exceeded type 3
Code 0 在传输中超越了跳 数限制
Code=1分片重组超时
参数问题 parameter problem type 4
Code=0 遇到错误的报头字段
Code=1 遇到无法识别的下一个报头 next-header 类型
Code=2 遇到无法识别的IPV6选项
ICMP 信息类消息
邻居发现RFC2461
TYPE133-134 路由器请求/公告
TYPE135-136 邻居请求/公告
TYPE137 重定向
Type135-136
1地址解析
2跟踪邻居状态
3重复地址检测
4路由器发现
5重定向
1地址解析过程
A请求B,去进地MAC地址解析 ,前面讲过使用的是对端的被请求组播地址,而IPV6中没有广播可言,只有组播和单播,这时就要组播请求了
而B收到请求时会给予回复 ,而回复时使用的是单播。
2跟踪邻居状态
Ipv4的ARP时间只保留4个小时,过了之后直接清除再重建
而IPV6没有ARP,也就没有了ARP表,
表项由ICMP维护
Show ipv6 neighbors = ipv4 arp
IP对应MAC
状态state
状态机如何完成
Empty 空的
发送ns 没有收到NA时,incomplete
收到 na后,reachable,30S之内没有任何数据发送,进入stale状态
Stale时,来了一个数据要查表,立即进入delay 状态,等待上层是否可达,
如果可达进入reachable,如果不通进入proble状态,发送3次NS请求,每S一次,
如果通则可以,如果不通则进入empty状态
3重复地址检测
当接口被配置 上IPV6地址时,就应该执行检测
IPV4的无故ARP,在配置IPV4地址时,会自己向外发送三次ARP请求,如果有人回复,那说明有地址冲突 这个地址有问题
如果没有回复 ,那说明这个地址可以用,就是为了防止地址冲突的问题。
那么IPV6呢?
同样是要NS 和NA的配置 ,
NS请求,目标地址为自己的被请求组播地址,对端 收到 之后用NA回复,这个地址已经有人用了,它-的MAC地址是x.x.x.x
注意:这时的回复是单播回复 ,而是向所有的组播地址回复 ,ff02::1等于是IPV4中的224.0.0.1一样的道理
如果此时没有人回复这个ns消息 ,那就代表此地址可以使用,可以被配置。
到现在为止,如果两台设备想要通过 IPV6通信 ,肯定是要先进行重复检测 ,然后再进行解析,然后生成具体表项
4路由器发现
Type 133-134
源:自己的link local ,所以无法传递到其它链路上,只能发生在一个链路上。
目标是所有的组播地址 FF02::1
RA可携带的内容很丰富,
这个报文就可以实现IPV6地址自动获取的方式。
RS TYPE133
从图中会发现一个规律,
RS报文 ,是由主机发出来的,
RA报文 ,是由路由器发出来的。必须要有ipv6 unicast routing开启才OK
5重定向
可以看到type=137
源是R1
目标 是PC2(这个不是IP报头的目标,而是重定向报文的目标)
传到R2的 link local 地址
-----------------------------------------------
CCIE成长之路 --- 梅利