当前位置: 首页 > news >正文

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页面&#xff0c;我可以为您提供一个简单的HTML模板&#xff0c;其中包含一些示例性的祝福语&#xff0c;并添加一些注释以帮助您理解如何扩展内容。 <!DOCTYPE html> <html lang"zh-CN"><head><meta charset"UTF-8&qu…...

微信小程序开发中的权限管理与用户身份验证:守护数据安全与用户体验

微信小程序开发中的权限管理与用户身份验证&#xff1a;守护数据安全与用户体验 引言 在微信小程序开发中&#xff0c;权限管理和用户身份验证是确保数据安全、保护用户隐私以及提供个性化服务的关键环节。本文将深入探讨微信小程序中如何实现权限管理和用户身份验证&#xf…...

Python3 笔记:二进制的转换

十进制是逢十进一&#xff0c;二进制就是逢二进一。 十进制里最大的数字是9&#xff0c;二进制里最大的数字是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注入&#xff1a; select insert update delete mysql_query mysqli等 文件上传&#xff1a; $_FILES&#xff0c;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&#xff0c;打开安卓设备不同的设置面板&#xff0c;我还贴心的把Android官网的链接放下面了 2&#xff0c;使用也很方便&#xff1a;unity按钮事件上拖这个脚本&#xff0c;注册MyOpenAndroidSettings方法&#xff0c;参数 填 和枚举值相应的数字 // 功能&#xff1a;打开…...

低空经济+无人机:低空物资运输技术详解

随着科技的飞速发展和航空产业的日益壮大&#xff0c;低空经济已成为全球经济的重要组成部分。无人机作为低空经济的重要载体&#xff0c;其在低空物资运输领域的应用逐渐凸显&#xff0c;为物流、救援等多个领域带来了革命性的变革。 一、低空经济概述 低空经济是指在垂直高度…...

KubeSphere 容器平台高可用:环境搭建与可视化操作指南

Linux_k8s篇 欢迎来到Linux的世界&#xff0c;看笔记好好学多敲多打&#xff0c;每个人都是大神&#xff01; 题目&#xff1a;KubeSphere 容器平台高可用&#xff1a;环境搭建与可视化操作指南 版本号: 1.0,0 作者: 老王要学习 日期: 2025.06.05 适用环境: Ubuntu22 文档说…...

Linux 文件类型,目录与路径,文件与目录管理

文件类型 后面的字符表示文件类型标志 普通文件&#xff1a;-&#xff08;纯文本文件&#xff0c;二进制文件&#xff0c;数据格式文件&#xff09; 如文本文件、图片、程序文件等。 目录文件&#xff1a;d&#xff08;directory&#xff09; 用来存放其他文件或子目录。 设备…...

C++:std::is_convertible

C++标志库中提供is_convertible,可以测试一种类型是否可以转换为另一只类型: template <class From, class To> struct is_convertible; 使用举例: #include <iostream> #include <string>using namespace std;struct A { }; struct B : A { };int main…...

基于ASP.NET+ SQL Server实现(Web)医院信息管理系统

医院信息管理系统 1. 课程设计内容 在 visual studio 2017 平台上&#xff0c;开发一个“医院信息管理系统”Web 程序。 2. 课程设计目的 综合运用 c#.net 知识&#xff0c;在 vs 2017 平台上&#xff0c;进行 ASP.NET 应用程序和简易网站的开发&#xff1b;初步熟悉开发一…...

PPT|230页| 制造集团企业供应链端到端的数字化解决方案:从需求到结算的全链路业务闭环构建

制造业采购供应链管理是企业运营的核心环节&#xff0c;供应链协同管理在供应链上下游企业之间建立紧密的合作关系&#xff0c;通过信息共享、资源整合、业务协同等方式&#xff0c;实现供应链的全面管理和优化&#xff0c;提高供应链的效率和透明度&#xff0c;降低供应链的成…...

相机从app启动流程

一、流程框架图 二、具体流程分析 1、得到cameralist和对应的静态信息 目录如下: 重点代码分析: 启动相机前,先要通过getCameraIdList获取camera的个数以及id,然后可以通过getCameraCharacteristics获取对应id camera的capabilities(静态信息)进行一些openCamera前的…...

10-Oracle 23 ai Vector Search 概述和参数

一、Oracle AI Vector Search 概述 企业和个人都在尝试各种AI&#xff0c;使用客户端或是内部自己搭建集成大模型的终端&#xff0c;加速与大型语言模型&#xff08;LLM&#xff09;的结合&#xff0c;同时使用检索增强生成&#xff08;Retrieval Augmented Generation &#…...

html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码

目录 一、&#x1f468;‍&#x1f393;网站题目 二、✍️网站描述 三、&#x1f4da;网站介绍 四、&#x1f310;网站效果 五、&#x1fa93; 代码实现 &#x1f9f1;HTML 六、&#x1f947; 如何让学习不再盲目 七、&#x1f381;更多干货 一、&#x1f468;‍&#x1f…...

基于 TAPD 进行项目管理

起因 自己写了个小工具&#xff0c;仓库用的Github。之前在用markdown进行需求管理&#xff0c;现在随着功能的增加&#xff0c;感觉有点难以管理了&#xff0c;所以用TAPD这个工具进行需求、Bug管理。 操作流程 注册 TAPD&#xff0c;需要提供一个企业名新建一个项目&#…...

解读《网络安全法》最新修订,把握网络安全新趋势

《网络安全法》自2017年施行以来&#xff0c;在维护网络空间安全方面发挥了重要作用。但随着网络环境的日益复杂&#xff0c;网络攻击、数据泄露等事件频发&#xff0c;现行法律已难以完全适应新的风险挑战。 2025年3月28日&#xff0c;国家网信办会同相关部门起草了《网络安全…...