IPv6技术培训课件.pptx
IPv6 技技术术培培训专训专题题培训目的通过此次培训,你可以了解IPv6地址结构掌握IPv6地址配置技术掌握IPv6邻居发现原理掌握OSPFv3路由协议了解IPv6过渡技术课程内容第一章第一章 IPv6地址格式及分地址格式及分类类第二章第二章 IPv6邻邻居居发现发现及地址配置及地址配置 第第三章三章OSPFv3第四章第四章 IPv6过过渡技渡技术术介介绍绍IPv6地址格式IPv6地址=前缀+接口标识前缀:相当于v4地址中的网络ID接口标识:相当于v4地址中的主机ID128位长,用冒号将128比特分割成8个16比特的部分,每个部分包括4 位的16进制数字。地址前缀长度用“/+数字”来表示举例:3ffe:3700:1100:0001:d9e6:0b9d:14c6:45ee/64IPv6地址缩写每个16位的分段中开头的零可以省略一个或多个相邻的全零分段可以用双冒号:表示双冒号只能使用一次以下是同一个地址不同表示法的例子:0001:0123:0000:0000:0000:ABCD:0000:0001/961:123:0:0:0:ABCD:0:1/961:123:ABCD:0:1/96IPv6地址分类单播地址(Unicast Address)组播地址(Multicast Address)任播地址(Anycast Address)特殊地址地址类型二进制前缀IPv6标识未指定00.0(128 bits):/128环回地址00.1(128 bits):1/128组播11111111FF00:/8链路本地地址1111111010FE80:/10站点本地地址1111111011FEC0:/10全局单播(其他)单播地址识别单一接口发送到单播地址的数据包被传输到这个单播地址对应的接口IPv6单播地址分类(根据地址范围):全局单播地址链路本地地址站点本地地址例 2001:A304:6101:1:E0:F726:4E58 例 FE80:E0:F726:4E58例 FEC0:E0:F726:4E58全局单播地址全球唯一地址带有全球地址的数据包可被转发到全球网络的任何部分(理想情况)子网子网ID16位位64 位位 接口接口ID全局全局单单播地址播地址层层次次结结构构45位位001全局路由前全局路由前缀缀链路本地地址用于单个链路,可进行自动地址配置、邻居发现或在没有路由器时 进行单个链接编址带有链路-本地源或目的地址的数据包不转发到其它链路链链路本地地址路本地地址结结构构0接口接口ID1111111010541064站点本地地址用于单个站点内部编址带有站点-本地源或目的地址的数据包不转发到其它站点相当于V4网络中的私有地址(RFC 1918)站点本地地址站点本地地址结结构构0接口接口ID1111111011105464RFC3513规定,IANA对IPv6全球单播地址的空间分配权限只局限于以二进制001开头的地址范围。RFC3587虽废除了RFC2374中全球可聚集单播地址的前缀格式001,但同时又指出,只有001前缀格式供IANA分配,其余的全球单播地址空间(大约是IPv6地址空间的85%)要保留下来,以备将来定义和使用,暂时不再由IANA分配。所以,由IANA代理、与RFC3177中的建议相一致的2000/3前缀的全球单播地址就成了如图3所示的格式。在IANA有权分配的地址空间中,前三个比特是固定的,29比特地址空间分配给各LIR,LIR可将后面的16比特地址空间分配给客户站点。这样,客户站点前缀即为48比 特,并具有16比特的子网划分空间。IPv6的地址空间管理是按规定的等级结构在全球范围内分配,即IANA-区域注册机构RIR(-国家注册机构NIR)-ISP/本地注册机 构LIR-最终用户(或ISP)IPv6地址分配下面的格式是IANA有权分配的全球单播地址格式,剩余的保留将来定义IPv6地址空间的最小地址分配块为32比特IPv6的地址空间管理是按规定的等级结构在全球范围内分配,即IANA-区域注册机构RIR-国家注册机构NIR-ISP/本地注册机构LIR-最终用户(或ISP)每个用户可以获得48比特地址前缀,此处用户并非个人用户,而是相当于一所大学用户只有一个网络和子网时,可以得到64bits地址前缀 移动设备仅有一台联网设备时,可以分配128bits地址前缀 拨号345166400129bits16bits16bits64bitsLIR/32接口ID客户站点/48子网/64设备/128接口ID对链路来说是唯一的可动态获得IEEE采用MAC-to-EUI-64转换其它链路采用其它的自动方法可用来形成链路-本地地址可用来形成带有无状态自动配置功能的全球地址EUI-64规范将48比特的MAC地址转化为64比特的接口ID由设备自动生成MAC唯一,所以接口ID也唯一步骤:在MAC地址的公司ID(高24位)和节点ID(低24位)中间插入FFFE将MAC地址中g比特位的前一位求反32位的组ID受限于MAC地址,因为V6的组播MAC地址是由3333+32位的组ID构成的组播地址Flags前3位设为0最后一位定义地址类型0=固定或众所周知1=本地分配或短期Scope表示组播组的范围Group ID组播组IDV6组组播播M A C 地址地址3333+组播组ID0预留1节点本地范围2链路本地范围5站点本地范围8企业本地范围E全局范围F预留预定义的组播地址IPv6预定义组播地址IPv4预定义组播地址组播组节点本地范围FF01:1224.0.0.1所有节点地址FF01:2224.0.0.2所有路由器地址链路本地范围FF02:1224.0.0.1所有节点地址FF02:2224.0.0.2所有路由器地址FF02:5224.0.0.5所有OSPF路由器FF02:6224.0.0.6所有OSPF指派路由器FF02:9224.0.0.9所有RIP路由器FF02:13224.0.0.13所有PIM路由器站点本地范围FF05:2224.0.0.2所有路由器全局FF0 x:101224.0.1.1NTP协议Solicited-Node组播地址IPv6中特有的中特有的组组播地播地址址每个节点必须为分配给它的每个单播和任播地址加入的一个组播地址,用于 DAD地址重复检测(RFC2373)Solicited-Node组组播地址生成播地址生成过过程程接口ID的后24位:XX:XXXX 前 缀 FF02:0:0:0:0:1:FF FF02:0:0:0:0:1:FFXX:XXXX例:主机的MAC地址为 00-02-b3-1e-83-29 IPv6 地 址 为 fe80:0202:b3ff:fe1e:8329 Solicited-Node组播地址:ff02:1:ff1e:8329IPv6地址新类型 任播(Anycast)被分配给多个接口,仅用于路由器发往任播地址的数据包被路由转发给分配了任播地址的接口 中距离最近的一个同组播地址相同,不能做为源地址使用Who s Gateway?Im nearest one.兼容地址用于自动隧道机制映射地址用于SIIT特殊地址未指定地址(Unspecified Address)0:0:0:0:0:0:0:0=:/128Loopback 地址0:0:0:0:0:0:0:1=:1/128内嵌内嵌IPv4地址的地址的IPv6地址地址用于与传统网络之间的互联互通,以使IPv4网络和IPv6网络之间能进行无缝通信,这 里使用的IPv4地址必须是全球唯一IPv4单播地址。IPv4兼容的IPv6 地址IPv4映射的IPv6地址节点所需要的地址主机主机节节点需要如下地址来点需要如下地址来标识标识自己自己Link-Local地址(必须地址)手工或自动配置的单播地址(可选地址)loopback地址(必须地址)“All-Nodes”和“Solicited-Node”及其它所属于的组播地址(必须地址)路由器路由器节节点除了以上地址,点除了以上地址,还还要有要有路由器上配置的任播地址(可选地址)“All-Routers”组播地址(必须地址)课程内容第一章第一章 IPv6地址格式及分地址格式及分类类第二章第二章 IPv6邻邻居居发现发现及地址配置及地址配置 第第三章三章OSPFv3第四章第四章 IPv6过过渡技渡技术术介介绍绍邻居发现协议的作用RFC2461中定义了邻居发现协议发现邻居物理地址(代替IPv4使用的ARP)路由器发现地址冲突检测(Duplicate Address Detect)检验邻居的可达性和状态自动地址配置 重定向邻居发现协议报文基于ICMPv6报文实现其功能路由器请求(Router Solicitation)路由器通告(Router Advertisement)邻居请求(Neighbor Solicitation)邻居通告(Neighbor Advertisement)重定向(Redirect)Router Solicitation报文RS是主机发送的报文,触发路由器迅速产生路由器 通告。回应报文为RA报文报文结构如下:Router Solicitation报文结构IP 部分源地址:接口的link-local地址或者unspecified(全0)。目的地址:全部路由器组播地址FF02:2跳数:255ICMP部分Type=133 Code=0选项部分包含了发送者的link-layer地址Router Advertisement报文由路由器发出路由器周期性地发送路由器通告消息,或者对路由 器请求作出响应报文结构如下:Router Advertisement报文结构IP部分源地址:发送者Link-local地址目的地址:全部节点组播地址FF02:1或发送RS的主机单播地址 跳数:255ICMP部分Type=134 Code=0Cur hop limit=主机发送的数据包的默认跳数 选项部分包含了发送者的link-layer地址 选项部分包含了MTU、地址前缀Router Lifetime,表示存在于主机default router缓存中的时间 Reachable Time,表示存在于主机邻居缓存中的时间Retrans Timer,表示进行邻居检测时的重新发送间隔Neighbor Solicitation报文用途:地址解析地址重复检测 邻居状态跟踪报文结构如下:Neighbor Solicitation报文结构IP部分用作地址解析:源地址:发送者IPv6地址目的地址:目的地的Solicited-Node组播地 址用作邻居状态跟踪:源地址:发送者IPv6地址目的地址:目的地的单播地址 用作DAD:源地址:unspecified地址“:”目的地址:目的地的Solicited-Node组播地 址跳数:255ICMP部分Type=135 Code=0Target address地址解析:目的IPv6地址可达性检测:目的IPv6地址DAD:需要检测的地址Neighbor Advertisement报文回复NS报文,通告链路层地址的改变报文结构如下:Neighbor Advertisement报文结构IP部分源地址:发送者IPv6地址目的地址:全部节点组播地址FF02:1(DAD用)或发送NS的主机单播地址(回应地址解析/邻居状态检测)跳数:255ICMP部分Type=136 Code=0Redirect报文结构IP部分源地址:接口的链路本地地址目的地址:触发重定向的数据包的源地址 跳数:255ICMP部分Type=136 Code=0Target:是重定向的地址邻居发现协议地址解析地址解析在三层完成,不同的二层介质可以采用相同 的地址解析协议可以使用三层的安全机制(例如IPSec)避免地址解 析攻击使用组播方式发送请求报文,减少了二层网络的性能 压力邻居发现协议地址解析使用两种ICMPv6报文完成交互过程邻居请求NS邻居通告NA以太网报头目的MAC:组播MAC地址IPv6报头源地址:A目的地址:B的请求节点多播地址ICMP类型135NS报文头目标地址:BNS选项A的MAC地址我要找B,它在哪?我在这呢以太网报头目的MAC:A的MAC地址IPv6报头源地址:B 目的地址:AICMP类型136NA报文头目标地址:BNA选项B的MAC地址N SN AAB邻居发现协议重复地址检测(DAD)重复地址检测确保网络中无两个相同的单播地址所有地址都需要做DAD使用NS和NA完成DAD交互过程若发现有地址重复随机生成地址:不安排给接口链路本地地址:将接口置于不可用状态重复地址检测过程地址在配置给接口前称为“临时地址”首先加入到all-nodes组播地址和solicited-node组播地 址(临时地址所在的组播)周期性的发出Neighbor Solicitation报文源地址:unspecified地址目的地址:请求节点组播地址Target address:临时地址以主机A进行DAD为例,假设网络上有一台主机B使用了地址2000:1,主机A通过自动配置也产生了一个地址2000:1,那么主机A在使用这个地址之前需要进行重复地址检测DAD。首先主机A发送一个NS,源地址为:,目的地址为FF02:1:FF00:1(这是2000:1的被请求节点组播组Solicited-Node Multicast),Target Address为2000:1,它是在寻求是否有人 使用2000:1这个地址。当B接收到这个NS之后,就会回应一个NA,源地址为2000:1,目的地址为FF02:1(所有节点组播地址),Target Address为2000:1。当主机A接收到NA之后,明白网络中 已经有人使用2000:1这个地址,所以将通过其它方式获取新的地址(例如管理员重新配置等)。如果网络中没有使用2000:1的主机,那么主机发送一定数量的NS之后就会开始使用2000:1了。重复地址检测过程NS和NA完成DAD交互的过程2000:1新配置地址 2000:1以太网报头目的MAC地址:请求节点组播MAC地址IPv6报头源地址::目的地址:FF02:1:FF00:1ICMP类型135NS报头目标地址:2000:1N SN A以太网报头目的MAC地址:所有节点组播MAC地址IPv6报头源地址:2000:1 目的地址:FF02:1ICMP类型136NA报头目标地址:2000:1XDuplicated!邻居发现协议邻居状态跟踪邻居状态有5种INCOMPLETE 未完成REACHABLE 可达STALE 陈旧DELAY 延迟PROBE 探查邻居发现协议邻居状态跟踪IncompleteReachabl eD el ayStal eProbeEm pty1.A 先先发发送送NS,并生成并生成缓缓存条目,状存条目,状态为态为 Incomplete2.若若B回复回复NA,则则 Incomplete-Reachable,否否则则10s后后Incomplete-Empty,即即删删除条目除条目3.经过经过ReachableTime(默默认认30s),B的条目状的条目状态态Reachable-Stale4.或者在或者在Reachable状状态态,收到,收到B的非的非请请求求NA,且且链链路路层层地址不同,地址不同,则马则马上上-Stale5.在在Stale状状态态若若A 要向要向B发发送数据,送数据,则则Stale-Delay,并并发发送送NS请请求。求。6.在在Delay_First_Probe_Time(默默认认5秒秒)内内,Delay-Probe,若有若有N A 应应答,答,则则Delay-Reachable7.在在Probe状状态态,每隔,每隔RetransTimer(默默认认1秒秒)发发送送单单播播NS,发发送送MAX_UNICAST_SOLICIT个后再等个后再等RestransTimer,有有应应答答 则则-Reachable,否否则进则进入入Empty,删删除表除表项项一个例子:一个例子:节节点点A 要要访问节访问节点点B,A 的的缓缓存中无存中无B的条目,下的条目,下图图是是邻邻居状居状态态机的机的变变化化邻居发现协议路由器发现链路上的路由器会定期的发送RA收到RA的主机将加入默认路由器列表中收到RA的路由器将检查RA内容的一致性IPv6报头源地址:路由器链路本地地址目的地址:所有节点组播地址(FF02:1)ICMP类型134RA报头当前跳限制、标志位、路由器生存期、可达性和重传定时器RA选项路由器链路层地址、MTU、前缀RARA邻居发现协议路由器发现主机初始化时发送RS,路由器回应RARSRA邻居发现协议重定向功能当网关知道更好的转发路径时,会以重定向报文的方 式告知主机R2R1RedirectA应该把R2直接作为到达B的下一跳IPv6报头源地址:R1 目的地址:AICMP类型137重定向报文头下一跳地址:R2 目标地址:BABIPv6地址配置技术自动配置无状态自动配置(stateless autoconfiguration)有状态自动配置(stateful autoconfiguration)手工配置建议用于服务器和重要网络设备地址自动配置技术的作用自动配置技术能够完成以下功能:赋予主机自己的地址参数地址前缀 接口ID赋予主机其它的相关参数路由器地址 跳数MTU地址自动配置过程接口初始化接口产生临时地址对“临时”地址进行地址重复检测(DAD)接口产生link-local地址,具备IP连接能力决定采用何种自动配置技术由Router Advertisement报文及主机配置来决定 无状态自动配置(stateless autoconfiguration)有状态自动配置(stateful autoconfiguration)获得全局地址无状态自动配置技术特点IPv6的标准功能RFC2462无需进行手工配置即插即用性减轻网络管理的负担对主机、路由器均可进行自动配置 可配置多个地址进行网络无缝迁移主机无状态自动配置过程主机发送Router Solicitation报文路由器回应Router Advertisement报文主机获得前缀及其它参数IPv6地址地址=1:A BCDLink-local地址地址=FE80:ABCD源:源:FE80:A BCDRS报报文文目的:目的:FF02:2RA 报报文文(前前缀为缀为1:)源:源:FE80:EFG H 目 的:目 的:FF02:1Link-local地址地址=FE80:EFGHIPv6地址地址=1:1主机获得前缀及其它参数过程当存在以下情况时忽略RA发送的前缀:RA报文选项中的“auto”未置位前缀与已有地址前缀重复(包括link-local地址)RA报文选项中的“preferred lifetime”时间大于“valid lifetime”前缀长度与接口ID长度之和不等于128位(大于或小于)除以上情况外,主机获得前缀同时也获得一些相关时间参数:“preferred lifetime”发起新通讯的有效时间“valid lifetime”原有通讯的有效时间主机会周期性的收到RA报文,并据此报文来更新自己的时间 参数临时地址:不能用来建立连接,此阶段正在进行DAD优选地址:可以用来建立所有i连接不推荐的地址:可以用来维持旧的连接,但是不能用来建立新的连接Preferred lifetime超时后优选地址会成为不推荐的地址 V alid lifetime后地址不可用主机获得前缀及其它参数过程主机会保持获得的前缀,但保持时间依据如下规则:“preferred lifetime”时间到期后,主机可继续在原有的通讯中使用此地址,但不能在新的通讯中使用“valid lifetime”到期后,此地址为无效地址配置的一致性:可同时使用无状态及有状态两种配置方式除了前缀外,其它参数(MTU、HOP等)由最近收到的配置消息为准主机获得前缀及其它参数过程同时使用无状态及有状态两种自动配置方式:管理地址配置标志:MFLAG 其他状态配置标志:OFLAG主机默认使用无状态地址自动配置。当MFLAG有效时,主机使 用无状态地址自动配置以外,还使用有状态协议(DHCP6)进 行地址自动配置。当OFLAG有效时,主机使用有状态协议(DHCP6)对其他非地址信息进行自动配置。有状态自动配置DHCPv6同IPv4网络中的DHCP类似局域网DHCPv6 Server手工配置对路由器和重要设备推荐使用手工配置我为什么访问 不了服务器呢?噢,它刚更 换了一块网 卡!课程内容第一章第一章 IPv6地址格式及分地址格式及分类类第二章第二章 IPv6邻邻居居发现发现及地址配置及地址配置 第第三章三章OSPFv3第四章第四章 IPv6过过渡技渡技术术介介绍绍OSPF(Open Shortest Path First)Version 2标准最早发布于1991年的RFC1247中,后 经过多次修订,终于在1998年的RFC2328中确立了目前的标准。RFC2740中确定了 OSPFv3的基本标准。对于原有的OSPFv2的众多方面做出了修改,以便适应IPv6环境的 要求。OSPF简介OSPF_version_3概论RFC2740-OSPF for IPv6RFC2328-OSPF Version 2RFC2460-IPv6 SpecificationRFC2373-IP Version 6 Addressing Architecture参考资料OSPFv2与与OSPFv3的区的区别别OSPFv3协议协议包包LSA简简介介协议协议操操作作内容介绍OSPFv2与与OSPFv3的区的区别别独立于网络协议扩展性与适应性更加清晰而简洁协议消息格式的变化目录在IPv6中强调了一个“链路(link)”的概念。链路是一种通信设施或媒介,节点之间的数据链路层通信通过链路来进行。设备通过接口连接到链路。在IPv6中,一个链路上可以分配多个IP子网,也就是IPv6前缀。和IPv4中不同的是,同一个链路上的两个节点即使不具有相同的IPv6前缀,也可以直接通过这个链路通信。这一点极大地改 变了OSPF的行为。OSPFv2是基于子网运行的。在IPv4的OSPF中使用的术语“网络”和“子网”通常是一回事,而没有强调“链路”的概念。因为IPv4的推荐配置是一个链路上的所有节点的IP地址 处于同一个IP子网或网络内;而且在OSPFv2中,两个OSPF路由器形成邻接关系的前提之一就是两者相连的接口必须处于同一个IP子网内,并且每一条路由的下一跳地址 都是和路由器接口处于同一网段的IP地址。这实际上已经隐含要求了链路与子网或网络的一一对应关系。OSPFv3是基于链路运行的,而不是以前的基于IP子网的运行。在OSPFv3中我们更多的是使用“链路”和“前缀”这两个个术语。但是如前所述,这两个概念是分离的,没 有必然的对应关系。同一链路上的两个节点不必具有相同的前缀。所以在讨论路由协议时,OSPFv2的术语“网络”和“子网”在这里一般来说应该用“链路”替代掉。同样,一 个OSPFV3接口现在是连接到一个链路上,而不再是一个IP子网上了。OSPFV3协议包的发送接收以及Hello包和LSA的格式也要做出了相应修改。基于链路的运行OSPFv2是基于IP子网运行的。同一链路上的所有节点同处于一个IP子网或网络内。邻居关系建立的前提之一两相连接口必须处于同一IP子网内。每一条路由的下一跳地址都是和路由器接口处于同一网段的IP地址。OSPFv3是基于链路运行的。同一链路上的两个节点不必具有相同的前缀独立于网络协议,容易扩展适应各种协议独立于网络协议说OSPFv2协议具有编址性语义(Addressing semantics),是指这个协议的数据格式定义的与IP协议密切相关,协议包和LSA中的许多字段都是来自于网络上的某个IP地址,或掩码,或某个IP子网号。为了确保独立于网络协议,便于未来的扩展,OSPFv3从协议包及主要的LSA类型中取消了编址性语义,只保留了独立于网络协议的基本语义核心。在OSPFv3中,IPv6地址除了在Link State Update包携带的LSA载荷中出现之外,不再出现在OSPF包中。LSA中所出现的这些地址信息也仅仅是作为载荷信息,而不做其它 任何特别的用途。OSPFv3的Router-LSA和Network-LSA仍然存在,但是不再包含网络地址,而只是用于传达网络拓扑信息。拓扑的计算不再依赖IPv6地址。OSPF的Router ID,Area ID和LSA的Link State ID仍然保留类似IPv4地址长度的32位s。实际上这些字段既不是IPv4地址,也不可能是IPv6地址,而只是一个编号。另外在OSPFv2中,对broadcast 和NBMA网络类型,邻居路由器是以IP地址作为标识的。而在OSPFv3中,Neighboring路由器总是以Router ID作为标识的,所以DR和BDR也 总是用其Router ID来标识的。编址性语义被取消OSPFv2协议的数据格式定义的与IP协议密切相关,协议包和LSA中的许多字段都是 来自于网络上的某个IP地址,或掩码,或某个IP子网号。OSPFv3中,IPv6地址除了在LSU包携带的LSA载荷中出现之外,不再出现在OSPF包中。OSPFv3里的Router ID,Area ID和LSA的Link State ID仍然为32位,只作编号使用。独立于网络协议OSPFv2是基于IP子网运行的。在OSPFv2中,两个OSPF路由器形成邻接关系的前提之一就是两者相连的接口必须处于同一个IP子网内,因此,同一个链路上的所有路由器接口,也就必须处于同一个子网内。同时,OSPFv2也必须使用邻居的接口IP地址作为路由的下一跳地址。正因为这样,在OSPFv2网络规划时,即使一个链路上只有两 个路由器,我们也要给它分配一个子网,也就是说任何一个链路都要有一个IP子网,任何一个OSPFv2的接口都要有一个IP地址。但是这样是必须的吗?否!因为每个路由器的每个接口上的邻居是很有限的,所以所有路由的下一跳的个数也是非常有限的,并且这些下一跳地址也都是本地有效的,因此标识这些邻居/下一跳根本不需要一个全局IP地址。只需要一个本地/本链路有效的标识符就够了。相信熟悉IS-IS的人对这一点都体会深刻。IS-IS路由协议本身的运作,根本不需要在IS和IS之间配置任何地址,它只要在链路层上运行就够了。IPv6在RFC2373中定义了链路本地(link-local)地址用于一个单一链路上,其目的是完成邻居发现(neighbor discovery)和自动配置(auto-configuration)等功能。IPv6路由 器不转发源地址为link-local类型的包。Link-local单播地址范围为IPv6地址范围FF80/10。OSPFv3假定,每个路由器的每个接口上都分配了link-local地址。除了在virtual link上之外,在所有的OSPF接口上,发送的OSPF包都使用该接口的link-local单播地址作为源 地址。一个路由器可以学习到在这个网段上相连的所有其它路由器的link-local地址,它使用这些link-local地址作为下一跳来转发包。(但是,在virtual links上,必须使用global scope或者site-local地址作为OSPF协议包的源地址)由于链路本地地址只在本链路上有意义,因此它不应该泛洪(flood)到本链路之外的任何地方。因此OSPFv3规定,Link-local地址出只出现在Link-LSA中,而不允许出现 在其它的LSA中。特别是不能在inter-area-prefix-LSA、AS-external-LSA或intra-area-prefix-LSA中公告。通过这种方式,在大量的路由器间链路上就不需要规划子网,不但省去了不少麻烦,而且还节约了IP地址。最重要的一点是,因为在网络骨干的接口上都使用了链路本 地地址,而不必再配置IPv6,所以OSPFv3可以说是“脱离”了IPv6而独立了起来,并且可以扩展用于多种协议的路由。链路本地地址的使用使用链路本地地址作为路由的下一跳,而Virtual-Link除外。“脱离”了IP而独立起来,并且可以扩展支持多种协议的路由。独立于网络协议在OSPFv2中,区域内部的IP子网和网络信息是由Router-LSA和Network-LSA来完成的。但是Router-LSA和Network-LSA也同时负责传递网络拓扑信息,所以整个OSPF拓扑结构的计算和IP子网信息是紧紧捆绑在一起的。可以说OSPFv2的拓扑就是IP子网和路由器形成的拓扑。所以说OSPFv2是“基于IP子网”来运行的。为了克服前一版本的种种弊端,实现网络协议独立性,在OSPFv3中把Router-LSA和Network-LSA从IP前缀信息的发布功能解放出来,而只用它们来发布拓扑信息。发 布IPv6前缀的职责交给了新的link-LSA和intra-area-prefix-LSA。一个链路范围内的IPv6前缀信息由link-LSA负责通告。这样,整个链路内的路由器就可以了解本链路绑定的IPv6前缀。而intra-area-prefix-LSA负责把IPv6前缀公告到本区域范围内。从而整个区域内的路由器就可以了解区域内的IPv6前缀,用于区域内路由计算。通过拓扑与前缀信息的分离传递,OSPFv3具备了独立于网络协议的特性。使用专用LSA来发布前缀OSPFv3使用Link-LSA与Intra-Area-Prefix-LSA发布前缀一个链路范围内的IPv6前缀信息由link-LSA负责通告;intra-area-prefix-LSA负责把IPv6前缀公告到本区域范围内拓扑与前缀信息的分离传递,OSPFv3具备了独立于网络协议的 特性独立于网络协议OSPFv2与与OSPFv3的区的区别别独立于网络协议扩展性与适应性更加清晰而简洁协议消息格式的变化目录对对多多实实例例的的支支持持在一些特殊的情况下,我们可能需要在同一个链路上使用多个OSPF实例。例如,假设一个电信运营商为两个服务提供商提供同一条接入链路。这两个服务提供商都运 行OSPF,但是都希望保持自己的路由域的独立性,这时候就遇到一个麻烦。另一种情况下,我们可能希望两个OSPF区域依赖同一个链路运行。也就是说,两个OSPF区域在物理链路上有交集。在OSPFv2中,如果我们希望实现上述需求,就要使用OSPFv2的验证功能。我们可以给不同的服务提供商,分配不同的验证口令,以便保持其路由的相互的独立。但是 这种方式实现的并不优雅而完美。而在OSPFv3中提供了对同一链路上运行多实例的明确支持。这是通过在OSPF包头中添加Instance ID字段,以及修改OSPF接口数据结构实现的。Instance ID值影响OSPF包 的接收行为。如果接口的Instance ID与其所接收的OSPF包的Instance ID不匹配,则丢弃该包。对对未未知知类类型型LSA的的处处理理在IPv4的中,OSPF路由器的行为是丢弃任何未知类型的LSA。这就造成一个扩展性问题无法支持在单一链路上混合具有多种能力的路由器。在广播型链路和NBMA型链路上,所有的LSA都需要由DR来负责传递,这对于强制类型的LSA当然没有问题,但是对于可选的LSA来说就麻烦了。假如DR所支持的可 选LSA少于某个非DR路由器,那么这个非DR路由器发出的一些LSA就会被DR丢弃,而无法传递到其它路由器上。OSPFv3对未知LSA类型的处理被设计得更加具有适应性。路由器收到LSA时,需要根据LSA头中LS type 字段中的LSA Handling位来决定如何处理。根据这一位值的不同,对未知的LSA类型有两种处理方法:要么把它当作具有link-local 泛洪范围来对待,从而只能泛洪到本地链路上;要么把它当作类型已知的LSA来处理,也就是存储下来并 泛洪出去。当然对于本路由器来说,因为这个LSA类型是未知的,所以无论如何,实际上并没有把这个LSA纳入计算过程中。这种处理方式对于未来的扩展有诸多好处。尤其是对类似于External-Attributes-LSA之类的LSA来说非常合适。扩展性与适应性对多实例的支持对未知LSA的处理当作具有Link-Local泛洪范围来对待,从而泛洪到本地链路上。当作已知LSA处理,存储并泛洪出去。注:该LSA不参与本路由器LSA的计算扩展性与适应性OSPFv2与与OSPFv3的区的区别别独立于网络协议扩展性与适应性更加清晰而简洁协议消息格式的变化目录1.OSPF验验证证的的变变化化本着“非核心业务能外包就外包”的原则,OSPFv3自己不再进行验证工作,转而依赖IPv6所提供的IP AH(Authentication Header)和IP ESP(Encapsulating Security Payload)协议 进行验证,以确保路由信息的可信性、完整性和机密性。因此OSPF包格式也做出相应的改变。原OSPFv2的AuType和Authentication字段被取消。原OSPFv2接口数据结构和区域数据结构中,所有与验证相关的字段也都被取消。这样,虽然OSPFv3扩展了原有的一些字段,还预留了扩展字段,但是其协议包头和LSA头和OSPFv2一样紧凑,并没有增加协议的开销。2.用用Router-ID来来标标识识邻邻居居在IPv6的OSPF中,在一个给定链路上,邻居路由器总是用其Router ID来标识的。而与此对比,在IPv4的OSPF中,点到点网络和virtual link上的邻居以其Router ID来标识,而在broadcast、NBMA和点到多点网络上的邻居则是以其IPv4接口地址来标识的。OSPFv3的这个改进是因为它已经把协议包信息、网络拓扑描述和具体的IPv6前缀路由信息分离开了。这样邻居路由器可以完全没有配置IPv6前缀信息,而仅仅是网络上 的一个路由节点,因而不能用IP地址来描述了。这看起来更像IS-IS节点就是节点,只要有一个ID来标识就够了;ID就是ID,和接口没什么关系。这个变化带来的好处之一就是,OSPF的各种协议包和LSA的功能更加明确,定位更加清晰,理解更加容易,扩展更加方便。这个变化同时也影响了OSPF包(包括Hello包)的接收和邻居的查找。3.泛泛洪洪范范围围的的增增加加在OSPFv3中,LSA的泛洪范围被归纳起来,目前共有三种:链路本地范围(Link-local scope)。这种LSA只能在本地链路范围内泛洪。这个特性是新增的,新定义的Link-LSA 就使用这种范围。区域范围(Area scope)。这种LSA只能在一个OSPF区域内泛洪。Router-LSA、Network-LSA、Inter-Area-Prefix-LSA、Inter-Area-Router-LSA和Intra-Area-Prefix-LSA都使用区 域范围AS范围(AS scope)。这种LSA可以在整个路由域内泛洪。AS-external-LSA使用这种范围。这三种范围现在被明确写入LSA的LS type字段内。OSPF进程对LSA泛洪的处理中,不再是根据整个的LSA类型自行判断了,而是要根据LSA的LS type字段内注明的范围值 进行处理。4.Stub区区域域的的支支持持在OSPFv2中,我们可以使用stub区域,限制进入一个非骨干区域的外部路由,从而使区域内部路由器的LSDB和路由表保持在最小程度。这样即使一个OSPF路由域非常 庞大,引入了大量外部路由,stub区域内的路由器都可以只消耗很少的资源。在IPv6的OSPF中仍然保留了stub area的概念。在OSPFv3中,stub区域内只能允许传播router-LSA、network-LSA、Inter-Area-Prefix-LSA、Link-LSA和 Intra-Area-Prefix-LSA。这些LSA的功能等价于IPv4 stub area中的router-LSA,network-LSA和type 3 summary-LSA。然而我们前面讨论过,IPv6允许拥有未知LS类型的LSA。如果一个未知类型的LSA的泛洪范围被标记