CN111835684A - 一种haproxy设备的网络隔离监控方法及系统 - Google Patents

一种haproxy设备的网络隔离监控方法及系统 Download PDF

Info

Publication number
CN111835684A
CN111835684A CN201910319632.7A CN201910319632A CN111835684A CN 111835684 A CN111835684 A CN 111835684A CN 201910319632 A CN201910319632 A CN 201910319632A CN 111835684 A CN111835684 A CN 111835684A
Authority
CN
China
Prior art keywords
isolation
vrrp
space
haproxy
target
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.)
Granted
Application number
CN201910319632.7A
Other languages
English (en)
Other versions
CN111835684B (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.)
Xiamen Wangsu Co Ltd
Original Assignee
Xiamen Wangsu Co Ltd
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 Xiamen Wangsu Co Ltd filed Critical Xiamen Wangsu Co Ltd
Priority to CN201910319632.7A priority Critical patent/CN111835684B/zh
Publication of CN111835684A publication Critical patent/CN111835684A/zh
Application granted granted Critical
Publication of CN111835684B publication Critical patent/CN111835684B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0209Architectural arrangements, e.g. perimeter networks or demilitarized zones
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0817Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/16Multipoint routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/22Alternate routing

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Environmental & Geological Engineering (AREA)
  • Hardware Redundancy (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种haproxy设备的网络隔离监控方法及系统,其中,所述haproxy设备中包括基于用户态协议栈进行划分的多个隔离空间;所述方法包括:在所述haproxy设备中启动haproxy进程;在所述haproxy进程启动过程中,分别创建每个所述隔离空间各自对应的虚拟接口;其中,所述虚拟接口的运行状态与对应的隔离空间的运行状态保持一致;启动keepalived进程,所述keepalived进程通过各个所述虚拟接口监控对应的隔离空间的运行状态。本申请提供的技术方案,能够实现隔离空间级别的监控。

Description

一种haproxy设备的网络隔离监控方法及系统
技术领域
本发明涉及互联网技术领域,特别涉及一种haproxy设备的网络隔离监控方法及系统。
背景技术
随着互联网技术的不断发展,网络中需要处理的数据也在与日俱增。为了提高网络资源的利用率,以及让网络资源具备灵活的可扩展性和可管理性,可以通过虚拟化的技术,在一台网络设备中部署多个相互隔离的封闭空间。同时,还可以通过keepalived的技术实现这些封闭空间的高可用。
针对当前的第七层负载均衡器haproxy而言,在实现网络隔离后,keepalived可以通过监控haproxy设备的接口来确认haproxy设备的可用性。然而,原生的keepalived只能对整个haproxy设备的运行状态进行监控,没法细化到不同的隔离空间,从而无法实现隔离空间级别的监控。
发明内容
本申请的目的在于提供一种haproxy设备的网络隔离监控方法及系统,能够实现隔离空间级别的监控。
为实现上述目的,本申请一方面提供一种haproxy设备的网络隔离监控方法,所述haproxy设备中包括基于用户态协议栈进行划分的多个隔离空间;所述方法包括:在所述haproxy设备中启动haproxy进程;在所述haproxy进程启动过程中,分别创建每个所述隔离空间各自对应的虚拟接口;其中,所述虚拟接口的运行状态与对应的隔离空间的运行状态保持一致;启动keepalived进程,所述keepalived进程通过各个所述虚拟接口监控对应的隔离空间的运行状态。
为实现上述目的,本申请另一方面还提供一种haproxy设备的网络隔离监控系统,所述haproxy设备中包括基于用户态协议栈进行划分的多个隔离空间;所述系统包括:haproxy进程启动单元,用于在所述haproxy设备中启动haproxy进程;虚拟接口创建单元,用于在所述haproxy进程启动过程中,分别创建每个所述隔离空间各自对应的虚拟接口;其中,所述虚拟接口的运行状态与对应的隔离空间的运行状态保持一致;状态监控单元,用于启动keepalived进程,所述keepalived进程通过各个所述虚拟接口监控对应的隔离空间的运行状态。
由上可见,本申请提供的技术方案,可以在haproxy设备中按照用户态协议栈进行隔离空间的划分。在这种情况下,多个隔离空间可以在一个haproxy进程内部实现。在haproxy进程启动过程中,可以针对每个隔离空间创建对应的虚拟接口。这样,针对多个隔离空间而言,便可以创建出等量的虚拟接口。同时,这些虚拟接口可以与对应的隔离空间的运行状态保持一致。这样,在haproxy中可以仅启动一个keepalived进程,并通过该keepalived进程实时监控各个虚拟接口的运行状态,从而可以根据虚拟接口的运行状态来确定出对应的隔离空间的运行状态。后续,如果某个或者某些隔离空间出现故障,对应的虚拟接口的运行状态也会立即改变,keepalived进程便可以获知哪些隔离空间出现了故障,从而可以按照预设的主从切换机制对具备主从关系的隔离空间进行切换,以保证能够向用户提供稳定的服务。由上可见,本申请提供的技术方案,通过为各个隔离空间创建等量的虚拟接口,从而可以通过一个keepalived进程来实现haproxy设备中隔离空间级别的监控。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施方式中haproxy设备中的隔离空间示意图;
图2是本发明实施方式中haproxy设备的网络隔离监控方法流程图;
图3是本发明实施方式中互为主从关系的两个haproxy设备的结构示意图;
图4是本发明实施方式中目标vrrp实例的内容示意图;
图5是本发明实施方式中互为主从关系的两个haproxy设备内的隔离空间的配置示意图;
图6是本发明实施方式中目标vrrp实例和从vrrp实例的结构示意图;
图7是本发明实施方式中多个互为主从关系的设备示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
本申请提供一种haproxy设备的网络隔离监控,所述haproxy设备中可以包括基于用户态协议栈进行划分的多个隔离空间。请参阅图1,在所述haproxy设备中,这些隔离空间可以具备各自的名称(user1、user2等等),并且处于同一haproxy设备中的多个隔离空间的名称互不相同。
请参阅图2,上述的haproxy设备的网络隔离监控方法可以包括以下步骤。
S1:在所述haproxy设备中启动haproxy进程。
S3:在所述haproxy进程启动过程中,分别创建每个所述隔离空间各自对应的虚拟接口;其中,所述虚拟接口的运行状态与对应的隔离空间的运行状态保持一致。
在本实施方式中,基于用户态协议栈划分的多个隔离空间可以在同一个进程内部实现,而无需依赖于内核的命名空间。在这种情况下,在haproxy设备中可以仅启动一个haproxy进程。为了监控多个隔离空间各自的运行状态,haproxy进程启动过程中,可以创建多个虚拟接口,其中,创建的虚拟接口与所述多个隔离空间可以一一对应,并且所述虚拟接口的运行状态与对应的隔离空间的运行状态保持一致。
在本实施方式中,不同的用户态协议栈可以通过不同的方式实现上述的虚拟接口。举例来说,在基于dpdk(Data Plane Development Kit,数据平台开发工具包)的用户态协议栈中,haproxy进程创建的虚拟接口可以是kni(Kernel NIC Interface,内核网卡接口)。具体地,如果隔离空间处于正常运行状态,那么对应的虚拟接口可以处于up状态;而如果隔离空间出现故障,那么对应的虚拟接口可以处于down状态。
S5:启动keepalived进程,所述keepalived进程通过各个所述虚拟接口监控对应的隔离空间的运行状态。
在本实施方式中,为了对多个隔离空间的运行状态进行监控,可以仅启动一个keepalived进程。请参阅图3,keepalived进程可以与创建的多个虚拟接口(虚拟接口集合)相连接,而创建的多个虚拟接口则可以与所述haproxy进程相连。这样,虚拟接口可以与haproxy进程内部的多个隔离空间一一对应,keepalived进程也可以通过监控各个虚拟接口当前的状态,从而获知对应的隔离空间的运行状态。
在一个实施方式中,在haproxy设备中配置多个基于用户态协议栈的隔离空间时,可以创建所述keepalived进程对应的配置文件,所述配置文件中可以包括多个部分的信息。例如,所述配置文件中可以包括全局定义块,该全局定义块可以用于指定当发生故障时,故障信息应当被发送至哪个邮箱地址,还可以用于限定haproxy设备的标识。此外,所述配置文件中还可以包括vrrp_sync_group块,在该块中,可以确定失败切换(failover)包含的各个路由实例,并且可以指定切换至haproxy设备或者备用设备时所需执行的脚本。再者,所述配置文件中还可以包括vrrp_instance(vrrp实例)的信息。在所述vrrp实例中,可以注明该vrrp实例对应的隔离空间信息、设备状态标识、绑定的网卡、发送多播包的地址、优先级标识、认证信息等一系列数据。在现有技术中,一个vrrp实例中只能包含一个隔离空间的空间信息,而在本实施方式中,可以在一个vrrp实例中写入多个隔离空间的空间信息。这样,一个vrrp实例便可以与多个隔离空间相对应。具体地,请参阅图4,假设haproxy设备的配置文件中,包括与多个隔离空间相对应的一个目标vrrp实例,在该目标vrrp实例中,可以注明该实例对应的虚拟路由标识(virtual_router_id),并且可以注明该实例对应的各个隔离空间的隔离空间名。例如,在图4中,目标vrrp实例的虚拟路由标识为50,并且该实例与隔离空间名为user1、user2、user3以及user4的四个隔离空间相对应。当然,图4仅仅是目标vrrp实例中包含的信息的一种简化展示图,在实际应用中,目标vrrp实例中还可以包含更加丰富的信息。由上可见,与目标vrrp实例相对应的所述多个隔离空间,便可以共用所述目标vrrp实例的虚拟路由标识。在现有技术中,一个vrrp实例中只能注明一个隔离空间的空间信息,而一个haproxy设备中可支持的vrrp实例的数量是有限的,从而使得haproxy设备支持的隔离空间的数量较少。而经过本实施方式中的改进,可以在同一个vrrp实例中注明多个隔离空间的空间信息,从而能够较大地提升haproxy设备支持的隔离空间的数量。
在一个实施方式中,在所述配置文件中可以包括两个以上的vrrp实例。为了使得不同的vrrp实例互不影响,可以规定,针对同一个配置文件中的不同vrrp实例而言,它们各自对应的虚拟路由标识互不相同。此外,由于在同一个vrrp实例中可以写入多个隔离空间的空间信息,因此能够减少配置文件中过多的冗余信息,极大地节省了配置文件的占用空间。
在本实施方式中,在对配置文件进行改进,使得一个vrrp实例能够对应多个隔离空间之后,为了使得haproxy设备能够根据改进后的配置文件正常配置隔离空间,还需要在代码层面进行相应的改进。
具体地,在代码层面,vrrp实例中包含的各项信息可以存储于该实例对应的结构体中。所述结构体可以是一种数据结构,所述结构体可以由各个不同的元素构成,而构成结构的这些元素便可以作为结构体的成员,其中,不同的成员可以实现不同的功能。例如,对于结构体中的隔离空间成员而言,可以记录vrrp实例中包含的隔离空间的空间信息。在现有技术中,vrrp实例对应的结构体中的隔离空间成员通常是指针类型,往往只能写入一个隔离空间的空间信息。为了使得一个vrrp实例的结构体中能够同时写入多个隔离空间的空间信息,需要对结构体中隔离空间成员的类型进行改进。具体地,可以在所述目标vrrp实例的结构体中确定用于记录空间信息的隔离空间成员,并将所述隔离空间成员的类型修改为链表类型。这样,链表类型的隔离空间成员便可以保存多个不同隔离空间的空间信息。
在本实施方式中,预先对结构体中隔离空间成员的类型进行改进之后,keepalived进程便可以解析上述的配置文件,从而可以提取出目标vrrp实例中包含的所述多个隔离空间的空间信息,进而可以在代码层面确定出所述目标vrrp实例对应的结构体,便可以将这些隔离空间的空间信息保存至所述结构体中经过类型改进的隔离空间成员中。
在本实施方式中,在对目标vrrp实例的结构体中的各项信息完成配置后,便可以将结构体中的所述多个隔离空间的空间信息传递至haproxy进程,从而通过haproxy进程在所述haproxy设备中配置对应的多个隔离空间。
在实际应用中,为了实现多个隔离空间的高可用,通常会在网络中部署互为主从关系的多个haproxy设备。为了便于阐述本申请的技术方案,以两个互为主从关系的haproxy设备为例,其中一个称为haproxy设备,另一个称为该haproxy设备的备用设备。请参阅图5,haproxy设备和备用设备中可以基于用户态协议栈划分相同的多个隔离空间。例如,在haproxy设备中可以划分user1至user4的4个隔离空间,那么在该haproxy设备的备用设备中,也可以划分具备相同名称的这4个隔离空间。在haproxy设备和备用设备中划分的这些隔离空间可以互为主从关系。其中,互为主从关系的隔离空间可以具备相同的空间名称。例如,haproxy设备中空间名称为user1的隔离空间可以与备用设备中空间名称为user1的隔离空间互为主从关系。其中,主隔离空间的状态可以是master,从隔离空间的状态可以是backup,并且具备相同空间名称的隔离空间中,仅具备一个状态为master的主隔离空间。例如,目前具备三台设备,这三台设备中一共具备三个空间名称为user11的隔离空间,那么这三个隔离空间中,仅有一个状态为master的主隔离空间,其它两个隔离空间的状态可以是backup或者fault。
在本实施方式中,haproxy设备和备用设备均可以按照步骤S1至S3中所述的方式,各自启动一个haproxy进程和keepalived进程,并可以创建与所述多个隔离空间相对应的多个虚拟接口。这样,在haproxy设备和备用设备中,keepalived进程均可以通过虚拟接口对各个隔离空间的运行状态进行监控。
在一个实施方式中,为了保持haproxy设备和备用设备中内容的一致性,可以按照以下方式创建所述备用设备的从配置文件。
请参阅图6,在本实施方式,所述haproxy设备的配置文件中可以包括目标vrrp实例,该目标vrrp实例应当在备用设备中也有对应备份内容,因此,在为所述备用设备创建从配置文件时,可以在所述从配置文件中建立所述目标vrrp实例的从vrrp实例。所述从配置文件便可以是所述备用设备的配置文件。也就是说,haproxy设备对应的目标vrrp实例与备用设备对应的从vrrp实例,也应当具备主从关系。为了保证这种主从关系,所述目标vrrp实例与所述从vrrp实例需要具备相同的虚拟路由标识,并且所述从vrrp实例与所述目标vrrp实例需要与相同的隔离空间相对应,也就是说,所述从vrrp实例也与上述的多个隔离空间相对应。如图6所示,目标vrrp实例的虚拟路由标识为50,包含隔离空间名为user1、user2、user3以及user4的四个隔离空间,那么在所述从vrrp实例中,虚拟路由标识也应当为50,并且也应当包含隔离空间名为user1、user2、user3以及user4的四个隔离空间。这样,haproxy设备和备用设备的配置文件中,通过虚拟路由标识便可以判断出哪两个vrrp实例具备主从关系,同时还能保证具备主从关系的vrrp实例与相同的隔离空间相对应。
需要说明的是,在实际应用中,haproxy设备的配置文件中可以包括多个vrrp实例,这些vrrp实例对应的从vrrp实例并不需要全部集中于同一个备用设备中。请参阅图7,haproxy设备的配置文件中包括vrrp实例1和vrrp实例2,并且该haproxy设备具备两个备用设备(备用设备1和备用设备2),此时,vrrp实例1对应的从vrrp实例(vrrp实例11)可以处于备用设备1的配置文件中,而vrrp实例2对应的从vrrp实例(vrrp实例21)可以处于备用设备2的配置文件中。
在本实施方式中,在为备用设备创建了从配置文件后,可以按照上述对haproxy设备的配置文件的类似处理方法,解析所述从配置文件,从而得到所述从vrrp实例中包含的所述多个隔离空间的空间信息,并将所述空间信息保存至所述从vrrp实例的结构体中。然后可以基于所述从vrrp实例的结构体中的所述空间信息,在所述备用设备中配置对应的多个隔离空间。这样,在备用设备中也可以配置对应的多个隔离空间。
在本实施方式中,针对haproxy设备中的所述目标vrrp实例,keepalived进程可以创建对应的vrrp报文,该vrrp报文中可以包括所述目标vrrp实例中状态为master的主隔离空间的组播信息。也就是说,若所述目标vrrp实例的多个隔离空间中,包含状态为master的主隔离空间,那么所述keepalived进程便可以创建所述主隔离空间的组播信息。所述组播信息中可以包括主隔离空间的优先级标识、认证信息、源IP等信息。如果所述目标vrrp实例的多个隔离空间中包括多个主隔离空间,那么便可以创建对应的多个组播信息。然后,keepalived进程可以基于创建的这些组播信息,构建所述目标vrrp实例的vrrp报文。在所述vrrp报文中,除了包含各个主隔离空间各自的组播信息,还可以包括所述目标vrrp实例的虚拟路由标识。此外,在所述目标vrrp实例中,还可以包括各个所述隔离空间的空间名称以及各个所述隔离空间对应的虚拟接口的标识。例如,所述目标vrrp实例对应3个隔离空间,那么在该目标vrrp实例中可以注明这3个隔离空间各自的空间名称,同时还可以注明这3个隔离空间对应的虚拟接口的标识。
如图3所示,在本实施方式中,所述haproxy设备中还可以包括物理网卡,所述物理网卡可以与局域网中的交换机相连。这样,当keepalived进程构建了目标vrrp实例的vrrp报文后,便可以通过所述物理网卡将所述vrrp报文发送至所述交换机处,并可以通过该交换机,将所述vrrp报文转发给局域网中的其它具备主从关系的设备。
在一个实施方式中,keepalived进程在创建主隔离空间的组播信息时,首先会判断该主隔离空间是否处于正常运行状态,对于出现故障的主隔离空间而言,keepalived进程并不会创建对应的组播信息。具体地,所述keepalived进程可以检测各个所述虚拟接口当前所处的运行状态,并可以确定出当前状态为up的目标虚拟接口。这些目标虚拟接口对应的隔离空间便可以是所述多个隔离空间中处于正常运行状态的目标隔离空间。然后,keepalived进程可以在所述目标隔离空间中识别出状态为master的主隔离空间,并针对识别出的所述主隔离空间创建对应的组播信息。这样,可以避免对状态为down的隔离空间创建组播信息。
需要说明的是,在现有技术中,一个vrrp实例往往只能对应一个隔离空间,而在本实施方式中,可以将基于用户态协议栈进行划分的多个隔离空间对应于一同一个vrrp实例中。keepalived进程在实现高可用时,会针对每个vrrp实例生成对应的vrrp报文,并将生成的vrrp报文在互为主从关系的设备之间进行传输。那么,采用本申请的技术方案后,由于一个vrrp实例可以对应多个隔离空间,那么便可以极大地减少haproxy设备中vrrp实例的数量,从而可以显著减少网络中传输的vrrp报文的数量。
在本实施方式中,haproxy设备和备用设备均可以按照以上阐述的方式,针对各自的vrrp实例生成对应的vrrp报文,并可以互相传输生成的vrrp报文。具体地,所述haproxy设备按照指定时间周期向所述备用设备发送所述目标vrrp实例的vrrp报文,所述目标vrrp实例的vrrp报文中包括所述目标vrrp实例中状态为master的隔离空间的组播信息。同样地,所述备用设备按照所述指定时间周期向所述haproxy设备发送所述从vrrp实例的vrrp报文,所述从vrrp实例的vrrp报文中包括所述从vrrp实例中状态为master的隔离空间的组播信息。如图5所示,haproxy设备发送的主vrrp报文中,可以携带user1和user2的两个隔离空间的组播信息,而备用设备发送的从vrrp报文中,可以携带user3和user4的两个隔离空间的组播信息。
在本实施方式中,互为主从关系的多个设备之间发送vrrp报文的目的是,可以了解到出现故障的主隔离空间,并可以在主隔离空间出现故障时,及时从对应的从隔离空间中选举出新的主隔离空间,从而能够向用户提供稳定的服务。具体地,位于haproxy设备或者备用设备中的状态为backup的从隔离空间,可以从haproxy设备或者备用设备接收到的vrrp报文中,识别出是否包含自身对应的主隔离空间的组播信息。如果主隔离空间处于正常运行状态,那么keepalived进程会生成对应的组播信息,那么对应的从隔离空间便可以从vrrp报文中识别出对应的主隔离空间的组播信息。而一旦主隔离空间出现故障,那么keepalived进程便不会生成对应的组播信息,那么对应的从隔离空间便无法从vrrp报文中识别出对应的主隔离空间的组播信息。如果所述haproxy设备或者所述备用设备中状态为backup的从隔离空间在指定时长内未接收到对应的主隔离空间的组播信息,则可以判定对应的主隔离空间当前无法正常工作,此时,所述haproxy设备或者所述备用设备中的keepalived进程可以将所述从隔离空间的状态切换至master状态,从而通过该从隔离空间继续向用户提供服务。当然,在实际应用中,一个主隔离空间可能会对应多个从隔离空间,那么当该主隔离空间出现故障后,keepalived进程便可以按照现有的竞争机制,从这多个从隔离空间中选举出一个从隔离空间,并将选举出的该从隔离空间的状态切换至master状态。
在一个实施方式中,在将从隔离空间的backup状态切换至master状态之后,为了使得从隔离空间能够替代主隔离空间向用户提供服务,可以将原本指向所述主隔离空间的虚拟IP地址更改为指向切换至master状态的从隔离空间,这样,以该虚拟IP地址为目的地址的数据报文均会被切换至master状态的从隔离空间接收,从而使得所述从隔离空间能够通过所述虚拟IP地址继续为用户提供服务,以保证服务的稳定性。
需要说明的是,以上在阐述具备主从关系的多个haproxy设备时,均是基于一个备用设备来阐述的,但这并不表示本申请的技术方案仅适用于一个备用设备中。其实,在实际应用中,一个haproxy设备可以具备多个备用设备,而本领域技术人员应当知晓,本申请以上阐述的技术方案,可以应用于haproxy设备与各个备用设备之间,并非限定于只能应用在haproxy设备与特定的一个备用设备之间。
本申请还提供一种haproxy设备的网络隔离监控系统,所述haproxy设备中包括基于用户态协议栈进行划分的多个隔离空间;所述系统包括:
haproxy进程启动单元,用于在所述haproxy设备中启动haproxy进程;
虚拟接口创建单元,用于在所述haproxy进程启动过程中,分别创建每个所述隔离空间各自对应的虚拟接口;其中,所述虚拟接口的运行状态与对应的隔离空间的运行状态保持一致;
状态监控单元,用于启动keepalived进程,所述keepalived进程通过各个所述虚拟接口监控对应的隔离空间的运行状态。
在一个实施方式中,所述系统还包括:
配置文件创建单元,用于创建所述keepalived进程对应的配置文件,所述配置文件中包括与所述多个隔离空间相对应的目标vrrp实例;其中,所述多个隔离空间共用所述目标vrrp实例的虚拟路由标识;
解析单元,用于解析所述配置文件,得到所述目标vrrp实例中包含的所述多个隔离空间的空间信息,并将所述空间信息保存至所述目标vrrp实例的结构体中;
隔离空间配置单元,用于基于所述结构体中的所述空间信息,在所述haproxy设备中配置所述多个隔离空间。
需要说明的是,本说明书中的haproxy设备的网络隔离监控系统,具体的实现方式可以参照前述方法实施方式的描述,在此不作赘述。
由上可见,本申请提供的技术方案,可以在haproxy设备中按照用户态协议栈进行隔离空间的划分。在这种情况下,多个隔离空间可以在一个haproxy进程内部实现。在haproxy进程启动过程中,可以针对每个隔离空间创建对应的虚拟接口。这样,针对多个隔离空间而言,便可以创建出等量的虚拟接口。同时,这些虚拟接口可以与对应的隔离空间的运行状态保持一致。这样,在haproxy中可以仅启动一个keepalived进程,并通过该keepalived进程实时监控各个虚拟接口的运行状态,从而可以根据虚拟接口的运行状态来确定出对应的隔离空间的运行状态。后续,如果某个或者某些隔离空间出现故障,对应的虚拟接口的运行状态也会立即改变,keepalived进程便可以获知哪些隔离空间出现了故障,从而可以按照预设的主从切换机制对具备主从关系的隔离空间进行切换,以保证能够向用户提供稳定的服务。由上可见,本申请提供的技术方案,通过为各个隔离空间创建等量的虚拟接口,从而可以通过一个keepalived进程来实现haproxy设备中隔离空间级别的监控。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件来实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (15)

1.一种haproxy设备的网络隔离监控方法,其特征在于,所述haproxy设备中包括基于用户态协议栈进行划分的多个隔离空间;所述方法包括:
在所述haproxy设备中启动haproxy进程;
在所述haproxy进程启动过程中,分别创建每个所述隔离空间各自对应的虚拟接口;其中,所述虚拟接口的运行状态与对应的隔离空间的运行状态保持一致;
启动keepalived进程,所述keepalived进程通过各个所述虚拟接口监控对应的隔离空间的运行状态。
2.根据权利要求1所述的方法,其特征在于,所述基于用户态协议栈进行划分的多个隔离空间按照以下方式在所述haproxy设备中进行配置:
创建所述keepalived进程对应的配置文件,所述配置文件中包括与所述多个隔离空间相对应的目标vrrp实例;其中,所述多个隔离空间共用所述目标vrrp实例的虚拟路由标识;
解析所述配置文件,得到所述目标vrrp实例中包含的所述多个隔离空间的空间信息,并将所述空间信息保存至所述目标vrrp实例的结构体中;
基于所述结构体中的所述空间信息,在所述haproxy设备中配置所述多个隔离空间。
3.根据权利要求2所述的方法,其特征在于,若所述配置文件中包括至少两个vrrp实例,所述至少两个vrrp实例各自对应的虚拟路由标识互不相同。
4.根据权利要求2所述的方法,其特征在于,将所述空间信息保存至所述目标vrrp实例的结构体中包括:
在所述目标vrrp实例的结构体中确定用于记录空间信息的隔离空间成员,并将所述隔离空间成员的类型修改为链表类型;
将解析得到的所述多个隔离空间的空间信息保存至修改为链表类型的隔离空间成员中。
5.根据权利要求2所述的方法,其特征在于,所述方法还包括:
若所述目标vrrp实例的所述多个隔离空间中存在状态为master的主隔离空间,所述keepalived进程创建所述主隔离空间的组播信息;
所述keepalived进程基于所述组播信息构建所述目标vrrp实例的主vrrp报文,并通过所述haproxy设备的物理网卡向其它设备发送所述主vrrp报文。
6.根据权利要求5所述的方法,其特征在于,所述keepalived进程创建所述主隔离空间的组播信息包括:
所述keepalived进程检测各个所述虚拟接口当前的运行状态,以从所述多个隔离空间中确定当前处于正常运行状态的目标隔离空间;
在所述目标隔离空间中识别出状态为master的主隔离空间,并针对识别出的所述主隔离空间创建对应的组播信息。
7.根据权利要求5所述的方法,其特征在于,所述目标vrrp实例中包括各个所述隔离空间的空间名称以及各个所述隔离空间对应的虚拟接口的标识。
8.根据权利要求2所述的方法,其特征在于,所述haproxy设备具有互为主从关系的备用设备;相应地,所述方法还包括:
为所述备用设备创建配置文件,并在所述备用设备的配置文件中建立所述目标vrrp实例的从vrrp实例;其中,所述目标vrrp实例与所述从vrrp实例具备相同的虚拟路由标识,并且所述从vrrp实例与所述多个隔离空间相对应。
9.根据权利要求8所述的方法,其特征在于,在为所述备用设备创建配置文件之后,所述方法还包括:
解析所述备用设备的配置文件,得到所述从vrrp实例中包含的所述多个隔离空间的空间信息,并将所述空间信息保存至所述从vrrp实例的结构体中;
基于所述从vrrp实例的结构体中的所述空间信息,在所述备用设备中配置所述多个隔离空间。
10.根据权利要求8所述的方法,其特征在于,所述目标vrrp实例中的隔离空间与所述从vrrp实例中的隔离空间互为主从关系;其中,互为主从关系的隔离空间具备相同的空间名称,并且具备相同空间名称的隔离空间中,仅具备一个状态为master的主隔离空间。
11.根据权利要求8所述的方法,其特征在于,所述方法还包括:
所述haproxy设备按照指定时间周期向所述备用设备发送所述目标vrrp实例的vrrp报文,所述目标vrrp实例的vrrp报文中包括所述目标vrrp实例中状态为master的隔离空间的组播信息;
所述备用设备按照所述指定时间周期向所述haproxy设备发送所述从vrrp实例的vrrp报文,所述从vrrp实例的vrrp报文中包括所述从vrrp实例中状态为master的隔离空间的组播信息。
12.根据权利要求11所述的方法,其特征在于,所述方法还包括:
若所述haproxy设备或者所述备用设备中状态为backup的从隔离空间在指定时长内未接收到对应的主隔离空间的组播信息,所述haproxy设备或者所述备用设备中的keepalived进程将所述从隔离空间的backup状态切换至master状态。
13.根据权利要求12所述的方法,其特征在于,所述haproxy设备或者所述备用设备中的keepalived进程将所述从隔离空间的backup状态切换至master状态之后,所述方法还包括:
将原本指向所述主隔离空间的虚拟IP地址更改为指向切换至master状态的从隔离空间,以使得所述从隔离空间通过所述虚拟IP地址提供服务。
14.一种haproxy设备的网络隔离监控系统,其特征在于,所述haproxy设备中包括基于用户态协议栈进行划分的多个隔离空间;所述系统包括:
haproxy进程启动单元,用于在所述haproxy设备中启动haproxy进程;
虚拟接口创建单元,用于在所述haproxy进程启动过程中,分别创建每个所述隔离空间各自对应的虚拟接口;其中,所述虚拟接口的运行状态与对应的隔离空间的运行状态保持一致;
状态监控单元,用于启动keepalived进程,所述keepalived进程通过各个所述虚拟接口监控对应的隔离空间的运行状态。
15.根据权利要求14所述的系统,其特征在于,所述系统还包括:
配置文件创建单元,用于创建所述keepalived进程对应的配置文件,所述配置文件中包括与所述多个隔离空间相对应的目标vrrp实例;其中,所述多个隔离空间共用所述目标vrrp实例的虚拟路由标识;
解析单元,用于解析所述配置文件,得到所述目标vrrp实例中包含的所述多个隔离空间的空间信息,并将所述空间信息保存至所述目标vrrp实例的结构体中;
隔离空间配置单元,用于基于所述结构体中的所述空间信息,在所述haproxy设备中配置所述多个隔离空间。
CN201910319632.7A 2019-04-19 2019-04-19 一种haproxy设备的网络隔离监控方法及系统 Active CN111835684B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910319632.7A CN111835684B (zh) 2019-04-19 2019-04-19 一种haproxy设备的网络隔离监控方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910319632.7A CN111835684B (zh) 2019-04-19 2019-04-19 一种haproxy设备的网络隔离监控方法及系统

Publications (2)

Publication Number Publication Date
CN111835684A true CN111835684A (zh) 2020-10-27
CN111835684B CN111835684B (zh) 2023-01-20

Family

ID=72911408

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910319632.7A Active CN111835684B (zh) 2019-04-19 2019-04-19 一种haproxy设备的网络隔离监控方法及系统

Country Status (1)

Country Link
CN (1) CN111835684B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113992683A (zh) * 2021-10-25 2022-01-28 重庆紫光华山智安科技有限公司 实现同一集群中双网络有效隔离的方法、系统、设备及介质
CN115134232A (zh) * 2022-07-04 2022-09-30 深信服科技股份有限公司 一种虚拟路由器管理方法、设备、系统和存储介质

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101060478A (zh) * 2007-03-27 2007-10-24 华为技术有限公司 一种路由器及路由器发布路由信息的方法
US20100146085A1 (en) * 2008-12-05 2010-06-10 Social Communications Company Realtime kernel
CN101741742A (zh) * 2009-12-18 2010-06-16 华为技术有限公司 报文处理方法、接入设备和通信系统
EP2796766A1 (de) * 2013-04-26 2014-10-29 Siemens Aktiengesellschaft Druckbehälter sowie Verfahren zur Überwachung dessen Zustands
CN104899126A (zh) * 2015-06-12 2015-09-09 北京奇虎科技有限公司 对宿主机中容器进行本地实时监控的方法、装置及系统
CN105760214A (zh) * 2016-04-19 2016-07-13 华为技术有限公司 一种设备状态及资源信息监测方法、相关设备及系统
WO2016206171A1 (zh) * 2015-06-26 2016-12-29 宇龙计算机通信科技(深圳)有限公司 一种基于网络隔离的安全连网方法及终端
CN106411589A (zh) * 2016-09-29 2017-02-15 北京神州绿盟信息安全科技股份有限公司 一种实现高可用的方法和装置
US20170060613A1 (en) * 2015-08-28 2017-03-02 Vmware, Inc. Partitioning a hypervisor into virtual hypervisors
CN106506314A (zh) * 2016-09-30 2017-03-15 北京赢点科技有限公司 基于docker的网络高可用方法及装置
CN108089968A (zh) * 2017-12-13 2018-05-29 国云科技股份有限公司 一种宿主机监控虚拟机数据库状态的方法
WO2018121625A1 (zh) * 2016-12-28 2018-07-05 华为技术有限公司 业务访问请求的处理方法和相关设备
CN109032806A (zh) * 2018-07-30 2018-12-18 华为技术有限公司 容器的服务调度方法和装置

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101060478A (zh) * 2007-03-27 2007-10-24 华为技术有限公司 一种路由器及路由器发布路由信息的方法
US20100146085A1 (en) * 2008-12-05 2010-06-10 Social Communications Company Realtime kernel
CN101741742A (zh) * 2009-12-18 2010-06-16 华为技术有限公司 报文处理方法、接入设备和通信系统
EP2796766A1 (de) * 2013-04-26 2014-10-29 Siemens Aktiengesellschaft Druckbehälter sowie Verfahren zur Überwachung dessen Zustands
CN104899126A (zh) * 2015-06-12 2015-09-09 北京奇虎科技有限公司 对宿主机中容器进行本地实时监控的方法、装置及系统
WO2016206171A1 (zh) * 2015-06-26 2016-12-29 宇龙计算机通信科技(深圳)有限公司 一种基于网络隔离的安全连网方法及终端
US20170060613A1 (en) * 2015-08-28 2017-03-02 Vmware, Inc. Partitioning a hypervisor into virtual hypervisors
CN105760214A (zh) * 2016-04-19 2016-07-13 华为技术有限公司 一种设备状态及资源信息监测方法、相关设备及系统
WO2017181876A1 (zh) * 2016-04-19 2017-10-26 华为技术有限公司 一种设备状态及资源信息监测方法、相关设备及系统
CN106411589A (zh) * 2016-09-29 2017-02-15 北京神州绿盟信息安全科技股份有限公司 一种实现高可用的方法和装置
CN106506314A (zh) * 2016-09-30 2017-03-15 北京赢点科技有限公司 基于docker的网络高可用方法及装置
WO2018121625A1 (zh) * 2016-12-28 2018-07-05 华为技术有限公司 业务访问请求的处理方法和相关设备
CN108089968A (zh) * 2017-12-13 2018-05-29 国云科技股份有限公司 一种宿主机监控虚拟机数据库状态的方法
CN109032806A (zh) * 2018-07-30 2018-12-18 华为技术有限公司 容器的服务调度方法和装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
蔡志强: "基于Docker技术的容器隔离性分析", 《ELECTRONICS WORLD・技术交流》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113992683A (zh) * 2021-10-25 2022-01-28 重庆紫光华山智安科技有限公司 实现同一集群中双网络有效隔离的方法、系统、设备及介质
CN113992683B (zh) * 2021-10-25 2024-02-13 重庆紫光华山智安科技有限公司 实现同一集群中双网络有效隔离的方法、系统、设备及介质
CN115134232A (zh) * 2022-07-04 2022-09-30 深信服科技股份有限公司 一种虚拟路由器管理方法、设备、系统和存储介质
CN115134232B (zh) * 2022-07-04 2024-02-23 深信服科技股份有限公司 一种虚拟路由器管理方法、设备、系统和存储介质

Also Published As

Publication number Publication date
CN111835684B (zh) 2023-01-20

Similar Documents

Publication Publication Date Title
CN110912780B (zh) 一种高可用集群检测方法、系统及受控终端
CN107078969B (zh) 实现负载均衡的计算机设备、系统和方法
CN106570074B (zh) 分布式数据库系统及其实现方法
US9058213B2 (en) Cloud-based mainframe integration system and method
CN110474802B (zh) 设备切换方法及装置、服务系统
CN109167702A (zh) 一种基于负载均衡的分布式测试方法及装置
CN111835685B (zh) 一种监控Nginx网络隔离空间的运行状态的方法和服务器
CN113709220B (zh) 虚拟负载均衡器的高可用实现方法、系统及电子设备
CN111698158A (zh) 主设备选举方法、装置及机器可读存储介质
CN110830574B (zh) 一种基于docker容器实现内网负载均衡的方法
CN113839862B (zh) Mclag邻居之间同步arp信息的方法、系统、终端及存储介质
JP2013090072A (ja) サービス提供システム
CN111835684B (zh) 一种haproxy设备的网络隔离监控方法及系统
US11824765B2 (en) Fast redirect of traffic when pods fail
CN111787079A (zh) 基于通信群组的通信方法、装置、服务器、系统及介质
CN110535947B (zh) 一种存储设备集群配置节点切换方法、装置及设备
CN106657187A (zh) 报文处理的方法及装置
CN111835544B (zh) 一种基于用户态协议栈的虚拟路由器的监控方法及系统
CN106209634B (zh) 地址映射关系的学习方法及装置
CN107087021B (zh) 主从服务器确定方法及装置
JP2009075710A (ja) 冗長化システム
CN111835805B (zh) 一种dpvs多租户的配置方法及系统
JPH1027146A (ja) 通信処理装置及び通信処理方法
CN110417599B (zh) 主备节点的切换方法以及节点服务器
CN108924028B (zh) 一种非已知单播报文在隧道间的切换方法及装置

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