1、ospf协议详解OSPF协议路由需要更复杂的网络规划和配置需要占用更多的路由器资源需要占用更多的内存来存储多个表需要占用更多的CPU和处理资源来完成复杂的路由计算与距离矢量协议相比较,链路状态路由协议具有以下特性:4123ospf协议详解ospf协议详解 OSPF(Open Shortest Path First开放式最短路径优先) 是一个内部网关协议(Interior Gateway Protocol,简称IGP),用于在单一自治系统(autonomous system,AS)内决策路由。 OSPF的协议管理距离(AD)是110。 OSPF由IETF在20世纪80年代末期开发,OSPF是SP
2、F类路由协议中的开放式版本。 链路是路由器接口的另一种说法,因此OSPF也称为接口状态路由协议。ospf协议详解 链路状态协议泛洪链路状态信息,使每台路由器有一个完整的网络拓扑视图。 最短路径优先算法用于点到点的网络连接,为了在目前多样的网络中实现OSPF协议,OSPF必须知道它所运行的网络类型。 在交换OSPF链路状态信息前,OSPF协议会在路由器之间建立邻居关系。 大型的OSPF网络使用分级设计原则。多个区域连接到一个分配区,区域0,也称为骨干。ospf协议详解 毗邻数据库 记录有关邻居路由器的信息 拓扑数据库(链路状态数据库) 在OSPF区域内的每台路由器具有相同的链路状态数据库,带有多
3、个接口的路由器可以加入多个区域(区域边界路由器),它会为每个区域维护一个单独的拓扑数据库 路由选择表 在路由器的数据库上运行最短路径优先(SPF)算法,决定到目的地的最佳路由ospf协议详解OSPF分组类型作用作用可靠性可靠性HELLO1、用于发现邻居2、建立邻接关系3、维持邻接关系4、确保双向通信 5、选举DR和BDR Database Description 数据库的描述 DBD 可靠Link-state Request链路状态请求包 LSR 可靠Link-state Update链路状态更新包 LSU 可靠Link-state Acknowledment链路状态确认包 LSACK OSP
4、F路由器为了与它的邻居有效共享链路状态信息而建立各种关系或状态。路由器依靠5种不同的分组来识别它们的邻居并更新链路状态信息。ospf协议详解 区域长度32位,可以用10进制,也可以类似于IP地址的点分十进制,分3种通信量 Intra-Area Traffic:域内间通信量 Inter-Area Traffic:域间通信量 External Traffic:外部通信量 ospf协议详解 Internal Router:内部路由器 ABR(Area Border Router):区域边界路由器 Backbone Router(BR):骨干路由器 ASBR(Autonomous System Bou
5、ndary Router):自治系统边界路由器.ospf协议详解 以下2中情况需要使用到虚链路: 通过一个非骨干区域连接到一个骨干区域. 通过一个非骨干区域连接一个分段的骨干区域两边的部分区域. 虚链接是一个逻辑的隧道(Tunnel),配置虚链接的一些规则: 虚链接必须配置在2个ABR之间. 虚链接所经过的区域叫Transit Area,它必须拥有完整的路由信息. Transit Area不能是Stub Area. 尽可能的避免使用虚链接ospf协议详解 OSPF网络分为以下2个级别的层次: 骨干区域 (backbone or area 0) 非骨干区域 (nonbackbone areas)
6、 在一个OSPF区域中只能有一个骨干区域,可以有多个非骨干区域,骨干区域的区域号为0。 为了避免回环的产生,各非骨干区域间是不可以交换LSA信息的,他们只有与骨干区域相连,通过骨干区域相互交换信息。 ospf协议详解 非骨干区域和骨干区域之间相连的路由叫边界路由(ABRs-Area Border Routers),只有ABRs记载了接入各区域的所有路由信息。各非骨干区域内的非ABRs只记载了本区域内的路由表,若要与外部区域中的路由相连,只能通过本区域的ABRs,由ABRs连到骨干区域的BR,再由骨干区域的BR连到要到达的区域。 ospf协议详解点到点网络 (point-to-point).广播
7、型网络 (broadcast)点到多点网络 (point-to-multipoint) 非广播型(NBMA)网络 (non-broadcast) 虚链接(virtual link) ospf协议详解 比如T1线路,是连接单独的一对路由器的网络,点到点网络上的有效邻居总是可以形成邻接关系的,在这种网络上,OSPF包的目标地址使用的是224.0.0.5,这个组播地址称为AllSPFRouters.ospf协议详解 比如以太网,Token Ring和FDDI,这样的网络上会选举一个DR和BDR,DR/BDR的发送的OSPF包的目标地址为224.0.0.5,运载这些OSPF包的帧的目标MAC地址为01
8、00.5E00.0005;而除了DR/BDR以外发送的OSPF包的目标地址为224.0.0.6,这个地址叫AllDRouters.ospf协议详解 比如X.25,Frame Relay,和ATM,不具备广播的能力,因此邻居要人工来指定,在这样的网络上要选举DR和BDR,OSPF包采用unicast的方式 是NBMA网络的一个特殊配置,可以看成是点到点链路的集合. 在这样的网络上不选举DR和BDR. 虚链接: OSPF包是以unicast的方式发送ospf协议详解Image Info - Note to customers : This image has been licensed to be
9、 used within this PowerPoint template only. You may not extract the image for any other use. ospf协议详解协议详解 COST= 108/BW OSPF协议决定最短路径是基于路由器每一个接口指定的代价(cost)来的 一条路由的代价:是指沿着到达目的网络的路由路径上所有出站接口的代价之和!100M128KABCC学习到的学习到的10网段的网段的Cost是多少?是多少?108/100M1108/128K781Cost值为值为1178178310100Mospf协议详解 Down:此状态还没有与其他路由器
10、交换信息。首先从其ospf接口向外发送hello分组,还并不知道DR(若为广播网络)和任何其他路由器。发送hello分组使用组播地址224.0.0.5。 Init: 表明在DeadInterval里收到了Hello包,但是2-Way通信仍然没有建立起来. ospf协议详解 two-way: 双向会话建立,而RID彼此出现在对方的邻居列表中。(若为广播网络:例如:以太网。在这个时候应该选举DR,BDR。) ExStart: 信息交换初始状态,在这个状态下,本地路由器和邻居将建立Master/Slave关系,并确定DD Sequence Number,路由器ID大的的成为Master. ospf协
11、议详解 Exchange: 信息交换状态,本地路由器和邻居交换一个或多个DBD分组(也叫DDP) 。DBD包含有关LSDB中LSA条目的摘要信息)。 Loading: 信息加载状态:收到DBD后,将收到的信息同LSDB中的信息进行比较。如果DBD中有更新的链路状态条目,则向对方发送一个LSR,用于请求新的LSA 。 Full: 完全邻接状态,邻接间的链路状态数据库同步完成,通过邻居链路状态请求列表为空且邻居状态为Loading判断。 ospf协议详解4. 允许邻居之间的双向通信5. 用于在NBMA网络上选举DR和BDR1. 用于发现邻居2. 成为邻居前,对Hello包的参数进行协商3. 在邻居
12、间扮演keepalive的角色ospf协议详解 源路由器的RID 源路由器的Area ID 源路由器接口的掩码 源路由器接口的认证类型和认证信息 源路由器接口的Hello包发送的时间间隔 源路由器接口的无效时间间隔 优先级 DR/BDR接口IP地址 标记位(flag bit) 源路由器的所有邻居的RID 23ospf协议详解协议详解 数据库交换过程 主从协商 DD交换 LSA请求 LSA传播 LSA应答ospf协议详解协议详解RARBHello(neighbor=“ ”)Hello(neighbor=“RA”)Hello(neighbor=“RB”)Hello(neighbor=“ ”)DBD
13、(Seq)接收到对方的接收到对方的HELLO报文,转报文,转换为初始状态换为初始状态在对方发来的在对方发来的HELLO报文中看到报文中看到自己的自己的Router ID,转换为双向状态转换为双向状态确定数据库描述报确定数据库描述报文的序列号,转换文的序列号,转换为信息交换初始状为信息交换初始状态态DBD(Seq)DBDDBD发送数据库描述报发送数据库描述报文,转换为信息交文,转换为信息交换状态换状态LSRLSULSRLSU发送链路状态信息请求发送链路状态信息请求报文,获取未知的链路报文,获取未知的链路状态信息状态信息发送链路状态信息更新发送链路状态信息更新报文,同步链路状态数报文,同步链路状态
14、数据库据库直到两台路由器的链直到两台路由器的链路状态数据库完全一路状态数据库完全一致,形成邻接关系致,形成邻接关系发送发送Hello消息消息就像双方互相就像双方互相打个招呼打个招呼DBD类似于类似于一个目录一个目录互相发送对互相发送对方未知的链方未知的链路信息路信息25ospf协议详解协议详解DownAttemptInit2-wayExStartExchangeLoadingFull维护路由选择信息ospf协议详解建立路由器毗邻关系选举一个DR和BDR发现路由选择适当的路由ospf协议详解 邻接关系建立的4个阶段: 邻居发现阶段 双向通信阶段:Hello报文都列出了对方的RID,则BC完成 数
15、据库同步阶段 完全邻接阶段: full adjacency 邻居关系的建立和维持都是靠Hello包完成的,在一般的网络类型中,Hello包周期性的以HelloInterval秒发送28ospf协议详解协议详解对于多点接入网络,即NBMA和broadcast,如果网络内有上百台路由器,那将形成多少邻接关系:两两互相形成,即100*(100-1),这些邻接关系要定期的交换LSDB,这样耗费的系统资源更是不计其数。BROADCASTNBMAHUBFR/X.2529ospf协议详解协议详解M= n(n-1)/2 = 28M= (n-2)2+1 = 13DRBDRospf协议详解 DR将完成如下工作:
16、描述这个多址网络和该网络上剩下的其他相关路由器. 管理这个多址网络上的flooding过程. 同时为了冗余性,还会选取一个BDR,作为备份之用. 路由器的每个多路访问(multi-access)接口都有个路由器优先级(Router Priority),8位长的一个整数,范围是0到255,Cisco路由器默认的优先级是1优先级为0的话将不能选举为DR/BDR.优先级可以通过命令ip ospf priority进行修改. Hello包里包含了优先级的字段,还包括了可能成为DR/BDR的相关接口的IP地址.当接口在多路访问网络上初次启动的时候,它把DR/BDR地址设置为0.0.0.0,同时设置等待计
17、时器(wait timer)的值等于路由器无效间隔(Router Dead Interval).ospf协议详解DR BDR选取是以接口状态机的方式触发的. ospf协议详解 路由器在和邻居建立双向(2-Way)通信之后,检查邻居的Hello包中Priority,DR和BDR字段,列出所有可以参与DR/BDR选举的邻居 如果有一台或多台这样的路由器宣告自己为BDR(也就是说,在其Hello包中将自己列为BDR,而不是DR),选择其中拥有最高路由器优先级的成为BDR;如果相同,选择拥有最大路由器标识的。如果没有路由器宣告自己为BDR,选择列表中路由器拥有最高优先级的成为BDR,(同样排除宣告自己
18、为DR的路由器),如果相同,再根据路由器标识。ospf协议详解 如果有一台或多台路由器宣告自己为DR(也就是说,在其Hello包中将自己列为DR),选择其中拥有最高路由器优先级的成为DR;如果相同,选择拥有最大路由器标识的。如果没有路由器宣告自己为DR,将新选举出的BDR设定为DR。 如果路由器X新近成为DR或BDR,或者不再成为DR或BDR,重复步骤2和3,然后结束选举。这样做是为了确保路由器不会同时宣告自己为DR和BDR。 当网络中已经选举了DR/BDR后,又出现了1台新的优先级更高的路由器,DR/BDR是不会重新选举的。ospf协议详解 优先级为0的不参与选举; 优先级高的路由器为DR;
19、 优先级相同时,以router ID 大为DR; router ID 以回环接口中最大ip为准;若无回环接口,以真实接口最大ip为准。 缺省条件下,优先级为1。 ospf协议详解协议详解 Flooding采用2种报文 LSU Type 4-链路状态更新报文链路状态更新报文 LSA Type 5-链路状态确认报文链路状态确认报文 在P-P网络,路由器是以组播方式将更新报文发送到组播地址224.0.0.5 在P-MP和虚链路网络,路由器以单播方式将更新报文发送至邻接邻居的接口地址. ospf协议详解协议详解 在广播型网络广播型网络,DR路由器只能和DR&BDR形成邻接关系,所以更新报文将发送到22
20、4.0.0.6,相应的DR以224.0.0.5泛洪LSA并且BDR只接收LSA,不会确认和泛洪这些更新,除非DR失效 在NBMA型网络,LSA以单播方式发送到DR和BDR,并且DR以单播方式发送这些更新. LSA通过LS类型、LS标识和宣告路由器来识别,并通过序列号、校验和、老化时间判断LSA新旧。 ospf协议详解协议详解 类型类型1:Router LSA:每个路由器都将产生Router LSA,这种LSA只在本区域内传播,描述了路由器所有的链路和接口,状态和开销. 类型类型2:Network LSA:在每个多路访问网络中,DR都会产生这种Network LSA,它只在产生这条Network
21、 LSA的区域泛洪描述了所有和它相连的路由器(包括DR本身)。 ospf协议详解协议详解 类型类型3:Network Summary LSA :由ABR路由器始发,用于通告该区域外部的目的地址.当其他的路由器收到来自ABR的Network Summary LSA以后,它不会运行SPF算法,它只简单的加上到达那个ABR的开销和Network Summary LSA中包含的开销,通过ABR,到达目标地址的路由和开销一起被加进路由表里,这种依赖中间路由器来确定到达目标地址的完全路由(full route)实际上是距离矢量路由协议的行为。 ospf协议详解协议详解 类型类型4:ASBR Summary
22、 LSA:由ABR发出,ASBR汇总LSA除了所通告的目的地是一个ASBR而不是一个网络外,其他同Network Summary LSA. 类型类型5:AS External LSA:发自ASBR路由器,用来通告到达OSPF自主系统外部的目的地,或者OSPF自主系统那个外部的缺省路由的LSA.这种LSA将在全AS内泛洪(4个特殊区域除外) . 类型类型6:Group Membership LSA ospf协议详解协议详解 类型类型7:NSSA External LSA:来自非完全Stub区域(not-so-stubby area)内ASBR路由器始发的LSA通告它只在NSSA区域内泛洪,这是与
23、LSA-Type5的区别. 类型8:External Attributes LSA 类型9:Opaque LSA(link-local scope,) 类型10:Opaque LSA(area-local scope) 类型11:Opaque LSA(AS scope) ospf协议详解协议详解 配置loopback接口地址Router(config)# interface loopback 0Router(config-if)# ip address IP地址 掩码 启动OSPF路由进程Router(config)# router ospf 进程号 指定OSPF协议运行的接口和所在的区域Ro
24、uter(config-router)# network 网络号 反向掩码 area 区域号本路由器的进程号,本路由器的进程号,用于标识同一路由器用于标识同一路由器上的多个上的多个OSPF进程进程可以是网络地址、子可以是网络地址、子网地址、接口地址网地址、接口地址指明网络所属区域,指明网络所属区域,此处是此处是0-骨干区域骨干区域用于产生路由器的用于产生路由器的Router ID192.168.1.0/24 子网掩码:子网掩码:255.255.255.0 反向掩码:反向掩码:0.0.0.255子网掩码为子网掩码为1的位,在反向掩码中为的位,在反向掩码中为0;子网掩码为子网掩码为0的位,在反向掩
25、码中为的位,在反向掩码中为1。例如:例如:192.168.2.0/28的反向掩码应该是多的反向掩码应该是多少?少?反向掩码:反向掩码:0.0.0.15ospf协议详解协议详解v修改接口的修改接口的Cost值值 Router(config-if)#ip ospf cost number 例如:例如: Router(config)#interface s0 Router(config-if)#ip ospf cost 1000 取值范围取值范围165535OSPF路由器在接口上使用路由器在接口上使用cost值来决定最佳路径值来决定最佳路径ospf协议详解协议详解v配置配置OSPF计时器计时器 Ro
26、uter(config-if)#ip ospf hello-interval 时间时间(s) Router(config-if)#ip ospf dead-interval 时间时间(s)例如:例如: Router(config)#interface e0 Router(config-if)#ip ospf hello-interval 5 Router(config-if)#ip ospf dead-interval 20 为了交换信息,相邻由器为了交换信息,相邻由器必须有相同的必须有相同的hello和和dead间隔,通常间隔,通常dead时间是时间是hello时间的时间的4倍倍ospf协议
27、详解协议详解v查看邻居列表查看邻居列表Router#show ip ospf neighborv查看链路状态数据库查看链路状态数据库Router#show ip ospf databasev查看路由表查看路由表Router#show ip routev 查看查看OSPF的配置的配置Router#show ip ospfv查看查看OSPF接口数据结构接口数据结构Router#show ip ospf interface 接口接口 ospf协议详解协议详解ospf协议详解协议详解 环回接口是路由器的一个虚拟接口,它永远不会失效。 OSPF的成功运行需要一个进程ID和路由器ID。路由器ID来自于一个
28、活动的接口,如果这个接口失效了,OSPF进程就无法继续。 为了保证OSPF的稳定性,我们配置环回地址作为路由器的ID。ospf协议详解协议详解 当OSPF进程启动时,IOS使用最高的本地地址作为其OSPF路由器的ID。 如果为环回接口配置了IP地址,路由器将会使用该环回接口地址,而不管其值大小。 在基于OSPF的网络中,建议所有关键路由器都使用环回地址。 为了避免路由选择问题,在配置环回接口地址的时候最好配置一个32位的子网掩码。ospf协议详解协议详解ospf协议详解协议详解 NBMA的网络使用OSPF会产生一些问题,例如组播的Hello分组交换。 IOS提供了一些选项以克服NBMA的局限性
29、,包括:neighbor命令、点到点子接口和点到多点的配置。具体使用哪种取决于NBMA网络拓扑。ospf协议详解协议详解 全网状结构 部分网状结构ospf协议详解协议详解 全网状结构利用了帧中继可以在一个串行接口中支持多条永久的虚电路的能力。在全网状拓扑结构中,每台路由器都有一条永久虚电路线路连接到其他的路由器。 要使得OSPF能在一个不支持广播的多路访问全网状拓扑结构中正常工作,必须在每台路由器上手工输入OSPF的邻居路由器地址。 使用neighbor address命令ospf协议详解协议详解 IOS子接口功能可用于将多路访问型网络分隔成多个点到点型网络构成的集合。 OSPF自动将这种配置
30、看作是点到点网络。即使是在这些接口上配置了帧中继。ospf协议详解协议详解 部分网状结构是由至少一台路由器维持对其他路由器的多个连接,但不是每台路由器都有到其他所有路由器的直接连接。 最经济的结构是轴辐型拓扑结构,一台中心路由器连接着其他多台分支路由器。 命令neighbor在轴辐结构中不能正确工作。ospf协议详解协议详解 在这种OSPF网络中,要正确工作,必须由中心路由器担当DR。因此,应该在所有分支路由器上将OSPF接口的优先级设置为。 一个轴辐型物理拓扑可以被手工配置为一个点带多点网络类型。ospf协议详解协议详解 在一个点到多点型网络中,一台轴路由器被直接连接到多台辐路由器,但所有广域网接口的地址都在同一个IP子网中。 点到多点网络有一下特性: 毗邻关系在所有相邻路由器之间被建立。 当发出一个路由器LSA时,点到多点型接口被作为点到点的链路的集合报告给接口的所有邻居。ospf协议详解协议详解 使用ip ospf network point-to-multipoint命令来取代所检测到的OSPF网络类型。 使用frame-relay map ip address dlci broadcast命令来配置接口。 其中broadcast允许路由器通过指定的DLCI号将广播分组发送给所映射的邻居。