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. Spring Cloud 和dubbo

    一.SpringCloud微服务技术简介 Spring Cloud 作为Java 语言的微服务框架,它依赖于Spring Boot,有快速开发.持续交付和容易部署等特点.Spring Cloud 的组 ...

  2. Win10 Chrome 在DPI缩放下导致界面放大问题 解决方案

    支持:54.0.2840.59 m (64-bit) 以下大多数版本,具体未测试.如有问题可以反馈一下. 方法1:为程序设置"高DPI设置时禁用显示缩放. 方法2:为程序添加启动参数: /h ...

  3. 【Spark】【RDD】从本地文件系统创建RDD

    练习作业 完成任务从文件创建三个RDD(math bigdata student) cd ~ touch math touch bigdata touch student pwd 启动Spark-sh ...

  4. SpringCloud技术涵盖简介

    SpringCloud是微服务架构的集大成者,云计算最佳业务实践. 我们平常使用的Spring和他们的关系,对Spring,springboot , SpringCloud 的 概念区分,上图: Sp ...

  5. 20 个 .NET 6 新增的 API

    DateOnly & TimeOnly .NET 6 引入了两种期待已久的类型 - DateOnly 和 TimeOnly, 它们分别代表DateTime的日期和时间部分. DateOnly ...

  6. [WPF] 用 OpacityMask 模仿 UWP 的 Text Shimmer 动画

    1. UWP 的 Text Shimmer 动画 在 UWP 的 Windows Composition Samples 中有一个 Text Shimmer 动画,它用于展示如何使用 Composit ...

  7. CTFHub[PWN技能树]——栈溢出

    文章目录 一.ret2text 二.ret2shellcode 一.ret2text 例行检查,64位程序,没有开启任何保护 本地运行一下情况,看看大概的情况 64位ida载入,检索程序里的字符串发现 ...

  8. CF831B Keyboard Layouts 题解

    Content 给你 \(26\) 个字母的映射(都是小写,大写的映射方式相同),再给你一个字符串 \(s\),求它的映射结果(如果有非字母的字符保持不变). 数据范围:\(1\leqslant |s ...

  9. Nginx加载新的模块,编译报错记录

    参考:https://www.cnblogs.com/Leechg/p/9969000.html ---------如下我的操作记录--------------- nginx -V查看当前nginx信 ...

  10. centos下修改hosts文件以及生效命令

    修改 vim /etc/hosts 生效 service network restart 或者 /etc/init.d/network restart