BGP选路之Preferred value

原理概述
当一台BGP路由器中存在多条去往同一目标网络的BGP路由时,BGP协议会对这些BGP路由的属性进行比较,以确定去往该目标网络的最优BGP路由,然后将该最优BGP路由与去往同一目标网络的其他协议路由进行比较,从而决定是否将该最优 BGP路由放进路由表中。注意,路由器最终是根据路由表进行实际报文转发的。在对BGP路由属性进行比较时,BGP会遵循一定的先后次序进行比较,直到确定出一条最优路由为止。在 BGP路由属性的比较过程中,首先要比较的就是路由信息首选值PreferredValue,也简称为PrefVal。
路由信息的首选值Preferred Value的取值范围是0~65535,取值越大,优先级越高。缺省情况下,Preferred Value取值为0;通过修改Preferred Value 的值,可以很方便地实现对路径选择的控制。Preferred Value属性不会发送给任何BGP邻居,仅作为本地路由器用来选择最佳BGP路径之用。
实验目的
理解 BGP路由信息首选值Preferred Value的作用

掌握修改Preferred Value 属性的方法
掌握通过修改Preferred Value属性来实现流量分担的方法实验内容

本实验包含了4台路由器,R1、R2、R3属于AS 100,R4属于AS 200。R1、R2、R3之间运行 RIPv2协议,同时,所有路由器都运行BGP协议,并通过各自的Loopback 0接口建立BGP邻居关系。R4通告自己的Loopback 1和Loopback 2两个接口所在的网络到BGP进程中,R3通告自己的Loopback 1接口所在的网络到BGP进程中。最后,通过修改Preferred Value的值,使得R3的 Loopback 1接口去往R4的 Loopback 1和Loopback 2接口的报文分别通过R1与R2讲行转发,从而实现流量分担,并互为备份。

 

 边界路由器从EBGP的对等体中学习到的路由,在传递的过程中下一跳地址为边界路由器对等体的出接口地址。导致IBGP中除了此边界路由器外,其他路由器学到的此路由的下一跳均为边界路由器对等体的出接口地址;只有配置了next-hop-local后,其他路由器学到的此路由的下一跳改编为边界路由器的ip地址

1、基本配置
R1:
sys
sysname R1
int loop 0
ip add 10.0.1.1 32
int g0/0/0
ip add 10.0.13.1 24
int g0/0/1
ip add 10.0.14.1 24
q
rip 1undo summaryversion 2network 10.0.0.0
ip route-static 10.0.4.4 255.255.255.255 10.0.14.4
bgp 100router-id 10.0.1.1peer 10.0.2.2 as-number 100peer 10.0.2.2 connect-interface LoopBack0peer 10.0.3.3 as-number 100peer 10.0.3.3 connect-interface LoopBack0peer 10.0.4.4 as-number 200peer 10.0.4.4 ebgp-max-hop 255peer 10.0.4.4 connect-interface LoopBack0#ipv4-family unicastundo synchronizationpeer 10.0.2.2 enablepeer 10.0.2.2 next-hop-localpeer 10.0.3.3 enablepeer 10.0.3.3 next-hop-localpeer 10.0.4.4 enable
#R2:
sys
sysname R2
int loop 0
ip add 10.0.2.2 32
int g0/0/1
ip add 10.0.23.2 24
int g0/0/0
ip add 10.0.24.2 24
q
rip 1undo summaryversion 2network 10.0.0.0
ip route-static 10.0.4.4 255.255.255.255 10.0.24.4bgp 100peer 10.0.1.1 as-number 100peer 10.0.1.1 connect-interface LoopBack0peer 10.0.3.3 as-number 100peer 10.0.3.3 connect-interface LoopBack0peer 10.0.4.4 as-number 200peer 10.0.4.4 ebgp-max-hop 255peer 10.0.4.4 connect-interface LoopBack0#ipv4-family unicastundo synchronizationpeer 10.0.1.1 enablepeer 10.0.1.1 next-hop-localpeer 10.0.3.3 enablepeer 10.0.3.3 next-hop-localpeer 10.0.4.4 enableR3:
sys
sysname R3
int loop 0
ip add 10.0.3.3 32
int loop 1
ip add 10.0.33.33 32
int g0/0/0
ip add 10.0.13.3 24
int g0/0/1
ip add 10.0.23.3 24
q
rip 1undo summaryversion 2network 10.0.0.0
bgp 100router-id 10.0.3.3peer 10.0.1.1 as-number 100peer 10.0.1.1 connect-interface LoopBack0peer 10.0.2.2 as-number 100peer 10.0.2.2 connect-interface LoopBack0#ipv4-family unicastundo synchronizationnetwork 10.0.33.33 255.255.255.255peer 10.0.1.1 enablepeer 10.0.2.2 enableR4:
sys
sysname R4
int loop 0
ip add 10.0.4.4 32
int loop 1
ip add 10.0.44.44 32
int loop 2
ip add 10.0.55.55 32
int g0/0/0
ip add 10.0.14.4 24
int g0/0/1
ip add 10.0.24.4 24
q
bgp 200peer 10.0.1.1 as-number 100peer 10.0.1.1 ebgp-max-hop 255peer 10.0.1.1 connect-interface LoopBack0peer 10.0.2.2 as-number 100peer 10.0.2.2 ebgp-max-hop 255peer 10.0.2.2 connect-interface LoopBack0#ipv4-family unicastundo synchronizationnetwork 10.0.44.44 255.255.255.255network 10.0.55.55 255.255.255.255peer 10.0.1.1 enablepeer 10.0.2.2 enable
#
ip route-static 10.0.1.1 255.255.255.255 10.0.14.1
ip route-static 10.0.2.2 255.255.255.255 10.0.14.1

 验证一下配置的情况

 

 

 可以看到,在R3的BGP路由表中,去往10.0.44.44/32和10.0.55.55/32网络的路由条目各有两条,但是最终R3优选的都是下一跳为10.0.1.1的路由。这两条BGP路由信息的下一跳不同,但路由信息首选值PrefVal、本地优先级LocPrf、路由生成方式、AS_Path属性、Origin属性、MED属性、BGP对等体类型(IBGP邻居或EBGP邻居)等都是相同的,所以最终BGP选择了Router-ID较小的路由器R1发布的路由作为最佳路由。R1和R2的BGP路由表中,去往10.0.44.44/32和10.0.55.55/32网络的路由也各有两条,但是最终优选的都是下一跳为10.0.4.4的路由。这两条BGP路由信息的下一跳不同,但路由信息首选值 PrefVal、本地优先级LocPrf、路由生成方式、AS_Path属性、Origin属性、MED属性等都是相同的,但是 BGP对等体类型不同,所以最终R1和R2都选择了从EBGP邻居R4那里接收到的路由作为最佳路由。另外,无论是通过EBGP邻居还是IBGP 邻居学习到的BGP路由条目,在 BGP路由表中 PrefVal都显示为缺省值0。

 可以看到,R3的确是通过R1去往AS 200的,R2没有分担任何流量。接下来,在R3上进行Preferred Value值的修改,使得R2分担从R3去往10.0.55.55/32的流量。

route-policy 1 permit node 10
 if-match ip-prefix 1
 apply preferred-value 100
#
route-policy 1 permit node 20
#
ip ip-prefix 1 index 10 permit 10.0.55.55 32

bgp  100

  peer 10.0.2.2 route-policy 1 import

 

 可以看到,R1和R2的BGP路由表在修改了R3上的 Preferred Value值之后没有发生变化,说明了Preferred Value值只是作为本地路由器用来选择最佳BGP路由之用,并不会传递给任何BGP邻居。

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

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

相关文章

元组(tuple)

目录 一、基本介绍 1、元组(tuple)可以存放多个不同数据类型,元组是不可变序列 2、元组也是一种数据类型 二、元组的定义 1、元组的定义 2、代码说明 三、元组的使用 1、元组使用语法 2、举例说明 3、代码演示,访问/获取第三个数据/元素 四、…

SpringBoot集成Kaptcha验证码

Hi 👋, Im shy 有人见尘埃,有人见星辰 1. 什么是Kaptcha验证码? Kaptcha是一个强大的开源Java验证码生成库,由Google开发。它能够生成高度可配置的图片验证码,主要用于防止自动化程序滥用web应用,提高应用的安全性。 2. Kaptcha的主要特性 Kaptch…

AMEsim液压阀伯德图绘制方法

之前也在液压圈论坛里面发过类似的贴子,具体可以看这个网址🚪👉:如何得出说明书里面的伯德图曲线?,回复的人还是比较少,这个方法重要信息是参考百度文库这篇文章🚪👉&…

相机的内参与外参

目录 一、相机的内参二、相机的外参 一、相机的内参 如下图所示是相机的针孔模型示意图: 光心O所处平面是相机坐标系(O,P),像素平面所在坐标系为像素坐标系(O’,P’)。 焦距f:O到O’的距离 相机的内参表示的是相机坐标…

文本编辑三巨头(grep)

目录 正则表达式 元字符 grep 案例 我在编写脚本的时候发现,三个文本编辑的命令(grep、sed、awk,被称为文本编辑三剑客,我习惯叫它三巨头)用的还挺多的,说实话我一开始学的时候也有些懵,主要…

【实现100个unity特效之8】使用ShaderGraph实现2d贴图中指定部分局部发光效果

最终效果 寒冰法师 火焰法师 文章目录 最终效果寒冰法师火焰法师 素材一、功能分析实现方法基本思路Unity的Bloom后处理为什么关键部位白色?最终结果 二、 新建URP项目三、合并图片四、使用PS制作黑白图片方法一 手动涂鸦方法二 魔棒工具1. 拖入图片进PS&#xff0…

环信+亚马逊云科技服务:助力出海AI社交应用扬帆起航

随着大模型技术的飞速发展,AI智能体的社交体验得到了显著提升,AI社交类应用在全球范围内持续火热。尤其是年轻一代对新技术和新体验的热情,使得AI社交产品在海外市场迅速崛起。作为领先的即时通讯解决方案提供商,环信与亚马逊云科…

# Redis 入门到精通(九)-- 主从复制(2)

Redis 入门到精通(九)-- 主从复制(2) 一、redis 主从复制–数据同步阶段注意事项 1、数据同步阶段 master 说明 1)如果 master 数据量巨大,数据同步阶段应避开流量高峰期,避免造成 master 阻…

掌握Rust:函数、闭包与迭代器的综合运用

掌握Rust:函数、闭包与迭代器的综合运用 引言:解锁 Rust 高效编程的钥匙函数定义与模式匹配:构建逻辑的基石高阶函数与闭包:代码复用的艺术迭代器与 for 循环:高效数据处理的引擎综合应用案例:构建一个简易…

JavaSE--基础语法--继承和多态(第三期)

一.继承 1.1我们为什么需要继承? 首先,Java中使用类对现实世界中实体来进行描述,类经过实例化之后的产物对象,则可以用来表示现实中的实体,但是 现实世界错综复杂,事物之间可能会存在一些关联,那在设计程…

Redis的应用场景及类型

目录 一、Redis的应用场景 1、限流 2、分布式锁 3、点赞 4、消息队列 二、Redis类型的命令及用法 1、String类型 2、Hash类型 3、List类型 4、Set类型 5、Zset类型 6、Redis工具类 Redis使用缓存的目的就是提升读写性能 实际业务场景下,我们就可以把 Mys…

Mysql数据库第四次作业

mysql> create table student(sno int primary key auto_increment,sname varchar(30) not null unique,Ssex varchar(2) check (Ssex男 or Ssex女) not null,Sage int not null,Sdept varchar(10) default计算机 not null); mysql> create table Course(Con int primar…

pytest的安装和介绍和 Exit Code 含义

pytest 准备工作(在cmd里): 1安装 pip install -U pytest2验证安装 pytest --version # 会展示当前已安装版本3其他的 显示可用的内置函数参数 pytest --fixtures通过命令行查看帮助信息及配置文件选项 pytest --help一、pytets框架中的…

Air780EP-AT开发-HTTP应用指南

简介 关联文档和使用工具: AT固件获取AT指令手册 概述 4G模块支持HTTP和HTTPS协议, HTTP应用的基本流程如下: 1、激活PDP(参考:http://oldask.openluat.com/article/937)2、初始化HTTP服务3、设置HTTP会话…

从0到1使用Docker部署java项目详解

Docker部署Java项目相比传统部署方式,在环境一致性、配置管理、可扩展性和安全性等方面具有显著优势。然而,它也带来了学习成本、资源消耗和复杂度增加等挑战。 云服务器 白嫖阿里云服务 通过免费试用方式获取自己的阿里云服务器。当然,如…

ElasticSearch(四)— 数据检索与查询

一、基本查询语法 所有的 REST 搜索请求使用_search 接口,既可以是 GET 请求,也可以是 POST请求,也可以通过在搜索 URL 中指定索引来限制范围。 _search 接口有两种请求方法,一种是基于 URI 的请求方式,另一种是基于…

S71200 - 笔记

1 S71200 0 ProfiNet - 2 PLC编程 01.如何零基础快速上手S7-1200_哔哩哔哩_bilibili 西门子S7-1200PLC编程设计学习视频,从入门开始讲解_哔哩哔哩_bilibili

python:本机摄像头目标检测实时推理(使用YOLOv8n模型)

本文将介绍如何使用本机摄像头进行目标检测实时推理的python代码。 文章目录 一、下载YOLO权重文件二、环境配置三、完整代码 一、下载YOLO权重文件 https://github.com/ultralytics/ultralytics?tabreadme-ov-file 拉到网页最下面,选择适合的模型,下…

linux禁用root

linux禁用root 1. 禁止普通用户切换到root1.1 sudo -i和sudo -s的区别1.2 sudo -i和直接登录root账号的区别1.3 禁止sudo -i切换root1.4 禁止su - root切换root 2. 禁止root远程登录2.1 ssh禁止root登录2.2 禁止远程桌面登录 本文主要介绍: 如何禁止普通用户切换到r…

python-docx 如何将列表中的值提取到段落中的run以及保存为多个文档?

🏆本文收录于《CSDN问答解惑-专业版》专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收…