【网络技术设备安全】BGP 基础与概述-2-中转 AS 中的 IBGP 路由传递

news2024/11/23 15:26:19

0x01 中转 AS 中的 IBGP 路由传递

参考该图:

图片

上图,我们模拟一个 1.0 的路由通过 AS 65101 来传递

1:通过图可知,A 与 B 之间的 Peer 为 EBGP,B 与 E 之间为 Peer IBGP,E 与 F 之间为 Peer EBGP 邻接

2:A 通告 1.0 路由给 EBGP 邻居 B,那么 B 则跨 OSPF 路由 TCP 通信传递给 E,E再通过 EBGP 邻接关系传递给 F 注意:该路由为 AS 65101 update 通告给邻接的一个消息,而不是通信

3:F 已知去往 A 1.0 的路由,如果 AS F 要去往 1.0 路由,需要通过 EBGP E 转发

2:而当 E 转发该路由的时候,只有扔给 D,C 二者之中的一个,当转发到该非 BGP 路由器上的时候,D,C 二者是不知道如何操作该 BGP 路由的,会被直接丢弃,我们将其称作路由黑洞

这里我就叫它 AS 中转 IGP 黑洞

0x02 BGP 同步 🔺

既然出现了路由黑洞,那么就会有解决方法,如 RIP 一样,RIP 拥有水平分割来防环,那么 BGP 就有同步规则来防止路由黑洞

BGP 同步规则:

BGP 的同步规则指出,一台 BGP 的路由器,你不能将通过 IBGP 获取到的 BPG 路由,通告给你的 EBGP 邻居,除非你通过 IGP,又一次获取到这条路由的更新

该同步规则的着重点在于 IGP 路由拥有 BGP 路由跟新过来的路由条目,能够识别 BGP 路由,同时转发给 AS 边界 BGP 路由器这里可能有理解错误,但是大致是这种情况

需要注意的一点是该规则是有点鸡肋的,因为随时可像 ARP 那样欺骗

Cisco IOS 默认关闭同步规则

既然又默认关闭,开启又鸡肋可欺骗,那么前辈们就总结出如下几个方法,来解决路由黑洞的问题

解决办法 1

该方案不是最优建议,因为 BGP 承载大量路由,重发布可能导致 IGP 跑死

参考图:

图片

在 B、E 上将 BGP 路由重发布进 IGP (OSPF) 路由中,可解决路由黑洞问题

解决方法 2

该方案是采取 AS 边界路由全起 BGP 来达到无死角,即 AS 路由器全跑 BGP 路由,从而使得 B peer E D C,邻接,那么这个时候,就不会存在路由黑洞的问题,BGP 同步规则也没必要开启 [ BGP 同步规则,Cisco 默认关闭]

参考图:

图片

该方案缺点:

IBGP 全互联虽然能结局 Transit AS 内的路由黑洞问题,但是却造成 BGP 路由器需耗费大量资源维护 BGP 连接的新问题。

以下为两个资源损耗过大的解决方案:

  • 路由反射器
  • 联邦

0x03 IBGP 水平分割原则 🔺

我们在 RIP 中有水平分割原则,那么视野扩到 IBGP ,其维护的 Peer IBGP 的邻接关系所处的 水平分割原则又是什么样的?

🔺 IBGP 水平分割原则:

当我的一台路由器从我的某一个 IBGP 邻居收到一条 BGP 路由的时候,我将不能够再传递给其他任何一个 IBGP 邻居

以下为讲解过程:

BGP 防环是通过 AS-PATH 实现的,而 AS-PATH 仅仅再路由离开 AS 才会被更改,因此在 AS 内, IBGP 就没有 EBGP 的防环能力,为了防止环路的出现,BGP 路由器不会将从 IBGP 邻居学习过来的路由再通告给自己其他 IBGP 邻居。——BGP 的水平分割原则。

由于水分分割原则的存在,BGP 要求 AS 内,需保证 IBGP 全互联 ( neighbor 命令指定)。

( 根本原因是再 AS 内部,AS-PATH 不会改变,无法使用 AS-PATH 防环,因此会导致出现环路)

0x04 BGP 路由通告规则 🔺

  • 当存在多条路径时,BGP Router 只选取最优的路由 ( BEST ) 来使用 (没有负载均衡的情况下)
  • BGP 只把自己使用的路由,也就是自己认为 BEST 的路由传递给 BGP peer
  • BGP Speaker 从 EBGP 获得的路由会向他所有的 BGP peer 通告 包括 EBGP 和 IBGP
  • BGP Speaker 从 IBGP 获得的路由不向它的 IBGP 相邻体通告 (水平分割原则:避免环路,存在路由 RR 的情况除外)
  • BGP Speaker 从 IBGP 获得的路由是否通告给它的 EBGP peer 要看 IGP 和 BGP 的同步情况来决定

0x05 BGP 路由表

  • BGP 邻居表:Peer 对等体列表
  • BGP 表:包含了所有从邻居 Peer 对等体那学来的路由条目,以及到达目的的网段的多个路径和属性
  • 路由表:列出了到达目的网段的最佳路径
  • AD:EBGP = 20 ,IBGP = 200

0x06 BGP Next-hop 属性

该特征下一跳与其他下一跳不同,具体看以下解析

BGP 路由器从一个 EBGP 邻居收到一条路由的时候,BGP 路由器会将该 EBGP 邻居的接口 IP 作为我这条路由的下一跳 Next-hop,通告给我的 IBGP 邻居

该 Next-hop 属性只会在 不同 AS 之间发生改变,而 AS 内部是不会发生改变的

参考图如下:

图片

其他参考:

  • BGP 是 AS-by-AS 的路由协议,而不是 router-by-router 的路由协议
  • 在 BGP中,next-hop 并不意味着是下一台路由器,而是到达下一个 AS 的 IP 地址
  • EBGP 中, 默认 next-hop 为发送更新的理解路由器的 IP 的地址
  • IGBP 中,从 EBGP 传来的 Next-hop 属性是在 IBGP 中保持不变的被传递

0x07 BGP 更新源

跟新源在于声明 loopback 基础上

在没有学习 BGP 跟新源的时候,我们使用直连接口建立 BGP peer 邻居关系

如果任何一个直连接口 down 掉,或者任何一个链路 down 掉都将直接导致 BGP 邻居 down,或者 BGP 路由之间的连接消失

如果我们使用 loopback 口来建立 Peer 关系,如果链路 down 了,只要我们有冗余链路,那么该链路会借助 IGP 协议从而再次发现 Peer,使得 BGP 链路更加稳定,邻居关系起到稳定作用

一般而言,与 EBGP 之间仍然采用之间接口指定更新源

参考图如下:

图片

0x08 EBGP 之间使用 Loopback 建立跟新源


如果通过 EBGP 建立邻居关系,其默认 next-hop 为 1

需要注意的是,我们通过 loopback 口建立更新源,其 next-hop 最小值为 2

所以如果通过 loopback 建立更新源,我们需要调整该跳数,同时需要指定 EBGP 邻居间的通信无碍

具体调整方式参考 BGP 基础配置.md

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

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

相关文章

python爬取网页图片并下载

python爬取网页图片并下载之GET类型 准备工作 【1】首先需要准备好pycharm,并且保证环境能够正常运行 【2】安装request模块 pip install requestsimport request导入request内置模块 【3】安装lxml模块 pip install lxmlfrom lxml import etree导入lxml.etre…

机器学习---随机森林

1、使用决策树来做回归或者预测值 如上图&#xff0c;使用学历、收入、身高、行业使用决策树来预测收到的邮件数。可以将邮件数分为几类&#xff08;也可以按照其他列&#xff0c;将邮件数分类&#xff09;&#xff0c;比如邮件数<23封属于A类&#xff0c;邮件数大于23<邮…

使用 Node.js 插件给指定目录下的所有图片添加上文字水印

说在前面 加水印是为了保护图片的版权和安全。在互联网上&#xff0c;很容易将图片下载或者截屏保存下来&#xff0c;然后进行二次使用&#xff0c;这就侵犯了原作者的版权。而加上水印可以使得图片更难被盗用&#xff0c;因为盗用者需要花费时间和精力去处理水印&#xff0c;而…

【稳定检索|投稿优惠】2024年交通运输与能源动力国际学术会议(IACTEP 2024)

2024年交通运输与能源动力国际学术会议(IACTEP 2024) 2024 International Academic Conference on Transportation and Energy Power(IACTEP) 一、【会议简介】 2024年交通运输与能源动力国际学术会议(IACTEP 2024)将在美丽的三亚盛大启幕。本次会议将聚焦交通运输与能源动力等…

【所有方法一览】大模型推理优化:在更小的设备运行、推理增速

大模型推理优化&#xff1a;在更小的设备运行、推理增速 知识蒸馏&#xff08;优先&#xff09;模型剪枝模型量化&#xff08;优先&#xff09;参数共享低秩分解参数搜索 知识蒸馏&#xff08;优先&#xff09; 知识蒸馏&#xff1a; 知识&#xff1a;模型参数、一堆矩阵蒸馏&…

C#线程Thread的使用

引言 在C#编程语言中&#xff0c;线程是一种并发执行的机制&#xff0c;可以实现多个任务同时执行&#xff0c;提高程序的效率和响应能力。C#提供了Thread类来处理线程相关的操作。本文将详细介绍C#中Thread类的使用方法和注意事项。 目录 引言线程的基本概念线程&#xff08;…

Ubuntu 常用命令之 sudo 命令用法介绍

&#x1f4d1;Linux/Ubuntu 常用命令归类整理 sudo命令在Ubuntu系统中是一个非常重要的命令&#xff0c;它允许系统管理员赋予某些用户&#xff08;或用户组&#xff09;以系统管理员的身份运行一些或全部的命令。sudo代表“superuser do”&#xff0c;即以超级用户的身份执行…

掌握Guava的并发工具:轻松应对复杂并发场景

推荐语 这篇文章介绍了 Guava 的一些常用并发工具类的使用方法。通过学习这些工具类&#xff0c;我们可以轻松地处理异步操作。这些工具类不仅功能丰富&#xff0c;还大大简化并发编程的复杂性。无论你是初学者还是经验丰富的开发者&#xff0c;这篇文章都会对你在并发编程方面…

2023年中国数据智能管理峰会(DAMS上海站2023)-核心PPT资料下载

一、峰会简介 数据已经成为企业的核心竞争力&#xff01;谁掌控数据、更好的利用数据、实现资产化&#xff0c;谁就会真正率先进入大数据时代。 1、数据智能管理趋势和挑战 在峰会上&#xff0c;与会者讨论了数据智能管理的最新趋势和挑战。随着数据量的不断增加&#xff0c…

本地websocket服务端结合cpolar内网穿透实现公网访问

文章目录 1. Java 服务端demo环境2. 在pom文件引入第三包封装的netty框架maven坐标3. 创建服务端,以接口模式调用,方便外部调用4. 启动服务,出现以下信息表示启动成功,暴露端口默认99995. 创建隧道映射内网端口6. 查看状态->在线隧道,复制所创建隧道的公网地址加端口号7. 以…

华为OD机试 - 区间交集 - 深度优先搜索dfs算法(滥用)(Java 2023 B卷 200分)

目录 专栏导读一、题目描述二、输入描述三、输出描述备注用例1、输入2、输出3、说明 四、解题思路1、核心思路&#xff1a;2、具体步骤 五、Java算法源码再重新读一遍题目&#xff0c;看看能否优化一下~解题步骤也简化了很多。 六、效果展示1、输入2、输出3、说明 华为OD机试 2…

【小呆的力学笔记】弹塑性力学的初步认知二:应力分析(1)

文章目录 1.1 一点的应力状态1.2 一点主应力状态1.3 应力偏张量、球张量、应力不变量 1.1 一点的应力状态 物体在受到外力或者自身不均匀的温度场等作用时&#xff0c;在其内部会产生内力&#xff0c;物体的内力与方向和截面都有关系。假设有一个受到外力作用的变形体&#xf…

【Linux】Linux线程概念和线程控制

文章目录 一、Linux线程概念1.什么是线程2.线程的优缺点3.线程异常4.线程用途5.Linux进程VS线程 二、线程控制1.线程创建2.线程终止3.线程等待4.线程分离 一、Linux线程概念 1.什么是线程 线程是进程内的一个执行流。 我们知道&#xff0c;一个进程会有对应的PCB&#xff0c;…

【LeetCode刷题笔记(12-1)】【Python】【有效的字母异位词】【排序/字符统计】【简单】

文章目录 引言有效的字母异位词题目描述提示 解决方案1&#xff1a;【排序】解决方案2&#xff1a;【字符统计】结束语 有效的字母异位词 引言 编写通过所有测试案例的代码并不简单&#xff0c;通常需要深思熟虑和理性分析。虽然这些代码能够通过所有的测试案例&#xff0c;但…

职场必备!这个微信管理效率神器一定要知道

很多小伙伴在管理微信时&#xff0c;都会遇到效率不高的问题&#xff0c;尤其是一些有多个微信号的人&#xff0c;如何高效管理微信成为了一道难题。 今天就给大家分享一款能高效管理微信的工具&#xff0c;让大家既能节省时间又可以提高工作效率&#xff01; 通过微信管理系…

Vue3-23-组件-依赖注入的使用详解

什么是依赖注入 个人的理解 &#xff1a; 依赖注入&#xff0c;是在 一颗 组件树中&#xff0c;由 【前代组件】 给 【后代组件】 提供 属性值的 一种方式 &#xff1b;这种方式 突破了 【父子组件】之间通过 props 的方式传值的限制&#xff0c;只要是 【前代组件】提供的 依…

自动化测试工具-Selenium:WebDriver的API/方法使用全解

我们上一篇文章介绍了Selenium的三大组件&#xff0c;其中介绍了WebDriver是最重要的组件。在这里&#xff0c;我们将看到WebDriver常用的API/方法&#xff08;注&#xff1a;这里使用Python语言来进行演示&#xff09;。 1. WebDriver创建 打开VSCode&#xff0c;我们首先引…

数据结构与算法之美学习笔记:39 | 回溯算法:从电影《蝴蝶效应》中学习回溯算法的核心思想

目录 前言如何理解“回溯算法”&#xff1f;两个回溯算法的经典应用内容小结 前言 本节课程思维导图&#xff1a; 我们在前面深度优先搜索算法利用的是回溯算法思想。这个算法思想非常简单&#xff0c;但是应用却非常广泛。它除了用来指导像深度优先搜索这种经典的算法设计之外…

原生微信小程序中使用-阿里字体图标-详解

步骤一 1、打开阿里巴巴矢量图标库 网址&#xff1a;iconfont-阿里巴巴矢量图标库 2、搜索字体图标&#xff0c;鼠标悬浮点击添加入库 3、按如下步骤添加到自己的项目 步骤二 进入微信开发者工具 1、创建 fonts文件夹 > iconfont.wxss 文件&#xff0c;将刚才的代码复制…

GLTF/GLB模型在线预览、编辑、动画查看以及材质修改

在线工具推荐&#xff1a; 3D数字孪生场景编辑器 - GLTF/GLB材质纹理编辑器 - 3D模型在线转换 - Three.js AI自动纹理开发包 - YOLO 虚幻合成数据生成器 - 三维模型预览图生成器 - 3D模型语义搜索引擎 GLTF在线编辑器提供了一个内置的模型查看器&#xff0c;可以加载和预…