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 安装完成后打开,找到设置中心进…...

Flask RESTful 示例
目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题: 下面创建一个简单的Flask RESTful API示例。首先,我们需要创建环境,安装必要的依赖,然后…...
【Linux】C语言执行shell指令
在C语言中执行Shell指令 在C语言中,有几种方法可以执行Shell指令: 1. 使用system()函数 这是最简单的方法,包含在stdlib.h头文件中: #include <stdlib.h>int main() {system("ls -l"); // 执行ls -l命令retu…...

GruntJS-前端自动化任务运行器从入门到实战
Grunt 完全指南:从入门到实战 一、Grunt 是什么? Grunt是一个基于 Node.js 的前端自动化任务运行器,主要用于自动化执行项目开发中重复性高的任务,例如文件压缩、代码编译、语法检查、单元测试、文件合并等。通过配置简洁的任务…...

day36-多路IO复用
一、基本概念 (服务器多客户端模型) 定义:单线程或单进程同时监测若干个文件描述符是否可以执行IO操作的能力 作用:应用程序通常需要处理来自多条事件流中的事件,比如我现在用的电脑,需要同时处理键盘鼠标…...

消息队列系统设计与实践全解析
文章目录 🚀 消息队列系统设计与实践全解析🔍 一、消息队列选型1.1 业务场景匹配矩阵1.2 吞吐量/延迟/可靠性权衡💡 权衡决策框架 1.3 运维复杂度评估🔧 运维成本降低策略 🏗️ 二、典型架构设计2.1 分布式事务最终一致…...

rknn toolkit2搭建和推理
安装Miniconda Miniconda - Anaconda Miniconda 选择一个 新的 版本 ,不用和RKNN的python版本保持一致 使用 ./xxx.sh进行安装 下面配置一下载源 # 清华大学源(最常用) conda config --add channels https://mirrors.tuna.tsinghua.edu.cn…...

2.3 物理层设备
在这个视频中,我们要学习工作在物理层的两种网络设备,分别是中继器和集线器。首先来看中继器。在计算机网络中两个节点之间,需要通过物理传输媒体或者说物理传输介质进行连接。像同轴电缆、双绞线就是典型的传输介质,假设A节点要给…...

DeepSeek越强,Kimi越慌?
被DeepSeek吊打的Kimi,还有多少人在用? 去年,月之暗面创始人杨植麟别提有多风光了。90后清华学霸,国产大模型六小虎之一,手握十几亿美金的融资。旗下的AI助手Kimi烧钱如流水,单月光是投流就花费2个亿。 疯…...
Python爬虫实战:研究Restkit库相关技术
1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的有价值数据。如何高效地采集这些数据并将其应用于实际业务中,成为了许多企业和开发者关注的焦点。网络爬虫技术作为一种自动化的数据采集工具,可以帮助我们从网页中提取所需的信息。而 RESTful API …...

MeshGPT 笔记
[2311.15475] MeshGPT: Generating Triangle Meshes with Decoder-Only Transformers https://library.scholarcy.com/try 真正意义上的AI生成三维模型MESHGPT来袭!_哔哩哔哩_bilibili GitHub - lucidrains/meshgpt-pytorch: Implementation of MeshGPT, SOTA Me…...