OSPF 路由分类:
域内:1 2 类 LSA
域间: 3类LSA
域外:5 7 类
1.1类与1类LSA比较 --- 优先选举metric较小的,若一致负载均衡
2.3类与3类LSA比较 --- 优先选举metric值较小的,若一致负载均衡
3.5类2类型LSA与5类2类型LSA---1.优先比较种子度量值(越小越优)2.若种子度量值一致,则比较沿途累加的度量值,沿途累加度量值越小越优。
4.5类1类型LSA与5类1类型LSA---比较种子度量值和沿途累加度量值总和,越小越优。
5.1类LSA与3类LSA---1类永远优于3类
6.3类LSA与5类LSA---3类永远优于5类
7.5类1类型与5类2类型---1类用于优于2类
8.5类1类型与7类1类型---当总度量值一致时,负载均衡,若总度量值不一致,越小越优。(仅仅关注总度量值,种子度量值+沿途累加 注意:7类LSA中携带了FA地址,计算沿途累加度量值时,计算的是到达FA地址的)
9.5类2类型与7类2类型---1.先比较种子度量值,越小越优。2.比较沿途累加度量值,越小越优。3.若度量值完全一致,则负载均衡。
OSPF五种数据包
hello包
启动配置完成后,邻居间使用hello包建立邻居关系,生成邻居表:
Hello包:用于邻居的发现、关系的建立和保活
Hello :DBD LSR LSU LSACK
hello: 周期性发送,周期时间10s或30s(根据不同的网络类型默认10s或30s)
目的:建立并维持OSPF 邻居关系(邻居关系建立之后重当保活包功能)
发Hello包,down状态到init(初始化)状态
Hello包目标地址224.0.0.5,所有运行OSPF的路由器都会监听的组播地址,(本地链路组播)
Ttl值为1
DBD数据包
首部中Type字段为1
功能:描述数据库的目录信息
DBD包:exstart和exchange均出现; exstart状态时,没有携带目录信息,
仅用于主从关系选举;
1、DBD包中携带MTU,强制要求邻接间MTU值必须一致,否则将卡在该状态
2、在exstart状态的DBD时,使用隐型确认;—基于序列号
从使用主的DBD序号来确认主的信息
3、标记位 I 为1标识本地发出的第一个DBD 包
M为0标识本地的发出最后一个DBD包
MS为1标识主,为0标识从
当LSDB同步完成后,本地基于数据库最短选路规则,计算到达所有未知网段的最短路径,然后将其加载到路由表中:
LSR数据包
首部中Type字段为3
功能:请求在DBD交换过程中发现的本路由器中没有的或已过时的LSA包细节
链路状态请求数据包时OSPF数据包的第3种类型,在部分路由数据库信息“遗失”或“过时”的情况下发送。LSR数据包用来重新取回“遗失”的路由数据库中的精确信息。DBD交换过程完毕后,邻居双方(主/从路由器)还会互发LSR数据包,请求对方发送DBD交换过程中通告过的LSA。
LSU数据包
首部中Type字段为4
功能:用于LSA的洪泛和响应LSR
链路状态更新数据包是OSPF数据包第4种类型,OSPF路由器会发此类数据包来实施LSA的泛洪。单个LSU数据包内会包含多条LSA。OSPF路由器也会发送LSU数据包,来回应(邻居路由器发出的)LSU数据包。以泛洪方式发出的LSA由LSA确认数据包进行确认。只要有一条未经确认的LSA,(OSPF路由器就会)每隔重传间隔时间重传一次。
LSA:1.LSA 类型 2.link-ID 链路标识符 3.ADV router 产生路由器
LSAck数据包
首部中Type字段为5
功能:对LSU的确认
链路状态确认数据包是OSPF数据包的第5种类型,用来对每条LSA进行确认。OSPF路由器也会发送LSack数据包,来应答LSU数据包。可用单个LSack数据包一次性确认收到的多条LSA。LSack数据包负责LSU数据包的可靠传输。
链路状态确认数据包以组播的方式发送。若(发送LSack数据包的)路由器为DR/BDR,则IP包头的组播目的IP地址为224.0.0.5(所有SPF路由器地址)。否则,LSack数据包IP包头的组播目的IP地址为226.0.0.6(DR/BDR地址)。
包内是确认的LSA;