BGP第二日
上图为今日所用拓扑 ,其中R1和R4,R3和R5为EBGP邻居,R1和R3为IBGP邻居,AS200区域做OSPF动态路由
一.BGP建立邻居的六种状态
1.idle
空闲状态:建立邻居最初的状态
2.Connect
连接状态:在这个状态下会尝试建立TCP连接
3.Active
活跃状态:TCP建立连接失败会进入这个状态,一直失败则一直在这个状态,若建立成功则由Active->OpenSent状态
4.OpenSent
Open报文发送状态:在TCP建立连接成功后会进入这个状态,这个状态下双方会发送Open报文以尝试建立邻居关系
5.OpenConfirm
Open报文确认状态:收到对方的Open报文后就进入这个状态了,这个状态下会向对方发送KeepAlive保活报文以维持邻居关系
6.Established
建立状态:收到对方的KeepAlive保活报文后进入的状态,在这个状态下邻居关系达到完满
二.流量黑洞
出现原因:
当路由下一跳地址非直连的网段ip地址就有可能出现流量黑洞,其原因是路由表是按照目的地址寻址的,当路由下一跳非直连网段ip时,下一跳所在路由器不一定有目的ip的路由条目,这时就会将路由数据传到Null口,形成流量黑洞。
在IBGP中,若两台建立IBGP路由器之间有没有配置IBGP的路由设备时,就会出现流量黑洞问题,虽然两台IBGP路由器学习了对方所搬运的路由,但是由于中间路由器没有所搬运路由的路由信息,所以外部AS设备无法相互连接。
解决方案:
1.配置静态路由:
在中间路由器R2中配置两条静态路由:
[R2]ip route-s 10.10.4.4 32 192.168.12.1
[R2]ip route-s 10.10.5.5 32 192.168.23.3
有了这两条静态路由,中间设备就有了目的IP地址为外部AS区域的路由信息,就可以继续路由转发了。这种方法看似完美,实际工作中外部AS区域路由何其之多,BGP搬运多少条路由中间设备均要配置多少条静态路由,何其繁琐,实不可取。
2.在ospf中引入外部BGP路由:
[R1]ospf 1
[R1-ospf-1]import-route bgp
[R3]ospf 1
[R3-ospf-1]import-route bgp
这样ASBR就会生成五类LSA通告全区域外部AS某一IP的路由信息了,这样做也是看似合理,因为BGP搬运的路由条数庞大,OSPF所引入BGP路由条数也很庞大,会产生大量的五类LSA,对ASBR设备压力非常大,虽然可以用第五类路由聚合技术缓解压力,但治标不治本,且BGP所引出的问题最终还是想在BGP中解决。(将五层问题转换成三层问题这种解决方法会伤了五层高傲的心的)
3.IGBP全互联
既然问题是由两台IBGP路由器之间有非IBGP路由器导致的,那我们直接让非IBGP路由器成为IBGP路由器不就成了?
[R1]bgp 200
[R1-bgp]peer 192.168.12.2 as 200
[R1-bgp]peer 192.168.12.2 next-hop-local #IBGP邻居间传路由时不会修改下一跳
[R2]bgp 200
[R2-bgp]peer 192.168.12.1 as 200
[R2-bgp]peer 192.168.23.3 as 200
[R3]bgp 200
[R3-bgp]peer 192.168.23.2 as 200
[R3-bgp]peer 192.168.23.2 next-hop-local
这样R2就有从IBGP邻居那边学来的外部AS区域路由了,看似又是很完美但是图示仅仅一台中间设备就要建立3次IBGP邻居,若总共有N台路由器则要建立N*(N-1)/2次IBGP邻居了,工程量不可谓不大,因此,也不可取。
先卖个关子,先不“引玉”,讲讲别的先。
三.BGP通告原则
1.BGP路由器会将自己状态码为“*>”的路由给状态为“Established”的邻居
2.从EBGP那边搬运的路由会传递给所有邻居
3.从IBGP那边搬运的路由不会传递给别的IBGP邻居
由于第三条规则,引出了下面我们要讲的内容。
四.IBGP水平分割 ps:也叫内内不相传
出现原因:
在同一个AS中,若有三台及以上的IBGP邻居存在,则有可能产生路由环路(互相来回传递从EBGP邻居那边搬运来的路由),为了防止这种现象的出现,出现了IBGP水平分割的规则
打开一扇门,就关闭一扇窗
IBGP水平分割解决了IBGP路由环路问题,可却导致AS内部BGP无法传递
解决方案:
1)IBGP全互联
2)Route Reflector 路由反射器
3)BGP联盟 (已基本淘汰)
4)OSPF 引入BGP
5)静态路由
五.路由反射器
1.Role:
1)RR :Router Reflector
2)Client
3)Non-Client
2.路由反射器反射规则
1)从Non-Client设备上搬运的路由,会传递给EBGP邻居,会反射给Client设备,但是不会反射给其它Non-Client设备 (非非不反射规则)
2)从Client设备上搬运的路由,会传递给EBGP邻居,会反射给Non-Client设备和Client设备
3)从EBGP邻居设备上搬运的路由,会反射给Client设备、Non-Client设备
3.隐患
路由反射器突破了IBGP的水平分割,但也面临着路由环路的风险
4.解决方案:
在BGP报文内加入两个字段:
Origin-id:始发id,集群内部Client与RR间防环
Cluster_id:簇列表,集群间防环
相关文章:
BGP第二日
上图为今日所用拓扑 ,其中R1和R4,R3和R5为EBGP邻居,R1和R3为IBGP邻居,AS200区域做OSPF动态路由 一.BGP建立邻居的六种状态 1.idle 空闲状态:建立邻居最初的状态 2.Connect 连接状态:在…...
rabbitmq集群创建admin用户之后,提示can access virtual hosts是No access状态
问题描述: 因业务需要使用的rabbitmq是3.7.8版本的,rabbitmq在3.3.0之后就允许使用guest账号的权限了,所以需要创建一个administrator标签的用户。 如下操作创建的用户: 创建完成之后就提示如下的报错: 注:…...
ARM功耗管理之多核处理器启动
安全之安全(security)博客目录导读 思考:SecureBoot?多核处理器启动流程?PSCI启动方式? 一般嵌入式系统使用的都是对称多处理器(Symmetric Multi-Processor, SMP)系统,包含了多个cpu, 这几个cp…...
java使用easypoi模版导出word详细步骤
文章目录 第一步、引入pom依赖第二步、新建导出工具类WordUtil第三步、创建模版word4.编写接口代码5.导出结果示例 第一步、引入pom依赖 <dependency><groupId>cn.afterturn</groupId><artifactId>easypoi-spring-boot-starter</artifactId><…...
Android 内部保持数据的方式
Android内部保持数据的方式主要有五种,每种方式都有其特定的用途和优点。以下是详细的介绍: SQLite数据库 定义:SQLite是一个轻量级的、跨平台的数据库,所有的信息都存储在单一文件内,占用内存小,并且支持…...
uniapp 表格,动态表头表格封装渲染
1.接口表格数据: {"headers": [{"label": "实例名","name": "v1","order": 1,"hide": false,"dateTypeValue": null},{"label": "所属科室","name&quo…...
beyond Compare连接 openWrt 和 VsCode
连接步骤总结 1. 新建会话 -> 文件夹比较 2.点击浏览文件夹 3.在弹出页面 配置 ftp 3.1)选中ftp 配置文件 3.2)选中ssh2 3.3)填写我们需要远端连接的主机信息 先点击连接并浏览 得到下方文件夹 弹出无效登录,说明需要密码 我们返回右键刚刚创建的新 …...
量化机器人能否识别市场机会?
量化机器人的设计和应用是为了通过高级算法和大数据分析,精确地识别和把握市场中的交易机会。这些机器人的能力不仅仅局限于执行预定的交易策略,更包括在复杂和快速变化的市场环境中识别利润机会。 首先,量化机器人能够处理和分析大量的市场…...
香橙派AIpro开发板评测:部署yolov5模型实现图像和视频中物体的识别
OrangePi AIpro 作为业界首款基于昇腾深度研发的AI开发板,自发布以来就引起了我的极大关注。其配备的8/20TOPS澎湃算力,堪称目前开发板市场中的顶尖性能,实在令人垂涎三尺。如此强大的板子,当然要亲自体验一番。今天非常荣幸地拿到…...
MongoDB教程(二):mongoDB引用shell
💝💝💝首先,欢迎各位来到我的博客,很高兴能够在这里和您见面!希望您在这里不仅可以有所收获,同时也能感受到一份轻松欢乐的氛围,祝你生活愉快! 文章目录 引言一、MongoD…...
A133 Android10 root修改
1.前言 客户应用需求root相关的权限,我们需要修改系统的权限才可以满足客户需求 2.修改方法 frameworks层:注释掉 diff --git a/frameworks/base/core/jni/com_android_internal_os_Zygote.cpp b/frameworks/base/core/jni/com_android_internal_os_…...
实验场:在几分钟内使用 Bedrock Anthropic Models 和 Elasticsearch 进行 RAG 实验
作者:来自 Elastic Joe McElroy, Aditya Tripathi 我们最近发布了 Elasticsearch Playground,这是一个新的低代码界面,开发人员可以通过 A/B 测试 LLM、调整提示(prompt)和分块数据来迭代和构建生产 RAG 应用程序。今天…...
代理详解之静态代理、动态代理、SpringAOP实现
1、代理介绍 代理是指一个对象A通过持有另一个对象B,可以具有B同样的行为的模式。为了对外开放协议,B往往实现了一个接口,A也会去实现接口。但是B是“真正”实现类,A则比较“虚”,他借用了B的方法去实现接口的方法。A…...
Laravel - laravel-websockets 开发详解
1.我laravel-websockets 的开发环境 Laravel 9.0Laravel WebSockets (最新版)Laravel Vite 2. 安装服务器端包 beyondcode/laravel-websockets 运行以下命令安装laravel-websockets composer require beyondcode/laravel-websockets 安装完后&#…...
vue3 学习笔记04 -- axios的使用及封装
vue3 学习笔记04 – axios的使用及封装 安装 Axios 和 TypeScript 类型定义 npm install axios npm install -D types/axios创建一个 Axios 实例并封装成一个可复用的模块,这样可以在整个应用中轻松地进行 API 请求管理。 在 src 目录下创建一个 services 文件夹&…...
键盘快捷键设置录入
效果图: 代码: import React, {useContext, useEffect, useRef} from react import {message} from "antd"; import lodash from "lodash"; import {StateContext} from ../../index.tsx import {useUpdateEffect} from "ahoo…...
刷题Day49|647. 回文子串、516.最长回文子序列
647. 回文子串 647. 回文子串 - 力扣(LeetCode) 思路:递推公式的含义是[i, j]内的子串是否为回文子串(bolean[][])。一共两种情况:s[i] s[j],i和j相差1以外就得判断中间包含的的字符串是否为回文了&…...
关于transformers库验证时不进入compute_metrics方法的一些坑
生成式任务输入就是标签 transformers在进入compute_metrics前会有一个判断,源码如下: # 版本 transformers4.41.2 # 在trainer.py 的 3842 行 # Metrics! if (self.compute_metrics is not Noneand all_preds is not Noneand all_labels is not Nonea…...
苹果提出RLAIF:轻量级语言模型编写代码
获取本文论文原文PDF,请在公众号【AI论文解读】留言:论文解读 代码生成一直是一个充满挑战的领域。随着大型语言模型(LLM)的出现,我们见证了在自然语言理解和生成方面的显著进步。然而,当涉及到代码生成&a…...
[leetcode] shortest-subarray-with-sum-at-least-k 和至少为 K 的最短子数组
. - 力扣(LeetCode) class Solution { public:int shortestSubarray(vector<int>& nums, int k) {int n nums.size();vector<long> preSumArr(n 1);for (int i 0; i < n; i) {preSumArr[i 1] preSumArr[i] nums[i];}int res n…...
DragGAN交互式图像编辑:基于GAN潜空间优化的点驱动形变技术详解
1. 项目概述:交互式生成对抗网络的直观革命最近在AIGC的圈子里,一个名为“DragGAN”的研究项目火了。它实现的效果非常直观且震撼:你上传一张由生成对抗网络(GAN)生成的图片,比如一只狮子、一辆汽车或一张人…...
快速 AI 迭代仍然需要操作纪律
前言 配套资源:AI 辅助开发检查清单资源包,适合把本文的流程直接落成开发前检查表和复盘模板。 上一篇文章里,我把 AI 工作流拆成了几类任务模式:开发维护、探索学习、反馈确认。这个分类解决的是一个前置问题:在使用 …...
长期使用Taotoken官方折扣活动对项目运营成本的实际影响
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 长期使用Taotoken官方折扣活动对项目运营成本的实际影响 在项目开发与运营中,大模型API调用成本是技术决策者持续关注的…...
Perplexity接入知网文献搜索的5大避坑指南:实测发现92%研究者正在浪费87%检索时间
更多请点击: https://intelliparadigm.com 第一章:Perplexity接入知网文献搜索的底层逻辑与认知重构 Perplexity 作为基于大语言模型的实时问答引擎,其核心能力并非仅依赖于内部参数化知识,而是通过动态检索增强生成(…...
【亲测免费】 ImageNet标签文件及读取脚本:加速您的计算机视觉研究
ImageNet标签文件及读取脚本:加速您的计算机视觉研究 【下载地址】ImageNet标签文件及读取脚本 ImageNet 标签文件及读取脚本 项目地址: https://gitcode.com/open-source-toolkit/56c9e 项目介绍 在计算机视觉领域,ImageNet数据集是图像分类任务…...
智慧树自动刷课插件终极指南:如何3分钟实现免手动学习
智慧树自动刷课插件终极指南:如何3分钟实现免手动学习 【免费下载链接】zhihuishu 智慧树刷课插件,自动播放下一集、1.5倍速度、无声 项目地址: https://gitcode.com/gh_mirrors/zh/zhihuishu 还在为智慧树平台的重复性操作而烦恼吗?智…...
对比直接使用厂商API体验Taotoken在路由与容灾上的差异
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 对比直接使用厂商API体验Taotoken在路由与容灾上的差异 1. 引言:一次意料之外的服务波动 在日常开发与业务运营中&…...
PIC16F驱动WS2812:8位MCU实现无限随机动态灯光算法
1. 项目概述与核心思路 几年前,我在捣鼓一个节日南瓜灯项目时,遇到了一个经典难题:手头只有一片资源极其有限的PIC16F1847微控制器,却想驱动一串WS2812(也就是大家常说的NeoPixel)LED,做出那种看…...
3步深度解决方案:彻底修复Krita AI Diffusion插件IP-Adapter缺失问题
3步深度解决方案:彻底修复Krita AI Diffusion插件IP-Adapter缺失问题 【免费下载链接】krita-ai-diffusion Streamlined interface for generating images with AI in Krita. Inpaint and outpaint with optional text prompt, no tweaking required. 项目地址: h…...
对比直接使用官方API,体验通过Taotoken进行多模型选型与切换的便捷性
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 对比直接使用官方API,体验通过Taotoken进行多模型选型与切换的便捷性 在实际的开发工作中,我们常常需要根据…...
