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

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.rhkb.cn/news/222074.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

安卓好用的python编辑器,安卓平台python编辑器

本篇文章给大家谈谈安卓上好用的python编辑软件有哪些,以及安卓上好用的python编辑软件推荐,希望对各位有所帮助,不要忘了收藏本站喔。 1. 简介 Thonny是基于python内置图形库tkinter开发出来的支持多平台(windows,Mac,Linux)的python IDE&am…

文献速递:生成对抗网络医学影像中的应用—— CG-3DSRGAN:用于从低剂量PET图像恢复图像质量的分类指导的3D生成对抗网络

文献速递:生成对抗网络医学影像中的应用—— CG-3DSRGAN:用于从低剂量PET图像恢复图像质量的分类指导的3D生成对抗网络 本周给大家分享文献的主题是生成对抗网络(Generative adversarial networks, GANs)在医学影像中的应用。文献…

[已解决]HttpMessageNotReadableException: JSON parse error: Unexpected character:解析JSON时出现异常的问题分析与解决方案

🌷🍁 博主 libin9iOak带您 Go to New World.✨🍁 🦄 个人主页——libin9iOak的博客🎐 🐳 《面试题大全》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~&#x1f33…

人工智能对网络安全的影响

技术的快速发展带来了不断增长的威胁环境,网络犯罪分子和恶意行为者利用我们互联世界中的漏洞。在这个数字时代,数据泄露和网络攻击呈上升趋势,仅靠传统的安全措施已经不够了。人工智能 (AI) 的进步彻底改变了网络安全…

污水处理厂可视化:让环保与科技共舞

随着科技的飞速发展,我们的生活环境变得越来越美好。然而,随着城市化进程的加快,污水处理问题也日益凸显。如何有效、高效地处理污水,成为了一个亟待解决的问题。而“污水处理厂可视化”技术的出现,为这个问题提供了一…

opencv静态链接error LNK2019

opencv 3.1.0 静态库,包括以下文件 只链接opencv_world310d.lib,报错 opencv_world310d.lib(matrix.obj) : error LNK2019: 无法解析的外部符号 _ippicvsFlip_16u_I8,该符号在函数 "enum IppStatus (__stdcall*__cdecl cv::getFlipFu…

论文阅读——RS DINO

RS DINO: A Novel Panoptic Segmentation Algorithm for High Resolution Remote Sensing Images 基于MASKDINO模型,加了两个模块: BAM:Batch Attention Module 遥感图像切分的时候把一个建筑物整体比如飞机场切分到不同图片中,…

C#文件操作(二)

一、前言 文章的续作前文是: C#文件操作(一)-CSDN博客https://blog.csdn.net/qq_71897293/article/details/135117922?spm1001.2014.3001.5501 二、流 流是序列化设备的抽象表示序列化设备可以线性方式储存数据并可按照同样的方式访问一次…

力扣题目学习笔记(OC + Swift)17. 电话号码的字母组合

17. 电话号码的字母组合 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 关键字:所有组合 模式识别&#xff1a…

Amazon Toolkit — CodeWhisperer 使用

tFragment--> 官网:https://aws.amazon.com/cn/codewhisperer/?trkcndc-detail 最近学习了亚马逊云科技的 代码工具,感慨颇多。下面是安装 和使用的分享。 CodeWhisperer,亚马逊推出的实时 AI 编程助手,是一项基于机器学习…

6. 行为模式 - 观察者模式

亦称: 事件订阅者、监听者、Event-Subscriber、Listener、Observer 意图 观察者模式是一种行为设计模式, 允许你定义一种订阅机制, 可在对象事件发生时通知多个 “观察” 该对象的其他对象。 问题 假如你有两种类型的对象: ​ 顾…

使用Python将OSS文件免费下载到本地:第四步 将ECS中文件下载到本地

大家好,我是水滴~~ 本文将介绍了使用的知识点、以及将ECS中文件下载到本地的代码、并对该代码进行详细解析、最后给出部署方案,希望能对你有所帮助! 《Python入门核心技术》专栏总目录・点这里 系列文章 使用Python将OSS文件免费下载到本地…

使用Open3D实现3D激光雷达可视化:以自动驾驶的2DKITTI深度框架为例(上篇)

原创 | 文 BFT机器人 3DLiDAR传感器(或)三维光探测和测距是一种先进的发光仪器,能够像我们人类一样在三维空间中感知现实世界。这项技术特别彻底改变了地球观测、环境监测、侦察和现在的自动驾驶领域,它提供准确和详细数据的能力…

Asp.Net Core 项目中常见中间件调用顺序

常用的 AspNetCore 项目中间件有这些,调用顺序如下图所示: 最后的 Endpoint 就是最终生成响应的中间件。 Configure调用如下: public void Configure(IApplicationBuilder app, IWebHostEnvironment env){if (env.IsDevelopment()){app.UseD…

个人财务工具、密钥管理平台、在线会计软件、稍后阅读方案 | 开源专题 No.51

gethomepage/homepage Stars: 10.1k License: GPL-3.0 这个项目是一个现代化、完全静态的、快速且安全的应用程序仪表盘,具有超过 100 种服务和多语言翻译的集成。 快速:网站在构建时以静态方式生成,加载时间飞快。安全:所有对后…

基于阿里云平台帮助出海企业应对DDoS攻击

在出海浪潮下,越来越多企业选择出海。但海外市场也并非一片红利。由于海外千差万别的法律政策、摸不清的网络脉络。在业务快速扩展的同时,也势必会迎来“网络恶势力”DDoS攻击。海外更是DDoS攻击的重灾区,根据外部报道,白俄国安委…

VScode版本太低导致安装插件时报错:Unable to install ‘ms-vscoderemote-server‘ extension

VS code安装插件时报错:Unable to install ‘ms-vscoderemote-server’ extension because it is not compatible with the current version of VS Code (version 1.421) 是因为VS code 版本太低的原因,可以更新Vscode即可:点击help&#x…

C语言——内存函数的使用与模拟实现

大家好,我是残念,希望在你看完之后,能对你有所帮助,有什么不足请指正!共同学习交流 本文由:残念ing 原创CSDN首发,如需要转载请通知 个人主页:残念ing-CSDN博客,欢迎各位…

RPC(5):AJAX跨域请求处理

接上一篇RPC&#xff08;4&#xff09;&#xff1a;HttpClient实现RPC之POST请求进行修改。 1 修改客户端项目 1.1 修改maven文件 修改后配置文件如下&#xff1a; <dependencyManagement><dependencies><dependency><groupId>org.springframework.b…

数据分析师的职业规划与参考资料

数据分析师如何规划 参考&#xff1a;超详细的数据分析职业规划 一个产品的出现可以从业务和技术两个方向分析&#xff0c;业务需求技术支持产品的出现。 如果把职业也当成一个产品&#xff0c;也有类似的分析&#xff0c; 其中业务也就是领域&#xff0c;即这个业务领域的特点…