BGP选路之Local Preference

原理概述
当一台BGP路由器中存在多条去往同一目标网络的BGP路由时,BGP协议会对这些BGP路由的属性进行比较,以确定去往该目标网络的最优BGP路由。BGP首先比较的是路由信息的首选值(PrefVal),如果 PrefVal相同,就会比较本地优先级(LocalPreference,缩写为LocPrf)属性。
Local Preference属性可以用于选择流量离开AS时的最佳路由,也就是控制流量从哪个出口离开AS。当BGP路由器通过不同的IBGP对等体接收到目标网络相同但下一跳不同的多条路由时,将优先选择Local Preference值较高的路由。
Local Preference只在 IBGP对等体之间进行通告,EBGP对等体之间传递BGP路由时,不携带Local Preference属性。默认情况下,本地使用network命令通告或者import命令引入到BGP中的路由的Local Preference值为空。当从 IBGP对等体接收到的路由的LocalPreference值为空时,接收路由器会使用100作为这条路由的Local Preference默认值,当从IBGP对等体接收到的路由的Local Preference值不为空时,接收路由器默认不做修改。


Local Preference值是一个32比特的整数,取值范围为0~4294967295。


实验目的
理解Local Preference属性的概念与作用·

掌握修改Local Preference属性的方法实验内容


AS 100为运营商网络,AS 200为公司网络,R1的Loopback 0与Loopback 1接口用来分别模拟向公司提供服务的服务器A和服务器B,R4的 Loopback 1接口用来模拟公司的内部网络。R1属于AS 100,R2、R3和R4属于AS 200,R1与R2和R3采用直连物理接口建立EBGP邻居关系,R2、R3、R4之间采用各自的Loopback 0接口来建立IBGP邻居关系,同时R2.R3、R4运行OSPF;通过修改Local Preference值,使得公司的内部网络访问服务器A时将使用R2作为出口,访问服务器B时将使用R3作为出口。

 

1、基本配置
R1:
sys
sysname R1
int loop 0
ip add 10.0.1.1 32
int loop 1
ip add 10.0.100.2 32
int g0/0/0
ip add 10.0.12.1 24
int g0/0/1
ip add 10.0.13.1 24
qR2:
sys
sysname R2
int loop 0
ip add 10.0.2.2 32
int g0/0/0
ip add 10.0.12.2 24
int g0/0/1
ip add 10.0.24.2 24
q
ospf 1area 0.0.0.0network 10.0.24.0 0.0.0.255network 10.0.2.2 0.0.0.0R3:
sys
sysname R3
int loop 0
ip add 10.0.3.3 32
int g0/0/1
ip add 10.0.13.3 24
int g0/0/0
ip add 10.0.34.3 24
q
ospf 1area 0.0.0.0network 10.0.34.0 0.0.0.255network 10.0.3.3 0.0.0.0R4:
sys
sysname R4
int loop 0
ip add 10.0.4.4 32
int loop 1
ip add 10.0.100.4 32
int g0/0/1
ip add 10.0.24.4 24
int g0/0/0
ip add 10.0.34.4 24
q
ospf 1area 0.0.0.0network 10.0.24.0 0.0.0.255network 10.0.34.0 0.0.0.255network 10.0.4.4 0.0.0.0

 配置完成后,在R4上使用display ospf peer命令查看OSPF邻居关系。

r1:
bgp 100router-id 10.0.1.1peer 10.0.12.2 as-number 200peer 10.0.13.3 as-number 200#ipv4-family unicastundo synchronizationnetwork 10.0.1.1 255.255.255.255network 10.0.100.2 255.255.255.255peer 10.0.12.2 enablepeer 10.0.13.3 enable
r2:
bgp 200router-id 10.0.2.2peer 10.0.3.3 as-number 200peer 10.0.3.3 connect-interface LoopBack0peer 10.0.4.4 as-number 200peer 10.0.4.4 connect-interface LoopBack0peer 10.0.12.1 as-number 100#ipv4-family unicastundo synchronizationpeer 10.0.3.3 enablepeer 10.0.3.3 next-hop-localpeer 10.0.4.4 enablepeer 10.0.4.4 next-hop-localpeer 10.0.12.1 enable
r3:
bgp 200router-id 10.0.3.3peer 10.0.2.2 as-number 200peer 10.0.2.2 connect-interface LoopBack0peer 10.0.4.4 as-number 200peer 10.0.4.4 connect-interface LoopBack0peer 10.0.13.1 as-number 100#ipv4-family unicastundo synchronizationpeer 10.0.2.2 enablepeer 10.0.2.2 next-hop-localpeer 10.0.4.4 enablepeer 10.0.4.4 next-hop-localpeer 10.0.13.1 enable
r4:
bgp 200peer 10.0.2.2 as-number 200peer 10.0.2.2 connect-interface LoopBack0peer 10.0.3.3 as-number 200peer 10.0.3.3 connect-interface LoopBack0#ipv4-family unicastundo synchronizationpeer 10.0.2.2 enablepeer 10.0.3.3 enable

 在r4观察BGP路由信息的Local Preference属性

可以看到,R4的 BGP路由表中存在两条去往10.0.1.1/32网络的路由,下一跳分别为R2与R3,以及两条去往10.0.100.2/32网络的路由,下一跳还是分别为R2与R3,这些路由信息的Local Preference值均为默认值100.R4自己通告的10.0.100.4/32网络的路由信息的Local Preference值为空。

可以看到,R2从EBGP对等体R1接收到的10.0.1.1/32的路由信息的Local Preference值为空,而从IBGP对等体R3接收到的10.0.1.1/32的路由信息的Local Preference值为100。
由此可见,Local Preference属性不会通告给EBGP对等体,仅在AS内传递时才会通告。当从IBGP对等体接收到的路由的Local Preference值为空时,接收路由器会使用100作为这条路由的Local Preference默认值。

修改Local Preference值
从上面的实验内容已经看到,当从IBGP对等体接收到的路由的Local Preference值为空时,接收路由器会使用100作为这条路由的Local Preference默认值。接下来,我们将对Local Preference值进行修改,使得公司的内部网络发送数据到服务器B时以R3为出口。
先在R3上使用display default-parameter bgp命令查看BGP协议的默认参数。

 可以看到,对于目的网络10.0.100.2/32,R4 选择了下一跳为10.0.2.2的路由作为最佳路由,这是由于R4在对下一跳为10.0.2.2与10.0.3.3的路由信息进行比较时,二者的Preferred Value属性、Local Preference属性、路由生成方式、AS_Path 属性、Origin 属性、MED属性、BGP对等体类型等都是相同的,于是R4最终选择了Router-ID较小的路由器R2发布的路由作为最佳路由。
为了使公司内部网络去往10.0.100.2/32的数据使用R3作为出口,可以在R3的BGP视图下使用default local-preference命令将R3的 BGP默认Local Preference值修改为200。

 从上面两个BGP路由表可以看到,R4去往10.0.1.1/32与10.0.100.2/32网络时,使用的是下一跳为R3(10.0.3.3)的路由,Local Preference值为200;R4 的BGP路由表中不再有下一跳为R2 (10.0.2.2)的去往10.0.1.1/32与10.0.100.2/32的路由。
在R3上修改了Local Preference值后,R1把关于10.0.1.1/32 与10.0.100.2/32的路由传递给EBGP对等体R2时,Local Preference值为空,R3把关于10.0.1.1/32与10.0.100.2/32的路由传递给IBGP对等体R2时,Local Preference值为200,于是R2会选择下一跳为R3 (10.0.3.3)的路由作为自己去往10.0.1.1/32与10.0.100.2/32的最佳路由。BGP协议在向BGP对等体传递路由时只传递最佳路由,同时,由于IBGP的防环机制,BGP路由器不会将从IBGP对等体那里学到的路由再传递给别的IBGP对等体,因此,R2就不会再向R4传递关于10.0.1.1/32与10.0.100.2/32的路由了,最后的结果是,R4的BGP路由表中最终只存在去往10.0.1.1/32与10.0.100.2/32的下一跳为R3(10.0.3.3)的路由。

可以看到,公司内部网络发送数据到服务器A时也是以R3为出口的。为实现流量分担,现在使用Route-Policy对特定路由的Local Preference值进行修改,从而使得公司内部网络去往服务器A ( 10.0.1.1)的报文选择R2为出口。

r2:
bgp 200peer 10.0.12.1 route-policy 1 import#
route-policy 1 permit node 10if-match ip-prefix 1apply local-preference 400
#
route-policy 1 permit node 20
#
ip ip-prefix 1 index 10 permit 10.0.1.1 32

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

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

相关文章

Linux_权限3

Linux所对应的文件类型 1.在Win下,有文件类型,通常通过后缀标识 日常用的就是windows系统这里不做举例. 2.Linux的文件类型不通过后缀区分(不代表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;用来衡量和选择最好的“分叉点”来进…

Adobe Dimension(DN)安装包软件下载

目录 一、软件简介 二、软件下载 三、注意事项 四、软件功能 五、常用快捷键 快捷键&#xff1a; 一、软件简介 Adobe Dimension&#xff08;简称DN&#xff09;是Adobe公司推出的一款三维设计和渲染软件。与一般的3D绘图软件相比&#xff0c;DN在操作界面和功能上有所不…

Spark实时(一):StructuredStreaming 介绍

文章目录 StructuredStreaming 介绍 一、SparkStreaming实时数据处理痛点 1、复杂的编程模式 2、SparkStreaming处理实时数据只支持Processing Time 3、微批处理&#xff0c;延迟高 4、精准消费一次问题 二、StructuredStreaming概述 三、​​​​​​​​​​​​​​…

python使用 tkinter 生成随机颜色

先看效果: 只要不停点击底部的按钮&#xff0c;每次都会生成新的颜色。炫酷啊。 import random import tkinter import tkinter.messagebox from tkinter import Button# todo """ 1. 设置一个按钮&#xff0c;来让用户选择是否显示颜色值 2. 把按钮换成 Label…

《白话机器学习的数学》第2章——学习回归

2.1设置问题 1.机器学习所做的事情正是从数据中进行学习&#xff0c;然后给出预测值。 2.2定义模型 1.一次函数的表达式&#xff1a; 其中θ叫做参数。 在统计学领域&#xff0c;人们常常使用 θ 来表示未知数和推测值。采用 θ加数字下标的形式&#xff0c;是为了防止当未知数…

网络访问(Socket/WebSocket/HTTP)

概述 HarmonyOS为用户提供了网络连接功能&#xff0c;具体由网络管理模块负责。通过该模块&#xff0c;用户可以进行Socket网络通滚、WebSocket连接、HTTP数据请求等网络通信服务。 Socket网络通信&#xff1a;通过Socket(嵌套字)进行数据通信&#xff0c;支持的协议包括UDP核…

【教程】vscode添加powershell7终端

win10自带的 powershell 是1.0版本的&#xff0c;太老了&#xff0c;更换为powershell7后&#xff0c;在 vscode 的集成终端中没有显示本篇教程记录在vscode添加powershell7终端的过程 打开vscode终端配置 然后来到这个页面进行设置 查看 powershell7 的安装位置&#xff…

JDK HttpClient - Java 11 可用的 JDK 内置的 HTTP 客户端

在 Java 应用的开发中&#xff0c;发送 HTTP 请求是一个常见的需求。应用在开发时&#xff0c;通常会使用流行的开源第三方库作为 HTTP 客户端&#xff0c;如 Apache HttpClient 或 OkHttp 等。这里介绍的是 JDK 自带的 HttpClient 实现&#xff0c;Java 11 可用。说到这里&…

物联网主机 E6000:智慧应急领域的创新力量

在当今瞬息万变的世界中&#xff0c;突发事件和紧急情况时有发生。如何迅速、准确地应对这些挑战&#xff0c;保障人民生命财产安全&#xff0c;成为了社会发展的重要课题。而物联网主机 E6000 的出现&#xff0c;为智慧应急领域带来了全新的解决方案。 一、强大的性能与功能 物…

Java学习 - Spring Boot整合 Thymeleaf 实例

什么是 Thymeleaf Thymeleaf 是新一代的 Java 模板引擎&#xff0c;类似于 Velocity、FreeMarker 等传统引擎&#xff0c;其语言和 HTML 很接近&#xff0c;而且扩展性更高&#xff1b; Thymeleaf 的主要目的是将优雅的模板引入开发工作流程中&#xff0c;并将 HTML 在浏览器中…

ROS话题发布与订阅

续上一篇文章。 我们现在在VScode里面加入订阅方的实现。 demo02_sub.cpp #include "ros/ros.h" #include "std_msgs/String.h"/*订阅方实现&#xff1a;1、包含头文件ROS中文本类型 ---> std_msgs/String.h2、初始化ROS节点3、创建节点句柄4、创建订…

中国篆刻艺术孙溟㠭作品《活着》

活着只是一吸一呼之间&#xff0c;在意觉醒之间&#xff0c;在血液流动之间&#xff0c;抛却灵与肉生死&#xff0c;一切都是惘然。妻吴晓蕾题款&#xff0c;甲辰夏月溟㠭于寒舍小窗下刊石。

力扣高频SQL 50题(基础版)第七题

文章目录 力扣高频SQL 50题&#xff08;基础版&#xff09;第七题1068. 产品销售分析 I题目说明思路分析实现过程准备数据&#xff1a;实现方式&#xff1a;结果截图:总结&#xff1a; 力扣高频SQL 50题&#xff08;基础版&#xff09;第七题 1068. 产品销售分析 I 题目说明 …