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

简介

总所周知,路由引入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标签等技术。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

LAVE——基于大语言模型的新型代理辅助视频编辑工具允许用户根据自己的编辑风格进行调整

概述 论文地址:https://arxiv.org/abs/2402.10294 视频是一种非常强大的交流和讲述故事的媒介。随着社交媒体和视频共享平台的出现,视频的受欢迎程度直线上升,许多人都在制作和分享自己的内容。然而,对于初学者来说,视…

Java安全—SpringBootActuator监控泄露Swagger自动化

前言 今天依旧是SpringBoot框架,估计还要一篇文章才能把它写完,没办法,Java安全的内容太多了。 Actuator SpringBoot Actuator模块提供了生产级别的功能,比如健康检查,审计,指标收集,HTTP跟踪…

docker快速实现ELK的安装和使用

目录 一、ELK功能原理 二、项目功能展示​ 三、日志查询展示​ 四、ELK安装步骤 1、创建elasticsearch、kibana、filebeat相关data、log、conf目录 2、进入/usr/local/elk目录,并创建一个docker网络 3、启动 elasticsearch容器 4、运行kibana容器 5、启动f…

【Spark】Spark Join类型及Join实现方式

如果觉得这篇文章对您有帮助,别忘了点赞、分享或关注哦!您的一点小小支持,不仅能帮助更多人找到有价值的内容,还能鼓励我持续分享更多精彩的技术文章。感谢您的支持,让我们一起在技术的世界中不断进步! Sp…

从YOLOv5到训练实战:易用性和扩展性的加强

文章目录 前言一、模型介绍二、YOLOv5网络结构1.Input(输入端):智能预处理与优化策略2.Backbone(骨干网络):高效特征提取3.NECK(颈部):特征增强与多尺度融合4.Prediction…

Java爬虫设计:淘宝商品详情接口数据获取

1. 概述 淘宝商品详情接口(如Taobao.item_get)允许开发者通过编程方式,以JSON格式实时获取淘宝商品的详细信息,包括商品标题、价格、销量等。本文档将介绍如何设计一个Java爬虫来获取这些数据。 2. 准备工作 在开始之前&#x…

AIGC 013-CoT用思维链挖掘自回归语言模型的潜在能力

AIGC 013-CoT用思维链挖掘自回归语言模型的潜在能力 文章目录 0 论文工作1 论文方法2 实验结果 0 论文工作 纯自回归式语言模型,本来并不具备优秀推理能力,特别是在数学问题的推理。但是现在的生成模型是能实现一些数学的推理的。研究者认为当模型足够大…

上传文件时获取音视频文件时长和文本文件字数

获取音视频文件时长和文本文件字数 一、获取音视频文件时长二、计算文本文件字数 最近有个需求,要求上传文件时获取音视频文件时长和文本文件字数🐶。 发现这样的冷门资料不多,特做个记录。本文忽略文件上传功能,只封装核心的工具…

ue5.2 数字孪生(11)——Web_UI插件网页通信

Web_UI插件下载安装: https://github.com/tracerinteractive/UnrealEngine/releases 下载对应Ue版本的Web_UI插件以及相关的Json、Http库; 将插件安装到引擎根目录 Ue链接Web: 在项目中启用插件并重启项目; 创建基于Web的用户…

postman可以通的请求,前端通不了(前端添加Content-type,后端收不到请求)

接口完成之后,自己使用postman测试了一下,没有问题; 可是在和小组前端调试接口的时候,他却说访问不了; 信息如下:(我自己写的一个打印请求信息的拦截器) 发现报错信息是: Content type ‘application/x-www-form-urlencoded;charset=UTF-8’ not supported 也就是说…

EFAK kafka可视化管理工具部署使用

简介:EFAK是开源的可视化和管理软件。它允许您查询、可视化、提醒和探索您的指标,无论它们存储在何处。简单来说,它为您提供了将 Kafka 集群数据转换为漂亮的图形和可视化效果的工具。 环境:①操作系统:CentOS7.6&…

MySQL生产环境备份脚本

全量备份脚本,其中BakDir,ZlbakDir,LogFile需要自己创建 #!/bin/bash export LANGen_US.UTF-8# 指定备份目录 BakDir/root/beifen/data/mysqlbak/data/allbak # 指定增量备份目录 ZlbakDir/root/beifen/data/mysqlbak/data/zlbak # 备份日志…

快速搭建express

一、 安装express-generator npm i -g express-generator二、创建项目 express -e 项目名三、安装依赖 npm install四、运行项目 cd 项目名npm start 五、打开网页http://localhost:3000/ 六、实时更新 1、安装nodemon npm i -g nodemon2、修改package.json 改成nodemon …

网络编程 01:计算机网络概述,网络的作用,网络通信的要素,以及网络通信协议与分层模型

一、概述 记录时间 [2024-12-13] 本文讲述网络编程相关知识,例如,什么是计算机网络,网络有什么作用,网络通信的要素是什么,以及网络通信协议与分层模型。 网页编程 / 网络编程区别: 网页编程:J…

亚信安全DeepSecurity完成与超云超融合软件兼容性互认

近日,亚信安全与超云数字技术集团有限公司(以下简称“超云”)联合宣布,亚信安全成功完成与超云超融合软件的产品兼容性互认证。经严格测试,亚信安全云主机安全DeepSecurity与超云FS5000增强型融合系统(简称…

【工业机器视觉】基于深度学习的水表盘读数识别(3-数据标注与转换)

【工业机器视觉】基于深度学习的仪表盘识读(2)-CSDN博客 数据标注 标注扩展 Labelme 和 LabelImg 都是用于创建机器学习和计算机视觉项目所需标注数据的工具。它们都允许用户通过图形界面手动标注图像,但各自有其特点和适用场景。 Labelme…

【硬件测试】基于FPGA的4ASK调制解调通信系统开发与硬件片内测试,包含信道模块,误码统计模块,可设置SNR

目录 1.算法仿真效果 2.算法涉及理论知识概要 3.Verilog核心程序 4.开发板使用说明和如何移植不同的开发板 5.完整算法代码文件获得 1.算法仿真效果 本文是之前写的文章: 《基于FPGA的4ASK调制解调系统,包含testbench,高斯信道模块,误码率统计模块,可以设置不同SNR》 的…

ubuntu20.04复现 Leg-KILO

这里写目录标题 opencv版本问题下载3.2.0源代码进入解压后的目录创建构建目录运行 CMake 配置 配置时指定一个独立的安装目录,例如 /opt/opencv-3.2:出错: 使用多线程编译错误1: stdlib.h: 没有那个文件或目录错误2:er…

kubeadm部署1.20集群版

部署说明 步骤1~4 master和node都需执行步骤 5.1 三台master都执行,步骤 5.2 随便一台机器执行步骤5.3根据需要选择部署etcd;堆叠etcd更简单部署更快,外部etcd部署麻烦方便管理;步骤5.4 根据选择部署的etcd方式选择k8…

【电力负荷预测实例】采用新英格兰2024年最新电力负荷数据的XGBoost电力负荷预测模型

与小编上篇文章介绍的基于BPNN神经网络的电力负荷预测相比较,两种模型的负荷预测方法各有优势,神经网络能够自动提取特征并处理非线性关系,而XGBoost则具有预测精度高、运行速率快和可解释性强的特点。在实际应用中,可以根据具体需…