随着Internet的发展,人们对网络的可靠性的要求越来越高。对于局域网用户来说,能够时刻与外部网络保持联系是非常重要的。

通常情况下,内部网络中的所有主机都设置一条相同的缺省路由,指向出口网关(即图1中的路由器RouterA),实现主机与外部网络的通信。当出口网关发生故障时,主机与外部网络的通信就会中断。

配置多个出口网关是提高系统可靠性的常见方法,但局域网内的主机设备通常不支持动态路由协议,如何在多个出口网关之间进行选路是个问题。

IETF(Internet Engineering Task Force,因特网工程任务组)推出了VRRP(Virtual Router Redundancy Protocol)虚拟路由冗余协议,来解决局域网主机访问外部网络的可靠性问题。

VRRP是一种容错协议,它通过把几台路由设备联合组成一台虚拟的路由设备,并通过一定的机制来保证当主机的下一跳设备出现故障时,可以及时将业务切换到其它设备,从而保持通讯的连续性和可靠性。

使用VRRP的优势在于:既不需要改变组网情况,也不需要在主机上配置任何动态路由或者路由发现协议,就可以获得更高可靠性的缺省路由。

VRRP协议对应的是RFC3768,该协议仅适用于IPv4。

----------------------------------------

VRRP的基本概念

以下是与VRRP协议相关的基本概念:

概念

解释

VRRP路由器(VRRP Router 运行VRRP的设备,它可能属于一个或多个虚拟路由器。
虚拟路由器(Virtual Router) 由VRRP管理的抽象设备,又称为VRRP备份组,被当作一个共享局域网内主机的缺省网关。 
它包括了一个虚拟路由器标识符和一组虚拟IP地址。
虚拟IP地址(Virtual IP Address) 虚拟路由器的IP地址,一个虚拟路由器可以有一个或多个IP地址,由用户配置。
IP地址拥有者(IP Address Owner) 如果一个VRRP路由器将虚拟路由器的IP地址作为真实的接口地址,则该设备是IP地址拥有者。 
当这台设备正常工作时,它会响应目的地址是虚拟IP地址的报文,如ping、TCP连接等。
虚拟MAC地址 是虚拟路由器根据虚拟路由器ID生成的MAC地址。 
一个虚拟路由器拥有一个虚拟MAC地址,格式为:00-00-5E-00-01-{VRID}。 
当虚拟路由器回应ARP请求时,使用虚拟MAC地址,而不是接口的真实MAC地址。
主IP地址(Primary IP Address) 从接口的真实IP地址中选出来的一个主用IP地址,通常选择配置的第一个IP地址。 
VRRP广播报文使用主IP地址作为IP报文的源地址。
Master路由器(Virtual Router Master) 是承担转发报文或者应答ARP请求的VRRP路由器,转发报文都是发送到虚拟IP地址的。 
如果IP地址拥有者是可用的,通常它将成为Master。
Backup路由器(Virtual Router Backup) 一组没有承担转发任务的VRRP路由器,当Master设备出现故障时,它们将通过竞选成为新的Master。
抢占模式

在抢占模式下,如果Backup的优先级比当前Master的优先级高,将主动将自己升级成Master。

-------------------------------------------------------------------

VRRP的工作原理

VRRP将局域网的一组路由器构成一个备份组,相当于一台虚拟路由器。局域网内的主机只需要知道这个虚拟路由器的IP地址,并不需知道具体某台设备的IP地址,将网络内主机的缺省网关设置为该虚拟路由器的IP地址,主机就可以利用该虚拟网关与外部网络进行通信。

VRRP将该虚拟路由器动态关联到承担传输业务的物理路由器上,当该物理路由器出现故障时,再次选择新路由器来接替业务传输工作,整个过程对用户完全透明,实现了内部网络和外部网络不间断通信。

图1所示,虚拟路由器的组网环境如下:

  • RouterA、RouterB和RouterC属于同一个VRRP组,组成一个虚拟路由器,这个虚拟路由器有自己的IP地址10.110.10.1。虚拟IP地址可以直接指定,也可以借用该VRRP组所包含的路由器上某接口地址。

  • 物理路由器RouterA、RouterB和RouterC的实际IP地址分别是10.110.10.5、10.110.10.6和10.110.10.7。

  • 局域网内的主机只需要将缺省路由设为10.110.10.1即可,无需知道具体路由器上的接口地址。

主机利用该虚拟网关与外部网络通信。路由器工作机制如下:

  • 根据优先级的大小挑选Master设备。Master的选举有两种方法:

    • 比较优先级的大小,优先级高者当选为Master。

    • 当两台优先级相同的路由器同时竞争Master时,比较接口IP地址大小。接口地址大者当选为Master。

  • 其它路由器作为备份路由器,随时监听Master的状态。

    • 当主路由器正常工作时,它会每隔一段时间(Advertisement_Interval)发送一个VRRP组播报文,以通知组内的备份路由器,主路由器处于正常工作状态。

    • 当组内的备份路由器一段时间(Master_Down_Interval)内没有接收到来自主路由器的报文,则将自己转为主路由器。一个VRRP组里有多台备份路由器时,短时间内可能产生多个Master,此时,路由器将会将收到的VRRP报文中的优先级与本地优先级做比较。从而选取优先级高的设备做Master。

从上述分析可以看到,主机不需要增加额外工作,与外界的通信也不会因某台路由器故障而受到影响。

注:1.什么是Master_Down_Timer?====主路由器死亡时间间隔,如果此计时器超时,那么Backup路由器就会宣布主路由器死亡。

2.什么是Master_Down_Interval?====Master_Down_Interval = (3*Advertisement_Interval)+ Skew_time举例来说,一个VRRP实例(也就是一个VRRP虚器)的优先级是100,报文发送间隔是1秒,那么Master_Down_Interval = 3*1s + (256-100)/256s = 3.609秒。

-----------------------------------------------------------

VRRP协议介绍

----------------------------------------------------

VRRP的报文结构

VRRP协议只有一种报文,即VRRP报文。VRRP报文用来将Master设备的优先级和状态通告给同一虚拟路由器的所有VRRP路由器。

VRRP报文封装在IP报文中,发送到分配给VRRP的IPv4组播地址。在IP报文头中,源地址为发送报文的主接口地址(不是虚拟地址或辅助地址),目的地址是224.0.0.18,TTL是255,协议号是112。VRRP报文的结构如图1所示。

图1 VRRP报文结构 

各字段的含义:

    • Version:协议版本号,现在的VRRP为版本2。

    • Type:报文类型,只有一种取值,1,表示Advertisement。

    • Virtual Rtr ID(VRID):虚拟路由器ID,取值范围是1~255。

    • Priority:发送报文的VRRP路由器在虚拟路由器中的优先级。取值范围是0~255,其中可用的范围是1~254。0表示设备停止参与VRRP,用来使备份路由器尽快成为主路由器,而不必等到计时器超时;255则保留给IP地址拥有者。缺省值是100。

    • Count IP Addrs:VRRP广播中包含的虚拟IP地址个数。

    • Authentication Type:验证类型,协议中指定了3种类型:

      • 0:Non Authentication

      • 1:Simple Text Password

      • 2:Reserved

      各字段的含义:

      • RFC2338中Authentication Type取值如下:

      • 0 - No Authentication

      • 1 - Simple Text Password

      • 2 - IP Authentication Header

      • 随后的RFC3768中将Authentication Type取值变更如下:

        • 0 - No Authentication

        • 1 - Reserved

        • 2 - Reserved

        说明:

        变更的原因:实践和分析证明,这些认证方式不能提供真正的安全。而限制TTL=255可以阻止大多数对本地脆弱性的攻击。

      • 实现了Simple Text Password认证方式

      • Advertisement Interval:发送通告报文的时间间隔,缺省为1秒。

      • Checksum:校验和。

      • IP Address(es):虚拟路由器IP地址,地址个数是Count IP Addrs的值。

      • Authentication Data:验证字,目前只有明文认证才用到该部分,对于其它认证方式,一律填0。

      ---------------------------------

      VRRP的状态机

      VRRP协议中定义了三种状态机:初始状态(Initialize)、活动状态(Master)、备份状态(Backup)。其中,只有处于活动状态的设备才可以转发那些发送到虚拟IP地址的报文。

      VRRP状态转换如图1所示。

      Initialize

      设备启动时进入此状态,当收到接口Startup的消息,将转入Backup或Master状态(IP地址拥有者的接口优先级为255,直接转为Master)。在此状态时,不会对VRRP报文做任何处理。

      Master

      当路由器处于Master状态时,它将会做下列工作:

      • 定期发送VRRP报文。

      • 以虚拟MAC地址响应对虚拟IP地址的ARP请求。

      • 转发目的MAC地址为虚拟MAC地址的IP报文。

      • 如果它是这个虚拟IP地址的拥有者,则接收目的IP地址为这个虚拟IP地址的IP报文。否则,丢弃这个IP报文。

      • 如果收到比自己优先级大的报文则转为Backup状态。

      • 如果收到优先级和自己相同的报文,并且发送端的主IP地址比自己的主IP地址大,则转为Backup状态。

      • 当接收到接口的Shutdown事件时,转为Initialize。

      Backup

      当路由器处于Backup状态时,它将会做下列工作:

      • 接收Master发送的VRRP报文,判断Master的状态是否正常。

      • 对虚拟IP地址的ARP请求,不做响应。

      • 丢弃目的MAC地址为虚拟MAC地址的IP报文。

      • 丢弃目的IP地址为虚拟IP地址的IP报文。

      • Backup状态下如果收到比自己优先级小的报文时,丢弃报文,不重置定时器;如果收到优先级和自己相同的报文,则重置定时器,不进一步比较IP地址。

      • 当Backup接收到MASTER_DOWN_TIMER定时器超时的事件时,才会转为Master(Master_Down_Timer)。

      • 当接收到接口的Shutdown事件时,转为Initialize。

      ------------------------------------------------

      提供的VRRP功能,包括主备备份、负载分担备份、VRRP监视接口状态、VRRP快速切换等。

      -----------------------------------------

      主备备份

      这是VRRP提供IP地址备份功能的基本方式。主备备份方式需要建立一个虚拟路由器,该虚拟路由器包括一个Master和若干Backup设备。

      • 正常情况下,业务全部由Master承担。

      • Master出现故障时,Backup设备接替工作。

      ---------------------------------------------------------------------------------------

      负载分担

      现在允许一台路由器为多个作备份。通过多虚拟路由器设置可以实现负载分担。

      负载分担方式是指多台路由器同时承担业务,因此需要建立两个或更多的备份组。

      负载分担方式具有以下特点。

      • 每个备份组都包括一个Master设备和若干Backup设备。

      • 各备份组的Master可以不同。

      • 同一台路由器可以加入多个备份组,在不同备份组中有不同的优先级。

      图1所示:

      • 配置两个备份组:组1和组2;

      • RouterA在备份组1中作为Master,在备份组2中作为Backup;

      • RouterB在备份组1和2中都作为Backup;

      • RouterC在备份组2中作为Master,在备份组1中作为Backup。

      • 一部分主机使用备份组1作网关,另一部分主机使用备份组2作为网关。

      这样,以达到分担数据流,而又相互备份的目的。

      ----------------------------------------------------------------------------------

      监视接口状态

      VRRP可以监视所有接口的状态。当被监视的接口Down或Up时,该路由器的优先级会自动降低或升高一定的数值,使得备份组中各设备优先级高低顺序发生变化,VRRP路由器重新进行Master竞选。

      -------------------------------------------------

      VRRP快速切换

      双向转发检测BFD(Bidirectional Forwarding Detection)机制,能够快速检测、监控网络中链路或者IP路由的连通状况,VRRP通过监视BFD会话状态实现主备快速切换,主备切换的时间控制在1秒以内。

      对于以下情况,BFD都能够将检测到的故障通知接口板,从而加快VRRP主备倒换的速度。

      • 备份组包含的接口出现故障。

      • Master和Backup不直接相连。

      • Master和Backup直接相连,但在中间链路上存在传输设备。

      BFD对Backup和Master之间的实际地址通信情况进行检测,如果通信不正常,Backup就认为Master已经不可用,升级成Master。在以下两种情况下Backup转换为Master:

      • 当两台路由器之间的背靠背连接全部断开时,Backup主动升级成Master,承载上行流量;

      • 当Master重新启动、或Master与交换机之间的链路断开、或与Master相连的交换机重新启动时,Backup主动升级成Master,承载上行流量。

      VRRP快速切换的环境要求:

      • 在Backup上,BFD Session检测的接口必须和Master设备相连;

      • 在Master不可用时,Backup的优先级增加并大于原来Master的优先级,促使自己快速切换为Master。

      ---------------------------------------------------------------

      虚拟IP地址Ping开关

      RFC3768并没有规定虚拟IP地址应不应该Ping通。不能Ping通虚拟IP地址,会给监控虚拟路由器的工作情况带来一定的麻烦,能够Ping通虚拟IP地址可以比较方便的监控虚拟路由器的工作情况,但是带来可能遭到ICMP攻击的隐患。控制Ping通虚拟IP地址的开关命令,用户可以选择是否打开。

      --------------------------------------------------------------------------------

      VRRP的安全功能

      对于安全程度不同的网络环境,可以在报头上设定不同的认证方式和认证字。

      在一个安全的网络中,可以采用缺省设置:路由器对要发送的VRRP报文不进行任何认证处理,收到VRRP报文的路由器也不进行任何认证,认为收到的都是真实的、合法的VRRP报文。这种情况下,不需要设置认证字。

      在有可能受到安全威胁的网络中,VRRP提供简单字符认证,可以设置长度为1~8的认证字。

      --------------------------------------------------------

      VRRP平滑倒换

      概述

      CE设备作为业务系统的网关,需要启用VRRP(Virtual Router Redundancy Protocol)冗余备份功能。

      在路由器主板和备板状态都正常的情况下,VRRP备份组中的Master设备会以Advertisement_Interval间隔定时发送VRRP广播报文,Backup通过不断检测接收到的广播报文来判断Master状态是否正常。

      当Master设备发生主备倒换后,从发生主备倒换到新主板正常工作,需要一段时间,该时间随不同设备和不同配置差别较大,结果可能导致Master设备不能正常处理VRRP协议报文,Backup设备因为收不到广播报文而抢占到Master状态,并针对每一个虚拟路由器的虚IP地址发送免费ARP,给相关绑定模块发送状态变化通知。

      由于倒换过程中系统过于繁忙,Master端的Hello协议报文无法正常发送,而Backup端无法及时收到报文,会抢占成为Master,引起链路切换,导致丢包。因此需要启用了VRRP功能的CE设备支持VRRP的平滑倒换(SS,Smoth
      Switch)功能,避免因主备倒换影响业务流量。

      基本原理

      在VRRP平滑倒换的过程中,Master和Backup分工不同,相互配合,共同保证业务的平滑传输。

      • 要进行VRRP整机平滑倒换处理,必须分别在Master和Backup上使能VRRP协议报文时间间隔学习功能。如图所示,设备1和设备2都使能VRRP协议报文时间间隔学习功能。

        • 如果使能了VRRP协议报文时间间隔学习功能,Master状态的VRRP不学习也不检查协议报文时间间隔的一致性。
        • 非Master状态的VRRP收到Master状态VRRP发来的协议报文后,会检查报文中的时间间隔值,如果和自己的不同,非Master状态的VRRP就会学习到报文中的时间间隔,并调整自己的协议报文时间间隔值,与报文中的值保持一致。
      • 设备1配置整机VRRP平滑倒换功能。设备主备倒换新的主板启动后,VRRP根据设备主备倒换前的状态判断,保存当前配置的VRPP协议报文时间间隔,并对Master状态的VRRP进行协议报文时间间隔调整,然后以当前配置的时间间隔发出VRRP平滑倒换报文,报文中携带着新的时间间隔发送到对端设备2。
      • 设备2收到的VRRP协议报文中携带的时间间隔和自己本地的间隔不一致,将对自己的运行时间间隔调整,并调整自己的定时器,与其保持一致。
      • 设备1平滑结束时将发出VRRP恢复报文,报文中携带着主备倒换前配置的时间间隔,此时设备2上的VRRP会再进行一次时间间隔学习。
      注意事项

      学习功能优先于抢占功能,即如果收到的协议报文时间间隔和自己当前的不一致,并且报文中携带的优先级低于自己当前的配置优先级,这种情况VRRP首先考虑的是学习功能和重置定时器,而后才会考虑是否抢占。

      VRRP整机平滑倒换功能还依赖于系统本身,如果设备自身从主备倒换一开始系统便非常繁忙,无法调度VRRP模块运行的情况,VRRP整机平滑倒换功能无效。

      VRRP加入了VGMP之后,VRRP的运行将依赖于VGMP,此时的VRRP将不受平滑倒换的影响。该功能不能用于业务VRRP。

      ----------------------------

      VRRP管理组

      在配置大量VRRP备份组时:

      • 过多VRRP协议报文占用较大的链路带宽

      • 大量VRRP报文的处理对系统造成一定的负担

      • 每个VRRP备份组都要维护协议定时器,对系统来说也是个很大的开销

      此外,每个VRRP备份组状态相对独立,无法保证同一路由器上相关联的接口上VRRP状态都为主用,在严格要求来回路径一致的应用中存在局限性:

      • 基于NAT网关的可靠性组网

      • 基于Proxy服务器的可靠性组网

      • 基于状态防火墙的可靠性组网

      为防止VRRP状态不一致现象的发生,华为公司在VRRP的基础上自主开发了扩展协议VGMP(VRRP Group Management
      Protocol),即VRRP组管理协议。基于VGMP协议建立的VRRP管理组负责统一管理加入其中的各VRRP备份组的状态,保证一台路由器上的接口同时处于主用或备用状态,实现路由器VRRP状态的一致性。

      VRRP管理组有Master设备和Slave设备之分。

      • Master设备:VRRP管理组状态为Master的设备,该路由器上被管理的VRRP备份组状态都是Master(因接口Down而变成Initialize的除外),承担流量传输的任务,并定时发送Hello报文。

      • Slave设备:VRRP管理组状态为Slave的设备,该路由器上被管理的VRRP备份组状态都是非Master,不传输流量,处于监听状态,一旦Master设备出现故障,Slave将竞选成为Master。

      VRRP管理组相当于在VRRP备份组的基础上叠加了一层逻辑层。VRRP备份组加入VGMP之后,不再发送传统VRRP报文,由VRRP管理组负责统一管理加入其中的各VRRP备份组的状态。

      VRRP备份组感知到接口状态变化后,会改变自身的状态。VGMP将感知到这种状态迁移,然后来确定是否切换VGMP的状态,从而切换VGMP组内VRRP备份组的状态。

      VRRP管理组提供的功能
      • 状态一致性管理

        VRRP管理组对所属VRRP组的主备切换进行裁决,改变了传统VRRP中各设备VRRP状态相对独立的现象,从而确保了同一路由器上VRRP备份组的状态一致性。

      • 抢占管理

        对于加入VRRP管理组的VRRP备份组来说,无论各备份组内路由器是否启动了抢占功能,抢占行为发生与否必须由VRRP管理组统一决定。

      • 通道管理

        配置专门的数据通道传输VGMP报文,提高VGMP报文传输的可靠性。

        一个VRRP管理组中至少要有一条数据通道。数据通道可以和业务通道在同一条物理链路上。

      图1描述了业务通道和数据通道的关系。A1-S-B1、A2-S-B2、A3-S-B3可以是数据通道也可以是业务通道,A4-H-B4只能作为数据通道。

      VRRP管理组工作方式

      VRRP管理组的工作方式有主备备份和负载分担。

      • 主备备份方式

        • 仅有一个VRRP管理组

        • 正常情况下,VRRP管理组优先级高的路由器作为Master,承担传输业务传输,VRRP管理组优先级低的路由器作为Slave;

        • 当Master设备出现故障时,主备状态发生切换。

      • 负载分担方式

        • 至少有两个VRRP管理组

        • 路由器上的VRRP备份组加入不同的管理组

        • 正常情况下,同一路由器上有状态为Master的VRRP管理组,也有状态为Slave的VRRP管理组,网络内的传输流量在多个路由器之间进行负载分担;

        • 当Master设备出现故障时,主备状态进行切换。

      • 图3所示。

        • RouterA上的VRRP管理组1包含备份组1、2、3,优先级为Level1;VRRP管理组2包含备份组4、5、6,优先级为Level2;Level1>Level2

        • RouterB上的VRRP管理组1包括备份组1、2、3,优先级为Level3;VRRP管理组2包含备份组4、5、6,优先级为Level4;Level3

        • Level1=Level4,Level2=Level3

        • RouterA是VRRP管理组1协商出的Master,也是管理组2协商出的Slave

        • RouterB是VRRP管理组1协商出的Slave,也是管理组2协商出的Master

        • Network1内部分主机的默认网关是备份组1,部分主机的默认网关是备份组4;Network2、Network3内主机默认网关的设置原理同Network1

        • 正常情况下,RouterA和RouterB两台路由器对对业务流量进行分担

        如果RouterB出现故障,则VRRP管理组2将重新裁决各设备的状态,管理组2中的RouterA状态切换为Master,RouterB状态切换为Slave,此时RouterA承担全部会话业务。当RouterB恢复正常后,RouterB将继续作为VRRP管理组2的Master,流量将在两个路由器之间分担。

      mVRRP

      mVRRP是指管理VRRP。管理VRRP备份组从本质上讲就是普通的VRRP备份组,唯一特殊之处在于:普通的VRRP备份组被配置为管理VRRP备份组之后,可以绑定其他的业务备份组,并根据绑定关系,决定相关业务备份组的状态。

      一个管理VRRP备份组可以绑定多个业务备份组,但它不能作为业务备份组与其他管理备份组进行绑定。

      管理VRRP备份组也可以作为一般成员加入VGMP组中。在将管理VRRP备份组加入VGMP组后,也可以配置管理VRRP监视Peer BFD和Link BFD会话状态但管理VRRP备份组状态机会丧失自己的独立性除了Initialize状态之外,Backup和Master状态需要根据所加入的VGMP组的状态来决定。

VRRP概述的更多相关文章

  1. VRRP概述-转

    本文介绍了VRRP的基本原理.特点和应用. VRRP概述 随着Internet的发展,人们对网络的可靠性的要求越来越高.对于局域网用户来说,能够时刻与外部网络保持联系是非常重要的. 通常情况下,内部网 ...

  2. VRRP概述作用及配置

    文章目录 VRRP的概述 VRRP的作用 虚拟路由器 Master报文的发送 VRRP状态机 VRRP华为命令配置 VRRP的概述1.利用VRRP,一组路由器(同一个LAN中的接口),协同工作,但是只 ...

  3. 虚拟路由冗余协议VRRP

    一.VRRP简介 虚拟路由冗余协议VRRP(Virtual Router Redundancy Protocol)通过把几台路由设备联合组成一台虚拟的路由设备,将虚拟路由设备的IP地址作为用户的默认网 ...

  4. 何为VRRP

    VRRP 1.VRRP概述 2.VRRP结构 3.VRRP双主双备 前言:如何让多个网关能协同工作但又不会互相冲突?这时VRRP就应运而生,它可以实现网关的备份,又能解决多个网关之间互相冲突的问题. ...

  5. keepalive集群工作原理及应用

    author:JevonWei 版权声明:原创作品 集群工作原理 一.集群基础 1.系统的扩展方式 scale up向上扩展:提高单台服务器的性能 scale out向外扩展:多台服务器联合起来满足同 ...

  6. 理解 OpenStack 高可用(HA)(2):Neutron L3 Agent HA 之 虚拟路由冗余协议(VRRP)

    本系列会分析OpenStack 的高可用性(HA)概念和解决方案: (1)OpenStack 高可用方案概述 (2)Neutron L3 Agent HA - VRRP (虚拟路由冗余协议) (3)N ...

  7. Keepalived概述和安装(1)

    一.Keepalived概述 本文主要了解开源高可用负载均衡集群利器keepalived,掌握keepalived的安装,运用keepalived配置高可用集群,并能够实现keepalived与负载均 ...

  8. (5.1)mysql高可用系列——高可用架构方案概述

    关键词:mysql高可用概述,mysql高可用架构 常用高可用方案 20190918 现在业内常用的MySQL高可用方案有哪些?目前来说,用的比较多的开源方案分内置高可用与外部实现,内置高可用有如下: ...

  9. VRRP协议的原理与配置

    VRRP出现的原因: 局域网中的用户终端通常采用配置一个默认网关的形式访问外部网络,如果此时默认网关设备发生故障,将中断所有用户终端的网络访问,这很可能会给用户带来不可预计的损失. VRRP的优点: ...

随机推荐

  1. 【错误】More than one row with the given identifier was found: 1, for class:

    问题原因: 数据库测试数据自己填入,两条数据的id都为1,所以报错 问题解决: 找到数据库表 删除全部数据

  2. 每天一个linux命令:【转载】nl命令

    nl命令在linux系统中用来计算文件中行号.nl 可以将输出的文件内容自动的加上行号!其默认的结果与 cat -n 有点不太一样, nl 可以将行号做比较多的显示设计,包括位数与是否自动补齐 0 等 ...

  3. 利用Topshelf把.NET Core Generic Host管理的应用程序部署为Windows服务

    背景 2019第一篇文章. 此文源于前公司在迁移项目到.NET Core的过程中,希望使用Generic Host来管理定时任务程序时,没法部署到Windows服务的问题,而且官方也没给出解决方案,只 ...

  4. 船长带你看书——《selenium2 python 自动化测试实战》(2)浏览器操作

    浏览器操作 # coding: utf-8 from selenium import webdriver from time import sleep driver = webdriver.Firef ...

  5. 服务器上通过FTP共享文件夹

    近日,公司某服务器共同操作的人员增多,而我只需访问及替换某些文件,故想到共享文件夹. 在IIS中建立ftp站点,添加虚拟目录(可多个,对应不同文件夹),设置允许访问的用户(添加用户,见在IIS上搭建F ...

  6. 容灾管理中的RTO与RPO的关系

    在灾难恢复方面,目前业界公认有三个目标值得努力.一是恢复时间,企业能忍受多长时间没有 IT,处于停业状态:二是网络多长时间能够恢复:三是业务层面的恢复.整个恢复过程中,最关键的衡量指标有两个:一个是 ...

  7. Shell脚本一键安装LNMP环境

    https://sourceforge.net/projects/opensourcefile/files/ Nginx是一款高性能的HTTP和反向代理服务器.Nginx在反向代理,Rewrite规则 ...

  8. 19.Selenium+Python生成测试报告

    1.代码如下所示: from selenium import webdriver import unittest import HTMLTestRunner class BaiduSearch(uni ...

  9. easyui datagrid 基础方法和事件

    数据表格属性(DataGrid Properties) 属性继承控制面板,以下是数据表格独有的属性. 名称 类型 描述 默认值 columns array 数据表格列配置对象,查看列属性以获取更多细节 ...

  10. TMS320C6657双核DSP的图像处理系统开发(1):硬件相关tips

             1.前言 新项目中打算对现有的TMS320C6455+Kintex7 FPGA平台进行升级,采用TMS320C6657作为新核心,主要考虑到几点点: 1)具备DDR3接口,可以更加方 ...