BGP基础

2023-11-13

简述
在EGP协议中,引入了AS(Autonomous System,自治系统)的概念。AS是指由同一个技术管理机构管理,使用统一选路策略的一些路由器的集合。AS的内部使用IGP来计算和发现路由,同一个AS内部的路由器之间是相互信任的,因此IGP的路由计算和信息泛洪完全处于开放状态,人工干预很少。不同AS之间的连接需求推动了外部网关协议的发展,BGP作为一种外部网关协议,用于在AS之间进行路由控制和优选。

BGP的前身EGP设计得非常简单,只能在AS之间简单地传递路由信息,不会对路由进行任何优选,也没有考虑如何在AS之间避免路由环路等问题,因而EBP最终被BGP取代。

相比于EGP,BGP更具有路由协议的特征,如下:邻居的发现与邻居关系的建立;路由的获取,优选和通告;提供路由环路避免机制,并能够高效传递路由,维护大量的路由信息;在不完全信任的AS之间提供丰富的路由控制能力。

使用BGP作为传递路由的协议,则用户的路由域被作为一个整体和其他路由域进行路由交换,这个路由域即AS。AS的概念是若干台路由器以及这些路由器组成的网络集合,这些路由器均属于同一个管理机构,并执行统一的路由策略。运行BGP协议需要一个统一的自治系统号来标识路由域,即AS编号。每个自治系统都有唯一的一个编号,这个编号由IANA分配。

协议特点
因为是在AS之间传递路由,为保证数据的可靠性, BGP使用TCP作为其承载协议建立连接。因此与IGP逐跳路由器建立邻居不同,BGP可以跨越多跳路由器建立邻居关系。AS之间的路由器是不完全相互信任的,为实现路由按需求进行控制和优选,BGP设计了诸多属性。BGP不产生路由,是路由的搬运工

邻居类型
在这里插入图片描述
EBGP
EBGP只用于不同AS之间传递路由。如图,AS 100内的RTB与BTC分别从AS 200与AS 300学习到不同的路由,怎么实现AS 200与AS 300之间路由在AS 100内的交换?
在AS 100内实现将学到的AS 200和AS 300路由进行交换,可以在拓扑中的RTB与RTC路由器上将BGP的路由引入IGP协议(图中为OSPF协议),再将IGP协议的路由在RTB与RTC路由器上引入回BGP协议,实现AS 200与AS 300路由的交换。
上述方法存在以下几个缺点:
公网上BGP承载的路由数目非常大,引入IGP协议后,IGP协议无法承载大量的BGP路由;
BGP路由引入IGP协议时,需要做严格的控制,配置复杂,不易维护;
BGP携带的属性在引入IGP协议时,由于IGP协议不能识别,可能会丢失。
因此我们需要设计BGP在AS内部完成路由的传递。

IBGP
BGP使用TCP作为其承载协议,所以可以跨设备建立邻居关系。RTB与RTC之间建立IBGP邻居关系,并各自将从其他AS学到的路由传递给对端,实现BGP路由在AS内的传递。

邻居关系建立
BGP通过报文的交互完成邻居建立、路由更新等操作,共有Open、Update、Notification、Keepalive和Route-refresh等5种报文类型。

Open报文:是TCP连接建立后发送的第一个报文,用于建立BGP邻居之间的连接关系。BGP邻居在接收到Open报文并协商成功后,将发送Keepalive报文确认并保持连接的有效性。确认后,BGP邻居间可以进行Update、Notification、Keepalive和Route-refresh报文的交换。
Update报文:用于在BGP邻居之间交换路由信息。Update报文可以发布多条属性相同的可达路由信息,也可以撤销多条不可达路由信息。一条Update报文可以发布多条具有相同路由属性的可达路由,这些路由可共享一组路由属性。所有包含在一个给定的Update报文里的路由属性适用于该Update报文中的NLRI(Network Layer Reachability Information)字段里的所有目的地(用IP前缀表示)。一条Update报文可以撤销多条不可达路由。每一个路由通过目的地(用IP前缀表示),清楚地定义了BGP路由器之间先前通告过的路由。一条Update报文可以只用于撤销路由,这样就不需要包括路径属性或者NLRI。相反,也可以只用于通告可达路由,就不需要携带撤销路由信息了。
Notification报文:当BGP路由器检测到错误状态时,就向邻居发出Notification报文,之后BGP连接会立即中断。
Keepalive报文:BGP路由器会周期性的向邻居发出Keepalive报文,用来保持连接的有效性。
Route-refresh报文:Route-refresh用于在改变路由策略后请求对等体重新发送路由信息。

BGP路由器报文交互过程:Idle状态是BGP初始状态。在Idle状态下,BGP路由器拒绝邻居发送的连接请求。只有在收到本设备的Start事件后,BGP路由器才开始尝试与其邻居进行TCP连接,并转至Connect状态。

在Connect状态下,BGP路由器启动连接重传定时器(Connect Retry),等待TCP完成连接。
如果TCP连接成功,那么BGP路由器向邻居发送Open报文,并转至OpenSent状态。
如果TCP连接失败,那么BGP路由器转至Active状态。
如果连接重传定时器超时,BGP路由器仍没有收到邻居的响应,那么BGP路由器继续尝试与其邻居进行TCP连接,停留在Connect状态。
在Active状态下,BGP路由器总是在试图建立TCP连接。
如果TCP连接成功,那么BGP路由器向邻居发送Open报文,关闭连接重传定时器,并转至OpenSent状态。
如果TCP连接失败,那么BGP路由器停留在Active状态。
如果连接重传定时器超时,BGP路由器仍没有收到邻居的响应,那么BGP路由器转至Connect状态。
在OpenSent状态下,BGP路由器等待邻居的Open报文,并对收到的Open报文中的AS号、版本号、认证码等进行检查。
如果收到的Open报文正确,那么BGP路由器发送Keepalive报文,并转至OpenConfirm状态。
如果发现收到的Open报文有错误,那么BGP路由器发送Notification报文给邻居,并转至Idle状态。
在OpenConfirm状态下,BGP路由器等待Keepalive或Notification报文。如果收到Keepalive报文,则转至Established状态,如果收到Notification报文,则转至Idle状态。
在Established状态下,BGP路由器可以和邻居交换Update、Keepalive、Route-refresh报文和Notification报文。
在这里插入图片描述
BGP路由生成
生成BGP路由的方式有两种:第一种是使用配置命令network,第二种是使用配置命令import。
在这里插入图片描述
display bgp routing-table 查看是否学到BGP引入的路由条目

在这里插入图片描述
BGP的update报文
BGP通过Network和Import两种方式生成BGP路由,BGP路由封装在Update报文中通告给邻居。BGP在邻居关系建立后才开始通告路由信息。Update消息主要用来公布可用路由和撤销路由,Update中包含以下信息:
网络层可达信息(NLRI):用来公布IP前缀和前缀长度。
路径属性:为BGP提供环路检测,控制路由优选。
撤销路由:用来描述无法到达且从业务中撤销的路由前缀和前缀长度。

在通告BGP路由时,由于各种因素的影响,为了避免路由通告过程中出现问题,BGP路由通告需要遵守一定的规则,下面进行详细介绍。

通告原则
1、存在多条有效路由时,BGP路由器只将自己最优的路由发布给邻居。

BGP路由表中的状态含义:
Status codes: * - valid, > - best, d - damped, h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? – incomplete
Network:显示BGP路由表中的网络地址
NextHop:报文发送的下一跳地址
MED:路由度量值
LocPrf:本地优先级
PrefVal:协议首选值
Path/Ogn:显示AS路径号及Origin属性
Community:团体属性信息
2、BGP路由器通过EBGP获得的最优路由会发布给所有的BGP邻居(包括EBGP邻居和IBGP邻居)。

3、BGP路由器通过IBGP获得的最优路由不会发布给其他的IBGP邻居。

4、BGP与IGP同步。

BGP的路由黑洞
BGP路由黑洞产生的原因是针对传统IP路由查找,它是逐跳查找,通俗一点就是当数据包到达路由设备的时候,每一台设备都要查找路由表,并且在路由设备有路由的前提下才能转发报文 。对BGP来说由于存在iBGP水平分割规则-只把路由传递一跳(如果AS200内的三台设备都运行BGP,现在的邻居关系是R2和R3有BGP论据,R3和R4有BGP邻居,如果有路由从R2传递给R3,但是R3不会再传递路由给R4,这是一种防环机制)。所以在BGP的设计上有些设备就不会运行BGP。BGP是一种TCP的连接或者说是一种host-to-host的连接(可以跨越设备进行连接),所以路由传递是没有问题的,但是数据包的路由却是有问题的。

解决方案
方案1 : IBGP全互联
在AS内部所有路由器全部启用BGP ,且两两之间都建立ibgp邻居关系。

方案2 :路由引入
在R2和R4_上,将bgp引入ospf。
BGP自动过滤掉ibgp邻居的路由下只把ebgp邻居的路由引入到ospf中。

方案3:MPLS

实验
在这里插入图片描述
要求
本实验模拟ISP网络拓扑,运行BGP。
如图所示配置各设备IP地址,完成以下需求:
1.R1属于AS100,R2/3/4属于AS200,R5属于AS300

2.AS200内运行OSPF,进程号为1。
2.1 手动指定Loopback0的IP为RID。
2.2 全部属于区域0
2.3 network命令全部使用通配符0.0.0.0
2.4 R2/4上不宣告与其他AS互联的接口。

3.建立IBGP邻居
3.1 R2与R4使用环回口Loopback0建立IBGP邻居关系
3.2 为保证BGP路由可达,修改下一跳为本地。

4.建立EBGP邻居
4.1 R1与R2使用直连物理接口建立EBGP邻居关系
4.2 R4/5新建环回口:
R4使用Loopback1:10.4.4.4/32
R5使用Loopback1:10.5.5.5/32
4.3 R4/5分别配置32位静态路由,使得双方的环回口Loopback1可达。
4.4 R4与R5使用环回口建立EBGP邻居关系,并修改EBGP跳数为2.
5.BGP发布路由
5.1 在R1上使用network命令发布1.1.1.1/32
5.2 在R5上使用network命令发布5.5.5.5/32
5.3 确认R1/2/4/5都有1.1.1.1/32和5.5.5.5/32的路由

6.路由黑洞
由于R3没有运行BGP,导致无法收到R1和R5路由。
6.1 在R2将BGP引入OSPF,确认R3获得1.1.1.1/32的路由。
6.2 在R4将BGP引入OSPF,确认R3获得5.5.5.5/32的路由。
6.3 确认1.1.1.1和5.5.5.5可以互通。

具体过程
本实验模拟 ISP 网络拓扑,运行 BGP。
如图所示配置各设备 IP 地址,完成以下需求:
1.R1 属于 AS100,R2/3/4 属于 AS200,R5 属于 AS300
2.AS200 内运行 OSPF,进程号为 1。
2.1 手动指定 Loopback0 的 IP 为 RID。
2.2 全部属于区域 0
2.3 network 命令全部使用通配符 0.0.0.0
2.4 R2/4 上不宣告与其他 AS 互联的接口。
R2:
ospf 1 router-id 2.2.2.2
area 0.0.0.0
network 2.2.2.2 0.0.0.0
network 23.1.1.2 0.0.0.0

R3:
ospf 1 router-id 3.3.3.3
area 0.0.0.0
network 3.3.3.3 0.0.0.0
network 23.1.1.3 0.0.0.0
network 34.1.1.3 0.0.0.0

R4:
ospf 1 router-id 4.4.4.4
area 0.0.0.0
network 4.4.4.4 0.0.0.0
network 34.1.1.4 0.0.0.0

3.建立 IBGP 邻居
3.1 R2 与 R4 使用环回口 Loopback0 建立 IBGP 邻居关系
3.2 为保证 BGP 路由可达,修改下一跳为本地。
R2:
bgp 200
peer 4.4.4.4 as-number 200
peer 4.4.4.4 connect-interface LoopBack0
peer 4.4.4.4 next-hop-local

R4:
bgp 200
peer 2.2.2.2 as-number 200
peer 2.2.2.2 connect-interface LoopBack0
peer 2.2.2.2 next-hop-local

4.建立 EBGP 邻居
4.1 R1 与 R2 使用直连物理接口建立 EBGP 邻居关系
4.2 R4/5 新建环回口:
R4 使用 Loopback1:10.4.4.4/32
R5 使用 Loopback1:10.5.5.5/32
4.3 R4/5 分别配置 32 位静态路由,使得双方的环回口 Loopback1 可达。
4.4 R4 与 R5 使用环回口建立 EBGP 邻居关系,并修改 EBGP 跳数为 2.
R1:
bgp 100
peer 12.1.1.2 as-number 200

R2:
bgp 200
peer 12.1.1.1 as-number 100

R4:
Int lo1
Ip add 10.4.4.4 32
ip route-static 10.5.5.5 32 45.1.1.5
bgp 200
peer 10.5.5.5 as-number 300
peer 10.5.5.5 ebgp-max-hop 2
peer 10.5.5.5 connect-interface LoopBack1

R5:
Int lo1
Ip add 10.5.5.5 32
ip route-static 10.4.4.4 32 45.1.1.4
bgp 300
peer 10.4.4.4 as-number 200
peer 10.4.4.4 ebgp-max-hop 2
peer 10.4.4.4 connect-interface LoopBack1

5.BGP 发布路由
5.1 在 R1 上使用 network 命令发布 1.1.1.1/32
bgp 100
network 1.1.1.1 255.255.255.255
5.2 在 R5 上使用 network 命令发布 5.5.5.5/32
bgp 300
network 5.5.5.5 255.255.255.255
5.3 确认 R1/2/4/5 都有 1.1.1.1/32 和 5.5.5.5/32 的路由

6.路由黑洞
由于 R3 没有运行 BGP,导致无法收到 R1 和 R5 路由。
6.1 在 R2 将 BGP 引入 OSPF,确认 R3 获得 1.1.1.1/32 的路由。
ospf 1 router-id 2.2.2.2
import-route bgp
6.2 在 R4 将 BGP 引入 OSPF,确认 R3 获得 5.5.5.5/32 的路由。
ospf 1 router-id 4.4.4.4
import-route bgp
6.3 确认 1.1.1.1 和 5.5.5.5 可以互通。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

BGP基础 的相关文章

  • 【一份老网工珍藏多年的网络配置笔记,很重要!】

    01 交换机 路由器的几种配置模式及模式转换 1 用户模式 登录到交换机 路由器 时会自动进入用户模式 提示符为 switchname gt 在该模式下只能够查看相关信息 对 IOS的运行不产生任何影响 2 特权模式 用户模式下 键入 en
  • 6类典型场景的无线AP选型和部署方案

    你们好 我的网工朋友 前段时间刚给你们来了篇解决无线频繁断网的技术文 解决无线频繁断网 这个办法值得收藏 不少朋友私聊 说想再聊聊无线AP的选型和部署方案 这不就安排上了 无线网络覆盖项目中 无线AP的合理选型和部署非常重要 在设计施工中
  • 网络空间安全女生就业,怎么学?

    我实验室的学长们基本都是以红队和复现为主 如果学校好点可能还有更多的选择 如果想在这个方向深入下去 推荐流程是先打两年CTF 把大概的技术方向摸一摸 大一的话 如果学校还不错 那就优先建议打好基础 包括C语言 Python一类 建议把CTF
  • Linux 软件安装以及管理

    本篇主要记录常用的软件安装和管理方式 主要是 yum rpm dnf apt pip 大致都是一样的 主要是部分软件提供了解决依赖的功能 内容不包括源码安装 源码安装情况相对比较复杂 后续有时间再补充 约定 案例所用模板软件均为 pytho
  • 服务器集群是如何提高计算性能的?

    服务器集群是一种将多台服务器连接起来协同工作的技术 通过集群配置 可以提高计算性能 可靠性和可扩展性 以下是服务器集群如何提高计算性能的详细解释 一 并行处理能力 服务器集群的核心优势在于其并行处理能力 通过将多个服务器组成一个集群 可以将
  • 如何利用CHAT做简单的总结体会?

    问CHAT 在测试过程中使用appium python自动化的优点和体会 CHAT回复 使用 Appium 配合 Python 进行自动化测试主要有以下几点优点 1 跨平台性 Appium 支持 iOS 和 Android 平台的应用自动化
  • 5个步骤,教你瞬间明白线程和线程安全

    记得今年3月份刚来杭州面试的时候 有一家公司的技术总监问了我这样一个问题 你来说说有哪些线程安全的类 我心里一想 这我早都背好了 稀里哗啦说了一大堆 他又接着问 那你再来说说什么是线程安全 然后我就GG了 说真的 我们整天说线程安全 但是对
  • WEB前端常见受攻击方式及解决办法总结

    一个网址建立后 如果不注意安全问题 就很容易被人攻击 下面讨论一下集中漏洞情况和放置攻击的方法 一 SQL注入 所谓的SQL注入 就是通过把SQL命令插入到web表单提交或输入域名或页面请求的查询字符串 最终达到欺骗服务器执行恶意的SQL命
  • 2种方法,教你使用Python实现接口自动化中的参数关联

    通常在接口自动化中 经常会参数关联的问题 那么什么是参数关联 参数关联就是上一个接口的返回值会被下一个接口当做参数运用 其中Python中可以实现参数关联的方法有很多种 今天小编给大家介绍下 如何通过Python来实现接口自动化中的参数关联
  • Jenkins 插件下载速度慢、安装失败了!我教你怎么解决!

    Jenkins部署完毕 如果不安装插件的话 那它就是一个光杆司令 啥事也做不了 所以首先要登陆管理员账号然后点击系统管理再点击右边的插件管理安装CI CD必要插件 但是问题来了 jenkins下载插件速度非常慢 而且经常提示下载插件失败 真
  • HPE Aruba Networking:五大网络现代化策略助力实现校园数字化转型

    作者 Aruba中国区技术销售总监 俞世丹 全球数字化进程日益加深 科技已成为加速教育行业发展的重要驱动力 人工智能 大数据 云计算 物联网 虚拟现实等新兴技术的快速发展 正在深刻改变着教育的形态和模式 为了更好地满足学校师生个性化教育教学
  • socket网络编程几大模型?看看CHAT是如何回复的?

    CHAT回复 网络编程中常见的有以下几种模型 1 阻塞I O模型 Blocking I O 传统的同步I O模型 一次只处理一个请求 2 非阻塞I O模型 Non blocking I O 应用程序轮询调用socket相关函数检查请求 不需
  • 基于java的物业管理系统设计与实现

    基于java的物业管理系统设计与实现 I 引言 A 研究背景和动机 物业管理系统是指对物业进行管理和服务的系统 该系统需要具备对物业信息 人员信息 财务信息等进行管理的能力 基于Java的物业管理系统设计与实现的研究背景和动机主要体现在以下
  • 揭秘网络世界的幕后密码——Wireshark网络协议分析软件

    在我们日常生活中 计算机和互联网已经成为不可或缺的一部分 然而 很少有人真正了解网络背后复杂的工作原理和通信协议 幸运的是 有一款强大而实用的软件 Wireshark 可以帮助我们深入了解网络世界的幕后密码 Wireshark是一款免费的网
  • GitLab CI 实现项目A更新代码自动触发项目B更新错误码文档

    一 CI CD简介 CI CD 是持续集成 Continuous Integration 和持续交付 持续部署 Continuous Delivery Continuous Deployment 的缩写 是一种软件开发和交付的最佳实践 这两
  • 网络安全(黑客)自学启蒙

    一 什么是网络安全 网络安全是一种综合性的概念 涵盖了保护计算机系统 网络基础设施和数据免受未经授权的访问 攻击 损害或盗窃的一系列措施和技术 经常听到的 红队 渗透测试 等就是研究攻击技术 而 蓝队 安全运营 安全运维 则研究防御技术 作
  • UI自动化测试之Jenkins配置

    背景 团队下半年的目标之一是实现自动化测试 这里要吐槽一下 之前开发的测试平台了 最初的目的是用来做接口自动化测试和性能测试 但由于各种原因 接口自动化测试那部分功能整个废弃掉了 其中和易用性有很大关系 另外 也和我们公司的接口业务也有关
  • 服务器中E5和I9的区别是什么,如何选择合适的配置

    随着科技的进步 服务器处理器的性能在不断攀升 其中 Intel的E5和I9系列处理器在业界具有广泛的影响力 而当我们在选择服务器的时候会有各种各样的配置让我们眼花缭乱不知道该怎么去选择 下面我跟大家分享一下E5跟I9有什么区别 方便我们在选
  • 2023下半年软考「单独划线」合格标准公布

    中国计算机技术职业资格网发布了 关于2023年度下半年计算机软件资格考试单独划线地区合格标准的通告 2023下半年软考单独划线地区合格标准各科目均为42分 01 官方通告 关于2023年度下半年计算机软件资格考试单独划线地区合格标准的通告
  • 网络安全行业热门认证证书合集

    网络安全认证证书 就和学历一样是敲门砖 拿到了可以用不到 但不能没有 技术大牛可以没有证书 但普通人不能没有 1 初级入门 就像学历在职场上展示一个人的基本素养一样 网络安全认证证书可以展示一个人在网络安全领域具备的基本知识和技能 它为初学

随机推荐

  • PowerShell 语法

    PowerShell是微软公司开发的一种任务自动化和配置管理框架 基于 NET框架 以下是PowerShell的一些常用语法 命令语法 标准命令语法 如 Get ChildItem 活动目录命令语法 如 Get ADUser 参数 格式为
  • 人生苦短,我用python

    如果你看到一个人穿着一个短袖 短袖上面印着 人生苦短 我用python 不用怀疑 他一定是一个python程序员 作为编程热门语言排行榜首的python 有着强大的粉丝社区 因为它的简洁 越来越多的人喜欢上了它 而这个语言 就是由吉多 范罗
  • Springboot内置Tomcat线程数测试

    SpringBoot 2 7 3 本文主要介绍SpringBoot内置Tomcat的主要参数 解析最大线程数和最大连接数的作用方式 SpringBoot各版本的参数配置可能不完全一样 本文以2 7 3版本为例进行试验 一 默认配置 Spri
  • python实验一

    1 输入带有py的字符串 替换其中出现的字符串py为python输出替换后的字符串 s input 输入带有py的字符串 print s replace py python 运行结果 2 获得用户输入的一个字符串 请输出其全小写形式 s i
  • python学习(1)图像处理指令解析

    1 img i j c i表示图片的行数 j表示图片的列数 c表示图片的通道数 RGB三通道分别对应0 1 2 坐标是从左上角开始 灰度图片访问方式为 gray i j 2 生成椒盐噪声 from skimage import io dat
  • printf标识总结(转)

    printf标识总结 转 Dev C 下基本数据类型学习小结 环境 Dev C 4 9 6 0 gcc mingw32 使用 Wall编译选项 基本类型包括字节型 char 整型 int 和浮点型 float double 定义基本类型变量
  • RFID盘点机如何使用

    RFID盘点机如何使用 在我们的生活中 RFID技术应用广泛 比如固定资产管理 一套完整的RFID系统主要包含RFID系统 RFID打印机 RFID读写器 RFID盘点机 RFID标签 缺一不可 作为RFID系统中的重要主成部分 RFID盘
  • C# 不定长参数

    C 不定长参数 C 提供一种语法 允许你设计的一个函数可以支持传入不定长的参数 例如一个用于整数计算的Add方法 可以将传入的参数累加起来 如 Add 1 2 返回3 Add 1 2 3 放回6 代码是这样的 使用params int i作
  • 自动化测试,除了coding还需要掌握什么?

    一 自动化测试项目 自动化测试本身是一个项目 它属于业务项目的子项目 因此自动化测试项目也具有项目所有的特征 既然提到自动化测试是一个项目 那么首先需要大家理解一下为什么叫做自动化测试项目 而不单单是自动化测试 1 1 软件项目生命周期 首
  • VMware虚拟机复制文件卡死的问题

    又遇到这个问题了 于是决定解决它 在这里记录下过程 百度了一下好像是因为win10更新的原因 有人给出的对策是把虚拟机更新到15 1 不过有人更新完之后还是出问题了 懒得又卸载了重新安装 所以还是决定用文件共享的方式解决算了 或者尝试先把文
  • H5 ios10+ Safari 中实现 video/audio 自动播放小技巧

    关于Safari 中禁止音视频自动播放的问题 apple 开发者声明 https developer apple com library archive documentation AudioVideo Conceptual Using H
  • QLoRA:量化 LLM 的高效微调

    此 repo 支持论文 QLoRA 量化 LLM 的高效微调 旨在使对 LLM 研究的访问民主化 QLoRA 使用bitsandbytes进行量化 并与 Hugging Face 的PEFT和transformers库集成 QLoRA 由华
  • XXE漏洞利用技巧(由简入深)-----portswigger(XXE部分WP)

    什么是XXE XXE XML External Entity xml外部实体注入 它出现在使用XML解析器的应用程序中 XXE攻击利用了XML解析器的功能 允许应用程序从外部实体引用加载数据 攻击者可以通过构造恶意的XML实体引用来读取本地
  • 后台管理系统-canvas添加水印

    展示 第一步 untils文件 gt 创建一个shuiying js 第二步 shuiying js gt 代码 const watermark const setWatermark str str1 gt const id 1 23452
  • 用jemalloc代替glibc默认ptmalloc进一步提升服务器性能和负载

    启动redis时 无意中看到redis的启动信息有一个jemalloc的版本信息 处于好奇了解了一下 它是一个进一步提升服务器负载和性能的神器 一 Ptmalloc Linux 系统在装载 elf 格式的程序文件时 会调用 loader 把
  • win7下连接共享打印机的方法(终于解决了)

    1 首先一定要确保Spooler服务启动 2 随便找个添加打印机的地方 我是在控制面板找的 3 点击 添加打印机 后选择 添加网络打印机 进来一般来说搜不到你想要连接的打印机 这时候点击 我想要连接的打印机不再列表中 点击 通过共享选择一个
  • OnTriggerEnter 当进入触发器

    当Collider 碰撞体 进入trigger 触发器 时调用OnTriggerEnter 这个消息被发送到触发器碰撞体和刚体 或者碰撞体假设没有刚体 注意如果碰撞体附加了一个刚体 也只发送触发器事件 销毁所有进入触发器的物体 void O
  • 10.netty客户端与服务器使用protobuf传输报文

    README 本文总结自B站 尚硅谷 netty 很不错 内容如下 netty的编码器与解码器 netty客户端与服务器通过 protobuf 传输报文的开发方式 文末po出了所有代码 1 netty的编码器与解码器 codec 1 编解码
  • (1)docker的使用 阿里镜像 运行jar包 springboot

    前言 在运行jar包时 我的 中台 建议使用docker进行运行 于是查阅资料 将这个过程进行记录如下 对于入门小白 共勉 安装docker 由于是第一次安装 所以借鉴了大牛的帖子 当然 大牛帖子也有缺点 就是一旦被大家认可 更新不及时 该
  • BGP基础

    简述 在EGP协议中 引入了AS Autonomous System 自治系统 的概念 AS是指由同一个技术管理机构管理 使用统一选路策略的一些路由器的集合 AS的内部使用IGP来计算和发现路由 同一个AS内部的路由器之间是相互信任的 因此