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

二、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 1lsdb-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/1AR2:172.16.1.1/32  OSPF    10   1           D   10.1.12.1       GigabitEthernet0/0/0192.168.1.1/32  IBGP    255  0          RD   10.1.23.3       GigabitEthernet0/0/1192.168.2.1/32  IBGP    255  0          RD   10.1.23.3       GigabitEthernet0/0/1AR3: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.rhkb.cn/news/190163.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

STM32GPIO——上拉、下拉电阻

如上两个图所示,标号2都为上拉、下拉电阻部分,阻值约为30k~50k欧,通过对应开关进行控制,开关由寄存器控制。 当引脚外部的器件没有干扰引脚的电压时,即没有外部的上、下拉电压,引脚的电平由引脚内部上、下…

【机器学习】八、规则学习

知识图谱与基本概念 基本概念 规则学习定义:从训练数据中学习出一组能用于对未见示例进行判别的规则。 规则定义:规则一般是:语义明确、能描述数据分布所隐含的客观规律或领域概念。 逻辑规则定义:⊕←?1⋀?2⋀?3…⋀??⊕…

下载并安装DevEco Studio 3.1,初尝鸿蒙编程

摘自华为官网 DevEco Studio 3.1配套支持HarmonyOS 3.1版本及以上的应用及服务开发,提供了代码智能编辑、低代码开发、双向预览等功能,以及轻量构建工具DevEco Hvigor 、本地模拟器,持续提升应用及服务开发效率。 下载 官网下载地址 HUAWEI…

理解快速排序

理解快速排序 首先了解以下快速排序 快速排序(QuickSort)是一种常用的排序算法,属于比较排序算法的一种。它是由英国计算机科学家Tony Hoare于1960年提出的,是一种分而治之(divide and conquer)的算法。 …

模拟ASP.NET Core MVC设计与实现

前几天有人在我的《ASP.NET Core框架揭秘》读者群跟我留言说:“我最近在看ASP.NET Core MVC的源代码,发现整个系统太复杂,涉及的东西太多,完全找不到方向,你能不能按照《200行代码,7个对象——让你了解ASP.…

css实现进度条

预期样式 方法一 <script setup> import { ref } from "vue"; // import ScreenLeft from "./ScreenLeft/index.vue"; const width ref("76.5%"); </script><template>Screen<div class"progress-contain">…

详解数据仓库之拉链表(原理、设计以及在Hive中的实现)

最近发现一本好书&#xff0c;读完感觉讲的非常好&#xff0c;首先安利给大家&#xff0c;国内第一本系统讲解数据血缘的书&#xff01;点赞&#xff01;近几天也会安排朋友圈点赞赠书活动(ง•̀_•́)ง 0x00 前言 本文将会谈一谈在数据仓库中拉链表相关的内容&#xff0c;包…

ZYNQ_project:key_beep

通过按键控制蜂鸣器工作。 模块框图&#xff1a; 时序图&#xff1a; 代码&#xff1a; /*1位按键消抖 */ module key_filter (input wire sys_clk ,input wire sys_rst_n ,input wire key_in ,output …

springboot项目使用Swagger3

一、Swagger介绍 号称世界上最流行的Api框架&#xff1b;Restful Api 文档在线自动生成工具>Api文档与API定义同步更新直接运行&#xff0c;可以在在线测试API 接口支持多种语言&#xff1a;&#xff08;java&#xff0c;Php…&#xff09; 二、Swagger3 准备工作 1、在p…

VsCode 安装 GitHub Copilot插件 (最新)

##在线安装&#xff1a; 打开Vscode扩展商店&#xff0c;输入 "GitHub Copilot " ,选择下载人数最多的那个。&#xff08;这个是你写一部分代码或者注释&#xff0c;Ai自动帮你提示/补全代码&#xff09;,建议选择这个 注意下面有个和他类似的 "GitHub Copilo…

BMVC 23丨多模态CLIP:用于3D场景问答任务的对比视觉语言预训练

来源&#xff1a;投稿 作者&#xff1a;橡皮 编辑&#xff1a;学姐 论文链接&#xff1a;https://arxiv.org/abs/2306.02329 摘要&#xff1a; 训练模型将常识性语言知识和视觉概念从 2D 图像应用到 3D 场景理解是研究人员最近才开始探索的一个有前景的方向。然而&#xff0c…

APS、SAP解析BOM批量核对(我的APS项目三)

APS提供了解析BOM接口 SAP从CU50中解析了BOM 博主开发了一个程序&#xff0c;把两边的BOM数据拉到一起来比对&#xff0c;从最初的一个车型&#xff0c;增加到5个车型&#xff0c;最后成型是30个车型&#xff0c;几乎覆盖了F1、F2的全部车型。 并且程序还实现了消息提醒功能&…

Kotlin(十) 空指针检查、字符串内嵌表达式以及函数默认值

空指针检查 我们在之前的章节里&#xff0c;有定义一个Study的类&#xff0c;它有两个函数&#xff0c;一个doHomework(),一个readBooks()。然后我们定义个doStudy函数&#xff0c;来调用它们&#xff0c;代码如下&#xff1a; fun doStudy(study: Study) {study.doHomework(…

直播间自动发言机器人的运行分享,与开发需要到的技术分析

先来看实操成果&#xff0c;↑↑需要的同学可看我名字↖↖↖↖↖&#xff0c;或评论888无偿分享 一、引言 随着人工智能技术的不断发展&#xff0c;自动发言机器人已经成为了当今社交媒体领域的重要组成部分。它们能够自动化地发布内容、回复用户评论和消息&#xff0c;大大提高…

RE切入点:选择SLI,设定SLO

还是先来复习下上节课讲的“系统可用性”的两种计算方式&#xff0c;一种是从故障角度出发&#xff0c;以时长维度对系统进行稳定性评估&#xff1b;另一种是从成功请求占比角度出发&#xff0c;以请求维度对系统进行稳定性评估。同时&#xff0c;我们还讲到&#xff0c;在 SRE…

Django中简单的增删改查

用户列表展示 建立列表 views.py def userlist(request):return render(request,userlist.html) urls.py urlpatterns [path(admin/, admin.site.urls),path(userlist/, views.userlist), ]templates----userlist.html <!DOCTYPE html> <html lang"en">…

【开源项目】snakeflow流程引擎研究

项目地址 https://gitee.com/yuqs/snakerflow https://toscode.mulanos.cn/zc-libre/snakerflow-spring-boot-stater &#xff08;推荐&#xff09; https://github.com/snakerflow-starter/snakerflow-spring-boot-starter 常用API 部署流程 processId engine.process().de…

Adversarial Training Methods for Deep Learning: A Systematic Review

Adversarial Training Methods for Deep Learning: A Systematic Review----《面向深度学习的对抗训练方法:系统回顾》 摘要 通过快速梯度符号法(FGSM)、投影梯度下降法(PGD)和其他攻击算法&#xff0c;深度神经网络暴露在对抗攻击的风险下。对抗性训练是用来防御对抗性攻击威…

CoRL 2023 获奖论文公布,manipulation、强化学习等主题成热门

今年大模型及具身智能领域有了非常多的突破性进展&#xff0c;作为机器人学与机器学习交叉领域的全球顶级学术会议之一&#xff0c;CoRL也得到了更多的关注。 CoRL 是面向机器人学习的顶会&#xff0c;涵盖机器人学、机器学习和控制等多个主题&#xff0c;包括理论与应用。今年…

USB拦截工具

USB 闪存驱动器对组织的安全和数据构成了独特的威胁。它们的便携性和充足的存储容量使它们成为数据盗窃的便捷媒介。 什么是 USB 拦截器 USB&#xff08;通用串行总线&#xff09;阻止程序用于禁用插入可移动存储设备的端口&#xff0c;便携性和充足的存储容量使 USB 成为可能…