OSPF
OSPF是基于链路状态算法最常用的IGP路由协议之一。再ospf域内,路由器之间交换链路状态信息(LSA),LSA的集合为链路状态信息库(LSDB),通过最短路径优先算法(SPF)计算出到达目的最短的路由。
基本概念
1. 支持CIDR,发布路由信息时携带子网掩码信息,不再局限于有类网络。
2. 支持区域划分,实现更加灵活的分级管理。
3. 无路由自环,
4. 路由变化收敛快,被设计为触发更新的方式。
5. 支持IP多播收发协议数据,占用的网络流量更小
6. 支持多条等值路由,流量被均衡的分担在这些等值路由上,更好的利用带宽资源,。
7. 支持协议报文的认证,提高网络的安全性。
工作原理
邻居和邻接关系
邻居关系,osfp路由器启动后会通过ospf接口发出hello报文,用于发现邻居,收到hello报文的ospf路由器会检查报文中的一些参数,一致,建立邻居关系。
邻接关系,邻接路由器实在邻居关系的基础上进一步建立的,只有双方交换dd报文之后,并能交换LSA之后,才能形成真正意义上的邻接关系。
网络类型
1. P2P
2. 广播型网络(OSPF的默认网络类型)
3. 非广播多路访问(NBMA)
4. P2MP
DR和BDR
在全广播i和NBMA网络中,为避免两两路由器形成邻接关系导致路由收敛慢,设计了DR和BDR(指定 (班长))。router只与DR和BDR建立邻接关系,与其他router不建立邻接关系。
DR的选举规则,最高ospf接口优先级拥有者为DR,如果优先级相等(1)具有最高odpf router id 的路由器为DR.
链路状态算法的路由计算过程
1. 邻接关系的建立,建立好邻接关系之后才会交互各自知道的LSA.
2. LSDB同步,每个ospf的路由器交互LSA后,每个路由器保存收到LSA,所有的LSA集合叫做LSDB,.
3. SPF路由计算,LSDB同步以后,每个ospf路由器以自己为根运算spf算法,运算结果是一条以自己为根的最短路径树。
4. 路由表生成。根据spf数,添加路由信息到了路由表。
报文类型
1. hello报文
2. 数据库描述报文(DD)
3. 链路数据请求报文 (LSR)
4. 链路状态更新报文 (LSU)
5. 链路状态确认报文 (LSACK)
单区域ospf
[我稍后补充]
多区域ospf
[我稍后补充]
OSPF LSA 类型
- 1 Router LSA
每台ospf路由器都会产生,描述路由器所有ospf直连链路的状态和cost值,只能在所属区域内泛洪。 - 2 Network LSA
由DR产生,描述改DR连接的所有路由器的router id ,包括DR自己的routerid,只能在所属区域内泛洪。 - 3 Network summary LSA
由abr产生,描述一区域内网段的路由。 - 4 ABSR summary LSA
由ABR 产生,是一条主机LSA,指向ASBR. - 5 AS external LSA
由ASBR 产生,描述AS以外的外部路由。 - 7 NSSA LSA
由ASBR产生,几乎和LSA5相同,但他仅仅再始发这个LSA的NSSA 内泛洪,不能直接进入骨干区域,NSSA的ABR后将7类LSA 转换为5类LSA后注入骨干区域。