【HCIP学习】BGP对等体组、聚合、路由反射器、联盟、团体属性

一、大规模BGP网络所遇到的问题

BGP对等体众多,配置繁琐,维护管理难度大

BGP路由表庞大,对设备性能提出挑战

IBGP全连接,应用和管理BGP难度增加,邻居数量过多

路由变化频繁,导致路由更新频繁

二、解决大规模BGP网络所遇到的问题

1、BGP对等体众多

对等体组(Peer Group)

BGP团体(Community )

2、BGP路由表庞大

BGP路由聚合

3、IBGP全连接(邻居数量太多)

BGP路由反射(Route Reflection)

BGP联盟(Confederation)

4、路由变化频繁(了解)

BGP路由衰减(Route Dampening)

三、对等体组

定义:BGP 对等体组(Peer Group)是一些具有某些相同属性的对等体的集合。通过对等体组可以简化配置

特点:根据对等体所在的AS,对等体组可分为IBGP对等体组和EBGP对等体组。

建邻要求:

EBGP:R1-R2

IBGP:R2分别于R3/R4/R5

注意:配置EBGP对等体组--------一般不常用,因为只有同一个AS中的EBGP邻居才能加入一个对等体组,如果EBGP邻居分布在多个AS,则需要给每个AS的EBGP邻居,配置一个对等体组。比较麻烦

配置IBGP对等体组

[R2-bgp]group in internal

[R2-bgp]peer 3.3.3.3 group in

[R2-bgp]peer 4.4.4.4 group in

[R2-bgp]peer 5.5.5.5 group in

[R2-bgp]peer in connect-interface l0

[R2-bgp]peer in next-hop-local

[R3-bgp]peer 2.2.2.2 as 200

[R3-bgp]peer 2.2.2.2 connect-interface l0

R4和R5上做和R3相同的配置

配置EBGP对等体组

四、BGP路由聚合

作用:减小路由表规模

1、自动聚合:

只能对引入的IGP的路由进行聚合;

只能将明细路由汇总到主类,这会造成路由黑洞;

华为设备默认关闭自动聚合功能;

只能在始发路由器上进行配置;

[r1-bgp]summary automatic 开启自动聚合

自动聚合后,会出现状态码S(suppressed),代表被抑制的路由信息不会再加表和传递了

实验演示1:只针对重发布的路由条目生效,不对自身宣告的路由生效

在R3上加几个环回口172.16.0.1 24和172.16.1.1 24,并做BGP宣告

[R3-bgp]summary automatic  开启自动聚合

实验演示2:引入直连

[R3-bgp]import-route direct

[R3-bgp]summary automatic

2、手工聚合:

可实现精确汇总:[R1-bgp]aggregate 172.16.0.0 16

可以在任何路由器上对BGP路由进行聚合;

出现问题:明细路由依然被通告,有形成环路的隐患

解决方法:[R1-bgp]aggregate 172.16.0.0 16 detail-suppressed  //抑制明细路由

此命令不通过明细路由;

实验演示1:

[R3-bgp]network 172.16.1.1 24

[R3-bgp]network 172.16.0.1 24

[R3-bgp]aggregate 172.16.0.0 23

测试:查看路由表,聚合成功,但明细路由也存在,并没有达到缩小路由表规模的情况

抑制明细路由。达到了缩小路由表的规模

常见汇总命令:

[R1-bgp]aggregate 172.16.0.0 16 detail-suppressed as-set  汇总的路由可继承明细路由的路径属性,其中AS_PATH属性最关键。

[R1-bgp]aggregate 172.16.0.0 16 suppress-policy ‘路由策略名字’通告汇总路由,并有选择性的抑制明细路由

五、路由反射器

1、定义:

BGP反射器能把从IBGP邻居学习的路由反射给其他IBGP邻居(打破IBGP水平分割的限制)

2、作用:

用于替代IBGP全连接,减少IBGP邻居数量;解决BGP路由黑洞问题;

3、角色:

RR(router  reflect):路由反射器

反射器角色:

        client:RR客户机

        非客户机

注:将一台BGP路由器指定为RR的同时,还需要指定其Client。至于Client本身,无需做任何配置,它并不知晓网络中存在RR

思考:为啥不把一个AS内的所有路由器都变成客户机?还有非客户机的存在?(RTE\RTF)

答案:因为一个AS就是一个城域网。一个城市的城域网中有好多路由器,一个城域网怎么可能只有一个反射器。比如:高新区选一个反射器,不可能让他给雁塔区啊、长安区啊提供反射服务。一个反射器给他特定的客户机提供反射服务。我们可以在 这些区各选一个反射器,让他们给本区的路由器提供反射服务。也就是说可以在一个AS内建立多个路由器反射群。两个反射群之间需要建立邻居关系。它们之间需要传递路由。

4、反射规则

从非反射客户端接受的路由,仅反射给客户端;

从客户端接受到的路由,反射给所有客户端和非客户端,路由始发者除外;

从EBGP接收的路由,反射给所有的客户端和非客户端;

注:一个反射群里的所有反射客户端只需与反射器建立IBGP邻居关系

5、反射集群:

由反射器和客户端组成的网络范围;

如果存在多个反射器,配置相同的cluster_id

思考:当RR故障后,会发生啥?怎么解决?

思考:RR之间需要建立邻居关系?------当然需要

但是这样的组网容易形成环路。(一条路由从客户机1传到RR,RR传到备用RR,备用RR再反射给客户机1)

6、路由反射存在问题:使得IBGP水平分割原则失效,会导致环路的产生

7、解决方法:

通过两个路径属性来避免环路

(1)cluster_list(集群列表):

类似AS_PATH,每个RR都有一个Cluster id,默认为路由器的router id,可手工修改;

同一个AS内的Cluster id必须相同,才能有防环作用。

路由传递过程中,把经过的反射器的Cluster_id一次记录在Cluster_list中;

Cluster_list用于反射器防环,当反射器收到BGP路由时,如果本机的Cluster_id出现在Cluster_list中,则丢弃该路由;

(例如:一条路由从客户机1传到RR,RR会将Cluster id为1.1.1.1这个属性写给这个路由,RR再传到备用RR,会检查自身的Cluster id,发现学到的路由Cluster id与自己一样,就直接丢弃

Cluster-list用于路由优选,短的优先

特殊情况:不受Cluster-list防环机制的约束,依然形成环路

思考:一条路由从客户机3传到备用RR,再传到rr,rr会不会传给客户机3?

答案:会,解决方法用originator_ID

(2)originator_ID:起源ID

由路由器反射器反射一条路由时产生,会在反射出去的路由中增加originator_ID,它就是本地AS路由器的BGP路由器的router-id;

即使这条反射路由经过多个RR,当BGP路由器收到一条携带Originator_ID属性的IBGP路由,并且Originator_ID属性值与自身的Router ID相同,则它会忽略关于该条路由的更新。

originator_ID用于路由优选,短的优先

8、总结BGP的防环机制

(1)AS_PATH:解决AS之间的环路问题

(2)IBGP的水平分割:解决一个AS内部IBGP邻居之间环路问题

(3)当一个反射群中存在多个反射器时,通过Cluster-list防环,(BGP反射器)

(4)originator_ID:在多个反射群之间,通过originator_ID防环,(BGP反射器)

9、注意事项

反射路由无法使用策略去更改路由属性

10、实验配置

[R2-bgp]peer 3.3.3.3 reflect-client      //在反射器上配置其反射客户机

[R2-bgp]reflector cluster-id 2.2.2.2    //配置反射器的集群id

11、实验作业 ----- BGP路由反射器实验

六、BGP联盟

1、定义:

处理AS内部的IBGP网络连接激增的另一种方法,间接避免了IBGP环路问题

2、原理:

联盟将一个自治系统划分为若干个子自治系统,每个子自治系统内部的IBGP对等体建立全连接关系,子自治系统之间建立联盟内部EBGP连接关系。

3、注意点:

子AS使用私有AS编号;

其他真实AS的路由器仍然和联盟AS建立EBGP邻居;

跨越子AS的EBGP邻居仍然需要更改下一跳为本机;

每个联盟里有一台路由器和其他联盟中一个路由器建立邻居关系就行;

实际场景中一般不用联盟,因为他会改变邻居关系

4、配置命令:

[R2]bgp 65001        //进入子AS编号

[R2-bgp]confederation id 200    //申明自己的大号

[R2-bgp]confederation peer-as 65002  //申明自己的联盟同伴

[R2-bgp]peer 100.1.1.1 as-number  100       指定EBGP邻居

[R2-bgp]peer 3.3.3.3 as-number 65001

[R2-bgp]peer 100.2.2.5 as-number 65002

[R2-bgp]peer 3.3.3.3 connect-interface LoopBack 0

[R2-bgp]peer 3.3.3.3 next-hop-local

[R2-bgp]peer 100.2.2.5 next-hop-local   //跨越子AS的EBGP邻居仍然需要更改下一跳为本机;不然从R1传过去的网段,R5收不到

子AS之间的EBGP环回口建邻

七、BGP团体属性(community)

(1)定义:

相当于路由的标记,一组具有相同特征的目的地的集合,可针对特定的路由设置特定的community属性值

问题:网段不连续,ACL写起来比较麻烦。

解决方法:在每个分部的市场部路由的出口设备上,打上100:1的团体属性。

(2)社团属性表达方法:

本质由32位二进制构成,拥有多种表达格式,

比如:可使用10进制;

或者16位二进制,前16位一般是本地AS的AS号,后16位是自定值;

(3)公认的社团属性:

Internet:抓取的BGP流量,默认情况下都属于Internet,可以被通告给所有的BGP对等体;

no-advertise:路由信息无法发送给自己的IBGP对等体或EBGP对等体;

no-export:路由信息可以发给自己的BGP对等体,但对等体不能离开这个AS,无法发给自己的EBGP;但可以发给自己的联邦EBGP对等体;

no-export-subconfed:路由信息可以发给自己的BGP对等体,但对等体不能离开这个AS,无法发给自己的EBGP;也不可以发给自己的联邦EBGP对等体;

注:目前大部分厂商默认在传递BGP路由信息时是不传递社团属性的,如果需要传递社团属性,则需要通过命令开启

(4)配置演示

配置步骤:

抓取流量

[R1]acl 2000

[R1-acl-basic-2000]rule permit source 192.168.1.0 0.0.0.255

配置路由策略,打上团体属性

[R1]route-policy com permit node 10

[R1-route-policy]if-match acl 2000

[R1-route-policy]apply community no-export

[R1]route-policy com permit node 20

调用路由策略

[R1]bgp 100

[R1-bgp]peer 100.1.1.2 route-policy com export

[R1-bgp]peer 100.1.1.2 advertise-community      //通告团体属性,使其他邻居学到

[R2]dis bgp routing-table 192.168.1.0 24   //查看一条路由的详细信息

八、联盟和团体属性实验

九、BGP综合实验

实验报告册见下一篇文章哦~ 

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

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

相关文章

使用QT-QSqlQuery::value()遇到的问题

在实现客户端间好友添加功能时&#xff0c;我通过以下函数想实现数据库对好友信息的保存 bool OpeDB::handleAddFriend_repound(const char *pername, const char *name) { // pername 被添加方 name 申请添加方 qDebug() << pername << " " &l…

Nginx(简洁版)

基本配置 worker_processes 1; //默认为1&#xff0c;表示开启一个业务进程 events //事件驱动模块&#xff08;&#xff09;{worker_connections 1024; //单个业务进程可接受连接数 } http{include mime.types; // 引入http mime类型&#xff08;在外部已经定义好&#xff0c…

如何在huggingface上申请下载使用llama2/3模型

1. 在对应模型的huggingface页面上提交申请 搜索对应的模型型号 登录huggingface&#xff0c;在模型详情页面上&#xff0c;找到这个表单&#xff0c;填写内容&#xff0c;提交申请。需要使用梯子&#xff0c;country填写梯子的位置吧(比如美国&#xff09; 等待一小时左右…

SEMI启动SiC专有技术项目

公司郑重声明&#xff0c;其正致力于筛选那些能够稳定输出、且可重复使用的关键参数性能。SEMI&#xff0c;这家SiC领域的佼佼者&#xff0c;已经启动了一项独具匠心的专有技术&#xff08;KGD&#xff09;筛选程序。该程序旨在为客户提供高品质的、经过严格电气分类与光学检验…

基于python的旅游爬虫可视化与实现

摘要 本项目为基于python的旅游爬虫可视化的设计与实现&#xff0c;项目以Web系统形式展示&#xff0c;利用Xpath爬虫爬取去哪儿网针对旅游业的需求&#xff0c;对国内热门旅游景点数据可视化系统&#xff0c;将爬取好的数据保存为CSV文件&#xff0c;再通过ORM框架导入MySQL数…

【python量化交易】qteasy使用教程07——创建更加复杂的自定义交易策略

创建更加复杂的自定义交易策略 使用交易策略类&#xff0c;创建更复杂的自定义策略开始前的准备工作本节的目标继承Strategy类&#xff0c;创建一个复杂的多因子选股策略策略和回测参数配置&#xff0c;并开始回测 本节回顾 使用交易策略类&#xff0c;创建更复杂的自定义策略 …

Mysql 多表查询,内外连接

内连接&#xff1a; 隐式内连接 使用sql语句直接进行多表查询 select 字段列表 from 表1 , 表2 where 条件 … ; 显式内连接 将‘&#xff0c;’改为 inner join 连接两个表的 on select 字段列表 from 表1 [ inner ] join 表2 on 连接条件 … ; select emp.id, emp.name, …

Selenium 自动化 —— 一篇文章彻底搞懂XPath

更多关于Selenium的知识请访问“兰亭序咖啡”的专栏&#xff1a;专栏《Selenium 从入门到精通》 文章目录 前言 一、什么是xpath&#xff1f; 二、XPath 节点 三. 节点的关系 1. 父&#xff08;Parent&#xff09; 2. 子&#xff08;Children&#xff09; 3. 同胞&#xff08;S…

力扣:48. 旋转图像(Java)

目录 题目描述&#xff1a;输入&#xff1a;输出&#xff1a;代码实现&#xff1a; 题目描述&#xff1a; 给定一个 n n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。 你必须在 原地 旋转图像&#xff0c;这意味着你需要直接修改输入的二维矩阵。请不要 使…

LangChain:模型 I/O 封装使用解析和感触

目录 模型 API&#xff1a;LLM vs. ChatModel OpenAI 模型封装 多轮对话 Session 封装 换个国产模型 模型的输入与输出 Prompt 模板封装 PromptTemplate ChatPromptTemplate MessagesPlaceholder 从文件加载 Prompt 模板 TXT模板 Yaml模板 Json模板 输出封装 Out…

目标检测标注工具Labelimg安装与使用

目录 一、安装Labelimg与打开 二、使用 1、基本功能介绍 2、快捷键 3、状态栏的工具 三、附录 1、YOLO模式创建标签的样式 2、create ML模式创建标签的样式 3、PascalVOC模式创建标签的样式 一、安装Labelimg与打开 labelimg是一款开源的数据标注工具&#xff0c;可以…

51基于单片机的温室大棚系统设计

设计摘要&#xff1a; 本设计旨在基于51单片机和蓝牙技术&#xff0c;实现一个功能完善的温室大棚系统。该系统具备以下主要功能&#xff1a;首先&#xff0c;通过连接的显示屏能够实时地显示当前的温度和湿度信息&#xff0c;方便用户了解温室内的环境变化。其次&#xff0c;…

ctfshow web271--web273

web271 laravel5.7反序列化漏洞 define(LARAVEL_START, microtime(true));/* |-------------------------------------------------------------------------- | Register The Auto Loader |-------------------------------------------------------------------------- | |…

凸优化理论学习二|凸函数及其相关概念

系列文章目录 凸优化理论学习一|最优化及凸集的基本概念 文章目录 系列文章目录一、凸函数&#xff08;一&#xff09;凸集&#xff08;二&#xff09;凸函数的定义及举例&#xff08;三&#xff09;凸函数的证明1、将凸函数限制在一条直线上2、判断函数是否为凸函数的一阶条件…

贝叶斯分类器详解

1 概率论知识 1.1 先验概率 先验概率是基于背景常识或者历史数据的统计得出的预判概率&#xff0c;一般只包含一个变量&#xff0c;例如P(A)&#xff0c;P(B)。 1.2 联合概率 联合概率指的是事件同时发生的概率&#xff0c;例如现在A,B两个事件同时发生的概率&#xff0c;记…

华为交换机配置导出备份python脚本

一、脚本编写思路 &#xff08;一&#xff09;针对设备型号 主要针对华为&#xff08;Huawei&#xff09;和华三&#xff08;H3C&#xff09;交换机设备的配置备份 &#xff08;二&#xff09;导出前预处理 1.在配置导出前&#xff0c;自动打开crt软件或者MobaXterm软件&am…

掌握MySQL执行计划分析【Explain】

前言 MySQL是一个强大的关系型数据库管理系统&#xff0c;其高效执行SQL查询的能力是其核心价值之一。然而&#xff0c;当查询变得复杂或者数据量急剧增长时&#xff0c;SQL查询的性能问题往往成为我们不得不面对的挑战。为了深入了解查询的执行过程并找到性能瓶颈&#xff0c…

Modbus通讯协议初学

目录 Modbus通讯协议初学什么是Modbus?Modbus用来做什么?4个种类的寄存器协议速记功能码Modbus 报文帧示例解读 Modbus通讯协议初学 什么是Modbus? 顾名思义,它是一个bus,即总线协议。比如串口协议、IIC协议、SPI都是通讯协议。你接触到这种协议,相信你所处的行业是工业方…

如何自定义Linux命令

说明&#xff1a;本文介绍如何将自己常用的命令设置为自定义的命令&#xff0c;以下操作在阿里云服务器CentOS上进行。 修改配置文件 修改配置文件前&#xff0c;先敲下面的命令查看当前系统配置的shell版本 echo $SHELL或者 echo $0区别在于&#xff0c;$SHELL查看的是系统…

落雪音乐 超好用的桌面端音乐播放器

之前一直都是充某Q音乐的会员&#xff0c;突然不想氪金了&#xff0c;终于找到一个开源的音乐播放器&#xff0c;在此先给落雪无痕大佬跪了 太爱了 简直白嫖怪的福音 话不多说&#xff0c;直接上操作&#xff1a;解压密码&#xff1a;www.1234f.com下载地址&#xff1a;极速云…