OSPF协议
224.0.0.5或224.0.0.6 协议号 89 (IP协议)
ospf是一种基于链路状态路由协议
ospf特点:
支持无类域间路由(CIDR)
可变长子网掩码VLSM
无路由自环
收敛速度快
使用IP组播收发协议数据
支持多条等值路由
支持协议报文的认证
ospf概念:
1、LSA 链路状态信息
2、LSDB:链路状态信息库
ospf三个阶段:
泛洪lsa,将已知的链路状态信息泛洪,生成lsdb。
lsdb通过计算,生成最短路径树
将计算完的路由加入路由表中
OSPF是一个动态路由协议,运行OSPF的路由器之间需要交换链路状态信息和路由信息,在交换这些信息之前首先需要建立邻接关系。
邻居路由器(Neighbor):有端口连接到同一个网段的两个路由器就是邻居路由器。
邻居关系:由OSPF的Hello协议维护。
邻接(Adjacency):从邻居关系中选出的为了交换路由信息而形成的关系。
每一个含有至少两个路由器的广播型网络和NBMA网络都有一个
指定路由器(Designated Router,DR)
备份指定路由器(Backup Designated Router,BDR)。
DR和BDR的作用:
- 减少邻接关系的数量,从而减少链路状态信息以及路由信息的交换次数,这样可以节省带宽,减少路由器硬件的负担。
一个既不是DR也不是BDR的路由器只与DR和BDR形成邻接关系并交换链路状态信息以及路由信息,这样就大大减少了大型广播型网络和NBMA网络(非广播多路访问)中的邻接关系数量。
DR和BDR由OSPF的Hello协议选举,选举是根据端口的路由器优先级(Router Priority)进行的。
如果Router Priority被设置为0,那么该路由器将不允许被选举成DR或者BDR。
Router Priority越大越优先。如果相同,Router ID大者优先。
但是为了维护网络上邻接关系的稳定性,如果网络中已经存在DR和BDR,则新添加进该网段的路由器不会成为DR和BDR,不管该路由器的Router Priority是否最大。
如果当前DR故障,当前BDR自动成为新的DR,网络中重新选举BDR;如果当前BDR故障,则DR不变,重新选举BDR。
这种选举机制的目的:是为了保持邻接关系的稳定,减小拓扑结构的改变对邻接关系的影响。
ospf四张表
邻居表,拓扑表,协议表,全局IP表
自治系统AS:运行相同路由协议以及被统一机构统一管理的一组路由器集合称为自治系统
router-id
用于在自治系统中唯一标识一台运行OSPF的路由器的32位整数,每个运行OSPF的路由器都有一个Router ID。
router id
如果有loopback接口,这个接口直接成为router id,若无
选择接口ip地址大的成为router id
可以手动指定,router-id可以不存在于路由器的接口IP上
ospf为什么划分多区域
减少区域内部lLSA泛洪范围
划分多区域原则
骨干区域和骨干区域要连续
非骨干区域和骨干区域必须相连
ABR:连接两个不同区域,必须有一个接口属于骨干区域,称为ABR
ASBR:边界路由器,连接不同路由协议的路由角色。
查询三张表
display ospf peer 邻居表
display ospf lsdp
display ospf routing OSPF学习的路由表
手动配置Router ID
[RTA]router id 1.1.1.1
[RTA]ospf
[RTA-ospf-1]area 1
[RTA-ospf-1-area-0.0.0.1]network 1.1.1.1 0.0.0.0
[RTA-ospf-1-area-0.0.0.1]network 10.1.1.0 0.0.0.3
[RTA-ospf-1-area-0.0.0.1]return
五种报文
七种状态
Down、Init、Two-way、Exstart、Exchange、Loading、Full
Down:没有启用OSPF的状态;邻居失效后变为该状态
Init:初始化状态,第一次收到对端发来的hello包(包含对端route-id)时,将对端的状态设置为init
Two-way:邻居状态,相互间周期发送hello的状态(双方建立会话)
Exstart:交换信息的初始化状态
发送DBD(包含本地的LSA的摘要信息)报文,选举主从路由器(利用HELLO报文中的ID和优先权来进行选举,不允许抢占,DR没了,BDR才能上)
Exchange:交换信息的状态
该状态下,相互间发送DBD,告知对端本地所有的LSA的目录;同时,可以发送 LSR,LSU,LSACK来学习对端的LSA
Loading:加载状态(没有学习完的状态)
发送LSR,LSU,LSACK,专门学习对端的LSA的详细信息
Full:邻接状态(学习完的状态)
彼此的LSDB同步,即所有的LSA相同
七类LSA:
第一类: (router-LSA) 区域内部路由计算
第二类: (Network-LSA)DR产生的LSA
第三类: (Network-Summary-LSA)LSA区域间路由计算
所有的非骨干区域到别的区域必须经过骨干区域
第四类: (ASBR-Summary-LSA) 描述ASBR的Router-ID
第五类: (AS-External-LSA)描述的目的网段地址
第六类:
第七类:NSSA 外部LSA
区域内路由计算
LSDB通过描述一个有向线段图来描述网络拓扑结构,该有向图的端点有三种类型:路由器节点,Stub网段和Transit网段。
stub:该网络所对应的接口没有形成邻居关系
transit网段:该接口是一个传输网段,互联网段,发现邻居
router-lsa
ospf建立邻居关系,点到点类型的网络,互联接口可以在不同的网段且忽略掩码。
广播类型的网络,互联接口必须在同一网段且掩码必须相同
一端点到点 一端广播,若报文验证成功,两端点可以进入full状态,但是路由计算不出来。因为有向图计算失败。
点到点类型的网络若使用不同的互联网段地址的话,两设备同时描述该网段为stub网段
router-lsa
内容中包括
link-id :stub:该路由器的直连地址
tr :描述的DR地址(接口)
data:数据
stub:直连网络地址的掩码
tr :自己接口的ip地址
链路类型:stub网段
trans网段
metric:开销
dis ospf lsdb router self-originate 查看本路由器发送出去的 lsa
dis ospf lsdb router link-state id 查看指定链路状态的lsa
点到点类型的网络中:
link-id 邻居的router-id
date 自己接口ip地址
通过更新lsa报文,收集完整的链路状态数据库。根据如下方法计算最短路径树
第一步:忽略掉所有的stub网段计算,以自己为根计算trans-net网络形成有向图
第二步:计算完成最短树后,将所有的stub网络加入到最短路径树
ospf–network 作用
network 网络地址范围内的所有接口发送ospf报文
网络地址范围内的地址信息及接口开销加入到router-lsa中
ABR 连接两个区域,且一个区域为零有full状态
ABR 主要进行路由信息区域间交换,非零与零区域之间交换
ABR汇总 针对三类LSA ,对那个区域汇总就在那个区域下配置。
ABR-summary 汇总地址 掩码(十进制)
汇总影响的是其他区域而非本区包括ABR
在ASBR上对5类LSA汇总
ospf协议模式下
asbr-summary 汇总地址 掩码
地址汇总主要是缩减路由表的条目,减少转发延时
汇总,实在节点汇总,影响路由信息传递的方向
rip汇总与ospf汇总有哪些区别
协议外部路由信息
5类lsa 描述的协议以外,被引入到ospf协议内的路由信息。发布者为asbr,范围为整个ospf协议
路由引入:除了可以引入动态路由选择协议,也可以引入直连和静态
ospf的汇总会导致引入的路由tag丢失,变成默认的
ospf的开销计算方法
类型有关:
2 只计算外部开销
1 外部开销加内部开销
ospf >区域间 >外部的类型1>外部的类型2
类型的比较
若类型不一致 优选类型1
若类型一致开销不一致选 开销小的
若类型为类型2,开销一致。算内部开销,开销小的为最优,若内外开销都一致,负载均衡
confused 2018/12/9 16:02:59
当路由器收到5类的lsa时,会检查器内部的forward-address字段是否为零,
若非零,在以该地址作为自己的下一跳,
若为零在以对方的adv-router-id查找作为自己的下一跳