链路状态路由协议总结
链路状态路由协议有四个步骤:
1、建立相邻路由器的邻居关系
2、邻居之间交互链路状态信息和同步LSDB
3、进行优选路由计算
4、加载进路由表
OSPF协议概述
距离矢量路由协议:RIP,不可靠。运行rip的路由器很周期性的泛洪路由表,从相邻的路由器学习路由,例如路由是别人告诉你的,不可靠的。
链路状态路由协议:OSPF,路由是自身计算,收集LSA放进LSDB然后通过SPF算法,加载进路由表。
OSPF计算过程:
建立邻居收集LSA,放进LSDB,通过SPF计算,加载进路由表
1、LSA(链路状态通告)描述了路由器接口的状态信息,例如接口的开销、连接的对象等。
2、LSDB(链路状态数据库),每台路由器都会产生LSA,路由器将接收到的LSA放入自己的LSDB(LinkState DataBase,链路状态数据库)。路由器通过LSDB,掌握了全网的拓扑。里面放进了LSA收集的信息。
•路由器将LSA存放在LSDB中
•LSDB汇总了网络中路由器对于自己接口的描述
•LSDB包含全网拓扑的描述
3、SPF每台路由器基于LSDB,使用SPF(ShortestPath First,最短路径优先)算法进行计算。每台路由器都计算出一棵以自己为根的、无环的、拥有最短路径的“树”。有了这棵“树”,路由器就已经知道了到达网络各个角落的优选路径。
4、最后每台路由器根据SPF计算结果,将路由加载入路由表。
OSPF基础术语:
区域
OSPF Area用于标识一个OSPF的区域。
区域是从逻辑上将设备划分不同的组,每个组用区域号标识。
OSPF基础术语:Router-ID
Router-ID(路由器标识符),用于在一个OSPF域中唯一地标识一台路由器。
Router-ID的设定可以通过手工配置的方式,或使用系统自动配置的方式。
Router-ID的生成方法有:1、手工全局配置;2、手工协议配置(优先级最高);3、自动生成
在华为设备中,如果是物理接口IP地址中,优选选择先配置的,当做router-id
度量值:
缺省时,接口cost值=100Mbit/s除以接口带宽。其中100Mbit/s是缺省参考值,可以手动配置。
如果要修改缺省参考值,使用命令bandwidth-reference修改
OSPF协议报文类型
OSPF有五种协议报文类型。这些报文在OSPF路由器之间交互中起不同的作用。
报文名称 |
报文功能 |
Hello |
周期性发送,用来发现和维护OSPF邻居关系。 |
Database Description |
描述本地LSDB的摘要信息,用于两台设备进行数据库同步。 |
Link State Request |
用于向对方请求所需要的LSA。设备只有在OSPF邻居双方成功交换DD报文后才会向对方发出LSR报文。 |
Link State Update |
用于向对方发送其所需要的LSA。 |
Link State ACK |
用来对收到的LSA进行确认。 |
OSPF三大表项:
邻居表: display ospf peer查看
- OSP传递链路状态信息前,需要先建立邻居关系,通过Hello报文。
LSDB表:display ospf lsdb
- 自身产生的和从邻居收到的LSA信息,保存在LSDB中。
OSPF路由表:display ospf routing-table
OSPF工作原理
收集LSA,放进LSDB,通过SPF计算,加载进路由表
1、LSA(链路状态通告)描述了路由器接口的状态信息,例如接口的开销、连接的对象等。
2、LSDB(链路状态数据库),每台路由器都会产生LSA,路由器将接收到的LSA放入自己的LSDB(LinkState DataBase,链路状态数据库)。路由器通过LSDB,掌握了全网的拓扑。里面放进了LSA收集的信息。
•路由器将LSA存放在LSDB中
•LSDB汇总了网络中路由器对于自己接口的描述
•LSDB包含全网拓扑的描述
3、SPF每台路由器基于LSDB,使用SPF(ShortestPath First,最短路径优先)算法进行计算。每台路由器都计算出一棵以自己为根的、无环的、拥有最短路径的“树”。有了这棵“树”,路由器就已经知道了到达网络各个角落的优选路径。
4、最后每台路由器根据SPF计算结果,将路由加载入路由表。
OSPF邻接关系建立过程
建立邻居关系,协商主从,交互LSDB信息,同步LSDB。
OSPF中邻居和邻接是一样的吗?本质有何区别?
不一样。本质区别在于是否交互了LSA。
邻接关系数量:=N*(N-1)/2
N等于几台网络设备
比如五台路由器,5*(5-1)/2=10 10个邻接关系
邻接关系建立流程:
1、两台路由器互相交互Hello报文 ——2-way
- R1向链路上发送Hello报文,携带自己的Router ID。R2收到后,把R1的router id放进自己邻居表里,此时R2变为init状态;R2再向链路上发送Hello报文,此时R1的邻居字段中有R2的Router ID,此时双方建立邻居关系,达成2-way状态。
2、2-way表示建立邻居状态。由2-way转为Exstart状态后开始主从关系选举:——Exstart
- R1向R2发送第一个DD报文内容为空,假设此时seq为X。
- R2向R1发送第一个DD报文内容为空,假设此时seq为Y。
- 选举主从关系,根据Router ID,越大越优,此时由Exstart转为Exchange。
3、R1和R2互相发送DD报文携带自己的LSDB。——Exchange
- R1邻居状态变为Exchange,R1发送一个新的DD报文,包含自己LSDB,序列号采用主设备的序列号。R2收到后邻居状态从Exstart转为Exchange。R2再向R1发送新的DD报文,携带自己的LSDB,序列号为Y+1。从路由器需要对主路由的DD报文进行确认,回复的序列号与主路由器应一致。此时状态为Loading。
4、发送LSR请求自己没有的LSA信息 ——Full
- 邻居状态变为Loading后,R1向R2发送LSR报文,请求那些再Exchange状态下通过DD报文发现的LSA,但是在本地LSDB中没有的LSA。R2收到后向R1回复LSU,LSU携带详细的LSDB。R1收到后,回复LSAck报文确认收到。此过程中,R2也会向R1发送LSR请求报文,R1回复LSU携带详细LSDB,R2收到回复LSAck确认收到。
OSPF网络类型:
P2P,BMA(广播),NBMA(非广播),P2MP
3种角色:
DR(指定路由器,班长) BDR(备份指定路由器,副班长) DRother(既不是班长也不是副班长);
DRother 只能与DR BDR形成邻接关系,会交互LSA,DRother之间只能形成邻居关系(不能直接交换LSA);
每个广播域中都会有DR。
OSPF域
OSPF域(一系列使用相同策略的连续OSPF网络设备所构成的网络)。
OSPF路由器在同一个区域内网络中泛洪LSA,为了确保每台路由器都拥有对网络拓扑的一致认知,LSDB需要在区域内进行同步(一样的信息)。
OSPF多区域
OSPF引入区域的概念,将一个OSPF域划分成多个区域,可以使OSPF支撑更大规模组网。
OSPF多区域的设计减少了LSA泛洪的范围,有效的把拓扑变化的英雄控制在区域内,达到网络优化的目的。
在区域边界可以做路由汇总,减小了路由表规模 。
多区域提高了网络扩展性,有利于组建大规模的网络。
OSPF路由器类型
OSPF路由器根据其位置不同或功能不同,有这样几种类型:
区域内路由器(Internal Router):该类路由器的所有接口都属于同一个OSPF区域。
区域边界路由器ABR(Area Border Router):该类路由器的接口同时属于两个以上的区域,但至少有一个接口属于骨干区域。(骨干区域:区域0)
骨干路由器(Backbone Router):该类路由器至少有一个接口属于骨干区域。
自治系统边界路由器ASBR(AS Boundary Router):该类路由器与其他AS交换路由信息。只要一台OSPF路由器引入了外部路由的信息,它就成为ASBR。