BGP的基本概念和工作原理

news2024/11/26 1:56:16

AS的由来

l Autonomous System 自治系统,为了便于管理规模不断扩大的网络,将网络划分为不同的AS

l 不同AS通过AS号区分,AS号取值范围1-65535,其中64512-65535是私有AS号

l IANA机构负责AS号的分发

AS之间传递路由

l AS之间的连接需要使用直连链路,或者是通过运营商建立VPN进行逻辑连接

l AS之间可能是不同的组织机构,使用IGP协议(例如:OSPF协议)传递路由信息将会有安全风险

AS之间传递路由使用BGP

l 因此我们在AS之间传递路由时使用BGP协议(边界网关路由协议 Border Gateway Protocol)

l 相较IGP协议,BGP协议有以下优势:

Ø BGP基于TCP工作(端口号179),因此只要能够建立TCP连接就可以建立BGP邻居关系;

Ø BGP能够承载上万条路由条目,而IGP仅能上千条;

Ø BGP路由器只传递路由条目,不会暴露AS内的拓扑信息,更加安全;

Ø 支持MPLS/VPN协议,用于传递客户VPN路由

BGP的特征

l BGP是距离矢量路由协议,邻居之间直接传递路由,每条BGP路由都携带多种属性

l 可以使用这些属性配置路由策略,实现灵活的路由选路,这是IGP协议无法做到的

BGP协议的应用场景

l BGP协议在企业中的应用主要有以下两个场景

Ø 大型企业的内部,存在多个分支,每个分支属于一个AS,通过BGP协议在不同分支之间传递路由

Ø 企业可以与运营商之间运行BGP协议,企业与运营商之间互相传递路由

BGP的工作原理

l BGP协议报文以单播的形式发送,BGP共有5种,其中路由是承载在Update报文中

BGP的有限状态机

状态之间的转换规则

BGP对等体

l 运行BGP的路由器被称为BGP Speaker或者BGP路由器

l 两台BGP路由器之间建立的关系叫BGP对等体(Peer)也叫BGP邻居,对等体之间交换BGP路由表

l BGP的Peer分为两种:EBGP和IBGP

l EBGP Peer:位于不同AS的路由器之间的BGP邻居关系

Ø 互为EBGP Peer的路由器彼此所属的AS号不同

Ø EBGP Peer一般基于直连接口建立

Ø Neighbor命令所指定的邻居IP地址要可达,TCP连接要能够正确建立

Ø EBGP的路由管理距离为20,因为AS之间BGP比IGP更优

l IBGP Peer:同属一个AS的路由器之间建立的BGP邻居关系

Ø 互为IBGP Peer的BGP路由器属于同一个AS

Ø IBGP Peer一般基于Loopback接口建立,Peer之间可以跨越路由器,只要TCP连接要能够正确建立

Ø IBGP的路由管理距离为200,因此AS内部IGP更优

BGP的邻居表

l BGP邻居表:包含了此台BGP路由器所有的邻居,以及他们之间的状态;

l BGP默认每隔60秒发送一次BGP/TCP存活消息,保持时间为180秒

l 每台BGP路由器独立维护一张BGP路由表,包含了本地导入以及从BGP peer学习所有BGP路由;

l BGP路由表中可用、最优的路由(标记为 *>)将会加载到全局IP路由表中;

BGP路由的生成

l BGP本身不会自动产生路由,必须要将IGP的路由引入到BGP路由表中。引入的方式有2种

BGP路由的传递

· BGP使用update报文将路由条目发送给BGP peer

· BGP传递路由遵循以下规则:

Ø 仅把BGP路由表中可用且最优(*>)的路由传递给BGP peer

Ø 从EBGP peer获得的路由,会发送给所有BGP peer(包括EBGP和IBGP)

Ø 从IBGP获得的路由默认会通告给它的EBGP peer(如果BGP同步开启则需要再判定)

BGP在AS内部的环路避免机制

l BGP作为一种D-V距离矢量路由协议,通过水平分割防止AS内部的环路

Ø 从IBGP获得的路由不向它的IBGP peer通告,以此来防止循环的发生

Ø IBGP在路由通告时也不会改变路由的下一跳,进一步防止循环的发生

l BGP同时还采用AS-Path属性来防止AS之间的环路

Ø EBGP向对等体通告路由时附加上自己的AS号存放在AS-path属性字段中,收到EBGP对等体Update报文时检查AS-path,如果发现自己的AS号则丢弃该路由,EBGP是依靠路由经过的AS路径来发现循环的

BGP的路由黑洞

l 由于在AS内部可以跨越设备建立IBGP对等体,因此会出现一些路径上的设备未运行BGP

l 这些设备由于未运行BGP,因此自然不会收到BGP传递来的路由信息

l 当有数据包经过这些设备时,因为没有相关路由信息,数据包将会被丢弃

避免路由黑洞问题的方法 —— BGP同步

l BGP协议为了防止路由黑洞问题,引入了同步机制

l 从IBGP对等体学习到的路由在成为最佳路由并向EBGP对等体通告之前必须被IGP学习到

l BGP同步默认关闭,如果开启则不会产生路由黑洞问题,但同时这些路由将无法正常使用

解决路由黑洞问题的方法

l 要想既不产生路由黑洞问题,又要使得这些路由可用,可采用以下方式:

Ø 路由重分布:把BGP的路由重发布到AS内的IGP

Ø IBGP全互联:在穿越路径上IBGP启用全连接,确保所有BGP路由过路设备都知道

Ø 使用MPLS:使用MPLS的转发机制解决穿越AS问题

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

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

相关文章

计算机体系结构与OS管理

冯诺依曼体系结构 我们只看数字信号(红色的线): 计算机数据的流动决定了计算机的效率,数据流动就是数据在不同地方的来回拷贝。 所以我们会采取让硬件设备直接与CPU链接的方式,所以就有了储存器了。储存器大大提升了效…

AppScan 扫描工具及使用

一、简介 原名 watchire Appscan ,2007年被IBM收购,成为IBM Appscan。IBM AppScan是一款非常好用且功能强大的Web 应用安全测试工具 曾以 Watchfire AppScan 的名称享誉业界,Rational AppScan 可自动化 Web 应用的安全漏洞评估工作,能扫描和检…

新手Pytorch入门笔记-transforms.Compose()

我使用的图片是上图,直接下载即可 transforms.Compose 是PyTorch中的一个实用工具,用于创建一个包含多个数据变换操作的变换对象。这些变换操作通常用于数据预处理,例如图像数据的缩放、裁剪、旋转等。使用transforms.Compose 可以将多个数据…

【数据结构(邓俊辉)学习笔记】绪论05——动态规划

文章目录 0.前言1. Fibonacci数应用1.1 fib():递归1.1.1 问题与代码1.1.2 复杂度分析1.1.3 递归分析 1.2 fib():迭代 0.前言 make it work,make it right,make it fast. 让代码能够不仅正确而且足够高效地…

pytorch-激活函数与GPU加速

目录 1. sigmod和tanh2. relu3. Leaky Relu4. selu5. softplus6. GPU加速7. 使用GPU加速手写数据训练 1. sigmod和tanh sigmod梯度区间是0~1,当梯度趋近0或者1时会出现梯度弥散的问题。 tanh区间时-1~1,是sigmod经过平移和缩放而…

Golang | Leetcode Golang题解之第50题Pow(x,n)

题目: 题解: func myPow(x float64, n int) float64 {if n > 0 {return quickMul(x, n)}return 1.0 / quickMul(x, -n) }func quickMul(x float64, n int) float64 {if n 0 {return 1}y : quickMul(x, n/2)if n%2 0 {return y * y}return y * y * …

微服务组件-反向代理(Nginx)

微服务组件-反向代理(Nginx) Nginx 基本概念 1、nginx是什么? ①、Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器同时也提供了IMAP/POP3/SMTP服务。它是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器&a…

Linux--内核移植(一)Kernel编译启动

Linux内核编译 编译内核之前需要先在ubuntu上安装lzop库,另外,图形化配置工具还需要ncurses库支持,安装命令为: sudo apt-get install lzop sudo apt-get install build-essential sudo apt-get install libncurses5-dev 在U…

大数据时代的引擎:大数据架构随记

大数据架构通常可以分为以下几层: 一、数据采集层 负责从各种数据源采集、清洗、转换、丰富以及格式化数据,可能包括结构化、半结构化和非结构化的数据。 1.1、常用的技术 在大数据领域,数据采集是一个关键的环节,常用的数据采集…

如何安装sbt(sbt在ubuntu上的安装与配置)(有详细安装网站和图解)

sbt下载官网 选择对应的版本和安装程序 Download | sbt (scala-sbt.org) 安装 解压 将sbt-1.9.0.tgz上传到xshell,并解压 解压: tar -zxvf sbt-1.9.0.tgz 配置 1、在/home/hadoop/sbt中创建sbt脚本 /home/hadoop/sbt 注意要改成自己的地址 cd …

【Linux】详解信号产生的方式

一、kill命令 在命令行中通过kill -数字 pid指令可以给指定进程发送指定信号。这里说明一下几个常见的信号: SIGINT(2号信号):中断信号,通常由用户按下CtrlC产生,用于通知进程终止。SIGQUIT(3号…

小型内衣裤洗衣机哪个牌子好?六大选购锦囊私藏分享

内衣洗衣机是现代家庭必不可少的小家电,它不仅方便快捷,还能够保持衣物清洁和卫生。然而,市场上洗衣机品牌众多,质量和性能参差不齐,使得消费者购买时难以做出选择。那么,小型内衣裤洗衣机哪个牌子好&#…

企业OA管理|基于SprinBoot+vue的企业OA管理系统(源码+数据库+文档)

企业OA管理目录 基于SprinBootvue的企业OA管理系统 一、前言 二、系统设计 三、系统功能设计 1 管理员模块的实现 1.1 用户信息管理 1.2 公告信息管理 1.3 客户关系管理 1.4 通讯录管理 2 用户模块的实现 2.1 客户关系添加 2.2 通讯录添加 2.3 日程安排添加 四、…

7-32 说反话-加强版

题目链接:7-32 说反话-加强版 一. 题目 1. 题目 2. 输入输出样例 3. 限制 二、代码 1. 代码实现 str1 input().split(\n)[0] // 按行获取输入 list_str str1.split()[::-1] // 按空格分割为字符串组,然后将字符串组逆序 str1 .join(list_str) //…

LCD液晶显示屏强光老化测试设备太阳光模拟器仪器

1. LCD液晶显示屏老化测试的意义 LCD液晶显示屏老化测试是评估显示屏寿命和性能的重要手段。随着科技的发展,LCD液晶显示屏已经成为我们日常生活中不可或缺的一部分。长期使用后,LCD液晶显示屏可能会出现亮度下降、颜色失真、响应速度变慢等问题。通过进…

已解决java.lang.IllegalThreadStateException: 非法线程状态异常的正确解决方法,亲测有效!!!

已解决java.lang.IllegalThreadStateException: 非法线程状态异常的正确解决方法,亲测有效!!! 目录 问题分析 场景描述 报错原因 解决思路 解决方法 检查线程状态 正确管理线程生命周期 异常处理 总结 博主v&#xff1a…

STM32中断实现旋转编码器计数

系列文章目录 STM32单片机系列专栏 C语言理论和实践总结专栏 文章目录 1. 旋转编码器 2. 中断代码编写 2.1 Interrupt.c 2.2 Interrupt.h 2.3 完整工程文件 1. 旋转编码器 旋转编码器主要用于测量轴的旋转位置、速度或者是角度的变化,它能够将转动的角度或者…

LeetCode57. 插入区间

LeetCode57.插入区间 题目思路: 代码 /* 前置知识&#xff1a; vector<vector<int>> a,b; 二维vector数组是可以将二维中的一维vector数组给push_back的&#xff0c; 不是只有单个元素才可以&#xff0c;整个一维的vector数组也可以 b[0] {1,2,3},b[1] {4,5,6}…

积极应对半导体测试挑战 加速科技助力行业“芯”升级

在全球半导体产业高速发展的今天&#xff0c;中国“芯”正迎来前所未有的发展机遇。AI、5G、物联网、自动驾驶、元宇宙、智慧城市等终端应用方兴未艾&#xff0c;为测试行业带来新的市场规模突破点&#xff0c;成为测试设备未来重要的增量市场。新兴领域芯片产品性能不断提升、…

如何解决IntelliJ IDEA 2024打开项目时频繁闪退问题

&#x1f42f; 如何解决IntelliJ IDEA 2024打开项目时频繁闪退问题 &#x1f43e; 文章目录 &#x1f42f; 如何解决IntelliJ IDEA 2024打开项目时频繁闪退问题 &#x1f43e;摘要引言正文&#x1f4d8; 识别问题&#x1f4d9; 内存配置调整步骤1: 定位vmoptions文件步骤2: 修改…