BGP简介

BGP 的概念定义

BGP 的概念

边界网关协议(Border Gateway Protocol,BGP)

  • 一种用于在不同自治系统(AS)之间交换路由信息的动态路由协议。
  • 互联网的核心路由协议之一,确保了全球网络的互联性和可达性。
  • 与内部网关协议(IGP)不同,BGP 主要处理 AS 间的路由。
  • 跨越多个 AS:负责在不同的网络域之间传递路由。
  • 路由信息交换:包括网络前缀和相关的路径属性。
  • 决策机制:根据各种因素决定最佳路由路径。
  • 策略控制:允许网络管理员定义路由策略,以满足特定需求。
  • 大规模网络适应:能够应对庞大而复杂的互联网拓扑。
  • 高可靠性要求:保障网络的稳定运行和路由的准确性。
  • 动态更新:实时适应网络的变化和拓扑调整。

BGP 的工作原理

  • 邻居建立
    • BGP 路由器会与其他 BGP 路由器建立邻居关系,分为 EBGP(外部邻居,位于不同 AS)和 IBGP(内部邻居,位于同一 AS 内)。
  • 路由通告
    • 路由器向邻居通告本地 AS 所知道的网络路由信息,包括网络前缀和相关属性。
  • 路径属性
    • 如 AS_PATH(记录经过的 AS 序列)、NEXT_HOP(下一跳地址)、LOCAL_PREF(本地优先级)等,这些属性用于路由决策。
  • 路由选择
    • 根据路径属性和策略,比较多条到达同一目的地的路由,选择最优路由。
    • 可能基于最短 AS_PATH、最高 LOCAL_PREF 等规则。
  • 更新机制
    • 当网络状态发生变化(如链路故障、路由新增等)时,及时发送更新消息以调整路由。
  • 路由反射
    • 在大型 AS 中,通过路由反射器来减少 IBGP 邻居关系的数量,提高扩展性。
  • 策略应用
    • 网络管理员可以通过配置来应用各种路由策略,如限制某些路由的传播、引导流量走向等。
  • 收敛过程
    • 确保整个网络的路由信息逐渐同步和稳定,以实现高效的数据传输。

BGP 的关键特点

BGP 的邻居关系

  • EBGP 邻居关系
    • 指位于不同自治系统的 BGP 路由器之间建立的邻居关系。
    • 通常通过直接连接的物理链路建立。
    • 消息传递跨越 AS 边界。
  • IBGP 邻居关系
    • 存在于同一自治系统内的 BGP 路由器之间。
    • 可以通过多种方式建立,如直接连接或通过内部网络。
    • 与 EBGP 相比,有一些特殊的规则和考虑因素,比如需要全互联或使用路由反射器等技术来避免路由环路问题。
    • IBGP 邻居之间传递的路由信息不会更改其 AS_PATH 属性。
  • 邻居建立过程
    • 包括交换 Open 消息以协商参数,如 BGP 版本、AS 号等。
    • 互相验证身份和能力。
    • 成功建立后,进入稳定的邻居状态,开始交换路由信息。
  • 邻居状态转换
    • 如从Idle 状态到 Connect 状态,再到 OpenSent、OpenConfirm 等状态,最终到达 Established 状态。
    • 不同状态表示邻居关系的不同阶段和进展情况。
  • 邻居维护
    • 通过定期发送 Keepalive 消息来维持邻居的活性。
    • 若长时间未收到对方消息,则可能认为邻居失效。

BGP 的路由属性

  • Weight(权重):Cisco 私有属性,是选路属性,可选非传递。当路由器有多个到达目标路径时(无视邻居关系),选择 weight 值大的一方到达(默认为空,越大越好)。weight 值只影响本路由器,其他路由器不识别该属性会丢弃该属性,默认本路由产生的路由条目的 weight 值为32768,学习到的路由条目权重值为0。
  • Origin(起源):选路属性,公认必尊,可以识别路由的起源,network 宣告的路由起源标志 i(0),重发布的路由起源标识为(3),EBGP 给的路由起源为 e(2),i>e>? ,i 和?可以修改,e 不能修改,默认传递过程中不修改。
  • AS-Path(AS 路径):记录路由经过的 AS 路径(不包括自己),顺序是最近进过的 AS 排在后面,一个 AS 拒绝接收携带自己 AS 号的路由,可以用来防环,选路,越短越好。
  • Next-hop(下一跳):用于提供可达性。IBGP 传递的 next-hop 不会被修改,为0时候会修改自己为更新源地址;EBGP 传递的 next-hop 会被修改,修改为自己的更新源地址。
  • Local-pref(本地优先级):选路属性,越大越好,用于在两个或者两个以上 AS 出口的选择,只能在 IBGP 之间传递,不能再 EBGP 之间传递。
  • MED(metric 度量值):可选非传递,选路属性,用于选路,一般用于 AS 有两个或者两个以上入口时,其他 AS 选择哪个入口进入本 AS。MED 只能用于两个 AS 之间的选路,可以在两个 AS 之间传递,超过两个 AS 该参数无效,可以打开多 AS 的 MED 比较。
  • Atomic-aggregate(汇总):可选非传递属性,用于通告路由接受者该路由是经过聚合的。
  • Aggregator(聚合者):可选传递属性,是 ATOMIC_AGGREGATE 属性的补充,包含了发起路由聚合的 AS 号码和形成聚合路由的 BGP 发布者的 IP 地址。
  • Community(团体):可选传递属性,用于标识具有相同特征的 BGP 路由,使路由策略的应用更加灵活,同时降低了维护管理的难度。
  • Originator_ID(发起者 ID):可选非传递属性,用于标识路由反射器,是可选非过渡属性。为了防止引入路由反射器之后出现环路,增加 ORIGINATOR_ID 这个属性来标识,反射器在发布路由时加入 ORIGINATOR_ID,当反射器收到的路由信息中的 ORIGINATOR_ID 就是自己的 ROUTER_ID 时,就可以发现路由环路的出现,将该路由丢弃,不再转发。
  • Cluster_List(簇列表):可选非传递属性,用于标识路由反射器组,是可选非过渡属性。CLUSTER_LIST 属性也是用来防止环路,在路由经过路由反射器时路由反射器会将自己的 CLUSTER_ID 添加到路由携带的 CLUSTER_LIST 中,当路由反射器发现接收的路由的 CLUSTER_LIST 中包含有自己的 CLUSTER_ID,则将该路由丢弃,不再转发。

BGP、OSPF 和 RIP 区别

BGP(Border Gateway Protocol)

  • 主要用于不同自治系统(AS)之间的路由交换,是一种域间路由协议。
  • 着重于控制路由策略和大规模网络的互联。
  • 路由信息相对复杂,包含大量的路径属性。

OSPF(Open Shortest Path First)

  • 是一种内部网关协议(IGP),用于单个 AS 内。
  • 基于链路状态,能快速收敛。
  • 对网络拓扑有清晰的认识,能进行更精确的路由计算。

RIP(Routing Information Protocol)

  • 也是 IGP。
  • 相对简单,使用跳数作为度量。
  • 收敛速度较慢,不太适用于大型复杂网络。
比较项目BGPOSPFRIP
应用范围AS 间AS 内AS 内
路由度量多种属性开销等跳数
收敛速度较慢较慢
网络规模大型网络中大型网络小型网络
路由信息复杂度复杂较复杂简单

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/28771.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux ubuntu安装pl2303USB转串口驱动

文章目录 1.绿联PL2303串口驱动下载2.驱动安装3.验证方法 1.绿联PL2303串口驱动下载 下载地址:https://www.lulian.cn/download/16-cn.html 也可以直接通过CSDN下载:https://download.csdn.net/download/Axugo/89447539 2.驱动安装 下载后解压找到Lin…

【Linux命令行】从时间管理->文件查找压缩的指令详解

目录 1.date 命令&#xff08;显示时间&#xff09; 1.1 显示方面 1.2 设定时间 1.3 时间戳转换 1.4 cal&#xff08;日历&#xff09; 2. 重定向 2.1 输出重定向&#xff08;echo >&#xff09;cin 2.2 追加重定向 >> 2.3 输入重定向 < cout 3.find 指…

API接口设计的艺术:如何提升用户体验和系统性能

在数字时代&#xff0c;API接口的设计对于用户体验和系统性能有着至关重要的影响。良好的设计可以显著提升应用程序的响应速度、可靠性和易用性。以下是几个关键点&#xff0c;帮助改善API接口的设计&#xff1a; 1. 理解并定义清晰的要求 用户研究&#xff1a;与最终用户进行…

[晕事]今天做了件晕事38 shell里的source 点号

今天碰到一个问题脚本里使用点号引入某个文件形式如下&#xff1a; . /tmp/abc但是脚本运行出现错误&#xff0c;一开始还以为是/tmp没有可执行权限&#xff08;https://mzhan017.blog.csdn.net/article/details/112178736#t16&#xff09;&#xff0c;导致abc运行不了。 后来…

如何根据使用场景选购3D扫描仪?

三维扫描建模是指通过专业的三维扫描仪对产品进行三维数据的采集&#xff0c;快速获取物体精确的3D数据&#xff0c;实现1:1复刻原物体&#xff0c;扫描后所得的数字化3D模型以obj、fbx、glb、gltf等格式保存。 积木易搭自主研发多款三维扫描设备&#xff0c;拥有多项国家专利&…

【大分享04】OFD版式赋能政务服务电子文件归档和电子档案管理

关注我们 - 数字罗塞塔计划 - 本篇是参加由电子文件管理推进联盟联合数字罗塞塔计划发起的“大分享”活动投稿文章&#xff0c;来自北京数科网维技术有限责任公司&#xff0c;作者&#xff1a;张严。 PART1 政务服务电子文件归档和电子档案管理背景 政务服务是政务服务机构…

RockChip Android12 Settings一级菜单

一:概述 在之前的文章中对Android8.1 Settings的流程进行了说明,本章将针对Android12 Settings一级菜单的加载逻辑进行详细说明,Settings版本之间的差异不是很大,有兴趣的同学可自行学习,本文不在做赘述。 Android8.1 Settings说明:RockChip Android8.1 Settings-CSDN博…

最佳websocket封装

封装了weboskect&#xff0c;完美支持了断网重连、自动心跳的功能&#xff0c;且完全兼容原生写法&#xff0c;无任何学习负担&#xff0c;开开箱即用&#xff01; import { EventDispatcher } from ./dispatcher;export class WebSocketClient extends EventDispatcher {// #…

使用 TypeScript 写一个自己的 NPM 库

和JS写法差不多&#xff0c;就是要下一个TypeScript依赖 TypeScript编写共享库并发布到npm

linux MySQL基本操作

linux MySQL基本操作 文章目录 linux MySQL基本操作1. 操作语句启动 MySQL&#xff1a;查看 MySQL 运行状态&#xff1a;登录mysql 2. mysql 内语句密码永不过期设置远程访问刷新MySQL的系统权限相关表 1. 操作语句 启动 MySQL&#xff1a; systemctl start mysqldsystemctl …

早期发现,健康生活!第三届ZAODX世界肿瘤早筛大会圆满落幕!

2024年6月15日-16日&#xff0c;第三届ZAODX世界肿瘤早筛大会在雄安新区盛大开幕&#xff01;本次会议由河北雄安新区管理委员会公共服务局指导&#xff0c;第三届ZAODX世界肿瘤早筛大会组委会和早筛网主办&#xff0c;粤港澳大湾区精准医学研究院&#xff08;广州&#xff09;…

python GUI开发: tkinter事件处理的几种方式详解与应用实战

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

GEM5 Garnet +DSENT: NoC power model 功耗模型

0. 简介 现在&#xff08;2024&#xff09;集成的是dsent。 Garnet作者&#xff0c;Turshar在2018年说Orion已经过时不在集成DSENT&#xff0c;但是集成DSENT的代码随着gem5更新也过时了&#xff0c;而他短期内没有更新的计划&#xff08;2018年说的&#xff09;。2023年还有一…

SpringBoot配置第三方专业缓存技术jetcache远程缓存方案和本地缓存方案

JetCache 是一个基于 Java 的分布式缓存解决方案&#xff0c;旨在提供高性能和可扩展性。它支持多种后端存储&#xff0c;如 Redis、Hazelcast、Tair 等&#xff0c;可以作为应用程序的缓存层&#xff0c;有效地提升数据访问性能和响应速度。 JetCache 的主要特点包括&#x…

springboot应用启动太慢排查 半天才打印日志

springboot应用启动太慢排查 半天才打印日志 解决办法 hostnamectl 命令查看主机名 vim /etc/hosts 加上主机名配置 127.0.0.1 hostname

Java_JDK下载与环境变量配置

目录 一、JDK下载安装 二、安装后配置环境变量 三、在编辑器里使用JDK 一、JDK下载安装 JDK 是Java开发工具包&#xff0c;它提供了用于开发和运行Java程序所需的工具和库。JDK包括Java编译器、Java虚拟机、Java标准库等。在IDEA中使用Java语言编写代码时&#xff0c;需要安…

为什么 Kubernetes 调试如此成问题?

在 Kubernetes 集群中调试应用程序问题通常感觉就像在迷宫中穿行。容器在设计上是短暂的&#xff0c;一旦部署就不可改变。当出现问题并且我们需要深入研究问题时&#xff0c;这会带来独特的挑战。在深入研究调试工具和技术之前&#xff0c;必须掌握核心问题&#xff1a;为什么…

openlayers 使用WMTS和XYZ加载天地图切片服务

openlayers 使用WMTS和XYZ加载天地图切片服务 本篇介绍一下使用openlayers加载天地图切片&#xff0c;两种方法&#xff1a; 使用WMTS使用XYZ 1 需求 openlayers加载天地图 2 分析 主要是不同类型source的使用 WMTS&#xff08;Web Map Tile Service&#xff09; 是 OGC…

一道全等三角形证明题

接着上次那道题 一道初中一年级几何题解析&#xff0c;再来做一道初中一年级下半学期几何题目&#xff1a; 傍晚丢垃圾散步时看到小小的学生学习群里丢了这个题目&#xff0c;想到一个解法。实在构造不出契合题干阅读材料结论的三角形&#xff0c;索性先根据这结论做一个推论…

ByteTrack

1. 论文中伪代码表示的流程图 2. 简要版 此图源自&#xff1a; ByteTrack多目标跟踪原理&#xff0c;白老师人工智能学堂 3. 详细版 根据ByteTrack-CPP-ncnn代码的数据流画的较为详细的流程图&#xff1a; 4. ByteTrack-CPP-ncnn的UML类图 Reference ByteTrack多目标跟踪原…