BGP路由反射器

原理概述
缺省情况下,路由器从它的一个 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 32peer 10.0.18.8 as-number 200
ospf 1 router-id 10.0.1.1area 0.0.0.0network 10.0.1.1 0.0.0.0network 10.0.12.0 0.0.0.255network 10.0.13.0 0.0.0.255network 10.0.14.0 0.0.0.255R2:
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.2area 0.0.0.0network 10.0.2.2 0.0.0.0network 10.0.12.0 0.0.0.255R3:
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.3area 0.0.0.0network 10.0.3.3 0.0.0.0network 10.0.13.0 0.0.0.255R4:
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.4area 0.0.0.0network 10.0.4.4 0.0.0.0network 10.0.14.0 0.0.0.255network 10.0.45.0 0.0.0.255network 10.0.46.0 0.0.0.255network 10.0.47.0 0.0.0.255R5:
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.5area 0.0.0.0network 10.0.5.5 0.0.0.0network 10.0.45.0 0.0.0.255R6:
sys
sysname R6
int loop 0
ip add 10.0.6.6 32
int g0/0/2
ip add 10.0.46.6 24
qbgp 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.6area 0.0.0.0network 10.0.6.6 0.0.0.0network 10.0.46.0 0.0.0.255R7:
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.7area 0.0.0.0network 10.0.7.7 0.0.0.0network 10.0.47.0 0.0.0.255R8:
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 200router-id 10.0.8.8peer 10.0.18.1 as-number 100#ipv4-family unicastundo synchronizationnetwork 10.0.8.8 255.255.255.255peer 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 100router-id 10.0.1.1peer 10.0.4.4 as-number 100peer 10.0.4.4 connect-interface LoopBack0peer 10.0.18.8 as-number 200group in1 internalpeer 10.0.2.2 as-number 100peer 10.0.2.2 group in1peer 10.0.3.3 as-number 100peer 10.0.3.3 group in1#ipv4-family unicastundo synchronizationreflector cluster-id 1peer 10.0.4.4 enablepeer 10.0.4.4 next-hop-localpeer 10.0.18.8 enablepeer in1 enablepeer in1 reflect-clientpeer in1 next-hop-localpeer 10.0.2.2 enablepeer 10.0.2.2 group in1peer 10.0.3.3 enablepeer 10.0.3.3 group in1r2:bgp 100router-id 10.0.2.2peer 10.0.1.1 as-number 100peer 10.0.1.1 connect-interface LoopBack0#ipv4-family unicastundo synchronizationnetwork 10.0.0.0network 10.0.2.2 255.255.255.255network 10.0.22.22 255.255.255.255peer 10.0.1.1 enabler3:bgp 100router-id 10.0.3.3peer 10.0.1.1 as-number 100peer 10.0.1.1 connect-interface LoopBack0#ipv4-family unicastundo synchronizationnetwork 10.0.3.3 255.255.255.255peer 10.0.1.1 enabler8:
bgp 200router-id 10.0.8.8peer 10.0.18.1 as-number 100#ipv4-family unicastundo synchronizationnetwork 10.0.8.8 255.255.255.255peer 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 100router-id 10.0.4.4peer 10.0.1.1 as-number 100peer 10.0.1.1 connect-interface LoopBack0peer 10.0.7.7 as-number 100peer 10.0.7.7 connect-interface LoopBack0group in2 internalpeer 10.0.5.5 as-number 100peer 10.0.5.5 group in2peer 10.0.6.6 as-number 100peer 10.0.6.6 group in2#ipv4-family unicastundo synchronizationreflector cluster-id 2peer 10.0.1.1 enablepeer 10.0.7.7 enablepeer in2 enablepeer in2 reflect-clientpeer 10.0.5.5 enablepeer 10.0.5.5 group in2peer 10.0.6.6 enablepeer 10.0.6.6 group in2r5:
bgp 100router-id 10.0.5.5peer 10.0.4.4 as-number 100peer 10.0.4.4 connect-interface LoopBack0#ipv4-family unicastundo synchronizationnetwork 10.0.5.5 255.255.255.255peer 10.0.4.4 enabler6:
bgp 100router-id 10.0.6.6peer 10.0.4.4 as-number 100peer 10.0.4.4 connect-interface LoopBack0#ipv4-family unicastundo synchronizationnetwork 10.0.6.6 255.255.255.255peer 10.0.4.4 enabler7:
bgp 100router-id 10.0.7.7peer 10.0.4.4 as-number 100peer 10.0.4.4 connect-interface LoopBack0#ipv4-family unicastundo synchronizationnetwork 10.0.7.7 255.255.255.255peer 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 100peer 10.0.7.7 as-number 100peer 10.0.7.7 connect-interface LoopBack0peer 10.0.7.7 next-hop-local
r7:
bgp 100peer 10.0.1.1as-number 100peer 10.0.1.1 connect-interface LoopBack0peer 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.mzph.cn/news/875636.shtml

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

相关文章

【Android】数据存储方案——文件存储、SharedPreferences、SQLite数据库用法总结

文章目录 文件存储存储到文件读取文件 SharedPreferences存储存储获取SharedPreferences对象Context 类的 getSharedPreferences() 方法Activity 类的 getPreferences() 方法PreferenceManager 类中的 getDefaultSharedPreferences() 方法 示例 读取记住密码的功能 SQLite数据库…

4.Java Web开发模式(javaBean+servlet+MVC)

Java Web开发模式 一、Java Web开发模式 1.javaBean简介 JavaBeans是Java中一种特殊的类,可以将多个对象封装到一个对象(bean)中。特点是可序列化,提供无参构造器,提供getter方法和setter方法访问对象的属性。名称中…

JAVA代码审计JAVA0基础学习(需要WEB基础知识)DAY2

JAVA 在 SQL执行当中 分为3种写法: JDBC注入分析 Mybatis注入分析 Hibernate注入分析 JDBC 模式不安全JAVA代码示例部分特征 定义了一个 sql 参数 直接让用户填入id的内容 一个最简单的SQL语句就被执行了 使用安全语句却并没有被执行 Mybatis: #…

【MetaGPT系列】【MetaGPT完全实践宝典——多智能体实践】

目录 前言一、智能体1-1、Agent概述1-2、Agent与ChatGPT的区别 二、多智能体框架MetaGPT2-1、安装&配置2-2、使用已有的Agent(ProductManager)2-3、多智能体系统介绍2-4、多智能体案例分析2-4-1、构建智能体团队2-4-2、动作/行为 定义2-4-3、角色/智…

【OpenCV C++20 学习笔记】调节图片对比度和亮度(像素变换)

调节图片对比度和亮度(像素变换) 原理像素变换亮度和对比度调整 代码实现更简便的方法结果展示 γ \gamma γ校正及其实操案例线性变换的缺点 γ \gamma γ校正低曝光图片矫正案例代码实现 原理 关于OpenCV的配置和基础用法,请参阅本专栏的其…

五、工厂方法模式

文章目录 1 基本介绍2 案例2.1 Drink 抽象类2.2 Tea 类2.3 Coffee 类2.4 DrinkFactory 抽象类2.5 TeaFactory 类2.6 CoffeeFactory 类2.7 Client 类2.8 Client 类运行结果2.9 总结 3 各角色之间的关系3.1 角色3.1.1 Product ( 抽象产品 )3.1.2 ConcreteProduct ( 具体产品 )3.1…

生物信息学新突破:在英特尔 Gaudi 2 上实现 ProtST 蛋白质语言模型加速

引言 随着人工智能技术的快速发展,蛋白质结构预测和语言模型在生物信息学领域扮演着越来越重要的角色。ProtST作为一种新兴的蛋白质语言模型,其性能在英特尔 Gaudi 2 加速器的助力下得到了显著提升。本文将探讨如何利用英特尔 Gaudi 2 加速 ProtST 模型…

哈希表相关的力扣题和讲解和Java、C++常用的数据结构(哈希法)

20240725 一、什么时候适用什么样的结构。1.java中1.1 HashSet:1.2 TreeSet:1.3 LinkedHashSet:1.4 HashMap:1.5 TreeMap:1.6 LinkedHashMap:1.7 总结 2. c中2.1 std::unordered_set:2.2 std::s…

项目实战——外挂开发(30小时精通C++和外挂实战)

项目实战——外挂开发(30小时精通C和外挂实战) 外挂开发1-监控游戏外挂开发2-秒杀僵尸外挂开发3-阳光地址分析外挂开发4-模拟阳光外挂开发5-无限阳光 外挂开发1-监控游戏 外挂的本质 有两种方式 1,修改内存中的数据 2,更改内存中…

谷粒商城实战笔记-54-商品服务-API-三级分类-拖拽效果

文章目录 一,54-商品服务-API-三级分类-修改-拖拽效果1,el-tree控件加上允许拖拽的属性2,是否允许拖拽3,完整代码 一,54-商品服务-API-三级分类-修改-拖拽效果 本节的主要内容是给三级分类树形结构加上拖拽功能&#…

Mysql 集群搭建 05

文章目录 1. Mysql主从复制集群搭建1.1 主库配置1.2 从库配置 2. 分库分表2.1 拆分策略2.2 实现技术2.2.1 MyCat概述2.2.2 MyCat入门2.2.3 配置 schema.xml 3. 双主双从4. 双主双从读写分离 1. Mysql主从复制集群搭建 主从复制是指将主数据库的 DDL 和 DML 操作通过二进制日志…

VMware Cloud Foundation ESXi 主机

一、准备嵌套 ESXi 主机环境# 1)物理 ESXi 主机信息 本次准备用于部署 VCF 嵌套实验环境的物理宿主机的配置信息如下图所示。其实,部署 VCF 环境主要对内存的大小要求比较高,部署完整的管理域相关组件下来差不多就要占用 200 GB左右内存,而对 CPU 和存储的需求可以根据实…

Pytorch使用教学8-张量的科学运算

在介绍完PyTorch中的广播运算后,继续为大家介绍PyTorch的内置数学运算: 首先对内置函数有一个功能印象,知道它的存在,使用时再查具体怎么用其次,我还会介绍PyTorch科学运算的注意事项与一些实用小技巧 1 基本数学运算…

idea中项目目录,文件显示不全问题

问题:idea中项目目录显示不全问题 解决办法1: 删除目录中的.idea文件 用idea重新打开文件就行了 办法2:手动导入为maven项目 1. 2. 3. 4.选择要导入的项目,导入为maven

在英特尔 Gaudi 2 上加速蛋白质语言模型 ProtST

引言 蛋白质语言模型 (Protein Language Models, PLM) 已成为蛋白质结构与功能预测及设计的有力工具。在 2023 年国际机器学习会议 (ICML) 上,MILA 和英特尔实验室联合发布了ProtST模型,该模型是个可基于文本提示设计蛋白质的多模态模型。此后&#xff0…

昇思25天学习打卡营第22天|Pix2Pix实现图像转换

Pix2Pix图像转换学习总结 概述 Pix2Pix是一种基于条件生成对抗网络(cGAN)的深度学习模型,旨在实现不同图像风格之间的转换,如从语义标签到真实图像、灰度图到彩色图、航拍图到地图等。这一模型由Phillip Isola等人在2017年提出&…

编写Hello World!,开启cpp人生

一、具体步骤 1.、安装Visual Studio2019(网上教程很多&#xff09;并打开。 2、新建项目 首先配置新项目 其中 解决方案包含项目 然后添加cpp文件并编写代码 代码如下 #include <iostream> using namespace std; int main() {cout << "Hello World~&qu…

electron TodoList网页应用打包成linux deb、AppImage应用

这里用的是windows的wsl的ubuntu环境 electron应用打包linux应用需要linux下打包&#xff0c;这里用windows的wsl的ubuntu环境进行操作 1&#xff09;linux ubuntu安装nodejs、electron 安装nodejs&#xff1a; sudo apt update sudo apt upgrade ##快捷安装 curl -fsSL http…

机器学习驱动的智能化电池管理技术与应用

目录 主要内容 电池管理技术概述 电池的工作原理与关键性能指标 电池管理系统的核心功能 SOC估计 SOH估计 寿命预测 故障诊断 人工智能机器学习 基础 人工智能的发展 机器学习的关键概念 机器学习在电池管理中的应用案例介绍 人工智能在电池荷电状态估计中的…

小猪佩奇.js

闲着没事 使用js 画一个小猪佩奇把 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</tit…