1、概述

路由协议OSPF全称为Open Shortest Path First,也就开放的最短路径优先协议,因为OSPF是由IETF开发的,所以所有厂商都可以用。

OSPF的流量使用IP协议号。

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后再转发。

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

  1. OSPF(Open Shortest Path First开放式最短路径优先 -链路状态路由协议

    OSPF分为OSPFv2和OSPFv3两个版本,其中OSPFv2用在IPv4网络,OSPFv3用在IPv6网络 思科OSPF的协议管理距离(AD)是110,华为OSPF的协议管理距离是10 通告网络接 ...

  2. hdu-----(2807)The Shortest Path(矩阵+Floyd)

    The Shortest Path Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others ...

  3. zoj 2760 How Many Shortest Path 最大流

    题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1760 Given a weighted directed graph ...

  4. The Shortest Path in Nya Graph

    Problem Description This is a very easy problem, your task is just calculate el camino mas corto en ...

  5. hdu 3631 Shortest Path(Floyd)

    题目链接:pid=3631" style="font-size:18px">http://acm.hdu.edu.cn/showproblem.php?pid=36 ...

  6. Shortest Path(思维,dfs)

    Shortest Path  Accepts: 40  Submissions: 610  Time Limit: 4000/2000 MS (Java/Others)  Memory Limit: ...

  7. Shortest Path

    Shortest Path Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)T ...

  8. (中等) HDU 4725 The Shortest Path in Nya Graph,Dijkstra+加点。

    Description This is a very easy problem, your task is just calculate el camino mas corto en un grafi ...

  9. 【ZOJ2760】How Many Shortest Path

    How Many Shortest Path 标签: 网络流 描述 Given a weighted directed graph, we define the shortest path as th ...

随机推荐

  1. Spring-boot 国际化

    在application.properties文件中配置 spring.message.basename=i18n.login 页面使用 th:text="#{login.tip}" ...

  2. php base64图片保存

    function base64_image_content($base64_image_content,$path){ //匹配出图片的格式 if (preg_match('/^(data:\s*im ...

  3. javaWeb之使用servlet搭建服务器入门

    servlet: 百度百科说法: Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,主要功能在于交互式地浏览和修改 ...

  4. Object.freeze(); 方法冻结一个对象。

    Object.freeze() 方法可以冻结一个对象.一个被冻结的对象再也不能被修改: 冻结了一个对象则不能向这个对象添加新的属性,不能删除已有属性,不能修改该对象已有属性的可枚举性.可配置性.可写性 ...

  5. sass—使用自定义function和@each实现栅格布局

    /*使用自定义function和@each实现栅格布局*/ @function buildLayout($num: 5){ $map: (defaultValue: 0); //不能直接生成col,需 ...

  6. Java获取Ip发送邮件

    import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import javax.servlet. ...

  7. 原子动作检测 A Better Baseline for AVA

    本文将Faster-RCNN用在了I3D的feature map上,用于视频中多人多动作的检测 challege比赛第二名的整体方法是将Faster-RCNN作用在I3Dfeature上.训练时,以标 ...

  8. 期货大赛项目|八,ueditor的应用

    百度开发的富文本编辑器还是很不错的,可以已经不维护了 下载ueditor1_4_3_3-utf8-net放到项目中 找到net文件夹下config.json 修改以下两行 "imageUrl ...

  9. 初识Python,简单初学代码

    第一个自己手写的代码~ If 与 Elif #!/usr/bin/env python # - * - coding:uft8 - * - Inp = input ( '请输入你的会员级别' ) if ...

  10. redis的编译安装

    参考文献 https://www.cnblogs.com/JiangLe/p/5878160.html https://www.cnblogs.com/stulzq/p/9288401.html re ...