BGP分解实验·9——路由聚合与条件性通告(1)

路由聚合是有效控制缩减BGP路由表的方法之一,路由聚合的前提和IGP一样,需要有路由目标存在BGP表中,与IGP不同的是,BGP路由聚合可以定义按需抑制路由的能力。

实验拓扑如下所示:

现在开始把从R1的R5的基础配置先准备好,R1的基础配置如下:

hostname R1
!
interface Loopback0ip address 192.168.1.1 255.255.255.0
!
interface Ethernet0/0ip address 10.1.12.1 255.255.255.0no sh
!
router bgp 100bgp router-id 1.1.1.1network 192.168.1.0neighbor 10.1.12.2 remote-as 200
!
end

R2的基础配置如下:

hostname R2
!
interface Loopback0ip address 192.168.2.2 255.255.255.0
!
interface Ethernet0/0ip address 10.1.12.2 255.255.255.0no sh
!
interface Ethernet0/1ip address 10.1.23.2 255.255.255.0no sh
!
interface Ethernet0/2ip address 10.1.24.2 255.255.255.0no sh
!
route-map CONNLOO permit 10match interface Loopback0
!
router bgp 200bgp router-id 2.2.2.2redistribute connected route-map CONNLOOneighbor 10.1.12.1 remote-as 100neighbor 10.1.23.3 remote-as 300neighbor 10.1.24.4 remote-as 400
!
end

R3的基础配置如下:

hostname R3
!
interface Loopback0ip address 10.3.3.3 255.255.255.0
!
interface Loopback1ip address 10.3.33.33 255.255.255.0
!
interface Ethernet0/0ip address 10.1.23.3 255.255.255.0no sh
!
route-map CONNLOO permit 10match interface Loopback0 Loopback1
!
router bgp 300bgp router-id 3.3.3.3redistribute connected route-map CONNLOOneighbor 10.1.23.2 remote-as 200
!
end

R4的基础配置如下:

hostname R4
!
interface Loopback0ip address 10.4.4.4 255.255.255.0
!
interface Loopback1ip address 10.4.44.44 255.255.255.0
!
interface Ethernet0/0ip address 10.1.24.4 255.255.255.0no sh
!
route-map CONNLOO permit 10match interface Loopback0 Loopback1
!
router bgp 400bgp router-id 4.4.4.4redistribute connected route-map CONNLOOneighbor 10.1.24.2 remote-as 200
!

以上是还没有聚合前的基础配置,依次查看R1、R2、R3和R4的BGP表如下:

R2上添加聚合地址的命令后,查看以下BGP表,R1、R2、R3、R4依次是:

router bgp 200
aggregate-address 10.0.0.0 255.248.0.0

直接聚合可以使聚合地址通过R2生成BGP表发给任何一个邻居,BGP聚合前缀的同时也会发送原来的各个明细路由信息(NLRI)。通过追加可选参数:summary-only,可以抑制明细。

router bgp 200
aggregate-address 10.0.0.0 255.248.0.0 summary-only 

可以在R2上抑制后再发送,在R3和R4上可以收到自己本地即下一跳是0.0.0.0的地址产生的明细是不能被抑制的。并且,下一跳是0.0.0.0时,表示该BGP路由起源本地,Weight值为32768。

通过AS-PATH属性可以看出,执行地址聚合的路由器R2成为聚合路由器的始发站,原来的AS-PATH属性丢失。

由于配置了地址聚合,所以在R2的路由表中会产生一条指向Null0的汇总路由,主要是为了避免产生路由环路。

可以通过设置参数as-set使BGP聚合路由不丢失原来的AS-PATH属性,从而避免路由环路。以下是继续在R2上继续更改聚合属性参数的示例为:

router bgp 200
aggregate-address 10.0.0.0 255.248.0.0 summary-only as-set 

可以看到通过在R2上设置了as-set参数,改变AS-PATH的无序属性,AS-PATH包含了被聚合路由中所有明细路由所在的AS号的集合中。

聚合路由是因为携带了所有明细路由的AS-PATH属性,所以该聚合路由在R3和R4中的BGP表没有出现,从而可以有效的避免路由环路。可以使用命令neighor ip-address allowas-in可以允许在AS-PATH属性中出现本AS的BGP路由条目进入本AS,不过这需要网络管理员仔细衡量网络的路径,因为这样有可能出现环路风险。

eBGP更新路由最主要的防环原则就是使用AS-PATH属性,在BGP对等体之间传递的每条路由都携带它所经过的AS号有序列表,如果该路由被通告给它始发的AS,该AS路由器将在AS号序列表中看到自己的AS号,它将不接受该路由。

在R3上需要手动开启入向软配置:

router bgp 300
neighbor 10.1.23.2 soft-reconfiguration inbound 

以上输出可以看到R3没有收到聚合路由10.0.0.0/13的条目,这是因为它发现该路由条目中的AS-PATH属性列表中包含自己的AS号码,所以不接收。R4也是一样的原理。

如果有特殊需求,要有条件的通告时,可以在能够控制聚合路由的路由器上抑制部分明细路由条目,通过配置aggregate-address的额外参数suppress-map来达成。

在R2上添加配置如下:

ip prefix-list 1 seq 5 permit 10.3.33.0/24
ip prefix-list 1 seq 10 permit 10.4.44.0/24route-map SRA permit 10match ip address prefix-list 1router bgp 200
aggregate-address 10.0.0.0 255.248.0.0 as-set summary-only suppress-map SRA

因为R3除了接收来自R2已经抑制路由外,本地自己生产的路由是没法通过聚合路由器控制而抑制掉的路由条目;R4也一样。

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

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

相关文章

Linux C\C++方式下的文件I/O编程

【图书推荐】《Linux C与C一线开发实践(第2版)》_linux c与c一线开发实践pdf-CSDN博客 《Linux C与C一线开发实践(第2版)(Linux技术丛书)》(朱文伟,李建英)【摘要 书评 试读】- 京东图书 Lin…

C语言:位段

位段的内存分配: 1. 位段的成员可以是 int unsigned int signed int 或者是char (属于整形家族)类型 2. 位段的空间上是按照需要以4个字节( 类型 int )或者1个字节( char )的方式来开辟的。 3. 位段涉及…

SpringMVC 实战指南:文件上传

第一章:常用的注解: RequestParam 注解: 作用:把请求中的指定名称的参数传递给控制器中的形参赋值属性: value:请求参数中的名称required:请求参数中是否必须提供此参数,默认值是 tr…

【部署】将项目部署到云服务器

目录 1.获得服务器 2.连接到云服务器 3.配置环境 3.1.Java(运行后端所需) 3.2.MySQL数据库 3.3.Nginx(运行前端所需) 3.4. Node.js(构建前端所需) 4.打包项目 4.1.打包后端项目 4.2.打包前端项目…

C++实现矩阵Matrix类 实现基本运算

本系列文章致力于实现“手搓有限元,干翻Ansys的目标”,基本框架为前端显示使用QT实现交互,后端计算采用Visual Studio C。 目录 Matrix类 1、public function 1.1、构造函数与析构函数 1.2、获取矩阵数值 1.3、设置矩阵 1.4、矩阵转置…

HTML<form>标签

例子 具有两个输入字段和一个提交按钮的HTML表单&#xff1a; <form action"/action_page.php" method"get"> <label for"fname">First name:</label> <input type"text" id"fname" name"f…

《贪心算法:原理剖析与典型例题精解》

必刷的贪心算法典型例题&#xff01; 算法竞赛&#xff08;蓝桥杯&#xff09;贪心算法1——数塔问题-CSDN博客 算法竞赛&#xff08;蓝桥杯&#xff09;贪心算法2——需要安排几位师傅加工零件-CSDN博客 算法&#xff08;蓝桥杯&#xff09;贪心算法3——二维数组排序与贪心算…

“Cultural diversity” 和 “multicultural”应用场景区别

“Cultural diversity” 和 “multicultural” 都涉及到不同文化的存在和互动&#xff0c;但它们在使用时有细微的差别&#xff0c;主要体现在侧重点和语境上。以下是它们各自的应用场景&#xff1a; 1. Cultural Diversity&#xff08;文化多样性&#xff09; 定义&#xff…

在 Linux 和 Windows 下查看文件 MD5 值的几种方法

MD5&#xff08;Message Digest Algorithm 5&#xff09;是一种常见的哈希算法&#xff0c;用于生成文件的唯一“指纹”。它在文件传输和验证过程中非常有用&#xff0c;能够确保文件未被篡改。本文将介绍在 Linux 和 Windows 下查看文件 MD5 值的几种方法&#xff0c;并分别列…

QT 占位符的用法

这段代码是 Qt 中常用的字符串格式化方法&#xff0c;用于动态生成带有变量值的字符串。以下是详细的拆解和解释&#xff1a; QString("Elapsed time: %1 seconds").arg(elapsed_seconds.count())1. QString 的构造 QString(“Elapsed time: %1 seconds”) 创建了一…

【2024 年度总结】从小白慢慢成长

【2024 年度总结】从小白慢慢成长 1. 加入 CSDN 的契机2. 学习过程2.1 万事开头难2.2 下定决心开始学习2.3 融入技术圈2.4 完成万粉的目标 3. 经验分享3.1 工具的选择3.2 如何提升文章质量3.3 学会善用 AI 工具 4. 保持初心&#xff0c;继续前行 1. 加入 CSDN 的契机 首次接触…

如何通过云计算优化网站性能?

随着互联网的迅猛发展&#xff0c;网站的性能已经成为用户体验的关键因素之一。响应速度慢、加载时间长&#xff0c;甚至服务器崩溃都会直接影响用户的满意度&#xff0c;进而影响企业的品牌形象和盈利能力。而云计算提供了一个高效、灵活、可扩展的解决方案&#xff0c;帮助企…

【C++篇】红黑树封装 实现map和set

目录 前言&#xff1a; 一&#xff0c;库中map和set的大致结构 二&#xff0c;模拟实现 2.1&#xff0c;大致框架 2.2&#xff0c;复用红黑树实现insert接口 2.3&#xff0c;迭代器iterator的实现 operator()的实现&#xff1a; operator--()的实现&#xff1a; 对inser…

面试-业务逻辑3

应用 小明随机拿一些带有编号的积木组成一排&#xff0c;数字编号可能相同。小明让小刚找到这排积木中数字相同且所处位置最远的2块积木&#xff0c;并计算他们的距离。 实现 N int(input("请输入积木总数&#xff1a;")) a_list list()for i in range(0, N):a …

写作利器:如何用 PicGo + GitHub 图床提高创作效率

你好呀&#xff0c;欢迎来到 Dong雨 的技术小栈 &#x1f331; 在这里&#xff0c;我们一同探索代码的奥秘&#xff0c;感受技术的魅力 ✨。 &#x1f449; 我的小世界&#xff1a;Dong雨 &#x1f4cc; 分享我的学习旅程 &#x1f6e0;️ 提供贴心的实用工具 &#x1f4a1; 记…

RabbitMQ 高级特性

目录 1.消息确认 1.1 消息确认机制 1.2 手动确认方法 1. 2.1肯定确认 1.2.2 否定确认 1.3 SpringBoot 代码示例 1.3.1 配置确认机制 1.3.2 配置队列,交换机,绑定关系 1.3.3 生产者(向 rabbitmq 发送消息) 1.3.4 消费者(消费队列中的信息) 2.持久性 2.1 交换机…

AIGC视频生成模型:Meta的Emu Video模型

大家好&#xff0c;这里是好评笔记&#xff0c;公主号&#xff1a;Goodnote&#xff0c;专栏文章私信限时Free。本文详细介绍Meta的视频生成模型Emu Video&#xff0c;作为Meta发布的第二款视频生成模型&#xff0c;在视频生成领域发挥关键作用。 &#x1f33a;优质专栏回顾&am…

面向对象的程序设计:以对象的方式进行思考

1 理解接口与实现的区别 以上一篇文章的电视机需要插电使用的例子继续来讲解: 对电视而言,插电使用,只需要标准的插座即可,具体的电从哪里来,是火力发电厂,或是太阳能发电,亦或是畜电池逆变供电,电视机是不需要关心的。 发电厂或供电设备属于实现,220V交流电插座属于…

网络协议如何确保数据的安全传输?

网络协议作为计算机网络通信的基石&#xff0c;其设计不仅旨在实现数据的有效传输&#xff0c;更在于确保数据在传输过程中的安全性。对于网络协议如何保障数据安全传输&#xff0c;是很多企业和网络IT部门的重点&#xff0c;本文将从多方面概述相关方法。 加密与解密机制 1. …

C# 以管理员方式启动程序全解析

引言 在 Windows 应用程序开发的领域中&#xff0c;C# 语言凭借其强大的功能和广泛的适用性&#xff0c;被众多开发者所青睐。然而&#xff0c;在实际的开发过程里&#xff0c;我们常常会遭遇这样的情况&#xff1a;程序需要访问特定的系统资源&#xff0c;像是系统文件夹、注…