BGP的基础知识

BGP——边界网关协议

IGP——内部网关协议——OSPF、RIP、ISIS

EGP——外部网关协议——EGP、BGP

边界网关协议BGP是一种实现自治系统AS之间的路由可达,并选择最佳路由的路径矢量路由协议。目前在IPV4环境下主要使用BGPV4,目前市场上也存在BGPV4+,是在BGPV4的基础之上支持了更多的地址族,例如IPV6。

AS自治系统

由单一的组织或者机构独立维护的网络设备以及网络资源的集合。

划分AS的原因

  • 整个世界网络范围过大,单一网络收敛很慢且延迟较大。
  • 每个网络可能是某个组织或公司建立的,它们并不想将自己辛苦建立的网络交给别人管理,所以需要进行自治。

AS号

为了区分不同的AS,网络世界IANA组织提出了AS号——0-65535,0和65535一般作为保留AS号来使用,1-64511作为公有AS号使用,64512-65534作为私有AS号使用。

拓展AS号——将原本16位的AS号拓展到32位。

BGP的一些特性

  • 高可控性——路径属性
  • 高可靠性——TCP
  • AS-BY-AS——BGP把一个AS看作一个整体

BGP设计了很多路径属性,可以通过调用路由策略关联这些属性,达到路由控制的效果。

我们对IGP和EGP的要求不同,IGP需要在一个AS内计算路由,所以我们要求IGP选路佳、收敛快、占用资源少;而EGP不同,EGP协议只需要传递AS已经计算好的路由,所以我们对EBP的可控性、可靠性要求更高。

BGP传递的一定是路由条目信息

BGP没有使用周期更新传递路由信息

BGP存在触发更新

BGP在传输层使用TCP进行传输:端口号——179

BGP在建邻时必须指定建邻的对象,BGP技术支持非直连建邻

RIP是无类别的距离矢量路由协议,BGP是无类别的路径矢量协议,无类别——在传递路由条目信息时携带子网掩码,从而减少路由黑洞的产生。

BGP默认情况下不支持负载均衡,BGP会根据传递过来的路由信息中携带的路径属性选择最优的路径信息加载到路由表中。

BGP把AS看作一个整体

RIP/IGP实际上是一个算法的概念,BGP不是一个算法的概念,BGP也不需要计算路由信息,只负责转发路由即可。

EBGP对等体——一般建议采用直连建立对等体关系

IBGP对等体——一般采用非直连建邻

BGP为了实现这两个原则:BGP规定EBGP对等体之间发送数据包中携带的TTL值为1,而IBGP对等体之间传递的数据包TTL值为255。

BGP的数据包

报文名称作用发送时刻
Open协商BGP对等体参数,建立对等体关系BGP TCP建立连接成功之后
Update发送BGP路由更新BGP对等体关系建立之后又路由需要发送或路由变化时向对等体发送Update报文
Notification报告错误信息,中止对等体关系当BGP在运行中发现错误时,发送Notification报文将错误信息通告给BGP对等体
Keepalive标志对等体建立,维持BGP对等体关系BGP路由器收到对端发送的Keepalive报文,将对等体状态置为已建立,同时后续定期发送keepalive报文用于保持连接
Route-refresh用于在改变路由策略后请求对等体重新发送路由信息。只有支持路由刷新能力的BGP设备会发送和响应此报文当路由策略发生变化时,触发请求对等体重新通告路由

BGP的公共头部

Open包

作用:用来建立BGP对等体关系的数据报文。

  • AS号:自身的AS号,对比逻辑——对等体发过来的Open报文中携带的AS号必须和指定建邻的AS号一致,否则会导致建邻失败。
  • RID:建邻双方的RID不能一致,如果相同,会导致建立对等体失败。
  • 认证:BGP在建邻时如果做认证的话,需要对比双方认证口令,不一致则无法建立邻居关系。
  • 保活时间:类似于OSPF的死亡时间,默认180s,如果对等体双方保活时间不一致,会按照时间更小的去执行。

Keepalive包

  • 用来周期保活BGP的邻居关系,默认是1/3的保活时间——60s
  • 用来做Open报文的临时确认包

Update包

传递BGP路由信息的数据包。

BGP中的更新包,用来携带路由条目信息,包括目标网段、子网掩码以及BGP的各种属性。

在Update包中存在撤销路由字段,我们可以直接将不可达的路由信息放在该字段下进行通告,以达到传递失效信息的目的。而不需要想RIP那样采用带毒传输的方式。

Notification包

告警报文,在BGP工作过程中如果出现故障出现问题,会发送Notification报文告知对等体问题的原因。

Toute-refresh包

一种刷新机制,用于改变路由策略后请求对等体重新发送路由信息,前提是对等体双方均支持路由刷新。

BGP状态机

建立对等体之间TCP会话,指定建立对等体的对象。

BGP在建立对等体过程中,会建立两次TCP会话,会保留RID大的设备发起的TCP会话。

BGP一共存在6种状态机

Peer状态名称用途
Idle开始准备TCP的连接并监视远程对等体,启用BGP时,要准备足够的源
Connect正在进行TCP连接,等待完成中,认证都是在TCP建立期间完成的,如果TCP连接建立失败则进入Active状态,反复尝试连接
ActiveTCP连接没建立成功,反复尝试TCP连接
OpenSentTCP连接已经建立成功,开始发送Open包,Open包携带参数协商对等体的建立
OpenConfirm参数、能力特性协商成功,自己发送Keepalive包,等待对方的Keepalive包
Established已经收到对方的Keepalive包,双方能力特性经协商发现一致,开始使用Update通告路由信息

Idel状态下,启动BGP协议后,必须指定建立对等体的目标之后,进入下一个状态。

必须路由可达(依靠IGP协议或者静态、直连)

Connect状态下,BGP对等体之间开始建立TCP会话连接。如果TCP会话建立成功,则进入OpenSent状态,如果TCP会话建立失败,则进入Active状态。

如果TCP会话(三次握手)建立成功,则进入OpenSent状态,开始发送Open报文,去建立BGP对等体关系。

如果认可对等体发过来的Open报文中的参数,首先会回复一个Keepalive报文,用来确认Opne报文中的参数我已经认可,并且进入下一个OpenConfirm状态。

OpenConfirm状态下,如果收到对等体发送的Keepalive报文,则进入最终状态Established。

BGP的工作过程

1、基于IGP(静态、直连、RIP、OSPF...)实现路由可达,原因:BGP需要建立TCP会话(单播)。

2、指定邻居关系,邻居之间单播传输,通过三次握手,建立TCP会话通道。之后所有BGP通信都将基于TCP会话通道来进行传输。并且依据TCP提供传输的可靠性。

3、使用Open报文和Keepalive报文进行邻居关系的建立。Open报文用来携带建邻使用的参数,Keepalive报文用于Open报文参数的确认。最终完成对等体关系的建立,生成邻居表,存储BGP对等体关系信息。

4、建立邻居关系后,使用Update报文来共享路由条目信息。信息中将携带目标网络号,掩码几路径属性;之后,将发送以及收集到的路由信息记录在一张表中——BGP表。

5、之后,会将BGP表中最优的路由信息(通过路由属性选择的结果)加载到路由表中。

6、收敛完成后,将使用Keepalive报文进行对等体之间的周期保活,默认保活时间为180s(hole time),发送周期为60s。

7、如果这个过程出现任何问题,都将使用Notification报文进行告警。

8、如果出现结构突变(网段消失或者新增网段),则将使用Update报文进行触发更新,并通告给其他对等体。

BGP的路由黑洞

控制层面的可达

数据层面实际不可达——中间设备没有运行BGP

IGP内部存在没有运行BGP的设备,当访问BGP网段的流量来到这些设备之后,由于控制层面可达,数据层面不可达(这些设备没有运行BGP,没有BGP网段的路由信息),那么将丢弃这些流量。

解决方案:

  • 所有设备均运行BGP
  • 重发布
  • MPLS——最早专门用来解决BGP路由黑洞研发的一种路由协议。

同步机制——当设备学习到一条BGP路由,如果本地IGP路由表不可达,将视该BGP路由无效。默认处于关闭状态。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

什么是java反射机制?

类的正常加载 反射概述 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为jav…

多因素方差分析(Multi-way Analysis of Variance) R实现

1, data0507 flower 是某种植物在两个海拔和两个气温下的开花高度,采用合适 的统计方法,检验该种植物的开花高度在不同的海拔之间和不同的气温之间有无差异?如果有差异,具体如何差异的?(说明依据、结论等关…

网络运维与网络安全 学习笔记2023.11.18

网络运维与网络安全 学习笔记 第十九天 今日目标 冲突域和交换机工作原理、广播域和VLAN原理 VLAN配置、TRUNK原理与配置、HYBRID原理与配置 冲突域和交换机工作原理 冲突域概述 定义 网络设备发送的数据,产生冲突的区域(范围) 对象 “数…

开源情报 (OSINT)

开源情报 (OSINT)是出于情报目的收集和分析公开数据的行为。 什么是开源数据? 开源数据是公众容易获得或可根据要求提供的任何信息。 OSINT 来源可包括: ▶ 报纸杂志文章以及媒体报道▶ 学术论文和发表的研究▶ 书籍和其他参考资料▶ 社交媒体活动▶…

rabbitmq默认交换机锁绑定的routingkey-待研究

例如这个是我的一个消息队列,它默认绑定的交换机是 什么类型呢? 看到这个图,感觉应该是一个默认的交换机,因为是default exchange 于是来到交换机来看看其他默认的交换机: 这里可以看到默认的交换机是direct(应该没…

损失函数(Loss Function)与代价函数(Cost Function)、目标函数(Objective Function)区别

损失函数定义在单个样本上,算的是一个样本的误差。 代价函数定义在整个训练集上,是所有样本误差的平均,也就是损失函数的平均。 目标函数定义为最终需要优化的函数,等于经验风险 结构风险(也就是Cost Function 正则化…

UE 调整材质UV贴图长宽比例

首先,为什么要先减去0.5呢,因为缩放的贴图中心在0,0原点,以这个点缩放效果是这样: 它缩放的图案不会在正中间,因为是以0,0点进行缩放的 以这个图的箭头去缩放图片的,所以不能使得缩放后的图片放在正中心 那…

<C++>类和对象下|初始化列表|explicit static|友元|内部类|匿名对象|构造函数的优化

文章目录 1. 初始化列表2. explicit关键字3. 友元3.1 友元函数3.2 友元类 4. static关键字4.1 概念4.2 特性 5.内部类5.1 概念5.2 特性 6. 匿名对象7. 拷贝构造时的优化 1. 初始化列表 在类的构造函数体中,对成员属性写的操作叫做赋值,那么成员的初始化…

深度学习数据集—细胞、微生物、显微图像数据集大合集

最近收集了一大波关于细胞、微生物、显微图像数据集,有细胞、微生物,细菌等。 接下来是每个数据的详细介绍!! 1、12500张血细胞增强图像(JPEG)数据集 该数据集包含12500张血细胞增强图像(JPE…

实验(三):微程序计数器uPC实验

一、实验内容与目的 实验要求: 利用 CP226 实验仪上的 K16..K23 开关做为 DBUS 的数据,其它开关做为控制信号,实现微程序计数器 uPC 的写入和加1功能。 实验目的: 1、了解模型机中微程序的基本概念。 2、了解 uPC 的结构、工作原理…

windows nodejs 15.0.0下载安装

下载 Node v15.0.0 (Current) | Node.js (nodejs.org) 下载地址 https://nodejs.org/dist/v15.0.0/node-v15.0.0-x64.msi 安装 双击运行 等待安装完成 确认安装成功 管理员运行cmd 查看版本号

微信(小程序开发): 解决播放音乐没有声音的情况 代码不报错的情况下依旧没有声音的解决方案

解决无声的问题 在此之前,确保代码能够正常执行哈!发这个其实没什么,就是有些人光写代码不调试出现了这个问题 其实解决方法特别简单 第一步: 打开项目后,点击三个点,然后选择模拟操作 第二步&#xff…

AIGC 是通向 AGI 的那条路吗?

AIGC 是通向 AGI 的那条路吗? 目录 一、背景知识 1.1、AGI(人工通用智能) 1.1.1、概念定义 1.1.2、通用人工智能特质 1.1.3、通用人工智能需要掌握能力 1.2、AIGC 二、AIGC 是通向 AGI 的那条路吗? 三、当前实现真正的 A…

python趣味编程-5分钟实现一个打字速度测试(含源码、步骤讲解)

Python速度打字测试是用 Python 编程语言编写的,速度打字测试 Python项目理念,我们将构建一个令人兴奋的项目,通过它您可以 检查 甚至 提高 您的打字速度。 为了创建图形用户界面(GUI),我们将使用 用于处理图形的pygame库。 Python 打字速度测试有利于学生或初学者提高…

基于动物迁徙算法优化概率神经网络PNN的分类预测 - 附代码

基于动物迁徙算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于动物迁徙算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于动物迁徙优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要:针对PNN神…

问卷工具价格一览:合理定价,满足您的预算需求

在市场调研、市场营销和客户反馈收集等方面,问卷调查是一项重要而有效的工具。而在众多的问卷工具中,Zoho Survey以其丰富的功能和灵活的定价模式而备受关注。Zoho Survey的定价如何?今天我们来聊一聊。 Zoho Survey提供了多种定价方案&…

JRC Monthly Water History, v1.4数据集

简介: JRC Monthly Water History产品,是利用1984至2020年获取的landsat5、landsat7和landsat8的卫星影像,生成的一套30米分辨率的全球地表水覆盖的月度地表水监测地图集。该数据集共有442景数据,包含1984年3月至2020年12月间的月…

【心得】PHP的文件上传个人笔记

目录 1 php的文件上传绕过 黑名单绕过 2 php文件上传的00截断 3 iconv字符转换异常后造成了字符截断 4 文件后缀是白名单的时候的绕过 web服务器的解析漏洞绕过 5.高级文件上传绕过 1 .htaccess nginx.htaccess 2 服务端内容检测 3 配合伪协议来绕过 4.配合日志包含绕…

云课五分钟-0ALinux文件系统及权限-查询命令如何使用

前篇: 云课五分钟-09Linux基础命令实践-AI助力快速入门 视频: 云课五分钟-0ALinux文件系统及权限-查询命令如何使用 文本: Linux文件系统及权限示例教程(Ubuntu) 一、Linux文件系统基础 在Linux中,一切…

〖大前端 - 基础入门三大核心之JS篇㊲〗- DOM改变元素节点的css样式、HTML属性

说明:该文属于 大前端全栈架构白宝书专栏,目前阶段免费,如需要项目实战或者是体系化资源,文末名片加V!作者:不渴望力量的哈士奇(哈哥),十余年工作经验, 从事过全栈研发、产品经理等工作&#xf…