BGP学习二:BGP通告原则,BGP反射器,BGP路径属性细致讲解,新手小白无负担
目录
一.AS号
二.BGP路由生成
1.network
2.import-route引入
三.BGP通告原则
1.只发布最优且有效的路由
2.从EBGP获取的路由,会发布给所有对等体
3.水平分割原则
4.IBGP学习BGP默认不发送给EBGP,但如果也从IGP学习到了这条路由,就发给EGP
四.BGP路径属性
(1).公认属性
1.公认必遵
1.AS_Path
2.Origin
3.Next_Hop
2.公认任意
1.local preference
2.Atomic_aggregate
(2).可选属性
1.可选过渡
1.community
2.可选非过渡
1.MED
.local preference(本地优先级)是如何离开
五.BGP路由反射器
(1).路由反射器的角色
1.RR
2.client
(2)反射规则
(3)水平分割防反射可能出现的环路
1.originator_ID
2.cluster_list
一.AS号
AS长度是16bit,范围是0-65535
分为公有和私有
公有:1-64511
私有:64512-65534
二.BGP路由生成
BGP是无法发现和计算路由的,他只能从IGP引入路由,有两种方式
1.network
宣告网段,一条一条来,但可靠性高,没有这个网段就无法宣告
2.import-route引入
批量引入IGP的路由,生成聚合
三.BGP通告原则
1.只发布最优且有效的路由
*——有效
>——最优
有效路由是说下一跳必须可达
2.从EBGP获取的路由,会发布给所有对等体
包括IBGP/EBGP,但下一跳不改变直接发

3.水平分割原则
从IBGP获取的路由,不会再发送给其他IBGP对等体
就是说只传一跳,防止形成路由环路

4.IBGP学习BGP默认不发送给EBGP,但如果也从IGP学习到了这条路由,就发给EGP
如果没有原则4,会产生路由黑洞

当R5向10.0.12.1发消息,可以找到R3,但R3和R2建立的是IBGP,没有物理链路,就只能通过R4发送,但此时IGP没有这条路由,R4在路由表查找不到这条路由,只能丢弃,发一个吞一个,就叫路由黑洞。
那么如果有了原则4,只有IGP有这条路由,也就意味着R4有这条路由,才发给另一个EBGP——R5,就不会出现路由黑洞问题。
但这个原则用的不多,华为一般认为IBGP全互联解决路由黑洞比较好。
四.BGP路径属性
我们上一篇了解到,BGP可以根据不同网络需求选择不同路径,选取最优路径,现在我们一起学习有效BGP的路径属性

(1).公认属性
所有BGP可识别
1.公认必遵
每个路由器必识别,在每一个Update信息里
1.AS_Path
前往目标路由器经过的AS列表
作用是防环和路由优选
防环

路由器在学习到一条路由后,在自己的AS_path左侧添加学到路由的AS号,当路由器学到一条路由,在这条路由的AS_path中看到自己的AS号,就不再学习。起到防环作用。
路径优选

AS_Path列表AS数量少(AS_Path短)的路径更优,经过的路由器少
AS——Seqence
有序AS号,默认情况下,就是我们防环和路径优选这种例子
AS_set
无序AS列表,在做链路聚合时,不再加上聚合前的AS号,因为要是想要访问这个网段,就直接找R3就可以了

修改AS_path
Additive:直接在左侧追加AS号
Overwrite:替换AS号
None Overwrite:清空AS列表
2.Origin
标记路由器起源

关于起源名称很容易与路由协议按区域分类搞混,所以这里我们不要管这个起源名称
直接看标识和学习方式。
如果是BGP network方式学习到的,那么这个路由一定在路由表里,不然没有办法宣告,所以他的受信任度是最高的,标识为i
如果是 BGP学习到的,那么标识为e
如果是路由引入学习来的,那么他最不可信,受信任度最低,标识为?
3.Next_Hop
下一跳可不可达
下一跳设置规则
1)设置为BGP邻接关系接口
2)设置为环回地址
3)设置为本地,peer 3.3.3.3 next_hop_local,会自动把下一跳改为自己的本地地址
4)Next_Hop与EBGP是一个网段,不改变下一跳
2.公认任意
有需求则带
1.local preference
本地优先级越高,路径越优
local preference注意事项
1)只在IBGP内有效
2)重新打上本地优先级,发到不同BGP
3)默认为100
local preferenceAS内如何离开AS
2.Atomic_aggregate
原子聚合
聚合后丢失路径属性,需要给下游的对等体警告,并提示聚合点已经聚合设备的AS号
(2).可选属性
不需要被所有了路由器识别
1.可选过渡
BGP不识别但发给其他路由器
1.community
我们一般使用ACL或IP Prefix-list来进行拦截或让通行不同的业务流量,但这样非常麻烦,要一条一条的设置
那么我们使用.community就会快很多
community可以看作是一个标签/标记,TAG,来简化路由策略

2.可选非过渡
BGP不识别就不发给其他路由器
1.MED
可以看作是开销值,默认不携带,并且默认为0
告知其他路由器如何进入本区域
.local preference(本地优先级)是如何离开
MED注意事项
1)缺省情况下,只比较来自同一个相邻AS时比较,不同相邻AS不比较
2)EGP对等体情况下
是network,import_routez学到的,MED就是他的cost
不跨区域传播
五.BGP路由反射器
水平分割使IGBP获取的路由只能发一跳,避免产生路由环路,但这样可能会有路由黑洞,华为一般认为IBGP全互联解决这个问题,但这样会维持太大的路由表项,就有了路由反射器来解决这个问题。

(1).路由反射器的角色
1.RR
路由反射器
2.client
RR客户端
(2)反射规则
1.RR从非客户端学习到一条IBGP,反射给所有的客户端
2.RR从客户端学习到一条IBGP,反射给除此客户端的所有的客户端,以及所有非客户端
3.从EBGP学习到,反射给所有BGP邻居
(3)水平分割防反射可能出现的环路
RR可以说是打破了水平分割原则,那么就有可能出现环路

那么我们又要打破RR的环路
1.originator_ID
通告该路由的BGP路由器Router ID
如果AS内有多个RR,originator_ID由第一个RR创建
如果一条路由器收到的路由信息中originator_ID与自己的Router ID相同,那么他就忽视这条路由更新,上图第4步,R1就直接不接收这条BGP路由和更新,就不会有环路
2.cluster_list
反射簇列表:一个 RR和他的所有client
.cluster_ID默认是这个RR的Router ID
当一个路由信息被反射后,他就把发射他的RR的cluster_ID加到cluster_list中。当一个RR收到带
.cluster_list的路由信息时,有他自己的cluster_ID,就忽视这条路由更新。
相关文章:
BGP学习二:BGP通告原则,BGP反射器,BGP路径属性细致讲解,新手小白无负担
目录 一.AS号 二.BGP路由生成 1.network 2.import-route引入 三.BGP通告原则 1.只发布最优且有效的路由 2.从EBGP获取的路由,会发布给所有对等体 3.水平分割原则 4.IBGP学习BGP默认不发送给EBGP,但如果也从IGP学习到了这条路由,就发…...
Docker学习(带图详细)
一、安装docker 参考官方文档:https://docs.docker.com/engine/install/centos/ 查看系统版本 [rootlocalhost ~]# cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core) [rootlocalhost ~]# [rootlocalhost ~]# uname -a Linux localhost.localdomai…...
RabbitMQ 如何使用延迟队列
RabbitMQ 如何使用延迟队列 目录 前置条件场景描述RabbitMQ 延迟队列机制实现步骤 1. 安装 RabbitMQ 延迟队列插件2. 创建延迟队列和交换机3. 发布延迟消息4. 消费延迟消息 示例代码 1. 延迟队列配置2. 发布消息的 Producer 代码3. 消费消息的 Consumer 代码 注意事项 前置条…...
【C++】栈和队列
目录 前言 一、stack 1. 栈的定义 2. 成员函数 二、queue 1. 队列的定义 2. 成员函数 三、priority_queue 1. 优先队列的定义 2. 成员函数 前言 栈和队列是STL中很重要的两个容器,栈的特点是先进后出;队列的特点是先进先出。还有优先队列&…...
常用的预编码算法学习
一、概况 预编码算法的常用实现方式有以下几种: 1. 间隔预编码(Interval Pre-coding):该算法将原始数据分成若干个间隔,然后对每个间隔内的数据进行编码。间隔的长度可以根据具体情况进行选择,常见的间隔长度有固定长度和可变长度两种方式。 2. 迭代预编码(Iterative…...
人才培养计划大纲
构建全面而高效的人才培养规划 文章大纲: 引言 人才培养的重要性当前人才培养面临的挑战文章目的与结构人才培养规划的基本概念 定义与内涵人才培养规划与企业战略的关系人才培养规划的基本原则人才培养规划的现状分析 当前人才培养规划的实践情况存在的问题与不足…...
多语言环境下的正则表达式实战:校验整数、小数
在软件开发中,正则表达式是验证用户输入数据格式的强大工具,特别是在处理表单验证时。本文将通过JavaScript、Java、Python、C、Rust、Go、C六种编程语言展示如何使用正则表达式来校验输入是否为整数或小数,特别强调小数点后最多保留两位的场…...
过拟合和欠拟合的学习
1.什么拟合 就是说这个曲线能不能很好地描述某些样本数据,并且拥有较好的泛化能力。 2.什么是过拟合 过拟合就是曲线太过于贴切训练数据的特征了,在训练集上表现得非常优秀,近乎完美的预测/区分了所有得数据,但是在新的测试集上…...
中间件的使用
中间件是全局使用 工厂函数定义中间件 middleware.py # 工厂函数的中间件 def simple_middleware(get_response):def middleware(request):print("在视图函数处理之前执行、、、、、")response get_response(request)print("在视图函数处理之后执行。。。。…...
阿里云OSS权限开通步骤及最佳实践
在阿里云云计算平台中,对象存储服务(OSS)是一种高度可扩展的云存储服务,提供了安全、可靠、低成本的数据存储解决方案。在使用OSS时,正确配置权限是至关重要的,以确保数据的安全性和访问控制。本文将介绍阿…...
【Python贪吃蛇】:编码技巧与游戏设计的完美结合
文章目录 🔥一、运行效果💥二、游戏教程✈1. 导入模块❤️2. 初始化游戏元素☔3. 改变蛇移动的方向👊4. 绘制方块🚀5. 检查蛇头是否在游戏区域内🌈6. 定义蛇的移动函数🎬7. 绑定键盘事件 ⭐三、完整代码 &a…...
2024.5.19 机器学习周报
引言 Abstract 文献阅读 1、题目 X-HRNET: TOWARDS LIGHTWEIGHT HUMAN POSE ESTIMATION WITH SPATIALLY UNIDIMENSIONAL SELF-ATTENTION 2、引言 高分辨率表示是人体姿态估计实现高性能所必需的,随之而来的问题是高计算复杂度。特别地,主要的姿态估…...
母亲节祝福html源码示例
创建一个完整的HTML页面,我可以为您提供一个简单的HTML模板,其中包含一些示例性的祝福语,并添加一些注释以帮助您理解如何扩展内容。 <!DOCTYPE html> <html lang"zh-CN"><head><meta charset"UTF-8&qu…...
微信小程序开发中的权限管理与用户身份验证:守护数据安全与用户体验
微信小程序开发中的权限管理与用户身份验证:守护数据安全与用户体验 引言 在微信小程序开发中,权限管理和用户身份验证是确保数据安全、保护用户隐私以及提供个性化服务的关键环节。本文将深入探讨微信小程序中如何实现权限管理和用户身份验证…...
Python3 笔记:二进制的转换
十进制是逢十进一,二进制就是逢二进一。 十进制里最大的数字是9,二进制里最大的数字是1。 11010010001000010000010000001000000010^0110^11010^210010^3100010^41000010^510000010^6100000010^7100000002^012^122^242^382^4162^5322^6642^7128 1、十进…...
代码审计-PHP模型开发篇动态调试反序列化变量覆盖TP框架原生POP链
知识点 1、PHP审计-动态调试-变量覆盖 2、PHP审计-动态调试-原生反序列化 3、PHP审计-动态调试-框架反序列化PHP常见漏洞关键字 SQL注入: select insert update delete mysql_query mysqli等 文件上传: $_FILES,type"file"&…...
前端动态旋转地球背景
效果图 贴下源码 <template><div class"map-bg"><div class"canvas" id"canvs"></div><canvas class"canvasxk" id"canv"></canvas></div> </template><script setup …...
MySQL中的子查询
子查询,在一个查询语句中又出现了查询语句 子查询可以出现在from和where后面 from 表子查询(结果一般为多行多列)把查询结果继续当一张表对待 where 标量子查询(结果集只有一行一列)查询身高最高的学生,查询到一个最高身高 列子查询(结果集只有一行多列) 对上表进行如下操作 …...
Unity打开安卓设备不同的设置面板
1,打开安卓设备不同的设置面板,我还贴心的把Android官网的链接放下面了 2,使用也很方便:unity按钮事件上拖这个脚本,注册MyOpenAndroidSettings方法,参数 填 和枚举值相应的数字 // 功能:打开…...
低空经济+无人机:低空物资运输技术详解
随着科技的飞速发展和航空产业的日益壮大,低空经济已成为全球经济的重要组成部分。无人机作为低空经济的重要载体,其在低空物资运输领域的应用逐渐凸显,为物流、救援等多个领域带来了革命性的变革。 一、低空经济概述 低空经济是指在垂直高度…...
一文说清:穿透式监管体系、穿透式监管平台、穿透式监管模型
最近这段时间,和不少央国企的财务、风控负责人交流,话题总绕不开穿透式监管。大家共识很强:穿透式监管必须做,也不得不做。穿透式监管建设本身,横跨了三个专业壁垒很高的领域:公司治理与风险管理、企业数字…...
COLMAP实战:跳过特征提取,直接用已知位姿完成三角测量与稠密重建
COLMAP高效重建实战:基于已知位姿的三角测量与稠密重建加速方案 三维重建技术正在机器人导航、AR/VR内容生成等领域快速普及,但传统流程中特征提取与匹配环节往往消耗超过70%的计算时间。当相机位姿已通过SLAM或其他传感器获取时,如何跳过这些…...
2025届毕业生推荐的AI辅助论文网站解析与推荐
Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 当下,学术研究越发受到人们的重视,在此种背景状况之下,论…...
基于LangChain构建AI智能体:从核心架构到生产部署实战
1. 项目概述与核心价值最近在GitHub上看到一个名为“GenAI_Agents”的项目,作者是NirDiamant。这个项目名本身就很有意思,它直指当前AI领域最火热、也最具想象力的方向之一:智能体(Agents)。简单来说,这个项…...
JavaScript 数据可视化:从原理到实战(附代码)
尽管 Python 的 Matplotlib 和 Seaborn 在数据科学领域占据主导,但JavaScript 可视化 是构建交互式、可嵌入网页的应用级图表和仪表盘的唯一标准。 它允许开发者创建动态、可响应的可视化效果,并直接部署于浏览器环境,这是静态图片无法比拟的…...
使用Taotoken后API调用延迟与稳定性体感观察报告
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 使用Taotoken后API调用延迟与稳定性体感观察报告 1. 引言:从直接对接模型到使用聚合平台 在开发基于大语言模型的应用…...
机器学习中的视觉与自然语言处理
一两个月前看了李飞飞老师的自传,看第一页就觉得 这是对A国的表白。当然也会遗憾,希望她小时候遇到的老师是更好的老师,她家周围遇到的人是更好的人。这是概率问题,在过去可能不够好今天会更好。 重点是当我看到她在思考智能的起源…...
Claude新政,抛弃最忠实的Agent用户
Anthropic 过河拆桥,终将遭反噬。 Anthropic 将 Agent SDK 用量从订阅中剥离,按 API 零售价另给固定额度。重度用户的可用量缩水近十倍。同一周,OpenAI 向企业用户推出 Codex 两个月免费迁移。ASI 决赛圈的第一场定价战,开打了。 …...
别再死记硬背了!图解贪心算法:用‘小船过河’和‘区间覆盖’带你掌握核心思想
贪心算法实战:从生活场景到代码实现的思维跃迁 想象一下周末野餐时分配三明治的场景:你有一堆大小不一的三明治和一群饥饿的朋友。为了让最多人吃到食物,你会优先把小块三明治分给食量小的朋友——这种看似简单的决策背后,隐藏着计…...
TrollInstallerX终极指南:3分钟完成iOS安装工具的零基础教程
TrollInstallerX终极指南:3分钟完成iOS安装工具的零基础教程 【免费下载链接】TrollInstallerX A TrollStore installer for iOS 14.0 - 16.6.1 项目地址: https://gitcode.com/gh_mirrors/tr/TrollInstallerX TrollInstallerX是一款专为iOS设备设计的智能越…...
