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

简介

总所周知,路由引入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.rhkb.cn/news/488857.html

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

相关文章

Ubuntu 22.04安装Nessus(离线激活模式)

Ubuntu 22.04安装Nessus 一、 Nessus 简介二、Nessus下载安装三、激活Nessus四、创建一个基础扫描五、 破解Nessus只能扫描16个地址的限制六、更新插件 一、 Nessus 简介 Nessus 官网: https://www.tenable.com/ Nessus号称世界上最流行的扫描程序,Nessu…

ssd202d-badblock-坏块检测

这边文章讲述的是坏快检测功能 思路: 1.第一次烧录固件会实现跳坏块,但是后续使用会导致坏块的产生; 于是我在uboot环境变量添加了两个变量来控制坏快 lb_badnum //坏块个数 lb_badoff //坏块所在位置 2.第一次开机会根据lb_badnum是否…

泷羽Sec-Burp Suite自动刷漏洞-解放双手

声明! 学习视频来自B站up主 **泷羽sec** 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关&a…

Java多线程与线程池技术详解(九)

面对苦难的态度:《病隙碎笔》“不断的苦难才是不断地需要信心的原因,这是信心的原则,不可稍有更动。” 孤独与心灵的成长:《我与地坛》“孤独的心必是充盈的心,充盈得要流溢出来要冲涌出去,便渴望有人呼应他…

以太网链路详情

文章目录 1、交换机1、常见的概念1、冲突域2、广播域3、以太网卡1、以太网卡帧 4、mac地址1、mac地址表示2、mac地址分类3、mac地址转换为二进制 2、交换机的工作原理1、mac地址表2、交换机三种数据帧处理行为3、为什么会泛洪4、转发5、丢弃 3、mac表怎么获得4、同网段数据通信…

IDEA 2024 版本配置热部署

在实际开发过程中,每次修改代码就得将项目重启,重新部署,对于一些大型应用来说,重启时间需要花费大量的时间成本。对于一个后端开发者来说,重启过程确实很难受啊 采用下面三步骤可以完成 1.在IDEA中settings中搜索Debb…

阿里云 云产品流转(实现设备与小程序交互)

一、准备工作 1、设备接入平台 创建两个设备接入到对应产品中,具体可以参考这里(点击跳转)。 二、云产品流转设置 在物联网平台下-->消息转发-->云产品流转->数据源 1、数据源 数据源-->创建数据源-->填写信息-->确定&…

单目深度估计模型 lite-mono 测试

lite-mono 使用工业数据集kitti 进行训练,目的使用单目摄像头实现物体深度预测,关于kitti数据集的介绍和下载参考 (二)一文带你了解KITTI数据集-CSDN博客文章浏览阅读2.7w次,点赞64次,收藏294次。文章介绍…

.Net 多线程、异步、性能优化应用与心得

文章目录 概要多线程Thread方式创建线程:Task方式创建线程[C#5.0引入]&#xff08;推荐使用&#xff09;:线程池方式创建线程&#xff1a; 异步异步方法异步IO操作异步数据库操作异步Web请求取消异步ValueTask[C# 7.0引入]ValueTask<TResult> 和 Task 性能优化懒加载对象…

qt-C++语法笔记之mapToGlobal将组件(控件)中的本地坐标系(局部坐标)映射到全局坐标系

qt-C语法笔记之mapToGlobal将组件&#xff08;控件&#xff09;中的本地坐标系&#xff08;局部坐标&#xff09;映射到全局坐标系 code review! 文章目录 qt-C语法笔记之mapToGlobal将组件&#xff08;控件&#xff09;中的本地坐标系&#xff08;局部坐标&#xff09;映射到…

python爬虫--小白篇【爬取B站视频】

目录 一、任务分析 二、网页分析 三、任务实现 一、任务分析 将B站视频爬取并保存到本地&#xff0c;经过分析可知可以分为四个步骤&#xff0c;分别是&#xff1a; 爬取视频页的网页源代码&#xff1b;提取视频和音频的播放地址&#xff1b;下载并保存视频和音频&#x…

UniScene:Video、LiDAR 和Occupancy全面SOTA

论文: https://arxiv.org/pdf/2412.05435 项目页面&#xff1a;https://arlo0o.github.io/uniscene/ 0. 摘要 生成高保真度、可控制且带有标注的训练数据对于自动驾驶至关重要。现有方法通常直接从粗糙的场景布局生成单一形式的数据&#xff0c;这不仅无法输出多样化下游任务…

Ubuntu22.04搭建FTP服务器保姆级教程

在网络环境中&#xff0c;文件传输是一项至关重要的任务。FTP&#xff08;文件传输协议&#xff09;是一种基于客户端/服务器模式的协议&#xff0c;广泛用于在互联网上传输文件。Ubuntu作为一款流行的Linux发行版&#xff0c;因其稳定性和易用性而广受开发者和系统管理员的喜爱…

【银河麒麟高级服务器操作系统】修改容器中journal服务日志存储位置无效—分析及解决方案

了解更多银河麒麟操作系统全新产品&#xff0c;请点击访问 麒麟软件产品专区&#xff1a;https://product.kylinos.cn 开发者专区&#xff1a;https://developer.kylinos.cn 文档中心&#xff1a;https://documentkylinos.cn 服务器环境以及配置 【机型】 整机类型/架构&am…

React 第十六节 useCallback 使用详解注意事项

useCallback 概述 1、useCallback 是在React 中多次渲染缓存函数的 Hook&#xff0c;返回一个函数的 memoized的值&#xff1b; 2、如果多次传入的依赖项不变&#xff0c;那么多次定义的时候&#xff0c;返回的值是相同的,防止频繁触发更新&#xff1b; 3、多应用在 父组件为函…

二十七、Tomcat专题总结与拓展

文章目录 一、Tomcat设计思路总结1、Tomcat整体架构2、Tomcat设计思路 二、Tomcat源码设计精髓三、拓展&#xff1a;SpringBoot整合Tomcat源码分析四、拓展&#xff1a;SpringBoot整合Undertow实战1、Undertow概述2、SpringBoot集成Undertow2.1、引入依赖2.2、application.prop…

[游戏开发] Unity中使用FlatBuffer

什么是FlatBuffer 官网&#xff1a; GitHub - google/flatbuffers: FlatBuffers: Memory Efficient Serialization LibraryFlatBuffers: Memory Efficient Serialization Library - google/flatbuffershttps://github.com/google/flatbuffers 为什么用FloatBuffer&#xff0c…

【JAVA】旅游行业中大数据的使用

一、应用场景 数据采集与整合&#xff1a;全面收集旅游数据&#xff0c;如客流量、游客满意度等&#xff0c;整合形成统一数据集&#xff0c;为后续分析提供便利。 舆情监测与分析&#xff1a;实时监测旅游目的地的舆情信息&#xff0c;运用NLP算法进行智能处理&#xff0c;及…

android studio创建虚拟机注意事项

emulator 启动模拟器的时候&#xff0c;可以用 AVD 界面&#xff0c;也可以用命令行启动&#xff0c;但命令行启 动的时候要注意&#xff0c;系统有两个 emulator.exe &#xff0c;建议使用 emulator 目录下的那个&#xff01;&#xff01; 创建类型为google APIs的虚拟机可从…

全面解析租赁小程序的功能与优势

内容概要 租赁小程序正在逐渐改变人与物之间的互动方式。通过这些小程序&#xff0c;用户不仅可以轻松找到所需的租赁商品&#xff0c;还能够享受无缝的操作体验。为了给大家一个清晰的了解&#xff0c;下面我们将重点介绍几个核心功能。 建议&#xff1a;在选择租赁小程序时&…