HCIP BGP概念、工作原理、特点总结

news2024/9/22 11:31:14

BGP概念

BGP---边界网关路由协议,无类别的路径矢量EBP协议

BGP类别的路由协议,用于AS与AS间进行路由条目共享;

AS指的是在同一个组织管理下,使用统一选路策略的设备集合,不同AS号通过AS号来区分,AS号存在16bit、32bit两种标识,IANA负责AS号的分发。

AS编号范围:0-65535,其中1-64511为公有,64512-64513私有。

http://www.cidr-report.org  IANA---可以通过次网站查看全球的AS号

中国第一个AS号:4134

BGP设计特性

1、可靠性

      大量的路由共享,取消周期更新,基于TCP单播通信,179端口工作;

      BGP需要单播建立邻居关系(手工指定邻居的IP地址),BGP可以非直连建邻,BGP承载于IGP之上;

        BGP协议虽然像距离矢量协议一样仅传递路由条目,但更新量依然很大;

        为了避免对设备资源的占用选择了增量更新---仅触发、无周期   

        故需要保障所有的路由传递到位—可靠    因此BGP协议基于TCP工作

        TCP的三次握手条件使得TCP只能基于单播工作,同时BGP需要非直连建邻;

        BGP基于IGP之上,先IGP使BGP设备间IP可达,然后BGP才能基于TCP建立非直连邻居关系;

2、可控性

        BGP协议不是路由的产生者,仅为搬运者,且AS间正常应该存在大量的链路来保障稳定性;故BGP协议传递的路由条目很难默认最佳选路;需要管理员对路由进行大量的策略来干涉选路;

3、AS BY AS        

        以一个AS为下一跳。

BGP特点

  1. 无类别路径矢量 -----距离矢量的升级版---AS--BY--AS
  2. 使用单播更新来发送所有信息;基于TCP 179端口工作
  3. 增量更新--仅触发无周期
  4. 具有丰富的属性来取代IGP中度量进行选路----多个参数控制协议
  5. 可以在进项和出项对流量实施强大的策略--可控性
  6. 默认不被用于负载均衡-----通过各种选路规则仅仅产生一条最佳路径
  7. BGP支持认证和聚合(汇总)

BGP对等体关系

与OSPF、IS-IS等协议不同,BGP的会话是基于TCP建立的,建立BGP对等体关系的两台路由器并不要求必须直连,通常使用环回接口来建立对等体关系。

缺省情况情况下,BGP使用报文接口作为TCP连接的本地接口。

BGP 使用报文出接口作为TCP连接的本地接口。

BGP存在存在两种对等体关系:EBGP和IBGP。

EBGP

位于不同自治系统中的BGP系统的BGP路由之间的BGP对等体关系,两台路由器之间要建立EBGP对等体关系,必须满足三个条件:

        两个路由器所属AS不同(即AS号不同);

        在配置EBGP时,Peer命令所指定的对等体IP地址要求路由可达,并且TCP连接能够正确建立。

        在部署对等体关系时,通常使用直连接口的IP地址作为源地址,如若使用环回接口建立EBGP对等体关系,则应该逐一多跳问题,发送数据包中的TTL值通常修改为2。

IBGP

位于相同自治系统的BGP路由之间的BGP邻接关系。

        在部署IBGP对等体时,建议使用环回地址来作为更新源地址,环回接口非常稳定,而且可以借助AS内的IGP和冗余拓扑来保证可靠性。

        一般在AS内部,网络具备一定的冗余性,在两个个路由器之间有多条线路到达,如果采用直连接口建立IBGP邻居关系,那么一旦接口或者直连链路发生故障,BGP会话也就会断开,但事实上,由于冗余链路的存在,两个路由器之间的IP连通性其实也没有DOWN(仍然可以通过其他路径到达)。

BGP数据包

基于TCP的179端口工作;故BGP协议中所有的数据包均需要在tcp会话建立后,基于TCP的会话来进行传输及可靠性的保障;首先通过TCP的三次握手来寻找到邻居;

BGP存在5中数据包类型,常见的是前四种数据包。

Open报文

是TCP连接建立之后发送的第一个报文,用于建立BGP对等体之间的连接关系。

需要对比协商的参数如下:

        AS号--BGP的Open报文会携带本地的AS号。通过比较两端的AS号可以判断对端是否和本端处于相同的AS号。另外,如果对方的AS号和本地建邻时写的AS号不同,则将导致邻居关系无法建立。

        RID--被称为BGP的标识符,和OSPF的RID相同,由32位二进制构成,按照IP地址格式来写,这个值也会在数据包中携带,将对比两端值是否相同,相同则表示存在冲突,将导致建邻失败。

        BGP也可以进行认证,认证口令不同,则也将导致建邻失败。

        open报文中还会携带Hold Time--保活时间,在建立对等体关系时两端要协商Hold Time,并保持一致,如果在这个时间内未收到对端发来的Keepalive报文或者Update报文,则认为BGP连接中断---该时间默认时是180S,双方保活时间不一致,则将按照小的执行。

Keepalive报文

用来来周期保活

        周期保活时间默认是保活时间的1/3,默认60s。

        该报文还将在open报文协商参数时,临时充当确认报文--确认open报文中的参数是否认可。

Update报文

用于在对等体之间传递路由信息,可以用于发布、撤销路由。

        一个Update报文可以通告具有相同路径属性的多条路由,这些路由保存在NLRI(网络层可达信息)中。同时Update还可以携带多条不可达路由,用于告知对方撤销路由,这些保存在Withdrawn Routes字段中。

Notiflcation报文

是当BGP检测到错误状态时(对等体关系建立,建立之后都可能发生),就会向对等体发送Notification,告知对端错误原因。之后BGP连接将会立即中断。

Route-refresh报文

用来要求对等体重新发送指定地址族的路由信息,一般为本端修改了相关路由策略之后让对方重新发送Update报文,本端执行新的路由策略重新计算BGP路由。

BGP状态机

BGP的状态机和OSPF的状态机不同之处在于--BGP的状态机仅描述的是对等体关系建立过程的状态变化--主要因为BGP可以将邻居建立过程和BGP路由收发过程分开。

BGP存在6中状态机

BGP的工作过程 

1、基于IGP实现IP可达。

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

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

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

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

6、收敛完成后,将使用Keepalive报文进行周期保活,默认的保活时间为180S,发送周期为60S。

7、如果出现错误,将使用notification报文进行警告。

8、若出现结构突变,则将使用Update报文进行触发更新。

BGP的结构突变

1、新增网段 – BGP更新源设备将使用update来告知本地所有的邻居

2、断开网段 – BGP更新源设备将使用update来告知本地所有的邻居

3、无法沟通 – 3min hold time到时时断开邻居关系和TCP会话,之后删除从该邻居处学习到的所有信息;

BGP的路由黑洞

由于bgp协议可以非直连建立邻居关系,故若两台BGP邻居间存在未运行BGP协议的路由时;可能出现路由条目可以在控制层面正常单播传递,但数据层面流量经过未运行BGP协议的设备时,无法通行;

也就是控制层面可达,数据层面不可达;

解决方法:

1、物理或逻辑链路全连

2、全连的BGP邻居关系,所有设备运行bgp;

3、将BGP路由条目重发布到IGP协议中(LAB)

4、最佳方案---MPLS  多协议标签交换

BGP的防环机制

水平分割

1、EBGP水平分割—防止EBGP环路

利用BGP条目中的as-path 属性,该属性将记录所有经过的AS编号;接收到的路由条目中若as-path中存在本地的AS号,将拒绝接收;

2、IBGP水平分割—防止IBGP环路

基于AS-BY-AS特性,BGP的路由条目默认在一个AS内部传递时,其属性不变化;

IBGP水平分割--- 从一个IBGP邻居处学习到的路由条目不得传递给本地其他IBGP邻居;

因为BGP协议具有非直连建立邻居的能力,故在一个AS内部只要设备运行BGP协议,那么其必然存在EBGP邻居关系(一定连接了其他的AS);IBGP水平分割规则将导致在一个AS内部所有运行了BGP协议的路由器间,均需要建立IBGP邻居关系,才能正常传递路由条目---建立邻居关系的配置成指数增长;

可以使用联邦和路由反射器来解决该问题;

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

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

相关文章

小程序如何上传商品图片

了解如何在小程序商城中上传商品图片是非常重要的,因为商品图片的质量和展示效果直接影响到用户对商品的购买决策。下面,我将介绍怎么在小程序上传产品图片的方法和注意事项。 1. 图片准备:在上传商品图片之前,首先要准备好商品图…

Android手机使用无线调试进行adb连接

平时进行真机调试apk的时候,总是要插着数据线,比较麻烦,而使用无线调试就可以方便的进行连接,步骤如下: 1、进入设置找到开发者选项 2、打开开发者选项中的无线调试 3、使用配对码进行配对,输入命令&…

IDEA中修改代码中注释的字体颜色

IDEA中修改代码中注释的字体颜色 一、修改文档注释的字体颜色 选择File--Settings--Color Scheme--Language Defaults,可以修改单行注释的字体颜色,多行注释的字体颜色以及文档注释的颜色,我一般习惯将文档注释和多行注释设置成绿色 008017…

运用大数据软件提高竞彩足球胜平负分析的准确率

竞彩足球是一种以足球比赛结果为基础的体育游戏,它吸引了众多热爱足球的球迷和彩票爱好者的参与。然而,要在竞彩足球中取得最佳的胜平负预测结果并非易事。幸运的是,随着大数据技术的不断发展和应用,我们可以利用大数据软件来提高…

这次,常温超导能否变为现实?

关注科研和技术的朋友近几天应当都听到韩国研发常温超导材料的消息了,作为攻城狮的我自然也是非常感兴趣,经过一番思想斗争还是放下了手上的单片机,想要一看这个常温超导的究竟,毕竟印象之中之前已经搞过好几次乌龙了。常温超导要…

overpass-turbo下载铁路线

overpass turbo /* This has been generated by the overpass-turbo wizard. The original search was: “road” */ [out:json]; rel(198494); out body; >; out skel qt; 上面的198498代表在osm中铁路线的id,这个id获取流程是从osm网站查询出来的 我也没啥好…

MPAndroidCahrt_linechart折线图实现读取本地文件生成曲线

目录 标题(Description)设置图例(Legend)设置(部分和标题一样的没写)X轴(XAxis)设置(上面有的属性不再写了)数据源(LineData)设置MainActivity 注释部分可以删掉,看需不需要效果如下,目前实现基本的读取数据生成曲线,可以正常运行 还有很多bug,比如生成一个数据在生成另…

(二)创建streamlit的第一个应用

1 前言 📣 重要通知!在我之前的博客中,曾经介绍过Streamlit的安装方法和初步应用。如果你还没有参阅过,请先阅读这篇文章,它为我们接下来的探索铺垫了基础。🔍😊 (一) 初识Streamlit——安装以…

Nodejs 第二章(安装)

安装nodejs 访问官网 en https://nodejs.org/en cn http://www.nodejs.com.cn/ LTS 长期支持版 Current 尝鲜版 选择自己的操作系统 windows Mac Linux windows需要区分64位和32位 Mac需要区分64位还是ARM芯片 Linux同上。 其中msi 和 pkg 可以直接安装较为简单 Mac Pkg wi…

小型双轮差速底盘寻迹功能的实现

1. 功能说明 寻迹机器人是一种能够跟踪特定物体或线路的机器人。它们通常具有以下功能和特点: ① 传感器:寻迹机器人配备了用于感知环境的传感器,如摄像头、灰度传感器等。这些传感器可以探测地面上的标记、颜色、纹理或其他特定特征&#xf…

Vue3和TypeScript项目-移动端兼容

1 全局安装typescript 2 检测安装成功 3 写的是ts代码,但是最后一定要变成js代码,才能在浏览器使用 这样就会多一个js文件 3 ts语法 数组语法 对象语法 安装vue3项目 成功后进入app。安装依赖。因为我们用的是脚手架,要引入东西的时候不需要…

网格简化(QEM)学习笔记

文章目录 网格简化(QEM)1 概述与原理1.1 网格简化的应用1.2 常见的简化操作1.3 二次误差度量 2 算法流程2.1 逐步分析 3 Python代码实现3.1 测试结果 4 总结参考 网格简化(QEM) 1 概述与原理 网格简化,通过减少复杂网格数据的顶点、边和面的数量简化模型的表达&am…

MIT 6.S081 Lab Ten -- mmap

MIT 6.S081 Lab Ten -- mmap 引言mmap(hard)代码解析 引言 本文为 MIT 6.S081 2020 操作系统 实验十解析。 MIT 6.S081课程前置基础参考: 基于RISC-V搭建操作系统系列 mmap(hard) map和munmap系统调用允许UNIX程序对其地址空间进行详细控制。它们可用于在进程之间共享内存&a…

SOLIDWORKS Flow Simulation可以便捷的进行降压分析

导读:现如今压降等应用的工程分析一直是由分析部门的专家执行,这些部门独立于主流设计和开发部门,或者仅为一些重要产品制造昂贵的物理原型。要测试或验证其设计,机械工程师必须依赖于创建物理原型并在工作台或测试台上对其进行测…

【Maven】Nexus3上传maven依赖jar

后端依赖 上次说到前端的批量tgz文件上传私服,其实服务端也有类似情况,我们有个私服也需要进行上传到私服,这里做个记录。因为上次有个小细节没注意白白传错了一遍,这里重新记录总结一下。 # 查看一下结构 $ tree -L 2 . |-- re…

春秋云镜 CVE-2021-32305

春秋云镜 CVE-2021-32305 WebSVN RCE 靶标介绍 WebSVN是一个基于Web的Subversion Repository浏览器,可以查看文件或文件夹的日志,查看文件的变化列表等。其search.php?search 参数下过滤不严谨导致RCE。 启动场景 漏洞利用 EXP PAYLOAD "/bi…

快速消除视频的原声的技巧分享

网络上下载的视频都会有视频原声或者背景音乐,如果不喜欢并且想更换新的BGM要怎么操作呢?今天小编就来教你如何快速给多个视频更换新的BGM,很简单,只需要将原视频的原声快速消音同时添加新的背景音频就行,一起来看看详…

express学习笔记3 - 三大件

便于统一管理router,创建 router 文件夹,创建 router/index.js: const express require(express)// 注册路由 const router express.Router() router.get(/,function(req,res){res.send(让我们开始express之旅) }) /*** 集中处理404请求的…

2023 全国大学生电子设计竞赛题目

2021 全国大学生电子设计竞赛题目 目录 1(A题)单相逆变器并联运行系统2 (B题)同轴电缆长度与终端负载检测装置3 (C题)电感电容测量装置4 (D题)信号调制方式识别与参数估计装置5 &am…

数据库访问中间件--springdata-jpa的基本使用

二、单表SQL操作-使用关键字拼凑方法 回顾 public interface UserRepository extends JpaRepository<User,Integer> {User findByUsernameLike(String username); }GetMapping("/user/username/{username}")public Object findUserByUsername(PathVariable S…