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方法,参数 填 和枚举值相应的数字 // 功能:打开…...

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

全场景智能终端RK3288主板在智能垃圾回收项目的应用,支持鸿蒙,支持全国产化
全场景智能终端主板AIoT-3588A推出的智能化垃圾回收项目,旨在解决城市化进程中日益突出的垃圾处理问题。智能垃圾分类箱具备触屏操作、自动称重、分类投放以及电子语音播报提示等多项功能,居民能够经过分类积分卡、手机扫码、人脸识别等多种途径进行投放…...

QT设计模式:建造者模式
基本概念 建造者模式是一种创建型设计模式,它允许你创建复杂对象的过程独立于该对象的组成部分以及它们的组装方式。这样可以构造出不同的对象表示。 在建造者模式中,将创建对象的过程和对象的表示分离,通过一步步的构建,可以得…...

个人微信api
简要描述: 退出群聊 请求URL: http://域名地址/quitChatRoom 请求方式: POST 请求头Headers: Content-Type:application/json Authorization:login接口返回 参数: 参数名 必选 类型 …...

使用Ownips工具获取海外电商网站wish商品价格
一、引言 在数字化浪潮汹涌的今天,互联网已经成为我们生活、工作中不可或缺的一部分。而在这个虚拟的世界里,每一个设备都需要一个独特的标识来确保信息的准确传递,这个标识就是IP地址。而在众多IP地址中,静态IP因其独特的稳定性…...

【FFmpeg】调用ffmpeg进行H264软解
调用FFmpeg库实现264软件解码 1. FFmpeg的编译2. 调用FFmpeg实现H264软解2.1 基本框架2.2 代码实现2.3 测试结果 3. 分析工具3.1 码流分析3.2 YUV分析 示例工程 【FFmpeg】调用FFmpeg库实现264软编 1. FFmpeg的编译 FFmpeg在Windows下的编译参考:http://t.csdni…...

网络安全防护:抵御DDoS和CC攻击
在当今数字化时代,网络安全已成为任何组织或个人不可忽视的重要议题。DDoS(分布式拒绝服务)攻击和CC(命令与控制)攻击作为两种最为常见的网络攻击方式,给网络运营者和用户带来了巨大的威胁和影响。本文将介…...

初次查询大数据信用报告,需要注意哪些问题?
随着大数据的普及,基于大数据技术的大数据信用也变得越来越重要,比如在申贷之前,不少地方都会查询申贷人的大数据信用,作为风险控制的必要手段,那对于初次查询大数据信用报告的人来说,需要注意哪些问题呢?…...

最短路径[floyd算法]-----视频讲解+代码实现
求最短路径,一般有三种方法: 单源最短路径--Dijkstra算法 此算法只能求不带负权值的有向无环图 单源最短路径--Bellman-Ford算法(少考) 此算法优点在于:可以求带权值的右向无环图 但只是缺点明显,时间复杂度…...

图像/视频恢复和增强CodeFormer
github:https://github.com/sczhou/CodeFormer 尝试增强旧照片/修复人工智能艺术 面部修复 面部色彩增强和恢复 脸部修复...

WPF中ObservableCollection
在WPF(Windows Presentation Foundation)中,ObservableCollection<T> 是一个非常重要的类,它用于实现动态数据绑定功能。这个类位于 System.Collections.ObjectModel 命名空间中,是 ICollection<T>, IList…...