只做旧房翻新的装修公司/seo公司杭州
原理概述
当一台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
相关文章:

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

WEB渗透信息收集篇--IP和端口信息
WEB渗透信息收集篇--域名信息-CSDN博客 WEB渗透信息收集篇--网站架构和指纹识别-CSDN博客 WEB渗透信息收集篇--人员信息-CSDN博客 WEB渗透信息收集篇--其他信息-CSDN博客 一、ASN ASN Tool - MxToolBox ASN通常指的是"自…...

国内微短剧系统平台抖音微信付费小程序app开发源代码交付
微短剧作为当下热门的内容,结合抖音平台的广泛用户基础,开发微短剧付费小程序APP具有显著的市场潜力,用户对于短剧内容的需求旺盛,特别是在言情、总裁、赘婿等热门题材方面,接下来给大家普及一下微短剧小程序系统。 顺…...

Java语言程序设计基础篇_编程练习题**15.19 (游戏:手眼协调)
**15.19 (游戏:手眼协调) 请编写一个程序,显示一个半径为10像素的实心圆,该圆放置在面板上的随机位置,并填充随机的顔色,如图15-29b所示。单击这个圆时,它会消失,然后在另一个随机的位置显示新的随机颜色的…...

学习记录day16—— 数据结构 双向链表 循环链表
双向链表 1、概念 1)就是从任意一个节点既能存储其前驱节点,又能存储后继节点 2)结构体中增加一个指向前驱节点的指针 //定义数据类型 typedef int datatype;//定义节点类型 typedef struct Node {union {int len;datatype data;};struct Node *prio; …...

Air780EP模块 AT开发-MQTT接入OneNET移动物联网平台应用指南
应用概述 使用AT方式通过MQTT协议连接onenet studio。官网地址:https://open.iot.10086.cn/ 材料准备 Air780EP(V)开发板一套,包括天线SIM卡,USB线。 PC电脑,串口工具 在onenet上创建产品 打开OneNET官网,进入控制…...

HOST处理器预读PCI设备
在PCI(Peripheral Component Interconnect)总线规范中,MRL(Memory Read Line)和MRM(Memory Read Multiple)是两种读取存储器地址空间的总线事务类型。 MRL(Memory Read Line…...

【Ansible】通过role角色部署lnmp架构
目录 一.roles概述 1.roles角色 2.roles的目录层次 2.1.roles 内各目录含义解释 二.实操 1.部署nginx 2.部署MySQL 3.部署php 4.编写测试文件 三.总结 一.roles概述 1.roles角色 可以把playbook剧本里的每个play看作为一个角色,将每个角色要用到的文件、…...

springboot给属性赋值的两种方式(yaml与properties)
一,介绍 在Spring Boot中,配置文件是用来设置应用程序的各种参数和操作模式的重要部分。Spring Boot支持两种主要类型的配置文件:properties文件和YAML 文件。这两种文件都可以用来定义相同的配置,但它们在格式和表达能力上有所不…...

20240725 每日AI必读资讯
🚀最强开源模型来了!Llama3.1以405B参数领先GPT-4o - Llama3.1以405B参数领先GPT-4o和Claude3.5Sonnet,在性能上实现超越。 - Meta大幅优化训练栈,扩展模型算力规模至16000个H100GPU,提高性能。 - Llama3.1具有上下文长度扩展、…...

17_高级进程间通信 UNIX域套接字1
非命名的UNIX域套接字 第1个参数domain,表示协议族,只能为AF_LOCAL或者AF_UNIX; 第2个参数type,表示类型,只能为0。 第3个参数protocol,表示协议,可以是SOCK_STREAM或者SOCK_DGRAM。用SOCK_STR…...

大型语言模型的生物医学知识图优化提示生成
大型语言模型的生物医学知识图优化提示生成 https://arxiv.org/abs/2311.17330 https://github.com/BaranziniLab/KG_RAG 大型语言模型的生物医学知识图优化提示生成 摘要 KG-RAG框架,较好的结合了生物医学知识图谱SPOKE和LLM的优势。SPOKE是一个开放知识图谱&…...

winform datagrid 全部勾选
如果我们想要进行全选或全部取消,在数据较多的情况下,这种方法显然特别繁琐。怎么办呢? 当然是加以一个全选按钮了,选中全选按钮则全选,否则取消。笔者本想在红色圆圈位置添加全选复选框的,那样看起来更加…...

从 NextJS SSRF 漏洞看 Host 头滥用所带来的危害
前言 本篇博文主要内容是通过代码审计以及场景复现一个 NextJS 的安全漏洞(CVE-2024-34351)来讲述滥用 Host 头的危害。 严正声明:本博文所讨论的技术仅用于研究学习,旨在增强读者的信息安全意识,提高信息安全防护技能…...

LC617-合并二叉树
文章目录 1 题目描述2 思路优化代码完整输入输出 参考 1 题目描述 https://leetcode.cn/problems/merge-two-binary-trees/description/ 给你两棵二叉树: root1 和 root2 。 将其中一棵覆盖到另一棵之上时,两棵树上的一些节点将会重叠(而另…...

深入解析:端到端目标检测模型的奥秘
深入解析:端到端目标检测模型的奥秘 在人工智能领域,计算机视觉任务一直是研究的热点之一。目标检测作为计算机视觉中的核心问题,其重要性不言而喻。端到端的目标检测模型,以其高效的性能和简洁的架构,逐渐成为研究和…...

xmind--如何快速将Excel表中多列数据,复制到XMind分成多级主题
每次要将表格中的数据分成多级时,只能复制粘贴吗 快来试试这个简易的方法吧 这个是原始的表格,分成了4级 步骤: 1、我们可以先按照这个层级设置下空列(后买你会用到这个空列) 二级不用加、三级前面加一列、四级前面加…...

在 Android 上实现语音命令识别:详细指南
在 Android 上实现语音命令识别:详细指南 语音命令识别在现代 Android 应用中变得越来越普遍。它允许用户通过自然语言与设备进行交互,从而提升用户体验。本文将详细介绍如何在 Android 上实现语音命令识别,包括基本实现、带有占位槽位的命令处理,以及相关的配置和调试步骤…...

怎么理解FPGA的查找表与CPLD的乘积项
怎么理解 fpga的查找表 与cpld的乘积项 FPGA(现场可编程门阵列)和CPLD(复杂可编程逻辑器件)是两种常见的数字逻辑器件,它们在内部架构和工作原理上有着一些显著的区别。理解FPGA的查找表(LUT,L…...

51.2T 800G 以太网交换机,赋能AI开放生态
IB与以太之争 以太网替代IB趋势明显。据相关报告:2024年TOP500的超算中,采用以太网方案占比48.5%,InfiniBand占比为39.2%,其中排名前6的超算中已有5个使用以太网互联。 开放系统战胜封闭系统仅是时间问题。我们已经看到…...

【制作100个unity游戏之31】用unity制作一个爬坡2d赛车小游戏
最终效果 【制作100个unity游戏之31】用unity制作一个爬坡2d赛车小游戏 前言 今天用unity制作一个简单的爬坡2d赛车小游戏 素材 https://www.spriters-resource.com/mobile/hillclimbracing/ 拼装车素材 车身添加碰撞体,摩檫力0 轮胎添加碰撞体和刚体࿰…...

Spring Boot 注解 @PostConstruct 介绍
Spring Boot 注解 PostConstruct 介绍 文章目录 Spring Boot 注解 PostConstruct 介绍一、基本介绍二、PostConstruct 的执行时机Spring Bean 的生命周期PostConstruct 的确切执行时机执行顺序示例重要注意事项 三、使用场景及代码示例1. 初始化资源:比如打开数据库…...

深度学习环境配置报错解决日记
2024年7越24日 1、detectron2需要编译 首先需要在自己创建的虚拟环境中下载一下detectron2 conda create -n pytorch python3.9 conda activate pythorch git clone https://github.com/facebookresearch/detectron2.git 接下来就是编译环节: 在win系统中&…...

百度,有道,谷歌翻译API
API翻译 百度,有道,谷歌API翻译(只针对中英相互翻译),其他语言翻译需要对应from,to的code 百度翻译 package fills.tools.translate; import java.util.ArrayList; import java.util.HashMap; import java.util.Lis…...

java-双亲委派机制
Java虚拟机(JVM)中的类加载器(Class Loader)负责将类(.class文件)加载到JVM中,以便Java程序能够使用这些类。在JVM中,类加载器被组织成一种层次结构关系,这种层次结构关系…...

【C++】set的使用
🔥个人主页: Forcible Bug Maker 🔥专栏: STL || C 目录 🌈前言🌈关于set🔥容量函数emptysize 🔥Modifiersinserteraseclear 🔥Operationsfindcountlower_bound和upper_…...

React 18【实用教程】(2024最新版)
搭建开发环境 含配置,react-developer-tools 和 Redux DevTools 下载安装 https://blog.csdn.net/weixin_41192489/article/details/138523829 JSX 语法 https://blog.csdn.net/weixin_41192489/article/details/138649165 组件 父子组件传值、兄弟组件传值、越层组…...

Perl语言入门学习指南
Perl语言(Practical Extraction and Report Language)是一种强大的脚本语言,以其灵活性和强大的文本处理能力而闻名。Perl广泛应用于系统管理、Web开发、网络编程和数据处理等领域。本文将带您入门Perl语言,介绍其基本语法、常用功…...

《Java8函数式编程》学习笔记汇总
前言 见证了java8的多层排序,为此想系统学习下java8的用法。 目录 简介Lambda表达式流高级集合类和收集器数据并行化测试、调试和重构设计和架构的原则使用Lambda表达式编写并发程序下一步改怎么办 后记...

C语言之封装,继承,多态
本文参考: c语言面向对象之封装c面向对象之继承Linux源码分析之多态 一、封装 封装的本质就是将数据和方法集中到一个对象中,c或者java使用的是class来实现。c语言中可以使用struct来实现同样的功能。比如下面的程序: struct student {int…...