ospf基础知识总结

前提

动态路由协议:直连路由器间构建邻居关系,相互沟通共享信息,来获取未知的路由信息;之后基于不同的算法计算本地到达所有未知网段的最佳路径,然后将其加载到路由表中;
分类:
1、基于AS将路由协议分为 IGP 和 EGP两种
AS—自治系统 编号0-65535 标准2个字节 扩展AS号为4个字节;
1-64511公有 64512-65535私有
AS之内使用IGP-内部网关路由协议— RIP/OSPF/EIGRP/ISIS
AS之间使用EGP-外部网关路由协议—EGP/BGP

2、IGP
1)基于更新时是否携带子网掩码—有类别(不携带)、无类别(携带-可以进行子网划分、汇总)
2)基于工作的特点— 距离矢量RIP/EIGRP –邻居间直接共享路由表—基于路由条目收敛
链路状态OSPF/ISIS –共享拓扑-基于LSA收敛

OSPF 开放式最短路径优先协议

目前使用范围最广泛的IGP协议;无类别链路状态路由协议;
OSPF协议最大的缺点,在于基于拓扑收敛产生巨大的更新量;
故设计者在设计ospf协议过程中,使用了很多的机制来减少更新量-----结构的部署
1、区域划分—单区域内传递拓扑 用于每台路由器本地计算到达所有未知网段的最短路径 区域间传递计算完成后的路由条目信息
2、合理的IP地址规划—一个区域可以汇总成一个网段为最佳
3、特殊区域
4、30min周期的更新

OSPF的数据包-5种包

Hello包 发现、建立、周期保活邻居、邻接关系
DBD包—数据库描述包 本地的数据库的目录(摘要)
LSR包—链路状态查询 基于DBD包中的未知信息进行查询
LSU链路状态更新 用于答复对端的LSR,携带各种的LSA
LSack链路状态的确认 确认包,保障可靠性
OSPF数据包跨层封装于3层报头

OSPF的状态机

  • Down:这是邻居的初始状态,表示没有从邻居收到任何信息。在NBMA网络上,此状态下仍然可以向静态配置的邻居发送Hello报文,发送间隔为PollInterval,通常和Router DeadInterval间隔相同。
  • Attempt:此状态只在NBMA网络上存在,表示没有收到邻居的任何信息,但是已经周期性的向邻居发送报文,发送间隔为HelloInterval。如果Router DeadInterval间隔内未收到邻居的Hello报文,则转为Down状态。
  • Init:在此状态下,路由器已经从邻居收到了Hello报文,但是自己不在所收到的Hello报文的邻居列表中,表示尚未与邻居建立双向通信关系。在此状态下的邻居要被包含在自己所发送的Hello报文的邻居列表中。
  • (2-Way Received:此事件表示路由器发现与邻居的双向通信已经开始(发现自己在邻居发送的Hello报文的邻居列表中)。Init状态下产生此事件之后,如果需要和邻居建立邻接关系则进入ExStart状态,开始数据库同步过程,如果不能与邻居建立邻接关系则进入2-Way。)
  • 2-Way:在此状态下,双向通信已经建立,但是没有与邻居建立邻接关系。这是建立邻接关系以前的最高级状态。
  • 1-Way Received:此事件表示路由器发现自己没有在邻居发送Hello报文的邻居列表中,通常是由于对端邻居重启造成的。
  • ExStart:这是形成邻接关系的第一个步骤,邻居状态变成此状态以后,路由器开始向邻居发送DD报文。主从关系是在此状态下形成的;初始DD序列号是在此状态下决定的。在此状态下发送的DD报文不包含链路状态描述。
  • Exchange:此状态下路由器相互发送包含链路状态信息摘要的DD报文,描述本地LSDB的内容。
  • Loading:相互发送LS Request报文请求LSA,发送LS Update通告LSA。
  • Full:两台路由器的LSDB已经同步。

OSPF的工作过程

  • 启动宣告配置完成后,路由器开始组播(224.0.0.5)收发OSPF的hello包;若接收到的hello包中存在本地的route-id,建立邻居关系,生成邻居表;
  • 之后基于表格中所有的邻居进行条件的匹配,匹配失败将维持邻居关系,仅hello包周期保活即可;
  • 匹配成功者间可以建立邻接关系;邻居间使用DBD进行数据库目录的比对;之后使用LSR查询目录中未知的LSA信息,对端使用LSU来携带传递LSA,最终需要LSack进行接收确认;
  • 当本地收集到区域内所有设备的LSA后,生成LSDB—链路状态数据库表;
  • 本地基于LSDB启用SFP算法,计算到达所有未知网段的最短路径,然后将其加载到路由表内;
  • 收敛完成,仅hello包周期保活所有的邻居和邻接关系;每30MIN周期进行DBD包的收发来进行纠错;

结构突变

1、新增网段—直连新增网段设备使用DBD来告知所有的邻居,邻居进行LSR/LSU/LSACK收敛
2、断开网段—断开新增网段设备使用DBD来告知所有的邻居,邻居进行LSR/LSU/LSACK收敛
3、无法沟通----dead time 和最大老化来解决
正常邻居间存在hello包,若超过dead time依然没有hello包,断开邻居关系,删除从该邻居处学习到的所有信息
若邻居关系依然正常,但每30min的周期没有正常进行,每条lsa后方存在一个老化时间,默认最大为3609s;到达最大老化时删除该LSA信息即可;

名词

LSA:链路状态通告;在不同条件下存在不同类别的LSA,用于携带拓扑或路由,LSA是OSPF链路状态信息的载体
LSDB:链路状态数据库;所有LSA的集合
OSPF收敛行为—OSPF的LSA洪泛、OSPF的LSDB同步

OSPF 从邻居建立成为邻接关系的条件

基于接口网络类型来区别;
网络类型(二层封装技术 :点到点,BMA,NBMA)

  • 点到点—在一个网段内只能存在两个节点,即便强制连接第三节点,最终也无法正常的通讯
    串行链路上,二层封装为ppp或hdlc –没有物理寻址
    MA:多路访问 –在一个网段内的节点数量不限制;
  • BMA(broadcast)— 广播型多路访问技术;在一个MA网络中同时存在广播机制;
    二层封装技术为以太网;
  • NBMA – 非广播型多路技术;在一个MA网络中没有广播机制;
    二层封装技术为帧中继—串行链路 MGRE

在点到点网络中,OSPF协议正常均从邻居关系晋升为邻接关系;
在MA网络中,若所有邻居皆建立为邻接关系,将导致大量的重复更新;距离矢量路由协议在MA环境中使用了接口水平分割机制;由于OSPF协议是基于数据库同步对比的方式来进行收敛,故不支持接口的水平分割;

ospf最终将在MA网段进行DR/BDR的选举;非DR/BDR间将维持邻居关系,不建立邻接关系来避免重复更新;
所谓OSPF的接口网络类型,是指OSPF协议在不同的网络类型下其接口的工作方式
在这里插入图片描述

  • 点到多点:用点到多点的方式来建立连接,不需要进行DR和BDR的选举,需要管理员手动配置。OSPF在P2MP网络类型的接口上,以组播的形式发送hello报文,以单播

DR/BDR选举

DR与BDR作用: 减少邻接关系,降低OSPF协议流量
DR(Designated Router)即指定路由器,其负责在MA网络建立和维护邻接关系并负责LSA的同步。
DR与其他所有路由器形成邻接关系并交换链路状态信息,其他路由器之间不直接交换链路状态信息。这样就大大减少了MA网络中的邻接关系数量及交换链路状态信息消耗的资源

DR一旦出现故障,其与其他路由器之间的邻接关系将全部失效,链路状态数据库也无法同步。此时就需要重新选举DR,再与非DR路由器建立邻接关系,完成LSA的同步。
为了规避单点故障风险,通过选举备份指定路由器BDR,在DR失效时快速接管DR的工作。

选举规则

比较接口优先级 0-255 大优
默认点到点链路接口不行进行DR/BDR选举,故cisco 优先级为0-不参选
MA网络中所有参选接口默认优选级为1,在优先级一致的情况必须参选设备的route-id数值大优;
干涉选举:修改参选接口的优先级
建议:网络存在DR/BDR后,其他设备修改为0,不参选;不需要重启设备的进程;

OSPF的数据库表—LSDB 链路状态数据库

数据库表中装载OSPF的不同类型的LSA;
[r1]display ospf lsdb router 1.1.1.1 具体某条LSA
LSA头部:
在这里插入图片描述所有的LSA都拥有相同的头部,关键字段的含义如下:

LS age:此字段表示LSA已经生存的时间,单位是秒。
LS type:此字段标识了LSA的格式和功能。常用的LSA类型有五种。
Link State ID:此字段是该LSA所描述的那部分链路的标识,例如Router ID等。
Advertising Router:此字段是产生此LSA的路由器的Router ID。
LS sequence number:此字段用于检测旧的和重复的LSA。

LS type,Link State ID和Advertising Router的组合共同标识一条LSA。

LSDB中除了自己生成的LSA,另一部分是从邻居路由器接收的。邻居路由器之间相互更新LSA必然需要一个“通道”。

OSPF的LSA是1800会更新一次更新一次序列号会加一
LSA的新旧比较
1、会先比较序列号,序列号越大越优,
2、如果序列号相同,会比较校验值(checksum)越大越优
3、如果校验值也相同,会比较LSA Age时间,是否等于MAX-age时间(3600)
4、如果age时间不等于max-age时间,会比较他们的差值,如果差值大15分钟(900秒),小的优
5、如果age时间不等于max-age时间,会比较他们的差值,如果差值小于15分钟,说明是同一条LSA,忽略其中一条

什么情况下LSA会更新:
1、1800到期会更新
2、触发更新(接口地址变化(增加,或删除),修改接口开销值,删除接口,或者删除通告)
[r4-ospf-1]import-route rip 1 将RIP进程1重发布到OSPF的进程1
[r5]display ospf lsdb ase originate-router 查看5类LSA
ASBR—自治系统边界路由器—协议边界路由器

LSA类别传播范围通告者携带信息link-id通告者 (link-id)
LSA-1 router本地设备所在区域该区域每台设备的RID每台设备本地所在区域的直连拓扑通告者的RID本区域内每台设备必须发送
LSA-2 Network本地设备所在区域DR单个MA网段的拓扑DR的接口ip地址每个MA网段中的DR
LSA-3 summary整个OSPF域ABR域间路由域间路由目标网络号ABR,在经过下一台ABR时,修改为新的ABR的RID
LSA-4 asbr除ASBR所在的区域外的整个ospf域;asbr所在区域基于1类交代位置ABRASBR位置ASBR的RID和ASBR同一区域的ABR,在经过下一台ABR时,修改为新的ABR的RID
LSA-5 external整个OSPF域ASBR域外路由域外路由目标网络号ASBR
LSA-7 NSSA本地的NSSA区域ASBR域外路由域外路由目标网络号ASBR; 离开本地NSSA区域时转换为5类

为什么基于LSA收敛:因为ospf基于拓扑更新,更新量巨大,环路一旦产生,会浪费很大的网络资源,所以为了防止环路的产生,所以使用LSA收敛。

OSPF协议正常学习到的路由条目优先级为10;重发布进入的路由为150;

优化OSPF协议

减少LSA的更新量;正常1类LSA是一台设备一条,2类lsa是一个网段的DR一条;3类和5类是一条路由一条LSA;4类是一台ASBR产生一条

汇总—减少骨干区域的更新量

1)域间路由汇总—将非骨干区域汇总到骨干区域
在ABR上进行配置
[r1]ospf 1
[r1-ospf-1]area 2 只能汇总本地通过该区域1、2类LSA产生的路由
[r1-ospf-1-area-0.0.0.2]abr-summary 5.5.4.0 255.255.252.0
注:汇总配置完成后,需要手工添加空接口防环路由
2)域外路由汇总;因为域外路由由ASBR重发布导入;故在导入的ASBR上进行配置
[r4]ospf 1
[r4-ospf-1]asbr-summary 99.1.0.0 255.255.252.0

特殊区域

减少非骨干区域的更新量
1)不能存在ASBR
「1」末梢区域 stub 拒绝4/5类的LSA;生成一条3类的缺省路由指向骨干区域
[r5]ospf 1
[r5-ospf-1]area 2
[r5-ospf-1-area-0.0.0.2]stub
切记:该区域所有设备均需要定义为末梢区域;
「2」完全末梢区域 在末梢区域的基础上,进一步拒绝3的lsa,仅保留一条3类的缺省;
先将该区域配置为末梢,区域然后仅在abr上定义完全即可;
[r1-ospf-1-area-0.0.0.2]stub no-summary

2)存在ASBR
「1」NSSA 非完全末梢区域—该区域拒绝其他区域的ASBR产生的4/5LSA;本地区域内ASBR产生的5类LSA,以7类在本区域传播,从本区域进入骨干区域时由ABR(新的ASBR)转换为5类;同时自动产生一条7的缺省指向骨干区域;
[r4]ospf
[r4-ospf-1]are 1
[r4-ospf-1-area-0.0.0.1]nssa
本区域内所有设备均需配置

「2」完全NSSA –在NSSA的基础上,进一步拒绝3的LSA;生成一条3类缺省指向骨干区域;
先将该区域配置为NSSA区域,然后仅在ABR上定义完全即可
[r3-ospf-1-area-0.0.0.1]nssa no-summary

切记:考虑到ISP连接网络后,产生的缺省路由与OSPF特殊区域产生的缺省可能导致环路; ISP连接到的哪个区域,那么该区域不能设定为任何的特殊区域;

过滤ospf的路由传输

利用OSPF的汇总,在汇总条目的同时要求ospf协议传递这些汇总路由来实现路由过滤—cisco、华为均可
ospf 1 router-id 4.4.4.4
area 0.0.0.1
abr-summary 192.168.1.144 255.255.255.248 not-advertise 该条路由将不能再传递—3类

[r6]ospf 1
[r6-ospf-1]asbr-summary 192.168.1.144 255.255.255.248 not-advertise
[r6-ospf-1]asbr-summary 192.168.1.132 255.255.255.252 not-advertise 拒绝7类的传递
注:此处所谓的汇总网络号,实际可以是具体的明细路由;

OSFP的不规则区域

规则区域—星型结构—骨干区域位中心,非骨干为分支
----必须存在ABR—区域边界路由器—两个区域间必须一台设备同时工作多个区域内
该规则的意义在于减少LSA的更新量—星型结构稳定性较高,性价比好;
为了实现以上规则,OSPF存在硬性条件:
1、直连的邻居间hello包中区域ID必须完全一致;若不一致将无法建立邻居关系—ABR
2、一台ABR若没有连接到骨干区域,将不能进行区域间的路由共享;—星型结构
3、只要ABR连接到的骨干区域,同时可以再连接N个非骨干,且进行两两区域间路由共享;
不规则区域:
1、远离骨干的非骨干区域
2、不连续骨干

解决办法

  • 1、tunnel 隧道 GRE—通用路由封装-一种简单的VPN(虚拟专用网络)
    在两台的ABR上建立tunnel,然后将其宣告到OSPF协议中

缺点:
1、周期和触发的信息将对中间的穿越区域造成资源的占用;
2、选路不佳

  • 2、OSPF虚链路—网络中合法的ABR(工作的区域0的ABR),和非法ABR间建立一条虚链路(在OSPF协议中构建,没有新生网段) 由合法ABR授权非法ABR进行区域间路由共享
    优点:
    没有新生链路,故选路正常
    缺点:
    cisco设备中OSPF虚链路为避免对中间穿越区域周期保活和更新产生资源占用,取消了周期的hello包和周期更新;---- 不可靠,不稳定
    华为设备中依然保留周期的hello包和更新----占用中间区域资源
  • ospf的多进程双向重发布

OSPF多进程,进程号仅具有本地意义,邻居间建立邻居关系时可以使用不同的进程号;
若在一台设备上同时启动多个进程,那么不同进程存在自己的邻居关系,生成不同的数据库(不共享);
最终将所有数据库计算所得路由加载于同一张路由表中;
在解决不规则区域时,可以让非法ABR将不同的OSPF区域工作在不同的OSPF进程中,之后使用双向重发布技术来实现路由共享;
优点:选路正常 无周期信息,但依然可靠(触发更新、邻居关系周期保障)

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值