南京信工一班IP(2)

第六章,BGP—边界网关协议

自治系统—AS

定义:由一个单一的机构或组织所管理的一系列IP网络及其设备所构成的集合

​ AS的来源:

  • 整个网络规模过大,会导致路由信息收敛速度过慢,设备对相同目标认知不同。
  • AS之间可能是不同的机构或企业,相互之间无法完全信任,使用IGP协议会存在暴露网络信息的风险。

​ AS号,16bit和32bit。---->IANA组织进行分配

  • 取值范围1-65534(0和65535保留)
    • 1-64511---------公有AS号
    • 64512-65534-----------私有AS号

BGP基础

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

运行了BGP协议的路由器,其所维护的路由表,是包含了整个互联网的所有路由信息

BGP特点
  • BGP是基于TCP协议进行数据传输,必须先建立TCP连接,再建立BGP会话连接。
  • 仅具备触发更新,而不再进行周期更新。
  • BGP协议只传递路由信息,不会暴露AS内部的拓扑信息。
  • 通常BGP被称为无类别的路径矢量协议
    • 无类别----传递时携带掩码信息
    • 矢量----方向性:谁传递给我的路由信息,谁就是我的下一跳。
    • 路径矢量----将一个AS看做一个整体,从而计算下一跳。

BGP与IGP协议有本质上的区别,IGP协议主要的任务是将AS内部的未知网段信息计算获取到路由信息,而BGP则主要是将通过IGP协议计算出的路由信息进行搬运,并不会计算路由信息

BGP特征
  • 可控性
    • BGP使用大量的路径属性,取代了IGP协议中的Cost,来对路由信息进行管控。
  • 可靠性
    • 依靠TCP完成可靠性建设。TCP端口179
    • 两台运行BGP协议的设备,需要网络管理员手工配置邻居的IP地址,从而实现数据通讯。
  • AS-BY-AS
    • 在BGP的视角当中,会将一个AS看做为一个整体
    • 因为BGP是将一个AS看做一个整体,但是在该整体内部数据传输时,并非相同,故BGP默认不支持负载均衡功能
BGP的对等体关系

​ BGP因为传输层使用的是TCP协议,所以,只要在TCP协议可以正常建立会话的基础上就可以完成BGP会话的建立工作-------BGP支持非直连建邻。----前提网络可达。----->BGP协议的搭建是建立在IGP协议之上

  • EBGP
    • 位于不同自治系统的BGP路由器之间的BGP对等体关系。
    • EBGP对等体一般使用直连方式建立邻居关系,故而,TTL数值被设定为1
    • 两台路由器之间要建立EBGP对等体关系,需要满足如下条件
      • 两台路由器所属的AS不同—>判别方式:本地设备通过网络管理员的配置知晓对端的AS,从而判断是否处于相同AS。
      • 配置EBGP时,peer命令所指定的邻居IP地址必须为网络可达,保证TCP连接可以正常建立。
  • IBGP
    • 位于相同自治系统的BGP路由器之间的BGP对等体关系。
    • IBGP对等体一般使用非直连建邻,故而TTL数值被设定为255

​ 缺省情况下,BGP协议使用报文出接口作为TCP连接的本地接口IP。但是在某些情况下,我们可以指定BGP对等体之间的会话IP地址;例如,在IBGP对等体关系中,常使用环回接口地址作为通讯的源地址。原因是因为loopback接口非常稳定,而且可以借助AS内的IGP协议实现冗余来保证可靠性。

总结:

  • 无类别路径矢量协议
  • BGP使用单播更新来发送数据,基于TCP实现通讯。
  • 增量更新
  • 具有丰富的路径属性来取代IGP中的度量值参数,从而控制选路。
  • 可以在控制层流量的出入口通过路由策略实现可控性
  • 默认不被用于负载均衡-----会通过各种选路规则选择出一条最优路径信息。
  • BGP支持认证以及路由聚合。
BGP数据包

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Route-refresh-----路由刷新包

作用:用来要求对等体重新发送指定地址族的路由信息

​ 一般为本端修改了相关路由策略之后让对方重新发送update报文,本端执行新的路由策略重新计算BGP路由。----前提提交为双方均支持路由刷新功能。

open包

​ 是TCP建立之后发送的第一个BGP报文,用于建立BGP对等体之间的连接关系。该过程无非就是进行参数协商的过程。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  • AS号
    • 不管接收到的open报文中的AS号是否与本地AS号相同,都不会影响到BGP对等体关系的建立。
    • 但是,如果open报文中的AS号,与本地建邻时由网络管理员编写的AS号不同,则邻居关系无法建立
      • BGP对等体在建立邻居时,会配置对等体所在的AS号,如果对端发送的open报文中所包含的AS号与本地配置不同,才会导致建邻失败。
  • RID
    • 如果两端RID相同,则对等体关系建立失败。
  • 认证字段
    • 如果认证方式或者认证数据不通,则导致建邻失败。
    • 该字段永远以MD5形式,存储在TCP的选项字段中。
  • Hold Time----保活时间
    • BGP在建立对等体关系时两端需要协商该参数,并保持一致。但是该参数并不会影响BGP对等体关系的建立
    • 如果两端的保活时间不同,则按照较小的一端数值来执行。
    • 如果在该时间内未收到对端发送来的报文信息,则认为BGP连接断开。该时间默认为180S,报文的周期发送时间为保活时间的三分之一,即60S。
    • 该参数可以设置为0,此时代表不发送keepalive报文周期保活。
    • 因为BGP会话是基于TCP会话建立,只要TCP判断连接断开,则BGP会话断开,故保活机制对于BGP而言并不那么重要,而设定保活机制原因仅仅是因为TCP判断会话断开所需要的时间过长,为了加快收敛速度,添加保活机制。
  • 路由刷新功能
keepalive包

作用:主要用来进行周期保活,临时充当确认报文

​ keepalive报文发送时间默认为保活时间的三分之一。

keepalive报文的确认实际上是针对open报文中的参数信息进行确认。而非open报文本身。TCP协议进行确认的目的是为了保障数据传输的可靠性,而keepalive报文确认的目的是为了告知对端本地认可你的参数内容。

​ 当收到的open报文中的参数通过验证,则回复keepalive报文;如果未通过验证,则回复notification报文。

Update包-----更新包

作用:用于在对等体之间传递路由信息,可以用于发布和撤销路由

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  • 撤销路由字段长度
  • 撤销路由列表
    • length---->待撤销路由的掩码信息
    • perfix---->传输的IP地址前缀信息。
  • 路径属性字段长度
  • 路径属性列表
  • NLRI---->网络层可达信息
    • 内容与撤销路由列表相同
BGP的状态机

​ OSPF的状态机是在描述整个协议的完整工作过程,而BGP的状态机仅描述的是对等体关系建立过程中的状态变化。-----因为BGP将邻居建立过程以及BGP路由收发过程完全隔离

​ IGP协议在启动后,需要通过network命令激活接口,从而使接口具备处理IGP协议报文的能力。且network命令另一重含义就是发布路由,所以IGP协议无法将邻居建立过程以及路由收发过程隔离。

​ 但是BGP协议在启动后,每一个接口都具备处理BGP报文的能力,不需要其他任何操作,所以可以将邻居建立过程以及路由收发过程进行分割。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  • Idle----空闲状态
    • 等待网络管理员手工指定邻居信息,IP地址以及AS号
    • 当指定邻居信息后,会进入一个检查环节,需要检查手工指定的IP地址在本地路由表中是否可达,只有可达,才可以正常建立TCP会话,如果不可达,则邻居关系建立失败,停留在Idle状态。
  • Connect----连接状态
    • 该状态会开启一个连接重传定时器—32秒
      • 当该计时器时间超时,则本端重新发送一次TCP连接请求报文。在该时间段内没有收到任何一个回复报文。
    • 如果此时本地判断TCP状态进入到establish状态,则认为TCP连接建立成功,进入到opensent状态。
    • 如果此时本地收到的是拒绝报文,则认为TCP连接建立失败,进入到Active状态。
    • 如果BGP在连接重传定时器时间内,没有收到对等体的响应,那么BGP会继续尝试与对等体建立TCP会话,并一直处于该状态
  • Active----尝试状态
    • 第一次TCP会话建立失败,则进入该状态。
    • 如果建立成功,则进入opensent状态;如果建立失败,则停留在active状态。
    • 使用在connect状态开启的连接重传定时器来发送链接建立请求报文,当建立成功后,该计时器才会被关闭。
  • opensent状态
    • 本地发送出open报文,同时也将收到对端发送的open报文,并予以回复。
    • 如果收到的open报文中的参数本端认可,则回复keepalive报文;否则回复notification报文。
    • 如果回复keepalive报文,则进入openconfirm状态;如果回复notification报文,则进入idle状态。
  • openconfirm状态
    • 等待对等体对于本地发出的open报文参数的回复。
    • 如果收到的是keepalive报文,则认为BGP会话建立成功,进入到establish状态。
    • 如果收到的是notification报文,则认为BGP会话建立失败,断开TCP连接,回到idle状态。
  • Establish状态----建立状态
    • BGP会话建立的标志
    • 在该状态可以发送除了open报文以外的所有BGP数据报文。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

BGP的工作过程
  1. 基于IGP、静态、直连路由协议实现IP可达---->前置要求,不是BGP工作过程
  2. 启动BGP协议,并指定邻居关系。
    1. 邻居之间使用单播进行数据传输,通过三次握手,建立TCP会话通道。
    2. 之后所有的数据通讯均基于TCP会话通道来传输,并由TCP协议来提供传输的可靠性机制。
  3. 使用open报文和keepalive报文进行邻居之间参数的协商,以及对等体关系的建立。
    1. open报文用来携带参数信息
    2. keepalive报文用来进行参数确认
    3. 最终生成BGP邻居表
  4. 使用update报文来传输BGP路由信息。该信息中将携带前缀信息、前缀长度以及路径属性。
    1. 设备会将自己发送的以及收到的所有BGP路由信息记录在BGP路由表中。
    2. 设备会对比不同路由表单,将其中最优的路由信息加载到全局路由表中。
  5. 此时路由收敛完成,BGP对等体之间使用keepalive报文进行周期保活(可选)。默认为180S,可以设置为0关闭周期保活性质。
  6. 如果出现出错误,使用notification报文告警;如果出现结构突变,使用update报文进行增量更新。
BGP的防环
EBGP的水平分割机制

​ 专门为了解决EBGP对等体之间的环路问题

​ 通过AS_Path属性进行防环,该属性会记录下该路由信息所经过的所有AS的AS号。当设备收到一条路由信息时,会查看该属性内容,如果其中存在有与本地AS号相同的信息,则不接受该路由信息。

IBGP的水平分割机制

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

BGP规定:当路由器从一个IBGP对等体学习到某条BGP路由时,它将不能再把这条路由信息通告给任何IBGP对等体------IBGP水平分割机制

解决思路:

  1. 将原本的IBGP对等体关系替换为EBGP对等体关系----在同一个AS下--------联邦
  2. 手工设定让某台路由器将从IBGP学习到的路由信息传递给某个IBGP对等体-----路由反射器
  3. 构建全互联的IBGP对等体关系。----暂时常用。
BGP的路由黑洞

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

BGP同步更新规则----为了避免BGP路由黑洞问题

当一台路由器从自己的IBGP对等体学习到一条IBGP路由时,它将不能使用这条路由或者将这条路由通告给其他设备,除非他又从IGP协议中学习到这条路由信息------要求IBGP路由与IGP路由同步

华为与思科默认禁止使用该规则,华为不允许打开该规则,思科允许打开该规则

解决方法:

  1. 让两台运行BGP设备在物理或逻辑上直连
  2. 所有设备运行BGP协议----暂时最常用
  3. 将BGP路由引入到IGP中。
  4. MPLS----多协议标签交换----现网环境使用的解决方案

BGP基础配置

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

使用直连接口IP地址来建立EBGP对等体关系
1、启动BGP协议
[r1]bgp 100   ----启动BGP协议,并且规定其AS号

2、配置设备的RID数值,一般选择设备的loopback接口的IP地址
[r1-bgp]router-id 1.1.1.1

3、配置BGP对等体信息,包含了对等体的IP地址以及对等体所在的AS号
[r1-bgp]peer 12.0.0.2 as-number 200   




使用环回接口建立非直连的IBGP对等体关系
1、启动BGP协议
[r2]bgp 200

2、配置设备的RID数值
[r2-bgp]router-id 2.2.2.2

3、配置BGP对等体信息
[r2-bgp]peer 3.3.3.3 as-number 200

4、修改数据包中的源IP,对等体双方均需要进行修改
[r2-bgp]peer 3.3.3.3 connect-interface LoopBack 0



使用环回接口建立EBGP对等体关系
	一般在EBGP对等体设备间,会使用多条链路进行连接,起到备份的作用,故可以使用环回接口来建立。
	
	问题:此时TCP会话会正常建立,转而建立BGP会话。但是,对设备而言,此时的对端IP检查会发现是通过静态路由或IGP路由才可实现网络可达。那么也就意味着此时需要通过多跳才能到达目的地,而数据包中的TTL=1,发现错误,故两端均会发送notification报文进行告警,并断开BGP和TCP会话。
	
	修改TTL数值:两边均需要修改
		[r4-bgp]peer 5.5.5.5 ebgp-max-hop 2   ---修改TTL=2,如果不加参数,则修改为255

使用display bgp peer 命令查看BGP邻居表

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

PeerVASMsgRcvdMsgSentOutup/downstateprefRcv
对等体IP地址版本号对等体所在AS号已经收到的数据包数量发送的数据包数量出站队列BGP协议的启动时间状态机表示收到的路由信息数量

手工建立邻居关系时,所指定的建邻的IP地址必须和收到的数据包中的源IP地址相同才可以正常建立邻居关系。否则,邻居关系将建立失败。---->修改发送方数据包中的源IP地址。

BGP的路由发布
通过network命令发布路由信息

​ 在BGP中,network命令只能用来发布路由信息。对于BGP而言,只要是路由表中存在的路由信息,都可以通过network命令发布,并且发布的路由必须时本地可用的路由信息

[r1-bgp]network 1.1.1.1 32  ----发布1.1.1.1/32的路由信息

发布路由时,网络号和掩码信息必须与全局路由表中的信息一致

[r1]display bgp routing-table   ----查看BGP路由表

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

NextHop:谁发送的路由信息,下一跳就为谁。如果是本地始发,则该字段为0.0.0.0。

状态码----路由条目最前面的符号

*
	代表可用;设备收到路由条目后,会根据下一跳属性参数来查询本地路由表,查看该地址是否可达,如果可达,则认为这条路由条目可以使用,如果不可则,则这条路由条目不能使用。

>
	代表优选;当设备收集到多条到达相同网段的路由信息时,将依据路径属性进行路由优选,从而选择出最优的一条路由信息,该路由信息可以被路由器加载到全局路由表中,并且向下一跳BGP路由器进行传递。

i
	代表这条路由信息时从IBGP对等体学习到的

如果一条BGP路由信息不可用,则这条路由信息不会参与到路由优选过程。BGP协议在传递BGP路由信息时,只会传递可用且优的路由条目,即*>的状态码。

	该条路由信息传递到R3后,因为AS-BY-AS规则,认为此时是在一个整体中进行数据传递,那么路由信息的内容不会发生改变,所有路径属性相同。
	这就会导致R3认为传递这条路由信息的人是R1,其下一跳属性为12.0.0.1。而R3设备验算失败,这条路由不可用,即没有*,也没有>

解决思路:

[r2-bgp]peer 3.3.3.3 next-hop-local  ----R2在给3.3.3.3传递路由信息时,将下一跳属性修改为本地

BGP在全局路由表中的下一跳是跟着BGP路由表中的下一跳属性一致

总结

  1. 完成所有路由器的IGP配置
  2. 使用直连接口建立EBGP对等体关系
  3. 使用环回接口建立IBGP对等体关系
  4. 使用connect-interface命令修改IBGP的源IP地址
  5. 使用next-hop-local命令修改路由传递的下一跳属性
  6. (可选)如果存在使用环回接口建立EBGP对等体,需要使用ebgp-max-hop命令修改TTL数值
通过重发布的方式发布路由
[r2-bgp]import-route ospf 1  ---将通过OSPF进程1学习到的路由信息重发布到BGP中。

Ogn----起源码属性

	标识这条路由信息的起源。
	
i
	代表这条路由信息时起源于AS内部使用network命令通告的路由信息。
e
	代表这条路由信息起源于EGP协议---现在几乎看不到。
?
	除了以上两种方式获取到的路由信息。

在BGP协议中,不在乎这条路由信息到底属不属于本地的直连,只在乎这条路由信息在本地全局路由表中是否可用。只要可用就可以通过BGP进行通告

作业

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

te ospf 1 —将通过OSPF进程1学习到的路由信息重发布到BGP中。


<font color='red'>**Ogn----起源码属性**</font>

标识这条路由信息的起源。

i
代表这条路由信息时起源于AS内部使用network命令通告的路由信息。
e
代表这条路由信息起源于EGP协议—现在几乎看不到。
?
除了以上两种方式获取到的路由信息。




​	<font color='red'>**在BGP协议中,不在乎这条路由信息到底属不属于本地的直连,只在乎这条路由信息在本地全局路由表中是否可用。只要可用就可以通过BGP进行通告**</font>。



#### 作业

[外链图片转存中...(img-XPC3bq4p-1715521491988)]

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于openEuler22.03 LTS环境的容器项目实训——分布式微服务项目部署

一、说明 本文配置环境为VMware虚拟机&#xff08;2核CPU&#xff0c;4 GB内存&#xff0c;40GB磁盘&#xff09;&#xff0c;OS为openEuler 22.03 LTS &#xff0c;虚拟机要求能联网。 二、安装docker环境 2.1 安装docker相关软件包 [rootnode01 ~]# dnf -y install docker…

python如何单步调试

Python怎么单步调试&#xff1f;下面给大家介绍一下单步调试&#xff1a; 方法一&#xff1a;执行 python -m pdb myscript.py (Pdb) 会自己主动停在第一行。等待调试&#xff0c;这时你能够看看帮助。 方法二&#xff1a;在所调试程序的开头中&#xff1a;import pdb 并在你…

R语言数据分析案例-股票可视化分析

一、数据整合的对象 # Loading necessary libraries library(readxl) library(dplyr)# Reading the data from Excel files data_1 <- read_excel("云南白药.xlsx") data_2 <- read_excel("冰山.xlsx")二、数据整合的代码 # Reading the data from…

Android的NDK开发中Cmake报缺少对应的x86的so文件

需要实现一个串口操作的命令。 供应商提供了2个so文件。 分别是 armeabi-v7a 和 arm64-v8a 添加到对应的cpp下。 在CMakeLists.txt里添加so文件 # 添加预编译的库 add_library(libxxx SHARED IMPORTED)# 设置库的路径 set_target_properties(libxxx PROPERTIES IMPORTED_…

重写muduo之TcpConnection

目录 1、 TcpConnection.h 2、 TcpConnection.cc 1、 TcpConnection.h TcpConnection底层绑定&#xff08;管理&#xff09;了一个Channel&#xff0c;Channel有事件被Poller通知后&#xff0c;会调用相应的回调&#xff0c;这些回调也是TcpConnection中包含的方法&#xff0c…

牛客Java面试题【面试】

牛客Java面试题【面试】 前言推荐牛客Java面试题【面试】第2章 Java笔面试高频考点&解题技巧1. Java基础[2.1 一、java-基础-1](https://www.nowcoder.com/study/live/689/2/1)1.1 为什么Java代码可以实现一次编写、到处运行&#xff1f;1.2 一个Java文件里可以有多个类吗&…

我觉得这个域名证书监控平台又吊打Uptimekuma了

前面我们讲过uptimekuma 如何监控域名证书&#xff0c;很多人都喜欢 uptimekuma 那高端暗黑的色系上&#xff0c;然而最实用就是它的域名证书监控和历史可用性图表的展示上了&#xff0c;如下如&#xff1a; 但是这个东西吧&#xff0c;好看吗&#xff1f;好看&#xff0c;有用…

关键点检测——面部情绪数据集

引言 亲爱的读者们&#xff0c;您是否在寻找某个特定的数据集&#xff0c;用于研究或项目实践&#xff1f;欢迎您在评论区留言&#xff0c;或者通过公众号私信告诉我&#xff0c;您想要的数据集的类型主题。小编会竭尽全力为您寻找&#xff0c;并在找到后第一时间与您分享。 …

开源web在线数据库设计软件 —— 筑梦之路

GitHub - drawdb-io/drawdb: Free, simple, and intuitive online database design tool and SQL generator. 简介 DrawDB是一款多功能且用户友好的在线工具&#xff0c;允许用户轻松设计数据库实体关系。通过简单直观的界面&#xff0c;DrawDB使用户能够创建图表、导出SQL脚本…

【机器学习300问】86、简述超参数优化的步骤?如何寻找最优的超参数组合?

本文想讲述清楚怎么样才能选出最优的超参数组合。关于什么是超参数&#xff1f;什么是超参数组合&#xff1f;本文不赘述&#xff0c;在之前我写的文章中有详细介绍哦&#xff01; 【机器学习300问】22、什么是超参数优化&#xff1f;常见超参数优化方法有哪些&#xff1f;htt…

AcWing-168生日蛋糕-搜索/剪枝

题目 思路 表面积和体积公式&#xff1a;以下分析参考自&#xff1a;AcWing 168. 生日蛋糕【图解推导】 - AcWing&#xff1b;AcWing 168. 关于四个剪枝的最清楚解释和再次优化 - AcWing 代码 #include<iostream> #include<cmath> using namespace std;const in…

http协议 tomcat如何访问资源 servlet理论介绍

tomcat介绍 bin是启动命令&#xff1b; conf是配置&#xff0c;可以修改端口号&#xff1b; lib是依赖的jar包&#xff1b; logs是日志 webapps是重点&#xff0c;在这里新建我们自己的javaWeb项目 tomcat如何访问资源 tomcat通过统一资源定位符&#xff08;URL&#xff09;来…

数据分析——业务数据描述

业务数据描述 前言一、数据收集数据信息来源企业内部数据源市场调查数据源公共数据源和第三方数据源 二、公司内部数据客户资料数据销售明细数据营销活动数据 三、市场调查数据观察法提问法实验法 四、公共数据五、第三方数据六、数据预处理七、数据清洗丢弃部分数据补全缺失的…

安卓开发--新建工程,新建虚拟手机,按键事件响应(含:Android中使用switch-case遇到case R.id.xxx报错)

安卓开发--新建工程&#xff0c;新建虚拟手机&#xff0c;按键事件响应 1.前言2.运行一个工程2.1布局一个Button2.2 button一般点击事件2.2 button属性点击事件2.2 button推荐点击事件&#xff08;含&#xff1a;Android中使用switch-case遇到case R.id.xxx报错&#xff09; 本…

PD-L1表达与免疫逃逸和免疫响应

免疫检查点信号转导和癌症免疫治疗&#xff08;文献&#xff09;-CSDN博客https://blog.csdn.net/hx2024/article/details/137470621?ops_request_misc%257B%2522request%255Fid%2522%253A%2522171551954416800184136566%2522%252C%2522scm%2522%253A%252220140713.130102334.…

ollama离线安装,在CPU运行它所支持的哪些量化的模型

在线安装的链接: Download Ollama on LinuxGet up and running with large language models.https://ollama.com/download/linux 离线安装教程: 下载install.sh: https://ollama.ai/install.sh

logback日志持久化

1、问题描述 使用logback持久化记录日志。 2、我的代码 logback是Springboot框架里自带的&#xff0c;所以只要引入“spring-boot-starter”就行了。无需额外引入logback依赖。 pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns&…

docker(五):DockerFile

文章目录 DockerFile1、Dockerfile构建过程解析2、DockerFile常用保留字命令FROMMAINTAINERRUNEXPOSEWORKDIRUSERENVADDCOPYVOLUMECMDENTRYPOINT总结 3、案例 DockerFile 1、Dockerfile构建过程解析 官网文档&#xff1a;https://docs.docker.com/reference/dockerfile/ Dock…

【JavaScript】DOM 事件的传播机制

事件与事件流 事件&#xff0c;这里指和网页进行互动。比如点击链接&#xff0c;移动鼠标等网页被触发&#xff0c;做出响应&#xff0c;形成交互。 js 采用事件监听器来监听事件是否发生。 事件流 事件流描述了从页面中接收事件的顺序。当一个事件发生在某个元素上时&…

匿名管道及其应用

目录 一、什么是匿名管道&#xff1f; 三、创建与使用匿名管道 三、匿名管道的特点 匿名管道的四种情况 匿名管道的五种特性 四、匿名管道的实践应用---进程池 在编程的世界中&#xff0c;匿名管道是一种非常重要的通信机制。今天&#xff0c;让我们一起来深入探讨一下匿…