2024年7月

导读:目前主流的微服务治理框架主要是Spring Cloud。而Istio作为新一代微服务框架,越来越受到关注。在本文中,我们分享如何选择这两种微服务框架。

275b48027209b008c7eac85c3cd084a8.png

Istio被引入的主要原因是传统微服务存在以下问题。

  • 多语言技术栈不统一:C++、Java、PHP、Go。Spring Cloud无法提出非Java语言的微服务治理。

  • 服务治理周期长:微服务治理框架与业务耦合,上线周期长,策略调整周期长。

  • 产品能力弱:Spring Cloud缺乏平台化和产品化的能力,可视化能力弱。

那么,是不是说企业一定需要使用Istio?不是。表2-2是对Spring Cloud与Istio的简单对比。

▼表2-2 Spring Cloud与Istio的对比与选择

acc1051cbe150e7da6a3336918e13a63.png

也就是说,如果企业的开源语言主要是Java、更新升级不频繁、无过多高级治理功能需求、业务规模不是非常大,使用Spring Cloud是比较合适的。

如果企业要引入Istio,引入成本有多高?具体分三种情况,如表2-3所示。

▼表2-3 企业引入Istio的成本

2368fe9dacd86496a48d83b991ed7280.png

接下来,我们对在OpenShift上通过Spring Cloud和Istio实现的企业微服务治理进行对比,如表2-4所示。

▼表2-4 Spring Cloud与Istio的实现对比

ea1306783dea186d42ee141b058983f3.png

94a0d33c5b68e332e4af0839a7132ae6.png

从开放性以及先进性角度来说,建议将服务网格Istio作为首选微服务应用框架。接下来我们介绍Istio在实践中的使用建议。

Istio运维方面的建议包括版本选择、备用环境、评估范围、配置生效、功能健壮性参考、入口流量选择。当然,这些建议只是基于目前我们在测试过程中得到的数据总结的。随着Istio使用越来越广泛,相信最佳实践将会越来越丰富。

1. 版本选择

Istio是一个迭代很快的开源项目。截止到2021年5月,社区最新的Istio版本为1.9。

频繁的版本迭代会给企业带来一些困扰:是坚持使用目前已经测试过的版本,还是使用社区的最新版本?

在前文中我们已经提到,红帽针对Istio有自己的企业版,通过Operator进行部署和管理。出于安全性和稳定性的考虑,红帽Istio往往比社区要晚两个小版本左右。因此建议使用红帽Istio的最新版本。目前看,社区的最新版本的Istio的稳定性往往不尽如人意。

98bfa1ae06467be84e703140c3955b88.png

2. 备用环境

针对相同的应用,在OpenShift环境中部署一套不被Istio管理的环境。比如文中的三层微服务,独立启动一套不被Istio管理的应用,使用OpenShift原本的访问方式即可。

这样做的好处是,每当进行Istio升级或者部分参数调整时都可以提前进行主从切换,让流量切换到没有被Istio管理的环境中,将Istio升级调整验证完毕后再将流量切换回来。

3. 评估范围

由于Istio对微服务的管理是非代码侵入式的。因此通常情况下,业务服务需要进行微服务治理,需要被Istio纳管。而对于没有微服务治理要求的非业务容器,不必强行纳管在Istio中。当非业务容器需要承载业务时,被Istio纳管也不需要修改源代码,重新在OpenShift上注入Sidecar部署即可。

4. 配置生效

如果系统中已经有相关对象的配置,我们需要使用oc replace -f指定配置文件来替换之前配置的对象。Istio中有的配置策略能够较快生效,有的配置需要一段时间才能生效,如限流、熔断等。新创建策略(oc create -f)的生效速度要高于替换性策略(oc replace -f)。因此在不影响业务的前提下,可以在应用新策略之前,先删除旧策略。

此外,Istio的配置生效,大多是针对微服务所在的项目,但也有一些配置是针对Istio系统。因此,在配置应用时,要注意指定对应的项目。

在OpenShift中,Virtual Service和Destination Rules都是针对项目生效,因此配置应用时需要指定项目。

5. 功能健壮性参考

从笔者大量的测试效果看,健壮性较强的功能有基于目标端的蓝绿、灰度发布,基于源端的蓝绿、灰度发布,灰度上线,服务推广,延迟和重试,错误注入,mTLS,黑白名单。

健壮性有待提升的功能有限流和熔断。

所以,从整体上看,Istio的功能虽日趋完善,但仍有待提升。

6. 入口流量方式选择

在创建Ingress网关的时候,会自动在OpenShift的Router上创建相应的路由。Ingress网关能够暴露的端口要多于Router。所以,我们可以根据需要选择通过哪条路径来访问应用。

在Istio体系中的应用不使用Router也可以正常访问微服务。但是PaaS上运行的应用未必都是Istio体系下的,其他非微服务或者非Istio体系下的服务还是要通过Router访问。此外,Istio本身的监控系统和Kiali的界面都是通过Router访问的。

相比Spring Cloud,Istio较好地实现了微服务的路由管理。但在实际生产中,仅有微服务的路由管理是不够的,还需要诸如不同微服务之间的业务系统集成管理、微服务的API管理、微服务中的规则流程管理等。

本文摘编自《金融级IT架构与运维:云原生、分布式与安全》,经出版方授权发布。(ISBN:978-7-111-69829-6)

eb38f4db94b27176d07262edfad9c157.png

《金融级IT架构与运维:云原生、分布式与安全》


1 Service Mesh概述

微服务架构可谓是当前软件开发领域的技术热点,它在各种博客、社交媒体和会议演讲上的出镜率非常之高,无论是做基础架构还是做业务系统的工程师,对微服务都相当关注,而这个现象与热度到目前为止,已经持续了近 5 年之久。

尤其是近些年来,微服务架构逐渐发展成熟,从最初的星星之火到现在的大规模的落地与实践,几乎已经成为分布式环境下的首选架构。微服务成为时下技术热点,大量互联网公司都在做微服务架构的落地和推广。同时,也有很多传统企业基于微服务和容器,在做互联网技术转型。

而在这个技术转型中,国内有一个趋势,以 Spring Cloud 与 Dubbo 为代表的微服务开发框架非常普及和受欢迎。然而软件开发没有银弹,基于这些传统微服务框架构建的应用系统在享受其优势的同时,痛点也越加明显。这些痛点包括但不限于以下几点:

  • 侵入性强。想要集成 SDK 的能力,除了需要添加相关依赖,往往还需要在业务代码中增加一部分的代码、或注解、或配置;业务代码与治理层代码界限不清晰。

  • 升级成本高。每次升级都需要业务应用修改 SDK 版本,重新进行功能回归测试,并且对每一台机器进行部署上线,而这对于业务方来说,与业务的快速迭代开发是有冲突的,大多不愿意停下来做这些与业务目标不太相关的事情。

  • 版本碎片化严重。由于升级成本高,而中间件却不会停止向前发展的步伐,久而久之,就会导致线上不同服务引用的 SDK 版本不统一、能力参差不齐,造成很难统一治理。

  • 中间件演变困难。由于版本碎片化严重,导致中间件向前演进的过程中就需要在代码中兼容各种各样的老版本逻辑,带着 “枷锁” 前行,无法实现快速迭代。

  • 内容多、门槛高。Spring Cloud 被称为微服务治理的全家桶,包含大大小小几十个组件,内容相当之多,往往需要几年时间去熟悉其中的关键组件。而要想使用 Spring Cloud 作为完整的治理框架,则需要深入了解其中原理与实现,否则遇到问题还是很难定位。

  • 治理功能不全。不同于 RPC 框架,Spring Cloud 作为治理全家桶的典型,也不是万能的,诸如协议转换支持、多重授权机制、动态请求路由、故障注入、灰度发布等高级功能并没有覆盖到。而这些功能往往是企业大规模落地不可获缺的功能,因此公司往往还需要投入其它人力进行相关功能的自研或者调研其它组件作为补充。

以上列出了传统微服务框架的局限性,但这并不意味着它们就一无是处了。在中小企业,采用 Spring Cloud 这样的传统微服务框架已经可以满足绝大部分服务治理的需求,并且借此快速推进微服务化改造。这些痛点往往是技术发展到一定的程度必然要经历的阶段,这些痛点促使技术不断发展、不断前进。

2 什么是服务网格?

在过去的几十年中,我们已经看到了单体应用程序开始拆分为较小的应用程序。此外,诸如Docker之类的容器化技术和诸如Kubernetes之类的编排系统加速了这一变化。

尽管在像Kubernetes这样的分布式系统上采用微服务架构有许多优势,但它也具有相当的复杂性。由于分布式服务必须相互通信,因此我们必须考虑发现,路由,重试和故障转移。

还有其他一些问题,例如安全性和可观察性,我们还必须注意以下问题:

现在,在每个服务中建立这些通信功能可能非常繁琐,尤其是当服务范围扩大且通信变得复杂时,更是如此。这正是服务网格可以为我们提供帮助的地方。基本上,服务网格消除了在分布式软件系统中管理所有服务到服务通信的责任;

服务网格能够通过一组网络代理来做到这一点。本质上,服务之间的请求是通过与服务一起运行但位于基础结构层之外的代理路由的:

这些代理基本上为服务创建了一个网状网络——因此得名为服务网格!通过这些代理,服务网格能够控制服务到服务通信的各个方面。这样,我们可以使用它来解决分布式计算的八个谬误,这是一组断言,描述了我们经常对分布式应用程序做出的错误假设。

3 服务网格特征

现在,让我们了解服务网格可以为我们提供的一些功能。请注意,实际功能列表取决于服务网格的实现。但是,总的来说,我们应该在所有实现中都期望其中大多数功能。

我们可以将这些功能大致分为三类:流量管理,安全性和可观察性。

3.1 流量管理

服务网格的基本特征之一是流量管理。这包括动态服务发现和路由。尤其影子流量和流量拆分功能,这些对于实现金丝雀发布和A/B测试非常有用。

由于所有服务之间的通信都是由服务网格处理的,因此它还启用了一些可靠性功能。例如,服务网格可以提供重试,超时,速率限制和断路器。这些现成的故障恢复功能使通信更加可靠。

3.2 安全性

服务网格通常还处理服务到服务通信的安全性方面。这包括通过双向TLS(mTLS)强制进行流量加密,通过证书验证提供身份验证以及通过访问策略确保授权。
服务网格中还可能存在一些有趣的安全用例。例如,我们可以实现网络分段,从而允许某些服务进行通信而禁止其他服务。而且,服务网格可以为审核需求提供精确的历史信息。

3.3 可观察性

强大的可观察性是处理分布式系统复杂性的基本要求。由于服务网格可以处理所有通信,因此正确放置了它可以提供可观察性的功能。例如,它可以提供有关分布式追踪的信息。
服务网格可以生成许多指标,例如延迟,流量,错误和饱和度。此外,服务网格还可以生成访问日志,为每个请求提供完整记录。这些对于理解单个服务以及整个系统的行为非常有用。

4 Istio简介

Istio是最初由IBM,Google和Lyft开发的服务网格的开源实现。它可以透明地分层到分布式应用程序上,并提供服务网格的所有优点,例如流量管理,安全性和可观察性。

它旨在与各种部署配合使用,例如本地部署,云托管,Kubernetes容器以及虚拟机上运行的服务程序。尽管Istio与平台无关,但它经常与Kubernetes平台上部署的微服务一起使用。

从根本上讲, Istio的工作原理是以Sidcar形式将Envoy的扩展版本作为代理布署到每个微服务中:

该代理网络构成了Istio架构的数据平面,这些代理的配置和管理是从控制平面完成的:

控制平面基本上是服务网格的大脑。它为数据平面中的Envoy代理提供发现,配置和证书管理。
    当然,只有在拥有大量相互通信的微服务时,我们才能体现Istio的优势。在这里,sidecar代理在专用的基础架构层中形成一个复杂的服务网格:

Istio在与外部库和平台集成方面非常灵活,例如,我们可以将Istio与外部日志记录平台,遥测或策略系统集成。

5 Istio组件

我们已经看到,Istio体系结构由数据平面和控制平面组成。此外,还有几个使Istio起作用的核心组件。

在本节中,我们将详细介绍这些核心组件;

5.1 数据平面

Istio的数据平面主要包括Envoy代理的扩展版本。Envoy是一个开源边缘和服务代理,可帮助将网络问题与底层应用程序分离开来。应用程序仅向localhost发送消息或从localhost接收消息,而无需了解网络拓扑。

Envoy的核心是在OSI模型的L3和L4层运行的网络代理。它通过使用可插入网络过滤器链来执行连接处理。此外,Envoy支持用于基于HTTP的流量的附加L7层过滤器。而且,Envoy对HTTP/2和gRPC传输具有一流的支持。

Istio作为服务网格提供的许多功能实际上是由Envoy代理的基础内置功能启用的:

  • 流量控制:Envoy通过HTTP,gRPC,WebSocket和TCP流量的丰富路由规则启用细粒度的流量控制应用;

  • 网络弹性:Envoy包括对自动重试,断路和故障注入的开箱即用支持;

  • 安全性:Envoy还可以实施安全策略,并对基础服务之间的通信应用访问控制和速率限制;

Envoy在Istio上表现出色的另一个原因之一是它的可扩展性。Envoy提供了基于WebAssembly的可插拔扩展模型。这在定制策略执行和遥测生成中非常有用。此外,我们还可以使用基于Proxy-Wasm沙箱API的Istio扩展在Istio中扩展Envoy代理。

5.2 控制面

如上所述,控制平面负责管理和配置数据平面中的Envoy代理。在Istio架构中,控制面核心组件是istiod,Istiod负责将高级路由规则和流量控制行为转换为特定于Envoy的配置,并在运行时将其传播到Sidercar。

如果我们回顾一下Istio控制平面的架构,将会注意到它曾经是一组相互协作的独立组件。它包括诸如用于服务发现的Pilot,用于配置的Galley,用于证书生成的Citadel以及用于可扩展性的Mixer之类的组件。由于复杂性,这些单独的组件被合并为一个称为istiod的单个组件。

从根本上来说,istiod仍使用与先前各个组件相同的代码和API。例如,Pilot负责抽象特定于平台的服务发现机制,并将其合成为Sidecar可以使用的标准格式。因此,Istio可以支持针对多个环境(例如Kubernetes或虚拟机)的发现。

此外,istiod还提供安全性,通过内置的身份和凭据管理实现强大的服务到服务和最终用户身份验证。此外,借助istiod,我们可以基于服务身份来实施安全策略。该过程也充当证书颁发机构(CA)并生成证书,以促进数据平面中的相互TLS(MTLS)通信。

6 Istio工作原理

我们已经了解了服务网格的典型特征是什么。此外,我们介绍了Istio架构及其核心组件的基础。现在,是时候了解Istio如何通过其架构中的核心组件提供这些功能了;

我们将专注于我们之前经历过的相同类别的功能;

6.1 流量管理

我们可以使用Istio流量管理API对服务网格中的流量进行精细控制。我们可以使用这些API将自己的流量配置添加到Istio。此外,我们可以使用Kubernetes自定义资源定义(CRD)定义API资源。帮助我们控制流量路由的关键API资源是虚拟服务和目标规则:

微服务应用最大的痛点就是处理服务间的通信,而这一问题的核心其实就是流量管理。首先我们来看看传统的微服务应用在没有 Service Mesh 介入的情况下,是如何完成诸如金丝雀发布这样的路由功能的。我们假设不借助任何现成的第三方框架,一个最简单的实现方法,就是在服务间添加一个负载均衡(比如 Nginx)做代理,通过修改配置的权重来分配流量。这种方式使得对流量的管理和基础设施绑定在了一起,难以维护。

而使用 Istio 就可以轻松的实现各种维度的流量控制。下图是典型的金丝雀发布策略:根据权重把 5% 的流量路由给新版本,如果服务正常,再逐渐转移更多的流量到新版本。

基本上,虚拟服务使我们可以配置如何将请求路由到Istio服务网格中的服务。因此,虚拟服务由一个或多个按顺序评估的路由规则组成。评估虚拟服务的路由规则后,将应用目标规则。目标规则有助于我们控制到达目标的流量,例如,按版本对服务实例进行分组。

Istio 中的流量控制功能主要分为三个方面:

  • 请求路由和流量转移

  • 弹性功能,包括熔断、超时、重试

  • 调试能力,包括故障注入和流量镜像

6.2 安全性

Istio为每个服务提供身份。与每个Envoy代理一起运行的Istio代理与istiod一起使用以自动进行密钥和证书轮换:

Istio提供两种身份验证——对等身份验证和请求身份验证。对等身份验证用于服务到服务的身份验证,其中Istio提供双向TLS作为全栈解决方案。请求身份验证用于最终用户身份验证,其中Istio使用自定义身份验证提供程序或OpenID Connect(OIDC)提供程序提供JSON Web令牌(JWT)验证。

Istio还允许我们通过简单地将授权策略应用于服务来实施对服务的访问控制。授权策略对Envoy代理中的入站流量实施访问控制。这样,我们就可以在各种级别上应用访问控制:网格,命名空间和服务范围。

6.3 可观察性

Istio为网格网络内的所有服务通信生成详细的遥测,例如度量,分布式跟踪和访问日志。Istio生成一组丰富的代理级指标,面向服务的指标和控制平面指标。

之前,Istio遥测体系结构将Mixer作为核心组件。但是从Telemetry v2开始,混音器提供的功能已替换为Envoy代理插件:

此外,Istio通过Envoy代理生成分布式跟踪。Istio支持许多跟踪后端,例如Zipkin,Jaeger,Lightstep和Datadog。我们还可以控制跟踪速率的采样率。此外,Istio还以一组可配置的格式生成服务流量的访问日志。

7 Istio实战

上面我们已经讲述了Istio原理和架构,接下来我们开始实战部分。首先,我们将在Kubernetes集群中安装Istio。此外,我们将使用一个简单的基于微服务的应用程序来演示Istio在Kubernetes上的功能。

7.1 安装

有多种安装Istio的方法,但最简单的方法是下载并解压缩特定操作系统(例如Windows)的最新版本。提取的软件包在bin目录中包含istioctl客户端二进制文件。我们可以使用istioctl在目标Kubernetes集群上安装Istio:

代码语言:javascript

复制

istioctl install --set profile=demo -y

这会使用演示配置文件将Istio组件安装在默认的Kubernetes集群上。我们还可以使用任何其他特定于供应商的配置文件来代替演示;

最后,当我们在此Kubernetes集群上部署任何应用程序时,我们需要指示Istio自动注入Envoy sidecar代理:

代码语言:javascript

复制

kubectl label namespace default istio-injection=enabled

我们在这里使用kubectl的前提是,我们的机器上已经有像Minikube这样的Kubernetes集群和Kubernetes CLI kubectl。

7.2 示例应用

为了演示,我们将想象一个非常简单的在线下订单应用程序。该应用程序包含三个微服务,它们相互交互以满足最终用户的订购请求:

我们没有讨论这些微服务的细节,但是使用Spring Boot和REST API可以很简单地创建它们。最重要的是,我们为这些微服务创建了一个Docker镜像,以便我们可以将它们部署在Kubernetes上;

7.3 部署

在像Minikube这样的Kubernetes集群上部署容器化的工作负载非常简单。我们将使用Deployment和Service资源类型来声明和访问工作负载。通常,我们在YAML文件中定义它们:

代码语言:javascript

复制

apiVersion: apps/v1beta1kind: Deploymentmetadata:
  name: order-service  namespace: defaultspec:
  replicas: 1
  template:
    metadata:
      labels:
        app: order-service        version: v1    spec:
      containers:
      - name: order-service        image: kchandrakant/order-service:v1        resources:
          requests:
            cpu: 0.1
            memory: 200---apiVersion: v1kind: Servicemetadata:
  name: order-servicespec:
  ports:
  - port: 80
    targetPort: 80
    protocol: TCP
    name: http  selector:
    app: order-service

对于订单服务的“部署和服务”,这是一个非常简单的定义。同样,我们可以为库存服务和运输服务定义YAML文件;

使用kubectl部署这些资源也非常简单:

代码语言:javascript

复制

kubectl apply -f booking-service.yaml -f inventory-service.yaml -f shipping-service.yaml

由于我们已经为默认命名空间启用了自动注入Envoy sidecar代理,因此一切都会由istiod来处理。或者,我们可以使用istioctl的kube-inject命令手动注入Envoy sidecar代理。

7.4 访问应用

现在,Istio主要负责处理所有的网状网络流量。因此,默认情况下,不允许进出网格的任何流量。Istio使用网关来管理来自网格的入站和出站流量。这样,我们可以精确地控制进入或离开网格的流量。Istio提供了一些预配置的网关代理部署:istio-ingressgateway和istio-egressgateway。

我们将为我们的应用程序创建一个网关和一个虚拟服务来实现此目的:

代码语言:javascript

复制

apiVersion: networking.istio.io/v1alpha3kind: Gatewaymetadata:
  name: booking-gatewayspec:
  selector:
    istio: ingressgateway  servers:
  - port:
      number: 80
      name: http      protocol: HTTP
    hosts:
    - "*"---apiVersion: networking.istio.io/v1alpha3kind: VirtualServicemetadata:
  name: bookingspec:
  hosts:
  - "*"
  gateways:
  - booking-gateway  http:
  - match:
    - uri:
        prefix: /api/v1/booking    route:
    - destination:
        host: booking-service        port:
          number: 8080

在这里,我们利用了Istio提供的默认入口控制器。此外,我们已经定义了一个虚拟服务,将我们的请求路由到预订服务。

同样,我们也可以为来自网格的出站流量定义出口网关;

8 Istio的常见案例

现在,我们已经看到了如何使用Istio在Kubernetes上部署一个简单的应用程序。但是,我们仍然没有利用Istio为我们启用的任何有趣功能。在本节中,我们将介绍服务网格的一些常见用例,并了解如何使用Istio为我们的简单应用程序实现它们。

8.1 请求路由

我们可能要以特定方式处理请求路由的原因有多个。例如,我们可能会部署微服务的多个版本,例如运输服务,并希望仅将一小部分请求路由到新版本;

我们可以使用虚拟服务的路由规则来实现这一点:

代码语言:javascript

复制

apiVersion: networking.istio.io/v1alpha3apiVersion: networking.istio.io/v1alpha3kind: VirtualServicemetadata:
  name: shipping-servicespec:
  hosts:
    - shipping-service  http:
  - route:
    - destination:
        host: shipping-service        subset: v1      weight: 90
    - destination:
        host: shipping-service        subset: v2      weight: 10---apiVersion: networking.istio.io/v1alpha3kind: DestinationRulemetadata:
  name: shipping-servicespec:
  host: shipping-service  subsets:
  - name: v1    labels:
      version: v1  - name: v2    labels:
      version: v2

路由规则还允许我们基于诸如header参数之类的属性来定义匹配条件。此外,目的地字段指定与条件匹配的流量的实际目的地;

8.2 熔断

熔断器基本上是一种软件设计模式,用于检测故障并封装防止故障进一步级联的逻辑。这有助于创建有弹性的微服务应用程序,以限制故障和延迟尖峰的影响。

在Istio中,我们可以使用DestinationRule中的trafficPolicy配置在调用诸如清单服务之类的服务时应用熔断:

代码语言:javascript

复制

apiVersion: networking.istio.io/v1alpha3kind: DestinationRulemetadata:
  name: inventory-servicespec:
  host: inventory-service  trafficPolicy:
    connectionPool:
      tcp:
        maxConnections: 1
      http:
        http1MaxPendingRequests: 1
        maxRequestsPerConnection: 1
    outlierDetection:
      consecutive5xxErrors: 1
      interval: 1s      baseEjectionTime: 3m      maxEjectionPercent: 100

在这里,我们将DestinationRule配置为maxConnections为1,httpMaxPendingRequests为1,maxRequestsPerConnection为1。这实际上意味着,如果我们将并发请求数超过1,熔断器将开始trap一些请求。

8.3 启用双向TLS

双向身份验证是指双方在诸如TLS之类的身份验证协议中同时相互进行身份验证的情况。默认情况下,具有代理的服务之间的所有流量在Istio中都使用相互TLS。但是,没有代理的服务仍继续以纯文本格式接收流量。

虽然Istio将具有代理的服务之间的所有流量自动升级为双向TLS,但这些服务仍可以接收纯文本流量。我们可以选择使用PeerAuthentication策略在整个网格范围内实施双向TLS:

代码语言:javascript

复制

apiVersion: "security.istio.io/v1beta1"kind: "PeerAuthentication"metadata:
  name: "default"
  namespace: "istio-system"spec:
  mtls:
    mode: STRICT

我们还提供了对每个命名空间或服务而不是在网格范围内强制实施双向TLS的选项。但是,特定于服务的PeerAuthentication策略优先于命名空间范围的策略。

8.4 使用JWT进行访问控制

JSON Web令牌(JWT)是用于创建数据的标准,该数据的有效载荷中包含声明许多声明的JSON。为了在身份提供者和服务提供者之间传递经过身份验证的用户的身份和标准或自定义声明,这一点已被广泛接受。

我们可以在Istio中启用授权策略,以允许访问基于JWT的预订服务之类的服务:

代码语言:javascript

复制

apiVersion: security.istio.io/v1beta1kind: AuthorizationPolicymetadata:
  name: require-jwt  namespace: defaultspec:
  selector:
    matchLabels:
      app: booking-service  action: ALLOW
  rules:
  - from:
    - source:
       requestPrincipals: ["testing@baeldung.com/testing@baeldung.io"]

在这里,AuthorizationPolicy强制所有请求具有有效的JWT,并将requestPrincipal设置为特定值。Istio通过组合声明JWT的iss和sub来创建requestPrincipal属性;

9 思考

因此,到目前为止,我们已经看到像Istio这样的服务网格如何使我们更轻松地处理诸如微服务之类的分布式架构中的许多常见问题。但是尽管如此,Istio还是一个复杂的系统,会增加最终部署的复杂性。与其他所有技术一样,Istio并非灵丹妙药,必须谨慎使用。

9.1 我们应该始终使用服务网格吗?

尽管我们已经看到了使用服务网格的足够理由,但下面列举了一些可能促使我们不使用它的原因:

  • 服务网格处理所有服务到服务的通信,而部署和操作服务网格则需要支付额外的费用。对于较简单的应用程序,这可能是不合理的

  • 由于我们已经习惯于处理一些此类问题,例如应用程序代码中的熔断,因此可能导致服务网格中的重复处理

  • 越来越依赖于诸如服务网格之类的外部系统可能会损害应用程序的可移植性,尤其是因为没有针对服务网格的行业标准

  • 由于服务网格通常通过拦截通过代理的网格流量来工作,因此它可能会给请求增加不希望的延迟

  • 服务网格增加了许多其他组件和配置,需要精确处理。这需要专业知识,并增加了学习曲线

  • 最后,我们可能最终将操作逻辑(应在服务网格中存在)与业务逻辑(不应在服务网格中)混合在一起

因此,正如我们所看到的,服务网格的故事不仅仅涉及好处,但这并不意味着它们不是真的。对我们来说,重要的是要仔细评估我们的需求和应用程序的复杂性,然后权衡服务网格的好处和它们所增加的复杂性;

9.2 Istio的替代品有哪些?

尽管Istio非常受欢迎,并得到了业内一些领导者的支持,但它当然不是唯一的选择。尽管我们在这里无法进行全面的比较,但让我们看一下Linkerd和Consul这两个选项。
Linkerd是已为Kubernetes平台创建的开源服务网格。它也很受欢迎,目前在CNCF中具有孵化项目的地位。它的工作原理类似于Istio等任何其他服务网格。它还利用TCP代理来处理网格流量。Linkerd使用用Rust编写的微型代理,称为Linkerd代理。

总体而言,Linkerd并不比Istio复杂,因为它仅支持Kubernetes。但是,除此之外,Linkerd中可用的功能列表与Istio中可用的功能非常相似。Linkerd的核心架构也非常类似于Istio。基本上,Linkerd包含三个主要组件:用户界面,数据平面和控制平面。

Consul是HashiCorp的服务网格的开源实现。它的好处是可以与HashiCorp的其他基础架构管理产品套件很好地集成,以提供更广泛的功能。Consul中的数据平面可以灵活地支持代理以及本机集成模型。它带有内置代理,但也可以与Envoy一起使用。

除了Kubernetes,Consul还可以与Nomad等其他平台一起使用。Consul通过在每个节点上运行Consul代理以执行运行状况检查来工作。这些代理与一台或多台存储和复制数据的Consul服务器通信。尽管它提供了服务网格(如Istio)的所有标准功能,但它是部署和管理的更复杂的系统。

译文链接:https://zhuanlan.zhihu.com/p/369068128

https://www.servicemesher.com/istio-handbook/concepts/pilot.html


KIS系列:
KIS V7.5SP2  http://www.kingdee.com/agentdown/KISV75sp2.rar
KIS标准版 V7.5 SP2(软加密)http://www.kingdee.com/agentdown/KisBZB75sp2_soft.rar 
KIS迷你版 V7.5 SP2(软加密)http://www.kingdee.com/agentdown/KisMNB75sp2_soft.rar 
KIS标准版 V7.6 http://kisdownload.kingdee.com/downloads/kisstd.rar 
KIS迷你版 V7.6 http://kisdownload.kingdee.com/downloads/kismini.rar 
KIS标准版、迷你版 V7.6SP1  http://kisdownload.kingdee.com/downloads/KISV7.6SP1.rar 
KIS标准版、迷你版 V8.0  http://kisdownload.kingdee.com/downloads/kisbzmnbv8.0.rar 
KIS标准版、迷你版 V8.1 http://kisdownload.kingdee.com/downloads/KISBZMNBV8.1.rar
KIS行政事业版 V7.6 http://kisdownload.kingdee.com/downloads/xzb_76.rar 
KIS行政事业版2007 V8.0 http://kisdownload.kingdee.com/downloads/KISXZSY2007.rar 
KIS行政事业版V8.1 http://kisdownload.kingdee.com/downloads/KISXZSYV8.1.rar 
KIS商贸版 V1.0  http://kisdownload.kingdee.com/downloads/kissmb.rar 
KIS商贸版 V1.1 http://kisdownload.kingdee.com/downloads/kissmbV1.1.rar 
KIS商贸版 V1.2 http://kisdownload.kingdee.com/downloads/KISSMBV1.2.rar
KIS业务版 V8.1 http://kisdownload.kingdee.com/downloads/kisoperation.rar 
KIS仓存版 V8.1 http://kisdownload.kingdee.com/downloads/stock_81.rar 
KIS服装鞋帽版 V8.2 http://kisdownload.kingdee.com/downloads/kisfzv82.rar 
KIS专业版 V9.0 http://kisdownload.kingdee.com/downloads/KIS_90.rar 
KIS专业版 V9.1 http://kisdownload.kingdee.com/downloads/KISV9.1.rar 
KIS专业版 V9.1SP1 http://kisdownload.kingdee.com/downloads/kisv9.1sp1.rar 
KIS专业版 V9.2 http://kisdownload.kingdee.com/downloads/KIS_V9.2.rar
KIS教学版 V9.1SP1 http://kisdownload.kingdee.com/downloads/kisjxbv9.1SP1.rar 
KIS BOS V1.0 http://kisdownload.kingdee.com/telecom/kisbos.rar 
KIS BOS V2.0 http://kisdownload.kingdee.com/telecom/kisbos20.rar 
K/3:
K3 V10.3 正式版安装盘1
http://download.mykingdee.com/download/products/setup/K3V10.3/K3103Setup.rar 
K3 V10.3 正式版安装盘2 
http://download.mykingdee.com/download/products/setup/K3V10.3/k3103help.rar 
K3 V10.3 正式版资源盘
http://download.mykingdee.com/download/products/setup/K3V10.3/K3103Resource.rar 
K/3 V10.4 (DVD) 
http://download.mykingdee.com/download/products/setup/K3V10.4/K3V104DVDSetup.rar 
K/3 V11.0 (DVD) 
http://download.mykingdee.com/download/products/setup/K3V11.0_DVDSetup.rar 
维护工具:
K/3、KIS系列通用加密卡驱动程序5.41.1版
http://www.kingdee.com/agentdown/ssd5411-32bit.exe 
K/3、KIS系列通用加密卡驱动程序5.42.1版 
http://www.kingdee.com/agentdown/Ssd5421FullCD.zip  
K/3、KIS系列通用加密卡诊断程序6.3.0版 
http://www.kingdee.com/agentdown/SuperproMedic.exe   
K/3、KIS系列通用加密卡驱动程序7.0.0版
http://www.kingdee.com/agentdown ... nInstaller7.0.0.exe  
K/3、KIS系列通用加密卡驱动程序卸载工具1.1
http://www.kingdee.com/agentdown/SSDCleanup11.zip 
Microsoft Data Access Components (MDAC) 2.8 简体中文版
http://www.kingdee.com/agentdown/MDAC_TYP_SC.EXE 
KIS7.5升级至K/3V10.3工具
http://www.kingdee.com/agentdown/KIS75updateK3V103tool.rar 
KIS7.x硬加密版本残留文件清除工具
http://www.kingdee.com/agentdown/PT006510.rar 
KIS帐套Check工具
http://www.kingdee.com/agentdown/Check3000.exe 
相关补丁:
KIS7.5系列凭证录入自动退出补丁
http://www.kingdee.com/agentdown/kis75.rar  
KIS7.5SP2 to 7.5SP4升级补丁
http://www.kingdee.com/agentdown/PT006759.rar 
KIS标准版V7.6多帐套补丁
http://61.145.164.250/patch/tech/PT003462.rar 
KIS迷你版V7.6多帐套补丁
http://61.145.164.250/patch/tech/PT003463.rar 
KIS行政事业版V7.6并行核算凭证转换工具
http://www.kingdee.com/agentdown/PT004409.rar 
K3会计准则转换工具
http://www.kingdee.com/agentdown/New Accounting Standards converter.rar 
套打资料:
KIS 激光模板 http://www.acncn.com/com/duan011/down/1172627481.rar 
KIS 针式模板   http://www.acncn.com/com/duan011/down/1172627531.rar 
K3(KIS专业版) 激光模板 http://www.acncn.com/com/duan011/down/1135662998.rar 
K3(KIS专业版) 针式模板 http://www.acncn.com/com/duan011/down/1172626797.rar 
KIS系统多栏帐—项目主辅表超过19栏使用 激光(多达45栏)
http://www.acncn.com/com/duan011/down/1142936815.rar 
KIS系统多栏帐—项目主辅表超过19栏使用 针式(多达45栏)
http://www.acncn.com/com/duan011/down/1143165091.rar
K3 多栏主辅表--主辅表超过19栏 激光(多达110栏)
http://www.acncn.com/com/duan011/down/1172627217.rar 
K3 多栏帐主辅表-- 适用主辅超过19栏 针式(多达110栏)
http://www.acncn.com/com/duan011/down/1142568175.rar 
 金蝶万能票据金融版
http://peitao.kingdee.com/download/WNPJ2008.1JRB.rar 
金蝶万能票据2008版(正式安装版)
http://peitao.kingdee.com/download/WNPJ2008ZSB.rar 

以上地址有可能时间太长会失效,请需要下载的朋友尽早下载!
--------------------------------------------------------------------------------------------------------------------------
金蝶KIS记账王
http://kisdownload.kingdee.com/downloads/KIS_JZW.rar
KIS新丝路服装王(批发零售版)
http://kisdownload.kingdee.com/downloads/KISFZLS.rar
KIS新丝路服装王(门店POS版)
http://kisdownload.kingdee.com/downloads/KISFZPOS.rar
KIS新丝路服装王(打菲计件版)
http://kisdownload.kingdee.com/downloads/KISFZDF.rar

金蝶K3 10.4安装盘(含资源):http://download.mykingdee.com/download/products/setup/K3V10.4/K3V104DVDSetup.rar 
K3V10.4
http://download.mykingdee.com/download/products/setup/K3V10.4/K3V104DVDSetup.rar
http://117.21.246.67/download/金蝶安装程序V10.4/安装盘一.rar
http://117.21.246.67/download/金蝶安装程序V10.4/安装盘二.rar
http://117.21.246.67/download/金蝶安装程序V10.4/资源盘.rar 
金蝶K3 10.3安装盘:http://download.mykingdee.com/download/products/setup/K3V10.3/k3103Setup.rar 
金蝶K3 10.3资源盘:http://download.mykingdee.com/download/products/setup/K3V10.3/K3103Resource.rar  
金蝶K3 10.3帮助:http://download.mykingdee.com/download/products/setup/K3V10.3/k3103help.rar  

金蝶K3 v12标准版:
http://partner.kingdee.com/pub/batchupload/K3_V12.0_STANDARD_DVD.part1.rar
http://partner.kingdee.com/pub/batchupload/K3_V12.0_STANDARD_DVD.part2.rar
http://partner.kingdee.com/pub/batchupload/K3_V12.0_STANDARD_DVD.part3.rar
http://partner.kingdee.com/pub/batchupload/K3_V12.0_STANDARD_DVD.part4.rar
http://partner.kingdee.com/pub/batchupload/K3_V12.0_STANDARD_DVD.part5.rar
http://partner.kingdee.com/pub/batchupload/K3_V12.0_STANDARD_DVD.part6.rar
金蝶K3 v12精益版
http://partner.kingdee.com/pub/batchupload/K3_V12.0_LEAN_DVD.part1.rar
http://partner.kingdee.com/pub/batchupload/K3_V12.0_LEAN_DVD.part2.rar
http://partner.kingdee.com/pub/batchupload/K3_V12.0_LEAN_DVD.part3.rar
http://partner.kingdee.com/pub/batchupload/K3_V12.0_LEAN_DVD.part4.rar
http://partner.kingdee.com/pub/batchupload/K3_V12.0_LEAN_DVD.part5.rar
http://partner.kingdee.com/pub/batchupload/K3_V12.0_LEAN_DVD.part6.rar

金蝶K3 V12成长版
http://partner.kingdee.com/pub/batchupload/K3ChengZhangV12.0_DISK.iso
      
http://partner.kingdee.com/pub/batchupload/K3V12_ChineseTraditional.rar
http://partner.kingdee.com/pub/batchupload/K3V12_ChineseSimplified.rar

K/3成长版V12.1安装包下载
手册:http://partner.kingdee.com/pub/batchupload/K3/K3_V12.1_grow_manual.iso
安装包:
         http://partner.kingdee.com/pub/batchupload/K3/K3_V12.1_grow_setup.part1.rar
         http://partner.kingdee.com/pub/batchupload/K3/K3_V12.1_grow_setup.part2.rar
         http://partner.kingdee.com/pub/batchupload/K3/K3_V12.1_grow_setup.part3.rar
         http://partner.kingdee.com/pub/batchupload/K3/K3_V12.1_grow_setup.part4.rar
---------------------------------------------------------------------------------------
商贸零售:
http://downloads.youshang.com/kis/lshw/kis_lingshouwang.rar
http://downloads.youshang.com/kis/lshw/kis_lingshouwang.rar
商贸钢材:
http://downloads.youshang.com/kis/sm/4.1/kis_smgc_4.1.rar
http://downloads.youshang.com/kis/sm/3.0/kis_smgc_3.0.rar
商贸标准:
http://downloads.youshang.com/kis/sm/4.1/kis_smbz_4.1.rar
http://downloads.youshang.com/kis/sm/4.0/kis_smbz_4.0.rar
http://downloads.youshang.com/kis/sm/3.0/kis_smbz_3.0.rar
商贸高级:
http://downloads.youshang.com/kis/sm/4.1/kis_smgj_4.1.rar
http://downloads.youshang.com/kis/sm/4.0/kis_smgj_4.0.rar
http://downloads.youshang.com/kis/sm/3.0/kis_smgj_3.0.rar
商贸基础:
http://downloads.youshang.com/kis/sm/4.1/kis_smjc_4.1.rar
http://downloads.youshang.com/kis/sm/4.0/kis_smjc_4.0.rar
http://downloads.youshang.com/kis/sm/3.0/kis_smjc_3.0.rar
专业版:
http://downloads.youshang.com/kis/zy/12.1/KISV12.1Setup.rar
http://downloads.youshang.com/kis/zy/12.0/KISV12Setup.rar
http://downloads.youshang.com/kis/zy/11.0/KISV11Setup.rar

 

金蝶KIS专业版 12.1   http://downloads.youshang.com/kis/zy/12.1/KISV12.1Setup.rar
 
金蝶KIS商贸基础版 4.1   http://downloads.youshang.com/kis/sm/4.1/kis_smjc_4.1.rar
 
金蝶KIS商贸标准版 4.1   http://downloads.youshang.com/kis/sm/4.1/kis_smbz_4.1.rar

 
金蝶KIS商贸高级版 4.1   http://downloads.youshang.com/kis/sm/4.1/kis_smgj_4.1.rar
 
金蝶KIS商贸钢材版 4.1   http://downloads.youshang.com/kis/sm/4.1/kis_smgc_4.1.rar
 
金蝶KIS商贸零售版 4.1   http://downloads.youshang.com/kis/KISRetailV41_zhengshi.rar
 
金蝶KIS店铺版    http://downloads.youshang.com/kis/dpbupdate/DPBSetup.exe
 
金蝶KIS标准版 9.1   http://downloads.youshang.com/kis/bz/9.1/KIS_BZ_9.1.rar
 
金蝶KIS迷你版 9.1   http://downloads.youshang.com/kis/mn/9.1/KIS_MN_9.1.rar
 
金蝶KIS行政事业版 9.0   http://downloads.youshang.com/kis/xzsy/9.0/KIS_XZSY_9.0.rar
 
金蝶KIS理税王 8.6   http://downloads.youshang.com/kis/csw/8.6/KIS_CSW_8.6.rar    
 
金蝶KIS财税王基础版 8.6   http://downloads.youshang.com/kis/csw/8.6/KIS_CSW_8.6.rar
 
金蝶KIS财税王迷你版 8.6   http://downloads.youshang.com/kis/csw/8.6/KIS_CSW_8.6.rar
 
金蝶KIS财税王标准版 8.6   http://downloads.youshang.com/kis/csw/8.6/KIS_CSW_8.6.rar

云星空标准版8.0官方下载链接:
https://pkgsfile.open.kingdee.com/DVD/V80S/K3Cloud_V8.0_Standard_DVD.zip

云星空企业版8.0官方下载链接:
https://pkgsfile.open.kingdee.com/DVD/V80E/K3Cloud_V8.0_DVD.zip

 

金蝶云星空 7.7 企业版官方下载地址:
http://pkgsfile.open.kingdee.com/DVD/V77E/K3Cloud_V7.7_DVD.zip


金蝶云星空 7.7 标准版官方下载地址:
http://pkgsfile.open.kingdee.com/DVD/V77S/K3Cloud_V7.7_Standard_DVD.zip


重要提醒:
后续 Breed 更新日志和补充说明将首先发布在

https://blog.hackpascal.net/
如有问题可以在这里面留言



最新更新内容:
https://blog.hackpascal.net/2022/07/2022-07-24-breed-update/

[2022-07-24 r1416]

  • 重写整个 Web UI 更新框架:
     1. 提供更完善的 NAND 支持:现在全部使用 NAND 的版本均支持完善的坏块管理功能,包括升级时自动跳过坏块、备份编程器固件时自动跳过坏块。同时使得升级 NAND 编程器固件的功能实用化(从这个版本开始,Breed 将只支持升级由新版本的备份编程器固件功能备份出的“可升级编程器固件”)。
     2. 提供更灵活的升级文件选择:现在部分机型支持升级Bootloader、固件、ART/EEPROM以外的文件,例如单独的kernel/rootfs或者机器的出厂key。
     3. 提供更多的固件备份选择:
      a) 对于 NAND 机器,支持备份两种类型的编程器固件:可升级的编程器固件和Raw 数据。这两种编程器固件数据均包含 OOB 数据。其中可升级编程器固件按照分区表消除了坏块,且备份时开启了ECC;Raw 数据则是NAND中的原始数据,未开启ECC,且保留坏块数据。
      b) 根据机型的不同,部分机型会提供特定分区数据的备份功能。
     并非全部机型都将立即使用该新 Web UI,已经使用的机型将在后面列出。其余部分将逐渐更新。

  • 修复 MT7621 NAND 驱动在部分情况下读取数据出错的问题

  • HC5962/B70 专用版支持备份和升级 bdinfo

  • 小米R3G支持直接升级OpenWrt固件的kernel1和rootfs0;现在OpenWrt、Padavan和原厂固件默认从kernel1启动;PandoraBox固件默认从kernel0启动;支持备份和更新Bdata分区;环境变量和原厂共用同一分区。

  • DW33D 专用版支持升级和启动 NAND 版本的 OpenWrt 固件

  • 新增极路由4Pro HC5961 专用版,默认使用 512MB 内存时序

  • 新增 ZTE E8820S 专用版,支持极路由4 HC5962/B70 固件;支持 MTK SDK 分区的固件;支持启动原厂固件以及升级原厂编程器固件。

  • 使用新 Web UI的机型的版本号升级至 1.2


说明:
- 小米R3G 如果要直接升级 OpenWrt 的 kernel1和rootfs0,需要将闪存布局选择为 "小米 R3G OpenWrt";如果要升级 Bdata,需要将闪存布局选择为 "小米 R3G 原厂"。
- DW33D 需要在 "固件启动设置" 页面选择从 NAND 启动 OpenWrt 还是从 SPI-NOR 启动原厂固件。从 OpenWrt 固件切换回原厂固件时,需要同时回复一次出厂设置,以免原厂固件挂载 jffs2 出错。
- 所有使用 NAND 的专用版,都只支持升级 OpenWrt 的 -factory.bin,不支持 TAR 类型的 -sysupgrade.bin。
- 因作者工作原因,精力有限,因此剩余的型号将逐步更新至 1.2 版本。此外如果 TP-LINK 的专用版因文件体积超过限制,将停止更新。
- E8820 支持的 MTK SDK 固件分区表为:512k(u-boot),512k(u-boot-env),256k(factory),4096k(kernel),-(ubi)


想要某设备的专用 Breed,就得提供对应的设备,否则一切免谈。做不做对我来说完全无所谓。

这是楼主从去年年中自行设计开发的一个全新的 Bootloader,并用于取代 U-Boot。
此 Bootloader 暂取名为 Breed,不是 U-Boot,也不是 U-Boot 的改进版,是全新、独立的、跟 U-Boot 平级的 Bootloader。


科普一下:
Bootloader 意思为引导加载器,即为用于加载操作系统的程序。它是一大类此类功能程序的统称。现在的 BIOS、UEFI、GRUB、RedBoot、U-Boot、CFE、Breed 等都是 Bootloader。
因此,还是上面那句话,Breed 不是由什么东西改名出来的,这就是一个新的东西。看着有些人的话我真的觉得很搞笑。
此外,由上面两句话,如果想从 Breed 刷到其他任何 Bootloader,例如 U-Boot,请在 Breed 固件更新页面选择更新 Bootloader。。。。。。。。。。。。

免费、无限制、不开源

特别提醒:“不死”指的是所有固件更新操作均在 Breed 里面完成。因为有些官方升级固件自带 Bootloader,如果从官方固件的 Web 进行升级,那么会导致 Breed 被覆盖。Breed 在刷入固件时会自动去掉固件自带的 Bootloader,因此能够保证 Breed 本身是“不死”的。

Breed 不支持启动非 Linux 类型的固件,例如 TP/水星/迅捷的 VxWorks 系统。因此如果固件大小小于等于 2MB,那就肯定不能刷了。

Breed 不能智能识别【任何】固件,能支持的固件都是要写代码做判断的。又不是人看一眼就知道哪里是固件。。。

Breed 拥有以下新特性:

  • 实时刷机进度,进度条能准确反映刷机进度

  • Web 页面快速响应

  • 最大固件备份速度,依 Flash 而定,一般能达到 1MB/s

  • 免按复位键进入 Web 刷机模式

  • Telnet 功能,免 TTL 进入 Breed 命令控制台

  • 复位键定义测试功能

  • 固件启动失败自动进入 Web 刷机模式

  • 可自定义位置和大小的环境变量块





[本帖内容]

  • 2楼 - 更新日志

  • 3楼 - 适用机型和 Flash 说明

  • 4楼 - Breed 命令控制台说明及 TTL 刷机

  • 5楼 - 复位键测试说明

  • 6楼 - 环境变量说明、自定义复位键说明、小米 Mini 固件启动设置


[进入 Web 刷机模式]
电脑网络连接设置为自动获取 IP 地址
打开 CMD,运行 ping 192.168.1.1 -t
注意从 r979 开始,这个 IP 地址是可以被修改的,所以在实际操作时,需要替换为修改后的 IP
按住复位键或者WPS键再给路由通电,如果看到路由器的部分或全部LED连闪4次,或 ping 通即表明进入 Web 刷机模式

[免按复位键进入 Web 刷机模式]
通过一个 Breed Enter 工具实现 (需要 Npcap 支持)
https://github.com/nmap/npcap/releases/download/v0.10-r7/npcap-0.10-r7.exe 下载 Npcap,安装时 WinPcap 兼容模式
还是支持一下 Windows XP 吧
点此下载 Windows XP 专用测试版 BreedEnter (使用 WDK 7.1.0 编译): http://breed.hackpascal.net/BreedEnter-VC80-XP.zip

确保路由与电脑通过网线相连

1. 启动 BreedEnter.exe


2. 路由断电再通电


3. 如果程序界面提示如下即表明已进入 Web 刷机模式


[修改串口波特率]

  • 进入 Breed 命令控制台

  • 执行命令 setbrg <波特率> 即可

  • 重启生效



[文件说明]
不再更新的 Breed 文件已移入 https://breed.hackpascal.net/EOL/ ,文件名后面会注明最后的修订号。

文件名说明
BreedEnter.exeBreed 启动中断工具,实现免按复位键进入 Web 刷机模式
md5sum.txt当前版本所有 Breed 文件的 MD5 值,用于校验文件的完整性
breed-mt7620-reset1.binMT7620A / MT7620N 全通用,波特率 57600,复位键 GPIO#1
breed-mt7620-reset2.binMT7620A / MT7620N 全通用,波特率 57600,复位键 GPIO#2
breed-mt7620-reset11.binMT7620A / MT7620N 全通用,波特率 57600,复位键 GPIO#11
breed-mt7620-reset12.binMT7620A / MT7620N 全通用,波特率 57600,复位键 GPIO#12
breed-mt7620-reset13.binMT7620A / MT7620N 全通用,波特率 57600,复位键 GPIO#13
breed-mt7620-reset26.binMT7620A / MT7620N 全通用,波特率 57600,复位键 GPIO#26
breed-mt7620-reset30.binMT7620A / MT7620N 全通用,波特率 57600,复位键 GPIO#30
breed-mt7620-rt-n14u.binMT7620A / MT7620N 全通用,波特率 57600,复位键 GPIO#1,WPS 键 GPIO#2
breed-mt7620-whr-1166dhp.binMT7620A / MT7620N 全通用,波特率 57600,复位键 GPIO#52,AOSS 键 GPIO#53
breed-mt7620-lenovo-y1.bin联想 Y1 (newifi mini) 专用,波特率 115200,复位键 GPIO#11
breed-mt7620-lenovo-y1s.bin联想 Y1S (newifi) 专用,千兆口可用,波特率 115200,复位键 GPIO#11
breed-mt7620-zte-q7.bin中兴 ZTE Q7 专用,波特率 57600,复位键 GPIO#26
breed-mt7620-youku-yk1.bin优酷路由宝专用,波特率 57600,复位键 GPIO#1
breed-mt7620-xiaomi-mini.bin小米 Mini 专用,波特率 115200,复位键 GPIO#30
breed-mt7620-fir302m.bin斐讯 FIR300M/302M 专用,波特率 57600,复位键 GPIO#2
breed-mt7620-phicomm-psg1208.bin斐讯 PSG1208 (K1)/ PSG1218 (K2) 专用,波特率 57600,复位键 GPIO#1
breed-mt7620-hiwifi-hc5761.bin极路由 极壹S (HC5661)/极贰 (HC5761) 专用,波特率 115200,复位键 GPIO#12
breed-mt7620-hiwifi-hc5861.bin极路由 极叁 (HC5861) 专用,千兆LAN可用,波特率 115200,复位键 GPIO#12
breed-mt7620-oye-0001.bin哦耶 Oye-0001 专用,波特率 115200,复位键 GPIO#1
breed-mt7620-airmobi-iplay2.binAirMobi iPlay2 专用,波特率 57600,复位键 GPIO#26
breed-mt7621-newifi-d1.bin联想 Newifi D1 专用,DDR3 内存适用,默认 256MB DDR AC 时序参数,波特率 115200,复位键 GPIO#15,WPS 键 GPIO#18
breed-mt7621-newifi-d2.bin联想 Newifi D2 专用,DDR3 内存适用,默认 512MB DDR AC 时序参数,波特率 115200,复位键 GPIO#3,WPS 键 GPIO#7
breed-mt7621-xunlei-timeplug.bin迅雷时光机 (时光云) 专用,DDR3 内存适用,默认 256MB DDR AC 时序参数,波特率 115200,复位键 GPIO#4
breed-mt7621-youku-l2.bin优酷路由宝 YK-L2 专用,DDR3 内存适用,默认 256MB DDR AC 时序参数,波特率 115200,复位键 GPIO#18,WPS 键 GPIO#17
breed-mt7621-phicomm-k2p.bin斐讯 K2P 专用,DDR3 内存适用,默认 512MB DDR AC 时序参数,波特率 57600,复位键 GPIO#3
breed-mt7621-pbr-m1.binPandoraBox PBR-M1 专用,DDR3 内存适用,默认 512MB DDR AC 时序参数,波特率 115200,复位键 GPIO#18
breed-mt7621-totolink-a3004ns.binTOTOLINK A3004NS 专用,DDR3 内存适用,默认 256MB DDR AC 时序参数,波特率 57600,复位键 GPIO#4,WPS 键 GPIO#3
breed-mt7621-xiaomi-r3g.bin小米路由器 3G 专用,NAND 启动,DDR3 内存适用,默认 256MB DDR AC 时序参数,波特率 115200,复位键 GPIO#18
breed-mt7621-creativebox-v1.binCreativeBox v1 专用,DDR3 内存适用,默认 512MB DDR AC 时序参数,波特率 115200,复位键 GPIO#18
breed-mt7621-hiwifi-hc5962.bin极路由4/HC5962/B70 专用,NAND 启动,DDR3 内存适用,默认 256MB DDR AC 时序参数,波特率 115200,复位键 GPIO#18
breed-mt7621-r6220.binNetgear R6220 专用,NAND 启动,DDR2 内存适用,固定 128MB DDR AC 时序参数,波特率 57600,复位键 GPIO#14,WPS 键 GPIO#7,RFKILL 键 GPIO#8
breed-mt7621-wndr3700v5.binNetgear WNDR3700 v5 专用,DDR2 内存适用,固定 128MB DDR AC 时序参数,波特率 57600,复位键 GPIO#14,WPS 键 GPIO#7,RFKILL 键 GPIO#8
breed-mt7621-gehua-ghl-r-001.bin歌华 GHL-R-001 专用,DDR3 内存适用,默认 512MB DDR AC 时序参数,波特率 57600,复位键 GPIO#18
breed-mt7621-jd-cloud-1.bin京东云路由宝 RE-SP-01B 专用,DDR3 内存适用,默认 512MB DDR AC 时序参数,波特率 115200,复位键 GPIO#18
breed-mt7628-hiwifi-hc5661a.bin极路由 极壹S (HC5661A) 专用,波特率 115200,复位键 GPIO#38
breed-mt7628-oye-0006.bin哦耶 OYE-0006 专用,波特率 115200,复位键 GPIO#38
breed-mt7688-reset38.binMT7628AN/KN 全通用,波特率 57600,复位键 GPIO#38
breed-mt7688-wrtnode2r.binMT7628AN/KN 全通用,波特率 115200,复位键 GPIO#5
breed-rt3050-buffalo-wcr-hp-gn.binBuffalo WCR-HP-GN 专用,SPI 启动,波特率 57600,复位键 GPIO#10,WPS 键 GPIO#0
breed-rt3050-di-524m-b1.binD-LINK DI-624M B1 专用,SPI 启动,波特率 57600,复位键 GPIO#10
breed-rt305x-nor-reset0.binRT305X 通用,NOR 启动,波特率 57600,复位键 GPIO#0
breed-rt305x-nor-reset10.binRT305X 通用,NOR 启动,波特率 57600,复位键 GPIO#10
breed-rt3052-dir-605-b1.binD-LINK DIR-605 B1 专用,NOR 启动,波特率 57600,复位键 GPIO#10,WPS 键 GPIO#0
breed-rt3052-hg255d.bin华为 HG255D 专用,NOR 启动,波特率 115200,复位键 GPIO#4,WPS 键 GPIO#10
breed-rt5350-airmobi-iplay.binAirMobi iPlay 专用,波特率 57600,复位键 GPIO#12
breed-rt5350-hame-a5.bin华美 A5 专用,波特率 57600,复位键 GPIO#0
breed-rt5350-zm-10.bin中沃 ZM-10 专用,波特率 57600,复位键 GPIO#10
breed-ar7161-dir-825-b1.binD-LINK DIR-825 B1 专用,波特率 115200,复位键 GPIO#3,WPS 键 GPIO#8
breed-ar724x.binAR724X 通用,百兆有线,波特率 115200,复位键 GPIO#11,QSS 键 GPIO#12
breed-ar724x-reset11.binAR724X 通用,百兆有线,波特率 115200,复位键 GPIO#11
breed-ar724x-reset12.binAR724X 通用,百兆有线,波特率 115200,复位键 GPIO#12
breed-ar7240-wnr1000v2.binNetgear WNR1000 v2 专用,百兆有线,波特率 115200
breed-ar7242-wr2543nd.binTP-LINK WR2543ND 专用,波特率 115200,复位键 GPIO#11,QSS 键 GPIO#12
breed-ar7242-aruba-ap93.binAruba-AP93 专用,千兆有线,波特率 115200,复位键 GPIO#11,WPS 键 GPIO#12
breed-ar913x.binAR913X 通用,百兆有线,波特率 115200,复位键 GPIO#7,WPS 键 GPIO#3
breed-ar9132-wr1043ndv1.binTP-LINK WR1043ND v1 专用,波特率 115200,复位键 GPIO#7,WPS 键 GPIO#3
breed-ar9331.binAR9331 通用,波特率 115200,复位键 GPIO#11
breed-ar9331-mr12u.binTP-LINK MR12U 专用,波特率 115200,复位键 GPIO#11
breed-ar9331-pisen.bin品胜云路由 (云座易充 WMM003N/无线音乐路由 WPR001N) 专用,波特率 115200,复位键 GPIO#12
breed-ar9331-wr710n.binTP-LINK WR710N/WR720N v3 专用,波特率 115200,复位键 GPIO#11
breed-ar9331-hiwifi-hc6361.bin极路由 极壹 (HC6361) 专用,仅支持 TP 类固件,波特率 115200,复位键 GPIO#11
breed-ar9341.binAR9341 通用,波特率 115200,复位键 GPIO#17
breed-ar9341-wnr2000v4.binNetgear WNR2000 v4 专用,波特率 115200,复位键 GPIO#4
breed-ar9341-pisen-wmp002n.bin品胜云追剧 WMP002N 专用,波特率 115200,复位键 GPIO#17
breed-ar9341-wr800n.binTP-LINK WR800N 专用,波特率 115200,复位键 GPIO#18
breed-ar9342-wr1041nv2.binTP-LINK WR1042N v2 专用,波特率 115200,复位键 GPIO#14
breed-ar9342-huawei-ws322.bin华为 WS322 专用,波特率 115200,复位键 GPIO#0,WPS 键 GPIO#16
breed-ar9344.binAR9344 百兆版,通用,波特率 115200,复位键 GPIO#16
breed-ar9344-ar8327n.binAR9344 + AR8327N 千兆版,通用,波特率 115200,复位键 GPIO#16
breed-ar9344-wdr3320v2.binTP-LINK WDR3320  v2 专用,波特率 115200,复位键 GPIO#16
breed-ar9344-wr941nv6.binTP-LINK WR941N v6 专用,波特率 115200,复位键 GPIO#12
breed-ar9344-mw4530r.bin水星 MW4530R 专用,波特率 115200,复位键 GPIO#17,QSS 键 GPIO#16
breed-ar9344-wndr4300-nand.binNetgear WNDR4300/WNDR3700 v4 专用,NAND 启动,波特率 115200,复位键 GPIO#21,QSS 键 GPIO#12
breed-ar9344-wndr4300-spi.binNetgear WNDR4300/WNDR3700 v4 专用,SPI 启动,波特率 115200,复位键 GPIO#21,QSS 键 GPIO#12
breed-ar9344-wndr4300-spi-recovery.binNetgear WNDR4300/WNDR3700 v4 专用,SPI 启动,仅用于恢复目的,波特率 115200,复位键 GPIO#21,QSS 键 GPIO#12
breed-ar9344-belair20e11.binBelAir20E-11 专用,波特率 115200,复位键 GPIO#17,WPS 键 GPIO#12
breed-ar9344-sgr-w500-n85b-v2.bin国人通信 GRENTECH SGR-W500-N85b v2 专用,波特率 115200,支持 RTL8211E,复位键 GPIO#3
breed-qca953x.binQCA9531/QCA9533,通用,波特率 115200,复位键 GPIO#12
breed-qca953x-letv-lba-047-ch.bin乐视路由专用,波特率 115200,复位键 GPIO#17
breed-qca9558-wr941nv7.binTP-LINK WR941N v7 专用,波特率 115200,复位键 GPIO#17
breed-qca9558-ar8236.binQCA9558 + AR8236 百兆版,通用,波特率 115200,复位键 GPIO#16
breed-qca9558-ar8327n.binQCA9558 + AR8327N 千兆版,通用,波特率 115200,复位键 GPIO#16
breed-qca9558-wr2041nv2.binTP-LINK WR2041N v2 专用,波特率 115200,复位键 GPIO#17
breed-qca9558-wr1043ndv2.binTP-LINK WR1043ND v2 专用,波特率 115200,复位键 GPIO#16
breed-qca9558-dw33d.bin大麦 DW33D 专用,波特率 115200,复位键 GPIO#17
breed-qca956x-uart_rx18_tx20-reset1.binQCA956X 通用,百兆/千兆自适应,波特率 115200,UART RX GPIO#18,TX GPIO#20,复位键 GPIO#1
breed-qca956x-uart_rx18_tx20-reset2.binQCA956X 通用,百兆/千兆自适应,波特率 115200,UART RX GPIO#18,TX GPIO#20,复位键 GPIO#2
breed-qca956x-uart_rx18_tx22-reset1.binQCA956X 通用,百兆/千兆自适应,波特率 115200,UART RX GPIO#18,TX GPIO#22,复位键 GPIO#1
breed-qca956x-uart_rx18_tx22-reset2.binQCA956X 通用,百兆/千兆自适应,波特率 115200,UART RX GPIO#18,TX GPIO#22,复位键 GPIO#2
breed-qca956x-uart_rx19_tx20-reset1.binQCA956X 通用,百兆/千兆自适应,波特率 115200,UART RX GPIO#19,TX GPIO#20,复位键 GPIO#1
breed-qca956x-uart_rx19_tx20-reset2.binQCA956X 通用,百兆/千兆自适应,波特率 115200,UART RX GPIO#19,TX GPIO#20,复位键 GPIO#2
breed-qca956x-uart_rx19_tx20-reset1.binQCA956X 通用,百兆/千兆自适应,波特率 115200,UART RX GPIO#19,TX GPIO#22,复位键 GPIO#1
breed-qca956x-uart_rx19_tx22-reset2.binQCA956X 通用,百兆/千兆自适应,波特率 115200,UART RX GPIO#19,TX GPIO#22,复位键 GPIO#2
breed-qca956x-uart_rx20_tx22-reset1.binQCA956X 通用,百兆/千兆自适应,波特率 115200,UART RX GPIO#20,TX GPIO#22,复位键 GPIO#1
breed-qca956x-uart_rx20_tx22-reset2.binQCA956X 通用,百兆/千兆自适应,波特率 115200,UART RX GPIO#20,TX GPIO#22,复位键 GPIO#2
breed-qca956x-reset2.binQCA956X 百兆版,通用,波特率 115200,复位键 GPIO#2
breed-qca9561-wdr6500v2.bin (不再更新)TP-LINK WDR6500 v2 专用,波特率 115200,复位键 GPIO#1
breed-qca9563-wndr4500v3.binNetgear WNDR4500 v3 专用,波特率 115200,复位键 GPIO#2,WPS 键 GPIO#1
breed-qca9563-phicomm-k2t.bin斐讯 K2T 专用,波特率 115200,复位键 GPIO#2
breed-qca9563-rosinson-wr818.binROSINSON WR818 专用,波特率 115200,复位键 GPIO#2
breed-qca9563-jhr-848q.binJHR-848Q 专用,波特率 115200,复位键 GPIO#2
breed-qca9563-dir-859-a.binD-Link DIR-859 A1/A2 专用,波特率 115200,复位键 GPIO#2
breed-tp9343.binTP9343,通用,波特率 115200,复位键 GPIO#1,WPS 键 GPIO#1


注:专用版能够点亮所有LED

以下是可以支持自定义复位键 GPIO 的特别版

文件名说明
breed-ar7161-blank.binAR7161 专用,支持 AR8035 IP1001 MV88E1116 BCM5481 千兆 PHY
breed-ar913x-blank.binAR913X 专用,仅支持 88E6060 百兆交换机
breed-ar724x-blank.binAR724X 专用,支持内置百兆交换机和 AR8021 千兆 PHY
breed-ar9331-blank.binAR9331 专用,仅支持内置百兆交换机
breed-ar934x-blank.binAR934X 专用,支持内置百兆交换机和  AR8327(N) 千兆交换机、AR8035 RTL8211E 千兆 PHY、RTL8201 百兆 PHY
breed-mt7620-blank.binMT7620 专用,仅支持内置百兆交换机
breed-mt76x8-blank.binMT7628/MT7688 专用,仅支持内置百兆交换机
breed-rt305x-nor-blank.binRT305X 专用,从 NOR 闪存启动,仅支持内置百兆交换机
breed-rt305x-spi-blank.binRT305X 专用,从 SPI 闪存启动,仅支持内置百兆交换机
breed-rt5350-blank.binRT5350 专用,仅支持内置百兆交换机


不再维护的 CPU 才会有此 Blank 版,正常维护的其它的 CPU 依然出专用版和固定复位键的版本

[刷入方式]
跟 U-Boot 相同的刷入方法:

  • 从 PandoraBox U-Boot 中刷入

  • 在固件中使用 mtd 命令刷入

  • 在 U-Boot TTL 中刷入

  • 用编程器刷入


[下载]

360 路由 C301 不能刷,否则变砖后果自负!

请勿在极1原厂固件里刷breed,否则必砖无疑。此hc6361的breed只是用给极1刷TP类型的固件的。

注意:TP-LINK TL-WR710N TL-WR720N v3 只能刷 breed-ar9331-wr710n.bin 专用版。刷成其他的变砖后果自负!

注意:新老版极壹S CPU不同,不能互刷,刷机前请仔细确认。刷成其他的变砖后果自负!

AR/QCA 芯片从 U-Boot 更新到 Breed 后请一定记得检查 MAC 地址是否有效,如果全部是FF,请自行修改!!

楼主搭建的下载服务器链接:
http://breed.hackpascal.net/

鉴于百度网盘实在是太恶心,因此暂时不通过网盘共享了


使用john破解工具,原生破解出花生棒的默认密码,经理24小时,很普通的E3处理器还共享的,垃圾VPS.好了一大堆废话.

原始用户名:root,原始密码:xxoo 对的,就是这么简单,竟然花了我这么久,原始Hash为:

root:$1$TihrG.Sj$Upg5WnR1rVU4DaSm2j.eB1:16119:0:99999:7:::

破解结果截图:

哎,真是一开始不知道密码这么简单啊.

    1. 骑驴玩儿漂移说道:

      2016年10月31日 下午4:57

      哈哈,xxoo,原来是18禁啊!哈哈

      回复

    2. floopy说道:

      2016年11月2日 下午1:58

      默认端口是22么,回家试一下,可以的登录的话开始换程序

      回复

    3. Young说道:

      2018年1月15日 下午4:46

      怎么爆破的能简单说下吗?花生壳pro的密码改了,还得跑爆破。。

      回复

    4. Will说道:

      2018年7月26日 下午12:57

      升级到新固件,Root密码居然被官方改了。。。。。

      回复