有条件的打破IBGP水平分割----反射规则和联邦+实验举例

news2024/11/17 13:51:08

背景:在一个AS中的设备运行了BGP协议,那么正常应该都连接了其他的AS,存在EBGP邻居关系;又由于IBGP的水平分割规则,导致从外部学习到的路由传递给本地AS时,需要和本地AS中运行BGP协议都要建立IBGP邻居关系,就会导致建立数量成指数上升,配置起来很麻烦

所谓有条件的打破,是指在保障无环前提下消除IBGP水平分割机制;AS-BY-AS

1.路由反射器

角色:RR反射器 客户端 非客户端

无邻居; 由RR作为中心点与多个客户端、非客户端构成一个簇(组);在一个簇内存在一台RR和至少一台客户端;也可以一台RR和多个客户端、多个非客户端;或者一个RR与多个客户端,没有非客户端;

反射规则:不优路由不能被传递,自然也不能被反射;

1、 RR从一个EBGP邻居处学习到的路由,可以传输给客户端、非客户端,以及本地的其他EBGP邻居;

2、 RR从一个客户端学习到的路由,可以传递给本地其他的客户端、非客户端、其他的EBGP邻居;

3、 RR从一个非客户端学习到的路由,可以传递给本地的其他客户端、EBGP邻居;不能传递给其他的非客户端;(非非不传!!!)

[r3-bgp]peer 2.2.2.2 reflect-client 邻居2.2.2.2成为本地的客户端,同时本地成为RR

2.联邦

将一个AS,逻辑的分为多个小AS;对外依然遵循大AS号传递规则;

但小AS间为联邦内的EBGP邻居关系,可以像EBGP关系一样传递路由,但默认不对属性进行修改;

1) 所有操作基于小AS号进行;

2) AS内所有设备需要定义自己所在的大AS号

3) 小AS间的BGP设备需要告知对端的小AS号

[r3]bgp 64512

[r3-bgp]router-id 3.3.3.3

[r3-bgp]confederation id 2 申明本地的大AS号

[r3-bgp]confederation peer-as 64513 告知本地直连的其他小AS号,若没有直连到其他小

AS不用配置

[r3-bgp]peer 2.2.2.2 as-number 64512

[r3-bgp]peer 2.2.2.2 connect-interface LoopBack 0

[r3-bgp]peer 4.4.4.4 as-number 64513

[r3-bgp]peer 4.4.4.4 connect-interface LoopBack 0

[r3-bgp]peer 4.4.4.4 ebgp-max-hop

相关实验

基本配置

如图:r1在AS1区域,R2-R7在AS2区域,R8在AS3区域

R2-R7在一个AS2区域,先通过ospf宣告,然后就搭BGP(搭地址这些在这里就不用多说了)

R1和R2 EBGP连接,R7和R8通过EBGP 连接,用的是实际接口地址

联邦

R2,R3,R4联邦,在同一个小号AS为64512

R2上:

r2]bgp 64512  
[r2-bgp]router-id 2.2.2.2 
[r2-bgp]confederation id 2     申明本地的大AS号为2
[r2-bgp]confederation  peer-as 64513  告知本地直连的其他小AS号,若没有直连到其他小

AS不用配置 ,R5和R2直连,R5的小号是64513,要宣告一下R5的小AS

[r2-bgp]peer 12.1.1.1 as-number 1  
[r2-bgp]peer 172.16.1.3 as-number 64512    和R3的环回建,R3的小号也是64512
[r2-bgp]peer 172.16.1.3 connect-interface LoopBack 0  源地址是环回接口

[r2-bgp]peer 172.16.1.5 as-number 64513   宣告一下R5的小AS
[r2-bgp]peer 172.16.1.5 connect-interface LoopBack 0 和R5的环回接口建
[r2-bgp]peer 172.16.1.5 ebgp-max-hop 2 环回建的,要改下一跳

为什么要改ebgp-max-hop?

通常情况下,EBGP对等体之间必须具有直连的物理链路,如果不满足这一要求,则必须使用 peer ebgp-max-hop 命令允许它们之间经过多跳建立TCP连接。 BGP使用Loopback口建立EBGP邻居时,必须配置命令 peer ebgp-max-hop (其中 hop-count ≥2),否则邻居无法建立

R3上

[r3]bgp 64512
[r3-bgp]router-id 3.3.3.3
[r3-bgp]confederation  id 2 申明本地的大AS号为2
[r3-bgp]peer 172.16.1.2 as-number 64512           告知R2的小AS号
[r3-bgp]peer 172.16.1.2 connect-interface  LoopBack 0   和R2的环回接口建
[r3-bgp]peer 172.16.1.4 as-number 64512      告知R3的小AS号
[r3-bgp]peer 172.16.1.4 connect-interface LoopBack 0  和R3的环回接口建

R4上

[r4]bgp 64512
[r4-bgp]router-id 4.4.4.4
[r4-bgp]confederation id 2
[r4-bgp]confederation peer-as  64513   R7在AS 64513,要宣告一下64513
[r4-bgp]peer 172.16.1.3 as-number 64512 告知R3的小AS号
[r4-bgp]peer 172.16.1.3 connect-interface  LoopBack 0 
[r4-bgp]peer 172.16.1.7 as-number 64513  告知R7的小AS号
[r4-bgp]peer 172.16.1.7 connect-interface  LoopBack 0
[r4-bgp]peer 172.16.1.7 ebgp-max-hop 2 在不同的as,要改下一跳

同理,R5,R6,R7联邦,在同一个小号AS为64513,命令差不多,就不写出来了

修改下一跳操作

要想 R1的路由传给as2内部,还需要再AS边界如R2和R7上修改下一跳为本地

[r2]bgp 64512
[r2-bgp]peer 172.16.1.3 next-hop-local
[r2-bgp]peer 172.16.1.5 next-hop-local

[r7]bgp 64513
[r7-bgp]peer 172.16.1.4 next-hop-local
[r7-bgp]peer 172.16.1.6 next-hop-local

这样,R2可以传给R3,但R4还是学习不到,因为R4和R3在同一个as内,由于水平分割,R3不能发给R4,所以在这里让R3作为R4的路由发射器,RR,把R3学习到的传给R4

命令:

[r3]bgp 64512
[r3-bgp]peer 172.16.1.4 reflect-client 

同理;R6也要做为RR

[r6]bgp 64513 
[r6-bgp]peer 172.16.1.7 reflect-client 

在R1和R8上宣告一下环回,as2内都能学习到

BGP汇总

方法一:NULL空接口防环

宣告R2-R7

[r2]ip route-static 172.16.0.0 21 NULL  0  空接口防环
[r2]bgp 64512
[r2-bgp]network 172.16.0.0 21 全部宣告

此时,R1和R8都能学习到AS2内部的路由

但是存在不好的地方,空接口写在R2上,如果R8访问一个AS内没有的地址如172.16.0.8(在172.16.0.0范围),会先去R7上查,有没有这个地址,R7一查路由表,发现R2有一个172.16.0.0的路由,R7就会把这个地址发给R2, 而不是丢弃,R2就会成为一个黑洞。

所以R7上也要汇总(这里记住,要重分布,所有边界都重分布,要汇总,所有边界都汇总)

方法二:在R7换一种明细路由配置

[r7]bgp 64513

[r7-bgp]network 172.16.2.0 24
[r7-bgp]network 172.16.3.0 24
[r7-bgp]network 172.16.4.0 24
[r7-bgp]network 172.16.5.0 24
[r7-bgp]network 172.16.6.0 24
[r7-bgp]network 172.16.7.0 24

[r7]bgp 64513  
[r7-bgp]aggregate 172.16.0.0 21 detail-suppressed  仅传递聚合条目,所有明细路由被抑制,同时自动产生空接口防环路由

s>    表示被抑制了,转发出去的还是172.16.0.0 这条路由

内容有点长,希望对你有所帮助

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

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

相关文章

基于R语言实现的负二项回归模型【理解与实现】-理解负二项回归模型和泊松回归模型之间的区别

前言 我们可以在R语言中使用MASS包中的glm.nb函数来拟合负二项模型,以及使用glm函数来拟合泊松模型。以下是一个详细的过程,包括模拟数据的生成、模型的拟合、结果的比较和解释。 需要的包 if (!require("MASS")) install.packages("M…

ES增强框架easy-es

因为最近做的功能是关于舆情的,所以数据量比较大的,本来打算用MySQL做时间分表来做,但是经过一段时间的测试,发现数据量太大,用时间分表不能满足性能的要求,所以决定将数据存储改为ES,但是短时间内改底层框架又不是一个小工程,时间上不允许,所以找到了一个很合适的框架,他跟myb…

Echarts简单的多表联动效果和添加水印和按钮切换数据效果

多表联动 多表联动效果指的是在多个表格之间建立一种交互关系,以便它们之间的操作或选择能够相互影响。通常情况下,多表联动效果可以通过以下方式之一实现: 数据关联: 当在一个表格中选择或操作某些数据时,另一个表格…

DataGrip连接Docker中的MySQL容器

获取MySQL镜像 通过命令行工具或者docker desktop 命令行: docker pull mysqldocker desktop工具,tag可以指定版本 创建mysql容器 我们知道dockerfile用于编写镜像,dockercompose用于编排容器,所以这里我用dockercompose来创…

eNSP防火墙配置实验(trust、DMZ、untrust)

【拓扑】 设备 接口 IP地址/子网掩码/网关 AR1 G0/0/0 10.1.3.2/24 G0/0/1 100.1.1.2/24 FW1 G0/0/0 192.168.166.254/24 G1/0/0 10.1.1.1/24,trust域 G1/0/1 10.1.2.1/24,DMZ域 G1/0/2 100.1.3.1/24,untrust域 LSW1 G0/0/…

ssm051网上医院预约挂号系统+jsp

网上医院预约挂号系统设计与实现 摘 要 如今的信息时代,对信息的共享性,信息的流通性有着较高要求,因此传统管理方式就不适合。为了让医院预约挂号信息的管理模式进行升级,也为了更好的维护医院预约挂号信息,网上医院…

13.多通道视频流缓存以及显示架构

1 简介 多通道视频流缓存以及显示架构是一个在数字图像处理中很基础也很重要的一个架构。在图像拼接以及高分辨率图像显示方面应用范围较为广泛。本文将介绍一个四通道的图像显示。可以四个图像信息输入以及拼接到一个显示屏里面。使用的开发板为A7 2 框架图 架构图如下图所示…

Day20-【Java SE高级】单元测试 反射 注解 动态代理

一、单元测试 就是针对最小的功能单元(方法),编写测试代码对其进行正确性测试。 1. 咱们之前是如何进行单元测试的?有啥问题? 只能在main方法编写测试代码,去调用其他方法进行测试。无法实现自动化测试,一个方法测试失败,可能…

FJSP:水鹿优化算法(Sambar Optimization Algorithm,SOA)求解柔性作业车间调度问题(FJSP),提供MATLAB代码

一、柔性作业车间调度问题 柔性作业车间调度问题(Flexible Job Shop Scheduling Problem,FJSP),是一种经典的组合优化问题。在FJSP问题中,有多个作业需要在多个机器上进行加工,每个作业由一系列工序组成&a…

什么是 MVVM、mvc 模型

mvc模型 MVC: MVC 即 model-view-controller(模型-视图-控制器)是项目的一种分层架构思想,它把复杂的业务逻辑, 抽离为职能单一的小模块,每个模块看似相互独立,其实又各自有相互依赖关系。它的好处是:保证了…

【信道编码】1 无线通信发展历程与挑战、信道分类、多径信道、单径信号传输与检测

【信道编码】1 无线通信发展历程与挑战、信道分类、多径信道、单径信号传输与检测 写在最前面无线通信发展历程一、电磁波的发现与利用(19世纪末至20世纪初)二、无线电技术的广泛应用(20世纪初至20世纪中叶)三、数字化与移动通信的…

HTML重要标签重点及属性(表格表单列表)——之转生在异世界学前端

表格标签 table是用于定义表格的标签 tr是用于定义表格的行 td是用来定义表格的列,th是表头一般只有一个表头会加粗 表格属性border是设置边框值为1;1是有边框, align设置居中对齐方式center,left,right cellpadding设置文字…

如何下载和安装Google Chrome扩展插件:一步步指南

Google Chrome 插件为我们提供了这样的便利,但有时找到一个有用的插件后,我们可能需要将其下载到本地以便离线使用或备份。 一、为什么可以从Google Chrome商店直接下载插件? Google Chrome 扩展插件主要通过Chrome Web Store分发&#xff…

万兆以太网MAC设计(4)CRC_process模块

文章目录 前言一、模块功能二、实现过程三、仿真总结 前言 上文介绍的MAC_RX模块当中增加了CRC校验和比对的功能,本文将根据CRC校验的结果,来决定将数据输出到上层用户还是丢弃。 一、模块功能 接收MAC_RX模块输出的AXIS数据,存入本地环形…

Spring Cloud学习笔记:Eureka集群搭建样例

这是本人学习的总结,主要学习资料如下 - 马士兵教育 1、项目架构2、Dependency3、项目启动类4、application.yml5、启动项目 1、项目架构 因为这是单机模拟集群搭建,为了方便管理就都放在了一个项目中。这次准备搭建三个项目server1, server2, server3 …

软件杯 深度学习卷积神经网络垃圾分类系统 - 深度学习 神经网络 图像识别 垃圾分类 算法 小程序

文章目录 0 简介1 背景意义2 数据集3 数据探索4 数据增广(数据集补充)5 垃圾图像分类5.1 迁移学习5.1.1 什么是迁移学习?5.1.2 为什么要迁移学习? 5.2 模型选择5.3 训练环境5.3.1 硬件配置5.3.2 软件配置 5.4 训练过程5.5 模型分类效果(PC端) 6 构建垃圾…

vmware安装win10及ubuntu

安装win10 新建一个文件夹 选择刚才创建的文件夹 选择需要保存文件的位置,还是选择刚才创建的文件夹 选择自定义硬件 选择下载的win10镜像iso文件,导入后,点击完成即可 接下来就是下一步 没有此电脑,可以点击个性化-》主题-》桌面设置…

杰发科技AC7840——CAN通信简介(4)_过滤器设置

0. 简介 注意:过滤器最高三位用不到,因此最高位随意设置不影响过滤器。 1. 代码分析 注意设置过滤器数量 解释的有点看不懂 详细解释...也看不大懂 Mask的第0位是0,其他位都是1(就是F?),那就指定了接收值就是这个数,…

专业140+总分410+北京理工大学826信号处理导论考研经验北理工电子信息通信工程,真题,参考书,大纲。

今年考研专业课826信号处理导论(信号系统和数字信号处理)140,总分410,顺利上岸!回看去年将近一年的复习,还是记忆犹新,有不少经历想和大家分享,有得有失,希望可以对大家复…

JVM虚拟机(四)年轻代中的 S0区、S1区和 from区、to区有什么区别?

目录 一、知识回顾二、from区和 to区的交换三、总结 一、知识回顾 什么是年轻代? 年轻代:是 JVM 堆内存中专门用于存储新创建对象的部分,旨在高效处理大量短时间内可能被回收的对象。 年轻代有哪几部分? Eden区:年轻…