OSPF(Open Shortest Path First)

---恢复内容开始---

1、概述

路由协议OSPF全称为Open Shortest Path First,也就开放的最短路径优先协议,因为OSPF是由IETF开发的。

OSPF的流量使用IP协议号89。

OSPF对网络没有跳数限制,支持 Classless Interdomain Routing (CIDR)和Variable-Length Subnet Masks (VLSMs),没有自动汇总功能。

OSPF并不会周期性更新路由表,而采用增量更新,即只在路由有变化时,才会发送更新,并且只发送有变化的路由信息;事实上,OSPF是间接设置了周期性更新路由的规则,因为所有路由都是有刷新时间的,当达到刷新时间阀值时,该路由就会产生一次更新,默认时间为1800秒,即30分钟,所以OSPF路由的定期更新周期默认为30分钟。

OSPF所有路由的管理距离(Ddministrative Distance)为110,OSPF只支持等价负载均衡。

OSPF是典型的链路状态路由协议,路由器之间交换的并不是路由表,而是链路状态,OSPF通过获得网络中所有的链路状态信息,从而计算出到达每个目标精确的网络路径。

2、OSPF术语

Router-ID

RID是路由器在ospf中的唯一标识,选举原则,思科会自动在所有环回口中选择最大的IP,做RID,如果没有环回口,则选择活动的物理口IP最大的一个。同时也可以手动指定。

RID绝对不可以重名,否则路由器收到的链路状态,就无法确认发起者的身份。

注:如果一台路由器收到一条链路状态,无法到达该Router-ID的位置,就无法到达链路状态中的目标网络,Router-ID只在OSPF启动时计算,或者重置OSPF进程后计算。

COST

OSPF会自动计算接口上的Cost值,但也可以通过手工指定该接口的Cost值,手工指定的优先于自动计算的值。

OSPF计算的Cost,同样是和接口带宽成反比,带宽越高,Cost值越小。到达目标相同Cost值的路径,可以执行负载均衡,最多6条链路同时执行负载均衡。

链路状态LSA

链路状态(LSA)就是OSPF接口上的描述信息,例如接口上的IP地址,子网掩码,网络类型,Cost值等等,因为ospf路由器之间交换的并不是路由表,而是链路状态信息。

OSPF区域

因为OSPF路由器之间会将所有的链路状态(LSA)相互交换,毫不保留,当网络规模达到一定程度时,LSA将形成一个庞大的数据库,势必会给OSPF计算带来巨大的压力;为了能够降低OSPF计算的复杂程度,缓存计算压力,OSPF采用分区域计算,将网络中所

有OSPF路由器划分成不同的区域,每个区域负责各自区域精确的LSA传递与路由计算,然后再将一个区域的LSA简化和汇总之后转发到另外一个区域,这样一来,在区域内部,拥有网络精确的LSA,而在不同区域,则传递简化的LSA。

OSPF的区域0就是所有区域的核心,称为BackBone 区域(骨干区域),而其它区域称为Normal 区域(常规区域),在理论上,所有的常规区域应该直接和骨干区域相连,常规区域只能和骨干区域交换LSA,常规区域与常规区域之间即使直连也无法互换LSA。

Internal Router(IR)

路由器所有接口都属于同一个区域。

Area Border Router (ABR)

一台OSPF路由器属于多个区域,即该路由器的接口不都属于一个区域。

Autonomous System Boundary Router (ASBR)

一台OSPF路由器将外部路由协议重分布进OSPF

注:

★一台路由器可以运行多个OSPF进程,不同进程的OSPF,可视为没有任何关系,如需要获得相互的路由信息,需要重分布。

★每个OSPF进程可以有多个区域,而路由器的链路状态数据库是分进程和分区域存放的。

DR/BDR

当多台OSPF路由器连到同一个多路访问网段时, 通过在多路访问网段中选择出一个核心路由器,称为DR(Designated Router),网段中所有的OSPF路由器都和DR互换LSA,这样一来,DR就会拥有所有的LSA,并且将所有的LSA转发给每一台路由器;DR就像

是该网段的LSA中转站,所有的路由器都与该中转站互换LSA,如果DR失效后,那么就会造成LSA的丢失与不完整,所以在多路访问网络中除了选举出DR之外,还会选举出一台路由器作为DR的备份,称为BDR(Backup Designated Router),BDR在DR不可用时,代替

DR的工作,而既不是DR,也不是BDR的路由器称为Drother,事实上,Dother除了和DR互换LSA之外,同时还会和BDR互换LSA。

选举原则:

首先比较优先,选举优先级最高的成为DR,优先级数字越大,表示优先级越高,被选为DR的几率就越大,次优先级的为BDR,优先级范围是0-255,默认为1,优先级为0表示没有资格选举DR和BDR。

其次比较RID,如果在优先级都相同的情况下,Route-Id 最大的成为DR,其次是BDR,数字越大,被选为DR的几率就越大。

注:★ Drother路由器将数据包发向目标地址224.0.0.6,只能被DR和BDR接收,其它Drother不能接收;而DR和BDR将数据包发向目标地址224.0.0.5,可以被所有路由器接收。

3、OSPF数据报

Hello

建立和维护OSPF邻居。

DBD

交换LSDB的摘要信息

LSR

请求某条特定的LSA信息

LSU

发送给邻居,邻居所请求的LSA

LSACK

用于确定LSA的接受

4、OSPF启动状态

Down →   路由器刚刚启用OSPF进程,Hello包还没收到,在此进程,可以向外发送Hello包,以试图发现邻居。

Attempt →非广播多路访问中,有这个状态,需要手动指定邻居

Init →只是OSPF路由器一方收到了另一方的Hello,但并没有双方都交换Hello,也就是对方的Hello中还没有将自己列为邻居。

Two-way →双方都已经交换了Hello信息,并且从Hello中看到对方已经将自己列为邻居,并且如果是需要选举DR和BDR的话,也已经选举出来,但OSPF邻居之间并不一定就会交换LSA,如果不需要交换LSA,则永远停留在此状态,如果需要形成邻接并互相交换LSA,则状态继续往下进行,(比如Drother与Drother之间将永远停留在Two-way状态,因为Drother与Drother之间不需要交换LSA。)

Exstart →在邻居之间交换完整的LSA之前,会先发送DBD,LSR,谁先发,谁后发,需要确定顺序,在此阶段,就是确定邻居的主从关系(Master---slave),由主路由器向从路由器发送信息。

           注:在任何网络环境下,OSPF在交换LSA之前,都需要确定主从关系。

Exchange → 交换DBD的过程,发送LSR。

Loading →邻居收到LSR,回复LSU。

Full→表示数据库已经同步,数据库状态变成了收敛,但路由表却还在计算当中。

注:除了Two-way和Full这两个状态,邻居停留在任何状态,都是不正常。

5、OSPF网络类型

OSPF在运行时,必须考虑链路层的类型,称为OSPF网络类型,网络类型可分为如下几种:

点到点

点到多点

广播

非广播

由于不同的网络类型,将会影响到OSPF的Hello时间与Dead时间,关系到DR与BDR的选举与否,影响到OSPF邻居是自动建立还是手工建立,总结如下表:


网络类型


Hello时间


选举DR/BDR


邻居建立方式


点到点

(Point-To-Point)


10秒



自动


点到多点

(Point-To-Multipoint)


30秒



自动


广播

(Broadcast )


10秒



自动


非广播

(Non-Broadcast )


30秒



手工


点到多点非广播

(Point-To-Multipoint Non-Broadcast)


30秒



手工

注★OSPF邻居的成功建立,并不要求双方网络类型一致,但双方网络类型不一致,将可能导致链路状态数据库中的条目无法进入路由表。

6、OSPF LSA类型

类型 1  (Router Link)

任何一台路由器都会产生,每台路由器的每个接口,都由自己的链路状态,即使有多个OSPF接口,也只有一条1类LSA,因为所有接口的链路状态会打包成一条1类LSA。

类型 2  (Network Link)

只有在选举DR/BDR的网络类型中才会产生,并却只有DR产生。

类型 3  (Summary Link)

类型3的LSA就是将一个区域的LSA发向另一个区域时的汇总和简化,ABR其实就是将LSA 1汇总和简化,变成LSA 3后再发到另一个区域的。

类型 4  (ASBR Summary Link)

ABR产生,主要告诉其它区域如何前往ASBR,泛洪范围ABR连接的其他区域

类型 5  (External Link)

ASBR产生,用于通告前往自治域系统外部的路由,并传遍整个ospf自主系统,泛洪范围整个自治域

类型 7  (NSSA Link)

NSSA将外部路由重分布进OSPF时,路由信息使用类型7来表示,LSA 7由NSSA区域的ASBR产生,LSA 7也只能在NSSA区域内传递,如果要传递到NSSA之外的其它区域,需要同时连接NSSA与其它区域的ABR将LSA 7 转变成LSA 5后再转发。

---恢复内容结束---

原文地址:https://www.cnblogs.com/Wendong-Xia/p/9589931.html

时间: 2024-11-01 04:06:45

OSPF(Open Shortest Path First)的相关文章

OSPF(Open Shortest Path First)协议

开放式最短路径优先(Open Shortest Path First,OSPF)是目前广泛使用的一种动态路由协议,它属于链路状态路由协议,具有路由变化收敛速度快.无路由环路.支持变长子网掩码(VLSM)和汇总.层次区域划分等优点. 命令模板: ospf 1-----------进入协议视图 area 0-----------进入路由区域 network 明细网段 反掩码 实验如下: 1.   Ospf拓扑图 2.   R1配置: 3.   R2配置: 4.   R3配置: 5.   ping通测

Method for finding shortest path to destination in traffic network using Dijkstra algorithm or Floyd-warshall algorithm

A method is presented for finding a shortest path from a starting place to a destination place in a traffic network including one or more turn restrictions, one or more U-turns and one or more P-turns using a Dijkstra algorithm. The method as sets a

The Shortest Path in Nya Graph HDU - 4725

Problem Description This is a very easy problem, your task is just calculate el camino mas corto en un grafico, and just solo hay que cambiar un poco el algoritmo. If you do not understand a word of this paragraph, just move on.The Nya graph is an un

HDU 4725 The Shortest Path in Nya Graph(构图)

The Shortest Path in Nya Graph Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 13445    Accepted Submission(s): 2856 Problem Description This is a very easy problem, your task is just calculate

干货 | 列生成VRPTW子问题ESPPRC( Elementary shortest path problem with resource constraints)介绍附C++代码

00 前言 各位小伙伴大家好,相信大家已经看过前面column generation求解vehicle routing problems的过程详解.该问题中,子问题主要是找到一条reduced cost最小的合法路径,然后加入到Master Problem中.其实,子问题也是一个著名的NP-Hard问题,今天我们就来介绍一下. 01 ESPPRC 考虑图1.1中描述的网络. 除了每条边的成本c_ij之外,还存在经过边(i,j)的所消耗的资源t_ij,比如时间. 我们的目标是找到从开始节点到结束节

[LeetCode] 847. Shortest Path Visiting All Nodes 访问所有结点的最短路径

An undirected, connected graph of N nodes (labeled?0, 1, 2, ..., N-1) is given as?graph. graph.length = N, and?j != i?is in the list?graph[i]?exactly once, if and only if nodes?i?and?j?are connected. Return the length of the shortest path that visits

Dijkstra’s Shortest Path Algorithm / LeetCode 787. Cheapest Flights Within K Stops

Dijkstra’s Shortest Path Algorithm 实现详见:https://www.geeksforgeeks.org/dijkstras-shortest-path-algorithm-using-priority_queue-stl/ 需要注意的是,priority_queue并无法更新内部的元素,因此我们更新dist的同时,直接把新的距离加入pq即可.pq里虽然有outdated的dist,但是由于距离过长,他们并不会更新dist. // If there is sho

leetcode_1293. Shortest Path in a Grid with Obstacles Elimination_[dp动态规划]

题目链接 Given a m * n grid, where each cell is either 0 (empty) or 1 (obstacle). In one step, you can move up, down, left or right from and to an empty cell. Return the minimum number of steps to walk from the upper left corner (0, 0) to the lower right

10.6最短路径问题(Shortest Path Problem)

10.6最短路径问题(Shortest Path Problem) 前言 最短路径问题分两类:单源最短路径问题和多源最短路径问题 单源最短路径 diskstra算法: 多源最短路径 flody算法 原文地址:https://www.cnblogs.com/SpicyArticle/p/12151077.html