




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、OSPF 内容概要1概述OSPF 是一个内部网关协议,用于在单一自治系统内决策路由。它是基于链路状态的路 由协议, 链路状态是指路由器接口或链路的参数。 这些参数是接口的物理条件: 包括接口是 Up 还是 Down 、接口的 IP 地址、分配给接口的子网掩码、接口所连的网络,以及使用路由 器的网络连接的相关费用。 OSPF 与其他路由器交换交换信息,但所交换的不是路由,而是 链路状态。 OSPF 路由器不是告知其他路由器可以到达哪些网络及距离是多少,而是告知它 的网络链路状态, 这些接口所连的网络及使用这些接口的费用。 各个路由器都有其自身的链 路状态,称为本地链路状态,这些本地链路状态在 O
2、SPF 路由域内传播,直到所有的 OSPF 路由器都有完整而等同的链路状态数据库为止。一旦每个路由器都接收到所有的链路状态, 每个路由器可以构造一棵树, 以它自己为根, 而分支表示到 AS 中所有网络的最短的或费用 最低的路由。OSPF对于规模巨大的网络,通常将网络划分成多个OSPF区域,并只要求路由器与同一区域的路由器交换链路状态, 而在区域边界路由器上交换区域内的汇总链路状态, 这样可 以减少传播的信息量, 且使最短路径计算强度减少。 在区域划分时, 必须要有一个骨干区域 (即区域 0),其它非 0 或非骨干区域与骨干区域必须要有物理或者逻辑连接。当有物理连 接时, 必须有一个路由器,它的
3、一个接口在骨干区,而另一个接口在非骨干区。当非骨干区 不可能与物理连接到骨干区时, 必须定义一个逻辑的或虚拟链路, 虚拟链路由两个端点和一 个传输区来定义, 其中一个端点是路由器接口, 是骨干区域的一部分, 另一端点也是一个路 由器接口, 但在与骨干区没有物理连接的非骨干区域中。 传输区是一个区域, 介于骨干区域 与非骨干区域之间。2术语在 OSPF 中,经常要使用以下术语:Router ID (路由器ID):用于标识每个路由器的32位数。通常,将最高的IP地址分配给路由器ID。如果在路由器上使用了回送接口,则路由器ID是回送接口的最高IP地址,不管物理接口的 IP 地址。Interface
4、( 接口):路由器和具有唯一 IP 地址和子网掩码的网络之间的连接。Neighbor Router (相邻路由器) :带有到公共网络的接口的路由器。Broadcast NetWork (广播网络) : 支持广播的网络。 Ethernet 是一个广播网络。NonBroadcast NetWork (广播网络) :支持多于两个连接路由器,但没有广播能力的网 络,如帧中继和 X.25 等网络。在非广播网络中,有非广播多点访问网络 NBMA (在同一个 网络上,但不能通过广播访问到)和点到多点网络。Designated Routeer ( 指定路由器 DR) :在广播和 NBMA 网络中,指定路由器用
5、于向公 共网络传播链路状态信息。Backup Designated Routeer (后援指定路由器 DR):在DR故障时,接替DR的路由器。Area Border Router (区域边界路由器 ABR ):连接多个OSPF区域的路由器。Autonomous System Border Router( 自治系统边界路由器 ASBR) : 一个 OSPF 路由器, 但它连接到另一个 AS,或者在同一个 AS的网络区域中,但运行不同于OSPF的IGP。Adjacency (紧邻) :紧邻可以在点对点连接的两个路由器之间形成,也可在广播或NBMA网络的DR和非指定路由器之间形成,还可以在BDR和非
6、指定路由器之间形成。OSPF 路由状态信息只能通过紧邻被传送和接收。Flooding (洪泛):在 OSPF 区域内,扩散某一链路状态,以分布和同步路由器之间的 链路状态数据库。Link-State Advertisement (链路状态宣告 LSA ):描述路由器的本地链路状态,通过该 通告向整个 OSPF 区域扩散。External Routing (外部路由) :从另一个 AS 或另一个路由协议得知的路由可以作为外 部路由放到OSPF中。有两种类型的外部路由,类型1的外部路由具有的费用包含OSPF的费用,加上从 ASBR 到网络的费用。类型 2的外部路由具有的费用仅是 ASBR 到网络的
7、费 用,而内部的 OSPF 费用可以忽略不计。Intraarea Routing (区域内路由) :在相同 OSPF 区域的网络之间的路由,这些路由仅 依据从区域内所接收的信息。来自另Interarea Routing (区域间路由) :在两个不同的 OSPF 区域之间的路由。区域间的路 径由三部分组成:从区域到源区域的 ABR 的区域内路径,从源 ABR 到目标 ABR 的骨干路 径,最后是从目标 ABR 到目标区域的路径。Route Summarization (路由汇总) :要通告的路由可能有一个区域内的路由、个AS的路由,以及从另一个路由协议得知的路由,所有这些路由可以由OSPF汇总成
8、一个路由宣告。汇总仅可以在 ABR或ASBR上发生。Stub Area (存根区):只有一个出口路径的区域。3.协议包格式OSPF包共有5种包类型,任意一种包都需要加上 OSPF的报文头,最后封装在IP中传送,一个OSPF包的最大长度为1500字节。其结构如下:OSPF协议一共使用5种类型的路由协议包:包类型作用1:呼叫发现和维护邻居2:数据库描述紧邻间同步数据库内容3:链路状态请求要求从邻居获取 LSA4:链路状态更新向邻居通告LSA5:链路状态确认对所通告的LSA给出确认消息无论何种类型的OSPF包都有以下一个公共的报文头:版本号包类型包长度路由器ID区域ID校验和认证类型身份验证身份验证
9、版本号:目前版本号为2。不同版本号不能会话。包类型:包类型的标志,为 5种包类型中的某种。包长度:以字节计算,包括 OSPF包加上首部头的长度。路由器ID:产生OSPF传输包的路由器的标识,一般就是路由器的最高IP地址。区域ID :分配给路由器传输接口的区域的32位指示器。如果包经过虚拟链路来发送,那么区域ID为骨干区域ID( ID = 0),因为虚拟链路是骨干区域的一部分。校验和:整个OSPF报文包括OSPF头的校验和,使用补运算进行计算。认证类型(AuType):身份验证的方法,其后 64位域包含使用的证明类型所要求的数据。AuType = 0表示无认证,AuType = 1表示简单的口令
10、认证, AuType = 2表示MD5 安全认证。3.1 Hello包格式Hello呼叫报文用于发现路由器所连网络上的邻居。通过周期性地发出呼叫包,呼叫协议可用于确定邻居路由器接口是否仍然处于活动状态。在广播网络和NBMA网络,呼叫协议可以用于选取指定路由器。呼叫包被发送到Multicast 多播地址 AIISPFRouters(224.0.0.5)。在播发期间,有些协议包也将发送到该地址。指定或后援指定路由器发送并接收到Multicast多播地址是 AIIDRRouters(224.0.0.6)。Hello报文是包类型为1的OSPF包,封装在 OSPF报文头后面,其格式如下:版本号=2包类型
11、=1包长度路由器ID区域ID校验和认证类型身份验证身份验证网络掩码网络掩码:发送呼叫报文的接口的子网掩码。如果这一掩码和呼叫报文接收接口的子网掩码不匹配,则该呼叫报文不能被接收。这样可以确保共享同一网络的路由器才能成为邻居关系。Hellolnterval :在接口上发送呼叫报文的时间间隔,以秒为单位。如果两路由器不具有相同的呼叫周期,则不能成为邻居关系。选项:包含5个分配位,在 RFC2178中对E位已经做了说明,它确定如何传播外部链路状 态宣告。在存根区,Hello报文要将该位设置为 0,不能接收设置为1的Hello报文。使邻居具有兼容性。因兼容性问题,路由器可以放弃邻居关系。路由器优先级:
12、该选项影响指定路由器 DR的选取。值0表示该路由器不能被选为DR。如果是其它值,则具有最高优先级的路由器将成为DR。缺省值为1,如果所有路由器都使用该缺省值年,则具有最高IP地址的路由器将被选为 DR。RouterDeadlnterval :该参数(以秒为单位)用于确定邻居是否还处于活动状态。如果在由RouterDeadlnterval指定的秒数内没有从已建立的邻居处收到呼叫报文,那么,邻居被宣布为故障状态。如果Hello报文中的RouterDeadInterval与接收端口所设置的RouterDeadInterval值不相同,则丢弃该报文,确保两邻居路由器具有相 同的参数。指定路由器(后援指
13、定路由器):广播网络或NBMA网络上DR(BDR )接口的IP地址。 在DR(BDR)的选举过程中,这个值可能是关于DR(BDR)的起源路由器的设想,而不是最终的 DR(BDR)。如果因为 DR(BDR)没有选举出来或者因为是对等网 络,不存在 DR( BDR )该值应该取值为 0.0.0.0。邻居路由器:路由器在这个网络上所拥有的邻居路由器的列表,用路由器ID表示。如果在由RouterDeadInterval指定的时间内未能从某个邻居接收到Hello呼叫包,那么,这个邻居应该从此列表中除去。3.2数据库描述包数据库描述包(Database Description packet, DD )是2
14、型OSPF包。在形成紧邻过程中 的路由器之间交换数据库描述包,且由它来描述链路状态数据库,达到邻居路由器间链路状态数据库的完全同步。 根据接口数和网络数,可能需要不止一个数据库描述包,来传输整个链路状态数据库。在交换过程中,所涉及到的路由器要建立主从关系。主路由器发送本路由器的数据库描述包,而从路由器通过使用主路由器发送来的数据库描述序列号认可所接收到 的数据库描述包,并将本路由器的LSA头部列表发送给主路由器,从而在主从路由器间判断链路状态数据库是否完全匹配,若有不匹配的LSA头部,则应发送链路状态请求报文,并以更新报文格式给予响应,获得最新LSA的全部信息。数据库描述包要封装在类型为2的O
15、SPF报文头后面,其具体格式如下:版本号=2包类型=2包长度路由器ID区域ID校验和认证类型身份验证身份验证接口 MTU选项00000 I M MS数据库描述序列号LSA首部LSA首部接口 MTU :指示通过该接口可发送的最大IP包长度。当通过虚拟链路发送时,这个域设置为0。选项:显示路由器的能力,使路由器不向没有能力的邻居发送LSAs。I位:是In it位,要发送数据库序列中的第一个包,应设置为1。随后的包要设置为 0。M位:若设置为1,则表示序列中还有更多的数据库描述包将要发送出去。若置为0,则表示数据库描述包已发送完毕。MS位:主从位,在数据库描述包交换期间,1表示路由器是主路由器,而0
16、表示路由器是从路由器。主路数据库描述序列号:用于数据库的同步处理,确保所有的数据库描述包全部被接收到。由器在发送第一个数据描述包时,应将数据库描述序列号设置为一个独特的初始值,随后序列号逐渐递增。LSA首部:这是一个LSA首部列表,由本路由器的链路状态数据库的LSAs的头部组成这个LSA首部列表。这些头部有足够的信息来描述LSA和LSA的实例。3.3链路状态请求包链路状态请求包是 3型OSPF包。当两个路由器交换数据描述包的过程完成后, 路由器 可检测链路状态数据库部分是否有不一致或过时的LSA。此时,路由器可向邻居请求新一些的数据库描述包,以达到LSAs的完全同步。其格式为:版本号=2包类型
17、=3包长度路由器ID区域ID校验和认证类型身份验证身份验证LS类型链路状态ID宣告路由器LS类型链路状态ID宣告路由器LS类型:链路状态类型,有路由器LSA、网络LSA、汇总LSA、汇总LSA(ASBR)、AS-externalLSA等5种类型的LSA,分别取值15。链路状态ID :取值取决于LS类型,具体的取值见 LSA首部定义。宣告路由器:产生LSA的路由器ID。3.4链路状态更新包链路状态更新包是 4型的OSPF包,用于实现LSA的洪泛,也用于对链路状态请求包 的响应。每个链路状态更新包包含一个或多个 LSA,而所发送的每个更新包要通过链路状 态认可包来确认认可,未收到确认包,应对所发送
18、的LSA定时重发,以确保洪泛过程的可靠性。具体格式如下:版本号=2包类型=4包长度路由器ID区域ID校验和认证类型身份验证身份验证LSA的个数LSAsLSA的个数:定义整个更新包中包含多少个LSA,直到OSPF包总长度达到1500字节。LSAs :由一系列LSA组成一个列表。3.5链路状态确认包链路状态确认包是 5型OSPF包,该包可以确保 LSA洪泛的可靠性。路由器从紧邻接 收到LSA后,必须要用链路状态确认包给予明确的确认应答。LSA的确认是通过链路状态确认包中的LSA首部实现的。一个确认包可以同时对多个LSA进行确认。这些包发送到以下三个地址之一:多点传送地址AIIDRouters、多点
19、传送地址 AIIDSPFRouters、单点传送地址。具体格式如下:版本号=2包类型=5包长度路由器ID区域ID校验和认证类型身份验证身份验证LSAs的首部LSAs 的首部: 由一系列 LSA 的首部组成一个列表。4链路状态 LSA 格式路由器可生成的链路状态信息有以下 5 种类型:类型 1:路由器 LSA ,确定路由器的互连方式。由每个路由器产生,用来描述路由器的 链路或接口的状态及费用。该 LSA 只能在本区域内洪泛;类型 2: 网络 LSA ,确定网络的互连方式。由 DR 产生,用于描述 DR 所连的多点访问 网络和所连的路由器(包括 DR 自己),也在本区域内洪泛;类型 3:ABR 汇
20、总 LSA ,用于传输已经被集成为单一网络信息的网络。由ABR 路由器产生,将某区域上的汇总目的地址通告给另一个区域。 事实上,ABR通过这些LSAs 将自己所能到达的目的地(要汇总)通告给所连区域的各个区域内路由器InternalRouters;ABR 也要将所连区域的目的地通告给骨干区域。当ABR 产生汇总 LSA时,同时要通告从 ABR 自己到目的地的费用,当 ABR 到目的地有多条路由时, 应取费用最低的路由。 同样,当 ABR 收到从另一 ABR 发来的同一条汇总 LSA 时, 也要取费用低的LSA,将其通告给非骨干区;当路由器从ABR收到一条汇总LSA时,用简单的距离一一矢量法而不
21、用SPF来计算本路由器到目的地的费用和路由:总费用包括本路由器到 ABR 的费用和 LSA 中所指明的费用。 在 ABR 上,将某区 域的有关目标网络通告给骨干区时,要对目标网络进行路由聚合,将一系列子网 聚合成一个超网后,通告给骨干网络。聚合时,其超网的费用为子网中的最大费 用。类型4: ASBR汇总LSA,用于传输已经被集成为单一网络信息的网络。也由ABR产生,与类型为3的汇总LSA相似,但本LSA是ABR将ASBR路由器主机为目的 地的一个链路信息,描述本 ABR 到达 ASBR 的费用;类型 5: 外部路由信息 AS-external-LSA ,由其它协议传入的外部路由信息。由 ASB
22、R 产生,将外部系统的路由信息在本系统的所有OSPF域内洪泛;每个 LSA 包都有一个由 20 个字节组成的首部, 该首部用于封装 LSA 包。一般许多 LSA 在一个OSPF报文中被路由器交换,而LSA首部的功能唯一地标识每个LSA包。同时LSA首部还用于数据描述 OSPF报文和链路状态确认 OSPF报文中。其格式如下:链路状态时间选项链路状态类型链路状态ID宣告路由器ID链路状态序列号和校验长度在该首部中,选项、链路状态类型、链路状态ID、宣告路由器ID等字段描述LSA包的特征,而链路状态时间、链路状态序列号确定该LSA是否是最新的。链路状态时间:生成LSA的路由器将LS时域初始化为0,在
23、洪泛过程中,每经过一个路由 器,要按InfTransDelay的量增加,这个量表示传输LSA到下一个跳跃所需要的时间。当该时间达到所设定的MaxAge参数时,要撤消该 LSA。选项:指示路由器的能力。目前使用的唯一一位是E位(外部指示),对存根区域,它是 0,对所有其它所有区域,它是1。链路状态类型: 描述LSA包的类型,取值为 15。链路状态ID :取决于LSA包类型,具体取值如下:LS类型链路状态ID值1生成LSA的路由器ID2这个网络的DR的IP接口地址3ABR要通告的某区域内某一目标网络的IP地址4ABR要通告的某一 ASBR的路由器ID5ASBR要通告的某一外部自治系统某一目标网络的
24、IP地址宣告路由器ID :产生LSA的路由器ID。链路状态序列号: 用于识别LSA包是否是一个最新包。路由器每生成一个新的LSA时,将该序列号加1。和校验:检测LSA包的正确性。长度:LSA包括其首部的长度。LSA头中的链路类型、链路状态ID和宣告路由器ID是一个LSA的唯一标志。一个LSA将有多个实例,不同的实例通过 LS的序列号、LS的校验和及LS的Age字段来描述。因此,必须要决定其实例是否是最近的,这要通过检查LS的序列号、LS的校验和及LS的Age字段内容。4.1路由器链路状态宣告链路状态类型为1的LSA包是一种路由器链路状态宣告包,其链路状态ID就是路由器的OSPF ID。路由器为
25、每个有活动 OSPF接口的区域生成一个路由器LSA。包含在路由器LSA中的信息是路由器接口在该区域的状态和费用,该LSA仅在本区域内传播。进入一个区域的所有路由器接口必须在一个路由器LSA中说明。在路由器LSA中,将通告路由器的各条链路或接口的状态和费用。链路状态ID就是产生该LSA的路由器ID。路由器LSA的具体格式如下:链路状态时间选项链路状态类型 =1链路状态ID宣告路由器ID链路状态序列号和校验长度0 0 0 0 0 V E B0链路个数链路ID链路数据链路类型#TOS费用度量TOS0TOS度量值.链路ID链路数据链路类型#TOS费用度量TOS0TOS度量值VEB :用于确定路由器可能
26、有的链路的类型。V位显示路由器是虚拟链路的端点。如果路由器是ASBR,那么将设置 E位;如果路由器是 ABR,那么将设置 B位。链路个数:可以同时携带若干个链路信息。每个链路包括链路ID、链路数据、链路类型、#TOS、费用度量、TOS、TOS度量值等信息,用于描述路由器某接口的链路信息。链路类型:有4种链路类型。链路类型将决定其它字段的取值。类型1:对等连接到另一个路由器类型2:到多点访问网络的传输网的连接类型3 :到存根网的连接,某主机地址也可认为是一个特殊的存根网络,网络号即为主机地址,掩码为 225.225.225.225。类型4 :虚拟连接链路ID:链路ID描述路由器接口或链路所连接的
27、对象。链路ID 一般等于邻居路由器 LSA头中的链路状态ID。取值及含义要取决于具体的链路类型。对链路类型1,为邻居路由器的ID。对链路类型2,为DR接口的IP地址。对链路类型3,为IP网络/子网号。对链路类型4,为邻居路由器的ID。链路数据:链路数据也将取决于具体的链路类型。如果路由器与存根网络相连,那么取值为这个网络的IP地址掩码。对其他类型的链路,则是路由器分配给该链路接口的IP地址。链路数据在生成IP路由表产生下一跳时要用。#TOS :链路服务类型号。在 2328中,该TOS已不再使用。费用度量:链路的费用度量。TOS和TOS度量:IP的服务类型与服务度量值。4.2网络链路状态宣告链路
28、状态类型为 2的LSA包是网络链路状态宣告,该LSA由DR产生和创建。一个网络LSA将通告该路由器上某一多点访问网络和所连接的路由器信息,该LSA也只能在本区域内扩散。链路状态ID标识DR到这个区域或网络的接口IP地址,费用度量不再需要,因为路由器直接连接到网络上,费用必为0。具体格式如下:链路状态时间选项链路状态类型 =2链路状态ID宣告路由器ID链路状态序列号和校验长度网络掩码连接的路由器ID连接的路由器ID连接的路由器ID网络掩码:标识该多点访问网络的网络掩码。连接的路由器:标识连接到该网络并且与 DR成紧邻关系的路由器 ID,包括DR本身路由 器ID。所连紧邻路由器的数目可由 LSA头
29、中的长度决定。4.3网络和ASBR汇总链路状态通告链路状态类型为3或4的LSA是网络和ASBR汇总链路状态宣告,两者都由区域边界路 由器ABR生成,实现区域间目标链路的描述,它只能在同一个区域内洪泛。3型汇总LSA有IP地址目标,链路状态ID就是目标IP网络号,以描述ABR到该目标网络的费用,供其它区域的路由器计算到该汇总网络的费用(总费用应为:本路由器-ABR -汇总的网络地址)。4型汇总LSA以一个自治系统边界路由器 ASBR为其目标,而链路状态ID就是该ASBR的OSPF路由器ID,以描述ABR到ASBR之间的费用,它主要用于计算最佳的外 部路由(某外部路由,对任一路由器来说,其总费用为
30、本路由器-ABR - ASBR - 外部路由费用的和)。链路状态ID是这两种类型LSA包之间的唯一区别。3型LSA还用于说 明进入存根区域的默认路由,此时链路状态ID和网络掩码应设置为 0.0.0.0,表示整个存根区可以通过该 ABR到达外部任意路由。对于3型LSA,网络掩码就是目标网络的IP地址掩码,而对4型LSA,应该设置为0。费用度量值和路由器 LSA相同,是ABR到该目标的 费用。TOS和TOS度量是IP的服务类型和度量值。LSA的具体格式如下:链路状态时间选项链路状态类型 =3或4链路状态ID宣告路由器ID链路状态序列号和校验长度网络掩码0费用度量值TOSTOS度量值4.4外部链路状
31、态AS-external LSA通告5型LSA是AS-external LSA ,由ASBR产生,它被用于说明自治系统以外的网络或路由, 在整个自治系统(非存根区除外)内不加改变地洪泛,与路由器的链路状态数据库相独立地 保存。链路状态ID域为目标网络的IP网络号,网络掩码为目的网络的掩码。在As-externalLSA中可以通告一条缺省路由,这时,链路状态ID为0.0.0.0,网络掩码也为 0.0.0.0。E位用于指示外部路由是 1型(E = 0)还是2型(E = 1),1型外部路由的度量值与内部OSPF路由域的度量具有相同的度量单位,2型外部路由的度量值大于内部OSPF路由域的度量。转发地址
32、是指到达该外部目标网络的下一跳地址,一般是ASBR路由器,此时转发地址为0.0.0.0,表示将报文转发给产生该LSA的ASBR,但如果运行 BGP协议得到外部路由的ASBR与另一自治系统的 ASBR间的网络是一个多点访问网络,则转发地址应设置为该网络地址,这样可省略ASBR这个中间一跳。在该LSA中,由产生该LSA的ASBR路由器负责 对该外部路由做上标志 tag,以便在ASBR间传送另外的附加信息。具体格式如下:链路状态时间选项链路状态类型 =5链路状态ID宣告路由器ID链路状态序列号和校验长度网络掩码E0000000费用度量值转发地址外部路由标志ETOSTOS度量值转发地址外部路由标志5.
33、链路状态数据库对路由器有活动接口的所有区域,路由器将维护每个区域各自的链路状态数据。在一个 区域有接口的每个路由器, 都有一个该区域同等的链路状态数据库。 对每个区域的最短路径 树的计算,分别由每个路由器以自己为树根进行。一个区域的链路状态数据库中的路由器 LSA 和网络 LSA 仅通过该区域传播。 这个区域的链路状态数据库由路由器LSA 、网络 LSA及 3 型、 4 型汇总 LSA (汇总 LSA 包含在区域数据结构中)组成。如果这个区域不是存根 区,数据库还将包括外部路由信息 AS-external LSA 。在数据库的查找过程中,是通过链 路类型、链路状态 ID 和宣告路由器 ID 这
34、 3 个特征值来查找的。当在传播过程中,路由器 接收到一个 LSA 时,或路由器初始化 LSA 时,路由器将 LSA 增加到数据库中。当路由器 接收到一个较新的 LSA 时,路由器生成一个新 LSA 时,或者 LSA 过于陈旧时,路由器将 把 LSA 从数据库中删除。从路由器的数据库中删除任何LSA ,也将从每个邻居的再传输列表中删除。每个区域都有一份相同的LSA ,由 LSA 可以计算每个路由器将首创一个路由器 LSA。如果路由器是 DR,则路由器将为它是 DR的网 络生成一个网络 LSA。ABR路由器将为区域间路由生成汇总 LSA,而ASBR路由器将为外 部路由生成 AS-external
35、 LSA 。以下 10 个事件将触发产生新的 LSA:1)当路由器首创的 LSA 的时限域到达值 LS RefreshTime ;2) 路由器接口的状态发生改变。路由器ID 是分配给路由器的最高 IP 地址,或分配给路由器的最高回送IP地址。如果具有最高IP地址的接口失败,那么路由器ID必须改变。3)网络的 DR 变化。4)邻居路由器变化为完全状态或不完全状态。5)区域内路由被增加、删除或修改。6)区域间路由被增加、删除或修改。7)路由器使一个接口在某区域内成为活动的。8)路由器的虚拟链路变化。9)外部路由变化。10)ASBR 的路由器不再是 ASBR。路由器将接收到的LSA保存在链路状态数据
36、库中成为LSAs,由LSAs计算本路由器到各目的地的最短路径。每条LSA都有寿命Age,当达到MaxAge时,将从数据库中清除。 因此,产生 LSA 的路由器每隔 LSRefreshTime 要对该 LSA 重新产生一个实例,并重新进行 洪泛。为提高效率,某条 LSA 在刷新时并不立即洪泛,而是等待一个同步时间,将需要重 新洪泛的 LSA 一并洪泛。6指定路由器的选取在广播型网络上,需要选取DR和BDR。 DR具有如下两个职责:1) 代表该广播网络和网络上的其余路由器,由其发布该网络LSA;2) 管理该网络上的扩散过程,网络上的所有路由器只有和DR 之间有紧邻关系,在这种紧邻关系上实现 LSA
37、 的洪泛,各路由器之间不能直接交互LSA ;DR 的选取是被接口的状态机所驱动(在接口状态迁移图中描述) 。一般来说,一个路 由器接口被激活后,要检查该接口网络是否已经存在DR,如果已经存在 DR,则不管本路由器的优先权有多大,也要接受原先所确定的 DR ,这样可以避免太多的变化,若还不存在 DR,则如果本路由器在该网络具有最高优先权的话,它将成为DR。DR 被选取后,该网络可抽象为以 DR 为中心的一点对多点的网络拓扑,只有在 DR 和 其他路由器之间建立紧邻关系,发送 LSA 报文。必须要注意,一个路由器在某一网络接口 上是DR,但在另一网络接口上可能不是DR,因此,DR是一个接口特性,并
38、不是一个完整路由器。为保证系统的稳定可靠,除DR夕卜,还要选取一个 BDR,并在BDR与其他路由器之间也要建立紧邻关系,一旦 DR失效,BDR立即替代DR,描述本网络及所有路由器的链 路状态。起始时, DR 和 BDR 均设置为 0.0.0.0,表示 DR 和 BDR 没有被选取。路由器将在与自 己具有双向邻居关系的邻居列表 (要将本路由器看成是邻居列表中的一个邻居路由器, 作为 DR、BDR 的侯选者)中,检查由 Hello 报文所宣告的各邻居路由器的优先级、DR、BDR来选取新的DR和BDR。在选取过程中,要排除任何优先级为0的邻居路由器,说明这样的路由器不符合成为 DR或BDR的条件。然
39、后,从符合条件的邻居路由器(具有非0优先级、和本路由器具有双向邻居关系)中运行如下算法:1)记录当前的DR和BDR,以在算法中进行比较;2)计算选取新的 BDR ;只有那些没有被 Hello 报文宣告为 DR 的路由器才有可能成为 BDR。如果有一个或多个路由器被 Hello 报文宣告为 BDR 但又不是 DR ,则从这些被宣告 为 BDR 的路由器中选择具有最高优先级的路由器作为BDR ,在选取过程中, 如果有相等优先级的路由器,那么,从中选择一个具有最大路由器 ID 的路由器作为 BDR 。如果没有一个路由器被宣告为 BDR ,则从所有的邻居路由器中(被宣告为 DR 的 路由器仍然除外)选
40、择具有最高优先级的路由器作为BDR ,在选取过程中,如果有相等优先级的路由器,那么,也要从中选择一个具有最大路由器 ID 的路由器作为 BDR 。3)计算新的 DR ;如果有一个或多个路由器被 Hello 报文宣告为 DR ,则选择其中具有最高优先级的 路由器作为DR,如果优先级相等,则选择具有最大路由器ID的路由器将作为 DR。如果没有一个路由器被宣告为 DR,则将新选出来的 BDR作为DR。4) 如果某个路由器新变成 DR或BDR,或者某路由器不再成为 DR或BDR,则要重复 步骤 2 和步骤 3,然后再到步骤 5。例如某路由器成为 DR 后,在重复步骤 2 时,它 就不能作为BDR。这样
41、可以保证某路由器不被同时选为DR和BDR。5) 按照计算结果,本路由器有可能成为DR 或 BDR ,若这样,它将承担相应的职责,并设置相应的接口状态。如果本路由器成为DR,则接口状态为 DR ;如本路由器成为 BDR ,则接口状态为 BDR ;对其它情况,则接口状态为 DROther 。6) 如果是NBMA网络,并且本路由器成为 DR或BDR,则必须开始发送 Hello报文给 不符合成为 DR 条件的邻居路由器。7)如果以上计算导致 DR或BDR发生改变,则这个接口上的紧邻关系也需要加以更改。一些紧邻关系需要形成, 另一些紧邻关系需要解除。 为此,为所有邻居状态在 2-Way 以上的邻居产生一
42、个 AdjOk? 事件,这样,可以触发对紧邻关系合法性的检查。 DR、BDR 的选取之所以这么复杂, 主要是为在 DR 失效时, BDR 可以平滑的变为 DR。 简单说来,当 OSPF 路由器成为活动态并发现其邻居后,需要检查活动的 DR 和 BDR。 如果存在DR或BDR,则接受他们。如果没有 BDR,则需要选取具有最高优先权的路由器 为BDR,如果优先权相同,则选取具有最高路由器ID的路由器为BDR。如果没有DR,则将BDR选为DR,并重选BDR。值得注意的是,优先权影响DR和BDR的选取,但不能控制已经活动的 DR、BDR,也就是说在 DR、BDR选举出来后,具有更高优先权的邻居路 由器
43、不能再成为 DR或BDR,最初的DR、BDR始终将有效。一旦 DR、 BDR 选举出来, DR 和其他路由器 DROthers 将建立紧邻关系。但各路由器 的 Hello 报文仍然采用多播地址 AllSPFRouters (224.0.0.5)发送,以跟踪邻居关系。其他路 由器 DROthers 发送更新报文时应以多播地址 AllDRRouters(224.0.0.6) 发送,只有 DR 和 BDR 监听并接收该地址的报文,而 DR 发送更新报文时应以多播地址 AllSPFRouters ( 224.0.0.5) 发送,使所有其他路由器 DROthers 都能接收到,而不是向每个紧邻单独发送更
44、新报文,这 样可以提高效率。7.OSPF 接口7.1 OSPF 接口数据OSPF 协议主要关心链路和链路状态。在发送Hello 报文、形成紧邻关系、发送 LSA 通告之前,必须要了解本身的接口状态及参数。 OSPF 路由器用自身的接口数据来构造 Hello 报文,通过发送 Hello 报文,将本接口的信息发送给邻居。的接口状态主要包括以下参数: IP Address and Mask : 接口的 IP 地址及掩码,从该接口上发送 OSPF 报文时应将它作为 IP 的源地址。Area ID :接口及所连网络所属的 OSPF 区域 ID 。从该接口发送 OSPF 报文的区域 ID。 Router
45、ID :作为宣告OSPF报文的路由器ID。Network Type :接口所连网络的网络类型,有点对点、广播、 NBMA 、一点对多点、虚拟链 路等网络。Cost: 从本接口发送报文的费用,影响 LSA 中的 metric。InfTransDelay : LSA 通告离开该接口的延时时间,每个 LSA 离开该接口时,要在其寿命域 加上该时间。State: 接口所处的状态,是有限状态机中的某一状态。Router Priority : 路由器在该接口上的优先级。在多点访问网络上将影响到DR、BDR 的选取。Designated Router : 在多点访问网络上,需要选取一个 DR 来描述该网络的
46、状态。一个 DR 需要用其路由器 ID 和该路由器在该接口的 IP 地址表示。 DR 和该网络上的其它路由 器构成紧邻关系, DR 用网络 LSA 来通告该网络的状态, 在网络 LSA 中将标识该 DR 的接口 IP 地址作为链路状态 ID。Backup Designated Router :在多点访问网络上,需要选取一个BDR ,作为备用 DR 来描述该网络的状态。一个 BDR 需要用其路由器 ID 和该路由器在该接口的 IP 地址表示。BDR 与该网络上的其他路由器构成紧邻关系。HelloInterval : 在该接口上发送 Hello 报文的时间间隔。RouterDeadInterval
47、 : 在该时间间隔内应该从该接口接收到由邻居发来的 Hello 报文,若在 此时间内,未从邻居收到 Hello 报文,则可认为邻居已处于非活动状态。Wait Timer :在选取 DR、BDR 之前, 等待邻居在 Hello 报文中宣告 DR 、BDR 的时间间隔。RxmtInterval :在发送数据描述包和链路状态请求包时未能收到 OSPF 确认包,需要重新发 送这些 OSPF 报文的时间间隔。Hello Timer :设置 HelloInterval 的一个定时器, 当时间到达时, 应在该接口上发送一个 Hello 报文。neighboring Routers : 有效邻居路由器列表,由
48、 Hello 报文产生该邻居列表。紧邻关系要从 该邻居列表中产生。AuType :安全鉴权类型。Authentication Key : 安全鉴权值。7.2 OSPF 接口状态机OSPF 接口在完全有效之前, 将经历一系列状态, 包括 Down 、Point-to-Point 、Waiting 、 DR 、 Backup 、 Drother 、 LoopBack 等 7 种状态。Down : 是接口的初始状态。此时接口不能使用,所有的接口参数被设置为初始值,在接口 上既不能发送也不能接收各种协议包。Point-to-Point : 该接口状态仅适用于点对点、一点对多点和虚拟链路的网络类型。当接
49、口 状态迁移到该状态时,该接口已完全有效,可以间隔发送 Hello 报文,并和另一端的邻 居开始试图建立紧邻关系。Waiting : 该接口状态仅适用于广播网络和 NBMA 网络类型。在该状态下,路由器将通过 Hello 报文选取 DR 、BDR 。为此,当接口迁移到该状态时,将发送和接收Hello 报文,设置等待时间。只有在该状态下路由器试图识别DR 和 BDR ,这样可以避免 DR、BDR的太多变化。DR :仅适用于广播和 NBMA 网络,在该状态下,本路由器在该接口及所连网络上是DR ,试图和该接口网络上的其他路由器建立紧邻关系。 将由本路由器产生网络 LSA ,该网络 LSA 包括网络
50、所连的所有路由器(包括 DR 自己)。Backup :仅适用于广播和 NBMA网络,在该状态下,路由器在该接口及所连网络上是BDR ,在DR失效时,它将提升为 DR。它也试图和该接口网络上的其他路由器建立紧邻关系。它在洪泛过程中与 DR的作用过程有所不同。DRother :仅适用于广播和 NBMA网络,在该状态下,路由器在该接口及所连网络上既不是DR也不是BDR。它将和DR、BDR形成紧邻关系,并且跟踪网络上的邻居关系。Loopback :在该状态下,接口被软件或硬件环回。在该接口上不能发送报文,但在路由器LSA中仍然能通告接口的IP地址,使测试包能够发现其接口地址。下图揭示了在外部事件作用下
51、OSPF接口状态的迁移过程:在状态迁移过程中,需要有以下事件来触发各状态的迁移:IE1(InterfaceUp):底层协议指示网络接口可以使用,对点对点、一点对多点、虚拟链路等 网络类型,进入 Point-to-Point状态,对广播网络、NBMA网络等多点访问网络类型, 进入Waiting状态。IE2(InterfaceDwon):底层协议指示网络接口不能使用,进入Down状态。IE3(Looplnd):网络管理员或底层协议指示网络接口被环回,进入Loopback状态。IE4( Un Loop In d):网络管理员或底层协议指示网络接口环回被撤消,进入Dow n状态。IE5( Backup
52、Seen):检测到或未检测到 BDR的存在。从邻居收到一个Hello报文后,若本路由器和邻居已具有双向通信能力,即在 Hello 报文中能看到自己,则可以用两种方法 判断是否是 BackupSeen: a) 从邻居收到一个 Hello 报文,在报文中该邻居被宣告为 BDR ;b) 从邻居收到一个 Hello 报文,在报文中该邻居被宣告为 DR 并指示无 BDR 存 在。若符合其中某一条件,则进入DR 、BDR 选取状态。IE6(WaitTimer) :等待 DR 、BDR 时间到,进入 DR、BDR 选取状态。IE7 :本路由器被选择为该接口网络的DR,进入DR状态。IE8 :本路由器被选择为
53、该接口网络的BDR,进入BDR状态。IE9 :本路由器既没有被选择为该接口网络的DR,也没有成为BDR,进入DRother状态。IE10(NeighborChange) :在该网络接口上, 有效的双向邻居关系发生变化, 将重新进行 DR、 BDR 的选取:1) 和一个新邻居建立了双向通信,也就是说产生了一个新邻居, 其邻居状态迁移到 2-Way 状态以上;2) 和一个邻居的双向通信已失效,也就是说邻居状态迁移到Init 以下状态;3) 从一个双向邻居收到一个Hello 报文,并指示自己成为新的 DR 或 BDR;4) 从 DR 路由器收到一个 Hello 报文,并指示它不再是 DR;5) 从
54、BDR 路由器收到一个 Hello 报文,并指示它不再是 BDR;6) 从一个双向邻居处收到一个Hello 报文,其优先级发生变化;7) RouterDeadInterval 时间已到,但不能从 DR 或 BDR 或两者的路由器收到 Hello 报文。当接口状态发生变化时,有可能需要产生新的路由器 LSA (见RFC2178 Section 12.4),也有可能需要对邻居状态作出行动( Section 10.3),改变邻居状态。8 OSPF 邻居在OSPF的接口上,需要确定其邻居。确定邻居的目的是要和邻居建立一种紧邻关系, 最终在紧邻间传送路由信息。建立紧邻关系,需要经过以下几个步骤:1 )发
55、现邻居;2) 双向通信。在 Hello 报文中,两邻居都能在邻居列表中发现对方的路由器ID。3) 数据库同步。邻居间相互交换数据库描述、链路状态请求、链路状态更新报文,以确保Master ,另一邻居为两邻居具有相同的链路状态数据库。为达到该目的,一个邻居为Slave,由Master控制数据库描述的交换。4) 构成紧邻关系。 邻居关系的建立和维持要通过相互交换 Hello 报文来实现。在点对点或广播型网络上,Hello 报文是发向多播地址 AllSPFRouters(224.0.0.5) ,在 NBMA 、一点对多点、虚拟链路等 网络上, Hello 报文是发向一个具体的目标地址,是单播方式。8
56、1 邻居数据结构从本路由器接口上接收到 Hello 报文后, 要将报文中所携带的有关邻居路由器的信息保 存下来,形成邻居数据库。具体包括以下内容:Neighbor ID :邻居路由器 ID 。Neighbor IP Address :连接在该网络上的邻居接口的IP 地址, 在接收到 Hello 报文时获取得到。当 OSPF 报文单播给邻居时,该地址即是目的地址。Area ID :邻居接口所在的区域ID,若要构成邻居,区域 ID必须相同。Interface : 指示邻居被本路由器的哪个接口相连。Neighbor Priority :邻居的优先级,由 Hello 报文携带。State: 邻居在有限状态机中处于什么状态。Inactivity Timer : 未能
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年江西公务员考试试题真题
- 普通日语高考试卷及答案
- 继电保护习题和答案
- 爱丽丝漫游题目及答案
- leetcode题目及答案简易
- 2025年环保产业园园区循环经济模式与区域产业布局优化实践
- 2025年应急救援预案和应急救援知识答题试题及答案
- 游戏化营销在品牌传播中的品牌故事讲述与情感营销策略报告
- 卫辉市社区工作者招聘笔试真题2024
- 2025-2030物流机器人场景渗透率调查及人机协作优化方案
- 2023-2024年全国卷英语双向细目表
- 节日期间纪检监督检查记录表
- GB/T 311.1-2012绝缘配合第1部分:定义、原则和规则
- (完整word)600习题《工会基础知识试题及答案》2020.1.6
- GB 29518-2013柴油发动机氮氧化物还原剂尿素水溶液(AUS 32)
- 第三单元名著导读《儒林外史之严贡生、严监生》课件-部编版语文九年级下册
- 中医药法宣讲余课件
- 2022年郑州城市职业学院辅导员招聘考试笔试试题及答案解析
- 鲁班奖工程复查参考表格
- Q∕SY 17375-2016 钻井液用固体润滑剂石墨类
- 契税补贴申请表
评论
0/150
提交评论