路由协议的分类: 从原理上分类: 1、DV距离矢量协议,RIPV1、RIPV2; 2、链路状态协议:ospfV2(ipv4)、ospfV3(IPV6)、ISIS。 3、路径矢量路由协议:BGP 4、私有类型:EIGRP(混合型路由协议) 从工作范围分: IGP:内部网关协议(实现AS内部互联互通的路由协议)RIP、IGRP、EIGRP、OSPF、ISIS EGP:外部网关协议BGP(实现AS之间互联互通的路由协议) AS自治系统:运行相同的IGP协议的设备组成的网络。OSPF特点: 1、路由信息传递与路由计算分离; 2、基于SPF算法; 3、以累计链路开销作为选路参考值。OSPF工作的三部曲: 1、建立邻居关系,所有一切的开始; 2、进行LSDB同步,即链路信息的同步; 3、运行SPF算法,进行路由计算。OSPF协议的routerID确定: 1、默认使用路由器的全局routeid作为OSPF协议的routerID;(disrouteID) 2、默认情况设备上配置的第一个IP地址作为全局routerid; 3、允许管理员手动配置全局routeID(resetospfprocess,重新配置全局routerid后,重启相关协议才能更新协议routerid)。 4、允许管理员手动配置OSPF的routerid,并优先级最高(ospf1routerID8。8。8。8),项目上通常使用loopback接口的地址作为协议的routerID,方便望址思意,方便网络管理。 协议routerid的变更生效,需要重启协议进程,导致邻居关系中断,网络产生震荡,一般不会频繁更改routerid。发现并建立邻居关系Hello报文 hello报文的作用: 邻居发现:自动发现邻居路由器。 邻居建立:完成hello报文中的参数协商,建立邻居关系。 邻居保持:通过keepalive机制,检测邻居运行状态。hello报文怎么发的? 1、凡是加入到ospf协议的接口,都会主动发送hello报文()。 2、hello报文源地址为接口IP地址,目的地址为224。0。0。5(组播地址),在P2P链路、广播型链路(Broadcast)每隔10s周期发送,邻居失效时间默认为hello间隔的4倍(40s)即40s没有收到邻居的hello报文,即认为邻居失效,断开邻居关系,重新进行路由计算;在NBMA,P2MP每隔30s周期发送。 hello报文中携带的主要参数: 头部携带信息: version(ospf协议的版本)、 messagetype(类型1、hello、2、dd、3、lsr、4、lsu、5、lsack) sourceospfrouterid、 areaid(发送hello报文接口所属的区域)、 authtype(0代表空认证即无认证、1代表明文认证、2代表MD5认证)、 authdata(明文密码或者密文MD5值)。 hello报文本身携带信息: networkmask(发送hello报文接口的子网掩码)、 hellointerval(发送hello的间隔)、 options(Nbit、Ebit)、 routerpriority(路由器优先级,默认1,用于选举DR、BDR)、 deadinterval(邻居失效时间)、 DR(链路上DR接口的IP地址)、 BDR(链路上BDR接口的IP地址)。若链路是P2P或者P2MP则DR、BDR取值为0。0。0。0,即不进行选举。 hello包中影响邻居关系的因素: 1、routerid不能冲突; 2、区域ID要相同。 3、认证类型、认证数据要匹配。 3、hell间隔、失效间隔要一直。 4、NbitEbit取值要一致。以上条件是任何情况下都有满足的建立邻居关系的条件。 Down:可以发送hello报文,不携带邻居的routeid,路由器没有发现任何邻居,即没有收到任何邻居的hello包。 init:收到了邻居的hello包,但是邻居列表中没有发现自己(本路由器的IP),由Down状态转换为init状态(第一次握手)。 2way:接受到的hello报文中含有我自己的routerid(邻居发现了我),将状态由init转换为2way。 3次握手可靠的建立邻居OSPF可靠性机制: 由于OSPF是被IP协议直接封装的路由协议,IP协议不具备可靠性机制,OSPF需要自己建立一套可靠性机制,保障邻居成功同步。 1、3次握手建立双向邻居关系(2way)。 2、DD报文序列号1机制,隐式确认。(包文级别确认) 3、LSAck对LSA的确认,不是对LSU的确认。(信息级别确认) 进入2way状态后,开始进行lsdb同步 exstart(预启动):发送dd报文进行主、从选举,RouterID大的成为主路由器(master),小的成为从路由器(slave),此时DD报文为不携带LS摘要信息(DD报文两种情况:携带不携带LS摘要信息。) DD报文中IMMS I0不是第一次发送DD报文,1则是第一次发送DD报文。 M0这是最后一个DD报文,发完了,1则是还有DD报文。 MS1代表我是master,0代表我是slave,从路由器。 交换不携带摘要信息的DD报文后,完成主从选举,进入exchange状态: 将自身LSDB中所有的LSA信息的摘要通过DD报文进行交换,实现LSDB同步(邻居之间最终拥有相同的lsa信息,且LSA新旧程度一样)。 LSA摘要(头部信息):Type、LSid、advrtr、lsage、len、options、seq、chksum LSA摘要信息的用途: 1、唯一地标识一条LSA,由type、lsid、advrtr3个参数唯一的标识一条LSA。 2、用于判断LSA的新旧,seq、chksum、lsage用于判断新旧。 type(描述LSA的种类): LSID(链路状态ID):LSA的名字,取值由类型决定, advrtr:产生这条LSA的路由器的routerid。 seq:序列号越大的LSA越新,起始值0X80000001,最大值0x7FFFFFFF。 chksum:若序列号相同,则校验和越大越新。若chksum相同,判断LSage是否为3600s,等于3600s的最新,若都不等于3600s,则判断lsage差值,若大于900s,则lsage小的最新,若小于900s,则认为是相同的。 主、从路由器通过DD报文交互LSA摘要信息 DD报文:LSDB中所有LSA的摘要信息(Type、LSid、advrtr、lsage、len、options、seq、chksum)。 LSR:携带LSA的标识信息。 LSU:携带LSA的头部以及链路状态。 LSACK:携带LSA的摘要信息。 DD实现LSDB对账,按需同步LSA,提高邻居收敛速度,节省设备资源。 hello、DD、LSR、LSU、LSACK具有相同的OSPF协议报文头部。 LSA摘要信息 OSPF的度量方式 某接口cost参考带宽实际带宽,取整数部分,小于1时,结果按1计算 loopback接口cost默认为0。