本文主要是介绍HCIE-ICMPv6,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
ICMPv6
- 邻居发现协议 - NDP概述
- NDP使用ICMPv6的相关报文(重点)
- 地址解析报文(NS NA)
- 查看IPv6邻居表
- 邻居状态变化
- IPv6地址解析优势
- 重复地址检测DAD
- IPv6地址无状态自动配置概述(重点)
- 路由器发现概述(RA RS)
- 路由器发现 - 路由器周期发送RA
- 重定向报文
- 重定向过程
- PMTU发现
邻居发现协议 - NDP概述
- NDP(Neighbor Discovery Protocol,邻居发现协议)在RFC2462及RFC4861中定义。NDP实现了IPv6中诸多重要机制,如下图所示:
NDP使用ICMPv6的相关报文(重点)
- RS(Router Solicitation):路由器请求报文
- RA(Router Advertisement):路由器通告报文
- NS(Neighbor Solicitation):邻居请求报文
- NA(Neighbor Advertisement):邻居通告报文
地址解析报文(NS NA)
- 地址解析过程中使用了两种ICMPv6报文:邻居请求(Neighbor Solicitation)和邻居通告(Neighbor Advertisement)。
查看IPv6邻居表
- IPv6不像IPv4那样使用ARP表来缓存IP与MAC地址的映射,而是维护一个IPv6邻居表。在华为数通设备上则使用display ipv6 neighbors命令来查看IPv6邻居表。
邻居状态变化
- 一个例子:节点A要访问节点B,A的缓存中无B的条目,下图是邻居状态机的变化
IPv6地址解析优势
- IPv6的地址解析不再使用ARP,也不再使用广播方式。
- 三层完成,针对不同的链路层协议可以采用相同的地址解析协议
- 通过ICMPv6(类型135的NS及类型136的NA报文)来实现地址解析。
- NS报文发送使用组播的方式,报文的目的IPv6地址为被请求的IPv6地址对应的“被请求节点组播地址”,报文的目的MAC为组播MAC。
- 采用组播的方式发送NS消息相比于广播的方式更加的高效,也减少了对其他节点的影响和对二层网络的性能压力。
重复地址检测DAD
- 机制概述
- 重复地址检测确保网络中无两个相同的单播地址。
- 所有地址都需要做DAD。
- 使用NS和NA完成DAD交互过程。
- 原理
- 一个地址在通过DAD地址重复检测之前称为“tentative地址”也就是试验性地址。接口暂时还不能使用这个试验性地址进行正常的IPv6单播通讯,但是会加入和该地址所对应的Solicited-Node组播组。
- DAD重复地址检测:节点向该tentative地址所在的Solicited-Node组播地址发送一个NS,如果收到某个其他站点回应的NA,就证明该地址已被网络上使用,节点将不能使用该tentative地址通讯。
- 接口在启用任何一个单播IPv6地址前都需要先进行DAD,包括Link-Local地址。
IPv6地址无状态自动配置概述(重点)
- IPv6地址无状态自动配置(StateLess Address AutoConfiguration,SLAAC)是IPv6的标准功能,在RFC2462中定义。
- 在IPv6中,设备可以通过手工或者动态的方式获取地址。在动态获取地址的方式中,存在DHCPv6及无状态地址自动配置两种方式。
- 相比于DHCPv6这种动态地址分配技术而言,SLAAC无需部署应用服务器,更加轻量。
路由器发现概述(RA RS)
- 路由器发现功能是IPv6地址自动配置功能的基础,主要通过以下两种报文实现:
- RA(Router Advertisement,路由器通告)报文:每台设备为了让二层网络上的主机和设备知道自己的存在,可以定时以组播方式发送RA报文,RA报文中会带有网络前缀信息,及其他一些标志位信息。RA报文的Type字段值为134。
- RS(Router Solicitation,路由器请求)报文:很多情况下主机接入网络后希望尽快获取网络前缀进行通信,此时主机可以立刻发送RS报文,网络上的设备将回应RA报文。RS报文的Type字段值为133。
路由器发现 - 路由器周期发送RA
- 链路上的路由器会定期的发送RA(Router Advertisement)消息。
- 收到RA的主机将加入默认路由器列表中。
- 收到RA的路由器将检查RA内容的一致性。
重定向报文
- 当网关路由器知道更好的转发路径时,会以重定向报文的方式告知主机
- 重定向报文的结构如下:
- 经常网关路由器发现报文从其它网关路由器转发更好,它就会发送重定向报文告知报文的发送者,让报文发送者选择另一个网关路由器。
- 报文格式中Type为137,Code为0;
- Target Address是更好的路径下一跳地址;
- Destination Address是需要重定向转发的报文的目的地址。
重定向过程
- 主机A的默认路由器为RTA,当主机A要给主机B发送数据时:
PMTU发现
- PMTU就是路径上的最小接口MTU。
- 在RFC1981中定义了PMTU发现协议。
- RFC1981中定义了PMTU发现的机制,它是通过ICMPv6的Packet Too Big报文来完成的。首先源节点假设PMTU就是其出接口的MTU,发出报文,当转发路径上存在一个小于当前假设的PMTU时,就会向源节点发送Packet Too Big报文,并且携带自己的MTU值,此后源节点将PMTU的假设值更改为新收到的MTU值。如此反复,直到报文到达目的地之后,源节点就能知道到达某个目的地的PMTU了。
这篇关于HCIE-ICMPv6的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!