路由引入问题(双点双向路由回馈问题)

简介

总所周知,路由引入import又称路由重分发redistribute,为了解决不同路由协议进程间路由信息不互通而使用的技术,由于不同路由协议的算法、机制、开销等因素的差异,它们之间无法直接交换路由信息。因此,路由引入技术的作用是将一个路由协议的路由信息引入到另一个路由协议中,以实现路由信息的互通。

一般下,可引入static静态路由,direct直连路由,ospf,isis,bgp等动态路由协议

被引入的路由会被进程学习并计算加入自己的路由表中

1d33e947f0f14a02a34de06391ecf831.png

引入方式

单点单向

AR2上OSPF1引入OSPF2,单边引入,需下发缺省路由,OSPF1通过缺省路由访问OSPF2

f2b4fdc6a11644e585304484e899b35b.png

单点双向

(以双点为例)

AR2上OSPF1引入OSPF2,OSPF2引入OSPF1

bcffa12ecdf34c75b7768bf3f003d5d7.png

多点单向

AR2上OSPF引入ISIS

AR3上OSPF引入ISIS

同上需要下发缺省路由

3bc07a9b754f4e67b6c3104d1ff959f4.png

多点双向

(以双点为例)

AR2上ISIS引入OSPF,OSPF引入ISIS

AR3上ISIS引入OSPF,OSPF引入ISIS

d17ca873af8d4fd7bd4edd52381317d6.png

问题分析

a0cc9a7a235d426dbfdedd394455a962.jpg

引入导致的问题可能有路由回馈,次优路径和环路风险

路由回馈:由于双向引入,如图,假设我们从R2出发,把OSPF引入ISIS被引入的路由被通告至该协议下成员即通告到ISIS下,其中包括另一台引入路由的路由器即R3,当R3收到这些路由,此时路由器R3误以为是新的路由,又把这些路由引入自己所在的路由区域即OSPF。再经过通告又回到R2

次优路径:由于路由协议间度量值和路由优先级不同而导致,当路由优先级低的被引入至路由优先级高的时候,就可能产生此情况

环路风险:由于路由协议间度量值和路由优先级不同而导致,   通常与次优路径同时存在

单点单向

次优路径

我们把isis引入ospf,由于优先级问题R3访问R4会走R1-R2-R4,而不是直接到R4

单点双向

次优路径

同上不过多叙述

多点单向

(以双点为例)

路由反馈:由于双向引入的缘故,AR2通告的引入路由会通过网络在被AR3传回来通过一次

次优路径

环路风险:当5.5.5.5通过直连引入且cost改为2,type为2,又在R2把OSPF引入ISIS,在R3把ISIS引入OSPF,此时R3访问5.5.5.5就会环路

因为OSPF外部路由优先级为150,当5.5.5.5的路由被引入ISIS中,其优先级会被置换为15,于是在R3上就会出现违背管理原则的情况,此时,R3访问5.5.5.5会访问R4,而R4查表发现要去5.5.5.5得去R2,R2得去R1,R1因为引入的问题,直接发给R5cost为2,而去R3的cost为1,此时去R3反而成了最优路径,于是自此开始循环,环路形成

多点双向

(以双点为例)

路由反馈

次优路径

0a418866687c41638a0dcad1beeea0a8.png

解决方案(以双点双向为例)

实验拓扑

在R5上引入直连192.168.1.0/24,R1,R2,R3运行OSPF,R2,R3,R4运行ISIS且开销改为宽,R2,R3上相互引入

实验要求

解决路由反馈和次优路径的问题

路由反馈:将自身发送的路由打上tag,通过route-policy进行筛选并选择适当操作(不让你传回来)

次优路径:改cost通过创建route-policy将ospf外部路由150的优先级转化为比isis优先级小的(改优先级让你无法选中)

实验配置

由于双向引入,我们可以看成两个环,顺时针一个逆时针一个,因此2X2+2=6个路由route-policy

1.配置IP(省略)

2.宣告相关网段(省略)

3.将192.168.10.0/24网段引入,在AR3和AR2上配置route-policy,并在引入时调用

直连引入需修改优先级,使得OSPF去5.5.5.5不会发给ISIS

这样改还是不妥,因为去往4.4.4.4的网段就会走R1内部而不是直接发给R4,所以需要将打tag30的标签选择比15大的优先级(tag只是不发布给其他路由域,本机还是又这些路由的)

顺时针的环可以这样处理,逆时针同理

R2


isis 1
 is-level level-2
 cost-style wide
 network-entity 49.0001.0000.0000.0002.00
 import-route ospf 1 route-policy o2is //引入路由时调用相关策略(顺时针的环)


interface GigabitEthernet0/0/0
 ip address 10.1.12.2 255.255.255.0 
#
interface GigabitEthernet0/0/1
 ip address 10.1.24.2 255.255.255.0 
 isis enable 1
#
interface NULL0
#
ospf 1 router-id 2.2.2.2 
 import-route isis 1 route-policy is2o        //引入路由时调用相关策略(逆时针的环)
 preference ase route-policy cost1 14 //调用并修改引入优先级为14,比isis低确保被选路的时候被选上
 area 0.0.0.0 
  network 10.1.12.2 0.0.0.0 
#
route-policy is2o deny node 5 //不允许引入tag300的包,来自R3上ospf引入isis的路由
 if-match tag 300
#
route-policy is2o permit node 10 //isis引入ospf的路由打上tag100
 apply tag 100 
#
route-policy cost1 permit node 10 //防止次优路径,将来自R3上isis引入ospf的路由进行修改
 if-match tag 30
 apply preference 200 
#
route-policy o2is deny node 5 //不允许引入tag30的路由,来自R3上ospf引入isis的路由
 if-match tag 30
#
route-policy o2is permit node 10 //ospf引入isis的路由打上tag10
 apply tag 10 
#

R3


#
isis 1
 is-level level-2
 cost-style wide
 network-entity 49.0001.0000.0000.0003.00
 import-route ospf 1 route-policy o2is //引入时调用策略(顺时针的环)
interface GigabitEthernet0/0/0
 ip address 10.1.34.3 255.255.255.0 
 isis enable 1
#
interface GigabitEthernet0/0/1
 ip address 10.1.13.3 255.255.255.0 
#
interface NULL0
#
ospf 1 router-id 3.3.3.3 
 import-route isis 1 route-policy is2o//引入时调用策略(逆时针的环)
 preference ase route-policy cost1 14 
 area 0.0.0.0 
  network 10.1.13.3 0.0.0.0 
#
route-policy is2o deny node 5 //如果标签是tag10则不允许引入,来自R2的ospf引入isis
 if-match tag 10
#
route-policy is2o permit node 10 //如果是被引入的路由打上标签tag30
 apply tag 30 
#
route-policy o2is deny node 5 //如果是tag100则不允许引入,来自R2的isis引入ospf
 if-match tag 100
#
route-policy o2is permit node 10 //ospf引入isis的路由则打上tag300
 apply tag 300 
#
route-policy cost1 permit node 10 //防止次优路径,将来自R2isis引入ospf的路由修改
 if-match tag 100
 apply preference 200 

总结

路由引入实现了路由信息共享,但由于不同协议间的设计不同,出现的一些不符合管理的问题需要认为解决,一项技术的出现必定有其弊端和优势。对我而言,我觉得解决这个问题的方法非常巧妙,通过打tag的方式标记流量来源,从中也可以看到设计者解决问题的思路,打标签就让我想到BGP的12条路径属性还有VLAN标签等技术。

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

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

相关文章

26. Three.js案例-自定义多面体

26. Three.js案例-自定义多面体 实现效果 知识点 WebGLRenderer WebGLRenderer 是 Three.js 中用于渲染场景的主要类。它支持 WebGL 渲染,并提供了多种配置选项。 构造器 new THREE.WebGLRenderer(parameters) 参数类型描述parametersObject可选参数对象&…

【在Linux世界中追寻伟大的One Piece】HTTP Session

目录 1 -> 引入HTTP Session 1.1 -> 定义 1.2 -> 工作原理 1.3 -> 安全性 1.4 -> 超时和失效 1.5 -> 用途 2 -> 模拟session行为 3 -> 实验测试session 1 -> 引入HTTP Session 1.1 -> 定义 HTTP Session是服务器用来跟踪用户与服务器交…

Docker-Dockerfile、registry

Dockerfile 一、概述 1、commit的局限 很容易制作简单的镜像,但碰到复杂的情况就十分不方便,例如碰到下面的情况: 需要设置默认的启动命令需要设置环境变量需要指定镜像开放某些特定的端口 2、Dockerfile是什么 Dockerfile是一种更强大的镜…

蓝桥杯刷题——day1

蓝桥杯刷题——day1 题目一题干题目解析代码 题目二题干题目解析代码 题目一 题干 给定一个字符串 s ,验证 s 是否是 回文串 ,只考虑字母和数字字符,可以忽略字母的大小写。本题中,将空字符串定义为有效的 回文串 。 题目链接&a…

【多模态文档智能】OCR-free感知多模态大模型技术链路及训练数据细节

目前的一些多模态大模型的工作倾向于使用MLLM进行推理任务,然而,纯OCR任务偏向于模型的感知能力,对于文档场景,由于文字密度较高,现有方法往往通过增加图像token的数量来提升性能。这种策略在增加新的语言时&#xff0…

如何在 Ubuntu 22.04 上使用 Fail2Ban 保护 SSH

前言 SSH,这玩意儿,简直是连接云服务器的标配。它不仅好用,还很灵活。新的加密技术出来,它也能跟着升级,保证核心协议的安全。但是,再牛的协议和软件,也都有可能被攻破。SSH 在网上用得这么广&…

供应链系统设计-中台系统设计系列(三)- 好中台的标准之稳定原则

概述 在上一篇供应链系统设计-中台系统设计系列(二)- 好中台的标准之复用原则中,我们以复用原则为主,讨论了以下3点: 前台业务效率提升:好的中台能够显著提高前台业务的效率,通过将前台业务中通…

CTF 攻防世界 Web: FlatScience write-up

题目名称-FlatScience 网址 index 目录中没有发现提示信息,链接会跳转到论文。 目前没有发现有用信息,尝试目录扫描。 目录扫描 注意到存在 robots.txt 和 login.php。 访问 robots.txt 这里表明还存在 admin.php admin.php 分析 在这里尝试一些 sql…

axios请求拦截器和响应拦截器,封装naive-ui的 Loading Bar加载条和useMessage消息提示

接之前的博客设计从0开始边做边学,用vue和python做一个博客,非规范化项目,怎么简单怎么弄,跑的起来有啥毛病解决啥毛病(三),目前已经完成了基本的功能demo,但是请求接口不可能每个页…

Blue Ocean 在Jenkins上创建Pipeline使用详解

BlueOcean是Jenkins的一个插件,它提供了一套可视化操作界面来帮助用户创建、编辑Pipeline任务。以下是对BlueOcean中Pipeline操作的详细解释: 一、安装与启动BlueOcean 安装:在Jenkins的“系统管理”->“插件管理”->“可选插件”中搜索“BlueOcean”,然后点击“Ins…

opencv——识别图片颜色并绘制轮廓

图像边缘检测 本实验要用到Canny算法,Canny边缘检测方法常被誉为边缘检测的最优方法。 首先,Canny算法的输入端应为图像的二值化结果,接收到二值化图像后,需要按照如下步骤进行: 高斯滤波。计算图像的梯度和方向。非极…

基础库urllib的使用

学习爬虫,其基本的操作便是模拟浏览器向服务器发出请求,那么我们需要从哪个地方做起呢?请求需要我们自己构造吗?我们需要关心请求这个数据结构怎么实现吗?需要了解 HTTP、TCP、IP层的网络传输通信吗?需要知道服务器如何响应以及响应的原理吗? 可能…

剑指Offer|day4 LCR 004. 只出现一次的数字 II

LCR 004. 只出现一次的数字 II 给你一个整数数组 nums ,除某个元素仅出现 一次 外,其余每个元素都恰出现 **三次 。**请你找出并返回那个只出现了一次的元素。 示例 1: 输入:nums [2,2,3,2] 输出:3提示&#xff1a…

Mysql学习笔记之SQL-1

上篇文章我们介绍了Mysql的安装,这篇文章我们介绍Mysql的操作语言SQL 1. 简介 sql全称(Structured Query Language)是结构化查询语言,操作关系型数据库的编程语言,定义了一套操作关系型数据库统一标准 2. sql分类 …

埃隆马斯克X-AI发布Grok-2大模型,快来体验~

引言 近年来,人工智能技术的快速发展推动了大语言模型的广泛应用。无论是日常生活中的智能助手,还是行业中的自动化解决方案,大语言模型都扮演着越来越重要的角色。2024年,X-AI推出了新一代的大模型——Grok-2,这款模…

PostgreSQL的学习心得和知识总结(一百六十三)|深入理解PostgreSQL数据库之 GUC参数compute_query_id 的使用和实现

目录结构 注:提前言明 本文借鉴了以下博主、书籍或网站的内容,其列表如下: 1、参考书籍:《PostgreSQL数据库内核分析》 2、参考书籍:《数据库事务处理的艺术:事务管理与并发控制》 3、PostgreSQL数据库仓库…

多线程编程杂谈(上)

问题 线程执行的过程中可以强制退出吗? 主动退出?被动退出? 问题抽象示例 需要解决的问题 g_run 全局变量需要保护吗? 如何编码使得线程中每行代码的执行可被 g_run 控制? 线程代码在被 g_run 控制并 "强制退…

【Git】:企业级开发和多人协作开发啊

目录 多人协作 模拟配置多人协作环境 多人同一分支开发 多人不同分支开发 远程分支删除后的问题 企业级开发模型 系统开发环境 分支设计规范 多人协作 模拟配置多人协作环境 目前,我们所完成的工作如下: 基本完成 Git 的所有本地库的相关操作&#xff…

【Sql优化】数据库优化方法、Explain使用

文章目录 一、金字塔优化模型二、SQL优化的利器:Explain工具1. Explain 的作用2. Explain 的用法 三、SQL优化方法(后续文章细讲)1. 创建索引减少扫描量2. 调整索引减少计算量3. 索引覆盖4. 干预执行计划5. SQL改写 四、通过 Explain 优化案例…

Deepmotion技术浅析(五):运动追踪

运动追踪是 DeepMotion 动作捕捉和 3D 重建流程中的核心模块之一。该模块的主要任务是在视频序列中跟踪人体的运动轨迹,捕捉人体各部分随时间的变化,并生成连续的 3D 运动数据。DeepMotion 的运动追踪技术结合了计算机视觉、深度学习和物理模拟等方法&am…