“SCSA-T学习导图+”系列:路由技术之OSPF入门

news2024/11/26 5:58:17

本期引言:

路由技术是网络环境中,为不同的节点传输数据提供传输路径的技术,企业网络的拓扑一般会比较复杂,不同的部门或者总部和分支可能处于不同的网段中,此时就需要使用路由协议来连接不同的网段,实现数据的转发,所以路由协议为不同网段之间的互连起到了至关重要的作用,那本文主要讲解到的是路由协议中的OSPF路由协议。

01 什么是OSPF路由协议

OSPF(Open Shortest Path Fist)开放式最短路径优先是一种基于链路状态的路由协议,隶属于内部网关协议(IGP),其内部采用SPF算法来计算和收敛路由,OSPF一共分为两个版本:OSPFv2,主要适用于IPv4网络环境;OSPFV3,主要适用于IPV6网络环境。该协议主要用于中大型及大型网络环境中,其工作原理和配置过程比较复杂。

02 OSPF的基本知识 

2.1 OSPF区域化的结构

OSPF为了适应大型的网络环境,在自治系统AS内划分了多个区域,每个OSPF路由器维护所在区域内完整的链路状态信息,区域ID可以表示为一个十进制的数字也可以表示为一个IP。其区域分类可以分为骨干区域Area0以及非骨干区域,非骨干区域可以再次细分为正常非骨干区域,末节区域以及完全末节区域。在这里我们只关注骨干区域和正常非骨干区域即可。如下图2-1所示区域划概况:

2.2 OSPF的路由器类型
OSPF路由器的类型决定了什么样的数据流能够进入和离开区域,以上图2-1为例,我们可以将路由器的类型分为以下几类:

2.3 DR与BDR的概念及作用
在网络中我们选举DR和BDR的目的是为了让DR产生特定的链路状态信息以及简化网络结构,选举规则为:先比较接口优先级,越大越优先。优先级相同,比较RID,越大越优先。

注意:LSA即链路状态通告,是一种描述OSPF路由器或者网络状态的数据单元,由于在OSPF中有很多种类,比较复杂,本文中不会展开描述。

2.5 OSPF的五种协议报文
OSPF的协议报文封装在IP报文内部,协议号是89,以下是五种报文的名称及作用:

2.6 邻居和邻接关系
在OSPF中邻居关系就是在两台路由器中进行完两次Hello报文交互之后,建立起来的关系叫邻居关系。邻接关系是指在两台路由器中进行完链路状态数据库(LSDB)同步之后,建立起来的关系叫邻居关系。以下是网络类型与邻居/邻接关系的对应表:

03 OSPF多区域的常规配置

3.1 配置拓扑结构及IP地址(如下图3-1所示)

 3.2 网络地址及OSPF(进程号为10)区域规划

 注意:Route-id是OSPF区域内,唯一标示路由器的IP地址,Route-id的选举方法:选取路由器上Loopback数字最高的IP地址作为Route-id,如果没有Loopback,则选取在物理接口中地址数字最高的IP地址作为Route-id。

3.3 涉及配置命令

R1设备OSPF配置如下:

[R1]ospf 10 router-id 1.1.1.1

[R1-ospf-10]area 1

[R1-ospf-10-area-0.0.0.1]network 1.1.1.1 0.0.0.0

[R1-ospf-10-area-0.0.0.1]network 192.168.10.1 0.0.0.0

[R1-ospf-10-area-0.0.0.1]network 10.1.12.1 0.0.0.0

[R1-ospf-10-area-0.0.0.1]quit

R2设备OSPF配置如下:

[R2]ospf 10 router-id 2.2.2.2

[R2-ospf-10]area 1

[R2-ospf-10-area-0.0.0.1]network 10.1.12.2 0.0.0.0

[R2-ospf-10-area-0.0.0.1]area 0

[R2-ospf-10-area-0.0.0.0]network 2.2.2.2 0.0.0.0

[R2-ospf-10-area-0.0.0.0]network 10.1.23.1 0.0.0.0

[R2-ospf-10-area-0.0.0.0]quit

R3设备OSPF配置如下:

[R3]ospf 10 router-id 3.3.3.3

[R3-ospf-10]area 0

[R3-ospf-10-area-0.0.0.0]network 3.3.3.3 0.0.0.0

[R3-ospf-10-area-0.0.0.0]network 192.168.20.1 0.0.0.0

[R3-ospf-10-area-0.0.0.0]network 10.1.23.2 0.0.0.0

[R3-ospf-10-area-0.0.0.0]quit

3.4 检查配置结果

3.41 在R1设备上可以看到通过OSPF协议学来的不同网段的路由。

 3.42 在R1设备上使用Ping命令Ping通R3设备的业务网段。

 3.43 在R3设备上可以看到通过OSPF协议学来的不同网段的路由。

3.44 在R3设备上使用Ping命令Ping通R1设备的业务网段。

3.5 综上所述

我们已经通过OSPF路由协议互联了不同的网段,那假设我们R1与R3之间的网段如果ping无法通信的话,那我们也可以做一个简单的排查,我们要知道如果两个主机要通信则需要发送相应的数据包,所以相应节点的路由器就需要对应的路由,那么路由器之间就需要有邻居/邻接关系,那么影响OSPF建立邻居关系的因素有:

Router id冲突;

区域ID配置错误;

认证不一致;

MA网络环境中子网掩码需要一致;

hello/dead时间不一致;

接口网络类型不匹配等等因素。

当我们看到邻接关系已经建立,仍然还是无法学到对方的路由,我们可以从网段是否宣告正确,相应的IP地址是否配置错误等等。

04 OSPF邻居和邻接关系的分析过程

接下来我们将通过上面的实验案例,来分析R1和R2设备之间的邻居关系/邻接关系以及链路状态信息的传递过程。(因为报文是多次交互的过程,所以在分析时截图不一定全部完整)

4.1 Hello报文的交互

4.11 假设R1先向R2发送Hello报文建立邻居关系,Hello报文目的地址为组播地址:224.0.0.5,因为这个这是第一个报文,DR和BDR字段都为空,所以也没有任何邻居路由器的信息。

 4.12 路由器R2也会向R1发送Hello报文,由于R2的接口收到了R1发送的Hello报文,R2会将R1设置为它的邻居,故R1设备收到R2发送的Hello报文中,邻居列表为1.1.1.1。R2也是同理,则R1和R2设备都能在邻居列表中看到对方的Router id,邻居关系建立成功。

4.2 数据库描述报文的交互

4.21 假设R1设备发送了第一个DBD报文(I/M/MS位都置位),选举主从,其序列号为646。

4.22 R2也发送第一个DBD报文,选举主从,其序列号为:661。然后比较两个路由器的ID值,发现R2比较大,所以后续交互报文中使用主路由器R2的序列号。

 4.23 主从协商完毕后,开始发送DBD报文,并且携带LSA(链路状态通告)的摘要信息,并且使用R2主路由器的序列号,当M=0时,说明报文发送完成。

4.3 LSR请求报文的交互

4.31 以R1设备为例,在接收到R2设备的DBD报文之后,会发送LSR报文请求具体信息。

4.4 LSU更新报文的交互

4.41 当R2设备收到R1的LSR之后,将会发送LSU报文给R1,里面携带详细的链路信息。

4.5 LSACK确认报文的交互

4.51 最终路由器R1确认收到R2的LSU之后就会发出LSACK报文予以确认。

至此,简单的报文交互过程完毕,其他报文交互过程不再赘述。

总结

本文从路由技术的概念出发,以OSPF路由协议为主,简要介绍OSPF的基本知识和多区域互联案例,以Wireshark软件为基础抓取OSPF的交互报文,分析其交互过程,帮助我们更好地理解OSPF的工作原理。在实际工作中,OSPF常常也会被用在运营商侧的底层互联协议,上层可能还会运行BGP和MPLS协议来实现路由的传递和网络的通信,这些内容都是入门者需要掌握的。

练习题

【扩展】根据下图所示搭建OSPF的多区域环境,思考R1和R4之间之间能否传递相应的路由,如果不能,请说出原因并思考能够传递路由的解决方案。

 本期作者:

熊亮,深信服云计算认证专家

产业教育中心资深讲师,持有CCSSP、CCSK、HCIE-Cloud Computing、HCIE-Datacom等多项技能证书,擅长企业级网络规划、云计算解决方案规划、云计算架构设计、私有云部署与管理,云灾备、云安全等技术方向;曾负责并参与金融、医疗及政企行业企业级云网络架构设计、私有云架构设计、企业级云迁移、云灾备等方案的规划与实施;并且作为特聘讲师多次为中国商务部援外研修班、央企、大中型企业、高校进行授课,研究方向为云计算架构深度解析、私有云架构设计、分布式存储架构实践、MPLS VPN骨干网络架构设计等技术领域,具有丰富的云计算一线实战经验以及技术转化和输出能力。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/459672.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Parker机电产品(运动控制/伺服电机/直线电机)在FPD行业应用

Parker新控制器-PAC PAC集高级逻辑控制,多轴运动,信号处理和webpublished可视化功能。 采用工业主流的EtherCAT运动控制协议,I/O扩展和第三方设备链接,结合应用开发软件PARKERAutomation Manager , PAC能为OEM需要的…

微信仿真平台的设计和实现(设计+源码)_kaic

摘要 现如今,科技的发展带动着环保方式的更新,Internet是一个不断的开展和不停的扩充数据潮流,有了它,我们可以快速、容易地在世界的任何角落进行沟通,获取更多的信息与资料。Internet可以提供大量信息资源和文案数据库…

临近五一,游玩地点想好了吗,Python帮你查找旅游景点的详细数据

前言 好不容易没有了疫情,三年整整三年,都要把我憋死了,想到去年暑假的时候,准备去厦门,攻略做好了,厦门疫情来了,想着转去济南也是这样,去三亚,结果收到好几万人都被留…

5G网络切片路由选择策略介绍

终端保存的NSSP(Network Slice Selection Policy)策略来源于网络侧。 NSSP规则是将应用程序匹配到S-NSSAI(Single network slice selection assistance information),并将应用程序绑定到现有PDU会话或发起新的PDU会话。 NSSP功能 NSSP的作用就是为应用程序选择S-NSSAI和…

HashMap如何解决哈希冲突

HashMap如何解决哈希冲突 Hash算法和Hash表Hash冲突解决哈希冲突的方法开放地址法链式寻址法再hash法建立公共溢出区 Hash算法和Hash表 Hash算法就是把任意长度的输入通过散列算法编程固定长度的输出。这个输出结果就是一个散列值。 Hash表又称为“散列表”,它是通…

LVS负载均衡群集部署——DR直接路由

目录 一、LVS-DR模式二、LVS-DR模式的特点三、LVS-DR中的ARP问题 二、LVS负载均衡群集-DR模式部署1.配置nfs共享(192.168.154.10)2.部署第一台nginx服务(192.168.154.11)3.部署第二台nginx服务(192.168.154.12&#xf…

React入门学习

参考资料:https://bright-boy.gitee.io/technical-notes/#/react/React%E5%85%A5%E9%97%A8 https://github.com/xzlaptt/React react学习01: https://docs.qq.com/doc/DSG1jdUJtQ3FYR1V1 react学习02: https://docs.qq.com/doc/DSGhGZk9PUm1KVldv React简介 框架定…

滚动数组-动态规划之-不同路径 II_20230421

DP动态规划之-滚动数组 前言 在学习 不同路径II 的动态规划过程中,从介绍资料中了解到 滚动数组可以进一步降低动态规划解空间的复杂度,更高效利用计算机的储存空间。动态规划中的滚动数组究竟能发挥哪些作用,在常规的动态规划中&#xff0…

SpringBoot+Vue 前后端分离 微服务项目 打包部署全流程(原始部署/宝塔部署)

前端打包部署 前端项目为vue项目,使用vue admin template作为后台管理模板进行开发。 前端打包 了解开发环境、生产环境,修改生产环境的配置 在开发的时候,往往使用本地电脑进行开发。但是项目上线的时候,需要部署到云服务器中…

基于二阶锥规划(SOCP)松弛和线性离流的配电网规划(DNP)方法示例(Matlab代码实现)

目录 💥1 概述 📚2 运行结果 🎉3 参考文献 👨‍💻4 Matlab代码 💥1 概述 配电网最优潮流 Optimal Power Flow, OPF) 问题是指在满足一定约束条件的情况下,通过控制配电网中的可控变量&…

内网Nexus代理docker-ce(yum) 源私有仓库 + 内网设备配置(centos)

配置docker-ce源 这里也是以阿里云的docker-ce源为例。 源地址为:https://mirrors.aliyun.com/docker-ce/linux/centos 1、在nexus上配置代理 Nexus上创建Blob Stores 创建Repositories 点击设置 - -> Repositories -- > Create repository --> yum(p…

分布式消息队列Kafka(二)- 生产者

1.生产者消息发送流程 (1)消息发送原理 ​ 在消息发送的过程中,涉及到了两个线程——main线程和 Sender 线程。在 main 线程中创建了一个双端队列 RecordAccumulator。main 线程将消息发送给 RecordAccumulator,Sender 线程不断…

刘浩:当谈到RTO < 8s时,OceanBase究竟在说什么?

本文为 OceanBase 高级技术专家刘浩在第一届 OceanBase 开发者大会带来的分享。欢迎访问 OceanBase 官网获取更多信息:https://www.oceanbase.com/ 3 月 25 日,第一届 OceanBase 开发者大会在北京举行,OceanBase 高级技术专家刘浩为大家带来了…

VuePress打包后没有样式或者没有图片或者js加载失败

原因是没有部署到服务器上!!! 这可能是我们打包后的东西 直接点击index.html 变成这样了!!什么样式都没有了,怎么办那? 很简单,找个服务器部署以下就什么都有了!&…

NC 打开系统提示“安全日志数据源异常,请联系环境管理员处理”

问题:NC 用的是sql sever数据库,在sysConfig中正常配置好数据源后,点击测试,测试通过,但是打开系统后还提示“安全日志数据源异常,请联系环境管理员处理”,如下图: 原因:…

echarts 画中国地图

数据可视化平台,中国各省数据和坐标 阿里云可视化 效果 使用echart画中国地图,步骤如下 1.安装依赖 npm i echarts4 创建一个js文件 当你可以访问https请求的时候则使用,如下代码 import axios from "axios"; export default a…

网络安全SSRF漏洞 检测

SSRF 检测的一些思考 DNS 平台没有立刻收到请求,是在之后的某个时间段收到了不同的请求信息,这至少表明了一点,此处存在有无回显的 SSRF,虽然想要证明有更大的危害比较困难,但是至少说明了存在有 SSRF 的风险&#xf…

AI机器人ChatGPT使用体验(注册,使用,简易方式)

最近ChatGPT很火 号称下一代搜索引擎 吊打谷歌百度 它可以做到代替很多职业 究竟有多厉害呢? 看看这个例子: 你问他答,是不是感觉啥都知道? 文员、程序员全被打败 这个究竟怎么用呢? 注册 国内99%的人都卡在了…

超详细Docker的安装以及Docker部署C++

系列文章目录 这学期,学校开了一门云计算大数据课程,老师要求从OpenStack、Hadoop、Docker等软件进行部署一个框架。 我去从中选择了一个Docker,来对这个作业进行实现。以下就是我对这次作业的实现过程以及注意事项,还有犯的错误总…

牛客网Verilog刷题——VL27

牛客网Verilog刷题——VL27 题目答案 题目 请编写一个序列检测模块,检测输入信号(a)是否满足011100序列, 要求以每六个输入为一组,不检测重复序列,例如第一位数据不符合,则不考虑后五位。一直到…