OSPF:开放式最短路径优先

无类别链路状态路由协议;跨层封装与IP报头,协议号89

触发更新+周期更新(30min)

组播更新:224.0.0.5(通用地址) 224.0.0.6 (DR/BDR专用地址)

基于拓扑进行收敛,更新量巨大---需要结构化部署(1、进行区域划分 2、IP地址规划)

一、OSPF的5种数据包:

1.hello包    //邻居发现、建立、保活

2.DBD包    //数据库描述包---本地数据库的目录

3.LSR包     //链路状态请求包---查看邻居的DBD后,本地未知信息进行查询

4.LSU包     //链路状态更新包

5.LSACK包   //链路状态确认包

LSA:链路状态通告,具体的拓扑或者路由信息;基于LSU包来进行传递。

LSDB:链路状态数据库(所有LSA的集合)。

数据包结构:

标准报头中存在RID/区域ID和认证参数

二、OSPF的7种状态机:

(1)down:一旦本地发出OSPFhello包进入下一个状态;

(2)init初始化:接收到的hello包中,包含本地的RID,进入下一状态;

(3)2-way双向通信:邻居关系建立的标志;

条件匹配:如果是点到点网络类型直接进入下一个状态,MA网络类型进行DR/BDR选举,非DR/BDR间不得进入下一状态。   

(4)exstart预启动:使用类似hello的DBD包(不包含具体内容,只含有一些标志位)进行主从关系选举,RID数值大为主,优先进入下一状态;

(5)exchange准交换:使用真实的DBD包来共享数据库目录;

(6)loading加载:使用LSR/LSU/LSack来获取未知LSA信息;

(7)full转发:临接关系建立的标志。

三、OSPF的工作过程:

启动配置完成后,本地默认组播发出hello包到所有邻居;若收到其他邻居的hello包回复,邻居关系建立,生成邻居表。

邻居关系建立后,进行条件匹配,匹配失败将维持邻居关系,仅hello包周期保活;若条件匹配成功,使用DBD来获取数据库目录,之后使用LSR/LSU/LSack来获取本地未知的LSA信息,生成完整的数据库表。

之后本地基于LSDB,启用SPF算法,生成导向图,在基于最短路径优先选择,将最佳路径加载与路由表中;

收敛完成,仅hello包周期保活,每30min进行数据库同步(比对、纠正)。

结构突变:

1.新增网段---直连新增网段设备使用DBD告知所有邻居,之后收敛;

2.断开网段---直连网段设备使用DBD告知所有邻居;

3.无法沟通---保活时间到期后,断开邻居关系,删除通过该邻居学习到的所有LSA信息

四、OSPF配置:

R1(config)#router ospf 1   //启动时需要配置进程号,仅具有本地意义;

R1(config-router)#router-id 1.1.1.1  //配置RID,首选手工配置,其次环回最大数值,最后物理接口最大

宣告:1、激活   2、传递拓扑和路由  3、区域划分

R1(config-router)#network 1.1.1.1 0.0.0.0  area 0

                                   反掩码 区域ID

区域划分规则:

1、星型拓扑(中心到站点):需要有骨干区域0;非骨干区域区域大于0,;非骨干必须直连骨干区域。

2、ABR—区域边界路由器;所有区域间互联时必须依赖一台同时工作在两个区域的路由器。

【1】启动配置完成后,邻居间使用hello包,建立邻居关系,生成邻居表;

OSPF的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:34    12.1.1.1        Serial0/0

   3.3.3.3        0   FULL/  -        00:00:35    23.1.1.2        Serial0/1

                      状态机                        下一跳        出接口

【2】邻居关系建立后,进行条件的匹配,若匹配成为,使用类似于hello包的DBD包进行主从关系选举,且同时使用DBD包发送数据库目录信息,之后使用LSR/LSU/LSack来获取未知的LSA信息,完善本地的LSDB,生成数据库表;

R2#show ip ospf database   //查看OSPF数据库简表

关于DBD包的几个重点

1、DBD包关注接口的MTU值,要求邻居间MTU值必须完全一致,否则无法建立邻接关系,卡在EXSTART。

2、隐性确认---在选定主从关系后,从使用主的序列号来对主进行确认。(直接使用ack为明性确认)

【3】LSDB同步(LSA洪泛)---OSPF收敛过程完成后,OSPF协议将基于本地的数据库使用SPF算法,选出最短路径将加载到路由表中。

 1、字母:   

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  外部路由,是其他协议的路由,被重发布进入

O N1/2 外部路由,重发布进入的路由,其他协议或进程产生,同时本地为NSSA区域;

2、管理距离110;

3、度量:cost(开销值)=参考带宽/接口带宽

参考带宽默认为100M;默认优选整段路径cost值之和最小的;当接口带宽大于参考带宽时,将可能导致选路不佳,可修改参考带宽。

R1(config-router)#auto-cost reference-bandwidth ?

  <1-4294967>  The reference bandwidth in terms of Mbits per second

切记:整个网络所有设备参考带宽必须完全一致。

五、OSPF从邻居成为邻接的条件

基于网络类型,点到点网络必然成为邻接关系;因为OSPF协议需要在邻接间进行数据库比对、同步;故不能使用类似于距离矢量协议的接口水平分割,导致MA网络中间将出现大量重复更新,所以使用DR/BRD选举规则来解决---非DR/BDR不能成为邻接关系。

选举规则:优先级最大,默认为1;范围为0-255;点到点接口为0,0代表不参选;若优先级相同,使用RID比较,优选最大数值;选举时长30s。

干涉选举:

1、DR优先级最大,BDR次大;其他不改

R1(config)#int ethernet 0/0

R1(config-if)#ip ospf priority 3   //修改参选接口的优先级

注:OSPF选举非抢占的,故在修改优先级后,必须重启OSPF的进程。

 2、DR优先级最大,BDR次大;其他设备修改为0,放弃选举,不需要重启OSPF进程。

切记:一个MA网段中至少存在一个DR

六、OSPF网络类型(OSPF工作方式):

OSPF在不同协议下的工作特点

R1#show ip ospf interface ethernet 0/0              //查看接口具体信息

Ethernet0/0 is up, line protocol is up

  Internet Address 10.1.1.1/24, Area 0, Attached via Network Statement

  Process ID 1, Router ID 1.1.1.1, Network Type BROADCAST, Cost: 10

网络类型

OSPF工作方式

环回

LOOPBACK,无hello;传输32位主机路由

点到点(GRE/串行/PPP/HDLC)

POINT_TO_POINT ,hello time10s

BMA(以太网)

BROADCAST,hello time 10s;选举DR/BDR

NBMA(MGRE/帧中继)

默认为POINT_TO_POINT

(这里不懂网络类型的同学可以看我的另一篇网络类型的文章,这里不做解释了。)

MGRE上运行OSPF的问题:

(1)默认接口网络类型为点到点,该类型仅允许建立一个邻居关系。

解决办法:修改接口的工作方式为BROADCAST;需要注意的是这个网段所有接口必须完全一致。

(2)在非全连和星型拓扑下使用BROADCAST会导致一些问题:因为分支站点没有邻居关系,不知道对方的存在,将无法确定最合适的DR位置。

解决办法:分支站点修改优先级放弃参选DR,仅让中心站点成为DR,无BDR;或者修改所有接口的工作方式为点到多点。

点到多点工作方式:不是设备的默认工作方式,必须通过手工配置完成;不选DR,hello time为30s;缺点是不进行DR选举,故在全连网状结构中,将出现重复更新。

R1(config-if)#ip ospf network point-to-multipoint    //修改OSPF的工作方式为点到多点

总结:

  • 在NBMA网络结构中,部分网状和星型拓扑修改区域所在设备接口的工作方式为点到多点,同时将会出现选路不佳的情况;或者修改为BROADCAST,这时候需要让中心成为DR,不需要BDR
  • 在全连网状结构中使用BROADCAST,正常进行DR选举。
 posted on 2019-04-03 21:41  嚴∞帅  阅读(37)  评论(0编辑  收藏  举报