BGP路由反射器

news2024/12/23 10:11:13

原理概述
缺省情况下,路由器从它的一个 IBGP对等体那里接收到的路由条目不会被该路由器再传递给其他IBGP对等体,这个原则称为BGP水平分割原则,该原则的根本作用是防止 AS内部的BGP路由环路。因此,在AS内部,一般需要每台路由器都运行 BGP协议并建立全互联的IBGP对等体关系,这样才能避免BGP路由黑洞等问题。对于有n个BGP路由器的AS来说,全互联的IBGP对等体关系将有n×(n-1)÷2个。对于大型AS来说,数量众多的IBGP对等体关系将导致配置和维护的工作量都非常大,且人为出错的可能性也随之增加。
解决上述问题的方法之一就是使用BGP路由反射器。BGP路由反射器的使用,可以在很大程度上减少大型AS中 IBGP对等体关系的数量并简化相应的配置和维护工作。BGP路由反射器是AS内部 IBGP网络环境中的一种特殊角色,其他的角色还有反射器的客户端和非客户端。一个反射器和它所有的客户端一起被统称为一个Cluster;客户端与它的反射器建立的是IBGP对等体关系;客户端之间无需建立IBGP对等体关系;非客户端和反射器建立的是IBGP对等体关系;非客户端之间需要建立全互连的IBGP对等体关系;非客户端和客户端之间无需建立IBGP对等体关系;一个AS内部可以有多个Cluster;一个Cluster中可以有多台反射器。另外,EBGP对等体之间是不存在 BGP路由反射器的概念的。
BGP路由反射器在反射路由的时候遵循的原则是:从一个非客户端那里接收到的路由,反射器会将它只传递给所有的客户端;从一个客户端那里接收到的路由,反射器会将它传递给所有其他的客户端以及所有的非客户端;从EBGP对等体那里接收到的路由,反射器会将它传递给所有的客户端和非客户端。


实验目的
理解 BGP路由反射器的应用场景·理解 BGP路由反射器的工作原理

掌握BGP路由反射器的基本配置方法实验内容

本实验网络包含了两个AS,两个Cluster。R1、R2、R3属于Cluster 1,R4、R5、R6属于Cluster 2,R7不属于任何Cluster。在AS 100内部,所有路由器都运行OSPF协议作为IGP,并将各自的Loopback 0接口宣告进OSPF进程中,使得各路由器可以使用Loopback 0接口来建立全互联的IBGP对等体关系。然后,为了减少配置工作量,决定使用路由反射器,要求是:在 Cluster 1中,R1为路由反射器,R2和R3为其客户端;在Cluster 2中,R4为路由反射器,R5、R6为其客户端;R7为非客户端;R1与R8为 EBGP对等体关系。

 

1、基础配置
R1:
sys
sysname R1
int loop 0
ip add 10.0.1.1 32
int g0/0/1
ip add 10.0.12.1 24
int g0/0/2
ip add 10.0.13.1 24
int g0/0/3
ip add 10.0.18.1 24
int g0/0/0
ip add 10.0.14.1 24
q
bgp 100
router-id 10.0.1.1
peer 10.0.2.2 as-number 100
peer 10.0.2.2 connect-interface LoopBack 0
peer 10.0.2.2 next-hop-local
peer 10.0.3.3 as-number 100
peer 10.0.3.3 connect-interface LoopBack 0
peer 10.0.3.3 next-hop-local
peer 10.0.4.4 as-number 100
peer 10.0.4.4 connect-interface LoopBack 0
peer 10.0.4.4 next-hop-local
peer 10.0.5.5 as-number 100
peer 10.0.5.5 connect-interface LoopBack 0
peer 10.0.5.5 next-hop-local
peer 10.0.6.6 as-number 100
peer 10.0.6.6 connect-interface LoopBack 0
peer 10.0.6.6 next-hop-local
peer 10.0.7.7 as-number 100
peer 10.0.7.7 connect-interface LoopBack 0
peer 10.0.7.7 next-hop-local
network  10.0.1.1 32
 peer 10.0.18.8 as-number 200
ospf 1 router-id 10.0.1.1
 area 0.0.0.0
  network 10.0.1.1 0.0.0.0
  network 10.0.12.0 0.0.0.255
  network 10.0.13.0 0.0.0.255
  network 10.0.14.0 0.0.0.255

R2:
sys
sysname R2
int loop 0
ip add 10.0.2.2 32
int loop 1
ip add 10.0.22.22 32
int g0/0/1
ip add 10.0.12.2 24
q
bgp 100
router-id 10.0.2.2
peer 10.0.1.1 as-number 100
peer 10.0.1.1 connect-interface LoopBack 0
peer 10.0.3.3 as-number 100
peer 10.0.3.3 connect-interface LoopBack 0
peer 10.0.4.4 as-number 100
peer 10.0.4.4 connect-interface LoopBack 0
peer 10.0.5.5 as-number 100
peer 10.0.5.5 connect-interface LoopBack 0
peer 10.0.6.6 as-number 100
peer 10.0.6.6 connect-interface LoopBack 0
peer 10.0.7.7 as-number 100
peer 10.0.7.7 connect-interface LoopBack 0
network 10.0.2.2  32
ospf 1 router-id 10.0.2.2
 area 0.0.0.0
  network 10.0.2.2 0.0.0.0
  network 10.0.12.0 0.0.0.255

R3:
sys
sysname R3
int loop 0
ip add 10.0.3.3 32
int g0/0/2
ip add 10.0.13.3 24
q
bgp 100
router-id 10.0.3.3
peer 10.0.1.1 as-number 100
peer 10.0.1.1 connect-interface LoopBack 0
peer 10.0.2.2 as-number 100
peer 10.0.2.2 connect-interface LoopBack 0
peer 10.0.4.4 as-number 100
peer 10.0.4.4 connect-interface LoopBack 0
peer 10.0.5.5 as-number 100
peer 10.0.5.5 connect-interface LoopBack 0
peer 10.0.6.6 as-number 100
peer 10.0.6.6 connect-interface LoopBack 0
peer 10.0.7.7 as-number 100
peer 10.0.7.7 connect-interface LoopBack 0
network 10.0.3.3 32
ospf 1 router-id 10.0.3.3
 area 0.0.0.0
  network 10.0.3.3 0.0.0.0
  network 10.0.13.0 0.0.0.255

R4:
sys
sysname R4
int loop 0
ip add 10.0.4.4 32
int g0/0/0
ip add 10.0.14.4 24
int g0/0/1
ip add 10.0.47.4 24
int g0/0/2
ip add 10.0.46.4 24
int g0/0/3
ip add 10.0.45.4 24
q
bgp 100
router-id 10.0.4.4
peer 10.0.1.1 as-number 100
peer 10.0.1.1 connect-interface LoopBack 0
peer 10.0.2.2 as-number 100
peer 10.0.2.2 connect-interface LoopBack 0
peer 10.0.3.3 as-number 100
peer 10.0.3.3 connect-interface LoopBack 0
peer 10.0.5.5 as-number 100
peer 10.0.5.5 connect-interface LoopBack 0
peer 10.0.6.6 as-number 100
peer 10.0.6.6 connect-interface LoopBack 0
peer 10.0.7.7 as-number 100
peer 10.0.7.7 connect-interface LoopBack 0
network 10.0.4.4  32
ospf 1 router-id 10.0.4.4
 area 0.0.0.0
  network 10.0.4.4 0.0.0.0
  network 10.0.14.0 0.0.0.255
  network 10.0.45.0 0.0.0.255
  network 10.0.46.0 0.0.0.255
  network 10.0.47.0 0.0.0.255

R5:
sys
sysname R5
int loop 0
ip add 10.0.5.5 32
int g0/0/1
ip add 10.0.45.5 24
q
bgp 100
router-id 10.0.5.5
peer 10.0.1.1 as-number 100
peer 10.0.1.1 connect-interface LoopBack 0
peer 10.0.2.2 as-number 100
peer 10.0.2.2 connect-interface LoopBack 0
peer 10.0.3.3 as-number 100
peer 10.0.3.3 connect-interface LoopBack 0
peer 10.0.4.4 as-number 100
peer 10.0.4.4 connect-interface LoopBack 0
peer 10.0.6.6 as-number 100
peer 10.0.6.6 connect-interface LoopBack 0
peer 10.0.7.7 as-number 100
peer 10.0.7.7 connect-interface LoopBack 0
network 10.0.5.5  32
ospf 1 router-id 10.0.5.5
 area 0.0.0.0
  network 10.0.5.5 0.0.0.0
  network 10.0.45.0 0.0.0.255

R6:
sys
sysname R6
int loop 0
ip add 10.0.6.6 32
int g0/0/2
ip add 10.0.46.6 24
q

bgp 100
router-id 10.0.6.6
peer 10.0.1.1 as-number 100
peer 10.0.1.1 connect-interface LoopBack 0
peer 10.0.2.2 as-number 100
peer 10.0.2.2 connect-interface LoopBack 0
peer 10.0.3.3 as-number 100
peer 10.0.3.3 connect-interface LoopBack 0
peer 10.0.5.5 as-number 100
peer 10.0.5.5 connect-interface LoopBack 0
peer 10.0.4.4 as-number 100
peer 10.0.4.4 connect-interface LoopBack 0
peer 10.0.7.7 as-number 100
peer 10.0.7.7 connect-interface LoopBack 0
network 10.0.6.6  32
ospf 1 router-id 10.0.6.6
 area 0.0.0.0
  network 10.0.6.6 0.0.0.0
  network 10.0.46.0 0.0.0.255

R7:
sys
sysname R7
int loop 0
ip add 10.0.7.7 32
int g0/0/0
ip add 10.0.47.7 24
q
bgp 100
router-id 10.0.7.7
peer 10.0.1.1 as-number 100
peer 10.0.1.1 connect-interface LoopBack 0
peer 10.0.2.2 as-number 100
peer 10.0.2.2 connect-interface LoopBack 0
peer 10.0.3.3 as-number 100
peer 10.0.3.3 connect-interface LoopBack 0
peer  10.0.4.4 as-number 100
peer 10.0.4.4 connect-interface LoopBack 0
peer 10.0.5.5 as-number 100
peer 10.0.5.5 connect-interface LoopBack 0
peer 10.0.6.6 as-number 100
peer 10.0.6.6 connect-interface LoopBack 0
network 10.0.7.7 32
ospf 1 router-id 10.0.7.7
 area 0.0.0.0
  network 10.0.7.7 0.0.0.0
  network 10.0.47.0 0.0.0.255

R8:
sys
sysname R8
int loop 0
ip add 10.0.8.8 32
int g0/0/0
ip add 10.0.18.8 24
q
bgp 200
 router-id 10.0.8.8
 peer 10.0.18.1 as-number 100
 #
 ipv4-family unicast
  undo synchronization
  network 10.0.8.8 255.255.255.255
  peer 10.0.18.1 enable


 可以看到,AS 100内部的路由器都已经接收到了关于10.0.8.8/32的路由信息。R8只接收到了关于10.0.1.1/32的路由信息,而没有接收到关于AS 100内部其他路由器的Loopback 0 的路由信息,这是因为AS 100内部OSPF路由协议的优先级要高于BGP路由协议的优先级,于是R1就不会将除了本地起源(即下一跳为0.0.0.0)的路由之外的其他路由信息传递给R8。显然,这会导致R8与AS 100内部的路由器的互通问题。为了使R8能够与AS 100内部的所有路由器的Loopback 0接口所在的网络进行通信,可以在R8上配置一条聚合的静态路由,下一跳为10.0.18.1。
[R8]ip route-static 10.0.0.0 20 10.0.18.1
配置完成后,网络通信正常,但是整体配置工作量较大。

 对于大型网络来讲,使用路由反射器可以大大减少IBGP对等体关系的数量。路由反射器的使用,会明显减少配置工作量,人为出错的可能性也会大大降低。
下面将进行关于路由反射器的实验,首先清除之前各路由器上的BGP进程。在此需要提醒读者的是,在实际场景中如果这样操作,将会导致网络瘫痪一段时间。
以R1为例,清除原来的BGP进程。

undo bgp 100

R2和R3是路由反射器R1的客户端,它们只需和R1配置成IBGP对等体关系即可,R2和R3之间无需配置为IBGP对等体关系。另外,将R2的Loopback 1 (10.0.22.22/32)接口通告进 BGP进程。

配置R1为R2和R3的路由反射器,配置Cluster-ID为1,配置Rl与R4之间的IBGP对等体关系,配置RI与R8之间的EBGP对等体关系。

 

r1:

bgp 100
 router-id 10.0.1.1
 peer 10.0.4.4 as-number 100
 peer 10.0.4.4 connect-interface LoopBack0
 peer 10.0.18.8 as-number 200
 group in1 internal
 peer 10.0.2.2 as-number 100
 peer 10.0.2.2 group in1
 peer 10.0.3.3 as-number 100
 peer 10.0.3.3 group in1
 #
 ipv4-family unicast
  undo synchronization
  reflector cluster-id 1
  peer 10.0.4.4 enable
  peer 10.0.4.4 next-hop-local
  peer 10.0.18.8 enable
  peer in1 enable
  peer in1 reflect-client
  peer in1 next-hop-local
  peer 10.0.2.2 enable
  peer 10.0.2.2 group in1
  peer 10.0.3.3 enable
  peer 10.0.3.3 group in1



r2:

bgp 100
 router-id 10.0.2.2
 peer 10.0.1.1 as-number 100
 peer 10.0.1.1 connect-interface LoopBack0
 #
 ipv4-family unicast
  undo synchronization
  network 10.0.0.0
  network 10.0.2.2 255.255.255.255
  network 10.0.22.22 255.255.255.255
  peer 10.0.1.1 enable



r3:

bgp 100
 router-id 10.0.3.3
 peer 10.0.1.1 as-number 100
 peer 10.0.1.1 connect-interface LoopBack0
 #
 ipv4-family unicast
  undo synchronization
  network 10.0.3.3 255.255.255.255
  peer 10.0.1.1 enable

r8:
bgp 200
 router-id 10.0.8.8
 peer 10.0.18.1 as-number 100
 #
 ipv4-family unicast
  undo synchronization
  network 10.0.8.8 255.255.255.255
  peer 10.0.18.1 enable

 R5和R6是路由反射器R4的客户端,它们只需和R4配置成IBGP对等体关系即可,R5和R6之间无需配置为IBGP对等体关系。

配置R4为R5 和R6的路由反射器,配置Cluster-ID为2,配置R4与R1之间的IBGP对等体关系,配置R4与R7之间的IBGP对等体关系。

r4:
bgp 100
 router-id 10.0.4.4
 peer 10.0.1.1 as-number 100
 peer 10.0.1.1 connect-interface LoopBack0
 peer 10.0.7.7 as-number 100
 peer 10.0.7.7 connect-interface LoopBack0
 group in2 internal
 peer 10.0.5.5 as-number 100
 peer 10.0.5.5 group in2
 peer 10.0.6.6 as-number 100
 peer 10.0.6.6 group in2
 #
 ipv4-family unicast
  undo synchronization
  reflector cluster-id 2
  peer 10.0.1.1 enable
  peer 10.0.7.7 enable
  peer in2 enable
  peer in2 reflect-client
  peer 10.0.5.5 enable
  peer 10.0.5.5 group in2
  peer 10.0.6.6 enable
  peer 10.0.6.6 group in2


r5:
bgp 100
 router-id 10.0.5.5
 peer 10.0.4.4 as-number 100
 peer 10.0.4.4 connect-interface LoopBack0
 #
 ipv4-family unicast
  undo synchronization
  network 10.0.5.5 255.255.255.255
  peer 10.0.4.4 enable

r6:
bgp 100
 router-id 10.0.6.6
 peer 10.0.4.4 as-number 100
 peer 10.0.4.4 connect-interface LoopBack0
 #
 ipv4-family unicast
  undo synchronization
  network 10.0.6.6 255.255.255.255
  peer 10.0.4.4 enable

r7:
bgp 100
 router-id 10.0.7.7
 peer 10.0.4.4 as-number 100
 peer 10.0.4.4 connect-interface LoopBack0
 #
 ipv4-family unicast
  undo synchronization
  network 10.0.7.7 255.255.255.255
  peer 10.0.4.4 enable



观察发现,R3、R4、R8的BGP路由表中都存在关于10.0.22.22/32的路由信息。由此可见,R1将10.0.22.22/32这条路由传递给了R3和R4,不再受BGP水平分割原则的限制,同时,这条路由也被R1传递给了EBGP对等体R8。实验表明,BGP路由反射器从它的一个客户端接收到路由之后,会将该路由反射给它的其他客户端、非客户端,以及EBGP对等体。


可以看到,R4将10.0.22.22/32这条路由传递给了R5和R6,但是没有传递给R7,说明路由反射器会把从非客户端收到的路由传递给客户端,但不会传递给其他非客户端。由于路由反射器认为非客户端之间应该是存在IBGP对等体关系的,所以路由反射器和非客户端之间依然遵循水平分割原则。
路由反射器R4认为R1与R7之间应该存在IBGP对等体关系,所以没有将从非客户端R1接收到的BGP路由传递给R7。

但实际上,R1与R7之间并没有被配置为IBGP对等体关系,这就导致了R7的 BGP路由表中并没有关于10.0.22.22/32的路由。解决此问题的办法就是将R1和R7配置为IBGP对等体关系。

r1:
bgp 100
 peer 10.0.7.7 as-number 100
 peer 10.0.7.7 connect-interface LoopBack0
  peer 10.0.7.7 next-hop-local
r7:
bgp 100
 peer 10.0.1.1as-number 100
 peer 10.0.1.1 connect-interface LoopBack0
  peer 10.0.1.1 next-hop-local

 可以看到,R7上的10.0.22.22/32这条路由信息是从R1 (10.0.1.1)传递过来的,而不是从R4传递过来的,这说明路由反射器和非客户端之间是遵循水平分割原则的。

可以看到,R1 从 EBGP对等体R8接收到关于10.0.8.8/32的路由之后,将这条路由传递给了R2、R3、R4,说明路由反射器会把从EBGP对等体接收到的路由传递给它的客户端和非客户端。

在前面的配置中,R1上使用了命令peer in_1 reflect-client。这条命令的含义是指定BGP对等体组in_1中的路由器(即R2和R3)为R1的客户端,从相反的角度来说,也就是R1被指定成为BGP对等体组in_1中的路由器(即R2和R3)的路由反射器。
在R1、R3、R4上查看10.0.22.22/32这条路由的具体属性。

 

 

可以观察到,在R1、R3、R4上关于10.0.22.22/32的路由的属性是有所区别的。在R3和R4上关于此路由多了Originator和 Cluster List这两个属性。Originator 属性的作用是防止路由在反射器和客户端/非客户端之间出现环路。路由第一次被反射的时候,反射器会将Originator 属性加入这条路由中,用 BGP Router-ID表示,用来标识这条路由的起源路由器。如果路由中已经存在Originator属性,则反射器不会创建新的Originator。当其他BGP对等体接收到这条路由时,将对收到的Originator和本地的BGP Router-ID进行比较,如果两者相同,BGP对等体将会忽略掉这条路由,不做处理。Originator属性可以传递给其他的Cluster,路由在AS内传递时该属性不会丢失。
Cluster List属性可用来防止 Cluster间的路由环路。当路由反射器在客户端之间或客户端与非客户端之间反射路由时,会将自己的Cluster-ID添加到Cluster List 中。路由反射器接收到BGP路由后会去检查其中的Cluster List,如果发现自己的Cluster-ID位于Cluster List 中,则表明出现了路由环路,因而会忽略该路由。AS内的每台路由反射器都采用了一个唯一的4个8位组来标识Cluster-ID,如果 Cluster中包含了多台路由反射器,则必须以手工的方式为每台路由反射器配置Cluster-ID。

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

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

相关文章

深度解读大语言模型中的Transformer架构

一、Transformer的诞生背景 传统的循环神经网络(RNN)和长短期记忆网络(LSTM)在处理自然语言时存在诸多局限性。RNN 由于其递归的结构,在处理长序列时容易出现梯度消失和梯度爆炸的问题。这导致模型难以捕捉长距离的依…

《知识点扫盲 · Redis 序列化器》

📢 大家好,我是 【战神刘玉栋】,有10多年的研发经验,致力于前后端技术栈的知识沉淀和传播。 💗 🌻 CSDN入驻不久,希望大家多多支持,后续会继续提升文章质量,绝不滥竽充数…

【2024最新版】Stable diffusion汉化版安装教程(附SD安装包),一键激活,永久免费!

目前广泛使用的Stable Diffusion Web UI简称(SDWebUI)是发布在开源平台Github上的一个Python项目,与通常的软件安装方法不同,这个项目并不是下载并安装即可使用的应用程序,而是需要准备执行环境,编译源码. 如果你是一个新手不会安装,现在可以直接使用一键启动包. 例如:国内的…

【Linux】信号量与生产消费模型

我们已经实现过锁条件变量的PC模型, 但是BlockingQueue并不能进行生产与消费的并发,原因在于我们使用的是STL提供的队列,进行了一个适配,底层的实现可能会修改到成员变量造成未知的错误。 而这次我们选择使用环形队列&#xff08…

python实现盲反卷积算法

python实现盲反卷积算法 盲反卷积算法算法原理算法实现Python实现详细解释优缺点应用领域盲反卷积算法 盲反卷积算法是一种图像复原技术,用于在没有先验知识或仅有有限信息的情况下,估计模糊图像的原始清晰图像和点扩散函数(PSF)。盲反卷积在摄影、医学成像、天文学等领域…

监控Windows文件夹下面的文件(C#和C++实现)

最近在做虚拟打印机时,需要实时监控打印文件的到达,并移动文件到另外的位置。一开始我使用了线程,在线程里去检测新文件的到达。实际上Windows提供了一个文件监控接口函数ReadDIrectoryChangesW。这个函数可以对所有文件操作进行监控。 ReadD…

当 Nginx 出现请求的乱序到达,如何处理?

🍅关注博主🎗️ 带你畅游技术世界,不错过每一次成长机会! 文章目录 当 Nginx 出现请求的乱序到达,如何处理?一、理解请求乱序到达的现象二、请求乱序到达可能带来的影响三、解决方案(一&#xf…

安卓嘀嗒清单v7.2.2.2高级版

软件介绍 TickTick是一款轻便高效的任务管理、日程管理(GTD)和时间管理应用,配备强大的记事和提醒功能。你可以在手机、平板、网页等多达11个平台上使用滴答清单记录大小事务、制定工作计划、整理购物清单、设置生日提醒,甚至安排…

CSS技巧专栏:一日一例 12 -纯CSS实现边框上下交错的按钮特效

CSS技巧专栏:一日一例 12 -纯CSS实现边框上下交错的按钮特效 大家好,今天我们来做一个上下边框交错闪动的按钮特效。 本例图片 案例分析 虽说这按钮给人的感觉就是上下两个边框交错变换了位置,但我们都知道border是没法移动的。那么这个按…

土耳其云手机提升TikTok电商效率

在数字化飞速发展的今天,TikTok不仅是一个社交平台,更是一个巨大的电商市场。随着TikTok电商功能在全球范围内的扩展,土耳其的商家和内容创作者正面临着前所未有的机遇。本文将详细介绍土耳其云手机怎样帮助商家抓住机遇,实现业务…

单片机学习历程

学习单片机的过程可以分为几个主要阶段,每个阶段都涉及不同的学习内容和技能提升。下面我将以一个典型的学习历程为例进行介绍: 初学阶段 1.入门理论学习: 开始接触单片机的基础知识,学习其工作原理、体系结构和常见的芯片类型…

怎样在 Nginx 中配置基于请求客户端 Wi-Fi 连接状态的访问控制?

🍅关注博主🎗️ 带你畅游技术世界,不错过每一次成长机会! 文章目录 怎样在 Nginx 中配置基于请求客户端 Wi-Fi 连接状态的访问控制一、理解请求客户端 Wi-Fi 连接状态二、Nginx 中的访问控制基础知识三、获取客户端 Wi-Fi 连接状态…

Qt 使用视口和窗口作图

物理坐标系与逻辑坐标系 绘图设备的物理坐标系是基本的坐标系,通过 QPainter 的平移、旋转等坐标变换可以得到更容 易操作的逻辑坐标系。 物理坐标系也称为视口(viewport)坐标系,逻辑坐标系也称为窗口( window&…

《操作系统》(学习笔记)(王道)

一、计算机系统概述 1.1 操作系统的基本概念 1.1.1 操作系统的概念 操作系统(OperatinggSystem,OS)是指控制和管理整个计算机系统的硬件与软件资源,合理地组织、调度计算机的工作与资源的分配,进而为用户和其他软件…

[STM32]HAL库实现自己的BootLoader-BootLoader与OTA-STM32CUBEMX

目录 一、前言 二、BootLoader 三、BootLoader的实现 四、APP程序 五、效果展示 六、拓展 一、前言 听到BootLoader大家一定很熟悉,在很多常见的系统中都会存在BootLoader。本文将介绍BootLoader的含义和简易实现,建议大家学习前掌握些原理基础。 …

简单谈谈 手机版买卖现货白银的好和不好

随着科技的发展,现在买卖现货白银可以在移动设备上进行,那意味着投资者通过手机、平板电脑等都可以进行交易,这进一步解放了投资者交易的场所限制,让投资者有了更大的自由度。有条件的朋友,除了通过个人电脑做现货白银…

Java Selenium WebDriver:代理设置与图像捕获

在网络爬虫和自动化测试领域,Selenium WebDriver 是一个非常流行的工具,它允许开发者模拟用户在浏览器中的操作。然而,出于安全或隐私的考虑,有时我们需要通过代理服务器来发送请求。本文将介绍如何在Java环境中使用Selenium WebD…

系统架构设计师②:操作系统

系统架构设计师②:操作系统 操作系统作用 ①管理系统的硬件、软件、数据资源 ②控制程序运行 ③人机之间的接口 ④应用软件与硬件之间的接口 进程管理 进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。它由程序块、…

Linux系统上安装zookeeper

百度网盘 通过网盘分享的文件:zookeeper_linux 链接: https://pan.baidu.com/s/1_hybXZVwTRkotz0VbwbSMw?pwd8888 提取码: 8888 1.将压缩包拖进虚拟机 2.解压压缩包 cd /ruanjian/zookeeper/ tar -zxvf apache-ZooKeeper-3.7.2-bin.tar.gz3. 进入到conf目录 cd …

【网络】网络编程套接字——UDP、TCP、UDP接口使用、TCP接口使用、UDP程序实例、TCP程序实例

文章目录 Linux网络1. UDP1.1 UDP接口使用1.1 UDP程序实例 2. TCP2.1 TCP接口使用2.2 TCP程序实例 Linux网络 1. UDP 在使用我们的UDP和TCP函数的时候,我们需要理解一些预备的知识: 源 IP 地址和目的 IP 地址: 在网络通信中,IP …