ISIS OSPF-链路状态路由协议:开放式的最短路径优先协议 每台运行了OSPF协议的设备均会共享自身的接口连接情况(LSA---拓扑信息),所以设备互相共享这些信息之后就可以获取到整个OSPF网络的拓扑信息,随之依靠SPF算法计算得出路由。
OSPF特点
动态协议--由运行同一种动态路由协议的路由器通过沟通协商最终计算得出的路由信息。
OSPF相较于RIP
- 占用资源少:整体来看,OSPF占用资源远大于RIP,但由于RIP存在30s的周期更新,一旦在中大型网络中,RIP就会造成巨大的资源占用。而OSPF采用了许多减少资源占用的手段,所以总体来看OSPF在资源占用略优于RIP。
- 收敛速度:快因为RIP的计时器时间较长,所以,收敛速度较慢。ODPF收敛为首次收敛 ,当拓扑结构发生变化会进行重新收敛。
- 选路优:RIP是依据跳数作为开销值进行选路的,所以,本身就存在不合理性OSPF为开放式最短路由优先协议,以路径cost值作为选路标准,同时SPF算法计算路径信息也避免产生回路。
协议本身特点
有类别的动态路由协议:在传递路由信息时不携带子网掩码---RIPv1
无类别的动态路由协议:在传递路由信息时携带子网掩码---OSPF
RIPv1--采用广播的方式传递数据包
剩下所有的协议均使用组播发送自身的数据包(IGP)
适应环境
RIP实际上只能适用在中小型网络环境(16跳的限制),而OSPF能够适应中大型的网络环境 OSPF为了适应中大型的网络环境采用了结构化部署的思想 (区域划分)。
OSPF状态机
OSPF邻居路由器之间之所以建立邻接关系,是为了相互交换路由信息。OSPF邻居路由器之间会通过Hello协议(互发Hello数据包),来建立和维持临接关系。
OSPF常见的状态机有7种类:
- Down:邻居会话的初始阶段,表明还没有收到来自邻居路由器的Hello数据包,一旦受到Hello包的一方则先进入下一状态
- Init:收到Holle包,并回复Hello包后状态为Init。
- 2-way:收到的Hello报文中包含有自己的Router ID,则双方就会进入2-way双向通信状态;该状态也是OSPF最稳定的状态之一,它标志着邻居关系的建立,同时也是邻接关系建立的基础。
- Exstart:使用不携带数据库目录信息的DBD包,进行主从关系的选举,RID数值大为主,优先进入下一个状态机。(此时的DD报文是空的,只有头部)
- Exchange:主从关系协商完毕后开始交换DD报文,此时状态为Exchange。
- Loading:接收到其他邻接的目录信息后,和本地进行比对,若本地存在未知的LSA信息,将使用LSR询问对端,对端使用LSU来更新这些LSA信息,直至双方数据库一致。
- Full:邻接关系建立的标志,此时不再进行LSDB的同步。
OSPF数据包及数据报文
数据包
类型 | 描述 | 用途 |
1 | Hello | 用来发现邻居、选举DR/BDR,维护OSPF邻居关系 |
2 | DBD(数据库描述) | 用在数据库交换过程中,确立主/从关系,交换LSA包头,以及确定首个序列号 |
3 | LSR(链路状态请求) | 用在DBD交换过程中,请求本路由器已知的特定LSA |
4 | LSU(链路状态更新) | 用来向已发出LSR数据包,以请求特定LSA的邻居,发送完整的LSA |
5 | LSack(链路状态确认) | 用来确认本路由器已收到的LSU数据包 |
数据报文
OSPF
是一种跨层封装的协议,协议号是
89
没有传输层(减少封装和解封装的时间,加快收敛)
OSPF的公共头部所有OSPF报文均携带的信息
![](https://i-blog.csdnimg.cn/direct/fe73d7065f854feb85cc6828b6c71b86.png)
重要字段 | 字段作用 |
版本(version) | 表明OSPF2还是OSPF3 |
类型(type) |
标准该数据包是OSPF的哪一种数据包:
1-hello包
2-dbd包
3-LSR
4-LSU
5-LSACK
|
报文长度(packet length) |
头部+数据包本身的数据量
|
路由器ID(router-id) | 自己的R-ID |
区域ID(area-id) | 区域id |
验证类型(autype) |
0 ---空认证
1-simple---简单认证(明文认证)
2---MD5
|
Hello报文
重要字段 | 字段内容 |
网络掩码(network) |
接口发出hello时会携带该接口的掩码
|
Hello间隔(Hellointerval) | hello时间 |
可选项(Options) | 标识发送此报文的OSPF路由器所支持的可选功能。 |
路由器优先级(Rtr Pri) |
DR优先级
|
路由器失效时间(RouterDeadlnterval) | dead时间 |
指定路由器(Designated Router) |
DR的ip
|
备份指定路由器(Backup designated Router) |
BDR的ip
|
邻居(Neighbor) | 所有邻居的R-ID |
DBD报文(数据库描述)
重要字段 | 字段作用 |
接口最大传输单元(Interface MTU) |
接口MTU值
|
I | 当置位为1时,表明这是第一个DD报文 |
M | 置位为1的时候表明DD报文中还有LSA头要传递 |
M/S | 置位为1表示自己为master |
DD序列号(DD Sequence Number) |
隐性确认,去确保DBD报文的有序可靠传输
|
LSA的头部(LSA headers) | 本LSDB的LSA头 |
LSR报文(链路状态请求)
重要字段 | 字段作用 |
链路状态类型(LS type) | LSA的类型 |
链路状态ID(Link State lD) | LSA标识 |
通告路由器(Advertising Router) | 产生该LSA的路由器Router ID |
LSU报文LSU(链路状态更新)
LSA个数和详细的LSA内容
LSack报文(链路状态确认)
LSACK的确认,是对每一条请求的LSA进行确认
OSPF接口网络类型
OSPF接口工作在不同的网络环境下工作方式有所区别
P2P----点到点网络
MA----多点接入网络
BMA----支持组播/广播
NBMA----只能单播
OSPF真实网络环境 | OSPF对应的接口网络类型和特点 |
MGRE |
隧道环境类型:OSPF中默认识别隧道接口的ospf接
口类型为P2P,导致只能存在两台设备,在MGRE
环境下,必须修改接口的工作方式使隧道接口可用
识别多台设备
|
P2P(点到点) |
Type: P2P:
特点:不需要进行DR和BDR的选举(条件匹配),Timers: Hello 10 , Dead 40
|
BMA(以太网) |
类型:Broadcast特点:需要进行DR和BDR的选举,
Timers: Hello 10 , Dead 40
|
NBMA(帧中继) |
Timers: Hello 30 , Dead 120
|
环回接口 |
虚拟接口,实际不会涉及数据包的收发,环回接口
COST=0
|
人为设计的接口网络类型 |
接口网络类型:P2MP ,特点不需要进行DR和bdr
的选举,Hello 30 , Dead 120
|
重要的六类LSA
LSA类型 | LSID | ADV router通告路由 | 携带参数 | 传递范围 |
Router---type-1LSA
|
通告路由
器的RID
|
谁发的该LSA
ADV-router=该设备RID
|
拓扑信息
|
在区域内部
传递
|
Network---type-2LSA
|
DR的IP地
址
|
DR所在的路由器RID
|
1类LSA的补充
|
在区域内传
递
|
Sum-Net---type3LSA
|
其他区域
目标网段
|
本区域相连的ABR的RID
|
其他区域目标网
段信息
|
单区域
|
Sum-Asbr---type-4LSA
|
ASBR设备
的RID
|
本区域相连的ABR的RID
|
ASBR设备如何到
(ADV-router)
|
除了和ASBR设备之间相
|
External---type 5LSA
|
域外网段
信息
|
ASBR设备的RID
|
域外网段信息
|
整个OSPF网络传递
|
NSSA---type 7LSA
|
域外网段
信息
|
ASBR设备的RID
|
域外网段信息
|
整个OSPF网络传递
|
NSSA LSA由ASBR产生,描述到AS外部的路由,仅在NSSA区域内传播。(本质上就是5换了个名,5转7)