一、开放式最短路径优先(OSPF)

•无环路

•收敛快

•扩展性好

•支持认证

二、OSPF原理介绍

•LSA:Link-State Advertisement(链路状态通告),是链接状态协议使用的一个分组,它包括有关邻居和通道成本的信息。LSA被路由器接收用于维护它们的路由选择表。

•LSDB:Link State DataBase(链路状态数据库),通过路由器间的路由信息交换,自治系统内部可以达到信息同步,即LSDB描述的网络拓扑同步。

三、OSPF协议介绍

•OSPF(开放最短路径优先)属于IGP内部网关路由协议,协议基于链路状态算法。

•OSPF直接运行于IP协议之上,使用IP协议号89。

四、OSPF报文类型

• Hello:Hello包,是用来建立邻居关系的,邻居关系建立好之后,还会周期性地发送Hello包来维护邻居关系。

• Database Description:数据库描述包,包含的是LSA的摘要信息。

• Link-State Request:链路状态请求包,请求未知的LSA。

• Link-State Update:链路状态更新包。比如说我这台路由器中,发现邻居的数据库中有一条LSA我没有,我发一个请求包给它获取未知的LSA,接下来邻居会把LSA放到更新包(LSU)里面传给我。

• Link-State Acknowledgment:链路状态确认包。如果我收到邻居的更新包,那我需要给它一个确认。

>>>Hello不需要确认;Database Description通过DBD确认;Link-State Request通过Link-State Update确认;Link-State Update通过Link-State Acknowledgment确认;

五、邻居状态变换

• Down状态:当前的路由器运行了OSPF,端口刚起来的一瞬间的状态,还没有收到Hello包时的状态。

•Attempt状态:只存在于NBMA网络中。当一台设备试图通过Hello报文去联系自己的邻居,但是没有收到回应报文时,就会将它的邻居关系设置为Attempt状态。

• Init状态:一旦发送Hello包出去,就会进入初始状态。

• 2-Way状态:收到邻居的Hello包了,然后在邻居的Hello包当中看到自己的Router ID了,则会进入2-Way状态,双方建立邻居关系。2-Way状态会选DR(指定路由器)和BDR(备份指定路由器),怎么来选?先比较所有路由器的优先级,谁的优先级大,谁就是DR。然后再看RID,谁的优先级大,谁就是DR,次大的就是BDR,其它就是DROTHER。

六、邻居(Neighbor)和邻接(Adjacency)

七、查看邻居状态

八、数据库同步

• ExStart状态:2-Way状态完成之后,会进入到下一个状态叫ExStart(准启动状态)。在这个状态,它会检测MTU(Maximum Transmission Unit,最大传输单元)是否会一致?如果不一样的话,会一直卡在ExStart状态。然后接下来,它会发送FirstDBD,选取主从。主从怎么选?比较所有路由器的RID,谁的RID大,谁就是主,谁的RID小,谁就是从。

• Exchange状态:主从选取之后,会进入到Exchange状态,即交互状态。在Exchange状态,会交互DBD了。在这个状态下面,是由主路由器先发送DBD包给从路由器,然后从路由器收到主路由器的DBD包的时候,再给它回应一个DBD包。

九、建立完全邻接关系

•Loading状态:DBD报文交换完成即Exchange done,此时状态为Loading。

•Full状态:LSR重传列表为空,此时状态为Full,表明邻接关系建立。

十、查看邻接关系

十一、DR和BDR

• 10.1.1.4的Router ID最大,所以它是DR;10.1.1.3的Router ID次大,所以它是BDR;10.1.1.1和10.1.1.2都是DROTHER。

•DROTHER路由器只会跟DR和BDR建立邻接关系,所以10.1.1.1和10.1.1.2建立的是邻居关系。

十二、路由器分类

•区域内路由器IR(Internal Routers):该类路由器的所有接口都属于同一个OSPF区域。

•区域边界路由器ABR(Area Border Routers):该类路由器可以同时属于两个以上的区域,但其中一个必须是骨干区域。ABR用来连接骨干区域和非骨干区域。

•骨干路由器BR(Backbone Routers):至少有一个接口属于骨干区域。因此,所有的ABR和位于Area0的内部路由器都是骨干路由器。

•自治系统边界路由器ASBR(AS Boundary Routers):位于OSPF自治系统和非OSPF网络之间。