OSPF:开放式最短路径优先协议
无类别链路状态路由协议,组播更新224.0.0.5/6;跨层封装到三层,协议号89;
基于拓扑工作,故更新量大-----需要结构化部署–区域划分、地址规划
触发更新、每30min周期更新

OSPF的数据包:
Hello包
DBD–数据库描述包
LSR–链路状态请求
LSU–链路状态更新 携带各种LSA
LSack–链路状态确认

状态机----OSPF建立时,存在各个阶段;
1、down 本地一旦发出hello包进入下一状态
2、Init初始化 本地接收到的hello包存在本地的RID进入下一状态
3、2way双向通信 邻居关系建立标志;
条件匹配:点到点网络直接进入下一状态;MA网络将进行DR/BDR选举(40S),非DR/BDR间不得进入下一状态;
4、exstart 预启动 使用类似hello的DBD进行主从关系选举,RID大为主,主优先进入下
一状态
5、Exchange 准交换 使用真实的DBD包进行数据库目录共享,需要ACK;
6、Loading 加载 使用LSR/LSU/LSack来获取未知的LSA信息;
7、Full转发 邻接关系建立的标志

OSPF工作过程:
启动配置完成后,本地使用hello包建立邻居关系,生成邻居表;
进行条件匹配,匹配失败者间保持为邻居关系,仅hello包周期保活即可;
匹配成功者间,将使用DBD/LSR/LSU/LSack来获取未知的LSA信息,当收集其网络中所有LSA后,生成LSDB–数据表;之后使用最短路径算法,计算本地到达所有未知网段的最佳路由,然后将其加载路由表中,收敛完成。
结构突变—1、新增网段 发送新的DBD 未知设备会使用LSR获取
2、断开网段 发送新的DBD 未知设备会使用LSR获取

名词:
LSA–链路状态通告 —存在多种类别,携带不同环境下产生的拓扑或路由信息;该信息依赖
LSU数据包传递;
LSDB–链路状态数据库 —各种的LSA的集合
OSPF的收敛行为------LSA洪泛 LSDB同步

配置:
r1(config)#router ospf 1 启动OSPF协议,启动时需要配置进程号,进行号仅具有本地意义
r1(config-router)#router-id 1.1.1.1 全网唯一,手工–环回最大数值–物理接口最大数值
宣告:1、激活 2、路由或拓扑 3、区域划分
r1(config-router)#network 12.1.1.1 0.0.0.0 area 0
r1(config-router)#network 1.1.1.1 0.0.0.0 area 0
宣告时必须携带反掩码

区域划分规则:
1、星型结构
2、必须存在ABR-边界路由器

【1】当启动配置完成后,邻居间使用hello包建立邻居关系,生成邻居表:
Hello包–用于邻居的发现、关系、保活
hello time为10s或30s dead time 为hello time 的4倍;

Hello包中和邻居必须完全一致的参数:hello time和dead time
区域ID
认证字段
末梢区域标记
r2#show ip ospf neighbor

Neighbor ID Pri State Dead Time Address Interface
1.1.1.1 0 FULL/ - 00:00:39 12.1.1.1 Serial1/0
3.3.3.3 0 FULL/ - 00:00:38 23.1.1.2 Serial1/1
状态机
【2】邻居关系建立后,进行条件匹配,匹配失败保持为邻居关系,仅hello包保活
匹配成功成为邻接关系,将使用DBD/LSR/LSU/LSACK来获取未知的LSA信息,生成数据库表:
DBD:携带MTU值;强制邻居间MTU值必须一致,否则卡在exstart或exchange状态;
DBD包中的描述字段:I 为1标示该包为本地发出的第一个DBD包
M为0标示该包为本地发出的最后一个DBD包
MS为1标示本地为主;
隐性确认:从使用主的序列号来对主进行确认;

r1#show ip ospf database 查看数据库简表
OSPF存在各种类别的LSA,简表内仅记录分类的基础信息;

【3】OSPF协议在生成好数据库表后,将基于最短路径规则将最佳路径加载到本地的路由表中
O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2

O标示本地区域内的路由–本地基于拓扑计算所得
O IA 标示其他区域的路由通过ABR导入 --域间路由
O E1/2 标示通过其他协议或进程计算所得,之后ASBR重发布导入 域外路由
ON1/2 标示通过其他协议或进程计算所得,之后ASBR重发布导入,同时本地为NSSA或完
全NSSA区域 -----域外路由

管理距离为110;度量为cost=开销值=参考带宽/接口实际带宽
Ospf选路,就是选择cost值之和最小路径;默认参考带宽为100M;若接口带宽大于参考带宽,将可能导致选路不佳,可以修改参考带宽
r1(config)#router ospf 1
r1(config-router)#default auto-cost reference-bandwidth ?
<1-4294967> The reference bandwidth in terms of Mbits per second
r1(config-router)#default auto-cost reference-bandwidth 1000
注:所有设备均需修改;

【4】OSPF建立邻接关系的条件
网络类型:点到点网络类型 ----必然成为邻接关系
MA----进行DR/BDR选举,所有非DR/BDR仅与DR/BDR建立邻接关系;非DR/BDR间正常保持为邻居关系;
选择规则:1、比较接口优先级,默认为1,大优;
2、若优先级相同,比较RID,数值大优;

干涉选举:
1、DR优选级最大,BDR次大;DR选择为非抢占,故修改优先级后,正常需要重启OSPF进程
r1(config)#interface fastEthernet 0/0
r1(config-if)#ip ospf priority 3
r1#clear ip ospf process
Reset ALL OSPF processes? [no]: yes
2、DR优选级最大,BDR次大;其他设备优先级修改为0,标示不参选;
切记:不能将所有参选接口优先级修改为0;

【5】OSPF接口网络类型
设备接口网络类型: 环回 点到点 BMA NBMA
所谓的OSPF接口网络类型,是指OSPF协议在设备不同网络类型下的不同工作方式;

设备接口网络类型 OSPF 接口网络类型(工作方式)
环回接口 LOOPBACK LOOPBACK 无hello包,发送32位主机路由
串口(HDLC/PPP)点到点 POINT_TO_POINT hello time 10s;不选DR;
以太网接口 BMA BROADCAST hello time 10s;选DR;

MGRE NBMA
注:在tunnel接口上,OSPF默认的工作方式为点到点;这种工作方式在MGRE环境下,将无法正常建立邻居关系—因为点到点工作方式只能和一个邻居建邻;
可以将接口工作方式修改为BROADCAST;切记BROADCAST和POINT_TO_POINT工作方式均为10s的hello time,故能够建立邻居关系,但由于一个选DR,另一个不选,不能正常收敛路由;
r2(config)#interface tunnel 0
r2(config-if)#ip ospf network broadcast
注:若ROADCAST的工作环境为星型或部分网状结构都可能出现DR位置错误问题;
必须修改DR的位置到最合适的地方;

建议:
1、在星型结构中可以定义为broadcast 类型,但注意DR位置;或修改为点到多点工作方式;
2、在部分网状结构中直接定义为点到多点
3、在全连网状建议broadcast ;
r1(config)#interface tunnel 0
r1(config-if)#ip ospf network point-to-multipoint

点到多点工作方式:hello time 为30s;不选DR;
2、不连续骨干

解决方法:
1、tunnel --在两台ABR上建立tunnel,然后将其宣告到OSPF协议中;
缺点:选路不佳,对中间区域周期、触发占用;

2、OSPF虚链路—相当于OSPF关闭了区域限制;
在两台ABR上配置,然后骨干区域的ABR为非骨干区域间的ABR授权;
R2(config)#router ospf 1
R2(config-router)#area 1 virtual-link 4.4.4.4
优点:选路正常,为减少对中间区域的资源占用,取消所有周期信息–hello、更新
缺点:不可靠

3、多进程双向重发布 --在一台设备启动多个进程时,每个进程为独立协议,用于自己的RID,自己的数据库和邻居关系,这些数据库不共享,仅将所以计算所得路径加载到同一张路由表中;若多个进程工作于同一接口上,仅最先启动进程生效;
R4(config)#router ospf 1
R4(config-router)#redistribute ospf 2 subnets
R4(config-router)#exit
R4(config)#router ospf 2
R4(config-router)#redistribute ospf 1 subnets

二、OSPF的数据库表 -----该表格由各种类别的LSA组成;
所有类别LSA均存在以下参数:
LS age: 119 老化时间,周期1800s归0,触发更新归0;最大老化3609;
Options: (No TOS-capability, DC)
LS Type: Router Links 类别名,此处为1类;
Link State ID: 1.1.1.1 link-id—目录中番号
Advertising Router: 1.1.1.1 通告者的RID;
LS Seq Number: 80000003
Checksum: 0x67F8
Length: 60
Number of Links: 3

           传播范围               通告者              携带信息
  • 1

LSA1 Router 单区域(本区域) 本区域内所有设备 本地直连拓扑
LSA2network 本区域 DR MA部分的拓扑
LSA3Summary 整个OSPF区域 ABR O IA 域间路由
LSA4 asbr-summary 除ASBR所在区域 ABR ASBR的位置
外的整个OSPF区域
和ASBR同区域的设备是通过1类来获取ASBR位置;
LSA5 external 整个OSPF区域 ASBR O E 域外路由
LSA7 nssa-external NSSA区域 ASBR O N 域外路由

         LINK ID(目录中的番号)            通告者
  • 1

LSA1 通告者的RID 本地区域内所有设备
LSA2 DR接口IP地址 DR
LSA3 IA 路由目标 ABR,在经过下一个ABR时修改为本地
LSA4 ASBR的RID ABR,在经过下一个ABR时修改为本地
LAS5 E 路由目标 ASBR
LSA7 N 路由目标 ASBR

三、优化,减少OSPF的LSA的更新量
【1】汇总 --减少骨干区域的LSA量
(1)域间汇总–只能在ABR上操作
r1(config)#router ospf 1
r1(config-router)#area 2 range 5.5.4.0 255.255.254.0
通过本区域内1/2类LSA计算所得
(2)域外汇总–在ASBR上操作
r4(config)#router ospf 1
r4(config-router)#summary-address 99.1.0.0 255.255.252.0

【2】特殊区域—减少非骨干区域
不得为骨干区域,不能存在虚链路;

(1)不存在ASBR
{1}末梢区域----拒绝4/5的LSA,自动产生一条3类的缺省路由指向骨干
r5(config)#router ospf 1
r5(config-router)#area 2 stub 本区域内所有设备均需配置

{2}完全末梢区域----在末梢区域的基础上进一步拒绝3类的LSA,仅保留一条3类缺省
先将整个区域配置为末梢区域,然后仅在ABR上定义完全即可
r1(config-router)#area 2 stub no-summary

(2)存在ASBR
{1}NSSA ----非完全末梢区域
拒绝4/5的LSA,本区域ASBR产生的5类使用7类传输;7类LSA在离开本区域时被ABR修改为5类;不会自动产生缺省;
作用:拒绝网络中其他区域的ASBR产生的4/5的信息;但为了避免环路产生,故不自动产生缺省,在管理员确定无环的前提下可以手工添加缺省路由;
r3(config)#router ospf 1
r3(config-router)#area 1 nssa

{2}完全NSSA
在NSSA的基础上进一步拒绝3类LSA;自动产生3类的缺省指向区域0;
先将该区域配置为NSSA,然后仅在ABR上定义完全即可
r3(config-router)#area 1 nssa no-summary

四、OSPF的扩展配置
1、认证
【1】接口认证
1)接口明文
r1(config)#interface ethernet 0/0
r1(config-if)#ip ospf authentication 开启明文认证需求,开启后本地所有ospf数据包中认证类型字段被修改,邻居间若不一致将不能建立邻居关系
r1(config-if)#ip ospf authentication-key cisco123 配置明文密码

2)接口密文
r6(config)#int s0/1
r6(config-if)#ip ospf authentication message-digest 开启秘文认证需求,开启后本地所有ospf数据包中认证类型字段被修改,邻居间若不一致将不能建立邻居关系
r6(config-if)#ip ospf message-digest-key 1 md5 cisco123

【2】区域认证
例:在R1上开启关于区域0的明文或密文认证;然后仅仅只是将R1上所有属于区域0的接口,认证类型字段修改,相当于在R1上所有区域0接口配置明文或密文认证需求;但每个接口的秘钥还是需要逐一配置;
r12(config)#router ospf 1
r12(config-router)#area 2 authentication 明文
r12(config-router)#area 2 authentication message-digest 密文

【3】虚链路认证
r1(config)#router ospf 1
r1(config-router)#area 1 virtual-link 4.4.4.4 authentication
r1(config-router)#area 1 virtual-link 4.4.4.4 authentication-key cisco
r1(config-router)#area 1 virtual-link 4.4.4.4 authentication message-digest
r1(config-router)#area 1 virtual-link 4.4.4.4 message-digest-key 1 md5 cisco123

2、被动接口
r1(config)#router ospf 1
r1(config-router)#passive-interface ethernet 0/1

3、加快收敛—邻居间直连接口hello和dead 必须完全一致
r7(config)#interface s0/1
r7(config-if)#ip ospf hello-interval 5
r7(config-if)#ip ospf dead-interval 20
注:修改本端的hello time本端的dead time自动4倍关系匹配;

4、缺省
3类缺省—通过特殊区域自动产生;
末梢、完全末梢、完全NSSA自动产生;

5类缺省—本地路由表中必须已经存在缺省路由,通过什么方式产生的无所谓;
之后,可以使用专用指令将其重发布到OSPF协议中
r9(config)#router ospf 2
r9(config-router)#default-information originate
默认进入路由为类型2,OE2;度量为1;
类型1:在内部传递时不叠加内部度量;
类型2:在内部叠加度量; 默认
若网络中存在多台边界路由器,均进行重发布行为,建议修改为类型1;
r9(config-router)#default-information originate metric-type 1

r9(config-router)#default-information originate always 强制向内网发布缺省路由信息;

7类缺省–ASBR上通过其他协议学习到的缺省导入OSPF,同时所导入区域为NSSA区域;
r12(config)#router ospf 1
r12(config-router)#area 2 nssa default-information-originate

注:若一台设备同时学习多种缺省; 内部优于外部 3类优于5/7类;
若5类和7类相遇,先比度量,小优;若度量一致那么5类优于7类;

OSPF路由协议详解的更多相关文章

  1. OSPF 路由协议详解(一)

    (文章目录) ospf 协议是网络层协议 此篇文章适合有一定网络基础的人 ospf 协议最多应用在企业网络中,针对于运营商网络并不是特别的适用,端口号为 89 通过 IP 进行数据的转发 ospf 基 ...

  2. 动态选路、RIP协议&&OSPF协议详解

    动态选路.RIP协议&&OSPF协议详解 概念 当相邻路由器之间进行通信,以告知对方每个路由器当前所连接的网络,这时就出现了动态选路.路由器之间必须采用选路协议进行通信,这样的选路协议 ...

  3. OSPF协议详解

    CCNP OSPF协议详解 2010-02-24 20:30:22 标签:CCNP 职场 OSPF 休闲 OSPF(Open Shortest Path Fitst,ospf)开放最短路径优先协议,是 ...

  4. BGP路由协议详解(完整篇)

    原文链接:http://xuanbo.blog.51cto.com/499334/465596/ 2010-12-27 12:02:45 上个月我写一篇关于BGP协议的博文,曾许诺过要完善这个文档,但 ...

  5. OSPF基本详解

  6. BGP路由协议详解(完整版)

    (免责声明:来源于网络,版权原作者所有,转载仅为了传播.学习交流使用,如需删除请私信联系,严禁其他用途.) END 关注「开源Linux」加星标,提升IT技能 好文章,分享.点赞.在看三连哦️↓↓↓

  7. 《OSPF和IS-IS详解》

    <OSPF和IS-IS详解> 基本信息 作者: (美)Jeff Doyle 译者: 孙余强 出版社:人民邮电出版社 ISBN:9787115347886 上架时间:2014-4-25 出版 ...

  8. OSPF详解

    OSPF 详解 (1) [此博文包含图片] (2013-02-04 18:02:33) 转载 ▼ 标签: 端的 第二 以太 第一个 正在 目录 序言 初学乍练 循序渐进学习OSPF 朱皓 入门之前 了 ...

  9. 《OSPF和IS-IS详解》一1.5 ARPANET内的路由选择

    本节书摘来异步社区<OSPF和IS-IS详解>一书中的第1章,第1.5节,作者: [美]Jeff Doyle 译者: 孙余强 责编: 傅道坤,更多章节内容可以访问云栖社区"异步社 ...

随机推荐

  1. 利用 clip-path 实现动态区域裁剪

    背景 今天逛 CodePen,看到了这样一个非常有意思的效果: CodePen Demo -- Material Design Menu By Bennett Feely 这个效果还是有一些值得探讨学 ...

  2. Linux驱动实践:一起来梳理中断的前世今生(附代码)

    作 者:道哥,10+年嵌入式开发老兵,专注于:C/C++.嵌入式.Linux. 关注下方公众号,回复[书籍],获取 Linux.嵌入式领域经典书籍:回复[PDF],获取所有原创文章( PDF 格式). ...

  3. AT4151 [ABC099B] Stone Monument 题解

    Content 一个村里有 \(999\) 个房子,第 \(i\) 个房子的高度为 \(1+2+...+i=\sum\limits_{j=1}^ij\).现在下了一场雪,给定相邻两个房子没被雪覆盖的高 ...

  4. ffmpeg 系列博客

    https://www.ffmpeg.org/download.html#build-macffmpeg 系列博文https://me.csdn.net/blog/leixiaohua1020http ...

  5. 超链接 a 标签点击时,弹出提示框,可以按照如下来写

    onclick="return confirm('确定删除该条记录?')" 加上这条记录后,就可以在访问href属性指向的链接时,有弹出提示

  6. 二叉搜索树判定方法(c++实现)

    !!版权声明:本文为博主原创文章,版权归原文作者和博客园共有,谢绝任何形式的 转载!! 作者:mohist --- 欢迎指正--- 自己想到的方法是:使用 中序遍历数组或者链表,然后比较数组或者链表中 ...

  7. 【LeetCode】988. Smallest String Starting From Leaf 解题报告(C++ & Python)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 DFS BFS 日期 题目地址:https://le ...

  8. java泛型中<?>和<T>

    T 代表一种类型 加在类上==============>class SuperClass<A>{} 加在方法上============>public <T>void ...

  9. Kronecker Products and Stack Operator

    目录 定义 Stack Operator Kronecker Product 性质 Stack Operator Kronecker Product 半线性 Whitcomb L. Notes on ...

  10. Mac下搭建基于PlatformIO的嵌入式开发环境(STM32开发)

    PlatformIO简介 PlatformIO是开源的物联网开发生态系统.提供跨平台的代码构建器.集成开发环境(IDE),兼容 Arduino,ESP8266和mbed等 支持在Windows.Lin ...