一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

DHCP服务器的部署方法、装置、设备及存储介质与流程

2022-12-19 23:16:25 来源:中国专利 TAG:
dhcp服务器的部署方法、装置、设备及存储介质
技术领域
:1.本发明涉及云计算
技术领域
:,具体涉及一种动态主机配置协议(dynamichostconfigurationprotocol,dhcp)服务器的部署方法、装置、设备及存储介质。
背景技术
::2.在openstack大规模集群跨单元(pod)的云计算场景中,把原来一个大的openstack集群拆分成多个小的pod,并把拆分的小的pod级联起来统一管理。3.相关技术中,设立单独一个pod作为dhcppod,dhcppod用于为其他的计算pod提供dhcp服务:其他所有的计算pod中的虚拟机都从该dhcppod中请求地址,如网络协议(internetprotocol,ip)地址、媒体接入控制(mediumaccesscontrol,mac)地址。当该dhcppod故障时,其他计算pod均无法获取dhcp服务,从而影响其他计算pod的正常使用。技术实现要素:4.本技术提供了一种dhcp服务器的部署方法、装置、设备及存储介质,该技术方案如下。5.一方面,提供了一种dhcp服务器的部署方法,所述方法由openstack集群中的第一单元pod执行,所述第一pod是所述openstack集群中的任意一个pod,且所述第一pod复用所述第一pod中的计算节点作为dhcp服务器,所述dhcp服务器用于为所述第一pod中的虚拟机提供dhcp服务,所述方法包括:6.所述虚拟机向所述dhcp服务器发送地址配置请求报文,所述地址配置请求报文用于向所述dhcp服务器请求配置地址;7.所述dhcp服务器基于所述地址配置请求报文,向所述虚拟机发送地址配置响应报文,所述地址配置响应报文用于为所述虚拟机配置地址。8.又一方面,提供了一种dhcp服务器的部署装置,所述装置由openstack集群中的第一单元pod执行,所述第一pod是所述openstack集群中的任意一个pod,且所述第一pod复用所述第一pod中的计算节点作为dhcp服务器,所述dhcp服务器用于为所述第一pod中的虚拟机提供dhcp服务,所述装置包括:请求报文发送模块,响应报文发送模块;9.所述请求报文发送模块,用于供所述虚拟机向所述dhcp服务器发送地址配置请求报文,所述地址配置请求报文用于向所述dhcp服务器请求配置地址;10.所述响应报文发送模块,用于供所述dhcp服务器基于所述地址配置请求报文,向所述虚拟机发送地址配置响应报文,所述地址配置响应报文用于为所述虚拟机配置地址。11.在一种可能的实现方式中,所述第一pod中的dhcp服务器,与所述openstack集群中的其它pod中的dhcp服务器,具有相同的网络地址。12.在一种可能的实现方式中,所述网络地址包括:13.ip地址;14.或,15.mac地址。16.在一种可能的实现方式中,所述dhcp服务器的命名空间中设置有iptables规则,所述iptables规则用于限制只允许所述第一pod中的dhcp流量通过所述dhcp服务器,所述dhcp流量包括:所述地址配置请求报文、所述地址配置响应报文;17.所述装置还包括:dhcp流量隔离模块;18.所述dhcp流量隔离模块,用于供所述dhcp服务器在所述dhcp服务器处到达第一报文时,若所述第一报文为所述dhcp流量以外的其他类型的报文,基于所述iptables规则,对所述第一报文执行丢弃操作。19.在一种可能的实现方式中,所述第一pod中的l2gw设备中设置有流表,所述流表用于禁止所述第一pod中的dhcp流量进出所述l2gw设备;20.所述装置还包括:dhcp流量隔离模块;21.所述dhcp流量隔离模块,用于供所述l2gw设备在所述l2gw设备处到达第二报文时,若所述第二报文为所述第一pod中的dhcp流量,基于所述流表,对所述第二报文执行丢弃操作,所述dhcp流量包括:所述地址配置请求报文、所述地址配置响应报文。22.再一方面,提供了一种计算机设备,所述计算机设备中包含处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现上述的dhcp服务器的部署方法。23.又一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令,所述至少一条指令由处理器加载并执行以实现上述的dhcp服务器的部署方法。24.再一方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述的dhcp服务器的部署方法。25.本技术提供的技术方案可以包括以下有益效果:26.openstack中的每个pod复用该pod中的计算节点作为dhcp服务器,从而为自身提供pdcp服务,相较于相关技术中单独在一个pod上部署dhcp服务,使用该pod为其他的多个pod提供dhcp服务的技术方案,可以避免单点故障,从而保障dhcp服务的高可用性。附图说明27.为了更清楚地说明本技术具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本技术的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。28.图1是根据一示例性实施例示出的相关技术所提供的openstack大规模集群跨pod的tricircle方案的示意图。29.图2是根据一示例性实施例示出的本技术所提供的面向openstack大规模集群跨pod的dhcp高可用方案的示意图。30.图3是根据一示例性实施例示出的一种dhcp服务器的部署方法的方法流程图。31.图4是根据一示例性实施例示出的一种dhcp服务器的部署装置的结构方框图。32.图5是根据本技术一示例性实施例提供的一种计算机设备的示意图。具体实施方式33.下面将结合附图对本技术的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。34.应理解,在本技术的实施例中提到的“指示”可以是直接指示,也可以是间接指示,还可以是表示具有关联关系。举例说明,a指示b,可以表示a直接指示b,例如b可以通过a获取;也可以表示a间接指示b,例如a指示c,b可以通过c获取;还可以表示a和b之间具有关联关系。35.在本技术实施例的描述中,术语“对应”可表示两者之间具有直接对应或间接对应的关系,也可以表示两者之间具有关联关系,也可以是指示与被指示、配置与被配置等关系。36.本技术实施例中,“预定义”可以通过在设备(例如,包括终端设备和网络设备)中预先保存相应的代码、表格或其他可用于指示相关信息的方式来实现,本技术对于其具体的实现方式不做限定。37.首先结合图1,对相关技术所提供的openstack大规模集群跨pod的tricircle方案进行介绍。38.如图1所示,共有n 1个pod,设立其中的单独一个pod作为dhcppod,剩下的pod作为计算pod,包括:计算pod1至计算podn。39.在dhcppod中,包括dhcp集群和l2gw集群。其中,dhcp集群用于向其他计算pod提供dhcp服务,l2gw集群是与其他pod建立外部虚拟扩展局域网(virtualextensiblelocalareanetwork,vxlan)的接口。其中,dhcppod中的dhcp集群和l2gw集群建立有内部vxlan。40.在计算pod中,包括计算节点集群和l2gw集群。其中,计算节点集群用于进行云计算,l2gw集群是与其他pod建立外部vxlan的接口。其中,计算pod中的计算节点集群和l2gw集群建立有内部vxlan。41.在此架构下,dhcp流量如图1所示。比如,以dhcp流量由dhcppod至计算pod1,即,由dhcp服务端至dhcp客户端,进行说明:dhcp流量由dhcppod中的dhcp集群生成,并通过内部vxlan发送至dhcppod中的l2gw集群,dhcppod中的l2gw集群基于与计算pod1中的l2gw集群之间的外部vxlan,将dhcp流量发送至计算pod1中的l2gw集群,再由计算pod1中的l2gw集群通过内部vxlan,将dhcp流量发送至计算pod1中的计算节点集群,最终到达其中的虚拟机。42.基于如上方案,一方面,当计算pod很多时,dhcppod必然会有性能瓶颈,另一方面,dhcppod发生故障时也必然会影响到所有计算pod的正常使用。43.针对如上问题,结合参考图2,本技术实施例中提供了一种面向openstack大规模集群跨pod的dhcp高可用方案。在本技术实施例中,每个pod复用计算节点做dhcp服务器。44.如图2所示,共有n个pod,包括:计算pod1至计算podn。45.针对计算pod1至计算podn中的任意一个pod,该pod中包括:计算节点集群和l2gw集群。其中,计算节点集群除了用于进行云计算之外,还复用做dhcp服务器;l2gw集群是与其他pod建立外部vxlan的接口。其中,计算节点集群和l2gw集群建立有内部vxlan。46.在此架构下,dhcp流量如图2所示。比如,以dhcp流量是计算pod1中的流量,且是由dhcp服务端至dhcp客户端的流量进行说明:dhcp流量由计算pod1中的计算节点集群中的复用作为dhcp服务器的计算节点生成,并将该dhcp流量发送至该计算节点集群中的一个虚拟机。47.下面,结合如下实施例对本技术所提供的技术方案进行说明。48.图3是根据一示例性实施例示出的dhcp服务器的部署方法的方法流程图。该方法由openstack集群中的第一pod执行,该第一pod可以是一种计算机设备。49.其中,第一pod是openstack集群中的任意一个pod。也即,对于openstack集群中的每个pod,均可以采用本实施例所提供的dhcp服务器的部署方法。50.在本技术实施例中,第一pod中复用其中的计算节点做dhcp服务器,dhcp服务器用于为第一pod中的虚拟机提供dhcp服务:一方面,对计算节点进行复用,不需要额外部署独立的物理机作为dhcp服务器,节省了物理设备的资源,降低了设备成本;另一方面,dhcp服务器仅为单个pod提供dhcp服务,提高了dhcp的性能;再一方面,单个pod的dhcp故障不再影响其他pod的正常dhcp服务请求,从而避免单点故障。51.如图3所示,该dhcp服务器的部署方法可以包括如下步骤:52.步骤310:虚拟机向dhcp服务器发送地址配置请求报文,地址配置请求报文用于向dhcp服务器请求配置地址。53.步骤320:dhcp服务器基于地址配置请求报文,向虚拟机发送地址配置响应报文,地址配置响应报文用于为虚拟机配置地址。54.示例性的,第一pod中的计算节点1、计算节点2、计算节点3复用作为dhcp服务器,则第一pod中的计算节点4对应的虚拟机可以向dhcp服务器发送地址配置请求报文,dhcp服务器相应向该虚拟机反馈地址配置响应报文。55.综上所述,本实施例提供的dhcp服务器的部署方法,openstack中的每个pod复用该pod中的计算节点作为dhcp服务器,从而为自身提供pdcp服务,相较于相关技术中单独在一个pod上部署dhcp服务,使用该pod为其他的多个pod提供dhcp服务的技术方案,可以避免单点故障,从而保障dhcp服务的高可用性。56.在示意性实施例中,由于虚拟私有云(virtualprivatecloud,vpc)中的网络地址的资源是有限的,为了节省vpc的网络地址,所有的pod的dhcp服务器具有相同的网络地址。57.也即,第一pod中的dhcp服务器,与openstack集群中的其它pod中的dhcp服务器,具有相同的网络地址。58.在一种可能的实现方式中,网络地址包括:ip地址;或,mac地址。59.示例性的,在如图2所示的架构中,计算pod1中复用做dhcp服务器的计算节点、计算pod2中复用做dhcp服务器的计算节点、......、计算podn中复用做dhcp服务器的计算节点,具有相同的ip地址以及mac地址。60.相关技术中,虚拟网桥具备mac地址自学习的功能,该功能指的是:在虚拟网桥接收到数据包的情况下,会分析该数据包的mac地址,如果是新的mac地址,就对该mac地址进行自动学习,以建立mac转发表,该mac转发表用于进行数据包的转发。61.在示意性实施例中,在上述所有的pod的dhcp服务器具有相同的网络地址的设计下,虚拟网桥难以确定对应于上述网络地址的数据包的转发的方向,为了避免虚拟网桥学习dhcp的mac地址的信息紊乱,需要对各个pod中的dhcp流量进行隔离。62.也即,第一pod还执行如下步骤:隔离第一pod中的dhcp流量。63.在一种可能的实现方式中,隔离第一pod中的dhcp流量,包括:在dhcp服务器的命名空间中,通过增加iptables规则来限制只允许第一pod中的dhcp流量通过dhcp服务器。64.相应的,在dhcp服务器处到达第一报文时,若第一报文为dhcp流量以外的其他类型的报文,dhcp服务器基于iptables规则,对第一报文执行丢弃操作,dhcp流量包括:地址配置请求报文、地址配置响应报文。65.示例性的,增加的iptables规则设计如下:66.iptables-ainput-pudp-mudp‑‑sport68‑‑dport67-jaccept;67.iptables-ainput-jdrop;68.iptables-aoutput-pudp-mudp‑‑sport67‑‑dport68-jaccept;69.iptables-aoutput-jdrop。70.其中,iptables表示需要操作的是iptables规则;a表示添加,后接需要添加到的链;p表示协议类型,后接数据包协议类型;m表示模块,后接相应模块;sport表示源端口,68是dhcp客户端的报文,67是dhcp服务端的报文;dport表示目的端口,68是dhcp客户端的报文,67是dhcp服务端的报文;j表示数据包被操作的动作,drop表示丢弃,accept表示接受。71.因此,根据上述增加的iptables规则,只放行dhcp客户端与dhcp服务器之间通信的dhcp流量,而不会允许其他类型的报文通过,比如:在报文是连通(ping)dhcp地址的报文的情况下,则不放行该报文,以避免该报文在通过dhcp服务器之后,经过l2gw设备,导致l2gw设备自学习mac地址的信息紊乱,无法确定dhcp服务器具体是在哪一个pod中。72.在一种可能的实现方式中,隔离第一pod中的dhcp流量,包括:在第一pod中的l2gw设备中,通过增加流表来禁止第一pod中的dhcp流量进出l2gw设备。73.相应的,在l2gw设备处到达第二报文时,若第二报文为第一pod中的dhcp流量,l2gw设备基于流表,对第二报文执行丢弃操作,dhcp流量包括:地址配置请求报文、地址配置响应报文。74.也即,在第一pod中的l2gw设备中增加流表,使得当前pod的dhcp流量无法通过l2gw设备到达其他pod,从而隔离了不同pod之间的dhcp流量。75.示例性的,增加的流表设计如下:76.table=0,priority=1,dl_type=0x0800,nw_proto=17,udp_src=68,udp_dst=67,actions=drop;77.table=0,priority=1,dl_type=0x0800,nw_proto=17,udp_src=67,udp_dst=68,actions=drop。78.其中,table是流表所属表项,标识流表所属的表;priority表示流表的优先级,范围为0-65535,值越大,优先级越高;dl_type表示匹配以太网协议类型(ethertype),该类型指定为0到65535之间的整数,0x0800表示ipv4报文;nw_proto表示匹配数据包协议类型,17表示udp报文;udp_src表示数据包的源端口,68是dhcp客户端的报文;udp_dst表示数据包的目的端口,67是dhcp服务端的报文;actions数据包被操作的动作,drop表示丢弃。79.因此,根据上述增加的流表,不管是dhcp客户端向dhcp服务端发送的地址配置请求报文,还是dhcp服务器端向dhcp客户端发送的地址配置响应报文,l2gw设备都将采取丢弃数据包的动作,以避免第一pod中的dhcp流量通过该l2gw设备到达其他pod。80.综上所述,本实施例提供的dhcp服务器的部署方法,通过隔离各个pod的dhcp流量,避免虚拟网桥学习dhcp的mac信息紊乱。81.需要说明的是,上述方法实施例可以单独实施例,也可以组合实施,本技术对此不加以限制。82.图4是根据一示例性实施例示出的一种dhcp服务器的部署装置的结构方框图。所述装置由openstack集群中的第一单元pod执行,所述第一pod是所述openstack集群中的任意一个pod,且所述第一pod复用所述第一pod中的计算节点作为dhcp服务器,所述dhcp服务器用于为所述第一pod中的虚拟机提供dhcp服务,所述装置包括:请求报文发送模块410,响应报文发送模块420;83.所述请求报文发送模块410,用于供所述虚拟机向所述dhcp服务器发送地址配置请求报文,所述地址配置请求报文用于向所述dhcp服务器请求配置地址;84.所述响应报文发送模块420,用于供所述dhcp服务器基于所述地址配置请求报文,向所述虚拟机发送地址配置响应报文,所述地址配置响应报文用于为所述虚拟机配置地址。85.在一种可能的实现方式中,所述第一pod中的dhcp服务器,与所述openstack集群中的其它pod中的dhcp服务器,具有相同的网络地址。86.在一种可能的实现方式中,所述网络地址包括:87.ip地址;88.或,89.mac地址。90.在一种可能的实现方式中,所述dhcp服务器的命名空间中设置有iptables规则,所述iptables规则用于限制只允许所述第一pod中的dhcp流量通过所述dhcp服务器,所述dhcp流量包括:所述地址配置请求报文、所述地址配置响应报文;91.所述装置还包括:dhcp流量隔离模块;92.所述dhcp流量隔离模块,用于供所述dhcp服务器在所述dhcp服务器处到达第一报文时,若所述第一报文为所述dhcp流量以外的其他类型的报文,基于所述iptables规则,对所述第一报文执行丢弃操作。93.在一种可能的实现方式中,所述第一pod中的l2gw设备中设置有流表,所述流表用于禁止所述第一pod中的dhcp流量进出所述l2gw设备;94.所述装置还包括:dhcp流量隔离模块;95.所述dhcp流量隔离模块,用于供所述l2gw设备在所述l2gw设备处到达第二报文时,若所述第二报文为所述第一pod中的dhcp流量,基于所述流表,对所述第二报文执行丢弃操作,所述dhcp流量包括:所述地址配置请求报文、所述地址配置响应报文。96.需要说明的是:上述实施例提供的dhcp服务器的部署装置,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。97.请参阅图5,其是根据本技术一示例性实施例提供的一种计算机设备的示意图,所述计算机设备包括存储器和处理器,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行时,实现上述的dhcp服务器的部署方法。98.其中,处理器可以为中央处理器(centralprocessingunit,cpu)。处理器还可以为其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。99.存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如本发明实施方式中的方法对应的程序指令/模块。处理器通过运行存储在存储器中的非暂态软件程序、指令以及模块,从而执行处理器的各种功能应用以及数据处理,即实现上述方法实施方式中的方法。100.存储器可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储处理器所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。101.在一示例性实施例中,还提供了一种计算机可读存储介质,用于存储有至少一条计算机程序,所述至少一条计算机程序由处理器加载并执行以实现上述方法中的全部或部分步骤。例如,该计算机可读存储介质可以是只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、只读光盘(compactdiscread-onlymemory,cd-rom)、磁带、软盘和光数据存储设备等。102.本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本技术的其它实施方案。本技术旨在涵盖本技术的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本技术的一般性原理并包括本技术未公开的本
技术领域
:中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本技术的真正范围和精神由下面的权利要求指出。103.应当理解的是,本技术并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本技术的范围仅由所附的权利要求来限制。当前第1页12当前第1页12
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献