1.0.0 IGP高级特性简要介绍(OSPF-下篇)

news2024/11/25 9:58:18

二、OSPF_精细的路由控制

1.OSPF数据库上限

简介

​ OSPF技术要求同一个区域内的路由器保存着相同的LSDB信息。

​ 但随着网络上路由数量不断增加,一些路由器由于系统资源有限,不能再承载如此多的路由信息,这种状态就被称为数据库超限(OSPF Database Overflow)。

​ 对于路由信息不断增加导致路由器系统资源耗尽而失效的问题,可以通过配置Stub或NSSA区域来解决,但Stub或NSSA区域的方案不能解决动态路由增长导致的数据库超限问题。为了解决数据库超限引发的问题,通过设置LSDB中External LSA的最大条目数,可以动态限制链路数据库的规模。

原理

​ 1、当接收到的”外部路由“达到上限之后(不包含缺省外部路由),删除自己产生的外部路由,同时进入Overflow状态。

​ 2、进入该状态时,不再学习外部路由,直到Overflow状态定时器结束。

​ 3、定时器结束之后,如果外部路由数量仍然超过上限,将重新进入Overflow状态。

​ 4、直到外部路由数量恢复到上限内,才结束Overflow状态。

在这里插入图片描述

配置命令
# 设置LSDB中External LSA的最大条目数为400000。
ospf 1
  lsdb-overflow-limit 400000

2.默认路由的宣告

​ IGP路由中产生默认路由的方式除了引入之后,还可以通过default-route-advertise命令进行自主生成一条默认路由加入到IGP路由表中。

​ 但对于这个命令的使用有挺多的讲究,其中以下三条命令使用较多:

default-route-advertise

​ 1、前提条件是,本设备必须拥有一条不是OSPF学习到的缺省路由

default-route-advertise always

​ 1、配置该命令之后,无论是否有缺省路由,都会下发OSPF缺省路由。

​ 2、使用之后,将无视其它设备的缺省路由。如果本设备上不存在缺省路由那将会可能出现丢包情况。

如:设备开启always之后,本机并没有真正的缺省路由,只有明细路由。

当收到一条设备末知的目的路由时,将由于路由表中没有真正的缺省路由而导致丢包。

default-route-advertise permit-calculate-other

摘取华为手册中对该命令的解释:

本机存在激活的 非本OSPF进程缺省路由,则设备不再计算来自其他设备的缺省路由。

本机不存在激活的 非本OSPF进程缺省路由,则设备仍然计算来自于其他设备的缺省路由。

​ 1、前提条件是,本设备要学习到一条缺省路由,且这条路由不是得是使用该命令的OSPF中的,才可产生缺省路由。

举例:

本设备只有一条缺省路由,且是从OSPF进程1中学到的。如果在OSPF进程1中使用该命令,将没有任何效果。

本设备存在一条静态缺省路由,我于OSPF进程1中使用该命令可以发布缺省路由。

本设备从OSPF进程2中学习到一条缺省路由,我于OSPF进程1中使用该命令,将可以在进程1中发布缺省路由。

​ 2、发布缺省路由的同时,仍允许计算其他设备发布的缺省路由。这是前两者不具备的。

前两者只会接收到LSDB表中,不会进行计算。

而使用该命令之后,可以在路由表中看到其它设备发布的缺省路由,但属于非活动状态(Inactive)

图文举例理解

为了方便,拓扑画的可能有点离谱,注重现象即可。

以下主要针对default-route-advertise permit-calculate-other命令进行展开。

背景:
  • AR1创建了静态路由并于OSPF中使用default-route-advertise发布缺省路由。
  • AR2创建了静态路由并于OSPF中使用default-route-advertise permit-calculate-other发布缺省路由。
现象1:
  • 如下图,AR1/2均发布了缺省路由,同时双方也能学习到对方的缺省路由。

在这里插入图片描述

  • 如下图,但只能AR2能够去计算对方的缺省路由。

在这里插入图片描述

  • 此时AR3上所接收和计算的缺省路由情况

在这里插入图片描述

现象2:
  • 如果将AR2中的静态路由删除,只使用default-route-advertise permit-calculate-other命令的话?
  • 如图,AR2删除静态缺省路由之后,将使用AR1发送的缺省路由。

在这里插入图片描述

  • 如图,此时AR3上只有一条AR1缺省路由。因为AR2的OSPF进程使用了permit-calculate-other命令,同时学习到的缺省路由也是从这个OSPF进程中学习到的,故AR2无法生成缺省路由。

在这里插入图片描述

  • 如果此时AR3能够从其它地方学习到缺省路由,那AR2才能够继续发布缺省路由。
  • 如图,AR2从AR4上学习到缺省路由,那么就能够在AR3上继续看到两条缺省路由。

在这里插入图片描述
在这里插入图片描述

总结

​ 回到最开始,这三条命令都是生成缺省路由,那它们有哪些应用场景呢?

关于always的灵活应用场景:

应用于多路由协议的设备上,实现不相互引入路由的情况下也能实现网络互通。

如图:

  • AR2作为AR1的OSPF邻居,AR3的BGP邻居,需要实现AR1、AR3两者互访。
  • 由于AR1设备比较老旧,要求不能直接将AR3的路由引入到AR1中。
  • 已知AR2设备上有两者的路由,故可以用always的方式在OSPF进程中生成缺省路由。使得AR1流量到达AR2后再进行流量的中继。

在这里插入图片描述

  • 于AR2设备的OSPF进程添加default-route-advertise always命令。
  • 于AR2设备的BGP进程中引入OSPF路由。

在这里插入图片描述

在这里插入图片描述

  • 此时AR1、AR2、AR3上的关键路由情况 :
AR1:
	0.0.0.0/0   O_ASE   150  1           D   10.1.12.2       GigabitEthernet0/0/1

AR2:
	172.16.1.1/32  OSPF    10   1           D   10.1.12.1       GigabitEthernet0/0/0
	192.168.1.1/32  IBGP    255  0          RD   10.1.23.3       GigabitEthernet0/0/1
	192.168.2.1/32  IBGP    255  0          RD   10.1.23.3       GigabitEthernet0/0/1

AR3:
	172.16.1.1/32  IBGP    255  1          RD   10.1.23.2       GigabitEthernet0/0/0
关于permit-calculate-other的灵活应用场景:

实验场景如下图,内部R1、R2、R4运行OSPF,R3作为外部路由器,R1作为默认出口向内部发送默认路由。

实现在不调整链路OSPF开销的情况下,实现主备默认路由发布以及冗余。
在这里插入图片描述

  • 1、正常配置好OSPF之后,R1添加默认路由指向R3,R2添加默认路由指向R3但路由优先级设置为151防止比OSPF开销大从而影响正常流量转发。
R1
[R1]ip route-static 0.0.0.0 0 10.1.13.3
[R1]ospf 1
[R1-ospf-1]default-route-advertise permit-calculate-other 

R2
[R2]ip route-static 0.0.0.0 0 10.1.23.3 preference 151
[R2]ospf 1
[R2-ospf-1]default-route-advertise permit-calculate-other 
  • 2、此时可以在R2上看到默认路由优先走R1,同时R4上则是只能收到1条默认路由。
R2之所以只有R1的默认路由,因为R2自身的静态默认路由优先级为151。

在这里插入图片描述

因为R2上唯一生效的默认路由是从配置了permit-calculate-other命令的进程下学习到的。
故R2不会生成默认路由向其它OSPF邻居泛洪,因此R4只能学习到R1这一条默认路由。

在这里插入图片描述
【R1出口正常情况下的流量转发路径】
在这里插入图片描述

  • 当R1主出口故障之后,R2从OSPF学习到的默认路由消失,静态默认路由则生效,同时会向OSPF邻居泛洪默认路由。
R1上关闭出接口模拟接口故障:
[R1]int g0/0/0
[R1-GigabitEthernet0/0/0]shutdown 

【R1默认路由指向R2备用出口】

在这里插入图片描述

【R2默认路由浮动上来成为主默认路由】

在这里插入图片描述

【此时R3默认路由自动切换至R2备用出口】

在这里插入图片描述
【R1出口故障后的流量转发路径】
在这里插入图片描述

3.OSPF路由控制

参考该篇文章,已涵盖其中:路由 OSPF 优化(FA地址、路由汇总、路由过滤、区域认证、接口认证)

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

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

相关文章

‘XXX‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件。 系统找不到指定的路径。

目录 问题复现解决方案 问题复现 只要一打开cmd就提示“‘LT’ 不是内部或外部命令,也不是可运行的程序或批处理文件。” 或许大家都遇到过这样的问题,但本篇解决的是和运行项目无关,而是cmd命令行自带的一个bug 解决方案 如果是执行java…

vant+thinkphp实现文件上传功能

vantthinkphp实现文件上传功能 前端thinkphp后端测试 前端 vue3 vant 代码实现 fileList 预览文件列表,具体可以参考官方文档 let config { headers: { //添加请求头 “Content-Type”: “multipart/form-data”, }, }; 需要以form-data的形式上传文件&#xff…

IT服务台与Microsoft集成

Microsoft Teams 旨在通过创建一个共享工作区,使组织中的协作更加轻松,用户可以在其中聊天、开会、共享文件和访问业务应用。为了实现这些数字工作空间的最大效率,这一点很重要,当出现问题时,IT服务台团队始终在前沿。…

RDkit | 安装报错及使用

关于RDKit的学习及介绍: RDKit安装 基础教程:[Getting Started with RDKit in Python] RDkit四:数据处理过程中smiles编码的清洗统一化 reticulate-R Interface to Python 在RStudio中加载 rdkit.Chem和rdkit.Chem.rdmolops 时,报…

c语言实现两个有序链表的合并

合并两个有序链表是c语言数据结构中比较经典的问题,首先两个链表都是有序的,即节点的顺序是按照各个节点中的值从小到大排序,而且合并之后的新链表中的各个节点顺序也要满足从小到大的排序,具体如下图所示。 思路:用ma…

2012年7月11日 Go生态洞察:Gccgo在GCC 4.7.1中的集成

🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…

Mysql学习笔记--基础

一,SQL最重要的增删改命令格式 1,insert into 表名(不写这个括号里面的内容就默认所有字段都要添加) values() 插入单条数据 2,insert into 表名 (里面是列名) values(根据列名依次…

.Net-C#文件上传的常用几种方式

1.第一种上传方式,基本通用于.net所有的框架 [HttpPost][Route("Common/uploadFile1")]public string uploads(){HttpContextBase context (HttpContextBase)Request.Properties["MS_HttpContext"];//获取传统contextHttpRequestBase request context.Re…

阶段七-Day04-Spring03

一、Sping声明式事务 1. 编程式事务介绍 整个事务控制的代码都需要程序员自己编写。包含:开启事务(openSession(),创建SqlSession时MyBatis底层自动创建Transaction对象)、提交事务(session.commit())、回滚事务(session.rollba…

新型的铁塔基站“能源管家”

安科瑞 崔丽洁 引言:随着5G基站的迅猛发展,基站的能耗问题也越来越突出,高效可靠的基站配电系统方案,是提高基站能耗使用效率,实现基站节能降耗的重要保证,通过多回路仪表监测每个配电回路的用电负载情况&a…

Clickhouse学习笔记(9)—— 语法优化

ClickHouse 的 SQL 优化规则是基于 RBO(Rule Based Optimization)实现的 官方数据集的使用 为了方便测试CK的语法优化规则,尝试使用官方提供的数据集; 需要使用的数据集是visits_v1和hints_v1: Anonymized Web Analytics Data …

Mysql基本知识

1.SQL分类 DDL【data definition language】 数据定义语言,用来维护存储数据的结构 代表指令: create, drop, alter DML【data manipulation language】 数据操纵语言,用来对数据进行操作 代表指令: insert,delete,up…

MapInfo Pro “偏移”命令

偏移对象的用途是什么? 将一个或多个地图对象移动特定距离和/或方向,并将其放置在可编辑层中。对象可以来自任何层。您可以在选择操作后聚合数据。 ​ “偏移对象”何时处于活动状态? 当“贴图”窗口为活动窗口时,该窗口具有可编…

2023数字科技生态大会-数字安全论坛 学习笔记

监管合规->价值创造的方向,在安全领域的发展方向-安全运营服务型 ICT->数字->数据 数字安全:网络安全数据安全 传统信息化以计算为核心,数字化以数据为核心 数字安全技术发展十大趋势: 一、 数字安全技术政策环境将不…

电热毯电热床上用品上架亚马逊美国站UL964测试标准要求

美国是一个对安全要求非常严格的国家,美国本土的所有电子产品生产企业早在很多年前就要求有相关检测。而随着亚马逊在全球商业的战略地位不断提高,境外的电子设备通过亚马逊不断涌入美国市场。“为保证消费者得安全,亚马逊始终强调带电得产品…

一文了解芯片测试项目和检测方法 -纳米软件

芯片检测是芯片设计、生产、制造成过程中的关键环节,检测芯片的质量、性能、功能等,以满足设计要求和市场需求,确保芯片可以长期稳定运行。芯片测试内容众多,检测方法多样,今天纳米软件将为您介绍芯片的检测项目都有哪…

【EDAS论文投稿】

背景 第一次使用这个系统投稿,不是很熟练甚至差点错过了投稿时间,所以记录一下投稿过程中出现的致命问题。 注册、登录就不用说了 登陆后选择自己的会议的symposia 添加文章信息;依次添加作者信息 在第三步长传文件时,系统提示…

Ultipa 支持OpenCypher,助力企业级应用发展

OpenCypher 是欧美图数据库厂家 Neo4j 基于其图查询语言Cypher 开发的一套开源图查询语言,该语言也是开发者们较为熟悉的图查询语言之一。 Ulitpa Graph(嬴图)于2022年6月实现的对OpenCypher 的支持,旨在让用户能够通过自己熟悉的…

springcloudalibaba入门详细使用教程

目录标题 一、简介二、SpringCloud Alibaba核心组件2-1、Nacos (配置中心与服务注册与发现)2-2、Sentinel (分布式流控)2-3、RocketMQ (消息队列)/RabbitMq/kafka2-4、Seata (分布式事务)2-5、Dubbo (RPC) 三、为什么大家看好 Spring Cloud Alibaba3-1、阿里巴巴强大的技术输出…