【杂记-浅谈BGP边界网关协议】

BGP边界网关协议

  • 一、BGP边界网关协议概述
  • 二、BGP的特点及与IGP的区别
  • 三、BGP的路由属性
  • 四、BGP协议中使用的报文

一、BGP边界网关协议概述

1、BGP,Border Gateway Protocol,即边界网关协议,是一种在自治系统(AS)之间交换网络层可达性信息的路由选择协议。每个AS通常由一个或多个网络组成,并由单一的技术管理机构管理,使用相同的选路策略。BGP协议运行在TCP之上,端口号为179,保证了协议的可靠性。
2、BGP路由器之间建立TCP连接,并通过四次握手的流程建立BGP会话,一旦会话建立,路由器就开始交换路由信息。
3、BGP的路由更新是触发式的,只有在路由发生变化时才发送。BGP路由器维护两张重要的表格:邻居表和路由表。邻居表记录了与哪些其他BGP路由器建立了会话,而路由表则包含了从邻居学习到的所有路由信息。

二、BGP的特点及与IGP的区别

特点
1、适用范围:BGP用于AS之间,而IGP用于AS内部。
2、路由更新机制:BGP使用触发更新,只在路由发生变化时发送更新,而IGP通常使用周期性更新。
3、路由选择依据:BGP依赖于一系列复杂的路径属性进行路由选择,而IGP通常使用成本或度量值。
4、策略控制能力:BGP提供了丰富的策略控制功能,而IGP通常不具备这样的能力。
BGP与IGP的区别
交换不同自治系统间的路由信息,它不同于内部网关协议(IGP),如RIP或OSPF,后者主要关注单个自治系统内的路由选择。BGP的设计使其能够处理像因特网这样规模的网络,能够妥善处理不相关路由域间的多路连接问题。

三、BGP的路由属性

BGP路由属性提供了关于路由信息的额外信息,帮助路由器在复杂的自治系统(AS)间环境中做出更为精确的路由决策。通过配置BGP路由属性来实现对路由控制的细化。
BGP属性可分为四大类:公认必遵属性、公认可遵属性、可选传递属性和可选非传递属性。
公认必遵属性
公认必遵属性是所有BGP路由器都必须识别并在Update消息中必须存在的属性,包括Origin、AS_Path和Next_Hop三个属性。
1、Origin属性:Origin属性用来定义路径信息的来源,它有三种类型:IGP、EGP和Incomplete。IGP具有最高的优先级,代表通过network命令注入到BGP路由表的路由信息;EGP次之,代表通过EGP得到的路由信息;Incomplete优先级最低,代表通过其他方式学习到的路由信息。
2、AS_Path属性:AS_Path属性记录了路由到达目的地所经过的所有AS号码的序列。BGP使用AS_Path属性作为路由更新的一个重要部分,以确保在Internet上的路由没有环路,AS_Path越短的路由,其优先级越高。
2、Next_Hop属性:Next_Hop属性是指定路由的下一跳地址,它指明了数据包应该投递到的下一个IP地址。在EBGP会话中,BGP会将Next_Hop设为自身的IP地址,而在IBGP会话中,Next_Hop通常保持不变。
公认可遵属性
公认可遵属性是所有路由器都能识别,但不一定在所有BGP路由器中都必须遵守的属性。这类属性包括Local_Pref和Atomic_Aggregate。
1、Local_Pref属性:Local_Pref属性表示本地偏好,用于在同等条件下,优先选择本地生成的路由。Local_Pref的值越大,就越优先。
2、Atomic_Aggregate属性:Atomic_Aggregate属性用于告知下游路由器,由于路由聚合,某些路径信息已经丢失。
可选传递属性
可选传递属性是所有BGP路由器都能识别,并且所有BGP路由器都应该在接收到这些属性时保留并传递给其他BGP路由器的属性。这类属性包括Community和Aggregator。
1、Community属性:Community属性用于标记具有共同特征的路由,可用于路由策略的实现。
2、Aggregator属性:Aggregator属性用于标识聚合路由的发起者和聚合的范围。
可选非传递属性
可选非传递属性是只有部分BGP路由器能识别,且不会被所有BGP路由器接收或传递的属性。这类属性包括MED、Cluster_List和Originator_ID。
1、MED属性:MED属性用于在AS之间传递路由选择信息,它代表了路由的成本或优先级。MED值越小,路由越优先。
2、Cluster_List和Originator_ID属性:Cluster_List属性记录了路由经过的反射器簇ID,而Originator_ID属性表示路由的发起者的Router ID。这两个属性在路由反射器场景中特别有用。

四、BGP协议中使用的报文

1、OPEN:用于建立BGP会话。
2、UPDATE:用于发送网络可达性信息。
3、KEEPALIVE:用于保持BGP会话的活动状态。
4、NOTIFICATION:用于报告错误情况。
5、ROUTE-REFRESH:用于请求重新发送路由信息。

1、路径矢量协议:BGP在发送路由更新时,会携带沿途的AS信息,形成AS路径。
2、路由聚合:BGP支持路由聚合,可以合并多个网络前缀到一个聚合的路由中,减少路由表的大小。
3、路由衰减:BGP提供了防止路由振荡的机制,当一段时间未收到某个邻居的路由更新时,会逐渐降低对该邻居的依赖。
4、策略控制:BGP允许网络管理员通过一系列属性来控制路由的选择和传播,如AS_PATH、LOCAL_PREF、MED等。
5、支持多种自治系统:BGP不仅支持IPv4单播路由,还支持IPv6等多种协议。

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

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

相关文章

Websocket实现方式二——注解方式

添加Websocket依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId> </dependency>根据ServerEndpoint注解注册Websocket Configuration public class AgentWsConfig …

多项式回归(Linear Regression)原理详解及Python代码示例

多项式回归原理详解 多项式回归&#xff08;Polynomial Regression&#xff09;是线性回归&#xff08;Linear Regression&#xff09;的一种扩展形式。它通过在输入变量上添加高次项来拟合非线性关系。虽然多项式回归本质上还是线性模型&#xff0c;但它允许模型在输入特征的多…

if action和Switch之间该怎么选择?

1. Switch 2. If及If Action Subsystem 3.结论 元素很多&#xff0c;用switch 元素少&#xff0c;用if或switch 如果...很多&#xff0c;用if

职业技能大赛引领下大数据专业实训教学的改革研究

随着信息化时代的加速发展&#xff0c;大数据专业作为新兴的热门领域&#xff0c;正日益成为高等职业教育体系中不可或缺的一部分&#xff0c;其承担着为社会培养大批具有高素质应用技能的大数据技术人才的重任。职业技能大赛作为检验和提升学生技能水平的有效平台&#xff0c;…

web学习笔记(六十九)vue2

1. vue2创建脚手架项目 &#xff08;1&#xff09;在cmd窗口输入npm install -g vue/cli命令行&#xff0c;快速搭建脚手架。 &#xff08;2&#xff09; 创建vue2项目 &#xff08;3&#xff09; 选择配置项目&#xff0c;最下面的选项是自己重新配置&#xff0c;第一次创建v…

使用mmdetection遇到的一些问题总结

【问题1】 No module named ‘mmcv._ext’ 应该安装mmcv-full 而不是mmcv 【问题2】cannot import name ‘Config‘ from ‘mmcv‘ 原因是mmcv的版本太高两种解决方案&#xff1a;1&#xff09;降低mmcv版本。2&#xff09;将 from mmcv import Config, DictAction 修改为 fro…

android 4大组件用法

在Android开发中&#xff0c;应用程序的主要组件包括Activity、Service、Broadcast Receiver和Content Provider。这些组件共同组成了Android应用的基本构架。以下是每个组件的详细用法&#xff1a; 1. Activity Activity是Android应用的主要组成部分&#xff0c;代表一个用户…

中电金信:向“新”而行—探索AI在保险领域的创新应用

大模型的应用已经渗透到各个领域&#xff0c;并展现出惊人的潜力。在自然语言处理方面&#xff0c;大模型用于机器翻译、文本摘要、问答系统等&#xff1b;在计算机视觉领域&#xff0c;应用于图像识别、目标检测、视频分析等&#xff1b;此外&#xff0c;大模型也应用于语音识…

使用nvm管理node版本及pnpm安装

文章目录 GithubWindows 环境Mac/Linux 使用脚本进行安装或更新Mac/Linux 环境变量nvm 常用命令npm 常用命令npm 安装 pnpmNode 历史版本 Github https://github.com/nvm-sh/nvm Windows 环境 https://nvm.uihtm.com/nvm.html Mac/Linux 使用脚本进行安装或更新 curl -o- …

名企架构师精讲:Spring框架核心速览

目录 1. 课程概览 2. 初识篇&#xff1a;Spring框架AOP&IOC案例详解 课程内容3. 课程特色4.适用人群5. 你将收获6. 学习建议 1. 课程概览 本课程通过精选的两篇深度文章和一套详尽的视频教程&#xff0c;全面而深入地解析并实践了Spring框架的核心内容。 主要包含以下几部…

VTable导出当前页和导出所有页数据

表格导出的是当前显示的表格&#xff0c;如果是分页表格想导出全部的数据话。有两种方法可以实现 表格先显示的全量数据&#xff0c;导出后再恢复当前页。新建一个隐藏的表格实例显示全量数据导出这个隐藏的表格实例。 下面是全量代码&#xff1a; <template><div&…

快速创建条形热力图

Excel中的条件格式可以有效的凸显数据特征&#xff0c;如下图中B列所示。 现在需要使用图表展现热力条形图&#xff0c;如下图所示。由于颜色有多个过渡色&#xff0c;因此手工逐个设置数据条的颜色&#xff0c;基本上是不可能完成的任务&#xff0c;使用VBA代码可以快速创建这…

git stash相关命令解释

git stash 这个命令会保存你当前工作区和暂存区的所有更改到一个临时的“stash”区域&#xff0c;然后使你的工作目录和暂存区变得干净&#xff08;即回到最近一次提交的状态&#xff09;。 当你想要回到这个“stash”区域中的更改时&#xff0c;你可以使用 git stash list 来查…

SRE监控的四个黄金指标到底长啥样?

一、监控的黄金信号 掌握系统运行状态&#xff0c;了解组件、服务的可靠性和稳定性&#xff0c;需要借助监控系统收集指标、可视化数据&#xff0c;并在异常出现时进行操作提醒。那么监控的都要关注哪些呢&#xff1f;我们来了解一下监控的指标&#xff0c;即系统中衡量的最重…

【pytorch03】pytorch基本数据类型

问题&#xff1a;String类型在pytorch中如何表示&#xff1f; 很遗憾&#xff0c;pytorch不是完备的语言库&#xff0c;而是面向数据计算的一个GPU加速库&#xff0c;因此没有内建对string的支持 我们会在做NLP的时候会遇到all string处理的问题&#xff0c;就比如说一句话&am…

华硕PRIME B450M-K主板开启虚拟化

1.判断电脑是否开启了虚拟化 按下CtrlShiftESC打开任务管理器&#xff0c;切换到性能页面&#xff0c;选择查看CPU 如果在右下角看到虚拟化&#xff1a;已禁用&#xff0c;则没有开启虚拟化 2.进入BIOS 重启或开机时&#xff0c;按下DEL或F2进入BIOS设置界面。 屏幕提示&am…

SAP系统中如何用事务码图形视图寻找MD04增强开发实施点

在之前发布的文章中&#xff0c;介绍了善用事务码的图形视图以观察事务的执行流程以及如何在MD04中实施增强以改变生产订单的显示顺序。本文结合两者&#xff0c;介绍一下如何利用事务码的图形视图找到增强开发的实施点。 在事务码中输入SE93&#xff0c;进入图形视图&#xf…

生命在于学习——Python人工智能原理(4.6)

在这里插一句话&#xff0c;我有两个好兄弟的github项目&#xff0c;感兴趣的可以去看一下&#xff0c;star一下&#xff0c;谢谢。 https://github.com/fliggyaa/fscanpoc https://github.com/R0A1NG/Botgate_bypass 四、Python的程序结构与函数 4.1 Python的分支结构 &…

如何将个人电脑做P2V备份到虚拟化平台

背景&#xff1a;公司员工个人电脑绑定了商用软件的license&#xff0c;现在员工离职&#xff0c;license又需要使用&#xff0c;电脑就一直被占用。 解决方法&#xff1a;利用VMware Vcenter Converter Standalone将此台式电脑上载到公司虚拟化平台上 具体做法&#xff0c;下…

sklearn-learn的安装

官网&#xff1a;scikit-learn: machine learning in Python — scikit-learn 1.5.0 documentation 是 pip install scikit-learn 不是 pip install sklearn