前面介绍了OSI模型,今天和大家讨论讨论OSPF。
那什么是OSPF?OSPF是开放的最短路径优先协议,RFC2328。
适用范围:IGP(内部网关协议) 携带网络掩码区别于RIP V1
算法:链路状态协议 SPF算法 Dijkstra算法
封装:基于IP封装 协议号89
一、OSPF有什么特点?
1、链路状态型路由协议,路由器生成拓扑相互传递(区别于距离矢量型协议)。
2、传递6类LSA(IPV4)
3、更新方式:触发更新、周期性;线路状态刷新(30分钟)
4、更新地址:组播更新224.0.0.5(DR使用该地址向其他路由器发送LSU) 224.0.0.6(当链路状态发生变化使用此地址向DR和BDR发送LSU)
5、使用hello包建立邻居维持邻居关系
6、OSPF支持汇总(在特殊的路由器支持汇总)
7、OSPF认证(1、链路认证 2、区域认证 3、虚链路认证)
8、OSPF支持区域设计
9、OSPF比较消耗路由器资源
10、OSPF使用cost值计算metric cost=参考带宽/实际矮款(默认100M)
二、OSPF区域设计
1、OSPF区域标识:使用十进制或类似于IP地址方式
区域分类:1、骨干区域0 2、非骨干区域
路由器角色:1、骨干路由器 2、非骨干路由器
ABR:产生3类LSA的路由器 ASBR:产生5类或7类LSA的路由器
2、区域设计原则:
1)非骨干区域必须与骨干区域相连(非骨干不能与非骨干相连)
2)必须存在骨干0区域(若只有一个区域可不为0区域)
不规则区域:1、不连续的0区域 2、非骨干没有挂靠在0区域上
三、OSPF消息数据包
1、HELLO:邻居建立和保持邻居关系
2、DBD:,描述自身的数据库条目(含有LSA的头部)
3、LSR:单播 用于向邻居请求LSDB来确定自身没有的消息以及那些LSA失效
4、LSU:单播回复LSR 应对方的LSR报文用来向对方发送所需的LSA。
5、LSACK:路由器在收到对方的LSU报文后所发出的确认报文。
四、OSPF状态机
1. DOWN状态:关闭状态
1、发送个hello报文,在一个死亡时间内没有收到对方的hello报文
2、在更高级的状态出现故障返回down状态
注意: 在down状态下,使用 pollinterval 120s(轮训时间),发送hello报文,若收到了hello 报文,则使用正常的hello间隔发送hello包。
Attempt:尝试状态太,在NBMA网络类型,主动发送hello报文,基友成为DR资格的路由器接收hello报文。进入尝试状态后hello时间30S代替120的轮训时间。
Init:初始化状态发送hello包,周期为10S或30S
TWO-way:双向通信,邻居状态,收到对方的hello包中包含自己的router-ID时建立。
Exstart:预启动状态,开始交互BDB(用于主从选举),协商MTU。主从选举的DBD中不包含LSA目录信息。
Exchange:主从选举完成,发送LSA头部进入对方同时进行隐式确认,并且开始发送LSR等待对方回复LSU信息。
Loading:发送LSR、LSU信息(同意area LSDB同步);此时LSU确认LSR,隐式确认,LSU用LSACK确认。
FULL:邻接关系建立,LSDB同步完成。
TWO-way状态会进行DR选举:1.比较优先级,默认为1,大的优。
2.最大的router-id
在MA网络类型下必须选举DR:
1.DR(BDR)选举是非抢占的
2.DR选举时间默认在40s之内完成(实际上就是wait时间)
3.注意priority使用,默认0-255,若为0,意味着不参与选举
4.DR/BDR是一个接口概念(在hello报文中的DR/BDR字段包含的是DR接口IP地址)
5.在MA网络,所有路由器发送数据包(hello除外)发送至224.0.0.6,DR/BDR都接收,仅仅DR 路由器将LSA信息发送至224.0.0.5.
Exstart状态下进行主从选举:RID大的为主小的为从,主路由器控制LSA的交互
空的DBD包:I 为1标示该包为本地发出的第一个DBD包
M为0标示该包为本地发出的最后一个DBD包
MS为1标示本地为主;
五、OSPF三张表
1、邻居表
2、路由表
3、数据库表
此OSPF的资料介绍十分详细,此技术在MPLS VPN和BGP网络中应用十分广泛,后续我们还会继续分享OSPF的具体应用。