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

续接上(2)的实验。其拓扑如下:

路由聚合的负向也就是拆分,在有双出口的情况下,在多出口做流量分担是优选方法之一。

BGP可以根据指定来源而聚合路由,在产生该聚合路由的范围内的条目注入到本地BGP表后再向外分发出去。

实施BGP路由拆分实验,需要注意的是其本质上仍然属于条件性通告,这是Cisco IOS对条件性通告做了大量支持。之所以这种方式被称为路由拆分,是因为其特性上仅仅是对条件性通告的一个非常形象的称呼而已。

实现拆分路由的配置清单如下:

  • 首先在iBGP与eBGP的边界上,配置前缀列表,定义需要拆分出来的明细条目;
  • 再配置可以匹配汇总的路由前缀;
  • 定义前缀列表边界路由器的邻居来源;
  • 对准备要拆分出来的条目设置周知团体属性no-export以用于防环(防止传递出本AS);
  • 定义聚合前缀及来源;
  • 在边界路由器的进程下对其配置iBGP邻居可传递的BGP团体属性;
  • 最后设置注入列表的条进行通告及复制属性。(copy-attributes——将从聚合路由中复制路径属性到注入的路由条目中)

PS://这里先把上个实验(2)的完整配置附上,如做完上个实验保存了配置可忽略以下R1~R5这个为添加拆分实验的配置。添加完成R1~R5的基本配后对上述清单做添加配置附在其后。

R1的基本配置如下:

hostname R1
!
interface Loopback0ip address 172.22.0.1 255.255.255.0
!
interface Loopback1ip address 172.22.1.1 255.255.255.0
!
interface Ethernet0/0ip address 10.0.12.1 255.255.255.0no sh
!
interface Ethernet0/1ip address 10.1.13.1 255.255.255.0no sh
!
ip prefix-list IFN3 seq 5 permit 172.22.3.0/24
!
ip prefix-list IFN3ADV seq 5 permit 172.22.0.0/22
ipv6 ioam timestamp
!
route-map IFN3ADV permit 10match ip address prefix-list IFN3ADV
!
route-map IFN3 permit 10match ip address prefix-list IFN3
!
router bgp 111bgp router-id 1.1.1.1bgp aggregate-timer 0network 172.22.0.0 mask 255.255.255.0network 172.22.1.0 mask 255.255.255.0aggregate-address 172.22.0.0 255.255.252.0 summary-onlyneighbor 10.0.12.2 remote-as 222neighbor 10.1.13.3 remote-as 345neighbor 10.1.13.3 advertise-map IFN3ADV exist-map IFN3
!
end

R2的基本配置如下:

hostname R2
!
interface Loopback0ip address 172.22.2.2 255.255.255.0
!
interface Loopback1ip address 172.22.3.2 255.255.255.0
!
interface Ethernet0/0ip address 10.0.12.2 255.255.255.0no sh
!
interface Ethernet0/1ip address 10.2.24.2 255.255.255.0no sh
!
ip prefix-list IFN3E seq 5 permit 172.22.3.0/24
!
route-map LEAK3 permit 10match ip address prefix-list IFN3E
!
router bgp 222bgp router-id 2.2.2.2bgp aggregate-timer 0network 172.22.2.0 mask 255.255.255.0network 172.22.3.0 mask 255.255.255.0aggregate-address 172.22.0.0 255.255.252.0 summary-onlyneighbor 10.0.12.1 remote-as 111neighbor 10.0.12.1 unsuppress-map LEAK3neighbor 10.2.24.4 remote-as 345
!
end

R3的基本配置如下:

hostname R3
!
interface Loopback3ip 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.3.35.3 255.255.255.0no sh
!
router eigrp 5network 0.0.0.0passive-interface Ethernet0/0
!
router bgp 345bgp router-id 3.3.3.3neighbor IBGP peer-groupneighbor IBGP remote-as 345neighbor IBGP update-source Loopback3neighbor IBGP next-hop-selfneighbor 10.1.13.1 remote-as 111neighbor 192.168.4.4 peer-group IBGPneighbor 192.168.5.5 peer-group IBGP
!
end

R4的基本配置如下:

hostname R4
!
interface Loopback4ip address 192.168.4.4 255.255.255.255
!
interface Ethernet0/0ip address 10.2.24.4 255.255.255.0no sh
!
interface Ethernet0/1ip address 10.3.45.4 255.255.255.0no sh
!
router eigrp 5network 0.0.0.0passive-interface Ethernet0/0
!
router bgp 345bgp router-id 4.4.4.4neighbor IBGP peer-groupneighbor IBGP remote-as 345neighbor IBGP update-source Loopback4neighbor IBGP next-hop-selfneighbor 10.2.24.2 remote-as 222neighbor 192.168.3.3 peer-group IBGPneighbor 192.168.5.5 peer-group IBGP
!
end

R5的基本配置如下:

hostname R5
!
interface Loopback3ip address 172.23.3.5 255.255.255.0
!
interface Loopback5ip address 192.168.5.5 255.255.255.255
!
interface Ethernet0/0ip address 10.3.35.5 255.255.255.0no sh
!
interface Ethernet0/1ip address 10.3.45.5 255.255.255.0no sh
!
router eigrp 5network 0.0.0.0passive-interface defaultno passive-interface Ethernet0/0no passive-interface Ethernet0/1
!
route-map REDCONN permit 10match interface Loopback3
!
router bgp 345bgp router-id 5.5.5.5bgp listen range 192.168.0.0/21 peer-group IBGPredistribute connected route-map REDCONNneighbor IBGP peer-groupneighbor IBGP remote-as 345neighbor IBGP update-source Loopback5
!
end

以上添加完成R1~R5的基本配后对上述清单做添加配置如下:

注释:定义前缀列表的名称——LONG是相对掩码较长的定义;SHORT是聚合后变短的定义;LS是Left Source,即此拓扑图左侧邻居的路由来源;RS则是Right Source,右侧邻居的来源。

R3添加的配置如下:

ip prefix-list LONG seq 5 permit 172.22.1.0/24
!
ip prefix-list SHORT seq 5 permit 172.22.0.0/22
!
ip prefix-list LS seq 5 permit 10.1.13.1/32
!
route-map LONG permit 10set ip address prefix-list LONGset community no-export
!
route-map SHORT permit 10match ip address prefix-list SHORTmatch ip route-source prefix-list LS
!
router bgp 345bgp inject-map LONG exist-map SHORT copy-attributesneighbor IBGP send-community
!
end

R4添加的配置如下:

ip prefix-list LONG seq 5 permit 172.22.3.0/24
!
ip prefix-list SHORT seq 5 permit 172.22.0.0/22
!
ip prefix-list RS seq 5 permit 10.2.24.2/32
!
route-map LONG permit 10set ip address prefix-list LONGset community no-export
!
route-map SHORT permit 10match ip address prefix-list SHORTmatch ip route-source prefix-list RS
!
router bgp 345bgp inject-map LONG exist-map SHORT copy-attributesneighbor IBGP send-community
!
end

添加完成以上配置查看注入的BGP表和邻居来源的表项如下:

应用路由拆分部署后在对等AS可操控的情况下,在本地注入确定的明细路由条目可实现最长匹配原则的选路控制。

PS://在通常情况下,eBGP的防环规则就是不允许as-path属性中有包含本地ASN的路由进入本AS内。

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

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

相关文章

ray.rllib-入门实践-11: 自定义模型/网络

在ray.rllib中定义和使用自己的模型, 分为以下三个步骤: 1. 定义自己的模型。 2. 向ray注册自定义的模型 3. 在config中配置使用自定义的模型 环境配置: torch2.5.1 ray2.10.0 ray[rllib]2.10.0 ray[tune]2.10.0 ray[serve]2.10.0 numpy1.23.…

攻防世界easyRSA

解密脚本: p473398607161 q4511491 e17def extended_euclidean(a, b):if b 0:return a, 1, 0gcd, x1, y1 extended_euclidean(b, a % b)x y1y x1 - (a // b) * y1return gcd, x, ydef calculate_private_key(p, q, e):phi (p - 1) * (q - 1)gcd, x, y extend…

常见的多媒体框架(FFmpeg GStreamer DirectShow AVFoundation OpenMax)

1.FFmpeg FFmpeg是一个非常强大的开源多媒体处理框架,它提供了一系列用于处理音频、视频和多媒体流的工具和库。它也是最流行且应用最广泛的框架! 官方网址:https://ffmpeg.org/ FFmpeg 的主要特点和功能: 编解码器支持: FFmpe…

.NET MAUI进行UDP通信(二)

上篇文章有写过一个简单的demo&#xff0c;本次对项目进行进一步的扩展&#xff0c;添加tabbar功能。 1.修改AppShell.xaml文件&#xff0c;如下所示&#xff1a; <?xml version"1.0" encoding"UTF-8" ?> <Shellx:Class"mauiDemo.AppShel…

selenium xpath定位一组元素中的某一个

(//div[starts-with(class,‘abcolumn-light__listCell‘)])[4] 注意&#xff1a;一定要加小括号&#xff0c;然后再加索引号

linux系统中的 scp的使用方法

SCP&#xff08;Secure Copy Protocol&#xff09;是一种通过加密的方式在本地主机和远程主机之间安全地传输文件的协议。 它是基于SSH协议的扩展&#xff0c;允许用户在不同主机之间进行文件复制和传输&#xff0c;是Linux和Unix系统中常用的工具之一。 在嵌入式Linux软件的…

计算机网络之链路层

本文章目录结构出自于《王道计算机考研 计算机网络_哔哩哔哩_bilibili》 02 数据链路层 在网上看到其他人做了详细的笔记&#xff0c;就不再多余写了&#xff0c;直接参考着学习吧。 1 详解数据链路层-数据链路层的功能【王道计算机网络笔记】_wx63088f6683f8f的技术博客_51C…

YOLOv11改进,YOLOv11检测头融合DSConv(动态蛇形卷积),并添加小目标检测层(四头检测),适合目标检测、分割等任务

前言 精确分割拓扑管状结构例如血管和道路,对各个领域至关重要,可确保下游任务的准确性和效率。然而,许多因素使任务变得复杂,包括细小脆弱的局部结构和复杂多变的全局形态。在这项工作中,注意到管状结构的特殊特征,并利用这一知识来引导 DSCNet 在三个阶段同时增强感知…

SQL 指南

SQL 指南 引言 SQL(Structured Query Language,结构化查询语言)是一种用于管理关系数据库系统的标准计算机语言。自1970年代问世以来,SQL已经成为了数据库管理和数据操作的事实标准。本文旨在为初学者和有经验的数据库用户提供一个全面的SQL指南,涵盖SQL的基础知识、高级…

Lucene常用的字段类型lucene检索打分原理

在 Apache Lucene 中&#xff0c;Field 类是文档中存储数据的基础。不同类型的 Field 用于存储不同类型的数据&#xff08;如文本、数字、二进制数据等&#xff09;。以下是一些常用的 Field 类型及其底层存储结构&#xff1a; TextField&#xff1a; 用途&#xff1a;用于存储…

Node.js的解释

1. Node.js 入门教程 1.1 什么是 Node.js&#xff1f; 1.1.1 Node.js 是什么&#xff1f; Node.js 是一个基于 JavaScript 的开源服务器端运行时环境&#xff0c;允许开发者用 JavaScript 编写服务器端代码。与传统的前端 JavaScript 主要运行在浏览器端不同&#xff0c;Nod…

Flutter android debug 编译报错问题。插件编译报错

下面相关内容 都以 Mac 电脑为例子。 一、问题 起因&#xff1a;&#xff08;更新 Android studio 2024.2.2.13、 Flutter SDK 3.27.2&#xff09; 最近 2025年 1 月 左右&#xff0c;我更新了 Android studio 和 Flutter SDK 再运行就会出现下面的问题。当然 下面的提示只是其…

TDengine 做为 FLINK 数据源技术参考手册

Apache Flink 是一款由 Apache 软件基金会支持的开源分布式流批一体化处理框架&#xff0c;可用于流处理、批处理、复杂事件处理、实时数据仓库构建及为机器学习提供实时数据支持等诸多大数据处理场景。与此同时&#xff0c;Flink 拥有丰富的连接器与各类工具&#xff0c;可对接…

扣子平台音频功能:让声音也能“智能”起来

在数字化时代&#xff0c;音频内容的重要性不言而喻。无论是在线课程、有声读物&#xff0c;还是各种多媒体应用&#xff0c;音频都是传递信息、增强体验的关键元素。扣子平台的音频功能&#xff0c;为开发者和内容创作者提供了一个强大而灵活的工具&#xff0c;让音频的使用和…

RubyFPV开源代码之系统简介

RubyFPV开源代码之系统简介 1. 源由2. 工程架构3. 特性介绍&#xff08;软件&#xff09;3.1 特性亮点3.2 数字优势3.3 使用功能 4. DEMO推荐&#xff08;硬件&#xff09;4.1 天空端4.2 地面端4.3 按键硬件Raspberry PiRadxa 3W/E/C 5. 软件设计6. 参考资料 1. 源由 RubyFPV以…

Vue Motion 应用场景详解

Vue Motion是Vue.js的动画库&#xff0c;能为Vue应用添加过渡和动画效果&#xff0c;使界面更具交互性与视觉吸引力。以下从安装、使用方法、关键特性三方面详解&#xff1a; • 安装&#xff1a;可通过npm或yarn安装。在项目目录下&#xff0c;npm安装使用npm install vue - …

上海计算机学会1月月赛(甲组) T1 简单 MST题解

T2-简单 MST题解 题意 设 ω ( x ) \omega(x) ω(x)为 x x x的质因数所构成的集合大小&#xff1b; 给两个正整数 l l l r r r&#xff0c;图上有 r − l 1 r-l1 r−l1个点&#xff0c;为 l , l 1 , l 2 , ⋯ , r − 2 , r − 1 , r l,l1,l2,\cdots,r-2,r-1,r l,l1,l2,…

gtest with ros

ros test 基本是基于gtest. 如何编写测试模块 cmakelists.txt if (CATKIN_ENABLE_TESTING)catkin_add_gtest(test_mongo_roscpp test/test_mongo_ros.cpp)target_link_libraries(test_mongo_roscpp warehouse_ros) endif ()CATKIN_ENABLE_TESTING 是catkin 专门对test 内容的…

2024年中国SaaS行业发展研究报告:现状、挑战与趋势洞察

一、引言 1.1 研究背景与目的 在数字化时代的浪潮下&#xff0c;软件即服务&#xff08;SaaS&#xff09;模式凭借其独特的优势&#xff0c;如较低的前期成本、易于部署和可扩展性&#xff0c;已经成为企业软件应用的重要趋势。近年来&#xff0c;随着云计算、大数据、人工智…

将 OneLake 数据索引到 Elasticsearch - 第二部分

作者&#xff1a;来自 Elastic Gustavo Llermaly 及 Jeffrey Rengifo 本文分为两部分&#xff0c;第二部分介绍如何使用自定义连接器将 OneLake 数据索引并搜索到 Elastic 中。 在本文中&#xff0c;我们将利用第 1 部分中学到的知识来创建 OneLake 自定义 Elasticsearch 连接器…