OSPF是一个链路状态型路由协议,通过LSA传递路由信息和拓扑信息,运行SPF算法,完成路由收敛。
1.特点
1)OSPF基于IP封装,协议号89
2)链路状态型路由协议
3)使用SPF算法
4)OSPF利用LSA进行路由信息更新,LSA中既包括路由信息也包括拓扑信息,
路由信息:包含接口的路由信息
拓扑信息:路由器之间的连接关系
在OSPFV2中LSA的种类有1、2、3、4、5、7
5)OSPF更新地址:使用组播或单播更新,组播地址224.0.0.5 224.0.0.6
6)OSPF更新方式:触发更新+30分钟周期更新(LSA状态刷新)
7)OSPF支持区域划分,为了减少LSA的数量和传播范围
8)OSPF非常消耗路由器资源,一个CISCO设备最多运行31个OSPF进程
2.OSPF区域
1)区域设计
OSPF的区域分为骨干区域和非骨干区域,非骨干区域挂靠在骨干区域之上,且存在唯一的骨干区域,并用十进制数字或类似IP地址的方式标识每个区域,
2)不规则区域处理
a.不规则区域:骨干区域没有相连或非骨干区域没有挂靠在骨干区域之上
b.解决方法:
1》 建立tunnel
2》OSPF双进程重发布
3》Virtual link:利用已有的树,生成一条开销最小的路径
3.路由器角色
骨干路由器:接口全部位于区域0的路由器
非骨干路由器:接口属于非区域0的路由器
ABR:区域边界路由器,能够产生3类LSA的路由器
ASBR:自治系统边界路由器,能够产生5类或7类LSA的路由器
4.OSPF邻居状态机制
1)OSPF报文
Hello DBD LSU LSR LSACK
2)邻接建立过程中的接口状态:
DOWN INIT TWO-WAY Exstart Exchange Loading Full Attempt
a. Down:关闭状态,当一个dead时间内没有收到hello报文,或者在更高状态出现故障会进入down状态,在此状态 ,使用pollinterval(轮询时间,120s)发送hello,若接收到hello,则发送正常hello包
b. Init:初始化状态,当发送hello后,会进入此状态
c.Two-way:双向通信状态,当收到的hello报文中含有自己的router-id时,进入此状态,在MA网络中进行DR选举,DR/BDR是一个接口概念,
选举条件:a.最大的DR优先级 b.最大的 router-id
d. Exstart:预启动状态,发送DBD报文,进行主从选举,但是不携带LSA头部信息,协商MTU值
主从选举:比较router-id,大的为主,由主来控制LSA的交互,保证双方最多有一个报文没有确认。
e. Exchange:交换状态,主从选举完成,发送LSA头部信息并进行隐式确认,此时开始发送LSR,并等待对方回复LSU
f. Loading:发送LSR、LSU信息,LSR由LSU确认,隐式确认,LSU由LSACK确认
g. Full:邻接建立,LSDB同步
h. Attempt:在NBMA网络中出现,路由器之间不能自动建立邻居,必须手工指定,若邻居指定错误,则会进入此状态
3)邻接建立过程中的故障状态
卡在Init状态:hello包协商失败
卡在Two-way状态:MA网络中无法选举DR
卡在Exstart状态:MTU(三层)不一致
卡在Loading状态:LSDB不同步
4)邻居建立条件
a. Hello时间、Dead时间一致
b. 区域一致
c. 认证一致
d. router-id不一致
e. 特殊区域标识一致
f. 在MA网络中,网络掩码一致
5.LSA
LSA标识:LSA类型、router-id、ADV router
1)LSA类型
a.1类LSA(route LSA):描述了本路由的接口以及链路信息,接口连接邻居状态以及到达邻居的cost,
仅在本区域内传输,终止于ABR
1》1类LSA的网络类型: point-to-point、transit、stub、virtual link
在MA网络中,本路由器由1类LSA只知道自己连接到了一个网段,而
不知道与自己相连的路由是谁,所以需要2类LSA,2类LSA中描述了与网段相连的路由
都是谁
b. 2类LSA(network LSA):描述MA中DR的位置,通告MA中所有的路由,并描述该网络的网络掩码,在一个区域内传输,终止于ABR
c. 3类LSA(summary LSA):在不同区域之间传递路由信息(ABR将路由信息复制,并记录router-id,然后传递)在穿越不同区域时,ADV自动发生改变
d.4类LSA(ASBR summary LSA):路由汇总LSA,用于宣告ASBR的位置,在整个OSPF区域中传播
e. 5类LSA(external LSA):外部LSA,将外部路由引入OSPF中,在整个OSPF区域中传播,ADV为ASBR的router-id,由于其他区域的路由器不知道ASBR的位置,所以需要借助4类LSA宣告ASBR的位置
f. 7类LSA(NSSA LSA):在NSSA区域中用于通告外部路由信息,仅在本NSSA区域内传输, 在传出本区域时会在ABR上进行7转5,产生的5类LSA中会携带FA地址,同时也会产生4类LSA,但此4类LSA无作用,在NSSA区域可以通过1类LSA知道ASBR的位置,非NSSA区域仅认为ABR为ASBR
2)LSA的新旧比较
在OSPF中会学习较新的的LSA,LSA比较方式:
a.序列号
1》使用棒棒糖型的序列空间,由线性序列空间和圆形序列空间结合形成,糖的杆从0x800000001开始增加到0(认为此部分为负数),然后糖体从0增加到0x7FFFFFFE(没有0x7FFFFFFF,此部分为正数),
2》比较规则:假设有两个序列号a和b,序列空间为n;当a<0,b<0,a<b或者a>0,a<b且(b-a)<n/2
或a>0,b>0,a>b,且(a-b)>n/2;时,认为序列b的LSA较新
b.校验和:当序列号一致,有较大校验和的LSA较新
c.LSA age:若LSA age相差小于15分钟,LSA age较小的最新;若LSA age大于15分钟,无法判断
3)LSA的限制
a.划分区域
b.特殊区域:过滤指定LSA,不允许出现virtual link
1》stub :不允许重发布,不允许出现ASBR,过滤4、5类LSA
2》totally stub:在stub基础上,过滤3、4、5类LSA,仅保留3类缺省LSA
3》nssa:在stub基础上,允许重发布,存在ASBR,不允许出现4、5类LSA,不能在边界自动下
放缺省路由
4》totally nssa:在nssa基础上,过滤3类LSA
c.LSA过滤
1》distribute-list,只能阻止路由加表
2》汇总过滤
3》filter-list过滤,本身不具有过滤功能
d.LSA汇总
1》3类LSA汇总: 在明细路由所属边界ABR上实施. 默认使用明细路由中cost值最小,可以 指定
cost值.
2》5类LSA汇总: 产生该5类LSA的ASBR上实施
3》7类LSA汇总: 可以在产生7类LSA时汇总(NSSA区域中的ASBR),也可以在NSSA 边界 ABR进行7转5时汇总.
6.SPF算法
在一个区域内,OSPF利用1类和2类LSA运行SPF算法,首先每个路由器先以自己为根,加入SPF树中,然后检查自己的router LSA,如果网络类型不是stub,将三元组(link ID、cost、下一跳)表示的连接加入候选列表中,选出具有最小cost值的连接,向下扩展,直到候选列表为空,然后将stub的连接作为叶子加入SPF树中
7.OSPF防环机制
1)区域间防环:
a.OSPF区域设计为星型结构,路由信息从非骨干区域到非骨干区域需要经过骨干区域的中转
b. 区域间存在水平分割(防止3、4类LSA返回发送的区域)
c.每个区域均为树状结构,在ABR上利用3类LSA进行SPF树的拼接,构成的一棵大树无环
2)区域外防环:
5类LSA没有防环机制,利用4类LSA进行防环 ;进行7转5,当存在多个ABR时,由router-id大的进行转换
8.OSPF的网络类型
1)point-to-poin
2)point-to-m point 点到点是点到多点的集合
3)point-to-m point non broadcast
4)MA
5)NBMA
6)在hub spoke模型中
点到点 占用子网资源,在hub会开启多个tunnel接口,配置繁琐
NBMA 链路回复慢,需要选举DR/BDR
不支持组播,扩展性差
点到多点:spoke间的通信需要经过hub端
一般最好的办法为点到多点,经过MGRE的改良,可以克服spoke之间通信必须经过hub
9.OSPF选路
O与OIA: O永远优于OIA
OIA与OE或ON:OIA永远优于OE或ON
OE1与OE2:OE1永远优于OE2
ON1与ON2:ON1永远优于ON2
OE1与ON1:与AD值无关,在总cost值相同情况下,优选OE1,cost 不同,优先cost小的(与seed-metric
无关)
OE2与ON2:与AD值无关,在总cost值相同情况下,优选OE2;在 总cost值不同时,优先cost值较小
小的;若双方的seed-metric不一致,优选seed-metric小的
10.瞬时黑洞:
R4进行重启,OSPF优先收敛,BGP还未收敛,R4的cost值小,R1经过R4到达R3时会出现路由黑洞,当BGP收敛完成,黑洞消失
解决:
max-metric router-lsa on-startup wait-for-bgp 修改metric值为65535
OSPF
最新推荐文章于 2022-01-05 11:14:35 发布