1、RB-005 OSPF协议原理及配置ISSUE 2.0日期:杭州华三通信技术有限公司 版权所有,未经授权不得使用与传播n 叙述 OSPF路由协议的原理n 配置 OSPF协议n 调试和维护 OSPF协议n 简单的 OSPF故障排除课程目标学习完本课程,您应该能够:n 第一章 OSPF协议原理n 第二章 OSPF配置n 第三章 OSPF调试、监控n 第四章 OSPF排错目录 4OSPF协议原理l OSPF协议基础l 通过 LSA描述网络拓扑结构l 用 SPF算法计算路由l 邻居状态机l DR和 BDRl 划分区域 5OSPF协议概述lOSPF( Open Shortest Path First),
2、目前 IGP中应用最广、性能最优的一个协议(最新版本是 version 2, RFC2328),具有如下特点: 无路由自环 可适应大规模网络 路由变化收敛速度快 支持区域划分 支持等值路由 支持验证 支持路由分级管理 支持以组播方式发送协议报文 6OSPF协议基本概念lRouter ID 一个 32-bit的无符号整数,是一台路由器的唯一标识,在整个自治系统内唯一。l协议号 OSPF 是基于 IP的,其协议号是 89。 OSPF协议报文不转发 通常 OSPF的协议报文是不被转发的,只能传递一跳,即在 IP报文头中 TTL值被设为 1 (虚连接除外 )。 7OSPF协议原理l OSPF协议基础l
3、 通过 LSA描述网络拓扑结构l 用 SPF算法计算路由l 邻居状态机l DR和 BDRl 划分区域 8OSPF通过 LSA描述网络拓扑 OSPF协议将周边的网络拓扑结构抽象为 4种典型的网络模型 9OSPF网络拓扑模型(一)l连接一个空的网段( stub net),该网段中没有其他运行 OSPF协议的网络设备。l使用如下字段( link)来描述该网络类型。link id : 10.0.0.0 /*网段 */data : 255.0.0.0 /*掩码 */type : StubNet (3) /*类型 */metric : 50 /*花费 */ 10OSPF网络拓扑模型(二)l 通过一条点到点
4、的链路连接另外一台运行 OSPF的路由器。l 使用如下两段字段( link)来描述该网络类型。 描述该接口网段的路由信息。link id : 20.0.0.0 /*网段 */data : 255.0.0.0 /*掩码 */type : StubNet (3) /*类型 */metric : 5 /*花费 */描述与路由器 RTB相连的情况。link id : 2.2.2.2 /*RTB的 router id*/data : 20.0.0.2 /*RTB的接口地址 */type : router (1) /*类型 */metric : 5 /*花费 */ 11OSPF网络拓扑模型(三)l 通过一
5、个点对多点的网络连接另外多台运行 OSPF的路由器(这些路由器彼此之间并不是全连通的)。l 使用如下三段字段( link)来描述该网络类型。link id : 40.0.0.1 /*网段 */data : 255.255.255.255 /* 掩码 */type : StubNet ( 3) /*类型 */metric : 5 /*花费 */ link id : 3.3.3.3 /*RTF 的 router id*/data : 40.0.0.1 /* 与 RTF相连的接口地址 */type : router ( 1) /*类型 */metric : 5 /*花费 */ link id : 4
6、.4.4.4 /*RTE 的 router id*/data : 40.0.0.1 /* 与 RTE相连的接口地址 */type : router ( 1) /*类型 */metric : 5 /*花费 */ 12OSPF网络拓扑模型(四)l 连接一个广播(或者是 NBMA)的网段,该网段中所有运行 OSPF协议的网络设备之间都直接可达。l 使用如下字段( link)来描述该网络类型。 简化的描述信息。link id : 30.0.0.3 /*网段中 DR的接口地址 */data : 30.0.0.1 /*本接口的地址 */type : TransNet (2) /*类型 */metric :
7、 50 /*花费 */Net mask : 255.0.0.0 /*本网段的掩码 */Attached 30.0.0.1 router /*本网段内所有的路由器的 router id*/Attached 30.0.0.2 routerAttached 30.0.0.3 router 由 DR另外生成的描述信息,统一描述了本网段的情况。 13LSA (Link State Advertisement) 数据结构l 将上述多个 link组合在一起,加上一个 head,组成了路由器 RTA的 LSA。该 LSA准确的描述了 RTA周边的网络拓扑。type : router /*LSA的类型 */ls
8、 id : 1.1.1.1 /*LSA的标识 */adv rtr : 1.1.1.1 /*生成该 LSA的路由器 */ls age : 4 /*本条 LSA的老化时间 */len : 108 /*LSA的长度 */seq# : 80000001 /*LSA的序列号 */cksum : 0x3543 /*较验和 */link count: 7 /*本 LSA中包含的连接个数 */link id : 10.0.0.0 /*网段 */data : 255.0.0.0 /*掩码 */type : StubNet (3) /*类型 */metric : 50 /*花费 */ 14OSPF协议原理l O
9、SPF协议基础l 通过 LSA描述网络拓扑结构l 用 SPF算法计算路由l 邻居状态机l DR和 BDRl 划分区域 15OSPF协议计算路由过程LSDBLSA of RTALSA of RTBLSA of RTCLSA of RTD(2)每台路由器的 LSDB (3)由链路状态数据库生成带权有向图CA BD1235CA BD123CA BD123CA BD123CA BD123RTA RTB(1)网络的拓扑结构(4)每台路由器分别以自己为根节点计算最小生成树RTCRTD 16运行 SPF算法计算路由l每个路由器根据搜集到的 LSDB,使用 SPF算法来计算路由。 17SPF算法的计算步骤l
10、每台路由器按照如下步骤从本机的 LSDB计算出路由:1.从 LSDB中选取自己生成的 LSA为 SPF计算的起点。遇到类型为 StubNet的 link,其中包含的就是路由信息,填加到路由表中(但由于这些路由信息都是本机的直连路由,所以不会生效)。2.遇到类型为 router的 link,则计算暂停,跳转到该 link中link id(是某台路由器的 router id信息)所指的路由器生成的 LSA。3.打开该条 LSA,遇到类型为 StubNet的 link,其中包含的就是路由信息,填加到路由表中。下一跳为步骤 2中 link的data字段, cost值为本 link的 metric和步骤
11、 2中 link的 metric相加。4.如果遇到类型为 router的 link,则继续跳转,直至某条LSA的全部信息都被计算完毕,此时再跳回到上一条的 LSA。5.重复步骤 1 4,最终会回到自己生成的 LSA,待该 LSA计算完毕后,则 SPF计算完成。 18OSPF协议原理l OSPF协议基础l 通过 LSA描述网络拓扑结构l 用 SPF算法计算路由l 邻居状态机l DR和 BDRl 划分区域 19两台路由器之间建立邻接关系的过程 RT1 RT2Down DownHello( DR = 0.0.0.0,Neighbors Seen = 0)Hello( DR = RT2,Neighbo
12、rs Seen = RT1)DD (Seq = x,I = 1, M = 1, MS = 1)DD (Seq = y,I = 1, M = 1, MS = 1)DD (Seq = y,I = 0, M = 1, MS = 0)DD (Seq = y+1,I = 0, M = 1, MS = 1)DD (Seq = y+1,I = 0, M = 1, MS = 0)DD (Seq = y+n,I = 0, M = 0, MS = 1)DD (Seq = y+n,I = 0, M = 0, MS = 0)LS RequestLS UpdateLS AckExStartExStartInitExch
13、angeExchangeLoadingFullF 20OSPF的邻居状态机DownAttempt Init2-way ExStart ExchangeLoadingFulll 紫色的状态机可能是长期存在的状态。蓝色的状态机通常是临时状态。 21OSPF的五种协议报文l Hello报文 发现及维持邻居关系,选举 DR, BDR。l DD报文 本地 LSDB的摘要信息(只包含 LSA的 Head信息)。l LSR报文 向对端请求本端没有或对端的更新的 LSA (只包含LSA的 Head信息) 。l LSU报文 向对方发送其需要的 LSA (包含 LSA的全部信息 )。l LSAck报文 收到 LS
14、U之后,进行确认(只包含 LSA的 Head信息) 。 22OSPF协议原理l OSPF协议基础l 通过 LSA描述网络拓扑结构l 用 SPF算法计算路由l 邻居状态机l DR和 BDRl 划分区域 23广播及 NBMA网段中的 N2连接关系 l 一个广播的网段中,存在 N 8台路由器,则需要建立 M=n(n-1)/2 = 28个邻接关系。 24通过选举 DR来解决问题 M= n(n-1)/2= 28M= (n-2)2+1= 13DRBDRl 为了解决同一个网段内过多的邻接关系数量, OSPF协议提出了 DR( Designated Router) 的概念。该网段中的设备只与 DR和 BDR(
15、 Backup Designated Router )建立邻接关系。 25DR的选举过程 l DR是整个网段中所有的路由器选举出来的,选举方法与 选举村长 十分类似。 登记选民 本网段内的 OSPF路由器; 本村内的 18岁以上公民; 登记候选人 本网段内的 priority0的 OSPF路由器( priority可以手工配置,缺省值是 1); 本村内的 30岁以上公民且在本村居住 3年以上; 竞选演说 所有的 priority0的 OSPF路由器都认为自己是 DR; 所有的候选人都自认为应该当村长; 投票 选 priority值最大的若 priority值相等选 Router ID最大的;
16、选年纪最大若年龄相等按姓氏笔划排序; 26DR选举中的指导思想l选举制 DR是各路由器选出来的 ,而非人工指定的,虽然管理员可以通过配置 priority干预选举过程。l终身制 DR一旦当选 ,除非路由器故障,否则不会更换,即使后来的路由器 priority更高。l世袭制 DR选出的同时也选出 BDR来 , DR故障后 ,由BDR接替 DR成为新的 DR。 27NBMA 和点到多点l在某种情况下(非全连通的 NBMA网络),由于选举 DR会导致路由信息不能正确学习,此时需要管理员手工将网络类型改为 PTMP,不再选举 DR了。NBMA: 全连接 点到多点( PTMP) : 部分连接 28由于
17、DR的出现带来协议的变化l 为了减少在 广播和 NBMA网段内带宽的占用,提出了DR的概念 。为协议本身带来如下变化: 将 广播和 NBMA网段内 LSDB同步的次数由 O(N)2减少为O(N)。 在广播和 NBMA网 段中 ,路由器的角色划分为 DR、 BDR、 DROther。 路由器之间的关系分为 Unknown、 Neighbor、Adjacency。 两台 DROther路由器之间只建立 Neighbor关系,邻居状态机停留在 2-Way状态。 DR及 BDR与本网段内的所有路由器建立 Adjacency关系 ,邻居状态机会达到 Full状态。 增加了一种接口类型 : Point-t
18、o-Multipoint。 增加了一种 新 的 LSA类型: Network-LSA, 由 DR生成 ,描述了本网 段的链路状态 信息 。 29关于 DRl 只有在广播和 NBMA的链路上才会选举 DR,在 PTP和PTMP的链路上不会选举 DR。l DR是针对一个网段内的设备选举的,对于一台路由器来说,可能它在某个接口上是 DR,在其它接口上是BDR、 DROther,或者因为是 PTP的链路而不参加DR的选举。l 在广播的网络上必须存在 DR才能够正常工作,但BDR不是必需的。l 一个网段中即使只有一台路由器,也要选举 DR。l 由于 “终身制 ”的原因,网段中的 DR不一定是 priority最高的,但通常是 “来的早 ”的路由器。 30OSPF协议原理l OSPF协议基础l 通过 LSA描述网络拓扑结构l 用 SPF算法计算路由l 邻居状态机l DR和 BDRl 划分区域