OSPF-1

OSPF 是一个链路状态路由协议,使用 IP 协议号 89 。链路状态路由协议对于距离矢量路由来说,链路状态路由协议的路由信息是根据网络的链路状态,通过算法自己计算出来的;距离矢量路由的路由信息是依靠从邻居学习来的。
OSPF 的管理距离是 110 OSPF 只支持等价负载均衡,最多 6 条执行负载均衡。
OSPF 支持 CIDR VLSM
OSPF 支持认证,并且支持明文和 MD5 认证。
OSPF 采用增量更新,即只有在路由有变化时,才会发送路由,并且发送的是有变化的路由信息。
OSPF 路由的定期更新周期默认为 30 分钟。
一台路由器可以运行多个不同的 OSPF 进程,不同的 OSPF 进程间要相互获取路由信息,则需要进行路由重分布。
 
 
OSPF 术语
1、  Router id
用于在 OSPF 中标识各个路由器, router id 的选举规则如下:手工指定 ROUTER ID 、如果没有手工指定,则选择 LOOPBACK 地址最大的、如果没有配置 LOOPBACK 地址,则选择物理接口 IP 地址最大的。
2、   COST
OSPF 使用接口带宽来计算 metric 100M/ 接口带宽,单位为 bit/s COST 值也可以通过手动指定,手动指定的 COST 优先于自动计算的 COST
3、  OSPF 区域
OSPF 采用分区域的方式来计算路由; OSPF 区域要求所有的分支区域必须与骨干区域相连,因为它们需要通过骨干区域来传递不同区域的路由信息; OSPF 区域是基于接口划分的,所以一台路由器可以同时属于多个区域
4、  ABR/ASBR
ABR 是连接两个不同 OSPF 区域的路由器; ASBR 是连接 OSPF 区域与外部路由协议的路由器
 
OSPF 路由表
1、  路由的表示
如果是同区域的路由,用 O 来表示
如果是不同区域的路由,用 O IA 表示
如果是由外部路由协议重分布进的路由,则用 O E1 或者 O E2 表示
2、  路由的优先级
O----O IA-----O E1-----O E2
 
 
OSPF 邻居
要想在 OSPF 路由器间相互交换 LSA ,必须先建立 OSPF 邻居。 OSPF 邻居是靠发送 HELLO 包来建立和维护, OSPF 路由器会在接口上周期性的发送 HELLO 包,如果一台路由器超过 4 倍的 HELLO 时间没有收到 HELLO 包,邻居关系将会断开。
OSPF 邻居建立的 4 个条件:
1、  区域 ID 必须相同
2、  HELLO INTERVAL 时间间隔必须相同
3、  路由器必须同处于一个末节区域内
4、  如果存在认证,认证必须通过
OSPF 路由器只能使用 primary 地址建立邻居
 
DR/BDR
在多路访问网络中,例如以太网,为了减少 LSA 传播数量,需要在多路访问网络中选择出一台 DR ,所有的非 DR 路由器与 DR 相互建立邻接关系,从而减少 LSA 的传播数量。网络中除了选择 DR 外,还要选择出一台 DR 的备份路由器,称为 BDR
DR BDR 的选择是在多路由访问网段中才会出现的,而且 DR BDR 是在一个二层网段内选举的,如果一个区域内存在多个二层网段,则会选择多个 DR BDR
DR BDR 的选举规则:
1、  比较接口优先级,优先级最高的为 DR ,次之为 BDR ;优先级范围是 0-255 ,默认为 1 ;如果优先级为 0 ,则表示该路由器没有资格选择 DR BDR
2、  比较 ROUTER ID 大小,如果优先级相同,则选择 ROUTER ID 最大的为 DR ,次之为 BDR ,数字越大优先级越高
 
DR 失效后,会重新选举 DR BDR ,而 BDR 失效后,只会重新选举 BDR
所有运行 OSPF 的路由器使用组播地址 224.0.0.5 表示, DR BDR 则使用组播地址 224.0.0.6 表示。
 
 
OSPF 的数据包
1、  HELLO
OSPF 使用 HELLO 包建立和维护邻居关系
2、  DBD
当邻居建立后, OSPF 路由器会使用 DBD 描述自己的链路数据库概述信息并将其发送给自己的邻居
3、  LSR
当路由器需要邻居链路状态数据库的具体描述信息时,会向邻居发送 LSR 请求
4、  LSU
当邻居收到 LSR 请求信息,会以 LSU 信息回复,即发送邻居请求的 LSR 信息
5、  LSACK―LSDB
当邻居收到 LSU 信息后,会发送一个 LSACK 作为确认回复。经过反复的 LSR/LSU 发送
,最终双方路由器形成相同的链路状态数据库, OSPF 路由器会依据些链路状态数据库计算出到达各个目的地的最佳路径并存入路由表。
 
OSPF 启动过程
路由器从运行 OSPF 进程开始,直到根据链路状态数据库计算出路由表,共需要经历 8 个不同的过程,分别是:
DOWN----ATTEMPT----INIT----TWO-WAY----EXSTART----EXCHANGE----LOADING----FULL
DOWN :路由器刚刚启动 OSPF 进程,还没有从任何路由器处收到任何数据包,这时路由器可以发送 HELLO 包,以试图发现邻居
ATTEMPT OSPF 使用组播来发送数据包,如果在组播不能发送的网络中,例如帧中继网络,则需要指定 OSPF 使用单播向邻居发送 HELLO 包,试图建立邻居关系,在这种状态下,称为 ATTEMPT 状态。
INIT :只是路由器一方收到了 HELLO
TWO-WAY :双方已经相互交换了 HELLO 包,表示邻居关系已经建立完毕,如果需要选举 DR BDR 的网络,此时也已经选择完毕,但并不表示它们会交换 LSA, 如果不需要交换 LSA 的路由器,例如 DROTHER 间,则一直停留在此状态。
EXSTART OSPF 邻居在交换完整的 LSA 前,会先发送 DBD ,邻居间是谁先发送,谁后发送,是需要在 EXSTART 状态下确立的事情
EXCHANGE OSPF 路由器邻居双方相互交换 DBD 的过程
LOADING :邻居根据收到的 LSR ,向对方回复 LSU
FULL :双方交换完整的 LSA 信息,进行路由表的计算
 
 

你可能感兴趣的:(OSPF-1)