OSPF协议(1)

路由分类

直连路由

静态路由:由网络管理员手工配置的路由信息

动态路由:所有路由器运行相同的路由协议,路由器之间才能沟通,交流,最终计算出到达未知网段的路由信息。

AS

自治系统 --- 由单一组织或者结构所构建的一部分网络

IGP --- 内部网关协议 --- AS内部

ospf,RIP,IS-IS,EIGRP(思科私有)

EGP --- 外部网关协议 --- AS之间

BGP

IGP协议可以基于算法进行分类

1、距离矢量型协议

RIP --- 贝尔曼·福特算法 --- 直接发送路由条目 --- "依据传闻的路由协议"

2、链路状态型协议

OSPF,IS-IS --- SPF算法(将图形结构转换成树形结构) --- 传递的是拓扑信息(LSA---链路状态通告)

评价IGP好坏的标准:

选举佳,收敛快(计时器),资源占用少

1、RIP是以跳数作为开销值的评判标准,OSPF是以带宽作为开销值的评判标准,OSPF计算出的路径不会出现环路。

2、因为OSPF计时器时间更短,所以收敛速度更快

3、从单个数据包的角度来看,RIP的资源占用量并不大,但是,因为他存在高频的周期更新(30S),所以从整体角度,资源占用量较大;OSPF单个数据包的资源占用远远大于RIP,但是因为其没有像RIP一样高频的周期更新(OSPF 30min),且存在很多减少资源占用的机制,所以从整体角度,ospf资源占用略小于RIP。

RIP:RIPV1,RIPV2---IPV4

RIPNG --- IPV6

OSPF:OSPFV1,OSPFV2 --- IPV4

OSPFV3 --- IPV6

RIPV2和OSPFV2的相同点:

1、OSPFV2和RIPV2一样都是无类别的路由协议,都支持VLSM(可变长子网掩码)和CIDR(汇总)

无类别指在传递路由信息时携带子网掩码

2、OSPFV2和RIPV2一样,都是以组播发送信息

RIPV2:224.0.0.9 --- 0100-5e00-0009

OSPFV2:224.0.0.5和224.0.0.6

(在OSPF中,所有设备都监听224.0.0.5,只有DR和BDR监听224.0.0.6)

3、OSPFV2和RIPV2一样,都支持等开销负载均衡

RIPV2和OSPFV2的不同点:

RIPV2只能应用在中小型网络环境中,OSPFV2可以应用在中大型网络环境中的。--- OSPF可以实现结构化部署---区域划分

区域划分目的:

区域内部传递拓扑信息,区域之间传递路由信息。

区域边界路由器 --- ABR

同时属于多个区域,一个接口对应一个区域,至少有一个接口对应区域0中。

区域之间可以存在多个ABR设备,一个ABR设备也可以连接多个区域

区域划分的要求:

1、区域之间必须存在ABR设备

2、区域划分必须按照星型拓扑进行划分 --- 中间的区域称为骨干区域

区域ID --- area id --- 32位二进制构成 --- 骨干区域的区域ID被定义为0

OSPF的数据包

hello包 DBD包 LSR 包 LSU包 LSACK包

1、hello包

周期性的发现,建立以及保活邻居关系

hello时间 --- 10s(30s)

Dead time --- 4倍的周期时间

RID --- 路由器的身份标识

1、手工配置 --- 要求:1、全网(ospf网络内)唯一;2、格式统一(统一按IP地

址格式)

2、自动生成

1、优先选择设备换回接口的ip地址,如果存在多个环回接口,则优先选择

其中数值最大的ip地址作为RID。

2、如果设备没有环回接口,则选择物理接口的ip地址作为RID,如果存在多

个物理接口,则优先选择其中数值最大的ip地址作为RID。

2、DBD包

数据库描述报文 --- LSDB(链路状态数据库) --- 用于放置LSA

3、LSR包

链路状态请求报文 --- 基于未知的LSA进行请求

4、LSU包

链路状态更新报文 --- 真正携带LSA的数据包

5、LSACK包

链路状态确认报文 --- 确认包

OSPF依然存在30min一次的周期更新

OSPF的状态机

Two-way(双向通信)状态 --- 标志着邻居关系的建立

(条件匹配)如果匹配成功,则可以进入到下一个状态;如果条件匹配失败,则将保持邻居关系,周期性发送hello包保持邻居关系。

主从关系选举 --- 通过比较RID进行主从关系选举,RID大的为主,为主的可以优先选择LSA

主从关系选举使用的是不携带数据的DBD包进行,主要是为了和邻居关系进行区分。

在华为体系中,主从关系选举更重要的一点为主的设备可以主导隐形确认

华为的DBD包确认方法使用的是隐形确认

Full(转发)状态 --- 标志着邻接关系的建立,只有邻接关系可以交换LSA信息,邻居关系仅能使用hello包进行保活

DOWN状态 --- 发送hello包之后进入到下一个状态

init(初始化)状态 --- 接收到hello包中存在自己本地RID,进入下一状态

Two-way(双向通信)状态 --- 标志着邻居关系的建立

(条件匹配)如果条件匹配成功,则进入到下一个状态;如果失败,则停留在邻居状态,仅使用hello包进行周期保活

Exstart(预启动)状态 --- 使用未携带数据的DBD包,进行主从关系选举,为主的,可以优先挑选LSA。

Exchange(准交换)状态 --- 通过携带数据DBD包,交换LSDB摘要信息

Loading(加载)状态 --- 通过LSR/LSU/LSACK三种数据包,获取基于之前DBD包的未知LSA信息

Full(转发)状态 --- 标志着邻接关系建立

OSPF的工作过程

启动配置完成后,ospf向本地所有运行协议的接口以组播224.0.0.5的形式发送hello包,hello包中携带自己本地的RID以及已知邻居的RID,如果收到hello包中存在自己本地的RID,则建立邻居关系。

将邻居关系记录在一张表中---邻居表

邻居关系完成后,将进行条件匹配,条件匹配失败,则将停留在邻居关系,仅使用hello包进行周期保活

如果匹配成功,则开始建立邻接状态;首先使用未携带数据的DBD包进行主从关系选举,之后,使用携带数据的DBD包共享数据库目录信息。之后使用LSR/LSU/LSACK数据包获取未知的LSA信息。完成自己本地数据库的建立,生成数据库表 --- LSDB

最后基于本地的链路状态,使用SPF算法生成有向图和最短路径树,计算出到达未知网段的路由信息,将这些路由信息放到路由表中。

收敛完成后,使用hello包进行周期保活;每30min进行一次周期更新

OSPF的基本配置

1、启动OSPF进程

复制代码
[r1]ospf 1 router-id 1.1.1.1 
[r1-ospf-1]

2、创建区域

复制代码
[r1-ospf-1]area 0 
[r1-ospf-1-area-0.0.0.0]

3、宣告

1、激活接口;2、发布路由

复制代码
[r1-ospf-1-area-0.0.0.0]network 1.1.1.0 0.0.0.255

0.0.0.255 --> 反掩码用于控制圈定的范围,由连续的0和连续的1组成

4、查看配置相关命令

查看邻居表

查看邻居简表

查看链路状态数据库(LSDB)

查看由路由器 ID 为 2.2.2.2 的路由器所产生的路由器类型(Router LSA)的链路状态通告(LSA)信息

查看ospf学习到的路由条目的命令

华为体系中,OSPF的默认优先级为10
COST = 参考带宽/ 真实带宽---参考带宽默认100Mbps

修改cost值

条件匹配

指定路由器 -- DR --- 在一个MA网络中,DR设备和其他设备保持邻接关系

备份指定路由器 --- BDR --- 在一个MA网络中,BDR设备和其他设备保持邻接关系

在一个MA网络中,DR和BDR都存在的情况下,则至少需要4太设备,才能看到邻居关系

DR和BDR实际上是一个接口的概念

条件匹配 --- 在MA网络中,如果所有设备都建立邻接关系,则可能造成大量的重复更新,所以需要进行DR/BDR的选举,所有DROther之间仅保持邻居关系

DR和BDR的选举

1、先比较接口的优先级,优先级选择接口优先级最大的为DR设备,次大的为BDR

注:DR和BDR实际上是分两轮选举的

优先级是由8位二进制构成 --- 0-255

如果将某个接口的优先级设置为0,则代表该接口放弃DR和BDR的选举。

2、如果优先级相同,则比较设备RID,优先选RID大的设备对应接口为DR,次大的设备对应接口为BDR(同样是分两轮选)

OSPF的DR选举默认为非抢占模式。非抢占模式选举时间最长为40s(死亡事件)

相关推荐
小吃饱了19 分钟前
TCP可靠性传输
网络·网络协议·tcp/ip
写代码的小王吧31 分钟前
【Java可执行命令】(十)JAR文件签名工具 jarsigner:通过数字签名及验证保证代码信任与安全,深入解析 Java的 jarsigner命令~
java·开发语言·网络·安全·web安全·网络安全·jar
孪生质数-31 分钟前
SQL server 2022和SSMS的使用案例1
网络·数据库·后端·科技·架构
IT小馋猫1 小时前
Linux 企业项目服务器组建(附脚本)
linux·服务器·网络
前端极客探险家2 小时前
WebSocket 详解:构建一个复杂的实时聊天应用
网络·websocket·网络协议
啊哦1112 小时前
配置防火墙和SELinux(1)
linux·服务器·网络
走狗游世俗2 小时前
计算机网络复习 吉林大学
网络·计算机网络
卡戎-caryon3 小时前
【Linux网络与网络编程】03.UDP Socket编程
linux·服务器·网络·笔记·单例模式·udp·网络通信
張萠飛3 小时前
Linux的TCP连接数到达2万,其中tcp_tw、tcp_alloc、tcp_inuse都很高,可能出现什么问题
linux·网络·tcp/ip