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,越大越优
修改优先级:<if>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、宣告
<config>router ospf [process-id] (范围1-65535)
<config-router>net 192.168.1.1 0.0.0.0 area [area-id] (推荐精确宣告)
<config-router>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
========================================================