OSPF(Open Shortest Path First)
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)的更多相关文章
- OSPF(Open Shortest Path First开放式最短路径优先 -链路状态路由协议
OSPF分为OSPFv2和OSPFv3两个版本,其中OSPFv2用在IPv4网络,OSPFv3用在IPv6网络 思科OSPF的协议管理距离(AD)是110,华为OSPF的协议管理距离是10 通告网络接 ...
- hdu-----(2807)The Shortest Path(矩阵+Floyd)
The Shortest Path Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others ...
- zoj 2760 How Many Shortest Path 最大流
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1760 Given a weighted directed graph ...
- The Shortest Path in Nya Graph
Problem Description This is a very easy problem, your task is just calculate el camino mas corto en ...
- hdu 3631 Shortest Path(Floyd)
题目链接:pid=3631" style="font-size:18px">http://acm.hdu.edu.cn/showproblem.php?pid=36 ...
- Shortest Path(思维,dfs)
Shortest Path Accepts: 40 Submissions: 610 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: ...
- Shortest Path
Shortest Path Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)T ...
- (中等) 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 ...
- 【ZOJ2760】How Many Shortest Path
How Many Shortest Path 标签: 网络流 描述 Given a weighted directed graph, we define the shortest path as th ...
随机推荐
- Spring-boot 国际化
在application.properties文件中配置 spring.message.basename=i18n.login 页面使用 th:text="#{login.tip}" ...
- php base64图片保存
function base64_image_content($base64_image_content,$path){ //匹配出图片的格式 if (preg_match('/^(data:\s*im ...
- javaWeb之使用servlet搭建服务器入门
servlet: 百度百科说法: Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,主要功能在于交互式地浏览和修改 ...
- Object.freeze(); 方法冻结一个对象。
Object.freeze() 方法可以冻结一个对象.一个被冻结的对象再也不能被修改: 冻结了一个对象则不能向这个对象添加新的属性,不能删除已有属性,不能修改该对象已有属性的可枚举性.可配置性.可写性 ...
- sass—使用自定义function和@each实现栅格布局
/*使用自定义function和@each实现栅格布局*/ @function buildLayout($num: 5){ $map: (defaultValue: 0); //不能直接生成col,需 ...
- Java获取Ip发送邮件
import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import javax.servlet. ...
- 原子动作检测 A Better Baseline for AVA
本文将Faster-RCNN用在了I3D的feature map上,用于视频中多人多动作的检测 challege比赛第二名的整体方法是将Faster-RCNN作用在I3Dfeature上.训练时,以标 ...
- 期货大赛项目|八,ueditor的应用
百度开发的富文本编辑器还是很不错的,可以已经不维护了 下载ueditor1_4_3_3-utf8-net放到项目中 找到net文件夹下config.json 修改以下两行 "imageUrl ...
- 初识Python,简单初学代码
第一个自己手写的代码~ If 与 Elif #!/usr/bin/env python # - * - coding:uft8 - * - Inp = input ( '请输入你的会员级别' ) if ...
- redis的编译安装
参考文献 https://www.cnblogs.com/JiangLe/p/5878160.html https://www.cnblogs.com/stulzq/p/9288401.html re ...