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.xdnf.cn/news/1486740.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

小程序多排数据横向滚动实现

如何实现多排数据滚动效果 swiper 外部容器 swiper-item 每一页的数据 因为现在有多排数据,现在在swiper-item 中需要循环一个数组 初版 <template><view><view class"container"><view class"swiper-box"><swiper class&qu…

操作系统——笔记(1)

操作系统是管理计算机硬件资源&#xff0c;控制其他程序运行并为用户提供交互操作界面的系统软件的集合&#xff0c;控制和管理着整个计算机系统的硬件和软件资源&#xff0c;是最基本的系统软件。 常见的操作系统&#xff1a;ios、windows、Linux。 计算机系统的结构层次&am…

“论软件测试中缺陷管理及其应用”写作框架,软考高级论文,系统架构设计师论文

原创范文 软件缺陷指的是计算机软件或程序中存在的某种破坏正常运行能力的问题、错误&#xff0c;或者隐藏的功能缺陷。缺陷的存在会导致软件产品在某种程度上不能满足用户的需要。在目前的软件开发过程中&#xff0c;缺陷是不可避免的。软件测试是发现缺陷的主要手段&#xf…

计算机网络基础:2.TCP/IP模型中的各层协议、IP地址

一、TCP/IP模型中的各层协议 接着第一篇餐厅运营的例子来解释一下TCP/IP五层模型中的每一层协议&#xff1a; 1. 应用层&#xff08;餐饮一体机&#xff09; 在TCP/IP模型中&#xff0c;应用层直接与用户交互&#xff0c;提供网络服务。这一层将OSI模型的应用层&#xff08;点…

colab进行keras入门随机数和标签的一点思考,例如shape和Dense等

keras官方中文文档 pip install kerasfrom keras import layers from keras import modelsmodel.add(layers.Dense(32,activationrelu,input_shape(100,)))# 添加多个Dense层 model.add(layers.Dense(10,activationsoftmax)) model.compile(optimizerrmsprop,losscategorical_…

pikachu之sql lnjet 字符型注入

先测试一下闭合 注释符号&#xff1a;-- 注释符号可以忽略其后的内容&#xff0c;使得后续的原始查询内容不会影响我们注入的SQL代码。 条件测试&#xff1a;通过and 11和and 12分别测试真假条件&#xff0c;可以判断输入是否成功闭合&#xff0c;并且可以检测注入是否成功。 …

Kotlin 协程 — 基础

Kotlin 协程 — 基础 协程已经存在一段时间了&#xff0c;关于它的各种文章也很多。但我发现想要了解它还比较费时&#xff0c;所以我花了一段时间才真正理解了协程的基础知识以及它的工作原理。因此&#xff0c;我想分享一些我理解到的内容。 什么是协程&#xff1f; 协程代表…

关于OLED的I2C手册记录

首先我们从淘宝上面找到对应OLED 4pin iic驱动的ssd1306手册&#xff0c;它有多种的驱动方式&#xff0c;我们只需要看看他这个i2c模式。 我们可以从中看到 Slave address R/W后面的#代表低电平是W。 SA0是它的一个 slave address bit 可以使用 这两个都可以作为OLED的 设备…

分布式事务与Seata落地

分布式事务与Seata落地 一、事务基础 1.1 本地事务 事务指的就是一个操作单元, 在这个操作单元中的所有操作最终要保持一致的行为, 要么所有操作都成功, 要么所有的操作都被撤销。 1.2 本地事务特性 本地事务四大特性: ACID A: 原子性(Atomicity), 一个事务中的所有操作, …

如何通过一条SQL变更多个分库分表?

数据库发展到今天&#xff0c;分库分表已经不是什么新鲜话题了&#xff0c;传统的单节点数据库架构在数据量和访问频次达到一定规模时&#xff0c;会出现性能瓶颈和扩展性问题&#xff0c;而分库分表技术通过将数据分散到多个数据库实例中来分担负载&#xff0c;从而提升系统的…

数字信号||离散序列的基本运算(2)

实验二 离散序列的基本运算 一、实验目的 (1)进一步了解离散时间序列时域的基本运算。 (2)了解MATLAB语言进行离散序列运算的常用函数&#xff0c;掌握离散序列运算程序的编写方法。 二、实验涉及的MATLAB子函数 1.find 功能&#xff1a;寻找非零元素的索引号。 调用格…

BGP选路之Local Preference

原理概述 当一台BGP路由器中存在多条去往同一目标网络的BGP路由时&#xff0c;BGP协议会对这些BGP路由的属性进行比较&#xff0c;以确定去往该目标网络的最优BGP路由。BGP首先比较的是路由信息的首选值&#xff08;PrefVal)&#xff0c;如果 PrefVal相同&#xff0c;就会比较本…

Linux_权限3

Linux所对应的文件类型 1.在Win下&#xff0c;有文件类型&#xff0c;通常通过后缀标识 日常用的就是windows系统这里不做举例. 2.Linux的文件类型不通过后缀区分&#xff08;不代表Linux不用后缀) 其中需要注意的是第一个字符表示文件类型的含义 - :普通文件, 文本, 源代码…

解决:uniapp 小程序 使用swiper 内部嵌套另外一个拥有左右滑动组件导致滑动冲突

解决办法 在swiper-item 内增加这个属性进行包裹 touchmove.stop <div touchmove.stop><qiun-data-charts type"area" :opts"optsStg" :chartData"dateDataStg" /> </div>

嘉立创|如何在原理图中框选任意元件

点击编辑—选择对象—对边形内部 便可以任意框选 选中之后&#xff0c;进入pcb板界面也选中了相同器件

使用kali对操作系统和网络服务类型进行探测

1&#xff0e;在Kali终端中输入命令“nmap –sS –n -O 192.168.2.2”&#xff0c;探测目标主机的操作系统类型 2&#xff0e; 在Kali终端中输入命令“nmap –sV -n 192.168.2.2”&#xff0c;探测目标主机开启的网络服务类型 3.在Kali终端中输入命令“nmap –A -n 192.168.2.2…

Linux中的System V通信标准--共享内存、消息队列以及信号量

关于 System V 标准&#xff0c;一共有三种通信方式&#xff0c;分别为&#xff1a;共享内存、信号量和消息队列三种通信方式。本篇将较为详细的讲解三种通信方式的实现原理&#xff0c;以及介绍在 Linux 系统下调用这三种的通信方式的接口&#xff0c;其中以共享内存为例&…

.netcore TSC打印机打印

此文章给出两种打印案例&#xff0c; 第一种是单列打印&#xff0c;第二种是双列打印 需要注意打印机名称的设置&#xff0c;程序中使用的打印机名称为999&#xff0c;电脑中安装打印机时名称也要为999。 以下是我在使用过程中总结的一些问题&#xff1a; 一 TSC打印机使用使…

【区块链+绿色低碳】巴中市生态价值核算创新应用 | FISCO BCOS应用案例

生态产品总值&#xff08;GEP&#xff09;&#xff0c;指一定区域生态系统为人类福祉和经济社会可持续发展提供的产品与服务价值总和&#xff0c;包 括供给产品价值、调节服务价值和文化服务价值。当前&#xff0c;推动生态产品价值有效转化存在“难度量、难抵押、难交易、 难变…

【机器学习算法基础】(基础机器学习课程)-08-决策树和随机森林-笔记

一、决策树之信息论基础 决策树是一种用来做决策的工具&#xff0c;就像我们生活中的选择树。例如&#xff0c;你在选择今天穿什么衣服时&#xff0c;会根据天气情况、出行活动等进行判断。决策树的构建过程涉及一些信息论的概念&#xff0c;用来衡量和选择最好的“分叉点”来进…