您好,欢迎访问三七文档
IPv6网络第4章ICMPv6协议和邻居发现协议电子工业出版社ISBN978-7-121-26548-8IPv6网络第4章ICMPv6协议和邻居发现协议•4.1ICMPv6协议概述•4.2ICMPv6协议格式•4.3ICMPv6差错报文•4.4ICMPv6查询报文•4.5多播监听发现协议•4.6IPv6邻居发现协议•4.7邻居发现协议报文格式及选项•4.8IPv6邻居发现协议报文•4.9IPv6重定向协议•4.10IPv6地址解析技术分析IPv6网络4.1ICMPv6协议概述•4.1.1ICMPv6协议的功用•4.1.2ICMPv6对ICMPv4的改进•4.1.3ICMPv6报文的类型和组成4.1.1ICMPv6协议的功用IPv6网络4.1.1ICMPv6协议的功用•IPv6协议本身没有提供IPv6分组在网络传输过程中的传输状态报告的功能,需要通过ICMPv6协议报告IPv6分组在网络中传输的情况•ICMPv6是IPv6的Internet控制报文协议•主机可以通过接收ICMPv6报文获得网络的状态和IPv6分组传输的情况,但不能依靠所接收的ICMPv6报文去解决任何网络中存在的问题IPv6网络4.1.2ICMPv6对ICMPv4的改进•ICMPv6协议实现了IPv4网络中的ICMP、ARP、IGMP协议的功能•ICMPv6协议删除了一些不再使用的报文类型,定义了一些新的功能和报文IPv6网络ICMPv6与ICMPv4报文类型的比较IPv6网络4.1.3ICMPv6报文的类型和组成IPv6网络ICMPv6和ICMPv4查询报文的比较IPv6网络4.2ICMPv6协议格式•4.2.1ICMPv6报文的一般格式和处理规则•4.2.2ICMPv6报文的类型IPv6网络4.2.1ICMPv6报文的一般格式和处理规则•1.ICMPv6报文的一般格式•ICMPv6报文作为IPv6分组的数据荷载,封装在IPv6分组中进行传输。在每个ICMPv6报文之前是一个IPv6固定首部和可选的扩展首部。位于ICMPv6首部之前的那个首部的下一个首部(NextHeader)字段的值为58,标识后面为ICMPv6报文IPv6网络ICMPv6报文的一般格式•所有的ICMPv6报文都有相同的常规首部结构,其中类型、代码、校验和3个字段都与ICMPv4类似IPv6网络2.ICMPv6处理规则•ICMPv6报文的处理规则•1)如果一个结点收到一条未知类型的ICMPv6差错报文,则该结点必须要把它传送给上层•2)如果一个结点收到一条未知类型的ICMPv6报文,则将其丢弃•3)ICMPv6的长度不能超过IPv6规定的MTU的要求IPv6网络4.2.2ICMPv6报文的类型•1.ICMPv6差错报文的类型IPv6网络2.ICMPv6查询报文的类型IPv6网络4.3ICMPv6差错报文•4.3.1目的地不可达报文•4.3.2分组过大报文和超时报文•4.3.3参数问题报文IPv6网络4.3.1目的地不可达报文•目的地不可达(DestinationUnreachable)报文是在IP分组不能被发送的情况下产生的,该ICMP报文被发送到发送分组的源地址IPv6网络目的地不可达报文可能的代码及功用说明IPv6网络4.3.2分组过大报文和超时报文•当某个路由器由于分组的大小超过输出链路MTU而不能转发这个分组时,它会生成一个分组过大(PacketTooBig)报文,路由器丢弃该分组IPv6网络2.超时报文•当路由器转发了一个分组之后,它通常会把跳数限制的值减1,跳数限制的作用是确保该分组不会在网络上无休止地传播下去。路由器收到跳数限制字段值为0的IPv6分组,或者路由器把IPv6分组的跳数限制字段值减为0时,将向发出该分组的源结点发送超时(TimeExceeded)ICMPv6报文IPv6网络4.3.3参数问题报文•如果一个IPv6首部中有错误,或者扩展首部出现问题,而无法完成分组传输,目的结点或路由器就会丢弃这个分组,并且给出ICMPv6参数问题(ParameterProblem)报文。参数问题报文中包含了错误问题类型和错误的位置IPv6网络参数问题报文中代码字段的说明IPv6网络4.4ICMPv6查询报文•4.4.1回声请求报文•4.4.2回声应答报文IPv6网络4.4.1回声请求报文•回声请求报文可以发送给一个单播地址,也可以发送给多播地址。IPv6网络4.4.2回声应答报文•回声应答报文的格式和回声请求报文非常相似,其中,类型字段的值为129,表示是回声应答报文IPv6网络4.5多播监听发现协议•4.5.1多播监听发现协议定义•4.5.2多播监听发现报文•4.5.3多播监听查询报文•4.5.4多播监听报告报文和完成报文IPv6网络4.5.1多播监听发现协议定义•IPv6中用ICMPv6报文实现多播组管理,称为多播监听发现(MulticastListenerDiscovery,MLD),MLD是基于IGMPv2开发的•多播监听发现定义了3种类型的MLD报文:多播监听发现查询报文,类型编码为130;多播监听发现报告报文,类型编码为131;多播监听发现完成报文,类型编码为132IPv6网络4.5.2多播监听发现报文•发送MLDv2报文时必须包含链路本地IPv6源地址、跳数限制的值为1,这样做是为了确保它们留在本地网络中,因为要在相邻结点之间发送报文•对应MLD的查询、报告、完成3种类型的报文IPv6网络4.5.3多播监听查询报文•多播监听查询报文的类型为130,由处于查询状态的多播路由器发出,用于查询邻居接口的多播监听状态,以确定哪些多播组仍然有成员在路由器直连的链路(网络)上IPv6网络4.5.4多播监听报告报文和完成报文•1.多播监听报告报文•监听者发送多播监听报告报文给相邻路由器,向多播组注册,作为对查询的响应,用于报告结点接口当前的多播监听状态或多播监听状态的变化情况IPv6网络多播地址记录字段的内部格式IPv6网络2.多播监听完成报文•当多播监听者不希望接收某一指定多播组的报文时,会发送多播监听完成报文,多播监听完成报文的作用是通知本地路由器,多播监听者将要离开多播组,链路(子网)上已经没有指定多播地址的这个成员•多播监听完成报文可以由网络中的任何结点产生IPv6网络4.6IPv6邻居发现协议•4.6.1邻居发现协议概述•4.6.2邻居发现协议的主要用途•4.6.3邻居缓存和目的地缓存IPv6网络4.6.1邻居发现协议概述•1.邻居发现协议的特征•邻居发现是确定邻居结点之间关系的一组进程和报文的集合。•邻居发现进程可以实现:–路由发现、前缀发现、参数发现、地址配置、地址解析、下一跳地址确定、邻居可达性检测、重复地址检测、重定向•2.IPv6邻居发现协议做的改进•IPv6邻居发现协议对IPv4协议做了许多改进IPv6网络4.6.2邻居发现协议的主要用途•1.路由器和前缀发现•路由器必须无条件丢弃不满足有效性检查的路由器请求和路由器通告报文•路由器发现功能用来标识与给定链路相连的路由器,并获取与地址自动配置相关的前缀和配置参数•2.地址解析•IPv6结点通过邻居请求和邻居通告报文将IPv6地址解析成链路层地址,对多播地址不执行地址解析•3.邻居结点发现过程中涉及到的内容•路由器发现、前缀发现、参数发现、地址自动配置、地址解析、确定下一跳、重复地址检测、重定向IPv6网络4.6.3邻居缓存和目的地缓存•1.邻居缓存•邻居缓存用列表维护最近有过通信的邻居的记录•2.目的地缓存•目的地缓存用于维护有关最近有过通信的目的地的信息IPv6网络4.7邻居发现协议报文格式及选项•4.7.1邻居发现协议报文格式•4.7.2邻居发现协议的选项IPv6网络4.7.1邻居发现协议报文格式•ICMPv6报文中类型字段的取值为133~137,标识为邻居发现报文•邻居发现报文由邻居发现报文首部和邻居发现报文选项组成•为了确保邻居发现报文的作用范围属于本地链路,最大跳数限制在255以内IPv6网络4.7.2邻居发现协议的选项•1.邻居发现协议选项的格式•邻居发现协议选项的格式为类型-长度-值•2.源链路层地址和目的链路层地址选项•源链路层地址选项和目的链路层地址选项的格式相同IPv6网络3.前缀信息选项IPv6网络•4.被重定向头选项只能用在重定向报文中•5.MTU选项MTU选项仅能够用于路由器通告报文中IPv6网络•6.通告间隔选项•规定了用做家乡代理的路由器发送多播路由器通告报文的间隔时间•7.路由信息选项•使用路由信息选项,可以使主机在发送数据时做出更好的转发选择IPv6网络8.邻居选项报文与所用到的选项•邻居选项报文与所用到的选项有对应的联系IPv6网络4.8IPv6邻居发现协议报文•4.8.1路由器请求和路由器通告报文•4.8.2邻居请求和邻居通告报文IPv6网络4.8.1路由器请求和路由器通告报文•1.路由器请求报文•路由器请求报文的格式中增加了选项,以便主机能够宣布其物理地址•IPv6路由器不仅在接口之间转发IPv6分组,还同时通告它的存在性和位于直接连接的子网上的主机的无状态自动配置信息IPv6网络2.路由器通告报文•收到请求报文的路由器以一条路由器通告报文作为应答•路由器也会周期性地发出通告报文–周期性通告的目的地址是全结点多播地址FF02::1–而应请求而发出的通告的目的地址是发出请求报文的接口的地址IPv6网络4.8.2邻居请求和邻居通告报文•1.邻居请求报文•邻居请求和邻居通告报文用来实现在IPv4网络中由ARP处理的链路层地址解析,以及邻居可达性检测机制IPv6网络•2.邻居通告报文•邻居通告报文作为对邻居请求报文的应答•或者当邻居结点的链路层地址发生了变化•或者结点角色发生了变化时,为了快速传播新的信息而发出邻居通告报文IPv6网络4.9IPv6重定向协议•4.9.1重定向技术•4.9.2ICMPv6重定向报文IPv6网络4.9.1重定向技术•重定向功能是将主机重定向到一个更好的第一跳路由器IPv6网络对重定向报文的确认需要进行有效性的检查•1)IP源地址是本地链路地址•2)IP下一跳限制字段的值为255•3)若报文含有认证首部,则对该报文的认证必须通过•4)ICMP校验和正确,ICMP代码为0。ICMP的长度以8位组为单位,大于等于40•5)对于特定的ICMP目的地址,重定向的IP源地址与当前第一跳路由器的地址相同•6)重定向报文中的ICMP目的地址字段中不包含多播地址•7)ICMP目的地址是本地链路地址,或ICMP目的地址•8)所有选项的长度都大于0IPv6网络4.9.2ICMPv6重定向报文•路由器发出ICMPv6重定向报文用于告诉结点在去往给定目的地的路径上更优的下一跳结点地址•重定向报文还可以告知结点,它所使用的目的地实际上是同一个链路上的一个邻居,而不是远程子网上的一个结点IPv6网络4.10IPv6地址解析技术分析•4.10.1主机的数据结构•4.10.2IPv6地址解析•4.10.3主机数据包的发送算法•4.10.4邻居可达性检测•4.10.5路由器和前缀发现•4.10.6邻居发现协议与ARP协议的比较•4.10.7邻居发现协议的改进IPv6网络4.10.1主机的数据结构•主机必须能实现自动配置,必须能学习到交换数据的有关目的地的最基本信息IPv6网络4.10.2IPv6地址解析•地址解析通过邻居发现协议,交互传输邻居请求报文和邻居通告报文,获得邻居结点的数据链路层地址•请求解析的结点把邻居请求报文以多播的形式发送到与目的IPv6地址有关的多播地址上,该邻居请求报文包含请求解析的结点的数据链路层地址•目的路由器把邻居通告报文以单播的形式,向请求解析的结点通告自己的数据链路层地址IPv6网络4.10.3主机数据包的发送算法•结点向目的地发送数据包时,使用目的地缓存、前缀列表、默认路由器列表确定合适的下一跳IP地址,然后路由器查询邻居缓存,确定邻居的链路层地址•IPv6单播地址下一跳确定的操作方法:–发送者使用前缀列表中的前缀进行最长前缀匹配,确定
本文标题:IPv6网络-基础、安全、过渡与部署(第4章)978-7-121-26548-8
链接地址:https://www.777doc.com/doc-6914102 .html