HCIP——OSPF的重发布以及路由策略

news2024/9/29 13:32:32

OSPF重发布以及路由策略

  • 一、重发布
    • 1、作用
    • 2、条件
    • 3、规则
    • 4、名词解释
    • 5、单点重发布
    • 6、双点重发布
  • 二、路由策略
    • 1、控制层流量和数据层流量
    • 2、抓流量
      • ACL列表
      • 前缀列表 (ip-prefix)
    • 3、做策略
      • 过滤策略(filter-policy)
      • 路由策略(route-policy)

一、重发布

在同一个网络拓扑结构中,如果存在多种不同的路由协议,由于不同路由协议的机理各有不同,对路由的处理也不相同,这就在网络中造成了路由信息的隔离,在路由协议的边界设备上,将某种路由协议的路由信息引入另-种路由协议中,这个操作被称为路由引入 (Route lmportation)或者路由重分发(Route Redistribution)— 这个技术的叫法比较多,也就是我们说的重发布。

1、作用

在一个网络中,若运行多种路由协议或相同路由协议的不同进程,协议之间不能直接沟通计算,进程之间也是独立转发和运算的,所以,需要使用重发布来实现路由的共享。

2、条件

1,必须存在ASBR设备-- 同时连接两种协议或两个进程,同时学到两边的路由,之后进行路由共享。
重发布的操作就是在ASBR设备上,说明,重发布这个技术主要就应用在两个协议或者两个进程之间。都是两两之间完成的。
2,必须关注种子度量值 — 起始度量值,A协议和B协议的开销计算逻辑是不一样,无法直接使用。故将A协议发布到B协议是,ASBR将不携带A协议的度量值,而是共享到B协议后,由ASBR设备在路由种添加一个起始度量值。
不同动态路由协议设置的默认种子度量值不同,这点需要重点关注。

3、规则

1、将A协议发布到B协议中,在ASBR中的B协议上配置-- 该规则定义的是重发布技术的配置位置规则。
2,将A协议发布到B协议中,ASBR将会将所有通过A协议学习到的路由以及ASBR上宣告在A协议中的所有直连路由,全部共享到B协议中。.-. 该规则定义的是重发布发布的内容规则。 … 这条规则是重发布学习的重中之重

4、名词解释

  • 单点— 两个协议或两个进程之间存在一个ASBR
  • 双点—两个协议或两个进程之间存在两个ASBR
  • 多点—两个协议或两个进程之间存在多个ASBR

  • 单向— 仅将A协议路由共享到B协议中
  • 双向— A/B协议的路由均共享
    (因为重发布都是发生在两两之间的,所以,不存在多向)

5、单点重发布

在这里插入图片描述
(可以搭建以上拓扑环境,来完成单点重发布配置讲解。)
在进行配置讲解的时候,可以从三个方面来讲

  • A->B:一种动态路由协议发布到另外一种动态路由协议。
  • 静态->B:将静态路由导入到动态路由协议中
  • 直连->B:将直连路由导入到动态路由协议中

注意:这里拿将OSPF的路由信息重发布到RIP中进行演示

A->B:一种动态路由协议发布到另外一种动态路由协议
[r2-rip-1]import-route ospf 1
结论:

  • 通过重发布技术将其他协议的路由信息导入到RIP中,其赋予的默认种子度量值为0。

修改种子度量值的方法

  • 在进程当中对全局进行修改:[r2-rip-1]default-cost 2
  • 针对本次重发布进行修改:[r2-rip-1]import-route ospf 1 cost 3

注意: 当以上两条命令同时执行时,将按照第2条,匹配更精确的命令来执行
静态->B:将静态路由导入到动态路由协议中
[r2-rip-1jimport-route static
结论:

  • 导入静态RIP赋予的种子度量值也是0
  • 重发布在导入的路由中无法导入缺省路由信息。

直连->B:将直连路由导入到动态路由协议中
[r2-rip-1jimport-route direct
结论:

  • 除了R1的直连网段外,所有直连都会导入。
  • 若ASBR进行了A->B的重发布以及直连->B的重发布,并且两次包含相同的路由信息,则将会优先学习直连->B的重发布信息。

6、双点重发布

单点重发布看完之后,我们再来看双点重发布(多点和双点差不多)。我们可以搭建如下拓扑:
在这里插入图片描述
思考 — 如果我们再R2和R4上同时做双向的重发布,会遇到哪些问题呢?

假设,R2上有一个环回2.0网段,在RIP进程中进行了宣告。因为R4也运行了RIP进程,所以,通过RIP进程R4T将学习到2.0网段的路由信息。之后,R2上进行重发布,将R2的RIP的路由重发布到OSPF中,则2.0网段的路由信息也将发布过来。(这个属于宣告在A协议的接口对应的直连网段),因为R4也运行了OSPE,所以,R4将通过OSPF学习到2.0网段的路由信息。R4通过两种协议学习到2.0网段的路由信息,按照优先级,则将学习OSPF的(事实并不会是如此,因为重发布的路由在OSPF中是以5类LSA通告的,其生成的路由默认优先级被定义为150,大于RIP的默认值100)。一旦学习了,R4的路由表将发生变化,之后将通过R3访问R2的环回。之后,如果R4也进行了重发布,则R4也会将2.0网段的路由信息重发布到RIP之中。 (这属于通过A协议学习到的路由信息)。因为重发布过来会清除原先的度量值,所以在R1上到达2.0网段将形成一个负载均衡,同时走R2和R4,这很明显出现了选路不佳。这种现象就是所谓的路由回馈现象。严重的也会引起路由环路的产生。

结论: 默认RIP和OSPF协议若进行双点重发布,由于两者的优先级不同,故第一台ASBR设备重发布动作结束后,将影响其他ASBR设备的路由表。使得路由可能被回传到源协议当中,发生路由回馈— A协议的路由重发布到B协— 当然,因为华为设备议当中后,又被重新发布回A协议。路由回馈可能会导致选路不佳甚至路由环路的出现。将重发布到OSPF的路由的优先级设置为了150,所以,在上图所示情况下是不会发生路由回馈的。

当然,就算解决了路由回馈问题,多点的重发布还是存在其必然产生的问题 --. 选路不佳。主要还是因为他清楚原先的开销值导致的。–而这个问题,想要解决,是无法仅通过重发布技术来解决,而需要使用到路由策略。

二、路由策略

1、控制层流量和数据层流量

  • 控制层流量— 路由协议传递路由信息产生的流量
  • 数据层流量— 设备访问目标地址时产生的流量

而所谓路由策略…- 在控制层面转发流量的过程中,截取流量,之后修改流量再转发或者不转发,最终达到影响路由器路由表的生成,干涉选路的效果。
(这个概念就和我们之前讲的ACL列表有点像,只不过ACL是针对数据层流量进行访问控制,路由策略主要针对的是控制层流量。)

路由策略的整体动作也是分为两部分的,一部分是先截取流量(抓流量),还有一部分就是针对流量进行修改或者不转发(做策略)。

2、抓流量

我们这里介绍抓取流量的方法主要有两种,一种是通过ACL列表来抓取流量;另一种是通过前缀列表(ip.prefix)来抓取流量。

ACL列表

因为ACL列表本身设计是为了抓取数据层流量的,所以,因为通配符的存在他可以灵活的匹配数字特征,但是没有办法匹配路由信息中的掩码特征。所以,并不擅长控制层流量的抓取。
ACL在抓取路由信息时,只能按照数字特征来进行匹配
例如我们抓取一条携带192.168.1.0/24路由信息的数据包,使用ACL列表抓取时只能如下抓取:

[r2]acl 2000
[r2-acl-basic-2000]rule permit source 192.168.1.00

后面的0是通配符,代表所有的数字都不允许发生变化.
正式因为如此,如果需要我们在192.168.1.0/24,192.168.1.0/25,192.168.1.0/26中抓取到192.168.1.0/24则ACL将无能为力,他只能按照数字特征抓,则意味着使用以上抓法将同时抓到携带这三种路由信息的数据包。

前缀列表 (ip-prefix)

从名字上看,P前缀列表是一个列表形态的工具。它所匹配的对象是IP地址前缀,也就是路由条目。一个路由条目由目的网络地址(也被称为前缀)及掩码长度(也被称为前缀长度)共同标识。使用ACL以一批路由中筛选出感兴趣的路由时,是无法指定被匹配对象的目的网络掩码长度的,但是IP前缀列表却可以做到,它除了能够指定被匹配对象的目的网络地址,还能指定目的网络掩码长度,从而实现对路由的精确匹配。
P前缀列表可以包含一条或多条语句,每条语句都使用一个十进制的序号(lndex)进行标识。在本例中,这个名称为abcd的IP前缀列表中只有一条语句,这条语句的序号为10,正如前面所说,您可以为一个IP前缀列表创建多条语句,每条语句使用不同的序号,所有的语句按照序号从小到大依序排列,这与ACL非常类似。
在这里插入图片描述
前缀列表还可以进行范围匹配,下面的示例中增加了greater-equal (大于或等于)及less-equal(小于或等于)这两个关键字及参数,从而指定了掩码长度的范围。这条命令要求路由的目的网络地址的前16个比特位与172.16.0.0的前16个比特位相同。另外路由的目的网络掩码长度需大于或等于24,同时小于或等于32。只有满足上述条件的路由才会被该语句匹配。
如果一条语句中只是指定了greater-equal关键字(且没有指定less-equal关键字),则掩码长度的范围是大于或等于greater-equal关键字所指定的值,同时小于或等于32。而如果只是指定了less-equal关键字(且没有指定greater-equal关键字),则掩码长度的范围是大于或等于命令中指定的掩码长度,同时小于或等于less-equal关键字指定的值。
在这里插入图片描述
前缀列表的匹配规则: 从上而下,逐一匹配,一旦匹配上则将按照该规则执行,不再向下匹配。末尾隐含拒绝所有的规则。
IP前缀列表是一个重要的路由策略工具,能够作为路由过滤器被应用于各种场景,例如可以被Route-Policy调用或者Filter-Policy调用等等,另外,也在BGP路由协议中被直接用于路由过滤。
实例演示
下面通过几个例子来加深大家对IP前缀列表的理解。假设有四条路由:172.16.0.0/16、172.16.0.0/24.172.16.0.0/30,172.16.1.1/32,它们都是用于测试的被匹配对象。通过不同的P前缀列表可以达到不同的结果。

  • ip ip-prefix aa index 10 permit 172.16.0.0 24
  • 上述语句要求路由的目的网络地址的前24个比特位需与172.16.0.0的前24个比特位相同,并且路由的目的网络掩码长度必须为24。因此aa这个P前缀列表只允许了四条路由中的172.16.0.0/24
  • ip ip-prefix bb index 10 permit 172.16.0.0 16 less-equal 24
  • 上述语句要求路由的目的网络地址的前16个比特位需与172.16.0.0的前16个比特位相同,并且路由的目的0网络掩码长度须大于或等于16,且小于或等于24。因此bb这个IP前缀列表允许了四条路由中的172.16.0.0/16及172.16.0.0/24。
  • ip ip-prefix cc index 10 permit 172.16.0.0 16 greater-equal 24。
  • 上述语句要求路由的目的网络地址的前16个比特位需与172.16.0.0的前16个比特位相同,并且路由的目的网络掩码长度须大于或等于24(且小于或等于32,系统会自动在该命令后添加less-equal 32)。因此cc这个IP前缀列表允许了四条路由中172.16.0.0/24、172.16.0.0/30以及172.16.1.1/32。
  • ip ip-prefix dd index 10 permit 172.16.0.0 1 greater-equal 24 less-equal 30
  • 上述语句要求路由的目的网络地址的前16个比特位须与172.16.0.0的前16个比特位相同,并且路由的目的o网络掩码长度须大于或等于24,且小于或等于30。因此dd这个IP前缀列表允许了四条路由中的172.16.0.0/24和172.16.0.0/30。
  • ip ip-prefix ee index 10 deny 172.16.0.0 30
    ip ip-prefix ee index 20 permit 172.16.0.0 24
  • 上述IP前缀列表的名称为ee,它拥有两条语句。序号为10的语句要求路由的目的网络地址的前30个比特0位须与172.16.0.0的前30个比特位相同,并且路由的目的网络掩码长度必须为30,而由于该语句的匹配模式为deny,因此四条路由中的172.16.0.0/30被该语句匹配住而且被拒绝。另外,序号为20的语句匹配路由172.16.0.0/24。由于IP前缀列表末尾隐含拒绝所有,因此最终四条路由中只有172.16.0.0/24被该IP前缀列表所允许。
  • ip ip-prefix ff index 10 permit 0.0.0.0 0less-equal 32
  • 上述语句中,IP地址为0.0.0.0,这种形式的IP地址被称为通配地址,也即该地址能匹配任意的目的网络地址。因此该语句并不关心被匹配路由的目的网络地址,但是要求路由的目的网络掩码长度须大于或等于0,且小于或等于32,实际上所有的路由都满足上述要求,因此,该条语句相当于“允许所有”。因此四条路由都将被允许。
  • ip ip-prefix gg index 10 deny 172.16.0.0 30
    ip ip-prefix gg index 20 permit 0.0.0.0 0 less-equal 32
  • 上述IP前缀列表的名称为g8,它拥有两条语句。序号为10 的语句拒绝了路由172.16.0.0/30.而序号为20的语句则为允许所有,因此四条路由中,除了172.16.0.0/30之外,其他所有路由都被允许
  • ip ip-prefix hh index 10 permit 0.0.0.0 0 greater-equal 32 less-equal 32
  • 上述IP前缀列表将匹配网络掩码长度为32的任意路由,也就是匹配所有的主机路由,因此四条路由中,只有172.16.1.1/32被允许。
  • ip ip-prefix ii index 10 permit 0.0.0.0 0
    这是一个非常特殊的语句,该语句允许的是默认路由0.0.0.0/0。

3、做策略

我们需要针对抓取到的流量执行对应的操作,修改其中内容或者是拒绝通过,这些操作都需要依靠策略来完成。我们这里主要给大家介绍的策略有两种。过滤策略 (filter-policy) 和路由策略(route-policy)

过滤策略(filter-policy)

Filter-Policy(过源-策略),可以将其视为一种路由过滤器。下图展示了一个Filter-Policy的部署案例。R1、R2及CO_SW运行了RIPV2,CO_SW将服务器集群的网段发布到了RIP中,并将路由通过RIP通告给R1及R2,初始情况下,R1及R2都能学习到所有到达服务器集群网段的路由。现在网络中增加了一个需求:要求R1下联的PC不能访问服务器集群中的192.168.2.0/24网段,但是仍可以访问其他服务器网段。
在这里插入图片描述
要实现上述需求其实有多种方法,Filter-Policy便是其中之一。我们可以在CO_SW上部署Filter-Policy,将其通告给R1的RIP路由进行过滤,把192.168.2.0/24从路由更新中过滤掉,如此一来R1将无法再通过RIP获知到达192.168.2.0/24的路由,那么PC用户也就无法再通过R1访问该网段了。
需要强调的是,filter-Policy 只能够对路由信息进行过滤,而无法对LSA进行过滤
配置案例:
在这里插入图片描述
就使用搭建的双点重发布的环境,如果R2和R4都进行了重发布,则R1这边通过RIP学习到的到达OSPF网段都将是负载均街,我们可以通过过滤策略来打破这个负载均衡,选取最佳的洗路。比如,R2和R3之间的23.0.0.0/24网段,R1到达该网段,选择走R2为下一跳是最佳的选择,而不应该走R4。则我们可以将R4发来的路由信息进行过滤。
这个过滤策略在做的时候,做的位置是可以自行选择的,我们可以在R1上做,在R1收到R4发来的路由信息时将其进行过滤,我们将这样的策略称为入方向的策略,入方向的策略将影响自身,当然,我们也可以在R4上进行配置,让R4在给R1发路由信息的时候不去携带这条路由信息,我们将这样策略称为出方向的策略,出方向的策略影响他人。

因为我们针对的只是23.0.0.0/24网段的路由信息,所以,我们需要先抓取流量,针对该网段的流量进行过滤.
步骤:(这里是在R4上进行了出方向的策略)
1,抓取流量
(这里使用ACL列表抓取,当然也可以使用过滤列表进行抓取)

[r2]acl 2000
[r2-acl-basic-2000]rule deny s 23.0.0.00 --- 注意,过滤列表本身没有过滤能力,所以,需要在抓取流量时使用拒绝动作。
(后面写0代表完全按照数字特征来抓取路由信息)
[r2-acIbasic-20001rule permit source any --. 注意,在抓流量时,末尾一定要放通剩余流量,否则将会把所有流量全部过滤掉。

2、在过滤策略中调用— 这里时在R4上进行的出方向的调用,也可以在R1上进行入方向的调用

[r4-rip-1]filter-policy 2001 export GigabitEthernet 0/0/0 --- 因为是进程中进行调用,所以需要选定策略影响的入接口

注意: 过滤列表可以在OSPF中使用,但是,因为OSPF中传递的是拓扑信息,所以,无法进行出方向的过滤,只能进行入方向的调用,并且,调用的效果是仅将过滤抓取的路由信息不加表。

路由策略(route-policy)

基本概念
Route-Policy是一个非常重要的路由策略工具,如下图所示,您可以把它想象成拥有一个或多个节点(Node)的列表,每一个节点都可以是一系列条件语句及执行语句的集合,这些节点按照编号从小到大的顺序排列。在每个节点中,用户可以定义条件语句及执行语句,这就有点像程序设计语言里的 f-Then (如果-则)组合。在 Route-Policy被执行的时候,设备从编号最小的节点开始进行路由匹配,如在途中首先看节点,设备对该节点中的条件语句进行匹配,如果被匹配的对象满足所有条件,则执行该节点中的执行语句,并且不会再继续往下一个节点进行匹配。而如果节点1中,有任何一个条件不满足,则前往下一个节点,也就是到节点2中去匹配条件语句,如果被匹配的对象满足所有条件,则执行该节点中的执行语句,如果不满足,则继续往下一个节点进行匹配,以此类推。
在这里插入图片描述
1,创建一个Route-Policy节点

route-policy route-policy-name [ permit deny }node node

在设备的系统视图中使用上述命令,即可创建一个Route-Policy节点,并进入该Route-Policy节点的配置视图.在该命令中,Route-Policy 的名称可以根据需要自行定义
在名称的后面,有两个关键字可以选择,它们用于指定该节点的匹配模式

  • Permit;指定该节点的匹配模式为允许。如果路由匹配的结果是满足该节点的所有if-match语句,则该路由被视为允许通过,该节点的 apply语句将被执行,且不再进入下一个节点:如果该节点中有if-match语句不满足则进入下一个节点继续匹配。
  • Deny:指定节点的匹配模式为拒绝。如果节点的匹配模式为deny,则该节点的apply 语句将不被执行。如果路由匹配的结果是满足该节点的所有if-match 语句,那么Route-Policy 的匹配过程立即结束,不会再进入下一个节点,而且满足该节点条件的路由被视为拒绝通过。如果该节点下有if-match语句不满足,则进入下一个节点继续匹配。

值得注意的是,当Route-Policy用于路由匹配时,被匹配对象(也就是路由条目)必须满足一个节点中的所有ifmatch语句(“与”的关系),才被认为匹配该节点。如果某条路由没有被Route-Policy的任何节点匹配,则该路由被视为拒绝通过该Route-Policy,也就是说,Route-Policy 的末尾隐含着一个类似拒绝所有的节点。当然,为了避免所有的路由都被拒绝通过,一个Route-Policy中必须至少有一个节点的匹配模式为permit.
2,(可选)配置if-match语句
在Route-Policy的节点视图下,使用if-match命令可定义匹配条件,所匹配的对象是路由信息的一些属性,例如路由的目的网络地址或掩码长度、度量值、标记或下一跳IP地址等。常用的就是匹配ACL或者前缀列表抓取的流量。

  • 匹配ACL:
    if-match acl{acl-number acl-name}
  • 匹配IP前缀列表:
  • if-match ip-prefix ip-prefix-name

一个节点中可以包含多条if-match 语句,这些if-match语句之间是”与”的关系,也就是说所有的if-match语句必须同时满足,被匹配对象才被视为匹配该节点。一个节点中可以不包含任何 if-match语句,当这种情况出现时,则视为匹配所有,也就是任何的被匹配对象都满足该节点的条件。
3,(可选)配置apply 语句
在Route-Policy的节点视图下,使用apply命令指定需执行的动作,这些动作主要是对所匹配的路由的某些属性进行修改,例如修改路由的度量值、优先级值、际记等。以下是一些常用的apply命令。 (后续BGP将大量使用路由策略来修改其中的路径属性)

  • 设置路由的度量值:
    apply cost[+l-] cost
  • 设置OSPF的度量值类型
    apply cost-type {type-1 / type-2
  • 设置路由的标记
    apply tag tag
    一个节点中可以不包含任何 apply语句,此时该节点只被用于执行路由过滤,而不用于设置路由的属性。

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

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

相关文章

工欲善其事必先利其器,IT工作电脑更要维护好

目录 一:电脑的组成 二:维护措施 三:助力记忆 一:电脑的组成 当谈到电脑主机时,我们通常指的是电脑的中央处理器(CPU)、内存、主板、电源、硬盘、显卡、声卡、网卡等核心部件组成的整体。这些部件共同协作&#xff…

CSS 高频按钮样式

矩形与圆角按钮 正常而言&#xff0c;我们遇到的按钮就这两种 -- 矩形和圆角&#xff1a; 它们非常的简单&#xff0c;宽高和圆角和背景色。 <div classbtn rect>rect</div><div classbtn circle>circle</div>.btn {margin: 8px auto;flex-shrink: 0;…

率土抽卡助手 微信小程序开发

欢迎使用 微信率土抽卡助手 你好&#xff01;率土抽卡助手是包含全赛季土地难度表、开荒阵容、武将阵容、主城守军阵容推荐、内政、荣誉值计算、拆迁队、队伍克制、沃土坐标、鱼塘坐标、武将寻访技巧、行军外观判断队伍、T0阵容、战法拆解、卡包抽取等全功能小程序。可在微信游…

机器人状态估计:robot_localization 功能包简介与安装

机器人状态估计&#xff1a;robot_localization 功能包简介与参数配置 前言功能包简介安装使用ubuntu软件源安装使用源码安装 前言 移动机器人的状态估计需要用到很多传感器&#xff0c;因为对单一的传感器来讲&#xff0c;都存在各自的优缺点&#xff0c;所以需要一种多传感器…

Linux下CMake开发

CMake编译和运行C文件 编写CMakeLists.txt # 声明要求的 cmake 最低版本 cmake_minimum_required( VERSION 3.1 )# 声明一个 cmake 工程 project( pro )# 设置编译模式 set( CMAKE_BUILD_TYPE "Release" )#添加OPENCV库 #指定OpenCV版本&#xff0c;代码如下 #find…

vue2+wangEditor5富文本编辑器(图片视频自定义上传七牛云/服务器)

1、安装使用 安装 yarn add wangeditor/editor # 或者 npm install wangeditor/editor --save yarn add wangeditor/editor-for-vue # 或者 npm install wangeditor/editor-for-vue --save在main.js中引入样式 import wangeditor/editor/dist/css/style.css在使用编辑器的页…

压缩算法的原理丨基因型vcf文件为什么压缩后发生了什么?

压缩算法的本质 最近碰到一个神奇的现象&#xff0c;一份大小为16GB的xx.vcf.gz文件&#xff0c;解压之后体积变为600GB的vcf文件&#xff0c;为什么一份文件经过压缩后体积缩小了这么多&#xff1f; (work) [bio notes 21:29:40 ~/work/20230726/data]$ ls -lh总用量 620GB-…

mac m1安装Centos9

先看结果&#xff08;在mac M1 安装centos8 安装不成功的原因大部分是没有找到正确的系统&#xff09; 由于Cnetos8 停服&#xff0c;现有mac m1 上能够按照的Centos8 并非由官方发布&#xff0c;因此寻找官方发布的能够在mac m1上安装的centos版本。 在YouTuBe上找到一个视频…

华为产品测评官-开发者之声 +【小白的CodeArts产品体验(Devops实践)】

关于使用华为云Codearts产品中产品优点以及实践中出现的问题 一、Devops简介二、产品的优点1. 直观化的思维导图2. 迭代详情3. 合理的项目工作流程4. 合理的分支请求5. 可视化的代码问题统计图6. 报告的完整性7.流水线视图 三、实践中的小坑第一个小坑第二个小坑第三个小坑&…

点击按钮横向滚动左右滚动

展示 原理 隐藏超过部分&#xff0c;通过设置元素左侧的滚动距离&#xff0c;使元素向右向左滚动 1.scrollLeft&#xff1a;元素左侧已滚动的距离&#xff0c;即位于元素左边界与元素中当前可见内容的最左端之间的距离 2.scrollWidth:元素的整体宽度&#xff0c;包括由于溢出…

现代C++中的从头开始深度学习:激活函数

一、说明 让我们通过在C中实现激活函数来获得乐趣。人工神经网络是生物启发模型的一个例子。在人工神经网络中&#xff0c;称为神经元的处理单元被分组在计算层中&#xff0c;通常用于执行模式识别任务。 在这个模型中&#xff0c;我们通常更喜欢控制每一层的输出以服从一些约束…

详解python中的垃圾回收机制

目录 什么是垃圾回收机制 垃圾回收的工作流程 为什么要进行垃圾回收 详解python中的垃圾回收机制 总结 什么是垃圾回收机制 垃圾回收&#xff08;Garbage Collection&#xff09;是一种自动内存管理机制&#xff0c;用于检测和释放不再被程序使用的内存资源&#xff0c;以…

【数据结构】实验十一:图

实验十一 图 一、实验目的与要求 1&#xff09;掌握图的存储表示与操作实现。 2&#xff09;掌握图的连通性及其应用。 二、 实验内容 1.用邻接表存储一个图形结构&#xff0c;并计算每个顶点的度。 2. 采用深度和广度优先搜索算法&#xff0c;遍历上述这张图&#xff0c;…

CSS之允许点击穿透

一、pointer-events 属性用于设置元素是否对鼠标事件做出反应。 二、属性值 三、如果设置点击穿透效果&#xff0c;使用 pointer-events:none; 设置作用元素即可 .your-classname {pointer-events:none; }

23款奔驰S400豪华型升级后排电动腿托系统,提升后排乘坐舒适性

奔驰S400L后排座椅是不带腿托和脚托的&#xff0c;也没有一键躺平功能&#xff0c;相对于奔驰S级高配车型上配置的右边老板位座椅&#xff0c;舒适性就差强了一些。

AX88179A千兆网卡芯片,支持switch联网

AX88179是世界上第一个USB 3.0&#xff0c;千兆以太网控制器&#xff0c;它在单一芯片上集成了USB 3.0 PHY和10/100/1000Mbps千兆以太网MAC / PHY。AX88179是最新此外ASIX的USB-到-LAN产品组合&#xff0c;提供一个小的形式因素的解决方案和插头-和-打法可用性&#xff0c;使嵌…

重学C++系列之模板

一、什么模板 模板的引入跟泛型编程有关&#xff0c;泛型编程指编写和编译时&#xff0c;对于参数的类型是一个不确定的类型&#xff0c;直到程序运行时&#xff0c;才能确定真正的类型。而泛型编程的实现主要通过函数模板和类模板。 二、模板有几种 模板有两种&#xff0c;函…

无涯教程-jQuery - hide( )方法函数

如果显示了 hide()方法&#xff0c;它们只是隐藏每个匹配元素集。此方法还有另一种形式&#xff0c;可以控制动画的速度。 hide( ) - 语法 selector.hide( ); hide( ) - 示例 以下是一个简单的示例&#xff0c;简单说明了此方法的用法- <html><head><title…

软件测试人员一定要会的用例设计思路

职场新人对测试用例的困惑无非有以下几点 1、什么是测试用例&#xff0c;为什么要写测试用例&#xff1f; 2、不知道怎么写&#xff0c;写了也不知道写的是否完整。 一、什么是测试用例&#xff1f; 百科的释义&#xff1a; 测试用例是对一项特定的软件产品进行测试任务的…

day45-Netflix Mobile Navigation(左边侧边栏动态导航)

50 天学习 50 个项目 - HTMLCSS and JavaScript day45-Netflix Mobile Navigation&#xff08;左边侧边栏动态导航&#xff09; 效果 index.html <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name&…