一、OSPF的基本概念
1、OSPF简介
开放式最短路径优先OSPF是IETF组织开发的一个机遇链路状态的内部网关协议(Interior Gateway Protocol);其中开放式代表公有协议,不受厂商的限制,在任意设备上使用,应用最广泛的协议。版本:IPV2/IPV3,本文的OSPF均为OSPF IPV2协议。
2、OSPF的优点
作为基于链路状态的协议,除了能够解决RIP所面临的诸多问题以外,还有以下四点优点:
①、OSPF采用组播形式收发协议报文,组播地址是:224.0.0.5(.5代表OSPF内所有的路由器)/244.0.0.6(代表OSPF指定路由器DR);
②、支持无类型域间选路;
③、支持对等价路由器进行负载分担:路径开销相等的情况下,相等的两条路都可以选择;
④、支持报文认证。
3、Router-ID
①、OSPF的术语是Router-ID,一台路由器指定唯一的Router-ID。一旦设定无法更改。若想更改需要重启OSPF进程,但是重启的风险:网络需要重新收敛,重新计算,数据传输有风险;
②、Router-ID的设定可以通过手工配置,用32位点分十进制表示的。一般指的就是回环地址(loopback 0),因为loopback 0属于虚拟主机,接口不会断掉,从而保证了协议的稳定性。
4、OSPF Cost
①、OSPF使用cost“开销”作为路由度量值;
②、OSPF接口cost=100M/接口宽带,其中100M为OSPF的参考带宽,可以修改。数值取整,并非四舍五入;
③、每一个激活OSPF的接口都有一个cost值
④、一条OSPF路由的cost由该路由从起源一路到达本地所有入接口cost值得总和,具体含义看下图。
R1:cost=1;R2:cost=50;R3:cost=1
R1–R2的cost值=50+1;
R1–R3的cost值=50+1+1
二、OSPF邻居关系建立过程
1、OSPF的三张表
①、邻居表(peer):是一种可靠的路由协议,需要先建立OSPF邻居关系之后才能发送hello报文,建立邻接关系(全毗邻的邻居关系),网络收敛,形成邻居表;
OSPF邻居关系:直连的路由器是邻居
邻接关系:全毗邻的邻居关系
②、链路状态数据库(LSDB)
OSPF是由LSA(链路状态通告)来描述网络拓扑信息的,用LSDB存储网络的LSA,运行OSPF时LSDB表必须同步
③、OSPF路由
基于LSDB进行SPF(Dijkstra算法是Dijkstra发明的)计算,得出路由表
2、OSPF五种报文
OSPF Hello报文:邻居到邻接关系,中间发送hello报文,到网络收敛之后,仍会发送hello报文,周期性是10s,为了确认邻居仍然存在,若40s没有响应(down),即4倍的周期性时间,就重新寻找邻居(发的组播是255.0.0.5);
OSPF DD报文:描述LSDB,相当于携带LSA头部信息,一个摘要;
OSPF LSR报文:链路状态请求。用于向对方请求所需的LSA,会携带具体的信息;
OSPF LSU报文:用于向对方发送其所需要的LSA,LSA是承载在LSU报文里面的,注意:抓包时只能发现LSU;
OSPF LSAck报文ÿ