Copyright©2009杭州华三通信技术有限公司第1页,共16页IPv6解决方案ND防攻击技术白皮书关键词:ND,ARP,ND攻击,ARP攻击,交换机,IPV6摘要:本文介绍了在IPv6网络中的ND攻击及防攻击的技术思路以及H3C公司的ND防攻击方案部署的典型方案以及技术特点。缩略语清单:缩略语英文全名中文解释NDPNeighborDiscoverProtocol邻居发现协议ARPAddressResolutionProtocol地址解析协议IPv6InternetProtocolVersion6因特网协议第六版IPv6解决方案ND防攻击技术白皮书公开2009-5-7第2页,共16页目录1ND攻击概述.....................................................................................................................32ND协议介绍.....................................................................................................................32.1ND报文类型.........................................................................................................31.1邻居通告报文NANeighborAdvertisementMessage.......................................72.2ND协议主要功能介绍.......................................................................................101.2地址解析Addressresolution...........................................................................101.3重复地址检测DADDuplicateAddressDetection..........................................113ND常见攻击介绍...........................................................................................................123.1ND常见攻击类型...............................................................................................124H3C的ND防攻击解决方案.........................................................................................154.1信任表项与NDDetection..................................................................................154.2RATrust与DHCPTrust......................................................................................165总结.................................................................................................................................16IPv6解决方案ND防攻击技术白皮书公开2009-5-7第3页,共16页1ND攻击概述邻居发现协议(NeighborDiscoveryProtocol,以下称ND协议)是IPv6的一个关键协议,可以说,ND协议是IPv4某些协议在IPv6中综合起来的升级和改进,如ARP、ICMP路由器发现和ICMP重定向等协议。当然,作为IPv6的基础性协议,ND还提供了其他功能,如前缀发现、邻居不可达检测、重复地址检测、地址自动配置等。在IPv4网络中,ARP攻击问题已经为广大的网络管理者,设备厂商所认识,ARP攻击能够造成大面积网络不能正常访问外网,使得正常用户深受其害。针对ARP攻击,大部分的网络设备厂商都推出了自己的ARP防攻击解决方案,在很大程度上解决了ARP攻击的问题。而伴随着IPv6网络的建设,在IPv6协议族中的NDP协议越来越被重视,而在ND协议的设计与ARP协议一样并未提供认证机制,导致网络中的主机是不可信的,从而使得针对ND协议的攻击非常容易。2ND协议介绍2.1ND报文类型ND协议定义的报文使用ICMP承载,其类型包括:路由器请求报文、路由器通告报文、邻居请求报文、邻居通告报文和重定向报文。由于ND报文中的可选字段及代码类型较多,下面描述的ND报文中的各个字段并不完全,主要描述了涉及到ND防攻击技术的选项。2.1.1路由器请求报文RSRouterSolicitationMessage主机启动后,通过RS消息向路由器发出请求,期望路由器立即发送RA消息响应。RS报文格式如图1。IPv6解决方案ND防攻击技术白皮书公开2009-5-7第4页,共16页图1路由器请求报文Type类型字段,值133Code代码字段,值0Options选项字段源链路层地址选项仅用于已编址的链路层可用于RS报文的只有源链路层地址选项,表明该报文发送者的链路层地址。如果IPv6头的源地址为未指定地址,则不能包括该选项。同时,IPv6报文头中的字段要求如下:HopLimit值255,保证是本地链路上的报文SourceAddress发送接口的本地链路地址或未指定地址DestinationAddress本地链路中所有路由器的组播地址FF02::22.1.2路由器通告报文RARouterAdvertisementMessage路由器周期性的发布RA消息,其中包括前缀和一些标志位的信息,或者以RA报文响应路由器请求报文RS。RA的报文格式如图2。012301234567890123456789012345678901+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|Type|Code|Checksum|+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|Reserved|+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|Options...+-+-+-+-+-+-+-+-IPv6解决方案ND防攻击技术白皮书公开2009-5-7第5页,共16页图2路由器通告报文Type类型字段,值134Code代码字段,值0M管理地址配置标识(Managedaddressconfiguration)0-无状态地址分配,客户端通过无状态协议(如ND)获得IPv6地址;1-有状态地址分配,客户端通过有状态协议(如DHCPv6)获得IPv6地址。O其它有状态配置标识(Otherstatefulconfiguration)0-客户端通过无状态协议(如ND)获取除地址外的其他配置信息;1-客户端通过有状态协议(如DHCPv6)获取除地址外的其他配置信息,如DNS、SIP服务器信息。协议规定,若M标记置为1,则O标记也应置为1,否则无意义。RouterLifetime缺省路由器的生命周期(单位:秒)表示发送该RA报文的路由器作为缺省路由器的生命周期。RouterLifetime最长9000秒小时,缺省值30分钟。如果该字段为0时,表示该路由器不能作为缺省路由器,但RA报文的其他信息仍然有效。ReachableTime可达时间(单位:毫秒)发送NS报文后,在得到邻居可达性确认后,认为邻居可达的时间,0表示不指定。012301234567890123456789012345678901+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|Type|Code|Checksum|+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|CurHopLimit|M|O|H|Prf|P|Rsv|RouterLifetime|+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|ReachableTime|+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|RetransTimer|+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|Options...+-+-+-+-+-+-+-+-+-+-+-+-IPv6解决方案ND防攻击技术白皮书公开2009-5-7第6页,共16页路由器在接口上通过发送RA报文,让同一链路上的所有节点都使用相同的可达时间。若ReachableTime为0,表示路由器不指定该字段参数。该值可配置,RA报文中缺省值为0。RetransTimer重传定时器(单位:毫秒)重传NS报文的时间间隔,用于邻居不可达检测和地址解析。若该值为0,表示路由器不指定该字段参数。该值可配置,RA报文缺省值为0。Options选项字段源链路层地址选项仅用于已编址的链路层。当路由器正在多个链路层地址上进行负荷分担时,要忽略该选项。MTU选项链路的可变MTU前缀信息选项用于地址自动配置的前缀信息,可包含多个路由信息选项用于主机生成缺省路由,表明前缀通过该路由器是可达的同时,IPv6报文头中的字段要求如下:SourceAddress必须是发送接口的本地链路地址DestinationAddress组播地址FF02::1,或发送RS请求报文的主机的单播地址2.1.3邻居请求报文NSNeighborSolicitationMessage主机通过NS消息可以得到邻居的链路层地址、检查邻居是否可达、重复地址检测等。图3邻居请求报文012301234567890123456789012345678901+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|Type|Code|Checksum|+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|Reserved|+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+||+TargetAddress+||+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|Options...+-+-+-+-+-+-+-+-+-+-+-+-IPv6解决方案ND防攻击技术白皮书公开2009-5-7第7页,共16页Type类型字段,值135Code代码字段,值0T