OSPF动态路由协议:开放式最短路径优先的OSPF(Open Shortest Path First)协议是IETF定义的一种基于链路状态的内部网关路由协议。主要优点:1、无环路;2、收敛快;3、扩展性好;4、支持认证(支持明文认证。支持MD5密文认证,不认证)。
OSPF报文:
1、ospf报文封装在IP报文中,协议号是89;
2、ospf报文类型有5种:hello报文、DD(datebase description)报文、LSR(LSA request)报文、LSU(LSA uodate)报文、LSAK(link state acknowledament报文)。
OSPF的原理:
1、建立邻居关系;通过发送Hello报文,hello报文封装在IP协议中,通过端口号89进行交互,首先会对路由器定义一个route ID用于唯一标识路由器,然后经过一定周期时间发送hello报文,用于发现邻居,且维持邻居关系。
roue ID:可以手动定义,如果没有定义,就会去全局下寻找,全局没有配置,进入环回地址寻找,环回地址没有配置,就使用物理接口的ID,哪个接口最先UP,就使用哪个接口的ID;状态变化:
(1)初始都是down状态,发送hello(这个hello报文只会携带自己的route ID,并且邻居的route ID是空的);
(2)其他路由器收到该hello报文后,回复一个hello报文包(具有自己route ID和发送路由器的route ID,并且记录下来收到的hello报文包里的route ID,自己进入邻居协商状态Init),收到回复hello报文回包的路由器,看到回包中,具有自己的route ID和邻居的route ID,更新自己邻居的route ID,进2入 way状态;
(3)进入2way状态后,就会没10S发送hello报文,40S收不到hello的回包,就会断开缺失回包的邻居。
2、LSA;
(1)建立完邻居后,开始同步链路状态数据库,同步数据库之前,会选择一个主从,主从和路由器的route ID有关,route ID大的为主,路由器通过发送DD报文,DD报文中含有一个序列号,通过比对序列号的大小来确定主从;
(2)确定主从路由器后,从路由器回复一个确定主从的包,之后的数据由主路由器定义;
(3)主从之间的dd报文之间,有三个flag位,用于确认DD包的协商内容;初始情况下,3个位都是1(I=1;m/s=1,m=1),确认好主从后:主(I=0;m/s=1,m=1)
从(I=0;m/s=0,m=1);
(4)确定好主从后,进行摘要信息交互,摘要信息交互完以后:主(I=0;m/s=1,m=0)从(I=0;m/s=0,m=0),且进入loading状态,缺少路由则发送request包请求路由信息;收到request后,发送响应lsu,之后发送lsack包确认收到,进入full(邻接状态)状态;
(5)如果没有缺少的路由,直接进入full状态;
3、计算路由(根据路径的开销值cost)。