网络基础CCNP篇|OSPF

OSPF:(open shortest path first)开放最短路径优先

特点

  • 不止思科支持
  • 链路状态路由协议
  • 收敛很快
  • 无传输层
  • 支持VLSM,传递的路由信息可以带掩码
  • 增量更新
  • 仅支持在特定的位置收工汇总
  • 支持认证

协议号对应的是89

概述:首先找到邻居,相互传递LSA,凑齐LSA,通过Dijkstra-SPF算法算得最短生成树(无环)。

LSA:link state advertimenet 链路状态通告
RFC:IETF组织列出的协议草案
LSDB:link-state Database包含所有收到的LSA,每台交换机都有。

过程

1.建立邻居关系

2.建立临接关系
临接关系是比邻居关系更好的一种关系

3.只有临接关系才可以传递LSA

4.LSA会泛洪,所有运行了OSPF的设备会将LSA收集起来,形成LSDB

5.用 Dijkstra算法从拓扑表中生成最短生成树。

6.然后把最优路径加入路由表。

名词解释
骨干路由器:至少有一个接口与骨干区内的路由器相连

内部路由器:所有接口都与同一个区域内的路由器相连

ABR:区域边界路由器,至少连接两个区域的路由器,必须要和骨干区相连

ASBR:自治系统(AS)边界路由器,这个设备连接了两个AS

Redistribute:重分布,把外面AS的路由引入自己所在的AS内。

AS:你能管理的一个区域

补充

骨干区不能被分割
必须有骨干区
如果在一个多区域的OSPF内,其他区域必须要和骨干区域相连
只能说某某接口属于某区域,不能说某某路由器属于某区域。

OSPF支持的网络类型:
image

会根据二层的协议来判断网络类型是什么
如果二层是PPP协议或者hdlc协议,OSPF就会认为该接口网络类型是P2P
如果二层是ethernet协议,OSPF就会认为该接口是BMA
如果二层是frame relay协议,OSPF就会认为该接口网络类型是NMBA
BMA:broadcast multi access 多访问广播
S 接口叫做serial串型接口,广域网线路
默认情况下,serial 接口采用的二层协议是hdlc(高级的数据链路层协议)

OSPF:数据包

1.hello :发现维持邻居
2.DBD数据库描述报文:描述LSA的简略信息,帮助建立LSDB
3.LSR链路状态请求报文:当发现自己的数据库中缺少DBD概述的某一项,则发送LSR向发送DBD的源请求缺的那一项,如果没收到LSU的话则没三秒重新发一次,无需确认。
4.LSACK:确认LSU已达目的地
5.LSU链路状态更新:对LSR请求的更新(回应)LSA的完整信息,通常被泛洪,因为可能别人也缺

OSPF的路由器可能所处的状态

Down:没有检测到活动的邻居
INIT:收到 了hello包就会进入此状态(有router-id字段,但并不在active neirbour)
2-WAY:在收到的hello包中有自己的ID便进入此状态(有router-id字段,但在active neirbour里)
Exstart:在2-way状态意识到要进入邻接状态就会从2-way状态转换到exstart,该状态选完主(master)从(slave)后就会进入exchange状态
Exchange:发送DBD描述报文
loading:发送LSR和LSU
Full:进入完整的连接状态

DR(designed router):指定路由器

作用:减少邻接关系
所有的设备仅仅需要和DR建立邻接关系

DR和BDR的选举

选举涉及到两个东西
1.priority优先级
如果接口开启了OSPF,而且该接口是处在MA网络中,接口上面默认是有一个优先级的,值默认为 1,范围是0-255。(如果为0,则放弃优先级的选举)
con-if#Ip ospf priority 0~255

所有处在MA网络中的接口,因为要减少邻接关系从而设置DR,BDR,接口优先级越大的,约有可能成为DR。
如果优先级一样,就需要比较第二个参数(router-id)
Router-id 越大的,越有可能成为DR.

Router-id怎么产生?(一个路由器仅有一个)

1.如果手工配置,手工配置的最优先
2.如果没有手工配置,默认会选取环回接口最大的地址作为router-id
3.如果没有环回接口,会选择物理接口地址最大的作为router-id
4,如果没有任何接口有地址,GGGGGGGGGG

DR,BDR的选举中先选BDR,如果一个网络中同时存在BR,BDR,又来了一个优先级更高的,DR,BDR则不变,当DR挂了,这个优先级更高的则称为BDR。(很多情况下是这样,比如你配了R1并开启了OSPF,而你配完R2,发现R2并不是DR,是因为你的手速慢了,导致40秒过后R1就认为这个区域内就自己,所以把自己升任BR)

conf#router ospf 1Ospf的进程号为1,需要路由中进程号全相同才能执行OSPFconf-router#network 1.1.1.1 0.0.0.0 area0精确宣告(覆盖了R1 e0/0的接口地址),并指定所在区域为0