当前位置: 首页 > news >正文

BGP分解实验·12——配置路由反射器

当一个AS包含多个iBGP对等体时,路由反射器(Route-Reflector)非常有用,因为相对于iBGP路由反射器指定的客户端只需要和路由反射器建立邻居关系,从而降低了iBGP全互连的连接数量。路由反射器(RR)和它指定的客户端合称为一个簇。RR打破了iBGP水平分割的原则,RR能够将来自一个iBGP对等体的路由传递给另一个iBGP对等体。

RR的传递规则有三条:

  • 规则1——如果NLRI是从非客户端的iBGP邻居传递过来的条目,RR只将它反射给客户端;(RR不会传递从一个非客户端收到的NLRI到另一个非客户端——非非不传)
  • 规则2——如果NLRI是从所指定客户端传递过来条目,RR会将此条目反射给所有客户端与非客户端;(返回起始发端路由器时会被源起始路由器拒绝)
  • 规则3——如果NLRI是从eBGP邻居传递过来的条目,RR会将此条目反射给所有的客户端和非客户端。

解释RR传递规则的可视化描述如下图:

根据以上解释,实验拓扑如下所示:

在配置上为了方便查看使R3用模板组的方式指定R5为客户端,其他直接手动指定的邻居建立并未指定成为客户端。

R1的基础配置如下:

hostname R1
!
interface Loopback0ip address 192.168.1.1 255.255.255.255
!
interface Ethernet0/0ip address 10.1.13.1 255.255.255.0no sh
!
interface Ethernet0/1ip address 100.64.12.1 255.255.255.248no sh
!
router eigrp 5network 0.0.0.0
!
router bgp 135bgp router-id 1.1.1.1network 192.168.1.1 mask 255.255.255.255neighbor R1R3 peer-groupneighbor R1R3 remote-as 135neighbor R1R3 update-source Loopback0neighbor 100.64.12.2 remote-as 200neighbor 192.168.3.3 peer-group R1R3
!
end

R2的基础配置如下:

hostname R2
!
interface Loopback0ip address 172.16.20.20 255.255.255.255
!
interface Ethernet0/0ip address 100.64.23.2 255.255.255.248no sh
!
router bgp 200bgp router-id 2.2.2.2network 172.16.20.20 mask 255.255.255.255neighbor 100.64.23.3 remote-as 135
!

R3的基础配置如下:

hostname R3
!
interface Loopback0ip address 192.168.3.3 255.255.255.255
!
interface Ethernet0/0ip address 10.1.13.3 255.255.255.0no sh
!
interface Ethernet0/1ip address 10.1.35.3 255.255.255.0no sh
!
interface Ethernet0/2ip address 100.64.23.3 255.255.255.248no sh
!
interface Ethernet0/3ip address 10.1.34.3 255.255.255.0no sh
!
router eigrp 5network 0.0.0.0
!
router bgp 135bgp router-id 3.3.3.3bgp listen range 192.168.5.0/24 peer-group RRnetwork 192.168.3.3 mask 255.255.255.255neighbor RR peer-groupneighbor RR remote-as 135neighbor RR update-source Loopback0neighbor RR route-reflector-clientneighbor 192.168.1.1 remote-as 135neighbor 192.168.1.1 update-source Loopback0neighbor 192.168.4.4 remote-as 135neighbor 192.168.4.4 update-source Loopback0neighbor 100.64.23.2 remote-as 200
!
end

R4的基础配置如下:

hostname R4
!
interface Loopback0ip address 192.168.4.4 255.255.255.255
!
interface Ethernet0/0ip address 10.1.34.4 255.255.255.0no sh
!
router eigrp 5network 0.0.0.0
!
router bgp 135network 192.168.4.4 mask 255.255.255.255neighbor 192.168.3.3 remote-as 135neighbor 192.168.3.3 update-source Loopback0
!
end

R5的基础配置如下:

hostname R5
!
interface Loopback0ip address 192.168.5.5 255.255.255.255
!
interface Ethernet0/0ip address 10.1.35.5 255.255.255.0no sh
!
interface Ethernet0/1ip address 100.80.56.5 255.255.255.248no sh
!
router eigrp 5network 0.0.0.0
!
router bgp 135network 192.168.5.5 mask 255.255.255.255neighbor R5R3 peer-groupneighbor R5R3 remote-as 135neighbor R5R3 update-source Loopback0neighbor R5R3 next-hop-selfneighbor 192.168.3.3 peer-group R5R3neighbor 100.80.56.6 remote-as 400
!
end

R6的基础配置如下:

hostname R6
!
interface Loopback0ip address 172.18.60.60 255.255.255.255
!
interface Ethernet0/0ip address 100.80.56.6 255.255.255.248no sh
!
router bgp 400bgp router-id 4.4.4.4network 172.18.60.60 mask 255.255.255.255neighbor 100.80.56.5 remote-as 135
!

以上配置只是在R3指定的RRC(Route-Reflector-Client)为R5,R1和R4在ASN135内未被指定为RRC,所以R1和R4互不传递NLRI(路由);规则1,非非不传。

以上可以看到R1中没有R4通告出来的192.168.4.4/32的网络,同样在R4的BGP表中也看不到R1通告的192.168.1.1/32的网络。其他都可以相互直接通告或转接通告。

结合以上,可以看到规则2和规则3。(RR不能被具体配置,只要在一台路由器指定其他邻居为RRC,则自己自动成为这个RRC的RR)使R3成为RR并指定R5为其客户端,可以看到以下BGP表中,未被指定RRC的非RR客户端R1和R4,都会在BGP表中加载192.168.5.5/32的路由,虽然有r标记的装表失败,那因为有更低的管理距离的EIGRP存在导致的;eBGP传递过来的NLRI与通过RR和其指定的RRC转接传递的NLRI都会在其他路由器的BGP表中加载。只有两个iBGP中的非RRC没有相互传递。

在RR路由器R3上查看R1并非被指定为RRC,由于以上查看和配置所知,R4也非RRC,所以R1不会收到R4的NLRI,所以对等体组成员不会有R4,一共5个;而在R3查看指定的RRC的R5可以看到邻居BGP的RRC标识和包括自己在内一共有6个组成员。

可以看到2个eBGP的对等体中,R2的172.16.20.20是直接连接到RR上,而R6的172.18.60.60是通过RRC收到该路由而传递过来的。

现在为了查看通过RRC转接的eBGP路由信息的路径过程,现在在R3上再指定R1为RRC,在R3上添加配置如下:

router bgp 135neighbor 192.168.1.1 route-reflector-client

以上查看信息可以知道在本AS内,BGP表中的172.18.60.60/32的起源器是R5,通过簇列表R3到达。当一条BGP路由被反射器传递的时候,路由反射器会为其增加两个属性

  • Originator:是由路由反射器客户端生产,是本AS内路由起源器的路由器ID。(用于防止该路由被反射回起源器)
  • Cluster list:一个AS内的每个簇必须用一个唯一的4字节的簇ID来标识,如果簇内只有一个RR,那么簇ID就是RR的路由器ID。(用于在多个反射簇之间防止反射传递环路)

当RR收到一条NLRI更新时,它将检查簇列表,如果发现在列表中有自己的ID,就知道出现了路由环路,从而可以有效避免环路。

当R1配置成为R3的RRC后,可以看到原本在R1的BGP表没的另一个非RRC即R4的路由条目已经可以和当前已成为RRC的R1建立表项。同样R4的表项也会出现R1的条目。(当前这个iBGP的AS内只有R4是非RRC)

默认情况下,BGP会把本地优选的路由更新给BGP对等体。

相关文章:

BGP分解实验·12——配置路由反射器

当一个AS包含多个iBGP对等体时,路由反射器(Route-Reflector)非常有用,因为相对于iBGP路由反射器指定的客户端只需要和路由反射器建立邻居关系,从而降低了iBGP全互连的连接数量。路由反射器(RR)和…...

PCIe 个人理解专栏——【2】LTSSM(Link Training and Status State Machine)

前言: 链路训练和状况状态机LTSSM(Link Training and Status State Machine)是整个链路训练和运行中状态的状态转换逻辑关系图,总共有11个状态。 正文: 包括检测(Detect),轮询&…...

cmake 编译QT之JKQtPlotter-4.0.3

cmake 编译 JKQtPlotter-4.0.3 1.下载源码 源码地址:https://github.com/jkriege2/JKQtPlotter 2.编译 mkdir build cd buildDCMAKE_PREFIX_PATH指编译器目录 D:\ProgramFiles\cmake-3.25.0-rc1-windows-i386\bin\cmake.exe -G "Visual Studio 16 2019&qu…...

【C】memory 详解

<memory.h> 是一个 C 标准库头文件&#xff0c;提供了一组内存管理函数&#xff0c;用于分配、释放和操作动态内存。这些函数主要操作的是未初始化的内存块&#xff0c;是早期 C 编程中常用的内存操作工具。 尽管在现代 C 编程中更推荐使用<cstring>或<memory&…...

Python 爬虫 - Selenium 框架

Python 爬虫 - Selenium 框架 安装安装 Selenium安装 WebDriver 操作浏览器打开浏览器普通方式加载配置方式Headless 方式 设置浏览器窗口最大化显示最小化显示自定义大小 前进后退前进后退 元素定位根据 id 定位根据 name 定位根据 class 定位根据标签名定位使用 CSS 定位使用…...

mysql的having语句

MySQL的HAVING语句用于在GROUP BY子句对数据进行分组后&#xff0c;过滤满足特定条件的组。与WHERE子句不同&#xff0c;HAVING子句可以在过滤条件中使用聚合函数&#xff0c;而WHERE子句则不能。通常&#xff0c;HAVING子句与GROUP BY子句一起使用&#xff0c;以实现对分组数据…...

华为数据之道-读书笔记

内容简介 关键字 数字化生产 已经成为普遍的商业模式&#xff0c;其本质是以数据为处理对象&#xff0c;以ICT平台为生产工具&#xff0c;以软件为载体&#xff0c;以服务为目的的生产过程。 信息与通信技术平台&#xff08;Information and Communication Technology Platf…...

CDN、源站与边缘网络

什么是“源站” 源服务器 源服务器的目的是处理和响应来自互联网客户端的传入请求。源服务器的概念通常与边缘服务器或缓存服务器的概念结合使用。源服务器的核心是一台运行一个或多个程序的计算机&#xff0c;这些程序旨在侦听和处理传入的客户端请求。源服务器可以承担为网…...

工业相机 SDK 二次开发-Sherlock插件

本文介绍了 sherlock 连接相机时的插件使用。通过本套插件可连接海康的工业相机。 一&#xff0e;环境配置 1. 拷贝动态库 在用户安装 MVS 目录下按照如下路径 Development\ThirdPartyPlatformAdapter 找到目 录为 DalsaSherlock 的文件夹&#xff0c;根据 Sherlock 版本找到…...

FlinkSql使用中rank/dense_rank函数报错空指针

问题描述 在flink1.16(甚至以前的版本)中&#xff0c;使用rank()或者dense_rank()进行排序时&#xff0c;某些场景会导致报错空指针NPE(NullPointerError) 报错内容如下 该报错没有行号/错误位置&#xff0c;无法排查 现状 目前已经确认为bug&#xff0c;根据github上的PR日…...

VS C++ 配置OPENCV环境

VS C 配置OPENCV环境 1.下载opencv2.安装环境3.opencv环境4.VS配置opencv环境5.EXE执行文件路径的环境lib和dll需要根据是debug还是release环境来区分使用哪个 6.Windows环境 1.下载opencv 链接: link 2.安装环境 双击运行即可 3.opencv环境 include文件路径:opencv\build\…...

【SpringSecurity】基本开发流程

文章目录 概要整体架构流程实现流程1、编写各种Handler2 、AccessToken处理器3、定义AuthenticationFilter 继承 OncePerRequestFilter &#xff08;OncePerRequestFilter是Spring提供的一个过滤器基类&#xff0c;它确保了在一次完整的HTTP请求中&#xff0c;无论请求经过多少…...

Redis实战(黑马点评)——关于缓存(缓存更新策略、缓存穿透、缓存雪崩、缓存击穿、Redis工具)

redis实现查询缓存的业务逻辑 service层实现 Overridepublic Result queryById(Long id) {String key CACHE_SHOP_KEY id;// 现查询redis内有没有数据String shopJson (String) redisTemplate.opsForValue().get(key);if(StrUtil.isNotBlank(shopJson)){ // 如果redis的数…...

ChatGPT从数据分析到内容写作建议相关的46个提示词分享!

在当今快节奏的学术环境中&#xff0c;研究人员面临着海量的信息和复杂的研究任务。幸运的是&#xff0c;随着人工智能技术的发展&#xff0c;像ChatGPT这样的先进工具为科研人员提供了强大的支持。今天就让我们一起探索如何利用ChatGPT提升研究效率进一步优化研究流程。 ChatG…...

在 Windows 11 中设置 WSL2 Ubuntu 的 `networkingMode=mirrored` 详细教程

在 Windows 11 中设置 WSL2 Ubuntu 的 networkingModemirrored 详细教程 引言环境要求配置 .wslconfig 文件重启 WSL2验证镜像网络模式解决常见问题其他注意事项结论 引言 在 Windows 11 中使用 WSL2&#xff08;Windows Subsystem for Linux 2&#xff09;时&#xff0c;默认…...

万字长文总结前端开发知识---JavaScriptVue3Axios

JavaScript学习目录 一、JavaScript1. 引入方式1.1 内部脚本 (Inline Script)1.2 外部脚本 (External Script) 2. 基础语法2.1 声明变量2.2 声明常量2.3 输出信息 3. 数据类型3.1 基本数据类型3.2 模板字符串 4. 函数4.1 具名函数 (Named Function)4.2 匿名函数 (Anonymous Fun…...

怎么样把pdf转成图片模式(不能复制文字)

贵但好用的wps&#xff0c; 转换——转为图片型pdf —————————————————————————————————————————— 转换前&#xff1a; 转换后&#xff1a; 肉眼可见&#xff0c;模糊了&#xff0c;且不能复制。 其他免费办法&#xff0c;参考&…...

本地centos网络配置

1、路径 2、配置 另外还需要...

kotlin内联函数——runCatching

1.runCatching作用 代替try{}catch{}异常处理&#xff0c;用于捕获异常。 2.runCatching函数介绍 参数&#xff1a;上下文引用对象为参数返回值&#xff1a;lamda表达式结果 调用runCatching函数&#xff0c;如果调用成功则返回其封装的结果&#xff0c;并可回调onSuccess函…...

Python3 正则表达式:文本处理的魔法工具

Python3 正则表达式&#xff1a;文本处理的魔法工具 内容简介 本系列文章是为 Python3 学习者精心设计的一套全面、实用的学习指南&#xff0c;旨在帮助读者从基础入门到项目实战&#xff0c;全面提升编程能力。文章结构由 5 个版块组成&#xff0c;内容层层递进&#xff0c;逻…...

《DiffIR:用于图像修复的高效扩散模型》学习笔记

paper&#xff1a;2303.09472 GitHub&#xff1a;GitHub - Zj-BinXia/DiffIR: This project is the official implementation of Diffir: Efficient diffusion model for image restoration, ICCV2023 目录 摘要 1、介绍 2、相关工作 2.1 图像恢复&#xff08;Image Rest…...

windows平台通过命令行安装前端开发环境

访问node.js官网 访问node.js官网https://nodejs.org/en/download/&#xff0c;可以看到类似画面&#xff1a; 可以获取以下命令 # Download and install fnm: winget install Schniz.fnm # Download and install Node.js: fnm install 22 # Verify the Node.js version: no…...

记交叉编译asio_dtls过程

虽然编译成功了&#xff0c;但是还是有一些不妥的地方&#xff0c;参考一下就行了。 比如库的版本选择就有待商榷&#xff0c;我这里不是按照项目作者的要求严格用对应的版本编译的&#xff0c;这里也可以注意一下。 编译依赖库asio 下载地址, 更正一下&#xff0c;我其实用…...

学习yosys(一款开源综合器)

安装 sudo apt-get install yosys #ubuntu22.04仓库里面是yosys-0.9 sudo install xdot 创建脚本show_rtl.ys read_verilog cpu.v hierarchy -top cpu proc; opt; fsm; opt; memory; opt; show -prefix cpu 调用脚本 yosys show_rtl.ys verilog代码 module cpu(input c…...

自定义数据集 使用tensorflow框架实现逻辑回归并保存模型,然后保存模型后再加载模型进行预测

一、使用tensorflow框架实现逻辑回归 1. 数据部分&#xff1a; 首先自定义了一个简单的数据集&#xff0c;特征 X 是 100 个随机样本&#xff0c;每个样本一个特征&#xff0c;目标值 y 基于线性关系并添加了噪声。tensorflow框架不需要numpy 数组转换为相应的张量&#xff0…...

对于Docker的初步了解

简介与概述 1.不需要安装环境&#xff0c;工具包包含了环境&#xff08;jdk等&#xff09; 2.打包好&#xff0c;“一次封装&#xff0c;到处运行” 3.跨平台&#xff0c;docker容器在任何操作系统上都是一致的&#xff0c;这就是实现跨平台跨服务器。只需要一次配置好环境&…...

C语言进阶——3字符函数和字符串函数(2)

8 strsrt char * strstr ( const char *str1, const char * str2);查找子字符串 返回指向 str1 中第一次出现的 str2 的指针&#xff0c;如果 str2 不是 str1 的一部分&#xff0c;则返回 null 指针。匹配过程不包括终止 null 字符&#xff0c;但会在此处停止。 8.1 库函数s…...

机器学习day3

自定义数据集使用框架的线性回归方法对其进行拟合 import matplotlib.pyplot as plt import torch import numpy as np # 1.散点输入 # 1、散点输入 # 定义输入数据 data [[-0.5, 7.7], [1.8, 98.5], [0.9, 57.8], [0.4, 39.2], [-1.4, -15.7], [-1.4, -37.3], [-1.8, -49.1]…...

追剧记单词之:国色芳华与单词速记

●wretched adj. 恶劣的&#xff1b;悲惨的&#xff1b;不幸的&#xff1b;难过的 &#xff08;不幸的&#xff09;胜意出生于一个&#xff08;恶劣的&#xff09;家庭环境&#xff0c;嫁给王擎后依然过着&#xff08;悲惨的&#xff09;生活&#xff0c;她死后&#xff0c;牡丹…...

AIGC浪潮下,图文内容社区数据指标体系构建探索

在AIGC&#xff08;人工智能生成内容&#xff09;浪潮席卷之下&#xff0c;图文内容社区迎来了新的发展机遇与挑战。为了有效监控和优化业务发展&#xff0c;构建一个科学、全面的数据指标体系显得尤为重要。本文将深入探讨如何在AIGC背景下&#xff0c;为图文内容社区构建一套…...