当前位置: 首页 > news >正文

BGP路由策略 基础实验

要求:

1.使用Preva1策略,确保R4通过R2到达192.168.10.0/24

2.用AS_Path策略,确保R4通过R3到达192.168.11.0/24

3.配置MED策略,确保R4通过R3到达192.168.12.0/24

4.使用Local Preference策略,确保R1通过R2到达192.168.1.0/24

5.使用Local Preference策略,确保R1通过R3到达192.168.2.0/24

6.配置负载均衡,确保R1通过R2和R3到达192.168.3.0/24

7.使用AS策略,AS 500不接受任何始发于A5 123的路由

8.使用自定义Community策略,确保192.168.3.0/24路由不会被发布到AS 500

9.IBGP使用环回接口建邻,EBGP使用物理接口建邻

10.修改AS 123中的用户网段为Broadcast,方便后续在BGP中宣告

11.BGP宣告路由时,仅宣告24网段的用户路由

要求分析:

1. PreVal策略
 
- 原理:PreVal(优选值)是华为设备私有的BGP选路属性,仅在本地有效 ,数值越大越优先。通过设置不同邻居方向路由的PreVal值,可影响本地路由器的选路。
- 目的:让R4在到达192.168.10.0/24网段时,优先选择R2作为下一跳,即人为干预R4的BGP选路,使其按照指定路径转发流量。
 
2. AS_Path策略
 
- 原理:AS_Path是BGP路由的重要属性,记录路由从源端到当前路由器所经过的AS号序列。路由器在选路时,倾向于选择AS_Path短的路由。可以通过对AS_Path进行添加、修改等操作来影响选路。
- 目的:使R4到达192.168.11.0/24网段时,优先选择R3作为下一跳,通过控制AS_Path长度或内容,引导R4的流量走向。
 
3. MED策略
 
- 原理:MED(多出口鉴别属性)用于向外部AS通告本AS内的优选路径,它是一种可选非过渡属性。在不同AS的边界路由器之间传递,值越小越优先。
- 目的:引导R4在到达192.168.12.0/24网段时,优先选择R3作为下一跳,实现对跨AS流量路径的控制。
 
4. Local Preference策略(R1到192.168.1.0/24)
 
- 原理:Local Preference(本地优先级)是BGP用于AS内部选路的属性,本地优先级越高的路由越优先。该属性仅在AS内部传递,不会被通告到外部AS。
- 目的:在AS 123内部,让R1在到达192.168.1.0/24网段时,优先选择R2作为下一跳,用于AS内的流量路径规划。
 
5. Local Preference策略(R1到192.168.2.0/24)
 
- 原理:同4,利用Local Preference属性在AS内部进行选路。
- 目的:使R1在到达192.168.2.0/24网段时,优先选择R3作为下一跳,进一步精细化AS内的流量转发路径。
 
6. 负载均衡
 
- 原理:通过调整BGP选路相关属性(如Local Preference、AS_Path、MED等 ),使从不同邻居学到的到达同一目的网段(这里是192.168.3.0/24)的路由具有相同的优选级别,同时开启BGP等价路由功能(如华为设备的maximum - paths命令),让路由器可以将流量分散到多条路径上。
- 目的:让R1在到达192.168.3.0/24网段时,将流量通过R2和R3两条路径进行负载均衡,提高链路利用率,增强网络可靠性。
 
7. AS策略
 
- 原理:利用AS_Path过滤功能,在AS 500的边界路由器上配置入方向策略,拒绝AS_Path中包含特定AS号(这里是AS 123)的路由,从而阻止从AS 123始发的路由进入AS 500。
- 目的:实现AS 500对路由来源的控制,避免接收来自AS 123的路由,可能出于网络安全、管理策略等方面的考虑。
 
8. 自定义Community策略
 
- 原理:Community属性是一种可选过渡属性,用于对BGP路由进行分组和标记。通过在AS 123边界路由器上对特定路由(192.168.3.0/24)打上自定义Community属性,然后在AS 500边界路由器上配置过滤策略,拒绝带有该属性的路由,实现对特定路由的发布控制。
- 目的:阻止192.168.3.0/24路由被发布到AS 500,对路由的传播范围进行精确控制,满足网络管理和安全需求。
 
9. IBGP和EBGP建邻方式
 
- 原理:IBGP使用环回接口建邻,是因为环回接口地址相对稳定,即使物理接口出现故障,只要路由器可达,邻居关系就不会中断;EBGP使用物理接口建邻是常规做法,物理接口直接连接外部AS,用于建立跨AS的邻居关系。
- 目的:提高IBGP邻居关系的稳定性,确保AS内部BGP路由信息可靠传递;规范EBGP建邻方式,实现跨AS的BGP路由交互。
 
10. 修改用户网段网络类型
 
- 原理:将用户网段接口的网络类型修改为Broadcast,适用于运行如OSPF等动态路由协议的场景。Broadcast网络类型支持动态邻居发现,路由器之间可以通过组播方式交互链路状态信息等,便于路由协议收敛和路由通告。
- 目的:为后续在BGP中宣告用户网段路由做准备,使相关网段能通过动态路由协议正常学习和传递路由信息,最终实现BGP准确宣告。
 
11. BGP宣告路由限制
 
- 原理:通过IP前缀列表(prefix - list)精确匹配24网段的用户路由,然后在BGP宣告命令中调用该前缀列表,只宣告符合条件的路由。
- 目的:精确控制BGP宣告的路由范围,只将24网段的用户路由通告出去,避免不必要的路由宣告,提高路由表的简洁性和网络安全jut

具体步骤(这里用Router做)

一.配置IP地址和环回

命令:  display ip interface brief

R1:

R2:

R3:

R4:

R5:

二.配置OSPF

R1:

[R1]ospf 1 router-id 1.1.1.1

R2:

[R2]ospf 1 router-id 2.2.2.2

R3:

[R3]ospf 1 router-id 3.3.3.3

三.修改AS 123中的用户网段为Broadcast

[R1-LoopBack1]ospf network-type broadcast 
[R2-LoopBack1]ospf network-type broadcast

[R3-LoopBack1]ospf network-type broadcast 

四.配置BGP并宣告

R1:

[R1-bgp]network 192.168.100.0 24
 

R2:

[R2-bgp]network 192.168.20.0 24
 

R3:

[R3-bgp]network 192.168.30.0 24
 

R4:

[R4-bgp]network 192.168.1.0 24
[R4-bgp]network 192.168.2.0 24
[R4-bgp]network 192.168.3.0 24
 

R5:

[R5-bgp]network 192.168.10.0 24
[R5-bgp]network 192.168.11.0 24
[R5-bgp]network 192.168.12.0 24

1.使用Preva1策略,确保R4通过R2到达192.168.10.0/24

[R4]ip ip-prefix 1 permit 192.168.10.0 24
 

[R4]route-policy 1 permit node 20
[R4]bgp 400
[R4-bgp]peer 24.0.0.2 route-policy 1 import 

2.用AS_Path策略,确保R4通过R3到达192.168.11.0/24

[R4]ip ip-prefix AS permit 192.168.11.0 24


[R4]bgp 400
[R4-bgp]peer 24.0.0.2 route-policy AS import 

3.配置MED策略,确保R4通过R3到达192.168.12.0/24

[R2]ip ip-prefix MED permit 192.168.12.0 24

[R2]route-policy MED permit node 20
[R2-bgp]peer 24.0.0.4 route-policy MED export 

[R3]ip ip-prefix MED permit 192.168.12.0 24

[R3]route-policy MED permit node 20
[R3-bgp]peer 34.0.0.4 route-policy MED export 


4.使用Local Preference策略,确保R1通过R2到达192.168.1.0/24

[R1]ip ip-prefix LP1 permit 192.168.1.0 24

[R1]route-policy LP1 permit node 20
[R1-bgp]peer 2.2.2.2 route-policy LP1 import 

5.使用Local Preference策略,确保R1通过R3到达192.168.2.0/24

[R1]ip ip-prefix LP2 permit 192.168.2.0 24

[R1]route-policy LP2 permit node 20
[R1-bgp]peer 3.3.3.3 route-policy LP2 import 

6.配置负载均衡,确保R1通过R2和R3到达192.168.3.0/24

[R1-bgp]maximum load-balancing 2

7.使用AS策略,AS 500不接受任何始发于A5 123的路由

[R5]ip as-path-filter 1 deny ^123$
[R5]ip as-path-filter 1 permit .*
[R5-bgp]peer 15.0.0.1 as-path-filter 1 import 

8.使用自定义Community策略,确保192.168.3.0/24路由不会被发布到AS 500

[R1-bgp]peer 15.0.0.5 advertise-community 
[R1]ip community-filter 1 permit 400:500
[R1]route-policy com deny node 10

[R1-route-policy]if-match community-filter 1

[R1]route-policy com permit node 20

[R1-bgp]peer 15.0.0.5 route-policy com export 

[R2-bgp]peer 1.1.1.1 advertise-community

[R3-bgp]peer 1.1.1.1 advertise-community 


[R4]route-policy com permit node 10

[R4-route-policy]apply community 400:500

[R4-bgp]network 192.168.3.0 24 route-policy com

[R4-bgp]peer 24.0.0.2 advertise-community
[R4-bgp]peer 34.0.0.3 advertise-community 

 

实验感悟

        这次实验不仅强化了我对BGP协议的掌握,更教会我如何系统性地分析问题、制定解决方案。当所有策略协同生效,网络流量如预期般精准流动——它不仅是代码与配置的堆砌,更是逻辑思维与创新能力的体现。

相关文章:

BGP路由策略 基础实验

要求: 1.使用Preva1策略,确保R4通过R2到达192.168.10.0/24 2.用AS_Path策略,确保R4通过R3到达192.168.11.0/24 3.配置MED策略,确保R4通过R3到达192.168.12.0/24 4.使用Local Preference策略,确保R1通过R2到达192.168.1.0/24 …...

Java 原生网络编程(BIO | NIO | Reactor 模式)

1、基本常识 Socket 是应用层与 TCP/IP 协议族通信的中间软件抽象层,是一组接口,使用了门面模式对应用层隐藏了传输层以下的实现细节。TCP 用主机的 IP 地址加上主机端口号作为 TCP 连接的端点,该端点叫做套接字 Socket。 比如三次握手&…...

大语言模型 11 - 从0开始训练GPT 0.25B参数量 MiniMind2 准备数据与训练模型 DPO直接偏好优化

写在前面 GPT(Generative Pre-trained Transformer)是目前最广泛应用的大语言模型架构之一,其强大的自然语言理解与生成能力背后,是一个庞大而精细的训练流程。本文将从宏观到微观,系统讲解GPT的训练过程,…...

【Java ee初阶】HTTP(4)

构造HTTP请求 1)开发中,前后端交互。浏览器运行的网页中,构造出HTTP请求 2)调试阶段,通过构造HTTP请求测试服务器 朴素的方案: 通过tcp socket 的方式构造HTTP请求 按照HTTP请求格式,往TCP…...

永久免费!专为 Apache Doris 打造的可视化数据管理工具 SelectDB Studio V1.1.0 重磅发布!

作为全球领先的开源实时数据仓库, Apache Doris Github Stars 已超过 13.6k,并在 5000 余家中大型企业生产环境得到广泛应用,支撑业务核心场景,成为众多企业数据分析基础设施不可或缺的重要基座。过去,Apache Doris 用…...

React中useDeferredValue与useTransition终极对比。

文章目录 前言一、核心差异对比二、代码示例对比1. useDeferredValue:延迟搜索结果更新2. useTransition:延迟路由切换 三、应用场景总结四、注意事项五、原理剖析1. 核心机制对比2. 关键差异3. 代码实现原理 总结 前言 在React的并发模式下&#xff0c…...

Git 项目切换到新的远程仓库地址

已存在的 Git 项目切换到新的远程仓库地址,比如你要换成: gitgithub.com:baoing/test-app.git步骤如下: 查看当前的远程仓库地址(可选) git remote -v你会看到类似: origin gitgithub.com:old-user/old…...

科技晚报 AI 速递:今日科技热点一览 丨 2025 年 5 月 17 日

科技晚报AI速递:今日科技热点一览 丨2025年5月17日 我们为您汇总今日的科技领域最新动向,带您快速了解前沿技术、突破性研究及行业趋势。 黄仁勋劝特朗普:AI 芯片出口规则得改,中国紧追其后:英伟达 CEO 黄仁勋在华盛顿 “山与谷论…...

基于OpenCV的SIFT特征和FLANN匹配器的指纹认证

文章目录 引言一、概述二、代码解析1. 图像显示函数2. 核心认证函数3. 匹配点筛选4. 认证判断 三、主程序四、技术要点五、总结 引言 在计算机视觉领域,图像特征匹配是一个非常重要的技术,广泛应用于物体识别、图像拼接、运动跟踪等场景。今天将介绍一个…...

【Linux】共享内存

🌻个人主页:路飞雪吖~ 🌠专栏:Linux 目录 ☃️共享内存 🪄 shmget函数 用来创建共享内存 ✨共享内存的管理指令: 🌠 shmid VS key ✨共享内存函数 🍔 shmget() 创建共享内存 &a…...

Cookie、Session、Token

Cookie 1. 什么是cookie? Cookie 是一种由服务器发送到客户端浏览器的小数据片段,用于存储用户的状态信息。例如,用户登录状态或用户偏好设置可以通过Cookie进行管理。计算机cookie更正式地称为 HTTP cookie、网络 cookie、互联网 cookie 或浏览器 coo…...

设计模式Java

UML类图 概述 类图(Class diagram)是显示了模型的静态结构,特别是模型中存在的类、类的内部结构以及它们与其他类的关系等。类图不显示暂时性的信息。类图是面向对象建模的主要组成部分。 类图的作用 在软件工程中,类图是一种静态的结构图&#xff0c…...

Word文档图片排版与批量处理工具推荐

先放下载链接:夸克网盘下载 前几天给大家推荐了 Excel 图片调整软件,当时好多小伙伴问有没有 Word 相关的软件。我在网上找了一圈都没找到合适的,最后在我好久之前记录的一个文档里发现了,这不,马上就来给大家推荐,有…...

[案例五] 实体——赋值质量

最近翻阅了实验室其他人编写的一个“质量赋值”功能,能够直接为实体或组件设定质量。出于好奇,我对其进行了分析。由于自己平时没有用到该功能,所以也借此机会学习一下。 在分析过程中,我发现NX 官方其实并没有提供直接修改质量的功能。一般来说,质量是通过“密度 体积”…...

手撕四种常用设计模式(工厂,策略,代理,单例)

工厂模式 一、工厂模式的总体好处 解耦:客户端与具体实现类解耦,符合“开闭原则”。统一创建:对象创建交由工厂处理,便于集中控制。增强可维护性:新增对象种类时不需要大改动调用代码。便于扩展:易于管理…...

C# 深入理解类(静态函数成员)

静态函数成员 除了静态字段,还有静态函数成员。 如同静态字段,静态函数成员独立于任何类实例。即使没有类的实例,仍然可以调用静 态方法。静态函数成员不能访问实例成员,但能访问其他静态成员。 例如,下面的类包含一…...

数据类型转换

文章目录 基本数据类型(primitive type)整数类型:浮点类型字符类型boolean类型 类型转换类型转换注意点 基本数据类型(primitive type) 整数类型: ​ byte占1个字节范围:-128-127 ​ short占…...

深入理解 TypeScript 中的 unknown 类型:安全处理未知数据的最佳实践

在 TypeScript 的类型体系中,unknown 是一个极具特色的类型。它与 any 看似相似,却在安全性上有着本质差异。本文将从设计理念、核心特性、使用场景及最佳实践等方面深入剖析 unknown,帮助开发者在处理动态数据时既能保持灵活性,又…...

AI:人形机器人的应用场景以及商业化落地潜力分析

应用场景分析 人形机器人的设计使其能够适应人类环境,执行多样化任务。以下是未来主要的应用场景及其详细分析: 医疗与护理 具体应用: 老年护理:协助老年人穿衣、洗澡、喂食,或提供情感陪伴。康复辅助:帮助…...

JavaScript入门【3】面向对象

1.对象: 1.概述: 在js中除了5中基本类型之外,剩下得都是对象Object类型(引用类型),他们的顶级父类是Object;2.形式: 在js中,对象类型的格式为key-value形式,key表示属性,value表示属性的值3.创建对象的方式: 方式1:通过new关键字创建(不常用) let person new Object();// 添…...

亲测有效!OGG 创建抽取进程报错 OGG-08241,如何解决?

前言 今天在测试 OGG 一个功能的时候,需要重新初始化 oggca,所以重装了一下 OGG。重建完之后重新添加抽取进程报错,一直无法添加成功: 经过一翻分析,找到了解决方案,本文记录一下解决过程。 问题描述 OG…...

【第二篇】 初步解析Spring Boot

简介 SpringBoot是由Pivotal团队提供的全新框架,其设计目的是为了用来简化Spring应用的初始搭建以及开发过程的。本文章将详细介绍SpringBoot为什么能够简化项目的搭建以及普通的Spring程序的开发。文章内容若存在错误或需改进的地方,欢迎大家指正&#…...

JVM 机制

目录 一、什么是 JVM: 二、JVM 的运行流程: 三、JVM 内存区域划分: 1、( 1 ) 程序计数器: 1、( 2 ) 元数据区: 1、( 3 ) 栈: 1、( 4 ) 堆: 四、类加载: 1、什么时候会触…...

Java泛型详解

文章目录 1. 引言1.1 什么是泛型1.2 为什么需要泛型1.3 泛型的优势2. 泛型基础2.1 泛型类多个类型参数2.2 泛型方法2.3 泛型接口2.4 类型参数命名约定3. 类型擦除3.1 什么是类型擦除3.2 类型擦除的影响1. 无法获取泛型类型参数的实际类型2. 无法创建泛型类型的数组3. 无法使用`…...

机器学习,深度学习,神经网络,深度神经网络之间有何区别?

先说个人观点:机器学习>神经网络>深度学习≈深度神经网络。深度学习是基于深度神经网络的,深度神经网络和浅层神经网络都是神经网络,而机器学习是包括神经网络在内的算法。 一、机器学习 先说涵盖范围最广的机器学习。机器学习&#…...

AtomicInteger

AtomicInteger 是 Java 并发包 (java.util.concurrent.atomic) 中的一个原子类,用于在多线程环境下对整数进行原子操作。 核心特性 原子性 提供线程安全的原子操作(如自增、加法、比较并交换等),确保在多线程环境中操作不会被中…...

威布尔比例风险模型(Weibull Proportional Hazards Model, WPHM)详解:原理、应用与实施

威布尔比例风险模型(Weibull Proportional Hazards Model, WPHM)详解:原理、应用与实施 一、核心原理:从威布尔分布到比例风险模型 1. 威布尔分布的数学本质 威布尔分布通过两个关键参数(形状参数 (k) 和尺度参数 (\…...

Dubbo:Docker部署Zookeeper、Dubbo Admin的详细教程和SpringBoot整合Dubbo的实战与演练

🪁🍁 希望本文能给您带来帮助,如果有任何问题,欢迎批评指正!🐅🐾🍁🐥 文章目录 一、背景二、Dubbo概述三、Dubbo与SpringCloud的关系四、Dubbo技术架构五、Docker安装Zoo…...

Windows 上安装下载并配置 Apache Maven

1. 下载 Maven 访问官网: 打开 Apache Maven 下载页面。 选择版本: 下载最新的 Binary zip archive(例如 apache-maven-3.9.9-bin.zip)。 注意:不要下载 -src 版本(那是源码包)。 2. 解压 Mave…...

Unbuntu 命令

Ubuntu 命令速查表​ ​分类​​命令​​功能描述​​示例/常用选项​​​​文件与目录​ls列出目录内容ls -a(显示隐藏文件); ls -lh(详细列表易读大小) cd切换目录cd ~(主目录); cd ..(上级…...

机器学习-人与机器生数据的区分模型测试-数据处理1

附件为训练数据,总体的流程可以作为参考。 导入依赖 import pandas as pd import os import numpy as np from sklearn.model_selection import train_test_split,GridSearchCV from sklearn.ensemble import RandomForestClassifier,VotingClassifier from skle…...

【Linux】进程间通信(一):认识管道

📝前言: 这篇文章我们来讲讲进程间通信——认识管道 🎬个人简介:努力学习ing 📋个人专栏:Linux 🎀CSDN主页 愚润求学 🌄其他专栏:C学习笔记,C语言入门基础&a…...

AMD Vivado™ 设计套件生成加密比特流和加密密钥

概括 重要提示:有关使用AMD Vivado™ Design Suite 2016.4 及更早版本进行 eFUSE 编程的重要更新,请参阅AMD设计咨询 68832 。 本应用说明介绍了使用AMD Vivado™ 设计套件生成加密比特流和加密密钥(高级加密标准伽罗瓦/计数器模式 (AES-GCM)…...

第三十四节:特征检测与描述-SIFT/SURF 特征 (专利算法)

一、特征检测:计算机视觉的基石 在计算机视觉领域中,特征检测与描述是实现图像理解的核心技术。就像人类通过识别物体边缘、角点等特征来认知世界,算法通过检测图像中的关键特征点来实现: 图像匹配与拼接 物体识别与跟踪 三维重建 运动分析 其中,SIFT(Scale-Invariant F…...

【AI】SpringAI 第二弹:基于多模型实现流式输出

目录 一、基于多模型实现流式输出 1.1 什么是流式输出 1.2 多模型引入 1.3 代码实现 1.3.1 流式输出的API介绍 1.3.2 Flux 源码分析 二、了解 Reactor 模型 三、SSE 协议 一、基于多模型实现流式输出 1.1 什么是流式输出 流式输出(Streaming Output)是指数据在生成过程…...

SQL语句执行问题

执行顺序 select [all|distinct] <目标列的表达式1> AS [别名], <目标列的表达式2> AS [别名]... from <表名1或视图名1> [别名],<表名2或视图名2> [别名]... [where <条件表达式>] [group by <列名>] [having <条件表达式>] [ord…...

模型量化AWQ和GPTQ哪种效果好?

环境&#xff1a; AWQ GPTQ 问题描述&#xff1a; 模型量化AWQ和GPTQ哪种效果好? 解决方案&#xff1a; 关于AWQ&#xff08;Adaptive Weight Quantization&#xff09;和GPTQ&#xff08;Generative Pre-trained Transformer Quantization&#xff09;这两种量化方法的…...

Github 2025-05-17 Rust开源项目日报 Top10

根据Github Trendings的统计,今日(2025-05-17统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Rust项目10Dart项目1RustDesk: 用Rust编写的开源远程桌面软件 创建周期:1218 天开发语言:Rust, Dart协议类型:GNU Affero General Public Li…...

借助 CodeBuddy 打造我的图标预览平台 —— IconWiz 开发实录

我正在参加CodeBuddy「首席试玩官」内容创作大赛&#xff0c;本文所使用的 CodeBuddy 免费下载链接&#xff1a;腾讯云代码助手 CodeBuddy - AI 时代的智能编程伙伴 想做一款自己的图标预览平台 这段时间我在做前端 UI 设计时&#xff0c;常常需要到处找图标素材&#xff0c;复…...

KL散度 (Kullback-Leibler Divergence)

KL散度&#xff0c;也称为相对熵 (Relative Entropy)&#xff0c;是信息论中一个核心概念&#xff0c;用于衡量两个概率分布之间的差异。给定两个概率分布 P ( x ) P(x) P(x) 和 Q ( x ) Q(x) Q(x)&#xff08;对于离散随机变量&#xff09;或 p ( x ) p(x) p(x) 和 q ( x …...

【Linux网络】NAT和代理服务

NAT 之前我们讨论了&#xff0c;IPv4协议中&#xff0c;IP地址数量不充足的问题。 原始报文途径路由器WAN口时&#xff0c;对报文中的源IP进行替换的过程&#xff0c;叫做NAT。 NAT技术当前解决IP地址不够用的主要手段&#xff0c;是路由器的一个重要功能&#xff1a; NAT能…...

DeepSeek赋能电商,智能客服机器人破解大型活动人力困境

1. DeepSeek 与电商客服结合的背景 1.1 电商行业客服需求特点 电商行业具有独特的客服需求特点&#xff0c;这些特点决定了智能客服机器人在该行业的必要性和重要性。 高并发性&#xff1a;电商平台的用户数量庞大&#xff0c;尤其是在促销活动期间&#xff0c;用户咨询量会…...

Unity序列化字段、单例模式(Singleton Pattern)

一、序列化字段 在Unity中&#xff0c;序列化字段是一个非常重要的概念&#xff0c;主要用于在Unity编辑器中显示和编辑类的成员变量&#xff0c;或者在运行时将对象的状态保存到文件或网络中。 1.Unity序列化字段的作用 在编辑器中显示和编辑字段&#xff1a;默认情况下&…...

一个可拖拉实现列表排序的WPF开源控件

从零学习构建一个完整的系统 推荐一个可通过拖拉&#xff0c;来实现列表元素的排序的WPF控件。 项目简介 gong-wpf-dragdrop是一个开源的.NET项目&#xff0c;用于在WPF应用程序中实现拖放功能&#xff0c;可以让开发人员快速、简单的实现拖放的操作功能。 可以在同一控件内…...

hadoop.proxyuser.代理用户.授信域 用来干什么的

在Hadoop的core-site.xml文件中存在三个可选配置&#xff0c;如下 <property><name>hadoop.proxyuser.root.hosts</name><value>*</value> </property> <property><name>hadoop.proxyuser.root.groups</name><value…...

python 自动化教程

文章目录 前言整数变量​字符串变量​列表变量​算术操作​比较操作​逻辑操作​if语句​for循环遍历列表​while循环​定义函数​调用函数​导入模块​使用模块中的函数​启动Chrome浏览器​打开网页​定位元素并输入内容​提交表单​关闭浏览器​发送GET请求获取网页内容​使…...

C++学习:六个月从基础到就业——C++11/14:列表初始化

C学习&#xff1a;六个月从基础到就业——C11/14&#xff1a;列表初始化 本文是我C学习之旅系列的第四十三篇技术文章&#xff0c;也是第三阶段"现代C特性"的第五篇&#xff0c;主要介绍C11/14中的列表初始化特性。查看完整系列目录了解更多内容。 引言 在C11之前&a…...

城市静音革命:当垃圾桶遇上缓冲器

缓冲垃圾桶的核心原理是通过机械或液压装置实现垃圾桶盖的缓慢闭合&#xff0c;包含以下技术要点&#xff1a;‌能量吸收机制‌液压式&#xff1a;通过活塞挤压油液产生阻尼力&#xff0c;将动能转化为热能耗散弹簧式&#xff1a;利用弹性变形储存和释放能量&#xff0c;配合摩…...

数据库的规范化设计方法---3种范式

第一范式&#xff08;1NF&#xff09;&#xff1a;确保表中的每个字段都是不可分割的基本数据项。 第二范式&#xff08;2NF&#xff09;&#xff1a;在满足1NF的基础上&#xff0c;确保非主属性完全依赖于主键。 第三范式&#xff08;3NF&#xff09;&#xff1a;在满足2NF的基…...

p024基于Django的网上购物系统的设计与实现

开发语言&#xff1a;Python框架&#xff1a;djangoPython版本&#xff1a;python3.7.7数据库&#xff1a;mysql 5.7数据库工具&#xff1a;Navicat11开发软件&#xff1a;PyCharm 系统展示 管理员登录 管理员功能界面 用户管理 商品类型管理 商品信息管理 系统管理 订单管理…...