BGP扩展知识总结
一、BGP的宣告问题
- 在BGP协议中每台运行BGP的设备上,宣告本地直连路由
- 在BGP协议中运行BGP协议的设备,来宣告通过IGP学习到的未运行BGP协议设备产生的路由;(常见)
在BGP协议中宣告本地路由表中路由条目时,将携带本地到达这些目标的IGP度量值;传递到BGP邻居处;其他AS设备便于选择离目标最近的EBGP邻居;
若一台BGP设备,通过IBGP邻居学习到一条路由,存在度量值;同时本地需要将这些路由传输给本地其他的EBGP邻居时,只能将度量取消,按0进行传输;导致选路参考值不优;故,建议在一个AS中若需要BGP设备宣告某条路由,那么该AS内所有运行BGP协议的设备均宣告;--便于其他AS的BGP设备判断自己的EBGP邻居,哪台离目标更近;
(一台设备宣告,会将自己的度量带着,其他没有宣告的设备会通过BGP学到第一台设备宣告的路由,并且将度量洗为0,会导致选路不佳)
二、BGP的自动汇总问题
当代的路由器设备,默认就关闭了BGP的自动汇总功能;
自动汇总规则与正常BGP协议邻居共享的路由,或在BGP协议通过network宣告命令产生的路由条目无关;
仅针对从IGP重发布到BGP的路由条目;
BGP中的宣告可以理解为是逐条的重发布IGP路由到BGP;
BGP中中将IGP重发布到BGP,可以理解为是批量的将IGP路由宣告到BGP 协议;
但两种操作产生的路由条目其起源属性不同,宣告优于重发布;
在开启了自动汇总的前提下,重发布进入的路由将不携带子网掩码,按主类掩码进入;不携带本地到达目标的度量值,度量为0;若关闭自动汇总,进入路由将正常携带掩码,且携带度量;此时和宣告路由仅起源属性不同;故建议不要开启自动汇总;
既然在一个AS中建议所有运行BGP协议的设备均宣告相同路由,那么若进行重发布配置,也建议所有运行BGP协议的设备均进行重发布;
三、BGP的认证 ---邻居间进行身份核实的方法;
[r1-bgp]peer 12.1.1.2 password cipher cisco123
邻居间需要秘钥一致,传递出去的秘钥必然被加密
四、BGP的聚合(汇总)
1.不是BGP的标准汇总思路,而是利用了BGP的宣告的特征来简化了汇总配置量;
宣告特征—本地路由表中任何方式产生的路由均可被BGP宣告;
不逐条宣告明细路由,仅在更新源BGP设备上配置一条到达聚合地址的空接口防环路由,然后将其宣告到BGP协议中;
在实际工程中,由于AS之间一定存在大量的EBGP邻居关系;因此仅汇总不一定能做到优选路径,必须在传递聚合条目的同时,再传递部分的明细路由来进行选路控制;
以上的汇总配置完成后,若还需要同时传输部分明细路由,再逐一宣告需要传递的明细路由即可;
2.标准的BGP聚合配置
- 先逐条宣告所有的明细路由
- 再在更新源路由上进行聚合配置,自动产生空接口防环路由
[r5-bgp]aggregate 100.100.0.0 22 此时聚合与所有明细条目均传递[r5-bgp]aggregate 100.100.0.0 22 detail-suppressed 仅传递聚合条目,所有明细路由被抑制
若需要在传递聚合条目的同时,再传递部分的明细路由;需要进行路径传递干涉策略;
五、路由传递干涉策略
1.抑制列表 – 先让设备将所有路由传递出去,再调用抑制策略(只能在汇总的时候才能用)
[r5]ip ip-prefix a permit 100.100.1.0 24 抓流量[r5]route-policy a permit node 10[r5-route-policy]if-match ip-prefix a 匹配[r5-route-policy]q[r5]bgp 3[r5-bgp]aggregate 100.100.0.0 22 suppress-policy a被抑制调用时,表中允许的流量最终反而被抑制传输
2.Route-map 在BGP中将route-map当分发列表用
[r5]ip ip-prefix b permit 100.100.1.0 24 [r5]route-policy b deny node 10[r5-route-policy]if-match ip-prefix b[r5-route-policy]q[r5]route-policy b permit node 20 空表允许所有[r5-route-policy]q[r5]bgp 3[r5-bgp]peer 4.4.4.4 route-policy b ? 在邻居间直接调用export Specify export policy 控制层面的出项import Specify import policy 控制层面的入向[r5-bgp]peer 4.4.4.4 route-policy b export
3.分发列表
[r5]ip ip-prefix c deny 100.100.1.0 24[r5]ip ip-prefix c permit 0.0.0.0 0 less-equal 32 允许所有[r5]bgp 3[r5-bgp]filter-policy ip-prefix c export(控制层面方向) 所有接口都会执行这个策略,不能精确
4.前缀列表 – BGP协议中可以直接将前缀列表作为分发列表调用(常用)
[r5]ip ip-prefix d deny 100.100.1.0 24[r5]ip ip-prefix d permit 0.0.0.0 0 less-equal 32[r5]bgp 3[r5-bgp]peer 4.4.4.4 ip-prefix d export
六、有条件的打破IBGP水平分割
IBGP水平分割----AS-BY-AS,一个条目在一个AS中传递属性不变
在一个AS中一台设备运行了BGP协议,那么正常应该都连接了其他的AS,存在EBGP邻居关系;又由于IBGP的水平分割规则,导致从外部学习到的路由传递给本地AS时,需要和本AS中所有运行BGP协议的设备逐一建立IBGP邻居关系;----两两间均为IBGP邻居关系,建立数量成指数上升;
所谓有条件的打破,是指在保障无环的前提下消除IBGP水平分割机制;--AS-BY-AY
1.路由反射器
角色:RR反射器 客户端 非客户端 只有RR才能决定该不该反射
无论客户端还是非客户端都必须是RR的IBGP邻居; 由RR作为中心点与多个客户端、非客户端构成一个簇(组);在一个簇内存在一台RR和至少一台客户端;也可以一台RR和多个客户端、多个非客户端;或者一个RR与多个客户端,没有非客户端;
反射规则:不优路由不能被传递,自然也不能被反射;
- RR从一个EBGP邻居处学习到的路由,可以传输给客户端、非客户端,已经本地的其他EBGP邻居;
- RR从一个客户端学习到的路由,可以传递给本地其他的客户端、非客户端、其他的EBGP邻居;
- RR从一个非客户端学习到的路由,可以传递给本地的其他客户端、EBGP邻居;不能传递给其他的非客户端;(非非不传)
[r3-bgp]peer 2.2.2.2 reflect-client 邻居2.2.2.2成为本地的客户端,同时本地成为RR
2.联邦
将一个大AS,逻辑的分为多个小AS(联邦);对外依然遵循大AS号传递规则;
但小AS间为联邦内的EBGP邻居关系,可以像EBGP关系一样传递路由,但默认不对属性进行修改;
联邦内的EBGP关系,传递的路由其属性遵循IGBP关系;传递性遵循EBGP关系;
- 所有操作基于小AS号进行;
- AS内所有设备需要定义自己所在的大AS号
- 小AS间的BGP设备需要告知对端的小AS号
[r3]bgp 64512[r3-bgp]router-id 3.3.3.3[r3-bgp]confederation id 2 申明本地的大AS号[r3-bgp]confederation peer-as 64513 告知本地直连的其他小AS号,若没有直连到其他小AS不用配置[r3-bgp]peer 2.2.2.2 as-number 64512[r3-bgp]peer 2.2.2.2 connect-interface LoopBack 0[r3-bgp]peer 4.4.4.4 as-number 64513[r3-bgp]peer 4.4.4.4 connect-interface LoopBack 0[r3-bgp]peer 4.4.4.4 ebgp-max-hop 2
注:在实际工程中,反射器与联邦技术协同工作在一个网络拓扑中;
[r2]bgp 64512
[r2-bgp]peer 172.16.1.3 next-hop-local 该命令表面上意思为本地将路由传递给邻居172.16.1.3时,修改BGP条目中下一跳地址为本地R2的ip地址;
但实际仅针对R2从本地的EBGP邻居学习到的路由传递给172.16.1.3才修改;本地从其他IBGP邻居处学习到的所有路由再传递给172.16.1.3这个IBGP邻居时不修改下一跳地址;
意义在于,IBGP邻居间传递路由在一个AS内部,若贸然修改属性,极易出现环回--维持AS-BY-AS特性
七、BGP在MA网络中下一跳问题:
- 图中1、2、3在一个MA网段,但不在同一AS;R2和R3通过物理接口建立邻居关系
正常R1从R2学习到的R4的路由,下一跳自动显示为R3(最佳路径),若用环回建邻,下一条为正常R2
原理:
- R1/2/3必须使用MA网段的物理接口建立邻居关系
- ICMP重定向开启(默认开启) --- 一台路由器在转发一个流量时,发现流量在本地的入口和查询完路由表的出口为同一接口时,将告知上一跳设备本地的下一跳地址;帮助上一跳设备找到最佳的下一跳地址;
在BGP中仅查看某个邻居发送或接收到BGP路由
[r1]display bgp routing-table peer 10.1.1.2 received-routes
仅查看本地从邻居10.1.1.2接收到BGP路由
[r1]display bgp routing-table peer 10.1.1.2 advertised-routes
仅查看本地发送给邻居10.1.1.2的BGP路由
相关文章:

BGP扩展知识总结
一、BGP的宣告问题 在BGP协议中每台运行BGP的设备上,宣告本地直连路由在BGP协议中运行BGP协议的设备,来宣告通过IGP学习到的未运行BGP协议设备产生的路由;(常见) 在BGP协议中宣告本地路由表中路由条目时,将…...
华为OD-C卷-按身高和体重排队[100分]
题目描述 某学校举行运动会,学生们按编号(1、2、3…n)进行标识,现需要按照身高由低到高排列,对身高相同的人,按体重由轻到重排列;对于身高体重都相同的人,维持原有的编号顺序关系。请输出排列后的学生编号…...

云原生(八)、Kubernetes基础(一)
K8S 基础 # 获取登录令牌 kubectl create token admin --namespace kubernetes-dashboard1、 NameSpace Kubernetes 启动时会创建四个初始名字空间 default:Kubernetes 包含这个名字空间,以便于你无需创建新的名字空间即可开始使用新集群。 kube-node-lease: 该…...

Linux 系统解压缩文件
Linux系统,可以使用unzip命令来解压zip文件 方法如下 1. 打开终端,在命令行中输入以下命令来安装unzip: sudo apt-get install unzip 1 2. 假设你想要将zip文件解压缩到名为"target_dir"的目录中,在终端中切换到目标路…...

linux如何使 CPU使用率保持在指定百分比?
目录 方法1:(固定在100%) 方法2:(可以指定0~100%) 方法3:使用ChaosBlade工具(0~100%) 方法1:(固定在100%) for i in seq 1 $(cat /pro…...
LLMs之Morphic:Morphic(一款具有生成式用户界面的人工智能答案引擎)的简介、安装、使用方法之详细攻略
LLMs之Morphic:Morphic(一款具有生成式用户界面的人工智能答案引擎)的简介、安装、使用方法之详细攻略 目录 Morphic的简介 1、技术栈 Morphic的安装和使用方法 1、克隆仓库 2、安装依赖 3、填写密钥 4、本地运行应用 部署 Morphic的简介 2024年4月初发布ÿ…...

[react] useState的一些小细节
1.无限循环 因为setState修改是异步的,加上会触发函数重新渲染, 如果代码长这样 一秒再修改,然后重新触发setTImeout, 然后再触发,重复触发循环 如果这样呢 还是会,因为你执行又会重新渲染 2.异步修改数据 为什么修改多次还是跟不上呢? 函数传参解决 因为是异步修改 ,所以…...
蓝桥杯【第15届省赛】Python B组
这题目难度对比历届是相当炸裂的简单了…… A:穿越时空之门 【问题描述】 随着 2024 年的钟声回荡,传说中的时空之门再次敞开。这扇门是一条神秘的通道,它连接着二进制和四进制两个不同的数码领域,等待着勇者们的探索。 在二进制…...

CSS aspect-ratio属性设置元素宽高比
aspect-ratio 是CSS的一个属性,用于设置元素的期望宽高比。它设置确保元素保持特定的比例,不受其内容或容器大小的影响。 语法: aspect-ratio: <ratio>;其中 <ratio> 是一个由斜杠(/)分隔的两个数字&…...
Jones矩阵符号运算
文章目录 Jones向量Jones矩阵 有关Jones矩阵、Jones向量的基本原理,可参考这个: 通过Python理解Jones矩阵,本文主要介绍sympy中提供的有关偏振光学的符号计算工具 Jones向量 Jones向量是描述光线偏振状态的重要工具,例如一个偏振…...

解决 App 自动化测试的常见痛点!
App 自动化测试中有些常见痛点问题,如果框架不能很好的处理,就可能出现元素定位超时找不到的情况,自动化也就被打断终止了。很容易打消做自动化的热情,导致从入门到放弃。比如下面的两个问题: 一是 App 启动加载时间较…...
2016NOIP普及组真题 1. 买铅笔
线上OJ: 一本通:http://ybt.ssoier.cn:8088/problem_show.php?pid1973 核心思想: 向上取整的代码 (m (n-1))/n 。(本题考点与2023年J组的第一和第二题一样) 比如需要买31支笔,每包30支,则需要…...

机器学习—数据集(二)
1可用数据集 公司内部 eg:百度 数据接口 花钱 数据集 学习阶段可用的数据集: sklearn:数据量小,方便学习kaggle:80万科学数据,真实数据,数据量大UCI:收录了360个数据集,覆盖科学、生活、经济等…...

华为S5735S核心交换配置实例
以下脚本实现创建vlan2,3,IP划分,DHCP启用,接口划分,ssh,telnet,http,远程登录启用 默认用户创建admin/admin123提示首次登录需要更改用户密码S5735产品手册更多功能配置,移步官网参考手册配置 system-viewsysname t…...

Mysql主从复制安装配置
mysql主从复制安装配置 1、基础设置准备 #操作系统: centos6.5 #mysql版本: 5.7 #两台虚拟机: node1:192.168.85.111(主) node2:192.168.85.112(从)2、安装mysql数据库 #详细安装和卸载的步骤…...

【刷题】图论——最小生成树:Prim、Kruskal【模板】
假设有n个点m条边。 Prim适用于邻接矩阵存的稠密图,时间复杂度是 O ( n 2 ) O(n^2) O(n2),可用堆优化成 O ( n l o g n ) O(nlogn) O(nlogn)。 Kruskal适用于稀疏图,n个点m条边,时间复杂度是 m l o g ( m ) mlog(m) mlog(m)。 Pr…...

使用uniapp实现小程序获取wifi并连接
Wi-Fi功能模块 App平台由 uni ext api 实现,需下载插件:uni-WiFi 链接:https://ext.dcloud.net.cn/plugin?id10337 uni ext api 需 HBuilderX 3.6.8 iOS平台获取Wi-Fi信息需要开启“Access WiFi information”能力登录苹果开发者网站&…...
回忆杀之手搓当年搓过的Transformer
整体代码 import mathimport paddle import paddle.nn as nn import paddle.nn.functional as Fclass MaskMultiHeadAttention(nn.Layer):def __init__(self, hidden_size, num_heads):super(MaskMultiHeadAttention, self).__init__()assert hidden_size % num_heads 0, &qu…...

【AR】使用深度API实现虚实遮挡
遮挡效果 本段描述摘自 https://developers.google.cn/ar/develop/depth 遮挡是深度API的应用之一。 遮挡(即准确渲染虚拟物体在现实物体后面)对于沉浸式 AR 体验至关重要。 参考下图,假设场景中有一个Andy,用户可能需要放置在包含…...
python-pytorch实现skip-gram 0.5.001
python-pytorch实现skip-gram 0.5.000 数据加载、切词准备训练数据准备模型和参数训练保存模型加载模型简单预测获取词向量画一个词向量的分布图使用词向量计算相似度参考数据加载、切词 按照链接https://blog.csdn.net/m0_60688978/article/details/137538274操作后,可以获得…...

Xshell远程连接Kali(默认 | 私钥)Note版
前言:xshell远程连接,私钥连接和常规默认连接 任务一 开启ssh服务 service ssh status //查看ssh服务状态 service ssh start //开启ssh服务 update-rc.d ssh enable //开启自启动ssh服务 任务二 修改配置文件 vi /etc/ssh/ssh_config //第一…...
【Java学习笔记】Arrays类
Arrays 类 1. 导入包:import java.util.Arrays 2. 常用方法一览表 方法描述Arrays.toString()返回数组的字符串形式Arrays.sort()排序(自然排序和定制排序)Arrays.binarySearch()通过二分搜索法进行查找(前提:数组是…...

蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练
前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1):从基础到实战的深度解析-CSDN博客,但实际面试中,企业更关注候选人对复杂场景的应对能力(如多设备并发扫描、低功耗与高发现率的平衡)和前沿技术的…...
vue3 字体颜色设置的多种方式
在Vue 3中设置字体颜色可以通过多种方式实现,这取决于你是想在组件内部直接设置,还是在CSS/SCSS/LESS等样式文件中定义。以下是几种常见的方法: 1. 内联样式 你可以直接在模板中使用style绑定来设置字体颜色。 <template><div :s…...
【git】把本地更改提交远程新分支feature_g
创建并切换新分支 git checkout -b feature_g 添加并提交更改 git add . git commit -m “实现图片上传功能” 推送到远程 git push -u origin feature_g...
2023赣州旅游投资集团
单选题 1.“不登高山,不知天之高也;不临深溪,不知地之厚也。”这句话说明_____。 A、人的意识具有创造性 B、人的认识是独立于实践之外的 C、实践在认识过程中具有决定作用 D、人的一切知识都是从直接经验中获得的 参考答案: C 本题解…...

Linux 内存管理实战精讲:核心原理与面试常考点全解析
Linux 内存管理实战精讲:核心原理与面试常考点全解析 Linux 内核内存管理是系统设计中最复杂但也最核心的模块之一。它不仅支撑着虚拟内存机制、物理内存分配、进程隔离与资源复用,还直接决定系统运行的性能与稳定性。无论你是嵌入式开发者、内核调试工…...
4. TypeScript 类型推断与类型组合
一、类型推断 (一) 什么是类型推断 TypeScript 的类型推断会根据变量、函数返回值、对象和数组的赋值和使用方式,自动确定它们的类型。 这一特性减少了显式类型注解的需要,在保持类型安全的同时简化了代码。通过分析上下文和初始值,TypeSc…...

android RelativeLayout布局
<?xml version"1.0" encoding"utf-8"?> <RelativeLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"android:layout_height"match_parent"android:gravity&…...
前端中slice和splic的区别
1. slice slice 用于从数组中提取一部分元素,返回一个新的数组。 特点: 不修改原数组:slice 不会改变原数组,而是返回一个新的数组。提取数组的部分:slice 会根据指定的开始索引和结束索引提取数组的一部分。不包含…...