BGP通过route-policy路由策略调用ip-prefix网络前缀实现负载均衡与可靠性之AS-path属性

一、实验场景
1、loopback0与loopback1模拟企业实际环境中的某个网段。
2、本例目标总公司AR3的1.1.1.1/32网段到分公司AR4的3.3.3.3/32的流量从上方的AS500自治系统走。
3、本例目标总公司AR3的4.4.4.4/32网段到分公司AR4的2.2.2.2/32的流量从下面的AS300、AS400自治系统走。
4、总公司到分公司之间的AS500或AS300、AS400其中一条链路断开后,网络仍可正常运行,确保网络的可靠性。
5、从总公司到分公司的流量以负载均衡的方式在BGP路由中运行。
说明:路由策略与策略路由的区别
1、路由策略主要用于改变网络流量所经过的途径,通过修改路由属性(如可达性)来实现。它是一种智能化的路由方式,能够与路由协议结合,完成策略性的路由选择。路由策略通常指的是在网络中设置特定的规则,以确定数据包的传输路径。路由策略通常使用传统的路由协议和算法,如RIP、OSPF或BGP等。路由策略通过优化路由选择可以提高网络的整体性能和效率。路由策略适用于大多数标准网络环境,特别是在大规模网络中。如:本例中的BGP路由协议实验则是通过路由策略来完成。
2、策略路由则是一种更灵活的数据包路由转发机制,它基于策略进行转发,而不是简单的按路由表顺序进行。策略路由在数据包处理中具有更高的优先级,能够在路由表查找之前根据策略进行转发,这使得它能够更精细地控制数据包的流向。策略路由则是基于一组规则或政策来决定流量的路由,这些规则可能包括源地址、目的地、端口号等。策略路由则可能使用的技术如路由表、访问控制列表(ACL)或特定的路由协议扩展。策略路由则通过精确控制流量实现高效的网络资源利用,但可能需要更多的处理资源。策略路由提供了更高的灵活性和控制能力,适用于需要精细流量管理的复杂网络。如:在企业中有多条公网出口,公网出口的质量有差异,某些重要的业务需要通过ip专线出去,另一些日常网络流量则可通过拨号光纤出去,此时可选择配置策略路由,策略路由的转发优先于路由表。
二、实验拓扑图:

三、BGP的AS_PATH属性作用有:
1、防止BGP环路:当BGP路由器收到一条路由信息时,它会检查该路由信息的AS_PATH属性。如果AS_PATH属性中的某个AS号与路由器自身的AS号相同,那么该路由器就会知道该路由出现了环路,因为需要丢包处理。
2、路由优先级:AS_PATH属性中的AS号数量可以用于标识路由的优先级。一般来说,经过的AS号越少,说明该路由越优先。因此,AS_PATH属性可以根据AS号来判断路由的优先级
四、配置过程
1、【AR1】
System-view
sysname AR1
interface GigabitEthernet0/0/0
ip address 10.1.12.1 255.255.255.0
interface GigabitEthernet0/0/1
ip address 10.1.13.1 255.255.255.0
bgp 300
peer 10.1.12.2 as-number 400
peer 10.1.12.2 ebgp-max-hop 255
peer 10.1.13.3 as-number 100
peer 10.1.13.3 ebgp-max-hop 255
ipv4-family unicast
undo synchronization
peer 10.1.12.2 enable
peer 10.1.13.3 enable
2、【AR2】
System-view
sysname AR2
interface GigabitEthernet0/0/0
ip address 10.1.24.2 255.255.255.0
interface GigabitEthernet0/0/1
ip address 10.1.12.2 255.255.255.0
bgp 400
peer 10.1.12.1 as-number 300
peer 10.1.12.1 ebgp-max-hop 255
peer 10.1.24.4 as-number 200
peer 10.1.24.4 ebgp-max-hop 255
ipv4-family unicast
undo synchronization
peer 10.1.12.1 enable
peer 10.1.24.4 enable
3、【AR3】
System-view
sysname AR3
interface GigabitEthernet0/0/0
ip address 10.1.35.3 255.255.255.0
interface GigabitEthernet0/0/1
ip address 10.1.13.3 255.255.255.0
interface LoopBack0
ip address 1.1.1.1 255.255.255.255
interface LoopBack1
ip address 4.4.4.4 255.255.255.255
bgp 100
peer 10.1.13.1 as-number 300
peer 10.1.13.1 ebgp-max-hop 255
peer 10.1.35.5 as-number 500
peer 10.1.35.5 ebgp-max-hop 255
ipv4-family unicast
undo synchronization
network 1.1.1.1 255.255.255.255
network 4.4.4.4 255.255.255.255
peer 10.1.13.1 enable
peer 10.1.35.5 enable
4、【AR4】
System-view
sysname AR4
interface GigabitEthernet0/0/0
ip address 10.1.46.4 255.255.255.0
interface GigabitEthernet0/0/1
ip address 10.1.24.4 255.255.255.0
interface LoopBack0
ip address 2.2.2.2 255.255.255.255
interface LoopBack1
ip address 3.3.3.3 255.255.255.255
bgp 200
peer 10.1.24.2 as-number 400
peer 10.1.24.2 ebgp-max-hop 255
peer 10.1.46.6 as-number 500
peer 10.1.46.6 ebgp-max-hop 255
ipv4-family unicast
undo synchronization
network 2.2.2.2 255.255.255.255
network 3.3.3.3 255.255.255.255
peer 10.1.24.2 enable
peer 10.1.46.6 enable
5、【AR5】
System-view
sysname AR5
interface GigabitEthernet0/0/0
ip address 10.1.35.5 255.255.255.0
interface GigabitEthernet0/0/1
ip address 10.1.56.5 255.255.255.0
bgp 500
peer 10.1.35.3 as-number 100
peer 10.1.35.3 ebgp-max-hop 255
peer 10.1.56.6 as-number 500
ipv4-family unicast
undo synchronization
peer 10.1.35.3 enable
peer 10.1.56.6 enable
peer 10.1.56.6 next-hop-local
6、【AR6】
System-view
sysname AR6
interface GigabitEthernet0/0/0
ip address 10.1.56.6 255.255.255.0
interface GigabitEthernet0/0/1
ip address 10.1.46.6 255.255.255.0
bgp 500
peer 10.1.46.4 as-number 200
peer 10.1.46.4 ebgp-max-hop 255
peer 10.1.56.5 as-number 500
ipv4-family unicast
undo synchronization
peer 10.1.46.4 enable
peer 10.1.56.5 enable
peer 10.1.56.5 next-hop-local
五、验证网络路径及网络的可靠性
(一)BGP原始路径的验证:
1、在总公司AR3上查看BGP邻居关系与ip路由表中的BGP路由,可以看出到分公司2.2.2.2与3.3.3.3的下一跳都是10.1.35.5,说明从总公司AR3到2.2.2.2与3.3.3.3都是默认从最短的路径AS500到达,默认从源到目标通过的AS自治系统数越少,路径越优。如下图:

2、在总公司AR3上查看BGP路由表,可以看出到达分公司2.2.2.2的有2条路由,其中*>最优路由下一跳是10.1.35.5,而次优路由下一跳是10.1.13.1,如下图:

3、在分公司的AR4上查看BGP邻居关系与ip路由表中的BGP路由,*>最优路由仍是AS500中的10.1.46.6,从AS_PATH路径看,从500 100i到达1.1.1.1,比400 300 100i到达1.1.1.1,要少过一个AS自治系统,如下图:

4、从总公司到分公司之间的AR6的G0/0/0抓包验证从AR3到AR4的网络流量,都是从上面的路径走过,即下面的路径是空闲备用状态,如下图:

从上图可以看出,默认的BGP配置,从总公司AR3到分公司AR4的网络流量都是从AR5和AR6的AS500通过,下面的AR1和AR2是空闲状态,从而网络没有发挥最优的性能。
所以我们要让网络流量从总公司到分公司实现负载均衡,下面使用ip-prefix与route-policy配合完成。
(二)负载均衡的配置及验证:
1、修改总公司AR3的配置:把从总公司AR3到达分公司AR4的2.2.2.2/32的BGP路由建立一条路由前缀ip-prefix,然后在BGP路由中增加一条ipv4-family的单播规则,通过路由策略route-policy调用这个条规划,从入的方向调用。路由策略的配置,满足路由前缀ip-prefix时,应用将AS-PATH属性增加600 800 900这3个AS自治系统号,从而500 200i就会变成600 800 900 500 200i,如下图:

【修改AR3】
bgp 100
ipv4-family unicast
peer 10.1.35.5 route-policy as_path import
route-policy as_path permit node 10
if-match ip-prefix as_path
apply as-path 600 800 900 additive
route-policy as_path permit node 20
ip ip-prefix as_path index 10 permit 2.2.2.2 32
2、从总公司AR3查看BGP路由表及ip路由表中的bgp路由,其中到达分公司2.2.2.2的BGP路由下一跳发生了变化,且经过的AS自治系统号也有变化(是我们在路由策略中应用增加了600 800 900 ),如下图:

3、修改分公司AR4的配置:
【修改AR4】
ip ip-prefix 1 index 10 permit 4.4.4.4 32
route-policy 1 permit node 30
if-match ip-prefix 1
apply as-path 1000 1200 1500 additive
route-policy 1 permit node 40
Bgp 200
ipv4-family unicast
peer 10.1.46.6 route-policy 1 import
4、从分公司的AR4查看ip路由表中的bgp路由,并查看分公司AR4的BGP路由表,从分公司AR4到达总公司AR3的4.4.4.4最优路由*>下一跳已经发生了变化,如下图:

(三)验证目标从上面的链路与下面的链路同时抓包
1、从总公司AR3的1.1.1.1到分公司AR4的3.3.3.3的网络流量路径,与预期目标一致,如下图:

2、从总公司的AR3的4.4.4.4到分公司AR4的2.2.2.2的网络流量路径,与预期目标一致,如下图:

3、有人会说,如果验证总公司AR3的1.1.1.1到分公司AR4的2.2.2.2,或验证总公司AR3的4.4.4.4到分公司AR4的3.3.3.3的结果呢?
解析:
(1)总公司AR3的1.1.1.1到分公司AR4的2.2.2.2的访问网络流量,如下图:

(2)分公司AR4的2.2.2.2到总公司AR3的1.1.1.1回应的网络流量,如下图:

(3)结论:总公司AR3的1.1.1.1到分公司AR4的2.2.2.2访问网络流量与回复网络流量路径是不同的,即request的请求流量与reply的回应流量网络路径不同,网络流量形成了一个环的状态,从上方的AR6的G0/0/0接口抓包,同时也从AR3的G0/0/1接口抓包,如下图:

同理,从总公司AR3的4.4.4.4到分公司AR4的3.3.3.3,请求包的路径与回复包的路径也是不同的。此处不再赘述。
(四)验证某节点物理故障后,网络仍可正常运行:
1、把链路正常情况下,总公司AR3的BGP路由表与ip路由表中的bgp协议路由显示,如下图:

2、把总公司到分公司之间AR5上的G0/0/1接口shutdown后,再从AR3上查看BGP路由表与ip路由表中的bgp协议路由,很明显就少了10.1.35.5的那条路由,但是仍然可以到达2.2.2.2与3.3.3.3的目的网络,如下图:
(1)查看总公司AR3上ip路由表中的bgp协议路由,与BGP 路由表,如下图:

(2)总公司从AR3的1.1.1.1网段到分公司AR4的2.2.2.2网段的路径只有下面一条是正常的,发送的数据包与回应的数据包都从下面的路径走,而不是与之前那样发送与回应的路径 不同,request包与reply包都从同一路径走,如下图:

3、把总公司到分公司之间AR5的G0/0/1接口undo shutdown,后再把总公司到分公司之间AR1的G0/0/0接口shutdown,然后查看总公司AR3上的BGP路由表与ip路由表中的BGP协议路由时,只剩下10.1.35.5的下一跳路由了,被shutdown的接口10.1.13.1的路由自然就不存在
(1)查看AR3的ip路由表中的BGP协议路由,与BGP路由表如下图:

(2)总公司从AR3的4.4.4.4网段到分公司AR4的3.3.3.3网段的路径只有下面一条正常的情况下,发送的数据包与回应的数据包都从下面的路径走,而不是与之前那样发送与回应的路径 不同,request包与reply包都从同一路径走,如下图:

4、结论:从以上验证,说明当链路中某个节点故障后,网络仍可正常运行,总公司到达分公司的网络路径会自动切换到另一条。
通过本次实验,验证了BGP协议通过自身的特性能达到防环的目标,> 表示最优路由,BGP路由表 ,>其下方的一条路由则是次优路由,采用路由策略route-policy调用前缀列表ip-prefix,控制网络流量的AS_PATH属性值 ,实现了总公司与分公司之间链路的流量负载均衡,提高了网络资源的利用率。另外也通过shutdown命令在网络制造故障后,总公司到分公司的网络流量也可以从另一条路径走,提升了网络的可靠性、可用性。
相关文章:
BGP通过route-policy路由策略调用ip-prefix网络前缀实现负载均衡与可靠性之AS-path属性
一、实验场景 1、loopback0与loopback1模拟企业实际环境中的某个网段。 2、本例目标总公司AR3的1.1.1.1/32网段到分公司AR4的3.3.3.3/32的流量从上方的AS500自治系统走。 3、本例目标总公司AR3的4.4.4.4/32网段到分公司AR4的2.2.2.2/32的流量从下面的AS300、AS400自治系统走。…...
每日速记10道java面试题14-MySQL篇
其他资料 每日速记10道java面试题01-CSDN博客 每日速记10道java面试题02-CSDN博客 每日速记10道java面试题03-CSDN博客 每日速记10道java面试题04-CSDN博客 每日速记10道java面试题05-CSDN博客 每日速记10道java面试题06-CSDN博客 每日速记10道java面试题07-CSDN博客 每…...
内存图及其画法
所有的文件都存在硬盘上,首次使用的时候才会进入内存 进程:有自己的Main方法,并且依赖自己Main运行起来的程序。独占一块内存区域,互不干扰。内存中有一个一个的进程。 操作系统只认识c语言。操作系统调度驱动管理硬件࿰…...
Ansys Maxwell:Qi 无线充电组件
Qi 无线充电采用感应充电技术,无需物理连接器或电缆,即可将电力从充电站传输到兼容设备。由 WPC 管理的 Qi 标准确保了不同无线充电产品之间的互操作性。以下是 Qi v1.3 标准的核心功能: Qi v1.3 标准的主要特点 身份验证:确保充…...
【Shell 脚本实现 HTTP 请求的接收、解析、处理逻辑】
以下是一个实现客户端对 Shell HTTP 服务发起 POST 请求并传入 JSON 参数的完整示例。Shell 服务会解析收到的 JSON 数据,根据内容执行操作。 服务端脚本:http_server.sh 以下脚本使用 netcat (nc) 来监听 HTTP 请求,并通过 jq 工具解析 JSO…...
【北京迅为】iTOP-4412全能版使用手册-第六十七章 USB鼠标驱动详解
iTOP-4412全能版采用四核Cortex-A9,主频为1.4GHz-1.6GHz,配备S5M8767 电源管理,集成USB HUB,选用高品质板对板连接器稳定可靠,大厂生产,做工精良。接口一应俱全,开发更简单,搭载全网通4G、支持WIFI、蓝牙、…...
【青牛科技】拥有两个独立的、高增益、内部相位补偿的双运算放大器,可适用于单电源或双电源工作——D4558
概述: D4558内部包括有两个独立的、高增益、内部相位补偿的双运算放大器,可适用于单电源或双电源工作。该电路具有电压增益高、噪声低等特点。主要应用于音频信号放大,有源滤波器等场合。 D4558采用DIP8、SOP8的封装形式 主要特点ÿ…...
Kafka 数据写入问题
目录标题 分析思路1. **生产者配置问题**:Kafka生产者的配置参数生产者和消费者的处理确定并优化 2. **网络问题**:3. **Kafka 集群配置问题**:unclean.leader.election.enable 4. **Zookeeper 配置问题**:5. **JVM 参数调优**&am…...
实战ansible-playbook(九)-profile配置- 确保 CUDA 和 MPI 环境变量正确设置并立即生效
Playbook 分析 --- - name: 确保 CUDA 和 MPI 环境变量正确设置并立即生效hosts: pod2 # 指定目标主机组或具体主机名become: yes # 使用特权提升(sudo),以root权限执行某些需要权限的任务remote_user: canopy # 远程连接使用的用户名vars: # 定义全局变量,用于Playbo…...
气膜馆:科技与环保融合的未来建筑新选择—轻空间
在全球城市化进程不断加快的背景下,传统建筑方式面临着越来越多的挑战。如何在有限的土地和资源条件下,快速、高效、环保地搭建符合多功能需求的建筑,成为现代建筑行业亟待解决的重要课题。而随着科技的进步与建筑材料的创新,一种…...
git回退到某个版本git checkout和git reset命令的区别
文章目录 1. git checkout <commit>2. git reset --hard <commit>两者的区别总结推荐使用场景* 在使用 Git 回退到某个版本时, git checkout <commit> 和 git reset --hard <commit> 是两种常见的方式,但它们的用途和影响有很…...
Preprocess
Preprocess数据预处理 文本 使用Tokenizer将文本转换为标记序列,创建标记的数值表示,并将它们组装成张量。 预处理文本数据的主要工具是标记器。标记器根据一组规则将文本拆分为标记。标记被转换为数字,然后转换为张量,这些张量…...
stm32 spi接口传输asm330l速率优化(及cpu和dma方式对比)
最近一段时间做了一个mems的项目,项目的方案是stm32g071做主控,读写3颗asm330l的硬件形态。最初是想放置4颗imu芯片,因为pcb空间布局的问题,改放了3颗。但对于软件方案来说无所谓,关键是如何优化spi的传输速率…...
数字时代的文化宝库:存储技术与精神生活
文章目录 1. 文学经典的数字传承2. 音乐的无限可能3. 影视艺术的数字化存储4. 结语 数字时代的文化宝库:存储技术与精神生活 在数字化的浪潮中,存储技术如同一座桥梁,连接着过去与未来,承载着人类文明的瑰宝。随着存储容量的不断增…...
flex: 1 display:flex 导致的宽度失效问题
flex: 1 & display:flex 导致的宽度失效问题 问题复现 有这样的一个业务场景,详情项每行三项分别占33%宽度,每项有label字数不固定所以宽度不固定,还有content 占满标签剩余宽度,文字过多显示省略号, 鼠标划入展示…...
Hive 窗口函数与分析函数深度解析:开启大数据分析的新维度
Hive 窗口函数与分析函数深度解析:开启大数据分析的新维度 在当今大数据蓬勃发展的时代,Hive 作为一款强大的数据仓库工具,其窗口函数和分析函数犹如一把把精巧的手术刀,助力数据分析师们精准地剖析海量数据,挖掘出深…...
前端工程 Node 版本如何选择
1. Node 与 Npm 版本对应 这是一个必知必会的问题,尤其是对于维护那些老掉牙、一坨坨、非常大的有着长期历史的老破大工程。 1.1. package-lock.json 版本 首先你要会看项目的 package-lock.json 文件中的 lockfileVersion 版本号,这对于 NPM 安装来说…...
推荐在线Sql运行
SQL Fiddle 1、网址:SQL Fiddle - Online SQL Compiler for learning & practiceDiscover our free online SQL editor enhanced with AI to chat, explain, and generate code. Support SQL Server, MySQL, MariaDB, PostgreSQL, and SQLite.http://www.sqlfi…...
【数据结构】【线性表】特殊的线性表-字符串
目录 字符串的基本概念 字符串的三要素 字符串的基本概念 串的编码 串的实现及基本运算 顺序串的实现 串的静态数组实现 串的动态数组的实现 顺序存储的四种方案 链式串的实现 基本运算 方案三 方案一 字符串的基本概念 数据结构千千万,…...
app-1 App 逆向环境准备(mumu模拟器+magisk+LSPosed+算法助手+抓包(socksDroid+charles)+Frida环境搭建
一、前言 本篇是基于 mumu模拟器 进行环境配置记录。(真机的后面博客记录) 二、mumu模拟器magiskLSPosed算法助手 2.1、mumu模拟器 选择 mumu 模拟器,下载地址:https://mumu.163.com 安装完成后打开,找到设置中心进…...
基于ASP.NET+ SQL Server实现(Web)医院信息管理系统
医院信息管理系统 1. 课程设计内容 在 visual studio 2017 平台上,开发一个“医院信息管理系统”Web 程序。 2. 课程设计目的 综合运用 c#.net 知识,在 vs 2017 平台上,进行 ASP.NET 应用程序和简易网站的开发;初步熟悉开发一…...
Python实现prophet 理论及参数优化
文章目录 Prophet理论及模型参数介绍Python代码完整实现prophet 添加外部数据进行模型优化 之前初步学习prophet的时候,写过一篇简单实现,后期随着对该模型的深入研究,本次记录涉及到prophet 的公式以及参数调优,从公式可以更直观…...
Spring AI 入门:Java 开发者的生成式 AI 实践之路
一、Spring AI 简介 在人工智能技术快速迭代的今天,Spring AI 作为 Spring 生态系统的新生力量,正在成为 Java 开发者拥抱生成式 AI 的最佳选择。该框架通过模块化设计实现了与主流 AI 服务(如 OpenAI、Anthropic)的无缝对接&…...
Maven 概述、安装、配置、仓库、私服详解
目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...
SiFli 52把Imagie图片,Font字体资源放在指定位置,编译成指定img.bin和font.bin的问题
分区配置 (ptab.json) img 属性介绍: img 属性指定分区存放的 image 名称,指定的 image 名称必须是当前工程生成的 binary 。 如果 binary 有多个文件,则以 proj_name:binary_name 格式指定文件名, proj_name 为工程 名&…...
算术操作符与类型转换:从基础到精通
目录 前言:从基础到实践——探索运算符与类型转换的奥秘 算术操作符超级详解 算术操作符:、-、*、/、% 赋值操作符:和复合赋值 单⽬操作符:、--、、- 前言:从基础到实践——探索运算符与类型转换的奥秘 在先前的文…...
数据库正常,但后端收不到数据原因及解决
从代码和日志来看,后端SQL查询确实返回了数据,但最终user对象却为null。这表明查询结果没有正确映射到User对象上。 在前后端分离,并且ai辅助开发的时候,很容易出现前后端变量名不一致情况,还不报错,只是单…...
电脑桌面太单调,用Python写一个桌面小宠物应用。
下面是一个使用Python创建的简单桌面小宠物应用。这个小宠物会在桌面上游荡,可以响应鼠标点击,并且有简单的动画效果。 import tkinter as tk import random import time from PIL import Image, ImageTk import os import sysclass DesktopPet:def __i…...
智警杯备赛--excel模块
数据透视与图表制作 创建步骤 创建 1.在Excel的插入或者数据标签页下找到数据透视表的按钮 2.将数据放进“请选择单元格区域“中,点击确定 这是最终结果,但是由于环境启不了,这里用的是自己的excel,真实的环境中的excel根据实训…...
自定义线程池1.2
自定义线程池 1.2 1. 简介 上次我们实现了 1.1 版本,将线程池中的线程数量交给使用者决定,并且将线程的创建延迟到任务提交的时候,在本文中我们将对这个版本进行如下的优化: 在新建线程时交给线程一个任务。让线程在某种情况下…...
