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

news2024/12/14 11:24:20

简介

总所周知,路由引入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.coloradmin.cn/o/2259280.html

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

相关文章

windows安装gradle

目录 1. gradle的简介2. 安装操作2.1 下载2.2 配置环境变量2.3 测试验证 3. 总结 1. gradle的简介 Gradle 是一个开源的项目自动化构建工具,专注于灵活性和性能。它基于 Apache Ant 和 Apache Maven 的概念,但采用了 Groovy 或 Kotlin 作为领域特定语言…

数据库中的代数运算

这些代数基本运算通常被封装在数据库查询语言中,如SQL中的SELECT、FROM、WHERE等子句,使得用户可以更方便地对数据库进行查询和处理。 下面的介绍基于以下两个关系来说明: 传统的集合运算 并(∪) 合并两个关系中的元组…

Linux驱动开发(12):中断子系统–按键中断实验

本章我们以按键为例讲解在驱动程序中如何使用中断, 在学习本章之前建议先回顾一下关于中断相关的裸机部分相关章节, 这里主要介绍在驱动中如何使用中断,对于中断的概念及GIC中断控制器相关内容不再进行讲解。 本章配套源码和设备树插件位于“…

智能家居WTR096-16S录放音芯片方案,实现语音播报提示及录音留言功能

前言: 在当今社会的高速运转之下,夜幕低垂之时,许多辛勤工作的父母尚未归家。对于肩负家庭责任的他们而言,确保孩童按时用餐与居家安全成为心头大事。此时,家居留言录音提示功能应运而生,恰似家中的一位无形…

【Qt】信号、槽

目录 一、信号和槽的基本概念 二、connect函数:关联信号和槽 三、自定义信号和槽 1.自定义槽函数 2.自定义信号函数 例子: 四、带参的信号和槽 例子: 五、Q_OBJECT宏 六、断开信号和槽的连接 例子: 一、信号和槽的基本…

Zemax 中的 LED 阵列模型

LED 阵列的光学特性 LED 阵列由多个发光二极管 (LED) 组成,这些二极管以特定模式或配置排列,以实现均匀照明、更高强度或特定照明特性。这些阵列广泛用于显示器、照明系统、光通信和传感等应用。 LED 阵列的光学特性对于了解它如…

Qt编写区位码gb2312、机内码、国标码————附带详细介绍和编码实现

文章目录 0 背景1 了解编码1.1 ASCII码1.2 机内码、国标码、区位码1.2.1 区位码1.2.2 国标码(GB 2312-80)1.2.3 汉字机内码(GB 2312) 1.3 GBK和GB2312的区别2 编码实现2.1 QString数据转QByteArray类型2.1.1 使用QTextCodec2.1.2 …

【Linux系统】—— 权限的概念

【Linux系统】—— 权限的概念 1 权限1.1 什么是权限1.2 为什么要有权限1.3 理解权限 2 文件的权限2.1 文件角色2.2 文件权限2.3 修改文件权限2.3.1 修改目标属性2.3.1.1 字符修改法2.3.1.2 8进制修改法 2.3.2 修改角色 3 文件权限补充知识点3.1 只能修改自己的文件权限3.2 没有…

js:我要在template中v-for循环遍历这个centrerTopdata,我希望自循环前面三个就可以了怎么写

问&#xff1a; 我按在要在template中v-for循环遍历这个centrerTopdata&#xff0c;我希望自循环前面三个就可以了怎么写&#xff1f; 回答&#xff1a; 问&#xff1a; <div v-for"(item, index) in centrerTopdata.slice(0, 3)" :key"index"> d…

016 在路由器上配置 DHCP

配置路由器端口IP地址 将路由器的端口地址配置好&#xff0c; 左边的网络地址是 192.168.1.0 右边的网络地址是 192.168.2.0 配置路由器的DHCP服务 打开命令窗口&#xff0c;进入特权模式 进入全局配置 conf t创建一个DHCP地址池&#xff1b; po1 是地址池的名称&#xf…

使用IP自签名SSL证书

最近需要创建WebSocket服务器并使用SSL证书&#xff0c;由于是内网测试&#xff0c;所以需要使用指定IP的自签SSL证书。 其实笔者前面博文 使用nexus3作为Docker镜像仓库 解决nexus3登录x509: certificate has expired or is not yet valid 中有创建过相应的证书&#xff0c;这…

多模态大模型(二)——用Transformer Encoder和Decoder的方法(BLIP、CoCa、BEiTv3)

文章目录 BLIP: Bootstrapping Language-Image Pre-training for Unified Vision-Language Understanding and Generation 理解、生成我都要&#xff0c;一个很有效的、根据图片生成caption的工具1. BLIP的研究动机2. BLIP的模型结构3. CapFilt Model4. BLIP的训练过程 CoCa: C…

vue季度选择器(antd2.0 版本无此控件,单独写一个)

vue季度选择器 效果显示 效果显示 <template><div><a-popoverplacement"bottom"overlayClassName"season-picker"trigger"click"v-model"showSeason"><template #content><div class"season-picker-b…

基于Spring Boot + Vue的摄影师分享交流社区的设计与实现

博主介绍&#xff1a;java高级开发&#xff0c;从事互联网行业六年&#xff0c;熟悉各种主流语言&#xff0c;精通java、python、php、爬虫、web开发&#xff0c;已经做了多年的设计程序开发&#xff0c;开发过上千套设计程序&#xff0c;没有什么华丽的语言&#xff0c;只有实…

利用GeoWave导入矢量数据到HBase/Accumulo数据库

前言 最近在做有关地理时空大数据的实验&#xff0c;本文将介绍如何利用geowave框架&#xff0c;将矢量数据导入到HBase或Accumulo等NoSQL数据库中。 软件版本&#xff1a; Hadoop: 2.10.2 Zookeeper: 3.6.4 geowave: 1.2.0 Accumulo&#xff1a;1.9.3 HBase: 1.4.0 Ja…

常回家看看之Tcache Stashing Unlink Attack

前言&#xff1a; 在开始了解这个攻击手法的前提&#xff0c;需要先了解一个函数也就是calloc函数&#xff0c;众所周知&#xff0c;当libc版本大于等于2.27的时候会引入tcachebin&#xff0c;而Tcache Stashing Unlink Attack就是发生在2.27版本以上&#xff0c;那么这个和ca…

心情追忆- SEO优化提升用户发现率

之前&#xff0c;我独自一人开发了一个名为“心情追忆”的小程序&#xff0c;旨在帮助用户记录日常的心情变化及重要时刻。我从项目的构思、设计、前端&#xff08;小程序&#xff09;开发、后端搭建到最终部署。经过一个月的努力&#xff0c;通过群聊分享等方式&#xff0c;用…

深入探索:createThread与cancelThread的用法及实例

在多线程编程领域,线程的创建与管理是核心技能之一。本文将详细介绍两个关键函数:createThread(用于创建新线程)和cancelThread(用于取消已存在的线程),并通过具体实例展示它们的用法。需要注意的是,不同的编程语言和线程库可能有不同的API设计,但基本概念是相通的。本…

Cherno C++学习笔记 P36 初始化类成员

这一篇文章我们主要讲一下如何初始化类成员&#xff0c;并给出一个初始化类成员的小技巧。我们都知道&#xff0c;我们会使用构造函数来初始化我们的类成员变量。 首先我们来举一个简单的小例子&#xff0c;展现一下构造函数的功能&#xff1a; #include<iostream> #in…

快速解决git@github.com: Permission denied (publickey)

在使用github进行项目克隆的时候&#xff0c;有些时候会出现“gitgithub.com: Permission denied (publickey)”的错误。这个问题大部分是由于新设备本地密钥未加入gitbub列表中&#xff0c;我们可以通过加入新机器身份验证解决问题。 一、问题现象 二、问题解决 2.1&#xf…