重发布及路由策略

news2024/11/17 3:47:01

目录

重发布

作用

条件

规则

名词解释点

单点重发布

双点重发布

路由策略

控制层流量和数据层流量

抓流量

ACL列表

前缀列表( ip-prefix)

实例演示

做策略

过滤策略(过滤器-策略)

路由策略(route-policy)

基本配置

路由策略使用

配置实验


重发布

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

作用

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

条件

        1,必须存在ASBR设备---同时连接两种协议两个进程,同时学到两边的路由,之后进行路由共享。

重发布的操作就是在ASBR设备上,说明,重发布这个技术主要就应用在两个协议或者两个进程之间。都是两两之间完成的。

        2,必须关注种子度量值---起始度量值,A协议和B协议的开销计算逻辑是不一样,无法直接使用。故将A协议发布到B协议是,ASBR将不携带A协议的度量值,而是共享到B协议后,由ASBR设备在路由中添加一个起始度量值

不同动态路由协议设置的默认种子度量值不同,这点需要重点关注。

规则

        1,将A协议发布到B协议中,在ASBR中的B协议上配置---该规则定义的是重发布技术的配置位置规则。

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

名词解释点

·单点---两个协议或两个进程之间存在一个ASBR

·双点---两个协议或两个进程之间存在两个ASBR

·多点---两个协议或两个进程之间存在多个ASBR

·单向---仅将A协议路由共享到B协议中

·双向---A/B协议的路由均共享

(因为重发布都是发生在两两之间的,所以,不存在多向)

单点重发布

针对重发布技术,仅需完成对单点重发布的学习即可。

(可以搭建以上拓扑环境,来完成单点重发布配置讲解。)

在进行配置讲解的时候,可以从三个方面来讲

· A-> B:—种动态路由协议发布到另外—种动态路由协议·静态->B:将静态路由导入到动态路由协议中

·直连->B:将直连路由导入到动态路由协议中

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

A->B:一种动态路由协议发布到另外一种动态路由协议

[r2-rip-1]import-route ospf 1

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

修改种子度量值的方法:

1.在进程当中对全局进行修改:[r2-rip-1]default-cost 2

2.针对本次重发布进行修改:[r2-rip-1]import-route ospf 1 cost 3

注意:当以上两条命令同时执行时,将按照第2条,匹配更精确的命令来执行。

静态→B:将静态路由导入到动态路由协议中[r2-rip-1]import-route static

结论:

1.导入静态RIP赋予的种子度量值也是0。

2.重发布在导入的路由中无法导入缺省路由信息。

直连→>B:将直连路由导入到动态路由协议中[r2-rip-1]import-route direct

结论:

1.除了R1的直连网段外,所有直连都会导入

2.若ASBR进行了A->B的重发布以及直连->B的重发布,并且两次包含相同的路由信息,则将会优先学习直连->B的重发布信息。

双点重发布

单点重发布看完之后,我们再来看双点重发布(多点和双点差不多)。我们可以搭建如下拓扑:

思考---如果我们再R2和RA上同时做双向的重发布,会遇到哪些问题呢?

假设,R2上有一个环回2.0网段,在RIP进程中进行了宣告。因为R4也运行了RIP进程,所以,通过RIP进程R4A将学习到2.0网段的路由信息。之后,R2上进行重发布,将B2的RIP的路由重发布到OSPF中,则2.0网段的路由信息也将发布过来。(这个属于宣告在A协议的接口对应的直连网段),因为R4也运行了OSPF,所以,B4将通过QSPE学习到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,这很明显出现了选路不佳。这种现象就是所谓的路由回馈现象。严重的也会引起路由环路的产生。

在上图实验中,不存在路由回馈的问题,选路不佳的问题出现在R3至2.0的选路上!
 

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

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

 

路由策略

在说路由策略之前,我们需要先了解两个名词。

控制层流量和数据层流量

1.控制层流量---路由协议传递路由信息产生的流量

2.数据层流量---设备访问目标地址时产生的流量

而所谓路由策略一在控制层面转发流量的过程中,截取流量,之后修改流量再转发或者不转发,最终达到影响路由器路由表的生成,干涉选路的效果。

(这个概念就和我们之前讲的ACL列表有点像,只不过ACL是针对数据层流量进行访问控制,路由策略主要针对的是控制层流量。)

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

抓流量

我们这里介绍抓取流量的方法主要有两种,一种是通过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.0 0

后面的0是通配符,代表所有的数字都不允许发生变化。

正式因为如此,如果需要我们在192.168.1.0/24,192.168.1.0/25,192.168.1.0/26中抓取到192.168.1.0/24,则ACL将无能为力,他只能按照数字特征抓,则意味着使用以上抓法将同时抓到携带这三种路由信息的数据包。

前缀列表( ip-prefix)

从名字上看JP前缀列表是一个列表形态的工具。它所匹配的对象是IP地址前缀,也就是路由条目。一个路由条目由目的网络地址(也被称为前缀)及掩码长度〈也被称为前缀长度)共同标识。使用ACL从一批路由中筛选出感兴趣的路由时,是无法指定被匹配对象的目的网络掩码长度的,但是IP前缀列表却可以做到,它除了能够指定被匹配对象的目的网络地址,还能指定目的网络掩码长度,从而实现对路由的精确匹配。

IP前缀列表可以包含一条或多条语句,每条语句都使用一个十进制的序号(Index)进行标识。在本例中,这个名称为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前缀列表可以达到不同的结果。

1.ip ip-prefix aa index10 permit 172.16.0.0 24

上述语句要求路由的目的网络地址的前24个比特位需与172.16.0.0的前24个比特位相同,并且路由的目的网络掩码长度必须为24。因此aa这个P前缀列表只允许了四条路由中的172.16.0.0/24

2.ip ip-prefix bb index 10 permit 172.16.0.0 16 less-equal 24

上述语句要求路由的目的网络地址的前16个比特位需与172.16.0.0的前16个比特位相同并且路由的目的网络掩码长度须大于或等于16,且小于或等于24。因此bb这个I前缀列表允许了四条路由中的172.16.0.0/16及172.16.0.0/24。

3.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。

4.ip ip-prefix dd index 10 permit 172.16.0.0 16 greater-equal 24 less-equal 30

上述语句要求路由的目的网络地址的前16个比特位须与172.16.0.0的前16个比特位相同并且路由的目的网络掩码长度须大于或等于24,且小于或等于30。因此dd这个IP前缀列表允许了四条路由中的172.16.0.0/24和172.16.0.0/30。

5.ip ip-prefix ee index 20 permit 172.16.0.0 24

上述IP前缀列表的名称为ee,它拥有两条语句。序号为10的语句要求路由的目的网络地址的前30个比特位须与172.16.0.0的前30个比特位相同,并且路由的目的网络掩码长度必须为30,而由于该语句的匹配模式为deny,因此四条路由中的172.16.0.0/30被该语句匹配住而且被拒绝。另外,序号为20的语句匹配路由172.16.0.0/24。由于IP前缀列表末尾隐含拒绝所有,因此最终四条路由中只有172.16.0.0/24被该P前缀列表所允许。

6. ip ip-prefix ff index 10 permit 0.0.0.0 0 less-equal 32

上述语句中,IP地址为0.0.0.0,这种形式的IP地址被称为通配地址,也即该地址能匹配任意的目的网络地址。因此该语句并不关心被匹配路由的目的网络地址,但是要求路由的目的网络掩码长度须大于或等于0,且小于或等于32,实际上所有的路由都满足上述要求,因此,该条语句相当于"允许所有"。因此四条路由都将被允许。ip ip-prefix gg index 10 deny 172.16.0.0 30

7.ip ip-prefix gg index 20 permit 0.0.0.0 0 less-equal 32

上述IP前缀列表的名称为gg,它拥有两条语句。序号为10的语句拒绝了路由172.16.0.0/30,而序号为20的语句则为允许所有,因此四条路由中,除了172.16.0.0/30之外,其他所有路由都被允许。

8.ip ip-prefix hh index 10 permit 0.0.0.0 0 greater-equal 32 less-equal 32

上述lP前缀列表将匹配网络掩码长度为32的任意路由,也就是匹配所有的主机路由,因此四条路由中,只有172.16.1.1/32被允许。

9.ip ip-prefix ii index 10 permit 0.0.0.0 0

这是一个非常特殊的语句,该语句允许的是默认路由0.0.0.0/0。

做策略

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

过滤策略(过滤器-策略)

Filter-Policy (过滤-策略),可以将其视为一种路由过滤器。下图展示了一个Filter-Policy的部署案例。R1、R2及Co_sw运行了RIPx2,CO_SW将服务器集群的网段发布到了RIP中,并将路由通过RIP通告给R1及R2,初始情况下,B1及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学习到的到达OSPE网段都将是负载均衡,我们可以通过过滤策略来打破这个负载均衡,选取最佳的选路。比如,R2和R3之间的23.0.0.0/24网段,R1到达该网段,选择走R2为下一跳是最佳的选择,而不应该走R4。则我们可以将R4发来的路由信息进行过滤。

这个过滤策略在做的时候,做的位置是可以自行选择的,我们可以在R1上做,在R1收到R4发来的路由信息时,将其进行过滤,我们将这样的策略称为入方向的策略入方向的策略将影响自身;当然,我们也可以在RA上进行配置,让R4在给R1发路由信息的时候不去携带这条路由信息,我们将这样策略称为出方向的策略,出方向的策略影响他人

步骤:

1,抓取流量

(这里使用ACL列表抓取,当然也可以使用过滤列表进行抓取)

[r2]acl 2000

[r2-acl-basic-200orule deny s 23.0.0.0 0 ---注意,过滤列表本身没有过滤能力,所以,需要在抓取流量时使用拒绝动作。(后面写0代表完全按照数字特征来抓取路由信息)

[r2-acl-basic-2000]rule permit source any ---注意,在抓流量时,末尾一定要放通剩余流量否则将会把所有流量全部过滤掉。

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

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

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

上图中,已经进行多点双向重发布,不存在路由回馈的问题(原因:其他协议路由再重发布进入OSPF时,优先级被修改为150).

所以上图仅考虑选路不佳的问题;在上图中R1去往23.1.1.0/24网段是等开销负载均衡的(原因:重发布后,原有协议的度量值被洗掉,仅保留种子度量值)。

原有路由表截图。

做法:通过使用前缀列表及过滤策略实现R1去往23.1.1.0/24 网段的路由仅从R1走。

第一种做法:在R1-R4的入口上调用过滤策略

步骤:

第一步:使用前缀列表抓取23.1.1.0/24网段(因为过滤是要拒绝,所以前缀列表书写拒绝).

[R1]ip ip-prefix 1 index 10 deny 23.1.1.0 24 //拒绝23.1.1.0/24

[R1]ip ip-prefix 1 index 20 permit 0.0.0.0 0 less-equal 32 //允许所有(末尾隐藏拒绝所有)。

第二步:书写过滤策略

[R1]rip 1

[R1-rip-1]filter-policy ip-prefix 1 import GigabitEthernet 0/0/1 //import 代表入方向

第三步:检查

第二种做法:在R4-R1的出口上调用过滤策略

同样方法,在R4上用前缀列表抓取流量,然后在R4的出口调用

路由策略(route-policy)

基本概念

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

路由策略的匹配规则:自上而下,逐一匹配,一旦匹配上则将按照对应的规则来执行动作,I不再向下匹配。末尾隐含拒绝所有的规则

下图展示了一个 Route-Policy实例,该Route-Policy的名称为hcnp,一共有三个节点,序号分别是5,10和15。之所以在每个序号之间预留4个数,是为了考虑扩展性,这样一来用户如果需要插入新节点,则还有预留的序号可以使用。每个节点中都配置了条件语句(使用if-match命令定义)及执行语句(使用apply命令定义)。当该Route-Policy被调用且开始执行时,路由匹配的操作将从序号最小的节点--节点5开始进行。节点5中定义了多条if-match语句,只有当所有的if-match语句都满足时,才会执行y1所定义的动作。如果节点5中有任何一个条件不满足,则继续到下一个节点中进行匹配。

基本配置

1,创建—个Route-Policy节点

route-policy route-policy-name { permit | deny } node node

在设备的系统视图中使用上述命令,即可创建一个Route-Policy节点,并进入该Route-Policy节点的配置视图。在该命令中,Route-Policy 的名称可以根据需要自行定义.

在名称的后面,有两个关键字可以选择,它们用于指定该节点的匹配模式。

(1)Permit:指定该节点的匹配模式为允许。如果路由匹配的结果是满足该节点的所有if-match语句,则该路由被视为允许通过,该节点的apply语句将被执行,且不再进入下一个节点;如果该节点中有if-match语句不满足,则进入下一个节点继续匹配。

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

值得注意的是,当Route-Policy用于路由匹配时,被匹配对象(也就是路由条目)必须满足一个节点中的所有if-match语句(“与"的关系),才被认为匹配该节点。如果某条路由没有被Route-Policy的任何节点匹配,则该路由被视为拒绝通过该Route-Policy,也就是说,Route-Policy 的末尾隐含着一个类似拒绝所有的节点。当然,为了避免所有的路由都被拒绝通过,一个Route-Policy中必须至少有一个节点的匹配模式为permit。

2,(可选)配置if-match语句

在Route-Policy的节点视图下,使用if-match命令可定义匹配条件,所匹配的对象是路由信息的一些属性,例如路由的目的网络地址或掩码长度、度量值、标记或下一跳P地址等。常用的就是匹配ACL.或者前缀列表抓取的流量。

(1)匹配ACL:

if-match acl { acl-number | acl-name }

(2)匹配IP前缀列表:

if-match ip-prefix ip-prefix-name

一个节点中可以包含多条if-match语句,这些if-match语句之间是"与”的关系,也就是说所有的if-match语句必须同时满足,被匹配对象才被视为匹配该节点。一个节点中可以不包含任何if-match语句,当这种情况出现时,则视为匹配所有,也就是任何的被匹配对象都满足该节点的条件。

3,(可选)配置apply语句

在Route-Policy的节点视图下,使用apply命令指定需执行的动作,这些动作主要是对所匹配的路由的某些属性进行修改,例如修改路由的度量值、优先级值、标记等。以下是一些常用的apply命令。(后续BGP将大量使用路由策略来修改其中的路径属性)

(1)设置路由的度量值:

apply cost [+l- ] cost

(2)设置OSPE的度量值类型:

apply cost-type { type-1 / type-2 }

(3)设置路由的标记:

apply tag tag

一个节点中可以不包含任何apply语句,此时该节点只被用于执行路由过滤,而不用于设置路由的属性。

路由策略使用

路由策略使用:在上图中R3对192.168.2.0/24的选路存在相应的问题,现在的情况是等开销的

现在,通过路由策略来干涉选路,通过观察,我们需要在R4上通过路由策略来加大cost值的方法来干涉选路.

做法:

第一步:使用前缀列表抓取流量

[R4]ip ip-prefix 1 permit 192.168.2.0 24

第二步:创建路由策略

[R4]route-policy 1 permit node 10

lnfo: New Sequence of this List

[R4-route-policy]if-match ip-prefix 1

[R4-route-policy]apply cost + 10

[R4-route-policy]q

[R4]route-policy 1 permit node 20.

第三步:重发布时调用

[R4]ospf 1

[R4-ospf-1]import-route rip 1 route-policy 1 type 1 //必须修改Type1l

第四步:测试

配置实验

实验要求:R1创建4条环回,均宣告在RIP中。R2同时运行RIP和OSPE,需要在R2上进行重发布,将RIP的路由信息重发布到OSPE中。按照重发布的发布规则,将发布过来5条路由信息(R1的4条环回及12.0.0.0网段。)重发布后的五条路由信息分别做五种不同的处理,按图中所示。(12.0.0.0/24网段不做处理)。

步骤:

1.配IP地址

2.首先进行单点双向重发布,后R3路由表如下图所示

<R3>display ospf routing

3.做策略

第一步:使用前缀列表抓取各流量(此处不再使用acl)

[R2]ip ip-prefix a permit 1.1.1.0 24

[R2]ip ip-prefix b permit 2.2.2.024

[R2]ip ip-prefix c permit 3.3.3.024

[R2]in ip-prefix d permit 4.4.4.0 24

第二步:使用路由策略

[R2]route-policy celve deny node 10

Info: New Sequence of this List.

[R2-route-policy]if-match ip-prefix a

[R2-route-policy]q

[R2]route-policy celve permit node 20

Info: New Sequence of this List.

[R2-route-policy]if-match ip-prefix b

[R2-route-policy]apply cost 10

[R2-route-policy]q

[R2]route-policy celve permit node 30

Info: New Sequence of this List.

[R2-route-policy]if-match ip-prefix c

[R2-route-policy]apply cost-type type-1

[R2-route-policy]q

[R2]route-policy celve permit node 40

Info: New Sequence of this List.

[R2-route-policy]if-match ip-prefix d

[R2-route-policy]apply cost-type type-1

[R2-route-policy]apply tag 666

[R2]route-policy celve permit node 50

Info: New Sequence of this List.

第三步:重发布调用

[R2]ospf 1

[R2-ospf-1]import-route rip1 route-policy celve

第四步:测试

 

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

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

相关文章

Python 中一个好用的股票开源库akshare

背景 从小编真实接触股票已经有10年之久了&#xff0c;因为大学的专业就是数据与应用数据&#xff08;金融学方向&#xff09;&#xff0c;大三、大四学期时学习了很多涉及金融相关的课程&#xff0c;特别是在大四时&#xff0c;老师还专门给每位同学开通了模拟炒股的账户&…

合并 K 个升序链表——力扣23

题目描述 法一 顺序合并 class Solution { public:ListNode* mergeTwoLists(ListNode* l1, ListNode* l2){ListNode* dummy new ListNode(-1); //创建一个新的头节点 ListNode *curdummy, *aPtr l1, *bPtr l2;while(aPtr && bPtr){if(aPtr->val < bPtr->…

网银转账测试分析与设计

在银行项目面试中&#xff0c;面试官常问起网上银行转账功能如何测试&#xff0c;该问题既能考查面试者银行知识储备又能考查面试者的沟通表达能力。而很多人对于这个问题觉得很难回答&#xff0c;网上关于这块资料也并不多&#xff0c;特整理相关的测试点&#xff0c;抛砖引玉…

MyBatis学习笔记之逆向工程

文章目录 逆向工程配置与生成QBC查询风格 所谓的逆向工程是&#xff1a;根据数据库表逆向生成的Java的pojo类、SqlMapper.xml文件、以及mapper接口类等 要完成这个工作&#xff0c;需要借助别人写好的逆向工程插件。 虽然有点经典白学&#xff0c;但好像也没不白学 思考&#x…

数据结构入门指南:顺序表

目录 文章目录 前言 顺序表 静态顺序表 动态顺序表 总结 前言 今天我们正式进入对数据结构的学习&#xff0c;顺序表是数据结构中最简单的一种线性数据结构&#xff0c;也是数据结构入门的试金石&#xff0c;如果对于顺序表中内容理解过难&#xff0c;可以先填补一下C语言中结构…

ROS前驱前转小车仿真(2D)项目

文章目录 一.官方网址1.ROS官网2.urdf-模型3.rviz-数据可视化4.gazebo-仿真环境5.gmapping-建图6.navigation-导航 二.文件框架三.启动顺序0.依赖包的安装1.手动控制的启动顺序2.建图的启动顺序3.导航的启动顺序 四.urdf-模型文件1.ackermann.xacro-轮子传动的配置2.common_pro…

生信学院|07月28日《企业制造研发一体化解决方案》

课程主题&#xff1a;企业制造研发一体化解决方案 课程时间&#xff1a;2023年07月28日 14:00-14:30 主讲人&#xff1a;周可 生信科技 售前技术顾问 1、企业面临的挑战与痛点 2、达索系统研发制造一体化解决方案 3、DELMIAworks&#xff08;DMW&#xff09;制造运营管理价…

h3c m-lag简单配置案例

#SWA配置 [SWA]m-lag system-mac a08e-80d2-0100 #相同&#xff0c;建议选主设备为系统MAC [SWA]m-lag system-number 1 #主设备为1&#xff0c;备设备为2 [SWA]m-lag system-priority 123 #相同优先级 [SWA]m-lag keepalive ip destination 1.1.1.2 source 1.1.1.1 [SWA]int …

vue echarts实现根据选择项年月时间切换数据显示柱状图,vue页面监听自适应

echarts配置文档参考:Documentation - Apache ECharts 功能:可进行月度、年度切换显示相应的收入和支出柱状图数据; 这里进行了柱状图的简化配置,X轴Y轴都有所改写,具体的简化配置下文会贴出代码,参照功能开发时按照自己的需要去处理; 这里也会提到在开发时会遇到的问题…

两数相加 II——力扣445

题目描述 法一 栈 本题旨在从后往前加&#xff0c;为了逆序处理所有数位&#xff0c;利用栈&#xff0c;把数字压入栈中&#xff0c;再依次取出相加&#xff0c;注意进位&#xff01;进位是/10&#xff0c;另外需要注意栈的常用函数&#xff0c;push()、pop()、top()&#xff0…

我的2023上半年总结

Hi~C站的小伙伴们好久不见哇&#xff01;釉色终于回到C站&#xff0c;开始要输出了&#xff01;这一篇文章是我的2023上半年的总结&#xff0c;以此&#xff0c;致敬那段迷茫但又不曾被辜负的时光。 文章目录 总括——你愿意花五分钟时间读读我的文章吗学习——制定目标&#…

【我们一起60天准备考研算法面试(大全)-第二十六天 26/60】

专注 效率 记忆 预习 笔记 复习 做题 欢迎观看我的博客&#xff0c;如有问题交流&#xff0c;欢迎评论区留言&#xff0c;一定尽快回复&#xff01;&#xff08;大家可以去看我的专栏&#xff0c;是所有文章的目录&#xff09;   文章字体风格&#xff1a; 红色文字表示&#…

图书馆荐书《乡村振兴战略下传统村落文化旅游设计》

图书馆荐书《乡村振兴战略下传统村落文化旅游设计》 书名&#xff1a;乡村振兴战略下传统村落文化旅游设计 索取号&#xff1a;F592.3/47 作者&#xff1a;许少辉 简介&#xff1a;我国传统村落具有宝贵的历史价值、农业价值和生态价值等价值特色&#xff0c;在生动开展基于…

普赛斯携集成电路产教融合解决方案亮相第七届集创赛颁奖典礼并作主旨演讲

第七届全国大学生集成电路创新创业大赛半导体测试分赛区信诺达杯七大赛区选拔赛于2023年7月22日落地武汉理工大学。大赛由工业和信息化部人才交流中心主办&#xff0c;武汉市科技局、武汉市经济和信息化局、武汉东湖高新区大学园科技园有限公司支持。“全国大学生集成电路创新创…

Linux知识点 -- 基础IO(二)

Linux知识点 – 基础IO&#xff08;二&#xff09; 文章目录 Linux知识点 -- 基础IO&#xff08;二&#xff09;一、重定向1.输出重定向2.输入重定向3.追加重定向4.重定向系统调用5.minishell支持重定向6.stdout和stderr的区别7.常规的重定向操作8.perror的实现 二、Linux下一切…

【福利活动】深度体验OpenHarmony对接华为云IoT

本文主要介绍基于OpenHarmony 3.0来接入IoTDA&#xff0c;以BearPi-HM_Nano开发板为例&#xff0c;使用huaweicloud_iot_link SDK对接华为云物联网平台的简单流程。文末为大家提供了的福利&#xff0c;最高可得HUAWEI WATCH FIT手表、华为手环7、HUAWEI FreeBuds SE 无线耳机、…

OSI七层模型——物理层

OSI模型的物理层位于协议栈的底部。它是 TCP/IP 模型的网络接入层的一部分。如果没有物理层&#xff0c;就没有网络。本模块详细介绍了连接到物理层的三种方法。 1 物理层的用途 1.1 物理连接 不管是在家连接本地打印机还是将其连接到另一国家/地区的网站上&#xff0c;在进…

vue 文件扩展名中 esm 、common 、global 以及 mini 、 dev 、prod 、runtime 的含义

vue 文件扩展名中 esm 、common 、global 以及 mini 、 dev 、prod 、runtime 的含义 vue.js 直接用在 script 标签中的完整版本&#xff08;同时包含编译器 compiler 和运行时 runtime&#xff09;&#xff0c;可以看到源码&#xff0c;适用于开发环境。 这个版本视图可以写在…

vue3+ts+elementui-plus二次封装树形表格实现不同层级展开收起的功能

一、TableTreeLevel组件 <template><div classmain><div class"btns"><el-button type"primary" click"expandLevel(1)">展开一级</el-button><el-button type"primary" click"expandLevel(2…

管理类联考——写作——素材篇——论说文——企业管理故事

文章目录 经典管理案例——武装经管知识&#xff0c;让考官刮目相看分槽喂马金蝉脱壳欲取先与窃符救赵尺蠖huo求伸声东击西借尸还魂以静制动釜底抽薪围师必阙撒豆成兵不入虎穴焉得虎子八坛七盖 经典管理案例 ——武装经管知识&#xff0c;让考官刮目相看 纵使是世界顶级的管理…