CN112506620B - 基于docker容器部署的ospf协议的清洗恢复方法、装置、设备和介质 - Google Patents

基于docker容器部署的ospf协议的清洗恢复方法、装置、设备和介质 Download PDF

Info

Publication number
CN112506620B
CN112506620B CN202011575745.2A CN202011575745A CN112506620B CN 112506620 B CN112506620 B CN 112506620B CN 202011575745 A CN202011575745 A CN 202011575745A CN 112506620 B CN112506620 B CN 112506620B
Authority
CN
China
Prior art keywords
heterogeneous
mirror image
data
execution body
mirror
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202011575745.2A
Other languages
English (en)
Other versions
CN112506620A (zh
Inventor
倪晓波
张校臣
李彧
于波
武彦平
詹俊
孙远航
孙增振
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Network Communication and Security Zijinshan Laboratory
Original Assignee
Network Communication and Security Zijinshan Laboratory
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Network Communication and Security Zijinshan Laboratory filed Critical Network Communication and Security Zijinshan Laboratory
Priority to CN202011575745.2A priority Critical patent/CN112506620B/zh
Publication of CN112506620A publication Critical patent/CN112506620A/zh
Application granted granted Critical
Publication of CN112506620B publication Critical patent/CN112506620B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种基于docker容器部署的ospf协议的清洗恢复方法、装置、设备和介质,方法包括初始化;各本地镜像仓库中异构执行体数据实时同步;拟态调度器判决指定异构执行体进行清洗;镜像预同步模块接收标记结果和清洗指令后,完成销毁异常异构执行体所在docker容器、构建新的docker容器,完成异常异构执行体的清洗恢复;在本地镜像仓库中实现镜像实时同步。本发明通过构建新的docker容器来替换异常异构执行体所处docker容器,不用真正重启ospf协议栈,避免了ospf协议栈恢复过程中带来的网络的路由振荡以及转发中断,省去了协议栈重启恢复的漫长等待时间和ospf协议栈数据的同步训练恢复时间。

Description

基于docker容器部署的ospf协议的清洗恢复方法、装置、设备 和介质
技术领域
本发明涉及计算机网络安全技术领域,具体涉及一种基于docker容器部署的ospf协议的清洗恢复方法、装置、设备和介质。
背景技术
当前,网络空间的安全问题日益成为信息时代最严峻的挑战之一,拟态防御理论为解决网络空间安全问题提供了一种很好的指引。拟态防御技术通过创造以动态异构冗余为核心的架构实现对未知威胁的有效应对。
拟态交换机是拟态防御技术的一种典型应用。通常使用多个异构处理器作为异构执行体,系统中包含硬件实现的拟态调度器以实现对异构执行体下行数据的判决筛选以及上行数据的分发。
由于外部攻击或内部错误可能导致异构执行体中ospf协议出现异常,所以需要根据拟态策略,及时的对该异构执行体进行清洗恢复。目前的清洗恢复方案,主要是通过调度器发送重启指令让异构执行体进行重启,虽然可以让异构执行体恢复到可用状态,但是这种方法有较大的缺点,一是由于一台路由器的OSPF协议重启之后,会发送Hello报文以发现邻居,而邻居路由器之前已经和该路由器建立有邻居关系,收到该Hello报文之后就会把该路由器从邻居列表中删除,断开与该路由器的邻居关系,并通知其他路由器。当该路由器与邻居路由器重新建立OSPF邻居关系后,会重新同步所有的路由信息数据,而周边路由器也需要重新进行路由计算,这样就会引起网络的路由振荡以及转发中断,对于一个大型网络,尤其是运营商网络,这些路由振荡和转发中断是不可容忍的;二是当异构执行体重启后,由于拟态判决的存在,会导致此异构执行体的ospf进程不能恢复到重启之前与异构执行体状态机、数据库、计算路由相同的状态。
对于ospf协议来说,可以借助ospf此类协议的GR(Graceful Restart, 优雅重启)特性,在异构执行体重启阶段通知邻居保持路由和转发来避免网络的路由振荡以及转发中断,但是这种方式需要所有异构执行体一起完成GR流程,不能满足修改某个异构执行体不影响其他异构执行体的原则。
传统的拟态交换机,异构执行体判决异常之后,ospf协议栈需要投入重启时间,拟态调度器同步训练模块可能需要重复多次才能使得同步异构执行体和其它正常工作异构执行体状态保持一致,这个同步过程的时间可能也会很长,协议栈重启和同步恢复时间过长相对于交换机上时延和服务质量要求较高的业务来说,是非常致命的。
发明内容
技术目的:针对现有技术中ospf协议栈清洗恢复困难、协议栈重启时间长的缺陷,本发明公开了一种基于docker容器部署的ospf协议的清洗恢复方法、装置、设备和介质,通过构建新的docker容器来替换异常异构执行体所处docker容器,可以不用真正重启ospf协议栈,避免了恢复ospf协议栈过程中带来的网络的路由振荡以及转发中断,省去了协议栈重启恢复的漫长等待时间和ospf协议栈数据的同步训练恢复时间。
技术方案:为实现上述技术目的,本发明采用以下技术方案。
一种基于docker容器部署的ospf协议的清洗恢复方法,包括以下步骤:
S1、初始化:主机系统中设有镜像预同步模块,各主机系统根据从总镜像仓库中读取异构执行体镜像构建docker容器,并将自身中异构执行体数据中的基础镜像数据存储于总镜像仓库中;docker容器中包括异构执行体和代理驱动程序,异构执行体内设有ospf协议栈,代理驱动程序实时监控ospf协议栈的信息并发送至镜像预同步模块;
S2、各本地镜像仓库中差分镜像数据实时同步:在主机系统运行过程中,镜像预同步模块与docker容器中的代理驱动程序交互,实现各本地镜像仓库中异构执行体数据中的差分镜像数据同步;
S3、拟态调度器判决指定异构执行体进行清洗:拟态调度器根据各docker容器中异构执行体的处理结果进行一致性裁决,根据裁决结果对各docker容器的异构执行体分别标记为正常异构执行体或异常异构执行体,并向镜像预同步模块发送标记结果和清洗异常异构执行体的指令,实现异常异构执行体的清洗恢复;
S4、镜像预同步模块执行清洗指令:异常异构执行体对应的镜像预同步模块接收标记结果和清洗指令后,停止本地镜像仓库中异构执行体数据的实时同步过程,并删除总镜像仓库和各个本地镜像仓库中异常异构执行体所有数据,销毁异常异构执行体所在docker容器并构建新的docker容器,实现异常异构执行体的清洗恢复;
S5、返回步骤S2,各本地镜像仓库中差分镜像数据实时同步。
优选地,所述步骤S1中,各本地镜像仓库将自身中的基础镜像数据存储于总镜像仓库中的具体过程为:
S11、每个主机系统中,代理驱动程序与镜像预同步模块之间交互,解析异构执行体中ospf协议栈的信息;
S12、每个主机系统中,将docker容器运行过程中的状态数据保存于本地镜像仓库中,docker容器运行时的状态数据包括异构执行体数据、代理驱动程序数据,所述异构执行体数据包括基础镜像数据和差分镜像数据,差分镜像数据为docker容器运行过程中差异化的数据;在初始化过程中,本地镜像仓库将基础镜像数据存储于总镜像仓库中。
优选地,所述所述步骤S2中各本地镜像仓库中差分镜像数据同步的具体过程为:
S21、每个主机系统中,镜像预同步模块循环迭代的进行复制跟踪自身差异化的差分镜像数据,并保存在本地镜像仓库中,本地镜像仓库将新增的自身异构执行体的差分镜像数据实时更新至总镜像仓库中;
S22、所有主机系统中,本地镜像仓库实时读取总镜像仓库中的除了本地的异构执行体之外的其它所有异构执行体的差分镜像数据并保存。优选地,所述步骤S22中,将docker容器运行时的差分镜像数据保存于本地镜像仓库,采用增量式方法进行保存。
优选地,所述步骤S4中镜像预同步模块执行清洗指令的具体过程为:
S41、异常异构执行体对应的镜像预同步模块接收标记结果和清洗指令后,先找出被标记为异常异构执行体所处的docker容器,停止本地镜像仓库中异构执行体数据的实时同步过程,并删除总镜像仓库和各个本地镜像仓库中异常异构执行体所有数据;
S42、异常异构执行体对应的镜像预同步模块根据本地镜像仓库中的异构执行体镜像及正常异构执行体数据建立新的docker容器,新的docker容器向异常异构执行体对应的镜像预同步模块发送准备好清洗的消息;
S43、异常异构执行体对应的镜像预同步模块执行清洗指令,所述镜像预同步模块销毁异常异构执行体所处的docker容器及本地镜像仓库中异常异构执行体数据,同时新的docker容器中的ospf协议栈开始运行参与拟态判决;
S44、异常异构执行体对应的镜像预同步模块向拟态调度器发送清洗完成的消息。
优选地,所述步骤S42中异常异构执行体对应的镜像预同步模块根据本地镜像仓库中的异构执行体镜像及正常异构执行体数据建立新的docker容器。
优选地,所述步骤S44中异常异构执行体对应的镜像预同步模块向拟态调度器发送清洗完成的消息,具体包括:异常异构执行体对应的镜像预同步模块控制新的docker容器中的异构执行体与正常异构执行体同步,新的docker容器状态调整为可用状态,镜像预同步模块向拟态调度器发送清洗完成的消息,新的docker容器中的异构执行体可以参与判决。
优选地,所述异常异构执行体对应的镜像预同步模块控制新的docker容器中的异构执行体与正常异构执行体同步前,还包括步骤:先通过异常异构执行体对应的镜像预同步模块判断新的docker容器中ospf协议栈信息是否同步:在异常异构执行体的清洗恢复的过程中,其他所有正常异构执行体对应的镜像预同步模块解析异构执行体数据的差分镜像数据,具体指差分镜像数据中的ospf协议栈的差分数据,判断是否有写入操作:若没有写入操作,则说明在此过程中并没有更新数据,当前新的docker容器中ospf协议栈信息已同步;否则,则说明在此过程中更新数据,正常异构执行体对应的镜像预同步模块与异常异构执行体对应的镜像预同步模块之间进行交互,异常异构执行体对应的镜像预同步模块得到需要进行同步操作的通知。
一种基于docker容器部署的ospf协议的清洗恢复装置,包括拟态调度器、若干主机系统和总镜像仓库,若干主机系统共享总镜像仓库;
所述总镜像仓库用于存储所有异构执行体镜像,并实时更新异构执行体数据;
所述每个主机系统中包括镜像预同步模块、本地镜像仓库和docker容器,所述镜像预同步模块用于接收拟态调度器发送的报文数据和清洗异常异构执行体的指令,并发送至docker容器,实时监控docker容器中异构执行体的ospf协议栈数据差异化改动,并将所述差异化改动同步至总镜像仓库中;
所述本地镜像仓库用于存储从总镜像仓库中读取的异构执行体镜像,各本地镜像仓库中存储的异构执行体镜像异构,并存储总镜像仓库中所有异构执行体数据;
将本地镜像仓库中异构执行体镜像实例化构建所述docker容器,docker容器中包括异构执行体,异构执行体中设有ospf协议栈,异构执行体用于接受并处理调度器芯片发来的报文数据,然后把处理结果发送给拟态判决模块;
所述拟态调度器用于接收交换芯片发送的报文数据,并将报文数据分发至若干主机系统,实现报文数据的拟态裁决和异常异构执行体的清洗恢复。
优选地,所述docker容器中还设有代理驱动程序;所述代理驱动程序用于与镜像预同步模块交互,实时监控docker容器中异构执行体的ospf协议栈数据差异化改动。
一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现以上任一所述的一种基于docker容器部署的ospf协议的清洗恢复方法。
一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行以上任一所述的一种基于docker容器部署的ospf协议的清洗恢复方法。
有益效果:
1、本发明在异常异构执行体清洗中,通过构建新的docker容器来替换异常异构执行体所处docker容器,可以不用真正重启ospf协议栈,避免了恢复ospf协议栈过程中带来的网络的路由振荡以及转发中断,省去了协议栈重启恢复的漫长等待时间和ospf协议栈数据的同步训练恢复时间;
2、本发明引入镜像预同步模块来保证正常运行过程中,各个异构执行体容器的实时镜像同步,不再需要拟态调度器介入,通过镜像预同步模块来实现ospf协议栈内存、文件以及其他信息的同步;
3、本发明的异常异构执行体清洗恢复过程无需使用GR指令,无需其它异构执行体一起进行重启恢复,符合拟态特性,另外本发明基于已同步的正常异构执行体数据进行恢复,利用docker容器的同步和创建恢复运行速度非常快,可以大大提高拟态清洗恢复效率,减少拟态调度器的复杂度,提高系统的可靠性和稳定性。
附图说明
图1为本发明的总方法流程图;
图2为现有技术中拟态交换机的结构示意图;
图3为运用本发明后拟态交换机的结构示意图;
图4为实施例中需要同步的数据结果示意图。
具体实施方式
以下结合附图和实施例对本发明的一种基于docker容器部署的ospf协议的清洗恢复方法、装置、设备和介质做进一步的说明和解释。
如附图1所示,一种基于docker容器部署的ospf协议的清洗恢复方法,包括以下步骤:
S1、初始化:主机系统中设有镜像预同步模块,各主机系统根据从总镜像仓库中读取异构执行体镜像构建docker容器,即:各主机系统之间共享总镜像仓库,各主机系统中分别从总镜像仓库中读取互相异构的异构执行体镜像,并保存于本地镜像仓库中,主机系统将本地镜像仓库中的异构执行体镜像实例化,构建docker容器,各本地镜像仓库将自身中异构执行体数据存储于总镜像仓库中,具体是指的异构执行体数据中的基础镜像数据;docker容器中包括异构执行体和代理驱动程序,异构执行体内设有ospf协议栈,代理驱动程序实时监控ospf协议栈的信息并发送至镜像预同步模块;
S2、各本地镜像仓库中差分镜像数据实时同步:在主机系统运行过程中,镜像预同步模块与docker容器中的代理驱动程序交互,实现各本地镜像仓库中异构执行体数据中的差分镜像数据同步;
S3、拟态调度器判决指定异构执行体进行清洗:拟态调度器根据各docker容器中异构执行体的处理结果进行一致性裁决,根据裁决结果对各docker容器的异构执行体分别标记为正常异构执行体或异常异构执行体,并向镜像预同步模块发送标记结果和清洗异常异构执行体的指令,实现异常异构执行体的清洗恢复;
S4、镜像预同步模块执行清洗指令:异常异构执行体对应的镜像预同步模块接收标记结果和清洗指令后,停止本地镜像仓库中异构执行体数据的实时同步过程,并删除总镜像仓库和各个本地镜像仓库异常异构执行体所有数据,完成销毁异常异构执行体所在docker容器、构建新的docker容器,实现异常异构执行体的清洗恢复;
S5、返回步骤S2,各本地镜像仓库中差分镜像数据实时同步。
其中,步骤S1中,各本地镜像仓库将自身中基础镜像数据存储于总镜像仓库中的具体过程为:
S11、每个主机系统中,代理驱动程序与镜像预同步模块之间交互,解析异构执行体中ospf协议栈的信息;
S12、每个主机系统中,镜像预同步模块采用类似虚拟机的技术,将docker容器运行过程中的状态数据保存于本地镜像仓库中,docker容器运行时的状态数据包括异构执行体数据、代理驱动程序数据,所述异构执行体数据包括基础镜像数据和差分镜像数据,差分镜像数据为docker容器运行过程中差异化的数据;在初始化过程中,本地镜像仓库将基础镜像数据存储于总镜像仓库中。
步骤S2中各本地镜像仓库中差分镜像数据同步的具体过程为:
S21、每个主机系统中,镜像预同步模块循环迭代的进行复制跟踪自身差异化的差分镜像数据,并保存在本地镜像仓库中,本地镜像仓库将新增的自身异构执行体数据中的差分镜像数据实时更新至总镜像仓库中;此过程仍采用类似虚拟机的方式,具体是指,类似虚拟机的内存预拷贝技术,将docker容器运行时的状态数据增量式地保存于本地镜像仓库中,此过程容器中ospf进程不感知;增量拷贝之前,镜像预同步模块会把docker容器状态做一个镜像,类似快照,此过程非常快,然后ospf进程继续运行在此镜像基础上,镜像预同步模块把建立的镜像文件进行同步,并不影响ospf进程的继续运行;
S22、所有主机系统中,本地镜像仓库实时读取总镜像仓库中的除了本地的异构执行体之外的其它所有异构执行体的差分镜像数据并保存。由于docker容器一直在运行中,导致一直会有数据读写操作发生,而各个异构执行体之间无法通信,docker容器之间无法同步,因此镜像预同步模块实时触发,直到某个异构执行体内部状态发生异常导致拟态调度器中的拟态判决模块判决该异构执行体异常,不用进行清洗恢复,暂不参与拟态判决。
需要说明的是,本地镜像仓库中只同步提交的异构执行体数据中的差分镜像数据,因异构执行体镜像实例化带来的异构执行体数据中的基础镜像数据不进行同步。
根据docker镜像的分层原理,由于总镜像仓库已经存有所有的异构执行体基础数据和上一次存储的多层异构执行体数据,所以本地镜像仓库实时更新至总镜像仓库时不用再重复上传,只上传总镜像仓库中缺失的当前待更新的异构执行体数据即可,同时在总镜像仓库中创建当前层该数据的索引。而从仓库中拉取数据时,根据索引的描述按数据层逐个拉取,如果目标节点上已经有相同的数据层,也无需重复拉取,采用增量方式同步。
在一些实施例中,镜像预同步模块收集docker容器中ospf协议栈读写的数据,需要收集同步的相关数据结构如附图4 所示,此时ospf进程相关DR、BDR信息、拓扑变更信息、邻居表、路由表、链路状态数据库的变更以及接口带宽,链路开销等信息变更都会保存于差分镜像数据中,并且由于代理驱动程序反馈的是信息修改后结果,所以在所述相关信息无变化时并不会进行镜像层的提交和同步动作,可以避免不必要的拷贝。
在一些实施例中,docker容器本质上可以看作是运行在 linux 系统中的进程,所以对docker容器数据的复制可以看做是进程数据的复制,这里可以采用内核 CRIU 的思想,收集/proc 进程的相关信息,比如 map 映射文件信息、fd 文件描述符信息并结合代理驱动反馈的文件以及内存内容信息和寄存器数值等分析出差异化数据,对docker容器进行差分拷贝。
步骤S4中镜像预同步模块执行清洗指令的具体过程为:
S41、镜像预同步模块接收标记结果和清洗指令后,先找出被标记为异常异构执行体所处的docker容器,停止本地镜像仓库中异构执行体数据的实时同步过程,并删除总镜像仓库和各个本地镜像仓库中异常异构执行体所有数据;
S42、异常异构执行体对应的镜像预同步模块根据本地镜像仓库中的异构执行体镜像及正常异构执行体数据建立新的docker容器,新的docker容器向异常异构执行体对应的镜像预同步模块发送准备好清洗的消息;正常异构执行体数据的选取基于经验可信度算法、基于时间和空间权重因子的算法或基于共有漏洞指标算法来实现。在一些实施例中,还可以采用与原有异常异构执行体容器相似度阈值最低的镜像文件来执行重建docker容器。
基于本地的异构执行体镜像和实时同步的其它正常运行的异构执行体数据层合成的新的 docker 镜像文件创建出一个新的docker容器并开始运行,由于 docker 是基于轻量级 lxc 容器基础之上,另外初始版本的 docker 容器中只包含简单的 ospf 协议进程,且镜像所有ospf 协议相关文件和内存信息均已同步,所以创建运行的速度会非常快。
S43、异常异构执行体对应的镜像预同步模块执行清洗指令,镜像预同步模块销毁异常异构执行体所处的docker容器及本地镜像仓库中异常异构执行体数据,同时新的docker容器中的ospf协议栈开始运行参与拟态判决;
S44、异常异构执行体对应的镜像预同步模块向拟态调度器发送清洗完成的消息。镜像预同步模块采用rsync算法使得新的docker容器中的异构执行体与正常异构执行体同步,新的docker容器状态调整为可用状态,异常异构执行体对应的镜像预同步模块向拟态调度器发送清洗完成的消息,新的docker容器中的异构执行体可以参与判决。
异常异构执行体对应的镜像预同步模块采用 rsync 技术来最后保证恢复的docker容器中状态机、数据库、路由信息等与其它正常异构执行体docker容器持一致,变为可用状态,并通知拟态调度器此异构执行体已经清洗恢复完成,后续可以参与判决。
在异常异构执行体对应的镜像预同步模块采用rsync算法使得新的docker容器中的异构执行体与正常异构执行体同步前,先通过异常异构执行体对应的镜像预同步模块判断新的docker容器中ospf协议栈信息是否同步:在异常异构执行体的清洗恢复的过程中,其他所有正常异构执行体对应的镜像预同步模块解析异构执行体数据的差分镜像数据,具体指差分镜像数据中的ospf协议栈的差分数据,判断是否有写入操作:若没有写入操作,则说明在此过程中并没有更新数据,当前新的docker容器中ospf协议栈信息已同步;否则,则说明在此过程中更新数据,正常异构执行体对应的镜像预同步模块与异常异构执行体对应的镜像预同步模块之间进行交互,异常异构执行体对应的镜像预同步模块得到需要进行同步操作的通知。
本发明在异常异构执行体清洗中,通过构建新的docker容器来替换异常异构执行体所处docker容器,可以不用真正重启 ospf 协议栈,避免了恢复 ospf 协议栈过程中带来的网络的路由振荡以及转发中断,省去了协议栈重启恢复的漫长等待时间和 ospf 协议栈数据的同步训练恢复时间;拟态调度器无需同步模块介入,只需要发送清洗恢复消息即可完成异构执行体异常时ospf 协议的状态恢复,适配工作量小,复杂性降低,ospf 清洗恢复过程无需使用 GR 指令,无需其它异构执行体一起进行重启恢复,符合拟态特性。另外由于引入预同步技术,直接省去了协议栈重启和同步恢复时间开销,容器同步和创建恢复运行速度非常快,可以大大提高拟态清洗恢复效率,减少拟态调度器的复杂度,提高系统的可靠性、稳定性和服务质量。
一种基于docker容器部署的ospf协议的清洗恢复装置,包括拟态调度器、若干主机系统和总镜像仓库,若干主机系统共享总镜像仓库;
如附图2所示,传统拟态交换机需要采用拟态调度器中的同步模块参与同步报文和训练过程,而且由于网络拓扑结构的不断变化,同步的步骤可能需要重复多次才能使得同步异构执行体和其它正常工作异构执行体状态保持一致,这个同步过程的时间可能很长,采用本发明之后拟态交换机清洗恢复异构执行体不再需要拟态调度器中的同步模块参与同步报文和训练过程,不再需要投入数据的同步训练恢复时间,而是通过镜像预同步模块来优化完成这个功能,可以大大加快异构执行体恢复使用的速度。
总镜像仓库用于存储所有异构执行体镜像,并实时更新异构执行体数据;此处的异构执行体数据包括基础镜像数据和差分镜像数据,差分镜像数据为运行过程中实时存储的多层镜像数据层的数据,需要知道的是,在docker容器运行过程中,将出现变化的数据实时保存,作为当前最新的差分数据镜像层的数据。此外,基础镜像数据和差分镜像数据中均包含ospf 协议栈的信息。
异构执行体镜像中预置 ospf 协议栈进程和代理驱动程序,正常运行时,创建各个docker容器开始执行,代理驱动程序监控docker容器中协议栈文件、网络、内存以及其他信息的修改,收集docker容器进程中 ospf 协议栈进程以及其他进程的详细资源使用情况,包括但不限于进程信息、打开和保存的数据文件、寄存器内容等,并实时反馈给外部的镜像预同步模块。
和传统异构执行体区别在于本发明中的异构执行体部署在 docker 容器中,异构执行体中有一个 ospf 协议栈,也可以同时部署其他协议栈,分布在架构异构的多台 ARM、mips、x86 等主机系统中,由于不对外暴露所在主机系统,所以外界对于异构执行体容器的攻击并不会影响主机系统,如附图3所示,附图3为本发明的一个实施例中的应用。
每个主机系统中包括镜像预同步模块、本地镜像仓库和docker 容器,镜像预同步模块用于接收拟态调度器发送的报文数据和清洗异常异构执行体的指令,并发送至docker容器,实时监控docker 容器中异构执行体的ospf协议栈数据差异化改动,并将差异化改动采用差分增量方式复制数据同步至总镜像仓库中;本发明通过镜像预同步模块保证异构执行体判决异常之前的各个异构执行体中ospf协议栈数据的一致性,并在异构执行体异常后可以删除该异常异构执行体所处docker容器,并快速基于正常异构执行体数据创建出新的docker容器并使之进入正常工作状态,后续该docker容器可以无需拟态调度器同步训练模块参与即可一起进入拟态判决环节。
本地镜像仓库用于存储从总镜像仓库中读取的异构执行体镜像,各本地镜像仓库中存储的异构执行体镜像异构,并存储总镜像仓库中所有异构执行体数据;
将本地镜像仓库中异构执行体镜像实例化构建docker 容器,docker 容器中包括异构执行体,异构执行体中设有ospf协议栈,异构执行体用于接受并处理调度器芯片发来的报文数据,然后把处理结果发送给拟态判决模块;docker 容器中还设有代理驱动程序;代理驱动程序用于与镜像预同步模块交互,实时监控docker 容器中异构执行体的ospf协议栈数据差异化改动。
每个异构执行体镜像对于主机系统的架构不同,其实现方式也不同,主机系统异构,异构执行体基础镜像也可以是异构的,里面的ospf协议可以采用不同的方式来实现;相同的协议栈数据如关于拟态交换机的初始信息,包括但不限于接口开销,链路带宽等。
拟态调度器用于接收交换芯片发送的报文数据,并将报文数据分发至若干主机系统,实现报文数据的拟态裁决和异常异构执行体的清洗恢复。拟态调度器包括拟态判决模块,报文数据的分发和清洗命令的下达由拟态判决模块进行。
本发明利用docker的分层原理,通过镜像预同步技术引入镜像预同步模块进行异构执行体中 ospf 协议栈所需要的数据和运行状态恢复,可以保证协议清洗恢复阶段能让周边设备维持邻居关系不变并保持路由稳定,从而可以保持网络拓扑稳定,不引起网络路由振荡,数据转发仍然可以不中断进行。
在本发明的一些实施例中,主机系统为所述主机系统为ARM系统、mips系统、RISC-V系统或x86系统。
一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现以上任一所述的一种基于docker容器部署的ospf协议的清洗恢复方法。存储器可为各种类型的存储器,可为随机存储器、只读存储器、闪存等。处理器可为各种类型的处理器,例如,中央处理器、微处理器、数字信号处理器或图像处理器等。
一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行以上任一所述的一种基于docker容器部署的ospf协议的清洗恢复方法。
以上所述仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (12)

1.一种基于docker容器部署的ospf协议的清洗恢复方法,其特征在于,包括以下步骤:
S1、初始化:主机系统中设有镜像预同步模块,各主机系统根据从总镜像仓库中读取异构执行体镜像构建docker容器,并将自身中异构执行体数据中的基础镜像数据存储于总镜像仓库中;docker容器中包括异构执行体和代理驱动程序,异构执行体内设有ospf协议栈,代理驱动程序实时监控ospf协议栈的信息并发送至镜像预同步模块;
S2、各本地镜像仓库中差分镜像数据实时同步:在主机系统运行过程中,镜像预同步模块与docker容器中的代理驱动程序交互,实现各本地镜像仓库中异构执行体数据中的差分镜像数据同步;
S3、拟态调度器判决指定异构执行体进行清洗:拟态调度器根据各docker容器中异构执行体的处理结果进行一致性裁决,根据裁决结果对各docker容器的异构执行体分别标记为正常异构执行体或异常异构执行体,并向镜像预同步模块发送标记结果和清洗异常异构执行体的指令,实现异常异构执行体的清洗恢复;
S4、镜像预同步模块执行清洗指令:异常异构执行体对应的镜像预同步模块接收标记结果和清洗指令后,停止本地镜像仓库中异构执行体数据的实时同步过程,并删除总镜像仓库和各个本地镜像仓库中异常异构执行体所有数据,销毁异常异构执行体所在docker容器并构建新的docker容器,实现异常异构执行体的清洗恢复;
S5、返回步骤S2,各本地镜像仓库中差分镜像数据实时同步。
2.根据权利要求1所述的一种基于docker容器部署的ospf协议的清洗恢复方法,其特征在于:所述步骤S1中,各本地镜像仓库将自身中的基础镜像数据存储于总镜像仓库中的具体过程为:
S11、每个主机系统中,代理驱动程序与镜像预同步模块之间交互,解析异构执行体中ospf协议栈的信息;
S12、每个主机系统中,将docker容器运行过程中的状态数据保存于本地镜像仓库中,docker容器运行时的状态数据包括异构执行体数据、代理驱动程序数据,所述异构执行体数据包括基础镜像数据和差分镜像数据,差分镜像数据为docker容器运行过程中差异化的数据;在初始化过程中,本地镜像仓库将基础镜像数据存储于总镜像仓库中。
3.根据权利要求2所述的一种基于docker容器部署的ospf协议的清洗恢复方法,其特征在于:所述步骤S2中各本地镜像仓库中差分镜像数据同步的具体过程为:
S21、每个主机系统中,镜像预同步模块循环迭代的进行复制跟踪自身差异化的差分镜像数据,并保存在本地镜像仓库中,本地镜像仓库将新增的自身异构执行体的差分镜像数据实时更新至总镜像仓库中;
S22、所有主机系统中,本地镜像仓库实时读取总镜像仓库中的除了本地的异构执行体之外的其它所有异构执行体的差分镜像数据并保存。
4.根据权利要求3所述的一种基于docker容器部署的ospf协议的清洗恢复方法,其特征在于:所述步骤S22中,将docker容器运行时的差分镜像数据保存于本地镜像仓库,采用增量式方法进行保存。
5.根据权利要求1所述的一种基于docker容器部署的ospf协议的清洗恢复方法,其特征在于:所述步骤S4中镜像预同步模块执行清洗指令的具体过程为:
S41、异常异构执行体对应的镜像预同步模块接收标记结果和清洗指令后,先找出被标记为异常异构执行体所处的docker容器,停止本地镜像仓库中异构执行体数据的实时同步过程,并删除总镜像仓库和各个本地镜像仓库中异常异构执行体所有数据;
S42、异常异构执行体对应的镜像预同步模块根据本地镜像仓库中的异构执行体镜像及正常异构执行体数据建立新的docker容器,新的docker容器向异常异构执行体对应的镜像预同步模块发送准备好清洗的消息;
S43、异常异构执行体对应的镜像预同步模块执行清洗指令,所述镜像预同步模块销毁异常异构执行体所处的docker容器及本地镜像仓库中异常异构执行体数据,同时新的docker容器中的ospf协议栈开始运行参与拟态判决;
S44、异常异构执行体对应的镜像预同步模块向拟态调度器发送清洗完成的消息。
6.根据权利要求5所述的一种基于docker容器部署的ospf协议的清洗恢复方法,其特征在于:所述步骤S42中异常异构执行体对应的镜像预同步模块根据本地镜像仓库中的异构执行体镜像及正常异构执行体数据建立新的docker容器。
7.根据权利要求5所述的一种基于docker容器部署的ospf协议的清洗恢复方法,其特征在于:所述步骤S44中异常异构执行体对应的镜像预同步模块向拟态调度器发送清洗完成的消息,具体包括:异常异构执行体对应的镜像预同步模块控制新的docker容器中的异构执行体与正常异构执行体同步,新的docker容器状态调整为可用状态,镜像预同步模块向拟态调度器发送清洗完成的消息,新的docker容器中的异构执行体可以参与判决。
8.根据权利要求7所述的一种基于docker容器部署的ospf协议的清洗恢复方法,其特征在于:所述异常异构执行体对应的镜像预同步模块控制新的docker容器中的异构执行体与正常异构执行体同步前,还包括步骤:先通过异常异构执行体对应的镜像预同步模块判断新的docker容器中ospf协议栈信息是否同步:在异常异构执行体的清洗恢复的过程中,其他所有正常异构执行体对应的镜像预同步模块解析异构执行体数据的差分镜像数据,具体指差分镜像数据中的ospf协议栈的差分数据,判断是否有写入操作:若没有写入操作,则说明在此过程中并没有更新数据,当前新的docker容器中ospf协议栈信息已同步;否则,则说明在此过程中更新数据,正常异构执行体对应的镜像预同步模块与异常异构执行体对应的镜像预同步模块之间进行交互,异常异构执行体对应的镜像预同步模块得到需要进行同步操作的通知。
9.一种基于docker容器部署的ospf协议的清洗恢复装置,其特征在于,用于实现如权利要求1-8任一所述的一种基于docker容器部署的ospf协议的清洗恢复方法,包括拟态调度器、若干主机系统和总镜像仓库,若干主机系统共享总镜像仓库;
所述总镜像仓库用于存储所有异构执行体镜像,并实时更新异构执行体数据;
所述每个主机系统中包括镜像预同步模块、本地镜像仓库和docker容器,所述镜像预同步模块用于接收拟态调度器发送的报文数据和清洗异常异构执行体的指令,并发送至docker容器,实时监控docker容器中异构执行体的ospf协议栈数据差异化改动,并将所述差异化改动同步至总镜像仓库中;
所述本地镜像仓库用于存储从总镜像仓库中读取的异构执行体镜像,各本地镜像仓库中存储的异构执行体镜像异构,并存储总镜像仓库中所有异构执行体数据;
将本地镜像仓库中异构执行体镜像实例化构建所述docker容器,docker容器中包括异构执行体,异构执行体中设有ospf协议栈,异构执行体用于接受并处理调度器芯片发来的报文数据,然后把处理结果发送给拟态判决模块;
所述拟态调度器用于接收交换芯片发送的报文数据,并将报文数据分发至若干主机系统,实现报文数据的拟态裁决和异常异构执行体的清洗恢复。
10.根据权利要求9所述的一种基于docker容器部署的ospf协议的清洗恢复装置,其特征在于:所述docker容器中还设有代理驱动程序;所述代理驱动程序用于与镜像预同步模块交互,实时监控docker容器中异构执行体的ospf协议栈数据差异化改动。
11.一种电子设备,其特征在于,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如权利要求1-8任一所述的一种基于docker容器部署的ospf协议的清洗恢复方法。
12.一种计算机可读存储介质,其特征在于,存储有计算机可执行指令,所述计算机可执行指令用于执行如权利要求1-8任一所述的一种基于docker容器部署的ospf协议的清洗恢复方法。
CN202011575745.2A 2020-12-28 2020-12-28 基于docker容器部署的ospf协议的清洗恢复方法、装置、设备和介质 Active CN112506620B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011575745.2A CN112506620B (zh) 2020-12-28 2020-12-28 基于docker容器部署的ospf协议的清洗恢复方法、装置、设备和介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011575745.2A CN112506620B (zh) 2020-12-28 2020-12-28 基于docker容器部署的ospf协议的清洗恢复方法、装置、设备和介质

Publications (2)

Publication Number Publication Date
CN112506620A CN112506620A (zh) 2021-03-16
CN112506620B true CN112506620B (zh) 2023-11-24

Family

ID=74951757

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011575745.2A Active CN112506620B (zh) 2020-12-28 2020-12-28 基于docker容器部署的ospf协议的清洗恢复方法、装置、设备和介质

Country Status (1)

Country Link
CN (1) CN112506620B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115277607B (zh) * 2022-07-15 2023-12-26 天津市滨海新区信息技术创新中心 一种异构系统复杂流量情况下的两级拟态判决方法
CN115720182B (zh) * 2022-11-18 2024-07-02 国网江苏省电力有限公司信息通信分公司 以太网网关的拟态化改造方法、装置及系统
CN116112429B (zh) * 2022-12-29 2024-09-06 国网河南省电力公司信息通信公司 基于标签路由策略的容器清洗方法、装置及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103469309A (zh) * 2013-09-12 2013-12-25 博雅干细胞科技有限公司 一种组织匀浆法分离活细胞构建细胞库的方法
CN106512746A (zh) * 2016-10-11 2017-03-22 天津工业大学 一种基于化学清洗响应的分离膜及其使用方法
WO2018171810A1 (zh) * 2017-03-20 2018-09-27 中兴通讯股份有限公司 一种实现移动目标防御的方法、装置及存储介质
CN111556008A (zh) * 2020-03-16 2020-08-18 中国人民解放军战略支援部队信息工程大学 拟态架构交换设备中有状态协议的同步方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103469309A (zh) * 2013-09-12 2013-12-25 博雅干细胞科技有限公司 一种组织匀浆法分离活细胞构建细胞库的方法
CN106512746A (zh) * 2016-10-11 2017-03-22 天津工业大学 一种基于化学清洗响应的分离膜及其使用方法
WO2018171810A1 (zh) * 2017-03-20 2018-09-27 中兴通讯股份有限公司 一种实现移动目标防御的方法、装置及存储介质
CN111556008A (zh) * 2020-03-16 2020-08-18 中国人民解放军战略支援部队信息工程大学 拟态架构交换设备中有状态协议的同步方法

Also Published As

Publication number Publication date
CN112506620A (zh) 2021-03-16

Similar Documents

Publication Publication Date Title
CN112506620B (zh) 基于docker容器部署的ospf协议的清洗恢复方法、装置、设备和介质
Liskov et al. Viewstamped replication revisited
US6625639B1 (en) Apparatus and method for processing a task in a clustered computing environment
US9021459B1 (en) High availability in-service software upgrade using virtual machine instances in dual control units of a network device
US8806266B1 (en) High availability using full memory replication between virtual machine instances on a network device
CN108234302B (zh) 保持网络装置用的分布式操作系统中的一致性
US7237140B2 (en) Fault tolerant multi-node computing system for parallel-running a program under different environments
US11429466B2 (en) Operating system-based systems and method of achieving fault tolerance
US7304940B2 (en) Network switch assembly, network switching device, and method
Wang et al. Hadoop high availability through metadata replication
US8769155B2 (en) Techniques for synchronizing application object instances
US8799422B1 (en) In-service configuration upgrade using virtual machine instances
JP4680919B2 (ja) ネットワークノードクラスタのための冗長なルーティング機能
US20050213498A1 (en) Routing system and method for transparently recovering routing states after a failover or during a software upgrade
EP2822255B1 (en) System and method of a hardware shadow for a network element
JP5948933B2 (ja) ジョブ継続管理装置、ジョブ継続管理方法、及び、ジョブ継続管理プログラム
US20150074219A1 (en) High availability networking using transactional memory
JP2003018199A (ja) ルータ及びネットワークにおける一時停止方法
JP3901060B2 (ja) アプリケーションの更新処理方法、更新処理システム及び更新処理プログラム
JP2012190175A (ja) フォールトトレラントシステム、サーバ、フォールトトレラント化方法およびプログラム
US20100085871A1 (en) Resource leak recovery in a multi-node computer system
US8537662B2 (en) Global detection of resource leaks in a multi-node computer system
CN109725916A (zh) 流处理的拓扑结构更新系统和方法
CN113055203A (zh) Sdn控制平面的异常恢复方法及装置
CN114390052A (zh) 一种基于vrrp协议实现etcd双节点高可用方法和装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant