IPV6-邻居发现ND协议.ppt

上传人:豆**** 文档编号:26524825 上传时间:2022-07-18 格式:PPT 页数:48 大小:761KB
返回 下载 相关 举报
IPV6-邻居发现ND协议.ppt_第1页
第1页 / 共48页
IPV6-邻居发现ND协议.ppt_第2页
第2页 / 共48页
点击查看更多>>
资源描述

《IPV6-邻居发现ND协议.ppt》由会员分享,可在线阅读,更多相关《IPV6-邻居发现ND协议.ppt(48页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、LWF常见术语节点(node):执行 IP 协议的设备。路由器(router):一个节点,转发不是显示寻址到自己的 IP 分组。主机(host):任何不是路由器的节点。上层(upper layer):紧挨着下面的 IP 层的协议层。例如传输协议 TCP 和 UDP、控制协议 ICMP、路由协议OSPF,以及被在 IP 上“隧道化” (即,被封装进 IP)的互联网络层(或低层)协议,例如 IPX、AppleTalk 或 IP 自身。链路(link):通信设施或媒介,是紧挨着上面的 IP 层的协议层,节点能够在其上的链路层通信。例如以太网(简单或桥接)、PPP 链路、X.25、帧中继、ATM 网络

2、,以及互联网络层(或高层)“隧道”,例如 IPv4 或 IPv6 自身之上的隧道。 LWF 接口(interface): 节点附着到链路的点。邻居(neighbors):附着在相同链路的节点们。前缀(prefix):由地址的一些起始比特构成的比特串。链路层地址(link-layer address):接口的链路层标识符。例如以太网链路的 IEEE802 地址。on-link:一个地址。该地址分配给特定链路上的接口。 如果满足下述条件, 节点认为地址是 on-link: 该地址由链路的多个前缀之一覆盖(例如,由Prefix Information选项中on-link标记标识),或 邻近路由器规定

3、该地址为Redirect消息的目标,或 收到针对该(目标)地址的Neighbor Advertisement消息,或 从该地址收到任何Neighbor Discovery消息。LWFoff-link:与“on-link”相反;它也是一个地址,该地址没有分配给特定链路上的任何接口。最长前缀匹配(longest prefix match):在覆盖目标地址的一组前缀中确定一个前缀的处理。如果前缀中的所有比特匹配目标地址的最左边比特,目标地址由该前缀覆盖。当多个前缀覆盖一个地址时,最长前缀是那个匹配的前缀。可达性(reachability):在任何情况下通向邻居的单向“转发”路径正在正常运行。尤其是,

4、是否发送到邻居的分组正在达到邻居的 IP 层,以及正在被接收 IP 层适当处理。对于邻近路由器,可达性意味着由节点的 IP 层发送的分组被交付到该路由器的 IP 层,并且该路由器的确正在转发分组(即,它被配置为路由器,而不是主机)。对于主机,可达性意味着由节点的 IP 层发送的分组正在交付到邻居主机的 IP 层。LWF链路类型不同链路层有不同特性.与 Neighbor Discovery 有关的链路特性是: 多播能力(multicast capable):一条链路,它在链路层上支持一种本地机制,发送分组到所有邻居(即,广播),或所有邻居的一个子集。点对点(point-to-point):一条链

5、路,它仅连接两个接口。假定点对点链路有多播能力和链路本地地址。非广播多址(non-broadcast multi-access, NBMA):一条链路,有多于两个接口附着到它,但是该链路不支持多播或广播的本地形式(例如,X.25、ATM、帧中继等)。共享介质(shared media):一条链路, 它允许众多节点间直接通信,但是附着在共享介质上的节点们按这样一种方法配置:对于所有 on-link 目的地,它们没有完整的前缀消息。即,在 IP 层,在同一链路上的节点们或许不知道它们彼此是邻居;默认情况,它们通过路由器通信。例如大型公共数据网络,如 SMDS 和 B-ISDN。也称为“大型云”。参

6、阅SH-MEDIA。可变MTU(variable MTU):一条链路,它没有公认的MTU(例如,EEE 802.5令牌环)。许多链路(例如,以太网)有由链路层协议或由特定的文件定义的标准MTU,描述如何在链路层上运行IP。非对称可达性(asymmetric reachability):一条链路,在那里,非折返可达性,和/或非传递可达性是正常操作的一部分。(非折返可达性意味着分组可从A到B的,但是分组不能从B到A。非传递可达性意味着分组可从A到B,并且分组可从B到C,但是分组不能从A到C。)许多无线链路具有这种性质。LWF地址分类所有节点多播地址(all-nodes multicast addr

7、ess): 到所有节点的链路本地范围地址,FF02:1。所有路由器多播地址(all-routers multicast address): 到所有路由器的链路本地范围地址,FF02:2。 被请求-节点多播地址(solicited-node multicast address):FF02:1:FFXX:XXXX24 位LWF 链路本地地址(link-local address):(FE80:/10)站点本地地址 FEC0:/10唯一本地地址 FC00:1/7未指定地址(unspecified address): 保留地址值,它表示没有这个地址(例如,地址未知)。它决不能用于目的地地址,但是可用于

8、源地址,如果发送者(还)不知道它自己的地址(例如,在无状态地址自动配置期间验证地址没有被使用时ADDRCONF)。未指定地址的值为 0:0:0:0:0:0:0:0。LWFICMPv6报文格式报文格式Type值决定了报文所属的类别 0 -127:错误报文 128-255:信息报文ICMPv6 error messages:1 Destination Unreachable目的不可达 2 Packet Too Big 数据包超长3 Time Exceeded 超时4 Parameter Problem 参数问题ICMPv6 informational messages: Echo Request

9、回送请求128 Echo Reply 回送应答LWF邻居发现(Neighbor Discovery)协议 IPv6的邻居发现(Neighbor Discovery)协议结合了IPv4中的地址解析协议(Address Resolution Protocol ARP)和ICMP的路由器发现和重定向。 IPv6节点将邻居发现用于下列目的: 确定同一链路节点的第2层地址; 找到可以转发它们的数据包的邻近路由器 随时跟踪哪些邻居可达,哪些不可达并且检测有改变的链路层地址。LWFND协议功能邻居发现协议邻居发现协议地址解析地址解析(NUD)无状态自动配置无状态自动配置路由器重定向路由器重定向路由器发现路由

10、器发现重复地址检测重复地址检测(DAD)前缀重新编址前缀重新编址LWFIPv6邻居发现(ND)机制邻居发现使用 ICMPv6协议 包括 IPv6 报头, ICMPv6 报头, 邻居发现(ND)报头, ND选项ND定义了5种ICMPv6报文类型 1 路由器请求Router solicitation (ICMPv6 type 133)2 路由器公告Router advertisement (ICMPv6 type 134)3 邻居请求Neighbor solicitation (ICMPv6 type 135)4 邻居公告Neighbor advertisement (ICMPv6 type 13

11、6)5 重定向Redirect (ICMPV6 type 137)LWFIPv6的ND相对于对于IPv4协议的改进邻居不可达检测是基础协议的一部分,邻居不可达检测在路由器出错或链路接口改变的情况下,改善了数据包的传输。路由器通告和ICMP重定向使用本地链路地址来识别路由器。邻居发现协议被用来检测一个链路上重复的IP地址。现在路由器发现是基础协议集的一部分,IPv4机制则需要从路由表中获取信息。路由器通告数据包中包含了路由器的链路层地址。收到路由器通告的节点无需再发出ARP请求来获取该路由器接口的链路层地址。路由器通告数据包包含一个链路的前缀(子网信息),再也不用配置子网掩码。邻居发现提供了一种

12、易于对网络进行重新编号的机制,引入新的前缀和地址。路由器通告使得无状态地址自动配置变为可能,可以通知何时应用有状态地址配置。一个链路可以分配多个前缀。默认,主机从路由器得知所有的前缀,但路由器也可以配置为不通告前缀,此时路由器接收到含未通告的前缀的数据包,会发布ICMP重定向消息。标准身份验证和安全机制可应用于邻居发现。LWFIPv6地址结构地址结构IPv6地址地址 = 前缀前缀 + 接口标识接口标识 前缀前缀:相当于v4地址中的网络ID 接口标识接口标识:相当于v4地址中的主机ID2001:A304:6101:1:E0:F726:4E582001:A304:6101:1E0:F726:4E5

13、8前缀前缀接口标识接口标识LWFIPv6地址配置方法分类地址配置方法分类手工配置有状态地址自动配置(DHCPv6)无状态地址自动配置(ND协议)LWF无状态地址自动配置路由发现和前缀获得主机发送Router Solicitation报文路由器回应Router Advertisement报文主机获得前缀及其它参数RS报文报文RA报文报文1:1/64节点请求路由通告LWF路由器请求和公告2. RA1. RS1ICMP Type = 133 (RS)Src = link-local address (FE80:/10)Dst = all-routers multicast address (FF02

14、:2)Query = please send RA2ICMP Type = 134 (RA)Src = link-local address (FE80:/10)Dst = all-nodes multicast address (FF02:1)Data = options, subnet prefix, lifetime, autoconfig flagLWF无状态地址自动配置接口ID生成48位位MAC地址地址64位接口位接口ID将将48比特的比特的MAC地址转化为地址转化为64比特的接口比特的接口IDMAC地址的唯一性保证了接口地址的唯一性保证了接口ID的唯一性的唯一性设备自动生成,不需人

15、为干预设备自动生成,不需人为干预LWFCMTS中无状态地址自动配置在ip-bundle下配置生效C175-40G(ip-bundle 2)#ipv6 address 2000:172:158:1:1/64 autoconfig C175-40G(ip-bundle 2)#ipv6 address 2000:172:158:1:1/64 no-onlink C175-40G(ip-bundle 2)#ipv6 address 2000:172:158:1:1/64 autoconfig no-onlink 注:其中可单独配置no-onlink,autoconfig,也可以autoconfig与n

16、o-onlink搭配使用。LWF在IPv6网络中,路由器以一定的时间间隔发送路由通告消息,便利主机获得IPv6前缀,但是,当主机产生了链路地址后,主机就会发送路由器请求消息Router Solicitation,主机将RouterSolicitation消息发送到ALL-ROUTERS多播组,典型的源地址是一个接口的链路本地地址。Router Solicitation消息促使路由器立即发送Router-Advertisement消息。路由器周期性发送路由通告LWFLWF Router Solicitation消息格式 -主机发送Router Solicitations以便督促路由器尽快生成Ro

17、uter Advertisements。Router Solicitation消息格式如图1所示。LWF Router Advertisement消息格式-路由器周期地发出Router Advertisement消息,或因响应Router Solicitations而发送Router Advertisement消息。 Router Advertisement消息格式如图2所示。LWFCMTS与RFC的RA格式对比RFC定义的RA格式CMTS上RA格式LWFCMTS里RA参数的设置C158-C10G(conf-if-mac 10)#router-advertisement cur-hop-lim

18、it hop limitenable enable router advertisements, default enablelife-time life time of the routerlink-mtu link MTU sizemanaged-flag managed address config flag.max-advert-interval max advert interval min-advert-interval min advert interval multicast-only multicast response to router-solicitationother

19、-config-flag other stateful config flagprefix prefix optionreachable-time router reachable timeretransmit-time retransmit timer field in router advertrow-state row statusLWF Neighbor Solicitation消息格式节点发送Neighbor Solicitations消息,请求目标节点的链路层地址,同时也提供它们自己的链路层地址给目标节点。当节点需要解析地址时,多播发送Neighbor Solicitations消

20、息;当节点搜索以便验证邻居的可达性时,单播发送Neighbor Solicitations消息。Neighbor Solicitation消息格式如图3所示。LWFCMTS与RFC的NS格式对比RFC定义的NS格式CMTS上的NS格式LWF Neighbor Advertisement消息格式节点发送Neighbor Advertisements以响应Neighbor Solicitations,发送非请求Neighbor Advertisements以便(非可靠)快速传播新信息。Neighbor Advertisement消息格式如图4所示。3个标志: R路由器标志为1,发送方为路由器; S

21、请求标志为1,消息为响应邻居请求发出; O覆盖标志(1)表示通告消息中的信息应当覆盖现有邻居缓存记录,并且更新所有缓存器中的链路层地址。LWFCMTS与RFC的NA格式对比RFC定义的NA格式CMTS上的NA格式LWF Redirect消息格式发送Redirect分组的路由器通知主机,在前往目的地的路径上有一个较好的第一跳节点。主机能够被重定向到较好的第一跳路由器,但是也能够用重定向通知目的地事实上是邻居。后者由设置ICMP Target Address等于ICMP Destination Address实现。Redirect消息格式如图5所示。LWFDuplicate Address Det

22、ection(DAD) -重复地址检测 节点在发送路由器公告(RA)之前要获得唯一的本地链路地址。 IPv6自动配置要求在使用地址之前进行地址重复检测(DAD)。 标准DAD花费较长时间才能完成,因而引入了“乐观的DAD”(RFC 4429) 注:CMTS中的DAD功能开启是在ipbundle下使能的:C158-C10G(ip-bundle 10)#ipv6 dad enable (DAD默认是开启的)LWF标准DAD过程(1) 在发送邻居请求(NS)前,接口必须加入全节点组播地址(FF02:1)和生成IPv6地址的请求节点组播地址(solicited-node multicast addre

23、ss),即接收目的地址为这些IPv6地址的分组。(2)生成IPv6地址后随机延时一段时间后开始发送用于DAD的邻居请求(NS)消息。邻居请求(NS)消息的源地址为:,目的地址为临时单播地址的请求节点组播地址。(3) 在DAD过程中地址处于Tentative状态(“暂时的”)(IFA_F_TENTATIVE)。在完成DAD过程后,tenativeAddr将会被作为“首选的”地址(PreferedAddr)。若发现了重复地址,则该地址变为废弃的地址(deprecatedAddr)。 背后原理:未确定唯一性的地址不能使用,即不能接收目的地址或者发送源地址为此地址的分组,但是与DAD相关的邻居公告(N

24、A)消息除外。(4) 以下参数值是Linux操作系统下的缺省值,这些参数可根据需要配置: 发送邻居请求(NS)的个数n=1 发送间隔Tret=1000msLWF地址冲突处理(1) 当节点收到目的地址为其正在做DAD检测地址的邻居请求(NS)消息时:如果请求的源地址类型为IPV6_ADDR_ANY(全0地址:),则节点从接口上删除这个地址(DAD检测失败),否则节点不处理此NS消息(2) 当节点收到目的地址为其正在做DAD检测地址的邻居公告(NA)时,则节点从接口上删除这个地址(DAD检测失败)(3) 如果节点为某个IPv6地址完成DAD检测后,收到来自其它节点发送的目的地址为此IPv6地址的用

25、作DAD检测的邻居请求(NS)消息(此时该请求的源地址为IPV6_ADDR_ANY),则节点应该向全节点地址(ff02:1)发送邻居公告(NA)。LWF主机概念性数据结构主机需要维护下述每个接口信息:(RFC P20)Neighbor Cache一组单个邻居(最近有流量发送到这些邻居)条目。Destination Cache一组关于最近有流量发送去的目的地的条目。Prefix List定义了一组on-link地址的前缀列表。Prefix List条目根据在Router Advertisements中收到的信息生成。每个条目有关联的失效计时器值(从此通告中抽取),用于当前缀变得无效时终止前缀。D

26、efault Router List路由器列表,分组将发送到这些路由器。LWF概念性发送算法 节点向目的地发送数据包时,使用目的地缓存、前缀列表、默认路由器列表确定合适的下一跳,然后路由器查询邻居缓存确定邻居的链路层地址。 IPv6单播地址下一跳确定的操作方法是:发送者使用前缀列表中的前缀进行最长前缀匹配,确定数据包的目的地是在连接的还是非连接的。如果下一跳是在连接的,下一跳地址就和目的地址相同,否则发送者从默认路由器列表中选择下一跳。LWF地址解析 通过邻接点请求报文(NS)和邻接点公告报文(NA)的交互来解析链路层地址 发送主机在接口上发送组播NS报文,该报文的目的地址为目标IP地址所对应

27、的请求节点组播地址(Solicited-node),在其中也包含了自己的链路层地址 目标主机收到NS报文后,就会了解到发送主机的IP地址和相应链路层地址 目标主机向源发送主机发送一个邻接点公告报文(NA),该报文中包含自己的链路层地址LWF地址解析示意图LWF邻居不可到达性探测(NUD) Neighbor Unreachability Detection 用于主机和相邻节点间的所有路径,包括主机到主机通信,主机到路由器通信和路由器到主机通信。Neighbor Unreachability Detection 也可用于路由器之间,但是如果相同的机制存在(例如作为路由协议的一部分),对此不作要求。

28、 注:(CMTS主要关注的是RF端邻居的不可达,Test group中做了详细的测试)LWF邻居缓存和目的地缓存 邻居缓存:邻居缓存维护着一份最近有过通信的邻居的列表。 按照他们的单播IP地址列出,每条记录包含了有关邻居的链路层地址的信息,以及一个标志(邻居是路由器还是主机)。 记录还包含队列中数据包的信息,邻居可达性信息,以及下次邻居不可达性检测时间。 目的地缓存:用于维护最近有过通信的目的地的信息,包括本地目的地和远程目的地。 邻居缓存可以被看作是目的地缓存信息的子集。 远程通信时,列出了下一跳路由器的地址。 包含MTU大小和往返定时器附加信息。LWFNeighbor Cache 条目状态

29、Neighbor Cache 条目可处于以下 5 种状态之一:INCOMPLETE关于该条目的地址解析正在被执行。 具体来说, Neighbor Solicitation 已经发送到目标的请求-节点多播地址,但是相应的 Neighbor Advertisement 还没有收到。REACHABLE在最后的 ReachableTime 毫秒内收到肯定确认,该确认指出到邻居的转发路径正常运行。在 REACHABLE 状态期间,发送分组时不发生特定操作。STALE自从收到最后一个表示转发路径正常运行的肯定确认后,超过ReachableTime毫秒时间已经过去。 在 STALE 状态期间, 直到分组被发

30、送为止没有操作发生。进入 STALE 状态,依赖于收到非请求 Neighbor Discovery 消息,该消息更新了缓存的链路层地址。收到这样的消息不能确认可达性,进入 STALE 状态确保可达性被迅速检验,如果该条目实际上正在被使用。 然而,直到该条目实际被使用为止可达性实际上没有被检验。LWFDELAY自从收到最后一个表明转发路径正常运行的肯定确认, 超过 ReachableTime 毫秒时间已经过去, 并且在最后 DELAY_FIRST_PROBE_TIME 秒内发送了分组。如果在进入 DELAY 状态后的 DELAY_FIRST_PROBE_TIME 秒内没有收到可达性确认,发送 N

31、eighbor Solicitation 并改变状态到 PROBE。DELAY 状态是一种优化,它适用于在下述场景给上层协议一些附加时间,以便提供可达性确认。这些场景是指,由于最近流量缺乏,自最近的确认以来ReachableTime 毫秒时间已经过去。没有这个优化,在流量间歇之后,当打开 TCP 连接时会进行初始化探测,即使随后的三次握手几乎立即提供可达性确认。PROBE通过每 RetransTimer 毫秒重复发送 Neighbor Solicitations 直到收到可达性确认,来主动地搜索可达性确认。LWFICMP重定向消息(ICMP Redirect) 路由器发出ICMP重定向消息用来

32、告诉节点去往给定目的地的路径上更优的第一跳节点。 重定向消息可告知节点使用的目的地实际上是同一个链路上的一个邻居,而不是远程子网上的一个节点。 IP报头中的源地址必须是发送消息的接口的本地链路地址,而目的地址是触发重定向消息的数据包的源地址。 跳数是255LWFICMP重定向消息LWFTarget Address(目标地址)包含了路径中更优的下一跳接口的本地链路地址。Destination Address(目的地址)重定向的目的地址,用它来到达目的地址。如果两个地址相同,目的地就是一个邻居而不是远程节点Options包含了目标(最佳下一条路由器)的链路层地址LWFIPv6的重定向过程 IPv6

33、的重定向过程包含以下步骤: 起始主机向它的默认路由器转发单播数据包。 路由器处理数据包,并且注意到起始主机的地址是一个邻节点。另外,它也注意到起始主机的地址和下一跳地址都在同一链路上。 路由器向起始主机发出重定向报文。在重定向报文中的目标地址字段的值是用做新的下一跳地址的节点的地址,起始主机应该把后续的发往目标的数据包首先发给该节点。 路由器将数据包转发到适当的下一跳地址,如果需要获得下一跳的链路层地址,则路由器会使用地址解析。LWF协议常数路由器常数:MAX_INITIAL_RTR_ADVERT_INTERVAL 16秒MAX_INITIAL_RTR_ADVERTISEMENTS 3次发送M

34、AX_FINAL_RTR_ADVERTISEMENTS 3次发送MIN_DELAY_BETWEEN_RAS 3秒MAX_RA_DELAY_TIME 0.5秒主机常数:MAX_RTR_SOLICITATION_DELAY 1秒RTR_SOLICITATION_INTERVAL 4秒MAX_RTR_SOLICITATIONS 3 次发送节点常数:MAX_MULTICAST_SOLICIT 3次发送MAX_UNICAST_SOLICIT 3次发送 MAX_ANYCAST_DELAY_TIME 1秒MAX_NEIGHBOR_ADVERTISEMENT 3 次发送REACHABLE_TIME 30,00

35、0毫秒RETRANS_TIMER 1,000毫秒DELAY_FIRST_PROBE_TIME 5秒MIN_RANDOM_FACTOR .5MAX_RANDOM_FACTOR 1.5LWFNDP SECURITY ND 易遭受一些攻击,这些攻击能够使 IP 分组流动到不希望到达的位置。这类攻击能够用于引起拒绝服务,而且能让节点截获和选择性地修改分组的目的地为其他节点。为应对NDP协议的安全威胁,这里提供了一种扩展协议-SEND协议,针对NDP协议中的各个安全问题提供安全保护机制。(截至到目前的版本,CMTS还不支持该机制所做的认证保护)LWF总结:总结: 邻居发现协议(NDP)解决了很多与单一链路上的节点有关的问题,并提供了路由器发现、地址自动配置以及邻居地址解析等功能。对于IPV4来说需要多种协议(包括DHCP、IGMP、路由器发现、ARP等)才能提供的功能,而NDP利用ICMPv6即可完成。这些功能作为IPv6的一个必须组件整合到了ICMPv6中,体现出了IPv6相对于IPv4的先进性。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁