一、OSPF的特点 1、OSPF是一种无类别链路状态路由协议,跨层封装到三层,协议号89; 2、组播地址:224.0.0.5(BDR组播地址) 和224.0.0.6(DR的组播地址); 3、基于拓扑工作,更新量大——需要结构化部署——区域划分、地址划分; 4、收敛速度极快,但大型网络配置很复杂。 5、OSPF度量:从源到目的所有出接口的度量值,和接口带宽反比(10^8/带宽)
二、OSPF的5种数据包 1、Hello:发现、建立、保活邻居关系,hello time是10s; 2、DBD:数据库描述包,检查路由器的数据库之间是否同步; 3、LSR:链路状态请求包,向其他角色请求发送特定的LSA; 4、LSU:链路状态更新包,对LSA洪泛;负责把LSR请求的LSA信息封装到LSU中; 5、LSACK:链路状态确认,路由器必须对每个收到的LSA进行LSACK确认,但可以用一个LSACK确认多个LSA。
三、OSPF的状态机 OSPF在建立时,存在以下状态: 1、Down:本地一旦发出hello包就会进入下一状态; 2、Init 初始化:本地接收到的hello包中存在本地的RID进入下一状态; 3、Two-way 双向通信:邻居关系建立的标志; 条件匹配:点到点网络直接进入下一状态;MA网络将进行DR/BDR的选举(40s),非DR/BDR不得进入下一状态; 4、Exstart 预启动:使用类似hello的DBD进行主从关系选举,RID大为主,主优先进入下一状态; 5、Exchange 准交换:使用真实的DBD包进行数据库目录共享,需要ack; 6、Loading 加载:使用LSR/LSU/LSack获取未知的LSA信息; 7、Full 转发:邻接关系建立的标志。
四、OSPF的工作原理 ospf配置完成后,本地使用hello包建立邻居关系,生成邻居表;然后进行条件匹配,匹配失败者保持邻居关系,仅hello周期保活; 条件匹配成功的,将使用DBD/LSR/LSU/LSACK获取未知的LSA信息,当收集完网络中所有的LSA后,生成LSDB链路状态数据库表; 之后使用SPF算法,计算本地到达未知网段的最佳路由(cost值之和最小的路径),将其加载到路由表中。 其实,在生成LSDB后,会启动2次SPF算法: 第一次启用SPF算法,生成以自己为根的最优路径树; 第二次启用SPF算法,计算到达未知网段的最佳路径,加载到路由表中。
五、OSPF的三张表 1、 邻居表:列出每台路由器全部已经建立邻接关系的邻居路由器 2、 链路状态数据库(拓扑表):列出网络中其他路由器的信息,由此显示了全网的网络拓扑 3、 路由表:列出通过SPF算法计算出到达每个相连网络的最佳路径
六、OSPF的接口网络类型 1、 点到点: DA 224. 0. 0. 5(即使设置nei ghbor也组播更新),一对路由器形成邻接关系。无DR,每个子接口属于不同IP子网。 2、 点到多点: DA: 224. 0.0. 5 (即使设置neighbor也组播更新),无DR,同一个IP子网。Ptp和ptmp无法形成邻居(在PTMP中hello-interval 30 dead -interval 120) 3、 点到多点非广播: DA: 单播,无DR, 同一IP子网。 4、 NBMA: DA:单播,选DR (DR和BDR必须与其他所有路由器直接相连),同- -IP子网。全互联或部分互联。 5、 广播:选举DR,所有路由器发信息到224.0.0.6 (DR监听这地址),然后DR发送信息到224.0.0.5,DR与所有路由器建立邻接关系,所有路由器之间到2way状态(即使设置neighbor也组播更新)。同一IP子网,全互联或部分互联。 6、 特点总结: 点家族都不用选举DR和BDR 多路访问都需要选举DR和BDR 非广播都要手动指定邻居,非广播都是单播更新 neighbor命令后指定的cost只有在非广播下才有效
七、OSPF的度量值 1、 COST(1-65535) :从发送端到目的地出方向的代价之和。Ip ospf cost 2、 思科计算度量方法为: 10^8/带宽(不能为小于1的数,小于都为1)例如: 10^8/1544Kbit=64修改参考带宽:如果接口带宽大于10的8次方,那么都为1。 3、 默认参考带宽为100M,也就是10的8次方。 4、在出接口与下一跳路由的入接口修改参考带宽。 注意:参考带宽要在所有0SPF路由器修改。否则带宽计算不一致