跟随老侃一起学习OSPF

侃网络
• 阅读 317

OSPF定义

开放式最短路径优先OSPF(Open Shortest Path First)是IETF组织开发的一个基于链路状态的内部网关协议(Interior Gateway Protocol)。 目前针对IPv4协议使用的是OSPF Version 2(RFC2328);针对IPv6协议使用OSPF Version 3(RFC2740)。如无特殊说明,本文中所指的OSPF均为OSPF Version 2。

为什么使用OSPF?

在OSPF出现前,网络上广泛使用RIP(Routing Information Protocol)作为内部网关协议。

由于RIP是基于距离矢量算法的路由协议,存在着收敛慢、路由环路、可扩展性差等问题,所以逐渐被OSPF取代。

OSPF作为基于链路状态的协议,能够解决RIP所面临的诸多问题。此外,OSPF还有以下优点:

OSPF采用组播形式收发报文,这样可以减少对其它不运行OSPF路由器的影响。

OSPF支持无类型域间选路(CIDR)。

OSPF支持对等价路由进行负载分担。

OSPF支持报文加密。

OSPF特点

OSPF把自治系统AS(Autonomous System)划分成逻辑意义上的一个或多个区域;

OSPF通过LSA(Link State Advertisement)的形式发布路由;

OSPF依靠在OSPF区域内各设备间交互OSPF报文来达到路由信息的统一;

OSPF报文封装在IP报文内,可以采用单播或组播的形式发送。

OSPF Router-ID介绍以及选取方式

一台路由器如果要运行OSPF协议,必须存在Router ID。Router ID是一个32比特无符号整数,是一台路由器在自治系统中的唯一标识。

Router ID的选取有两种方式:

通过命令行手动配置。 设备自动设定。 如果没有手动配置Router ID,设备会从当前接口的IP地址中自动选取一个作为Router ID。其选取顺序是: 优先从Loopback地址中选择最大的IP地址作为Router ID。 如果没有配置Loopback接口,则在接口地址中选取最大的IP地址作为Router ID。 只有重新配置系统的Router ID或者OSPF的Router ID,并且重新启动OSPF进程后,才会进行Router ID的重新选取。

OSPF区域组作用

普通区域

缺省情况下,普通OSPF区域内的OSPF设备是不会产生缺省路由的,即使它有缺省路由。

当网络中缺省路由通过其他路由进程产生时,路由器必须将缺省路由通告到整个OSPF自治域中。实现方法是在ASBR上手动通过命令进行配置,产生缺省路由。配置完成后,路由器会产生一个缺省ASE LSA(Type5 LSA),并且通告到整个OSPF自治域中。

如果ASBR上没有缺省路由,则路由器不会通告缺省路由。

Stub区域

Stub区域不允许自治系统外部的路由(Type5 LSA)在区域内传播。

区域内的路由器必须通过ABR学到自治系统外部的路由。实现方法是ABR会自动产生一条缺省的Summary LSA(Type3 LSA)通告到整个Stub区域内。这样,到达自治系统的外部路由就可以通过ABR到达。

Totally STUB区域

Totally Stub区域既不允许自治系统外部的路由(Type5 LSA)在区域内传播,也不允许区域间路由(Type3 LSA)(除了缺省的Type3 LSA之外)在区域内传播。

区域内的路由器必须通过ABR学到自治系统外部和其他区域的路由。实现方法是配置Totally Stub区域后,ABR会自动产生一条缺省的Summary LSA(Type3 LSA)通告到整个Totally Stub区域内。这样,到达自治系统外部的路由和其他区域间的路由都可以通过ABR到达。

NSSA(Not-So-Stubby Area)区域

NSSA区域允许引入少量通过本区域的ASBR到达的外部路由,但不允许其他区域的外部路由ASE LSA(Type5 LSA)在区域内传播。如果骨干区域中存在Full状态的邻居和Up状态的接口,ABR会自动产生一条缺省的NSSA LSA(Type7 LSA),通告到整个NSSA区域内。这样,除了某少部分路由通过NSSA的ASBR到达,其它路由都可以通过NSSA的ABR到达。在ASBR上手动通过命令进行配置,使ASBR产生一条缺省的NSSA LSA(Type7 LSA),通告到整个NSSA区域内。这样,外部路由也可以通过本区域NSSA的ASBR到达。

Type7 LSA缺省路由不会在ABR上转换成Type5 LSA缺省路由泛洪到整个OSPF域。

Totally NSSA区域

Totally NSSA区域既不允许其他区域的外部路由ASE LSA(Type5 LSA)在区域内传播,也不允许区域间路由(Type3 LSA)(除了缺省的Type3 LSA之外)在区域内传播。

区域内的路由器必须通过ABR学到其他区域的路由。实现方法是配置Totally NSSA区域后,ABR会自动产生缺省的Type3 LSA和Type7 LSA通告到整个Totally NSSA区域内。这样,自治系统外部路由和区域间路由都可以通过ABR在区域内传播。

OSPF报文

Hello报文:周期性发送,用来发现和维持OSPF邻居关系。 DD报文(Database Description packet):描述本地LSDB(Link State Database)的摘要信息,用于两台设备进行数据库同步。 LSR报文(Link State Request packet):用于向对方请求所需的LSA。设备只有在OSPF邻居双方成功交换DD报文后才会向对方发出LSR报文。 LSU报文(Link State Update packet):用于向对方发送其所需要的LSA。 LSAck报文(Link State Acknowledgment packet):用来对收到的LSA进行确认。

OSPF LSA类型

Router-LSA(Type1):每个设备都会产生,描述了设备的链路状态和开销,在所属的区域内传播。 Network-LSA(Type2):由DR(Designated Router)产生,描述本网段的链路状态,在所属的区域内传播。 Network-summary-LSA(Type3):由ABR产生,描述区域内某个网段的路由,并通告给其他区域(除了Totally Stub和Totally NSSA区域)。 ASBR-summary-LSA(Type4):由ABR产生,描述本区域到其他区域中的ASBR的路由,通告给除ASBR所在区域的其他区域(除了Stub区域、Totally Stub、NSSA区域和Totally NSSA区域)。 AS-external-LSA(Type5):由ASBR产生,描述到AS外部的路由,通告到所有的区域(除了Stub区域、Totally Stub、NSSA区域和Totally NSSA区域)。 NSSA LSA(Type7):由ASBR产生,描述到AS外部的路由,仅在NSSA区域内传播。 Opaque LSA(Type9/Type10/Type11): Type9 LSA仅在接口所在网段范围内传播。用于支持GR的Grace LSA就是Type9 LSA的一种。 Type10 LSA在区域内传播。用于支持TE的LSA就是Type10 LSA的一种。 Type11 LSA在自治域内传播,目前还没有实际应用的例子。

OSPF支持的网络类型

广播类型(Broadcast)、NBMA类型(Non-Broadcast Multi-Access)、点到多点P2MP类型(Point-to-Multipoint)、点到点P2P类型(point-to-point)

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Wesley13 Wesley13
2年前
PPDB:今晚老齐直播
【今晚老齐直播】今晚(本周三晚)20:0021:00小白开始“用”飞桨(https://www.oschina.net/action/visit/ad?id1185)由PPDE(飞桨(https://www.oschina.net/action/visit/ad?id1185)开发者专家计划)成员老齐,为深度学习小白指点迷津。
Wesley13 Wesley13
2年前
FLV文件格式
1.        FLV文件对齐方式FLV文件以大端对齐方式存放多字节整型。如存放数字无符号16位的数字300(0x012C),那么在FLV文件中存放的顺序是:|0x01|0x2C|。如果是无符号32位数字300(0x0000012C),那么在FLV文件中的存放顺序是:|0x00|0x00|0x00|0x01|0x2C。2.  
Wesley13 Wesley13
2年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
2年前
PHP创建多级树型结构
<!lang:php<?php$areaarray(array('id'1,'pid'0,'name''中国'),array('id'5,'pid'0,'name''美国'),array('id'2,'pid'1,'name''吉林'),array('id'4,'pid'2,'n
Wesley13 Wesley13
2年前
5种报文、8种邻居状态机详解OSPF工作原理
!(https://oscimg.oschina.net/oscnet/15fa976975445715010838f3d8648ebf5b7.gif"引导关注")前言上一章节介绍了OSPF相比RIP具有无环路、路由收敛速度快、可扩展性好的特点。知识卡片|链路状态路由协议OSPF凭什么会取代RIP?(ht
Stella981 Stella981
2年前
Jenkins 插件开发之旅:两天内从 idea 到发布(上篇)
本文首发于:Jenkins中文社区(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fjenkinszh.cn)!huashan(https://oscimg.oschina.net/oscnet/f499d5b4f76f20cf0bce2a00af236d10265.jpg)
Wesley13 Wesley13
2年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
侃网络 侃网络
2个月前
跟随老侃一起学习OSPF报文格式 (二)
OSPF报文格式OSPF用IP报文直接封装协议报文,协议号为89。OSPF分为5种报文:Hello报文、DD报文、LSR报文、LSU报文和LSAck报文。hello报文最常用的一种报文,其作用为建立和维护邻接关系,周期性的在使能了OSPF的接口上发送。报文
侃网络 侃网络
1个月前
OSPF产生的LSA格式(三)
OSPF产生的LSA格式
侃网络
侃网络
Lv1
侃网络,专注于网络多年,丰富的实战经验,多年技术沉淀,微信公众号:史上最全案例库
文章
5
粉丝
0
获赞
1