概述:
1.OSPF 是公有标准协议,OSI 模型第三层,属于 IGP 路由协议;
2.OSPF的数据包是直接封装在 IP 头部后面,协议号是 89
3.通过组播的方式发送报文,组播地址是 224.0.0.5,表示的是所有的OSPF路由器;
一、为什么会出现OSPF:
在OSPF出现前,网络上广泛使用RIP(Routing Information Protocol)作为内部网关协议。由于RIP是基于跳数路由协议,距离矢量协议依照传闻进行路由的更新和路由的选择。这种情况下路由器并不了解整个网络的拓扑,只知道到达目的网络的距离,以及到达目的网络应该走哪个方向或者哪个接口,路由在传递过程中不能超过16个路由,严重影响网络的发展,因此只适用于小型企业,虽然思科推出了IGRP 和EIGRP 但是那是人家私有的,其它厂商是用不了的。对此存在着收敛慢、路由环路、可扩展性差等问题,所以就被OSPF取代。
二、工作原理:(三张表)
(一)、建立邻居表,形成邻居关系;
怎样建立邻居表:
建立邻居是通过设备相互发送hello 报文进行参数比较,通过后形成邻居关系。
报文类型:
1.Hello,负责邻居表的建立、维护和拆除;
2.DD,database description,数据库描述报文
3.LSR,link state request,链路状态请求;
4.LSU,link state update ,链路状态更新;
5.LSAck,link state ack,链路状态确认报文;
hello报文
OSPF hello 报文解析:
1.OSPF header
-version --- 表示 OSPF 的版本号,版本为2
- type --- 表示 OPPF 的报文类型
-packet length --- 表示 OSPF 的报文长度
-router id --- 表示 发送当前 OSPF 报文的那个路由器的 router-id
-area id --- 表示 OSPF 报文所属于的区域
-checksum --- 表示 OSPF 报文的校验和
-auth type --- 表示 OSPF 报文的认证类型,默认是Null,即空认证,也就是没做认证
-auth data --- 表示 OSFP报文的认证数据,即密码
2.OSPF Hello packet
-network mask - hello 报文的出接口的IP地址的网络掩码
-hello interval - 发送 hello 报文的周期,默认是 10s
-options - 可选字段,体现的是一个 OSPF 路由器的能力
-router priority - 表示路由器的优先级,默认是 1
-router dead interval - 表示邻居关系的最大存活时间,默认是40s
-designated router - 指定路由器(接口的概念,指的不是路由器)
-back designated router - 备份指定路由器(接口的概念,指的不是路由器)
-active neighbor - 包含的是邻居设备的 router-id ;
3.OSPF 邻居建立的影响因素
1.两个设备之间的IP必须互通
2.确保路由器能够发送 OSPF 报文
①.发送报文的接口的网段,必须 network 命令后面;
不network 这个接口就不会发送hello包,没有包后面什么都不是了。