OSPF(7/20,41min)

开放式最短路径优先(Open Shortest Path First)协议是IETF定义的一种基于链路状态的内部网关路由协议

查不到ospf邻居 查看ospf邻居_链路

 Open指公有协议;Cost以带宽进行计算 ,汇总与子网划分相关,精简路由;

查不到ospf邻居 查看ospf邻居_链路_02

查不到ospf邻居 查看ospf邻居_查不到ospf邻居_03

 

查不到ospf邻居 查看ospf邻居_查不到ospf邻居_04

OSPF核心工作流程(7/20,20min)

查不到ospf邻居 查看ospf邻居_查不到ospf邻居_05

LSA不是数据包类型,存放在LSDB中

查不到ospf邻居 查看ospf邻居_链路_06

从数据库中通过SPF算法得到路由表

OSPF数据包与状态(7/20,51min)

Router ID:

查不到ospf邻居 查看ospf邻居_网络协议_07

dis ospf brief可以看到Router-id

一台路由器开机后只开启进程,其Router-id为0.0.0.0

手动配置Router-id

[Router]ospf 1 router-id 1.1.1.1(此ip不需要是该设备的任何一个接口地址)该命令建议起手配置

重启OSPF进程

<Router>reset ospf process或者重启(生产环境会引发路由震荡)

OSPF数据包结构和类型(On IP,Port 89,网络层协议 )

数据链路帧报头-IP数据报头-OSPF数据包报头-OSPF数据包特定类型数据Hello 数据包

查不到ospf邻居 查看ospf邻居_链路_08

Ospf Header(所有OSPF包的头部结构都一样)

版本:V2;类型:共五种;数据包长度;路由器ID与区域ID;校验和;Auth type与Auth data,认证相关信息

Hello

Hello间隔10s,死亡时间40s

包类型:

OSPF数据包类型

作用

Hello

建立并维护邻居关系

Database Desciption(DD/DBD)

数据库描述

LSDB的摘要(仅包含LSA头部)

Link State Request(LSR)

链路状态请求

请求LSA

Link State Update(LSU)

链路状态更新

发送LSA

Link State Acknowledge(LSAck)

链路状态确认

对LSU的确认

A、B建立邻居后,先发送DD(DD只存在与邻居建立之初),

如A:我知道路由1与路由2,B:我知道路由2与路由3,二者发送DD比较后再互相学习自己没有的路由(如A:请把路由3给我,发送LSR数据包,此时B发送LSU,A收到后发送LSAck确认已经收到)

查不到ospf邻居 查看ospf邻居_查不到ospf邻居_09

(attempt处于帧中继环境)

是邻居(我们认识)不一定是邻接(我们LSDB同步)

查不到ospf邻居 查看ospf邻居_网络_10

A(开启OSPF进程)(发送hello包):大较好,我是A,我现在不认识任何人

B:(接收A的Hello包后发送自己的Hello包)我是B,我有一个邻居A

A:(收到hello包)从init进入2way,见下面

OSPF工作流程(1/2)

查不到ospf邻居 查看ospf邻居_链路_11

两种情况:

由down到2way(如R1)

由down打破Init再到2way(例如R2)

OSPF第一阶段是使用Hello包建立双向通信的过程,成为邻居关系。

A和B成为邻居后,进入交换初始状态(extart)

前几(前2个)个DBD来决定主从关系

查不到ospf邻居 查看ospf邻居_网络协议_12

Init:是否第一个包

More:后面还有没有包

Master:我是主人还是仆人(每个人的第一个DBD都认为自己是主)

通过Rid对比,Rid更大的成为Master,序列号dd Sequence只能Master改变

OSPF工作流程(1.5/2)

查不到ospf邻居 查看ospf邻居_OSPF_13

OSPF工作流程(2/2) 

查不到ospf邻居 查看ospf邻居_链路_14

R2拥有R1所有 路由,可以直接进入full状态。R1需要请求R2的其他路由,则先进入loadoing再进入full

OSPF第二阶段是通过交换LSA达到LSDB同步,建立邻接关系

同一个OSPF Area里,路由表不一样(每个人到不同地方的路径不同),LSDB(地图)一定同步

OSPF邻居建立条件(7/20,15min)

邻居到底是怎样建立起来的?

许多技术都设计到比较、抢占

双方的Hello包必须保证:

RID唯一,不能冲突

Hello/Dead时间间隔一致,默认10s与40s(保持4倍关系),int端口 ospf timer hello

区域ID一致

若启用认证,则必须保持认证一致

链路MTU大小一致(默认不开启检查,Cisco默认开启)(若不一致,则邻居建立可能一直停留在EX-Start与Exchange状态下)

以太网环境下(如点到点环境),子网掩码一致

网络地址一致

末梢区域设置一致(Option)