BGP路由优选+EVPN
BGP 的路由优选规则是一套多步决策链,用来确定在多个可行路由中选择最优的路由。BGP 是一种路径向量协议,通过这些优选规则,网络管理员可以控制数据流量的流向,确保网络的稳定性和效率。下面以一个实例来详细说明 BGP 的优选规则及其链条。
BGP 路由优选规则的步骤
BGP 有一套固定的优选规则链,规则按照优先级顺序依次检查,直到找到一个最优路由。以下是 BGP 常用的优选规则(从高到低):
- 优先最高的 Weight 值(仅限于 Cisco 路由器特性)
- 优先本地优先级(Local Preference)值
- 优先本地产生的路由
- 优先最短的 AS 路径(AS_PATH)
- 优先最低的 Origin 类型
- 优先最低的 MED(Metric)值
- 优先到达下一跳的 IGP 距离
- 优先来自最低的 Router ID 的路由
实例说明
假设公司 A 的网络(AS100)有 3 个上联 ISP,分别是 ISP1(AS200),ISP2(AS300),和 ISP3(AS400)。每个 ISP 都通告了一条到达目标网络 192.168.1.0/24 的路由,具体情况如下:
- ISP1:AS_PATH 为
200 300
,Local Preference 为 100,MED 为 10,Router ID 为 1.1.1.1 - ISP2:AS_PATH 为
300
,Local Preference 为 200,MED 为 20,Router ID 为 2.2.2.2 - ISP3:AS_PATH 为
400 300
,Local Preference 为 100,MED 为 5,Router ID 为 3.3.3.3
我们来一步步分析该如何选择最优路径:
-
Weight:假设没有特别配置 Weight 值。Weight 值缺省为 0,不会影响路由选择。
-
Local Preference:
- ISP1 的 Local Preference 为 100。
- ISP2 的 Local Preference 为 200。
- ISP3 的 Local Preference 为 100。
- 因为 ISP2 的 Local Preference 最高(200),优选 ISP2 的路由。
结果:此时,BGP 已经选择了 ISP2 的路由为最优路径,不再需要继续检查其他规则。如果没有 Local Preference 优先级的差异,继续以下规则。
-
AS_PATH 长度(如果没有 Local Preference 差异):
- 如果 Local Preference 相同,我们会看 AS_PATH 长度。
- 比较 ISP1 和 ISP3 的 AS_PATH:
- ISP1 的 AS_PATH 为
200 300
,长度为 2。 - ISP3 的 AS_PATH 为
400 300
,长度也是 2。
- ISP1 的 AS_PATH 为
- 此时,ISP1 和 ISP3 的 AS_PATH 长度相同,继续比较下一个优选条件。
-
Origin 类型:
- 假设三条路由的 Origin 类型相同,继续比较下一项。
-
MED 值:
- ISP1 的 MED 为 10。
- ISP3 的 MED 为 5。
- MED 值越小越优,因此优选 ISP3。
结果:若之前条件无法选出最优路径,ISP3 的路由将被选为最优路径。
-
IGP Metric 到 Next_Hop 的距离(如果前面的规则都相同):
- 比较到达 ISP1 和 ISP3 的下一跳的 IGP 距离,距离越近越优。
-
Router ID(最后一项):
- 假如上面所有的条件都相同,我们会选择 Router ID 最小的路由。因此在这种情况下,优选来自 Router ID 1.1.1.1(ISP1)的路由。
本地优先
在 BGP 中,聚合(Aggregation)和注入(Injection)是两种重要的方式,用于控制路由条目的传播。每种方法又分为几种类型,分别适用于不同的场景。我们来解释这些概念,并比较它们。
1. 聚合(Aggregation)
聚合是一种将多个具体的路由条目合并成一个更粗略的路由条目的方式,目的是减少路由表的条目数量,提升路由效率。BGP 中有两种聚合方式:
a. 手动聚合
- 定义:手动聚合是指使用
aggregate
命令,通过管理员在 BGP 配置中手动指定要进行聚合的路由。 - 特点:手动聚合通常需要网络管理员明确地指定哪些路由要被聚合,并通过 BGP 视图内的配置命令进行操作。
- 场景:适用于需要特定控制的情况,例如仅对特定的路由进行聚合。
b. 自动聚合
- 定义:自动聚合是通过
summary automatic
命令生成的,BGP 会自动将相同前缀的多个路由条目合并成一个条目。 - 特点:自动聚合不需要管理员逐条配置,BGP 会自动检测可以聚合的路由并进行合并。
- 场景:适用于较大规模的网络环境,希望自动合并具有相同前缀的路由条目,从而减少路由表的数量。
2. 注入(Injection)
注入指的是将其他路由协议的路由条目引入到 BGP 路由表中,从而使得 BGP 可以使用这些路由信息。BGP 中的注入方式有两种:
a. Network 方式注入
- 定义:Network 方式是指在 BGP 配置中直接使用
network
命令,将特定网段的路由加入 BGP。 - 特点:这种方式要求网段已经在本地路由表中存在,BGP 只负责将这个网段的信息引入到 BGP 路由表中。
- 场景:适用于需要手动控制哪些特定的网段被引入到 BGP 的场景。
b. Import-route 方式注入
- 定义:Import-route 方式是通过
import-route
命令,将其他路由协议(如 OSPF、IS-IS 等)的路由条目自动引入 BGP。 - 特点:这种方式不需要手动指定每一个网段,BGP 会自动获取其他路由协议的路由信息并引入 BGP。
- 场景:适用于网络中已有其他路由协议的环境,需要将其他协议的路由信息批量引入 BGP。
比较总结
- 聚合:减少路由表条目数量,提升效率。
- 手动聚合:精确控制,适用于特定路由。
- 自动聚合:无需手动配置,适合大规模网络。
- 注入:将其他路由引入 BGP。
- Network 方式:手动选择特定网段,灵活性高。
- Import-route 方式:自动批量引入其他协议的路由条目,简化配置。
BGP EVPN基础
SDN(Software-Defined Networking)是一种网络架构,它通过将网络控制层与数据转发层分离,使得网络管理更加灵活和可编程。SDN允许网络管理员通过软件应用程序动态配置网络,以满足不断变化的需求。
SDN示例:在一家大型企业中,IT团队可以通过SDN控制器快速调整网络配置,以适应新的应用需求,例如在高峰期增加带宽,而无需物理更改网络设备。
EVPN示例:在一个多租户数据中心中,不同的公司可以在相同的物理基础设施上运行各自的虚拟网络,而EVPN确保了它们之间的流量隔离和安全性,使得各个租户能够独立运作而不互相干扰。
MP-BGP
在BGP-4(Border Gateway Protocol version 4)中,确实有几个与IPv4相关的属性和信息,它们在BGP协议中用于传递路由信息。以下是对您提到的三个信息的解释:
-
NEXT_HOP属性:
- NEXT_HOP是BGP中的一个路径属性,它指定了到达目的地的下一跳(Next Hop)路由器的IP地址。在IPv4环境中,这个属性通常包含一个IPv4地址,指示数据包应该发送到的下一个路由器。
- 在BGP路由更新消息中,NEXT_HOP属性告诉接收方,当它们需要将数据包转发到特定的目的地时,应该将数据包发送到哪个IP地址。
-
AGGREGATOR属性:
- AGGREGATOR属性用于标识汇总(aggregated)路由的来源。当一个BGP路由器汇总多个具体的路由前缀到一个更大的前缀时,它会在通告的路由中包含这个属性。
- 这个属性包含汇总该路由的BGP路由器的自治系统号(AS Number)和路由器ID。这样,接收方可以知道这条路由是由哪个路由器汇总的,以及它来自哪个自治系统。
-
IPv4 NLRI(Network Layer Reachability Information):
- NLRI是BGP路由更新消息中的一部分,它包含了可达网络的信息。在IPv4环境中,NLRI包含了IPv4地址前缀和长度,用于描述可以到达的网络。
- 例如,一个NLRI可以是“10.0.0.0/8”,表示从10.0.0.0到10.255.255.255的所有地址都是可达的。
这三个信息是BGP-4中用于在自治系统之间交换IPv4路由信息的关键组成部分。它们使得BGP能够高效地传播和汇总路由信息,同时确保网络的可达性和正确性。在BGP-4中,这些属性和信息是标准化的,以确保不同厂商的BGP实现能够互操作。
EVPN
EVPN 简介
EVPN可以在MPLS网络上实现,也可以与其他网络技术结合使用
在MPLS环境中,EVPN利用标签交换的高效性,将以太网帧封装在MPLS标签中进行传输,从而提升了网络的转发效率和流量管理能力。
PE (Provider Edge):提供商边缘路由器
CE (Customer Edge):客户边缘设备
EVPN 常见路由
RFC代表“Request for Comments”(征求修改意见)。RFC是由互联网工程任务组(IETF)发布的一系列文档,它们详细描述了互联网标准、协议、流程和最佳实践。
EVPN 典型应用场景
这张图展示了在园区网(类似公司内部网络)中应用EVPN技术来构建一个虚拟化的网络架构,让园区网具备类似云数据中心的灵活性和管理能力。下面是逐步的解释:
-
园区网虚拟化:
- 园区网是指企业内部网络,连接了企业的各种设备(如电脑、服务器、无线接入点等)。
- 这里提到的“园区网虚拟化”类似于云数据中心中的虚拟网络解决方案,通过将底层网络和逻辑网络分离,构建更加灵活的网络结构。
-
EVPN和NVO(Network Virtualization Overlay):
- EVPN(Ethernet VPN)是一种虚拟网络技术,它提供了虚拟化网络的管理和控制能力,类似于云数据中心中的网络虚拟化。
- NVO方案(基于RFC 8365标准)是一种覆盖网络的虚拟化方案,通过构建一个“Overlay”网络层,实现在底层物理网络之上运行的虚拟网络。这就像在一个实际存在的网络上面,搭建出多个独立的虚拟网络。
-
VXLAN封装:
- VXLAN是一种封装协议,可以将不同的虚拟网络“包裹”起来,在底层的网络设备中传输。这使得每个虚拟网络之间的数据不会混淆。
- 图中显示的“虚拟网络1”、“虚拟网络2”等都是通过VXLAN封装的,它们在底层网络上分开传输,互相隔离,但都可以共用底层网络。
-
Overlay和Underlay:
- Overlay(虚拟网络层):是在物理网络上构建的逻辑网络层,便于灵活配置和调整虚拟网络。
- Underlay(底层物理网络层):实际存在的物理网络,负责数据的真实传输。这里的“LSW”就是底层交换机的表示。
-
整体效果:
- 通过EVPN和VXLAN封装,园区网可以实现多租户隔离和虚拟化,类似于数据中心的云网络架构。
- 这种方式使得不同虚拟网络可以独立管理和配置,构建更加灵活的园区网络,同时支持跨物理设备传输数据。
简单来说,这种架构让园区网具备云数据中心的灵活性,可以轻松创建多个隔离的虚拟网络,并通过底层网络高效传输数据。
EVPN,VXLAN,Overlay三者的关系:
- VXLAN 提供了 Overlay 网络的数据封装方式,把不同虚拟网络的流量“包裹”起来,便于在底层网络中传输。
- EVPN 提供了 Overlay 网络的控制平面,通过BGP分发网络中的MAC/IP信息,使得Overlay网络具有动态路由和故障恢复能力。
- Overlay 是三者构建的最终结果,它是一种运行在物理网络之上的逻辑网络架构,为用户提供了多租户、虚拟化以及高扩展性。
通过VXLAN和EVPN的结合,Overlay网络能够在复杂的数据中心环境中实现灵活管理和高效的资源隔离。
相关文章:

BGP路由优选+EVPN
BGP 的路由优选规则是一套多步决策链,用来确定在多个可行路由中选择最优的路由。BGP 是一种路径向量协议,通过这些优选规则,网络管理员可以控制数据流量的流向,确保网络的稳定性和效率。下面以一个实例来详细说明 BGP 的优选规则及…...
牛客练习赛131(未补)
A-小H学语文 题意:木板数量为m,想让mmh(min)最大,找出这几块木板 分析:让木板从大到小排序,找到最大的体积,将之前的木板按序列输出 代码: #include<bits/stdc.h> using n…...

功能更新丨AI黑科技助燃VR全景新势能
随着VR全景市场需求不断扩大, 为更好地赋能合作商业务发展, 酷雷曼积极推进产品技术迭代, 融合VR虚拟现实和AI人工智能, 重磅推出6大AI黑科技, 让VR全景内容更丰富、创作更加高效! 新功能怎么用&#…...
JavaCV学习第一课
1、 JavaCV [1] 是一款基于JavaCPP [2]调用方式(JNI的一层封装),由多种开源计算机视觉库组成的包装库,封装了包含FFmpeg、OpenCV、tensorflow、caffe、tesseract、libdc1394、OpenKinect、videoInput和ARToolKitPlus等在内的计算…...

Java第二阶段---16字符串---第一节 String
1.特性介绍 String 类位于 java.lang 包中,无需引入,直接使用即可。 String 类是由 final 修饰的,表示String 类是一个最终类,不能够被继承。 String 类构建的对象不可再被更改 示例 package com.cyx.string;public class Ex…...

<十六>Ceph mon 运维
Ceph 集群有故障了,你执行的第一个运维命令是什么? 我猜测是ceph -s 。无论执行的第一个命令是什么,都肯定是先检查Mon。 在开始之前我们有必要介绍下Paxos协议,毕竟Mon就是靠它来实现数据唯一性。 一: Paxos 协议 1…...

【网络安全初识】——互联网发展史
个人主页:兜里有颗棉花糖 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创 收录于专栏【网络安全】 本专栏旨在分享学习网络安全的一些学习笔记,欢迎大家在评论区交流讨论💌 ipconfig:显示当…...
Windows和Linux内存共享机制
Windows和Linux内存共享机制 引言1.Windows写操作读操作 2.Linux写操作读操作 3.Shell使用 tmux 运行 write 和 read说明 引言 在嵌入式开发领域,内存共享机制作为不同操作系统间实现高效数据交换的重要手段,尤其在对实时性和可靠性要求极高的环境中更为…...
windows@命令行中获取环境变量取值不展开取值(原值)
文章目录 命令行中获取环境变量取值获取不展开的值具体实现注解 封装为函数版本1版本2 命令行中获取环境变量取值 这里主要讨论获取未展开的值本来获取未展开的值应该作为默认选项,至少有合适的api方便直接调用,但是不知道微软怎么想的,让这个任务变得不直接 获取不展开的值 …...

如何找到多平台内容爆款进行批量复刻?
为了进一步扩大品牌社媒影响力,在消费者做决策的时候,能够第一时间出现在首选位置。持续在抖音、小红书、b站、公众号等各大社媒平台,产生连续的、正向的高质量品牌曝光,是非常重要的。如何进行这种多平台品牌影响力的提升呢&…...

【UML】- 用例图(结合银行案例解释其中的奥义)
目录 一、相关介绍 作用: 组成: 关系 二、使用具体银行案例解释各组成部分的含义 1、系统 2、参与者 3、用例 4、关联关系 5、扩展关系 6、泛化(继承)关系 三、成品 一、相关介绍 作用: 用例图可以描述一个…...

浅谈UI自动化
⭐️前言⭐️ 本篇文章围绕UI自动化来展开,主要内容包括什么是UI自动化,常用的UI自动化框架,UI自动化原理等。 🍉欢迎点赞 👍 收藏 ⭐留言评论 🍉博主将持续更新学习记录收获,友友们有任何问题…...
三、k8s快速入门之Kubectl 命令基础操作
⭐️创建Pod [rootmaster ~]# kubectl run nginx --imageharbor.tanc.com/library/ngix:latest kubectl run --generatordeployment/apps.v1 is DEPRECATED and will be rmoved in a future version. Use kubectl run --generatorrun-pod/v1 or kbectl create instead. deplo…...

深度学习-BP算法详解
BP(Back Propagation,反向传播)是训练神经网络的重要算法之一。它通过计算误差并将误差反向传播,以更新神经网络中的权重和偏置,进而使模型更好地拟合数据。 1. BP算法的基本原理 反向传播的基本思想是: …...

Java审计对比工具JaVers使用
最近有个需求,需要将页面的内容生成excel或者word文档,而且每次的修改都需要生成新的版本,同时需要记录每次修改变化的内容。我们会把每次的修改的内容提交赋值给一个java对象,同时存储到数据库一条新数据,对应数据表一…...

unity中预制体的移动-旋转-放缩
unity中预制体的移动-旋转-放缩 左上侧竖栏图标介绍Tools(手形工具)Move Tool(移动工具,单位米)Rotate Tool(旋转工具,单位角度)Scale Tool(缩放工具,单位倍数)Rect Tool(矩形工具)Transform Tool(变换工具)图标快捷键对照表工具使用的小技巧…...

【压力测试】如何确定系统最大并发用户数?
一、明确测试目的与了解需求 明确测试目的:首先需要明确测试的目的,即为什么要确定系统的最大并发用户数。这通常与业务需求、系统预期的最大用户负载以及系统的稳定性要求相关。 了解业务需求:深入了解系统的业务特性,包括用户行…...
ubuntu常用基本指令简记
一、在线帮助 1、help Linux命令可以分为内部命令和外部命令,内部命令就是由Linux默认Shell-bash提供的命令,而非bash提供的命令就是外部命令。 对于内部命令,可以使用help命令来获取帮助 形式为 help 指令 2、man 在日常使用中碰到的绝…...
【解决方案】用git reset --hard重置了提交但是发现reset了一些本不该reset的内容,是不是寄了?
使用 git reset --hard [commit_id] 命令后,所有的更改(包括暂存区和工作区的更改)都会被重置到指定的提交。如果想要撤销这个操作,恢复到重置之前的状态,可以尝试以下方法: 1. 使用 Git Reflog 恢复 Git…...

ACM模式下Java读取控制台输入注意事项及输出规范化
背景 在ACM模式下。需要我们去接受输入的参数,一般是使用Scanner去读取控制台输入的参数System.in。 不熟悉的情况下,很容易出现问题,针对常见的问题做一个总结。 一、nextXxx 如next,nextInt,nextFloat,…...

3.3.1_1 检错编码(奇偶校验码)
从这节课开始,我们会探讨数据链路层的差错控制功能,差错控制功能的主要目标是要发现并且解决一个帧内部的位错误,我们需要使用特殊的编码技术去发现帧内部的位错误,当我们发现位错误之后,通常来说有两种解决方案。第一…...

关于iview组件中使用 table , 绑定序号分页后序号从1开始的解决方案
问题描述:iview使用table 中type: "index",分页之后 ,索引还是从1开始,试过绑定后台返回数据的id, 这种方法可行,就是后台返回数据的每个页面id都不完全是按照从1开始的升序,因此百度了下,找到了…...

【大模型RAG】Docker 一键部署 Milvus 完整攻略
本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装;只需暴露 19530(gRPC)与 9091(HTTP/WebUI)两个端口,即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...
【RockeMQ】第2节|RocketMQ快速实战以及核⼼概念详解(二)
升级Dledger高可用集群 一、主从架构的不足与Dledger的定位 主从架构缺陷 数据备份依赖Slave节点,但无自动故障转移能力,Master宕机后需人工切换,期间消息可能无法读取。Slave仅存储数据,无法主动升级为Master响应请求ÿ…...

SpringCloudGateway 自定义局部过滤器
场景: 将所有请求转化为同一路径请求(方便穿网配置)在请求头内标识原来路径,然后在将请求分发给不同服务 AllToOneGatewayFilterFactory import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; impor…...
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南 在数字化营销时代,邮件列表效度、用户参与度和网站性能等指标往往决定着创业公司的增长成败。今天,我们将深入解析邮件打开率、网站可用性、页面参与时…...

GC1808高性能24位立体声音频ADC芯片解析
1. 芯片概述 GC1808是一款24位立体声音频模数转换器(ADC),支持8kHz~96kHz采样率,集成Δ-Σ调制器、数字抗混叠滤波器和高通滤波器,适用于高保真音频采集场景。 2. 核心特性 高精度:24位分辨率,…...

均衡后的SNRSINR
本文主要摘自参考文献中的前两篇,相关文献中经常会出现MIMO检测后的SINR不过一直没有找到相关数学推到过程,其中文献[1]中给出了相关原理在此仅做记录。 1. 系统模型 复信道模型 n t n_t nt 根发送天线, n r n_r nr 根接收天线的 MIMO 系…...

让回归模型不再被异常值“带跑偏“,MSE和Cauchy损失函数在噪声数据环境下的实战对比
在机器学习的回归分析中,损失函数的选择对模型性能具有决定性影响。均方误差(MSE)作为经典的损失函数,在处理干净数据时表现优异,但在面对包含异常值的噪声数据时,其对大误差的二次惩罚机制往往导致模型参数…...
音视频——I2S 协议详解
I2S 协议详解 I2S (Inter-IC Sound) 协议是一种串行总线协议,专门用于在数字音频设备之间传输数字音频数据。它由飞利浦(Philips)公司开发,以其简单、高效和广泛的兼容性而闻名。 1. 信号线 I2S 协议通常使用三根或四根信号线&a…...