【网络技术设备安全】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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

1.使用 Blazor 利用 ASP.NET Core 生成第一个 Web 应用

参考 https://dotnet.microsoft.com/zh-cn/learn/aspnet/blazor-tutorial/create 1.使用vs2022创建新项目 选择 C# -> Windows -> Blzxor Server 应用模板 2.项目名称BlazorApp下一步 3.选择 .NET6.0 或 .NET7.0 或 .NET8.0 创建 4.运行BlazorApp 5.全部选择是。 信…

【CF闯关练习】—— 800分段

🌏博客主页:PH_modest的博客主页 🚩当前专栏:cf闯关练习 💌其他专栏: 🔴每日一题 🟡 C跬步积累 🟢 C语言跬步积累 🌈座右铭:广积粮,缓…

基于西门子博途电机运行时间的先起先停控制

这是我同事在2019年做的一个功能,基于这个功能,可以形成类似的其他更多的功能,这些功能在一些项目上的实用性还是比较强! 1,控制目标博途工控人平时在哪里技术交流博途工控人社群 根据需要启动电机的数量&#xff0c…

PhysX——源码编译

从git下载源码 git主页 https://github.com/NVIDIA-Omniverse/PhysXclone地址 https://github.com/NVIDIA-Omniverse/PhysX.git源码编译 运行PhysX需要两个编译器的支持,CMake 3.12 或以上版本以及Python 2.7.6 版本 进入工程的 physx 目录,运行generate…

案例109:基于微信小程序的高校寻物平台

文末获取源码 开发语言:Java 框架:SSM JDK版本:JDK1.8 数据库:mysql 5.7 开发软件:eclipse/myeclipse/idea Maven包:Maven3.5.4 小程序框架:uniapp 小程序开发软件:HBuilder X 小程序…

KubePi JWT 默认密钥权限绕过漏洞复现(CVE-2023-22463)

0x01 产品简介 KubePi 是一款简单易用的开源 Kubernetes 可视化管理面板。 0x02 漏洞概述 KubePi 存在权限绕过漏洞,攻击者可通过默认 JWT 密钥获取管理员权限控制整个平台,使用管理员权限操作核心的功能。 0x03 影响范围 KubePi <= 1.6.2 0x04 复现环境 FOFA: ti…

CUMT--Java复习--泛型与集合

目录 一、泛型 1、概述 2、通配符 3、有界类型 二、集合 1、概述 2、迭代器接口 三、集合类 1、Collection接口 2、List接口 3、Set接口 4、Queue接口 5、Map接口 四、集合转换 五、集合工具类 一、泛型 1、概述 从JDK5.0开始&#xff0c;Java引入泛型类型&…

微服务之服务注册与发现

服务注册发现 服务注册就是维护一个登记簿&#xff0c;它管理系统内所有的服务地址。当新的服务启动后&#xff0c;它会向登记簿交待自己的地址信息。服务的依赖方直接向登记簿要 Service Provider 地址就行了。当下用于服务注册的工具非常多 ZooKeeper&#xff0c;Consul&…

谁能更好地检测深度伪造?人还是机器?

本文将和您讨论深度伪造对社会构成的重大威胁&#xff0c;AI检测工具以及人类专家在不同方面的技术优势与劣势。 不知您是否听说过深度伪造&#xff08;Deepfakes&#xff09;这种欺诈应用&#xff1f;由它产生的各种虚假信息已威胁到了人类社会的方方面面。随着人工智能技术的…

全新揭秘:Java WebSocket全双工通信的实践与运用

全新揭秘&#xff1a;Java WebSocket全双工通信的实践与运用 一、简介何为全双工通信全双工&#xff1f;WebSocket的使用场景 二、如何使用Java实现WebSocket1&#xff0c;引用websocket相关starter2&#xff0c;启用websocket3&#xff0c;服务端代码开发4&#xff0c;群发测试…

【数字图像处理】实验四 图像分割

一、实验内容&#xff1a; 1&#xff0e; 熟悉和掌握利用Matlab工具进行数字图像的读、写、显示等数字图像处理基本步骤。 2&#xff0e; 熟练掌握各种图像分割的基本原理及方法。 3&#xff0e; 能够从深刻理解图像分割&#xff0c;并能够思考拓展到一定的应用领域。 二、实验…

GraphPad Prism 10 for Mac v10.0.0.3 安装教程

GraphPad Prism GraphPad Prism是一款非常专业强大的科研医学生物数据处理绘图软件&#xff0c;它可以将科学图形、综合曲线拟合&#xff08;非线性回归&#xff09;、可理解的统计数据、数据组织结合在一起&#xff0c;除了最基本的数据统计分析外&#xff0c;还能自动生成统…

ARM GIC(四) gicv3架构基础

GICv3架构是GICv2架构的升级版&#xff0c;增加了很多东西。变化在于以下&#xff1a; 使用属性层次&#xff08;affinity hierarchies&#xff09;&#xff0c;来对core进行标识&#xff0c;使gic支持更多的core 将cpu interface独立出来&#xff0c;用户可以将其设计在core…

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

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

Windows10操作系统上安装VMware虚拟机和CentOS7

最初使用Windows与CentOS双系统&#xff0c;发现在系统之间切换非常不方便&#xff0c;于是决定改用windows系统加虚拟机的方式。 我百度搜索下载的VMware Workstation 12 pro&#xff0c;下载地址&#xff1a;https://www.zdfans.com/html/23471.html&#xff0c;网页提供了序…

【Hadoop】YARN简介(YARN产生的技术需求/YARN的基本架构)

YARN产生的技术需求YARN的基本架构ResourceManagerNodeManagerApplicationMasterContainer HDFS与YARN YARN产生的技术需求 YARN是Hadoop v2.0 引入的核心组件。YARN 从某种那个意义上来说应该算做是一个云操作系统&#xff0c;它负责集群的资源管理和任务调度&#xff0c;在 …

机器学习:手撕 AlphaGo(一)

图 1-1: AphaGo 结构概览 1. 前言 AlphaGo 是一个非常经典的模型&#xff0c;不论从影响力还是模型设计上。它的技术迭代演进路径&#xff1a;AlphaGo&#xff0c;AlphaGoZero&#xff0c;AlphaZero&#xff0c;MuZero 更是十分精彩。相信有很多同学因为听了 AlphaGo 的故事对…

伽马校正:FPGA

参考资料&#xff1a; Tone Mapping 与 Gamma Correction - 知乎 (zhihu.com) Book_VIP: 《基于MATLAB与FPGA的图像处理教程》此书是业内第一本基于MATLAB与FPGA的图像处理教程&#xff0c;第一本真正结合理论及算法加速方案&#xff0c;在Matlab验证&#xff0c;以及在FPGA上…

CSS(五) -- 动效实现(立体盒子旋转-四方体+正六边)

一. 四面立体旋转 正方形旋转 小程序中 wxss中 <!-- 背景 --><view class"dragon"><!--旋转物体位置--><view class"dragon-position"><!--旋转 加透视 有立体的感觉--><view class"d-parent"><view …

【JVM】一、认识JVM

文章目录 1、虚拟机2、Java虚拟机3、JVM的整体结构4、Java代码的执行流程5、JVM的分类6、JVM的生命周期 1、虚拟机 虚拟机&#xff0c;Virtual Machine&#xff0c;一台虚拟的计算机&#xff0c;用来执行虚拟计算机指令。分为&#xff1a; 系统虚拟机&#xff1a;如VMware&am…