Cisco 路由重发布 —— 实现路由信息在不同路由选择域间的传递

一、技术背景

在实际的组网中,可能会遇到这样一个场景:在一个网络中同时存在两种或者两种以上的路由协议。例如客户的网络原先是纯 Cisco 的设备,使用 EIGRP 协议将网络的路由打通。但是后来网络扩容,增加了一批华为的设备,而华为的设备是不支持 EIGRP 的,因此可能就在扩容的网络中跑一个 OSPF,但是这两部分网络依然是需要路由互通的,这就面临一个问题。因为这毕竟是两个不同的路由协议域,在两个域的边界,路由信息是相互独立和隔离的。那么如何将全网的路由打通呢?这就需要用到路由重发布(Route Redistribution,又被称为路由重分发)。
在这里插入图片描述

看上图,R1 与 R2 之间运行 RIP 来交互路由信息,R2 通过 RIP 学习到了 R1 发布过来的 192.168.1.0/24 及 2.0/24 的 RIP 路由,装载进路由表并标记为 R(RIP)。同时 R2 与 R3 又运行 OSPF,建立起 OSPF 邻接关系,R2 也从 R3、通过 OSPF 学习到了两条路由:192.168.3.0 及 192.168.4.0/24,也装载进了路由表,标记为 O(OSPF 区域内部路由)。

那么这样一来,对于 R2 而言,它自己就有了去往全网的路由,但是在 R2 内部,可以这么形象的理解:它不会将从 RIP 学习过来的路由,“变成” OSPF 路由告诉给 R3,也不会将从 OSPF 学习来的路由,变成 RIP 路由告诉给 R1。对于 R2 而言,虽然它自己的路由表里有完整的路由信息,但是,就 R 和 O 的条目之间有道鸿沟,无法逾越。而 R2 就也就成了 RIP 及 OSPF 域的分界点,称之为 ASBR(AS Boundary Routers,AS 边界路由器)。

那么如何能够让 R1 学习到 OSPF 域中的路由,让 R3 学习到 RIP 域中的路由呢?关键点在于 R2 上,通过在 R2 上部署路由重发布,可以实现路由信息在不同路由选择域间的传递。

在这里插入图片描述

上图是初始状态。R2 同时运行两个路由协议进程:RIP 及 OSPF。它通过 RIP 进程学习到 RIP 路由,又通过 OSPF 进程学习到 OSPF 域内的路由,但是这两个路由协议进程是完全独立的,其路由信息是相互隔离的。

在这里插入图片描述

现在开始在 R2 上执行重发布的动作,将 OSPF 的路由 “注入” 到了 RIP 路由协议进程之中,如此一来 R2 就会将 192.168.3.0/24 及 192.168.4.0/24 这两条 OSPF 路由 “翻译” 成 RIP 路由,然后通过 RIP 通告给 R1。R1 也就能够学习到 192.168.3.0/24 及 192.168.4.0/24 路由了。

注意重发布的执行点,是在 R2 上,也就是在路由域的分界点(ASBR)上执行的,另外,路由重发布是有方向的,例如刚才执行完相关动作后,OSPF 路由被注入到了 RIP,但是 R3 还是没有 RIP 域的路由,需要进一步在 R2 上将 RIP 路由重发布进 OSPF,才能让 R3 学习到 192.168.1.0/24 及 192.168.2.0/24 路由。

路由重发布是一种非常重要的技术,在实际的项目中时常能够见到。由于网络规模比较大,为了使得整体路由的设计层次化,并且适应不同业务逻辑的路由需求,会在整个网络中设计多个路由协议域,而为了实现路由的全网互通,就需要在特定设备上部署路由重发布。另外在执行路由重发布的过程中,又可以搭配工具来部署路由策略,或者执行路由汇总,如此一来路由重发布带来一个对路由极富弹性和想象力的操作手柄。

二、实施要点

2.1 管理距离问题

在这里插入图片描述

如上图所示,R5 将 192.168.1.0 宣告进了 RIP,R3 及 R4 都能够学习到这条路由,并且装载进自己的路由表。为了让 OSPF 域能够学习到 RIP 域内的路由,在 R3 及 R4 上都部署 RIP 到 OSPF 的重发布。理想中的情况是,OSPF 域内的路由器能同时从 R3 及 R4 学习到注入进来的路由。但是情况却没有那么如人意。

假设在 R3 上先完成的重发布配置,192.168.1.0 这条路由将被 R3 注入到 OSPF 中,并被更新给 R1,再由 R2 更新给 R4,此刻,R4 同时从 OSPF 及 RIP 都学习到了这条路由,它会作何优选?当然是优选 OSPF 的,因为 AD 小,所以它的路由表里,关于 192.168.1.0 的路由是 OSPF 的下一跳 R2。这样一来,对于 R4 而言,它去往 192.168.1.0 网络,就存在次优路径,也就是说,绕远路了,走的是 R2-R1-R3-R5 这条路径。

并且由于 R4 路由表里没了关于 192.168.1.0 的 RIP 路由,自然 RIP 向 OSPF 的重发布就失败了。因为,只有当路由存在于路由表中时,才能够将该路由注入到其他路由协议中

以上就是双点路由重发布的模型中,最容易出现的一个问题:次优路径问题,根本原因还是出在管理距离上。

几种常见的路由协议其 AD 值列举如下:

在这里插入图片描述

解决次优路径的方法有不少,例如可以在 R4 上,将 OSPF 外部路由的管理距离从缺省的 110 修改为 130,比 RIP 的管理距离 120 更大,这样一来,关于 192.168.1.0 的路由,R4 一方面是从 R2 学习到,类型为 OSPF 外部路由,另一方面又从 RIP 学习到,而此时在 R4 上 OSPF 外部路由的管理距离被修改为 130 比 RIP 要大,因此 R4 优选来自 RIP 的 192.168.1.0 路由,并将 RIP 路由装载到路由表,次优路径问题即可解决,而且一旦 192.168.1.0 的 RIP 路由出现在路由表后,R4 的 RIP 到 OSPF 重发布就能够成功。

2.2 路由 feedback

在这里插入图片描述

路由的 feedback(倒灌)是一个在部署路由重发布时需要非常注意的一个现象。如上图所示,R5 将 192.168.1.0 宣告进了 RIP,R3 及 R4 都能够学习到这条路由,并且装载进自己的路由表。如果在 R3 就 R4 上部署 RIP 到 OSPF 的双向重发布,会发生什么事情呢?

假设在 R3 上先完成的配置,192.168.1.0 这条路由将被 R3 注入到 OSPF 中,并被更新给 R1,再由 R2 更新给 R4,到此 R4 就出现次优路径了,这个上面已经介绍过了,并且由于 R4 路由表里没了关于 192.168.1.0 的 RIP 路由,自然 RIP 向 OSPF 的重发布就失败了,更糟糕的是,由于在 R3 及 R4 上部署的是双向重发布,也就是 RIP 向 OSPF 及 OSPF 向 RIP 都做了重发布,这就导致 R4 上关于 192.168.1.0 的 OSPF 路由被倒灌回 RIP,这就是路由 Feedback,路由被灌回来了:

在这里插入图片描述

这是有极大隐患的,非常容易引发路由环路问题。

在上面这个场景中,在 R3 及 R4 两个点上,部署了 RIP 到 OSPF、OSPF 到 RIP 的双向路由重发布,这种组网被称之为:“双点双向路由重发布”。双点双向重发布的模型在不少组网中被应用,这里头蕴含了许多细节和许多技巧,而且稍微操作不当,就容易引发次优路径或路由环路的问题。

2.3 Metric 问题

在这里插入图片描述

要知道,每一种路由协议,对路由 Metric(度量值)的定义是不同的,OSPF 是用 cost(开销)来衡量一条路由的优劣,RIP 是用跳数,EIGRP 是用混合的各种元素,那么当将一些路由,从某一中路由协议重发布到另一种路由协议中,这些路由的 metric 会作何变化呢?

方式一是,你可以在执行重发布的动作的时候,手工指定重发布后的 Metric 值,具体改成什么值,要看实际的环境需求。

方式二是,采用缺省的动作,也就是在路由协议之间重发布时使用的种子度量值。所谓种子度量值,指的是当将一条路由从外部路由选择协议重发布到本路由选择协议中时,所使用的缺省 Metric 值

看下表(下表是 Cisco IOS 平台上的种子度量值,可在路由协议进程中使用 default-metric 修改,有可能的一个情况是,不同网络设备厂商,种子度量值有所不同):
在这里插入图片描述

注意,以上是从其他动态路由协议重发布进该路由协议时的默认 metric。而如果是重发布本地直连路由或静态路由到该路由协议,情况就不是这样,例如重发布直连或静态到如下路由协议时:

- EIGRP 请见红茶三杯 EIGRP 笔记(访问 ccietea.com)【访问异常】20240717

- RIP 重发布直连如果没有设置 metric,则默认 1 跳传给邻居(邻居直接使用这个 1 跳作为 metric);重发布静态路由默认 metric=1,使用 default-metric 可以修改这个默认值,这条命令对重发布直连接口的 metric 无影响。

- OSPF 重发布直连接口默认 cost=20;重发布静态路由默认 cost=20;使用 default-metric 可以修改重发布静态路由以及其他路由协议的路由进 OSPF 后的默认 cost,这条命令对重发布直连接口无效。

三、 配置实现

3.1 配置命令

路由重发布是有方向的,将路由从 A 路由协议注入到 B 路由协议中,要在 B 路由协议的进程中进行配置,例如,要将其他路由协议重发布到 RIP,那么配置如下(重发布到其他路由协议大同小异):

Router (config)#router rip
Router (config-router)#redistribute ?
bgp   Border Gateway Protocol (BGP)
connected Connected
eigrp   Enhanced Interior Gateway Routing Protocol (EIGRP)
isis    ISO IS-IS
iso-igrp  IGRP for OSI networks
metric  Metric for redistributed routes
mobile  Mobile routes
odr   On Demand stub Routes
ospf   Open Shortest Path First (OSPF)
rip    Routing Information Protocol (RIP)
route-map  Route map reference
static    Static routes

3.2 配置示例

1. OSPF 与 RIP 的重发布

在这里插入图片描述

R1 与 R2 运行 RIPv2;R2 与 R3 建立 OSPF 邻接关系。初始化情况下 R2 的路由表中有四个条目,如上图所示,而 R1 的路由表中,只有 2 个条目,也就是两个直连链路。现在在 R2 上做重发布动作,将 OSPF 路由重发布到 RIP,配置如下:

R2 (config)# router rip
R2 (config-router)# redistribute ospf 1 metric 3

上面的命令中 ospf 1 也就是指的进程 1。是 R2 用于和 R3 形成邻接关系的 OSPF 进程号。而 metric 3 则是将 OSPF 路由注入到 RIP 所形成的 RIP 路由的 metric 值。

如此一来,R2 的路由表中 OSPF 路由 3.3.3.0/24,以及激活 OSPF 的直连接口所在网段 192.168.23.0/24,都被注入到 RIP,而 R1 通过 RIP 就能够学习到这两条路由,如下图示红色粗体部分。
在这里插入图片描述

当然,这个时候 1.1.1.0 是无法访问 3.3.3.0 的,因为 R3 并没有 RIP 路由选择域中的路由(也就是说回程路由有问题,数据通信永远要考虑来回路径),所以如果要实现全网互通,那么需在 R2 上,将 RIP 路由注入到 OSPF:

R2 (config)#router ospf 1
R2 (config-router)#redistribute rip subnets

在这里插入图片描述

如此一来,就实现了全网互通。注意,当重发布路由到 OSPF 时,redistribute rip subnets,subnets 关键字要加上,否则只有主类路由会被注入到 OSPF 中,如果不加关键字 subnets,则本例中的子网路由 1.1.1.0/24 就无法被顺利的注入到 OSPF。因此在配置其他路由协议到 OSPF 的重发布时,这个关键字一般都是要加上的

2. OSPF 与 EIGRP 的重发布

在这里插入图片描述

初始情况同上一个实验,接下去先看看将 OSPF 路由重发布进 EIGRP AS 100,配置当然还是在 R2 上进行,进入 R2 的 EIGRP 路由进程:

R2 (config)# router eigrp 100
R2 (config-router)# redistribute ospf 1 metric 100000 100 255 1 1500

注意,EIGRP 的 metric 是混合型的,metric 100000 100 255 1 1500 这里指定的参数,从左至右依次是带宽、延迟、负载、可靠性、MTU。可根据实际需要灵活的进行设定。上述配置完成后,R2 就会将路由表中 OSPF 的路由:包括 3.3.3.0,以及宣告进 OSPF 的直连网段 192.168.23.0/24 注入到 EIGRP 进程。这样 R1 就能够学习到这两条外部路由。

接下去是 EIGRP 到 OSPF 的重发布:

R2 (config)# router ospf 1
R2 (config-router)# redistribute eigrp 100 subnets

3. 重发布直连路由

在这里插入图片描述

在上图中,R1 的 Fa1/0 口并没有在 OSPF 进程中使用 network 命令激活 OSPF。也就是说 R2 及 R3 是无法通过 OSPF 学习这个接口的直连路由。对于目前的整个 OSPF 域而言,1.1.1.0/24 这条 R1 的直连路由就是域外路由,整个域内并不知晓。

现在可以在 R1 上部署重发布,将 R1 的直连路由注入到 OSPF 域中,形成 OSPF 外部路由,然后通告给域内的其他路由器。在这里要注意区分使用 network 命令激活接口,与使用重发布直连将接口路由注入 OSPF 的区别。

当在 R1 上使用 OSPF 的 network 命令将 Fa1/0 接口激活 OSPF 时,实际上是触发了两个事情,一是这个接口会激活 OSPF 于是开始尝试发送组播的 Hello 消息去发现链路上的其他 OSPF 路由器,二是这个接口会参与 OSPF 计算和操作,R1 会将描述这个接口的相关信息通过 OSPF 扩散给其他的路由器,以便他们能够学习到 1.1.1.0/24 的路由,而且这些路由是 OSPF 内部路由。

而当在 R1 上不用 network 命令去激活 Fa1/0 口,而是直接用 redistribute connected subnets 命令将直连路由注入到 OSPF,情况就不一样了。一是这个接口的直连路由会被以外部路由的形式注入到 OSPF 中,这将联动地产生许多细节上的不同;另外,这个接口并不激活 OSPF,也就是说接口不会收发 HELLO 包。另一个有意思的地方是,redistribute connected subnets 一旦在 R1 上被部署,则 R1 上所有未被 OSPF network 命令激活 OSPF 的接口的直连路由都会被注入到 OSPF 中
在这里插入图片描述

R2 (config)# router ospf 1
R2 (config-router)# redistribute connected subnets

上面这条命令就是将本地所有直连路由(除了已经被 network 宣告的路由)注入到 OSPF 中。所有的动态路由协议都支持将直连路由重发布进路由域,命令都是类似的:redistribute connected。

4. 重发布静态路由

在这里插入图片描述

在上图所示的场景中,R2 与 R3 建立 OSPF 邻接关系,而 R1 可能由于不支持 OSPF 或者其他原因,没有运行 OSPF。为了让 R2 能够访问 1.1.1.0/24 网络,给 R2 配置了一条静态路由:

R2 (config)# ip route 1.1.1.0 255.255.255.0 192.168.12.1

这样 R2 确实是能够访问 1.1.1.0/24 网络了,但是 R3,以及整个 OSPF 域内的其他路由器依然是无法访问的,总不能给所有的 OSPF 路由器们都配置一条静态路由去往 1.1.1.0/24 吧。

解决的办法很简单,就是在 R2 上部署静态路由重发布。命令如下:

R2 (config)# router ospf 1R2 (config-router)# redistribute static subnets

上面这条命令的结果是,R2 的路由表中,所有的静态路由都会被注入到 OSPF 中形成 OSPF 外部路由,并且通过 OSPF 动态地传递到整个 OSPF 域。

3.3 重发布的几个小问题

1. 关联出接口的静态路由 在被 network 时的问题

在这里插入图片描述

R2、R3 跑 RIP,在 R2 上配置静态路由(使用关联出接口的方式进行配置):

R2 (config)# ip route 1.1.1.0 255.255.255.0 serial 0/0

在 R2 上查看路由表,会发现刚才配置的这条路由在路由表中的显示很诡异,“directly connected” 的意思是,路由器将 1.1.1.0/24 网络视为本地的直连网络,这是因为它认为,1.1.1.0/24 这个网络就在家门口 “Serial0/0“。

R2#show ip route
S  1.1.1.0 is directly connected, Serial0/0

接下去,R2 在 RIP 进程中增加如下配置:

R2 (config)# router rip
R2 (config-router)# version 2
R2 (config-router)# no auto-summary
R2 (config-router)# network 192.168.23.0
R2 (config-router)# network 1.0.0.0

则 R2 会将路由 1.1.1.0/24 宣告进 RIP 并将路由通告给 R3。对于 IGP 而言,无论是 RIP、EIGRP 还是 OSPF,要想使用关键字 network 来通告某条路由,这条路由都必须是本地直连的,但是这里是个特例,正是因为采用出接口的方式配置的静态路由,被认为是本地直连,所以才能够使用 network 命令通告。当然,如果将上面的静态路由修改为采用下一跳 IP 地址的方式配置,例如 ip route 1.1.1.0 255.255.255.0 192.168.12.1,那就不行了。

如果环境中,R2 及 R3 换成 EIGRP,则现象与 RIP 一样,R2 会将 1.1.1.0 宣告进 EIGRP
如果换成 OSPF,则无效,即关联出接口的静态路由,在 OSPF 中 network 该路由的网络号时,并不会被宣告进 OSPF。

2. 关联出接口的静态路由 在重发布时的问题

在这里插入图片描述

R2、R3 跑 RIP,在 R2 上配置静态路由(使用关联出接口的方式进行配置):

R2 (config)# ip route 1.1.1.0 255.255.255.0 serial 0/0

此时在 R2 上:

R2 (config)# router ripR2 (config-router)# redistribute connected

结果是 R3 无法学习到 1.1.1.0/24 的路由,换成 EIGRP、OSPF,现象也一样,R2 不会将 1.1.1.0/24 这条路由注入到动态路由协议中。

3. 只有在路由表中存在的路由才能够被重发布

在这里插入图片描述

在 R2 上进行双向重发布,也就是配置 RIP 到 OSPF,以及 OSPF 到 RIP 的重发布。则正常情况下 R1 能够学习到 3.3.3.0/24 路由、R3 能学到 1.1.1.0/24 路由。

如果在 R2 上增加一条静态路由的配置:ip route 1.1.1.0 255.255.255.0 null0,这个时候 R2 路由表中原有的 RIP 的 1.1.1.0 路由因为管理距离的原因,会被静态路由 1.1.1.0/24 覆盖掉,也就是说 R2 的路由表中,关于 1.1.1.0/24 路由现在是 Static 的了。

因此 R2 在将 RIP 重发布到 OSPF 时,路由 1.1.1.0/24 重发布不成功(在路由表中并没有 RIP 路由 1.1.1.0/24),所以 R3 无法学习到 1.1.1.0/24 的路由;

同样,如果 R2 增加配置:ip route 3.3.3.3 255.255.255.0 null0 也是一样的道理。

重发布是看路由表的,例如将 OSPF 重发布到 EIGRP,那么首先目标路由必须得在路由表里有,而且必须是 OSPF 的路由,才能够被注入到 EIGRP。

另外,这里有个小注意事项,回到上面这个图,R2 上部署 RIP 到 OSPF 的重发布,注意 R2 左边这个接口(与 R1 对接的接口)的直连路由也会自动重发布到了 OSPF 中,这是因为该接口是直连并且已经通过 network 的方式通告进了 RIP,因此能够被自动重发布到 OSPF,而无需满足上文提到的条件。


注:原文所有图防盗链不能直接被 csdn 转存,全部重传。

via:

  • 路由重发布 Route Redistribution 红茶三杯新浪博客 红茶三杯 2014-09-06 10:19:34)

    https://blog.sina.com.cn/s/blog_5ec353710102v23a.html

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

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

相关文章

应用层——HTTP

像我们电脑和手机使用的应用软件就是在应用层写的,当我们的数据需要传输的时候换将数据传递到传输层。 应用层专门给用户提供应用功能,比如HTTP,FTP… 我们程序员写的一个个解决我们实际的问题都在应用层,我们今天来聊一聊HTTP。 协议 协议…

【接口自动化_12课_基于Flask搭建MockServer】

知识非核心点,面试题较少。框架搭建的过程中的细节才是面试要点 第三方接口,不方便进行测试, 自己要一个接口去进行模拟。去作为我们项目访问模拟接口。自己写一个接口,需要怎样写 一、flask:轻量级的web应用的框架 安装命令 …

旧系统的会员信息如何导入新系统?

千呼新零售2.0系统是零售行业连锁店一体化收银系统,包括线下收银线上商城连锁店管理ERP管理商品管理供应商管理会员营销等功能为一体,线上线下数据全部打通。 适用于商超、便利店、水果、生鲜、母婴、服装、零食、百货、宠物等连锁店使用。 详细介绍请…

数据库相关概念

MySQL 启动停止 MySQL安装完成之后,在系统启动时,会自动启动MySQL服务,无需手动启动。 手动的通过指令启动停止,以管理员身份运行cmd,进入命令行执行如下指令: net start mysql80 net stop mysql80 注意 …

JMeter使用小功能-(持续更新)

1、jmeter在同一个线程组内,uuid的复用 方式一: 方式二: 2、获得jMeter使用的线程总数 ctx.getThreadGroup().getNumberOfThreads()来表示活动线程总数 int threadNumctx.getThreadGroup().getNumThreads(); String threads Integer…

机械学习—零基础学习日志(高数05——函数概念与特性)

零基础为了学人工智能,真的开始复习高数 本小节讲解隐函数,有点神奇,我竟然完全没有隐函数记忆了。 隐函数 隐函数,我个人通俗理解就是,在复杂的环境里,发现纯净天地。例如,在外太空的某个大陆…

工信部信通院首份全景图 | 天空卫士产品26个版块多覆盖

近日,2024全球数字经济大会——数字安全生态建设专题论坛在北京成功举办,论坛由全球数字经济大会组委会主办,中国信息通信研究院和公安部第三研究所共同承办。论坛上,中国信息通信研究院隆重推出了业界首期《数字安全护航技术能力…

Flink集群搭建

(1)JAVA_HOME 配置 conf/flink-conf.yaml env.java.home (2)与Hadoop关联,如果确认使用Hadoop相关功能,需要关注对应的版本。如果不使用,则随意 使用flink版本 下载最新版本后,将存…

(四)原生js案例之手风琴效果

手风琴效果也是业务开发中一个比较常见的效果,类似QQ那样的折叠功能 效果预览 代码实现 必要的css * {margin: 0;padding: 0;}body {height: 100vh;background: linear-gradient(200deg, #ffff00 0%, #ee82ee 100%);overflow: hidden;}ul {list-style: none;}#List {margin:…

Stable Diffusion:质量高画风清新细节丰富的二次元大模型二次元插图

今天和大家分享一个基于Pony模型训练的二次元模型:二次元插图。关于该模型有4个不同的分支版本。 1.5版本:loar模型,推荐底模型niji-动漫二次元4.5。 xl版本:SDXL模型版本 mix版本:光影减弱,减少SDXL版本…

C/C++ yaml 库

文章目录 一、yaml 介绍1.1 yaml 介绍1.2 yaml 教程1.3 yaml 在线工具1.4 yaml 出现背景 二、C/C yaml 库选型2.2 libfyaml2.3 yaml-cpp 一、yaml 介绍 1.1 yaml 介绍 YAML(YAML Ain’t Markup Language)是一种人类可读的数据序列化格式,通…

模型训练中出现loss为NaN怎么办?

文章目录 一、模型训练中出现loss为NaN原因1. 学习率过高2. 梯度消失或爆炸3. 数据不平衡或异常4. 模型不稳定5. 过拟合 二、 针对梯度消失或爆炸的解决方案1. 使用torch.autograd.detect_anomaly()2. 使用 torchviz 可视化计算图3. 检查梯度的数值范围4. 调整梯度剪裁 三、更具…

uni-app开发日志:unicloud使用时遇到的问题解决汇总(不断补充)

插件安装后提示与原数据库表冲突(2024.7.18) 安装uni-admin后再安装uni-cms,在uni-admin中添加好菜单,结果提示该错误 回到hbuilder中uniCloud/database中找到冲突的部分 比较一下,选中老的删除 opendb-news-articl…

HarmonyOS根据官网写案列~ArkTs从简单地页面开始

Entry Component struct Index {State message: string 快速入门;build() {Column() {Text(this.message).fontSize(24).fontWeight(700).width(100%).textAlign(TextAlign.Start).padding({ left: 16 }).fontFamily(HarmonyHeiTi-Bold).lineHeight(33)Scroll() {Column() {Ba…

eclipse免安装版64位 2018版本

前言 eclipse是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。 一、下载地址 下载地址:http://source/download 选择如下图红色框文件内容下载 二、安装步骤 1、…

Day16_集合与迭代器

Day16-集合 Day16 集合与迭代器1.1 集合的概念 集合继承图1.2 Collection接口1、添加元素2、删除元素3、查询与获取元素不过当我们实际使用都是使用的他的子类Arraylist!!! 1.3 API演示1、演示添加2、演示删除3、演示查询与获取元素 2 Iterat…

分词任务介绍-(十)

分词任务 中文分词正向最大匹配实现方式一实现方式二 反向最大匹配双向最大匹配jieba分词上述分词方法的缺点总结基于机器学习 总结分词技术经验总结 中文分词 正向最大匹配 分词的步骤 1.收集整理一个词表,类似于字典。如下图 2.对于待分词的句子,或者…

机器学习西瓜书笔记(一)

机器学习西瓜书笔记 第一章(chapter 1) 绪论 (参考机器学习西瓜书)第一节(section 1)引言第二节(section 2)基本术语第三节(section 3)假设空间第四节(section 4)归纳偏好第五节(section 5)发展历程第六节(section 6)应用现状第一章(chapter 1) 绪论 (参考机…

C++编程小游戏------斗罗大陆(1)魂力测评和武魂觉醒

#include <bits/stdc.h> #include <windows.h> using namespace std; string name,wh; int hl,wh1; int gj50,fy50,jy5000,hp60; int main() { // 共十个武魂["昊天锤","蓝电霸王龙","七杀剑","火凤凰","尖尾雨燕&qu…

麒麟系统arm架构上部署开发环境。

今天早早来到公司&#xff0c;这也是再公司搬址前在老地址待得最后一天&#xff0c;昨天把前面重要的一个任务也完成的差不多了&#xff0c;遂现在记录一下。 收到任务&#xff0c;要将公司的开发环境和生产环境配置在银河麒麟v10服务器上。这个服务器是向华为申请得到的&…