BGP知识总结

news2024/11/22 14:59:05

目录

EGP和IGP的协议追求

EGP的协议追求

IGP的协议追求

BGP的特点

BGP数据包

BGP的工作过程

1、配置完成后

2、邻居关系建立后

3、收敛完成

 BGP路由黑洞问题

BGP的防环机制

1、EBGP水平分割——解决EBGP环路

2、IBGP水平分割——解决IBGP环路由中的一种机制

BGP的基本配置

1、BGP邻居关系建立

2、BGP的宣告

BGP的宣告问题

BGP的自动汇总问题

BGP的认证

BGP的聚合(汇总)

标准的BGP聚合配置

路由传递干涉

BGP在MA网络中的下一跳问题

BGP的属性

PrefVal(优先级)

LocPrf 本地优先级

优先本地下一跳

AS-PATH

起源属性

MED

BGP选路规则


BGP:

        边界网关路由协议,属于无类别的路径矢量协议,EGP协议中最流行的技术,工作在AS之间

EGP:

        外部网关路由协议

IGP:

        内部网关路由协议

AS:

        自治系统

注意:

        BGP协议本身不产生路由,而是转发本地路由表中来自其他协议生成的路由条目;AS之间正常存在大量的BGP邻居关系,且BGP协议不会计算最佳路径;因此在BGP协议中管理员需要进行策略来干涉选路

EGP和IGP的协议追求

EGP的协议追求

        【1】可控性强

解释:

        管理员可以方便进行策略干涉选路

        【2】可靠性

解释:

        BGP协议设备间需要交互大量的路由条目,但又不能选择周期更新来占用链路资源,故只能进行触发更新;且BGP协议工作环境中为节约成本,必然出现非直连需要建立邻居关系 ----- 单播邻居

        基于TCP工作        三次握手四次挥手

IGP的协议追求

        【1】无环(选路佳)

        【2】收敛快

        【3】占用资源少

BGP的特点

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

BGP数据包

        基于TCP的179端口工作;故BGP协议中所有的数据包均需要在tcp会话建立后,基于TCP的会话来进行传输及可靠性的保障

        首先通过TCP的三次握手来寻找到邻居

BGP的工作过程

1、配置完成后

        邻居间单播TCP三次握手,目标端口179,建立TCP的会话;之后所有的BGP协议数据包基于该会话进行传输

     会话完成后

        邻居间正常收发一次open报文建立BGP的邻居关系,生成邻居表

        BGP协议的open报文中将携带本地的RID—生成方式和OSPF一致;仅需要本地及本地所有邻居唯一即可

2、邻居关系建立后

        默认每1min,使用keeplive周期保活邻居关系(周期保活TCP会话)

        管理员选择性将本地路由表中通过任意来源获取的路由条目,向BGP协议中进行宣告;使用updata数据包进行邻居间路由共享;之后生成BGP;--- 装载本地发出及接收到的所有路由条目

        默认将最优路径加载于路由表

3、收敛完成

        仅keeplive周期保活即可

注意:

        若出现错误信息,邻居间将使用Notification报文进行报错操作

4、结构突变

       【1】新增

                本地使用updata向本地所有邻居告知,前提该路由不被已经发出的聚合路由包含

        【2】断开

                本地使用updata向本地所有邻居告知,前提该路由不被已经发出的聚合路由包含只有到聚合条目中包含的所有明细路由均在本地失效,才告知邻居删除聚合条目

       【3】无法沟通

                hold time为3min,连续3次未收到邻居的keeplive;断开邻居关系、TCP会话,删除从该邻居处学习到的所有路由

 BGP路由黑洞问题

        非直连建邻到达控制层面路由条目可传递,递归计算路由可达;而实际数据层面流量在经过没有运行BGP协议的路由器时无法通过,最终有去无回

  1. 物理、逻辑拓扑全连 --  物理链路直连、或者vpn
  2. 邻居关系全连 – 网络中所有设备运行BGP
  3. BGP重发布到IGP(LAB)
  4. MPLS 多协议标签交换--- 推荐做法

BGP的防环机制

BGP的防环机制——水平分割

1、EBGP水平分割——解决EBGP环路

     依赖了BGP路由条目中的一种属性来进行防环;AS-PASH路径属性;BGP协议在传递路由条目的过程中,将记录所有经过的AS的编号;EBGP水平分割—接收到的路由条目中,若存在本地的AS号将拒绝该条目进入;

2、IBGP水平分割——解决IBGP环路由中的一种机制

        本地从一个IBGP邻居处学习到的路由条目,不得传递给本地的其他IBGP邻居

        由于BGP可以非直连建立邻居关系,故在一个AS内部,可以通过与多台运行BGP协议的路由器建立BGP邻居关系,来稳定关系网络;因此在一个AS内部运行BGP协议的设备,正常均存在EBGP邻居(均同时连接其他AS)

        在IBGP水平分割的限制下,虽然避免了IBGP的环路产生,但同时也使得AS内部为了能够传递路由条目必须两两间建立IBGP邻居关系,邻居关系成指数上升,配置量巨大;

        后期可以依赖打破水平分割的机制来解决---联邦、路由反射器

BGP的基本配置

1、BGP邻居关系建立

        与路由条目宣告是分开的配置的

(1)直连的EBGP邻居关系建立

(2)IBGP邻居关系建立,在一个AS内部,拓扑正常较为复杂;建议使用环回接口地址作为源、目标ip地址;存在备份链路,同时可以多条物理链路传递

注意:一旦使用环回接口建立BGP的邻居关系;必须将源地址也修改为环回接口

(3)EBGP邻居间存在多条物理链路时,也建议使用环回接口地址来建立

2、BGP的宣告

        运行BGP协议的路由器可以宣告本地路由表中通过任何协议获取到的路由条目—静态、IGP、直连; 而本地通过BGP协议学习到的路由,只要在本地依然优秀,将继续将向本地的其他BGP邻居传输

注意:

        宣告时,宣告的条目必须同本地路由表中的记录完全一致

BGP的宣告问题

  1. 在BGP协议中每台运行BGP的设备上,宣告本地直连路由
  2. 在BGP协议中运行BGP协议的设备来宣告,通过IGP学习到的,未运行BGP协议设备产生的路由

        在BGP协议中宣告本地路由表中路由条目时,将携带本地到达这些目标的IGP度量值;传递到BGP邻居处;其他AS设备便于选择离目标最近的EBGP邻居

BGP的自动汇总问题

当代的路由器设备,默认就关闭了BGP的自动汇总功能;

自动汇总规则与正常BGP协议邻居共享的路由,或在BGP协议通过network宣告命令产生的路由条目无关;

仅针对从IGP重发布到BGP的路由条目;

BGP中的宣告可以理解为是逐条的重发布IGP路由到BGP;

BGP中中将IGP重发布到BGP,可以理解为是批量的将IGP路由宣告到BGP 协议

      但两种操作产生的路由条目其起源属性不同,宣告优于重发布

      在开启了自动汇总的前提下,重发布进入的路由将不携带子网掩码,按主类掩码进入;不携带本地到达目标的度量值,度量为0;若关闭自动汇总,进入路由将正常携带掩码,且携带度量;此时和宣告路由仅起源属性不同;故建议不要开启自动汇总

BGP的认证

        邻居间进行身份核实的方法

BGP的聚合(汇总)

        不是BGP的标准汇总思路,而是利用了BGP的宣告的特征来简化了汇总配置量;宣告特征—本地路由表中任何方式产生的路由均可被BGP宣告;

        不逐条宣告明细路由,仅在更新源BGP设备上配置一条到达聚合地址的空接口防环路由,然后将其宣告到BGP协议中

        在实际工程中,由于AS之间一定存在大量的EBGP邻居关系;因此仅汇总不能做到优选路径,必须在传递聚合条目的同时,再传递部分的明细路由来进行选路控制

标准的BGP聚合配置

  1. 先逐条宣告所有的明细路由
  2. 再在更新源路由上进行聚合配置,自动产生空接口防环路由

路由传递干涉

  1. 抑制列表——先让设备将所有路由传递出去,再调用抑制策略
  2. Route-map  在BGP中将route-map当分发列表用

  3. 分发列表
  4. 前缀列表——BGP协议中可以直接将前缀列表作为分发列表调用

BGP在MA网络中的下一跳问题

        图中1、2、3在一个MA网段,但不在同一AS;正常R1从R2学习到的R4的路由,下一跳自动显示为R3(最佳路径)

原理:

  1. R1/2/3必须使用MA网段的物理接口建立邻居关系
  2. ICMP重定向开启(默认开启)

BGP的属性

PrefVal(优先级)

注意:

         属性为私有属性

        传播范围:不传播

        默认值:0~65535

        大/小 优:大

LocPrf 本地优先级

        传播范围:整个AS内部-IBGP邻居间

        默认值:100(0~255)

        大/小 优:大

优先本地下一跳

        本地在bgp协议中宣告本地路由表中的IGP路由时,在本地的BGP表中下一跳地址为0.0.0.0

        而通过BGP从其他邻居处学习到的路由,下一跳地址正常不为0.0.0.0;本地优选0.0.0.0的路由传递给本地的其他BGP邻居

AS-PATH

        记录条目经过的所有AS编号

        AS号的添加,一定是在EBGP邻居间进行的

        优选经过的AS号数量最少的路径;同时该属性用于EBGP水平分割,接收到路由条目中若存在本地的AS号将拒绝接收

起源属性

        该条目的来源—通过什么方法进入到BGP协议的

        i —— BGP宣告本地路由表中路由   

        ?—— 将本地路由表中IGP路由重发布到BGP协议

        e —— 将本地路由表中EGP路由重发布到BGP协议

规则:

        i > e > ?

MED

        多出口鉴别属性

        BGP协议默认没有度量值没有cost;所谓的MED就是人为的在路由条目中编写一个cost数值,干涉选路;

        可用于干涉EBGP/IBGP关系下的选路最常用于干涉EBGP关系选路

        常常用于AS1干涉AS2对AS1的选路

BGP选路规则

        比较前提,多条BGP路由目标相同,且均可优(下一跳可达、同步关闭),具有相同的优先级(管理距离)

1、优选Preference_Value值最高的路由(私有属性,仅本地有效)。

        不传递  权限最高属性    可以干涉EBGP/IBGP选路

2、优选本地优先级(Local_Preference)最高的路由。

        IBGP邻居关系间传递    只能,最常干涉IBGP关系的选路

3、优选手动聚合>自动聚合>network>import>从对等体学到的。

4、优选AS_Path短的路由。

        EBGP/IBGP关系均可被干涉,但只能在EBGP邻居间修改;

5、起源类型IGP>EGP>Incomplete。

        起源属性 i优于e优于?; 可在控制层面任意接口修改;

6、对于来自同一AS的路由,优选MED值小的。

        默认为0,宣告或重发布(关闭自动汇总)路由时携带本地到达目标的cost

        最常用于干涉EBGP选路的属性

7、优选从EBGP学来的路由(EBGP>IBGP)

8、优选AS内部IGP的Metric最小的路由

9、优选Cluster_List最短的路由

10、优选Orginator_ID最小的路由

11、优选Router_ID最小的路由器发布的路由

12、优选具有较小IP地址的邻居学来的路由

        

 

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

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

相关文章

SpringBoot中的可扩展接口

目录 # 背景 # 可扩展的接口启动调用顺序图 # ApplicationContextInitializer # BeanDefinitionRegistryPostProcessor # BeanFactoryPostProcessor # InstantiationAwareBeanPostProcessor # SmartInstantiationAwareBeanPostProcessor # BeanFactoryAware # Applicati…

ubuntu篇---配置FTP服务,本机和docker安装

ubuntu篇---配置FTP服务 一、本机安装1.1 安装FTP服务器软件1.2 配置FTP服务 二、docker安装(我用的这个)2.1 创建 目录2.2 启动脚本2.3 访问2.4 如何创建一个新的用户2.5 测试2.6 使用 一、本机安装 1.1 安装FTP服务器软件 ubuntu安装vsftp sudo apt…

TiDB数据库从入门到精通系列之三:在单机上模拟部署生产环境集群

TiDB数据库从入门到精通系列之三:在单机上模拟部署生产环境集群 一、准备环境二、实施部署1.下载并安装 TiUP2.声明全局环境变量3.安装 TiUP 的 cluster 组件4.如果机器已经安装 TiUP cluster,需要更新软件版本5.由于模拟多机部署,需要通过 r…

注意力机制-基础

注意力机制-基础 基础部分比较简单,全是搬运,主要介绍几个例子。 主要是搬运来的:动手学深度学习 心理学 人类的注意力是有限的、有价值和稀缺的资源。而环境中的干扰注意力的信息却并不少。 比如人类的视觉神经系统大约每秒收到 位的信息…

Hlang社区-前端社区宣传首页实现

文章目录 前言页面结构固定钉头部轮播JS特效完整代码总结前言 这里的话,博主其实也是今年参与考研的大军之一,所以的话,是抽空去完成这个项目的,当然这个项目的肯定是可以在较短的时间内完成的。 那么废话不多说,昨天也是干到1点多,把这个首页写出来了。先看看看效果吧:…

STS(eclipse)批量修改文件里的某个内容

在STS或Eclipse的时候,有时候需要成批修改相应内容,如相关项目里的所有文件的demo修改成test,可以按照下面方式来做。 1、首先,在相应项目下搜索demo,如下图: 2、搜索出内容来,如下:…

Android Alarm闹钟API使用心得

前言 有什么办法可以在不打开App的时候,也能够触发一些操作呢?比如说发送通知,解决这个需求的办法有很多种选择,比如说官方推荐的WorkManager API,可以在后台执行一次性、耗时、定时的任务,但WorkManager是…

【Maven教程】(一)入门介绍篇:Maven基础概念与其他构建工具:理解构建过程与Maven的多重作用,以及与敏捷开发的关系 ~

Maven入门介绍篇 1️⃣ 基础概念1.1 构建1.2 maven对构建的支持1.3 Maven的其他作用 2️⃣ 其他构建工具2.1 IDE2.2 Make2.3 Ant2.4 Jenkins 3️⃣ Maven与敏捷开发🌾 总结 1️⃣ 基础概念 "Maven"可以翻译为 “知识的积累者” 或 “专家”。这个词源于波…

【第三阶段】kotlin语言空合并操作符

1.空操作符?: xxx?:“如果是null执行” 如果xxx是null,就执行?:后面的逻辑,如果不是null就执行?:前面的逻辑,后面的不在执行 fun main() {var name:String?"kotlin" namenullvar …

【数据结构OJ题】反转链表

原题链接:https://leetcode.cn/problems/reverse-linked-list/description/ 目录 1. 题目描述 2. 思路分析 3. 代码实现 1. 题目描述 2. 思路分析 方法一:三指针翻转法 使用三个结构体指针n1,n2,n3,原地修改结点…

移动端直播相关技术总结

一、直播APP原理 二、直播APP架构 三、直播APP实现流程 四、流媒体开发 流媒体模块架构 流媒体相关基础知识 帧:每一帧代表一幅静止的图像 GOP:Group of Pictures,画面组,一个GOP就是一组连续的画面,很多帧的集合 码率…

腾讯Perfdog支持Windows PC端体验性能测试

一、背景 最近在做抖音的小玩法,其基于unity引擎,然后挂载到直播伴侣。以及Perfdog近期也支持了Windows的测试,所以做一个体验测试。 二、如何做 查看PC端的支持,目前是beat版本 选择或搜索自己需要的对应的程序,如…

Allegro172版本如何在联机模式下使用skill文件操作指导

Allegro172版本如何在Symphony模式下使用skill文件操作指导 在用Allegeo172版本进行PCB设计的时候,有时会用到Symphony模式进行多人实时在线协同设计,如下图 这个模式设计起来可以提升设计速度,但是也有一个缺陷,就是不能使用skill文件 如下图,当调用skill的时候就会出现…

Aspera替代方案:探索这些安全且可靠的文件传输工具

科技的发展日新月异,文件的传输方式也在不断地更新换代。传统的邮件附件、FTP等方式已经难以满足人们对于传输速度和安全性的需求了。近年来,一些新兴的文件传输工具受到了人们的关注,其中除了知名的Aspera之外,还有许多可靠安全的…

全志H616交叉编译,orangepi-zero2

文章目录 交叉编译是什么为什么需要交叉编译? 宿主机和目标机所需工具解压编译工具临时有效,配置环境变量(切换终端无效)永久有效,配置环境变量大功告成开始测试拷入文件测试结束 交叉编译是什么 交叉编译&#xff1a…

《Learning Combinatorial Optimization Algorithms over Graphs》阅读笔记

一.文章概述 本文提出将强化学习和图嵌入的组合以端到端地自动为图上组合优化问题设计贪心启发式算法,以避免设计传统算法所需要的大量专业知识和试错。学得的贪心策略行为类似增量构造解决方案的元算法,动作由解决方案当前状态上的图嵌入网络确定。作者…

『清安无别事-赠书01期』|〖测试设计思想〗

目录 🧡 内容简介 💛 作者简介 💖 本书内容|目录 💗 读后感想 💝 参与方式 购书传送门:测试设计思想购书传送门:测试设计思想购书传送门:测试设计思想 🧡 内容简介 …

Win10提醒事项如何打开?电脑上如何添加日程提醒?

有不少上班族表示自己在日常办公时,经常会忘记一些重要的事情,例如领导安排给自己的任务、会议安排、项目截止日期等。为了避免自己忘记工作事项,很多人都想要在电脑上设置提醒事项或添加日程提醒。那么Win10提醒事项如何打开呢?P…

LCS最大公共子序列 与 LIS最大递增子序列

LCS Largest Common Subsequence 最大公共子序列 /* Input s1 s2//两个字符串Output length//长度 ans//具体字母 */ #include<iostream> using namespace std; int main() {string s1,s2;cin>>s1>>s2;int dp[100][100]{0};//dp[i][j]表示s1取前i位&#x…

软件工程概述-架构师(三)

软件工程概述&#xff08;老版&#xff09; 软件开发生命周期&#xff1a; 软件定义时期&#xff1a;包括 可行性研究和详细需求分析过程&#xff0c;任务是软件工程必需完成的目标&#xff0c;具有可行问题分析、可行性研究、需求分析等。软件开发时期&#xff1a;软件的 设…