OSPF协议的总结

OSPF 是一种典型的链路状态协议,它相对于 RIP 来说,路由的收敛速度更快。
OSPF

​ -----开放式最短路径优先协议

无类别链路状态型IGP协议:由于其基于拓扑进行更新收敛,故随着拓扑量增大而成指数上升‘故OSPF协议为了能在大、中网络中运行,需要结构化的部署----合理的区域划分、良好的地址规划。
OSPF的数据包

​ -----------5种包

1.hello:组播收发,用于邻居、邻接关系的发现、连接

2.dadebase description:数据库描述包,本地LSDB目录

3.link-state request:链路状态请求,用于询问对端本地未知的LSA

4.link-state update :链路状态更新,用于共享具体的每一条LSA信息

5.link-state acknowledgment:链路状态确认—确认包

LSA–链路状态通告–具体的一条一条 路由或者拓扑信息,不是一种数据包,所有的LSA是使用LSU这种包来转发的;

OSPF的数据包是跨层封装于3层报头后方 ,协议号89

OSPF的状态机

​ -----两台OSPF路由器间不同的关系的阶段

down 一旦接受到对端的hello包进入下一个状态

Init初始化 若接受到的hello包中村子本地的RID。那么进入下一个状态机

2way 双向通讯 邻居关系建立的标志

条件:点到点网络直接进入下一个状态机;MA网络进行DR/BDR选举,非DR/BDR之间不能进入下一个状态机;

Exstart 预启动 使用不携带数据库目录信息的DBD包,进入主从关系的选举,RID数值大为主,优先进入下一个状态机

exchange 准交换 使用不携带数据库目录DBD包,进行目录共享,需要ACk确认

loading加载 接收到其他邻接的目录信息后,和本地进行比对,若本地存在未知的LSA信息,将使用LSR询问对端,对端使用LSU来更新这些LSA信息,直至双方数据库一致;

LSU需要ACK确认;

Full 转发 标志着邻接关系已经建立;

OSPF的工作过程

路由器上启动OSPF协议后,直连的邻居间,开始组播收发hello包,hello包中将存储本地已知邻居的RID,在双方RID均已知的情况下,建立邻居关系,生成邻居表;

邻居关系建立后,邻居间将进行条件匹配,匹配失败将停留为邻居关系,仅hello周期保活即可;匹配成功者间将进行邻接关系的建立;

邻接关系间的路由器,将使用DBD/LSR/LSU/LSack来获取本地未知的所有LSA信息;使得同一区域内所有路由器的数据库完全一致;---- 数据库表;

当本地数据库完成同步后,将数据库–>有向图–>树型结构图–>将本地到达所有未知网段的最短路径加载于本地路由表中;

收敛完成,仅hello包周期保活即可;正常每30min,邻接关系间再进行一次DBD的对比,若一致及正常;若不一致将马上进行同步;

结构突变:触发更新

1、断开网段 直连断开网段的设备,直接使用LSU告知邻接,需确认

2、新增网段 直连新增网段的设备,直接使用LSU告知邻接,需确认

3、无法沟通 hello time 对应的 dead time ;dead time 到时时,断开邻居关系,去除基于该邻接共享的LSA计算所得路由。

OSPF的基础配置

[r1]ospf 1 router-id 1.1.1.1 启动时,定义进程号,仅具有本地意义;建议配置RID;

RID格式为ipv4地址,且需要全网唯一; 手工配置–环回接口上取最大数值的ip地址—物理接口上最大ip地址的数值

宣告:1、区域划分 2、接口激活协议 3、传递接口信息

[r1-ospf-1]area 0

[r1-ospf-1-area-0.0.0.0]network 1.1.1.1 0.0.0.0

[r1-ospf-1-area-0.0.0.0]network 12.1.1.0 0.0.0.255

关于ospf的MTU问题:

在ospf协议的DBD包中将携带本地接口的MTU值,若两端一致可以正常建立邻居关系;若不一致将无法建立邻接关系。

默认华为设备不携带MTU;

[r1-ospf-1] int g0/0/1

[r1-GigabitEthernet0/0/1]ospf mtu-enable 两端设备均需开启

关于OSPF协议从邻居建立成为邻接的条件

根据网络类型决定

点到点网络中,所有的邻居关系必然成为邻接关系

MA网络中从邻居到邻接前将利用一个周期的dead time;进行DR/BDR选举;

先比较这些参选接口的优先级,默认1,取值范围0-255;越大越好,0标识不参选;

DR优先级最大,BDR次大;选举非抢占,故若希望干涉选举,需要重启ospf进程,或者将非DR/BDR修改为0;

[r2]interface GigabitEthernet 0/0/1

[r2-GigabitEthernet0/0/1]ospf dr-priority 3 修改优先级

重启进程

reset ospf process

Warning: The OSPF process will be reset. Continue? [Y/N]:y

非DR/BDR间为邻居关系。

关于OSPF的不规则区域问题

1.远离骨干的非骨干区域

2.不连续骨干

解决方案

1.tunnel 在骨干区域和非法ABR间建立一条隧道,之后将该条隧道宣告到OSPF协议中

缺点:1.周期的hello与更新,包括触发更新,将一直占用中间穿越区域

2.选路不佳

2.OSPF的虚链路

由非法ABR设备,通过直连区域的合法ABR进行授权,来转发路由,由于没有新增链路,故不存在选路不佳的问题。

[r2]ospf 1

[r2-ospf-1]area 1 两台ABR间的直连区域(同时处于该区域)

[r2-ospf-1-area-0.0.0.1]vlink-peer 4.4.4.4 对端ABR的RID

[r2]display ospf vlink

缺点:虚链路上的两台ABR间的周期资源占用问题;

1)在思科中,取消两台设备的周期行为,hello、更新均收发一次;–不可靠

2)在华为中,保留周期–占资源

3.多进程双向重发布

ospf多进程:一台路由器上的多个进程,每个进程拥有自己的数据库,独立计算路由条目,且计算所有不共享;最终将所有最佳路径加载于同一张路由表内;

路由器的一个接口只能工作在一个进程中;

可用于解决不规则区域,将不规则位置工作不同的进程中,实现分开,之后利用重发布技术来共享路由表; 解决了选路不佳和资源占用的问题

[r4]ospf 1

[r4-ospf-1]import-route ospf 2

[r4-ospf-1]q

[r4]ospf 2

[r4-ospf-2]import-route ospf 1

OSPF的接口网络类型

— OSPF协议在不同的网络类型,其工作的方式不同

[r1]display ospf interface GigabitEthernet 0/0/1

OSPF的数据库表

display ospf lsdb 查看LSDB目录

ospf协议在不同的条件环境下,将使用不同类别的LSA来传输拓扑或路由信息。
display ospf lsdb router 2.2.2.2 具体查看某条LSA信息

OSPF的优化

​ ----减少LSA的更新量

1、汇总 — 减少骨干区域的路由条目数量

2、特殊区域-- 减少非骨干区域的路由条目数量

【1】汇总–OSPF协议不支持接口汇总,在一个区域内,邻接间传递的是拓扑信息,不能进行汇总;故只能在交互路由的边界设备进行汇总

1)域间路由汇总–在区域间的ABR上,交互区域间路由条目时进行汇总配置

[r2]ospf 1

[r2-ospf-1]area 1 本地通过该区域1/2类LSA计算所得路由,可以汇总后传递给其他区域

[r2-ospf-1-area-0.0.0.1]abr-summary 3.3.0.0 255.255.252.0

2)域外路由汇总—ASBR在将外部的路由条目通过重发布协议,共享到OSPF协议中时;

可以进行汇总

[r4]ospf 1

[r4-ospf-1]asbr-summary 99.1.0.0 255.255.252.0

【2】 特殊区域 – 用于减少各个非骨干区域的LSA数量

不能为骨干区域,不能配置虚链路

[1] 同时不能存在ASBR

1)末梢区域–拒绝4/5类的LSA;由该区域连接骨干区域的ABR向该区域发布一条3类的缺省

[r2]ospf 1

[r2-ospf-1]area 1

[r2-ospf-1-area-0.0.0.1]stub

注:该区域内的所有路由器均需配置该命令

2)完全末梢区域 在末梢区域的基础上,进一步拒绝3类的LSA;仅保留一条3类的缺省路由

先将整个区域所有路由器配置为末梢区域;然后仅再在连接骨干区域的ABR上配置完全即可

[r2]ospf 1

[r2-ospf-1]area 1

[r2-ospf-1-area-0.0.0.1]stub no-summary

[2] 存在ASBR

1)NSSA 非完全末梢区域 – 该区域将拒绝4/5类LSA,由该区域连接骨干区域的ABR向该区域发布一条7类的缺省路由;该区域内的ASBR导入域外路由时,基于7类导入,之后通过该区域连接骨干的ABR传递到骨干区域时,转换为5类进入骨干区域;

NSSA设计的重点,不是减少该区域内ASBR产生的域外路由,而是网络中其他部分的ASBR产生的域外路由;

[r2]ospf 1

[r2-ospf-1]area 1

[r2-ospf-1-area-0.0.0.1]nssa 本区域内部所有设备均需配置

2)完成NSSA — 在NSSA的基础上,进一步拒绝3类LSA的进入,由该区域连接骨干区域的ABR向该区域发布一条3类的缺省

先将该区域配置为NSSA区域,之后仅在该区域连接骨干的ABR上配置完全即可

[r2]ospf 1

[r2-ospf-1]area 1

[r2-ospf-1-area-0.0.0.1]nssa no-summary

切记:NSSA和完全NSSA的工作环境,需要考虑ISP(运营商)所在位置,否则可能导致环路出现

display ospf routing 查看OSPF路由;显示本地发出和学习到的OSPF路由条目

3)虚链路认证

[r10-ospf-1-area-0.0.0.4]vlink-peer 9.9.9.9 md5 1 cipher 123456

用于关于OSPF的状态的问题

1)在MA网络中(进行DR/BDR选举)存在7种状态机

init是路由器A收到邻居B的hello包,但该hello包中没有A的RID;

2)在点到点网络init状态机在判断可以建立邻居后,直接进入exstart状态机;没有2way状态机----6种状态机

在点到点网络实际仅存在邻接关系;在MA网络(选举DR/BDR)网络中存在邻居和邻接关系;

3)若邻接间的数据库默认一致,将不需要进入loading状态机;

4)在hello时间较大时,比如p2mp和nbma工作方式,默认hello time为30s;

hello包收发的间隔较大,从down状态到init需要很长时间的等待,故在两种状态机,存在一个尝试状态机;

5)华为设备中ospf存在加速建邻机制— 在两台路由器进行过一次邻接关系建立后,双方存在对端的缓存信息后;二次建邻时将快速完成状态机的切换;–前提是缓存未删除—认证或拥塞
SFP算法 –OSPF防环机制

1、在同一个区域每台路由具有一致的LSDB

2、每台路由器以自己为根计算到达每个目标的最短路径(最小cost值)

3、必须区域划分–

优势-1)域间汇总减少路由条目数量

2)汇总路由是在所有明细路由均消失后才删除,网络更稳定

3)区域划分后不同类别的LSA传播范围不同,控制更新量

过程–基于本地LSDB(1/2类LSA)生成–生成有向图–基于有向图来进行最短路径树生成

最短路径树,关注本地LINK-ID的LSA开始–>基于该LSA内提及到点到点或传输网络信息再查看link-id递归到下一条信息;基于所有点到点和传输网络信息生成最短路径树主干;

然后用树中每台设备的末梢网络信息补充路由表,完成收敛。

你可能感兴趣的:(网络,网络协议)