OSPF(开放最短路径优先协议)

一、工作原理

1、链路状态路由协议

特征:

快速适应网络变化;

在网路发生变化时发送触发更新(LSA,链路状态通告);

以较低的频率发送定期更新。

 

为了确保网络中的所有路由器做出一致的路由选择,每台路由器必须记录以下信息:

①直连的邻居路由器;

②网络或区域内其他路由器连接的网络;

③前往每一个目的地的最佳路径。

同一个区域内,所以OSPF路由器的拓扑表都相同。

OPSF协议号:89

 

2、OSPF区域结构

OSPF为层次结构,多个OSPF区域,其有点如下:

①减小路由条目,域间汇总

②限制LSA泛洪范围,在边界网络上停止,加速汇聚

③减小网络的不稳定性,一个区域内的问题不会影响其他区域

 

区域结构分为:

骨干区域:快速高效地传输数据包,通常不接用户。标识为Area0或Backbone

非骨干区域:连接用户,所有数据都必须通过Area0中转。标识为Regular Area或Nonbackbone

所有非骨干区域都直接与骨干区域相连。

 

涉及到的名词:

ABR:区域边界路由器,连接多个区域的路由器,分离LSA泛洪区。

ASBR:自制系统边界路由器,至少有一个接口与其它域相连(如EIGRP,RIP等),ASBR可将外部路由重分布到OSPF中。

 

3、OSPF邻接关系

邻居与邻接关系:

①OSPF路由器与它直连的邻居建立邻居关系

②路由器只会与建立了邻接关系的路由器互传LSA

③路由器只和建立了邻接关系的邻居才可以达到Full状态

④路由更新只在形成了Full状态的路由器间传递

⑤点到点(P2P)链路,所有路由器只和DR和BDR到达Full状态

邻居:必须有直连的链路。

邻接:必须是邻居;链路两边同一区域的数据库必须同步,状态为Full,只有邻接关系才传递LSA。

 

4、关于DR与BDR

DR:指定路由器,确保同一个LAN中的所有路由器的LSDB都相同。

BDR:备份指定路由器。

选举方式:

①比较优先级,越大越优,默认为1,0表示不参加选举

②相同优先级比较Router-id,越大越优

修改优先级:ip ospf priority  *

 

特点:

①.不抢占。DR正常时,即使有新的、优先级比DR高的路由器也不能抢占为DR。

②.DR正常时,BDR只接收所有信息。转发LSA和同步LSDB由DR完成;当DR故障时,BDR自动成为DR,完成原DR的工作,并重新选举BDR。

③.DR和BDR是接口概念。

④.不同网段分别选举DR/BDR

DR发送LSA给DRother,用224.0.0.5

DRother发送LSA给DR/BDR,用224.0.0.6

非MA网络,没有DR/BDR,路由器都用224.0.0.5

 

5、OSPF度量值计算

cost=10^8/带宽BW        单位:bps

默认情况下:

loopback cost=1         T1 Serial cost=64         Ethernet cost=10        FastEthernet cost =1

SPF算法:

①在一个区域内的所有路由器有同样的LSDB

②每一个路由器在计算时都将自己做为树根

③到达目标cost值最小的为最有路径

④最佳路由被放入路由表中

 

6、链路状态数据的结构

①LSDB中每一个LSA都有一个序列号,范围从0x80000001~0x7FFFFFFF,负->正

②OSPF每30分钟flood一次LSA来维持LSDB的同步,每flood一次,序列号加1

③LSA条目的老化时间默认是1小时(0~3600s

④当一个路由器遇到同一个LSA的两个实例时,必须能够确定哪一个是最近的LSA,序号来识别

 

工作原理:  在收到LSA后

①如LSDB中没有这个条目,则加入到LSDB中,返回LSACK,将信息扩散到其他路由器,SPF更新路由表

②如果有这个条目,且LSU中包含的信息与之相同,则忽略

③如果有这个条目,但LSU中包含更新,则加入到LSDB中,返回LSACK,SPF更新路由表

④如果有这个条目,但LSU中包含更旧的信息,则将一个包含新信息的LSU发送给发送方

 

7、OSPF分组

Hello:发现并建立邻居关系

DBD(数据库描述):路由摘要信息,检查路由器数据库之间是否同步(隐式确认)

LSR(链路状态请求):向另一台路由器请求特定路由的完整信息

LSU:用于LSA的泛洪和回应LSR该路由的完整信息,只有LSU需要显示确认

LSACK:对其他类型的分组做确认

 

OSPF建立邻居的必要条件:

①Hello&Hold-time必须一致,一定是4倍关系

②区域ID一致

③认证一致

④末节标志一致

⑤三层MTU要一致(否则一边是Exstart,一边是Exchange;也可忽略 ip ospf mtu-ignore)

⑥OSPF版本号要一致

⑦Router-id不能相同

⑧当OSPF网络类型为MA时,要求掩码一致

Hello时间间隔与死亡时间

广播类型网络:10s------->40s

点到点型网络:30s------>120s

 

8、邻接状态关系

Down:没有检测到活动邻居

Init:收到Hello分组

Two-way(双向):路由器在其收到的hello分组中看到了自己的RID

Exstart(预启动):确定了主/从角色,此时发送的DBD是空的,DR/BDR

Exchange(交换):发送DBD

Loading(加载):交换LSR和LSU

Full(完全邻接):邻居处于完全邻接状态

 

二、配置OSPF

1、宣告

router ospf [process-id]      (范围1-65535)

net 192.168.1.1  0.0.0.0  area [area-id]     (推荐精确宣告)

router-id  x.x.x.x       (手动设置Router-id)

 

2、关于Router-id

OSPF路由器ID唯一的标识了网络中的每台OSPF路由器。

选举如下

①手动配置:在进程下,router-id x.x.x.x

②最大loopback地址

③最大活动物理接口的IP地址

重启进程:clear ip ospf process

查看router-id:show ip ospf    show ip protocols

 

3、查看OSPF运行情况

show ip ospf                show ip ospf neighbor        show ip ospf interface  int

show ip protocols        show ip route ospf

========================================================