CN115695374A - 一种IPv6子网前缀通告实现方法、装置、设备及存储介质 - Google Patents
一种IPv6子网前缀通告实现方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN115695374A CN115695374A CN202211328845.4A CN202211328845A CN115695374A CN 115695374 A CN115695374 A CN 115695374A CN 202211328845 A CN202211328845 A CN 202211328845A CN 115695374 A CN115695374 A CN 115695374A
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- subnet
- ipv6
- server
- 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.)
- Pending
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种IPv6子网前缀通告实现方法、装置、设备及存储介质,涉及通信技术领域,用于提高虚拟机获取IPv6地址及相关信息,并进行配置时的效率。方法包括:在服务器的控制器中增加互联网协议第6版IPv6子网前缀通告器;获取服务器内的多个虚拟机端口对应的多个子网信息,并将多个子网信息添加至子网缓存列表中,一个虚拟机端口对应一个子网信息;当通过IPv6子网前缀通告器监听到目标注册事件时,接收目标虚拟机发送的路由请求RS;基于子网缓存列表确定路由请求RS对应的路由应答RA,并通过服务器的控制器将路由应答RA发送给目标虚拟机,路由应答RA用于目标虚拟机获取IPv6地址。本申请应用于虚拟机获取IPv6地址及相关信息,并进行配置的场景中。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种IPv6子网前缀通告实现方法、装置、设备及存储介质。
背景技术
随着云平台网络技术的不断发展,当前在开源的云计算管理平台项目OpenStack(简称云平台)中,虚拟机需要通过互联网协议第6版(internet protocol version 6,IPv6)邻居发现协议(neighbor discovery protocol,NDP)来学习虚拟机端口(可称为port、tap口或虚拟机网卡)IPv6地址的配置方式、学习主机子网路由、IPv6其它信息的获取方式。
具体的,在OpenStack云网络环境下,每个虚拟私有云(virtual private cloud,VPC)都启动路由器广告守护进程(router advertisement daemon,radvd),通过radvd应答和发送IPv6子网前缀信息。radvd是IPv6的路由通告守护程序,负责侦听IPv6路由器请求并发送IPv6路由通告。这些IPv6路由通告的信息中包含相关标志位,虚拟机根据这些标志位可以自动配置它们的IPv6地址和其他一些参数(例如IPv6地址获取方式、主机域名系统(domain name system,DNS)获取方式等),虚拟机还可以根据这些IPv6路由通告来设置默认路由。
在上述方法中,由于虚拟机需要通过radvd进程获取IPv6路由通告,进行IPv6地址配置,而虚拟机和radvd进程部署在不同的计算节点上,虚拟机需要跨计算节点进行访问,导致虚拟机响应和通告IPv6路由信息的路径较长。并且,在虚拟机实现IPv6地址配置的过程中,一个VPC启动后都要启动一个radvd进程,导致radvd进程数量过多,且radvd进程长期存在,导致消耗服务器CPU和内存资源。从而,虚拟机获取IPv6地址及相关信息,并进行配置的效率较低。
发明内容
本申请提供一种IPv6子网前缀通告实现方法、装置、设备及存储介质,用于提高虚拟机获取IPv6地址及相关信息,并进行配置时的效率。
为达到上述目的,本申请采用如下技术方案:
第一方面,提供了一种IPv6子网前缀通告实现方法,方法包括:在服务器的控制器中增加互联网协议第6版IPv6子网前缀通告器;获取服务器内的多个虚拟机端口对应的多个子网信息,并将多个子网信息添加至子网缓存列表中,一个虚拟机端口对应一个子网信息,每个子网信息包括以下至少一项:虚拟机端口IP地址、虚拟机端口子网前缀、虚拟机获得IPV6地址的方式、标志位;当通过IPv6子网前缀通告器监听到目标注册事件时,接收目标虚拟机发送的路由请求RS;基于子网缓存列表确定路由请求RS对应的路由应答RA,并通过服务器的控制器将路由应答RA发送给目标虚拟机,路由应答RA用于目标虚拟机获取IPv6地址,路由应答RA包括:IPv6子网前缀。
在一种可能的实现方式中,方法还包括:在服务器的集成网桥上增加目标流表,目标流表包括以下至少一项:虚拟机端口标识、源MAC地址、ICMPv6协议、路由请求RS对应的报文协议号,目标流表用于将目标虚拟机发送的路由请求RS发送给服务器的控制器。
在一种可能的实现方式中,当通过IPv6子网前缀通告器监听到目标注册事件时,接收目标虚拟机发送的路由请求RS之前,方法还包括:基于目标流表,将目标虚拟机发送的路由请求RS发送给服务器的控制器。
在一种可能的实现方式中,方法还包括:当通过IPv6子网前缀通告器未监听到目标注册事件时,基于子网缓存列表,每间隔预设时长向多个虚拟机发送路由应答RA。
在一种可能的实现方式中,方法还包括:当服务器中新增第一虚拟机时,确定第一虚拟机对应的子网信息,并通过IPv6子网前缀通告器将第一虚拟机对应的子网信息添加至子网缓存列表中;当服务器中的第二虚拟机被删除时,通过IPv6子网前缀通告器将第二虚拟机对应的子网信息从子网缓存列表中删除。
第二方面,提供了一种IPv6子网前缀通告实现装置,IPv6子网前缀通告实现装置包括:处理单元、获取单元和传输单元;处理单元,用于在服务器的控制器中增加互联网协议第6版IPv6子网前缀通告器;获取单元,用于获取服务器内的多个虚拟机端口对应的多个子网信息;处理单元,还用于将多个子网信息添加至子网缓存列表中,一个虚拟机端口对应一个子网信息,每个子网信息包括以下至少一项:虚拟机端口IP地址、虚拟机端口子网前缀、虚拟机获得IPV6地址的方式、标志位;传输单元,用于当通过IPv6子网前缀通告器监听到目标注册事件时,接收目标虚拟机发送的路由请求RS;处理单元,还用于基于子网缓存列表确定路由请求RS对应的路由应答RA;传输单元,还用于通过服务器的控制器将路由应答RA发送给目标虚拟机,路由应答RA用于目标虚拟机获取IPv6地址,路由应答RA包括:IPv6子网前缀。
在一种可能的实现方式中,处理单元,还用于在服务器的集成网桥上增加目标流表,目标流表包括以下至少一项:虚拟机端口标识、源MAC地址、ICMPv6协议、路由请求RS对应的报文协议号,目标流表用于将目标虚拟机发送的路由请求RS发送给服务器的控制器。
在一种可能的实现方式中,传输单元,还用于基于目标流表,将目标虚拟机发送的路由请求RS发送给服务器的控制器。
在一种可能的实现方式中,传输单元,还用于当通过IPv6子网前缀通告器未监听到目标注册事件时,基于子网缓存列表,每间隔预设时长向多个虚拟机发送路由应答RA。
在一种可能的实现方式中,处理单元,还用于当服务器中新增第一虚拟机时,确定第一虚拟机对应的子网信息,并通过IPv6子网前缀通告器将第一虚拟机对应的子网信息添加至子网缓存列表中;处理单元,还用于当服务器中的第二虚拟机被删除时,通过IPv6子网前缀通告器将第二虚拟机对应的子网信息从子网缓存列表中删除。
第三方面,一种电子设备,包括:处理器以及存储器;其中,存储器用于存储一个或多个程序,一个或多个程序包括计算机执行指令,当电子设备运行时,处理器执行存储器存储的计算机执行指令,以使电子设备执行如第一方面的一种IPv6子网前缀通告实现方法。
第四方面,提供了一种存储一个或多个程序的计算机可读存储介质,该一个或多个程序包括指令,上述指令当被计算机执行时使计算机执行如第一方面的一种IPv6子网前缀通告实现方法。
本申请提供了一种IPv6子网前缀通告实现方法、装置、设备及存储介质,应用于虚拟机获取IPv6地址及相关信息,并进行配置的场景中。在虚拟机需要获取IPv6地址及相关信息,并进行配置时,可以在服务器的控制器中增加IPv6子网前缀通告器。进一步的,获取服务器内的多个虚拟机端口对应的多个子网信息,并将多个子网信息添加至子网缓存列表中,当通过IPv6子网前缀通告器监听到目标注册事件时,接收目标注册事件对应的目标虚拟机发送的路由请求RS。进而基于子网缓存列表确定路由请求RS对应的包括IPv6子网前缀的路由应答RA,并通过服务器的控制器将用于目标虚拟机获取IPv6地址的路由应答RA发送给目标虚拟机,从而目标虚拟机基于路由应答RA获取IPv6地址。通过上述方法,在虚拟机需要获取IPv6地址及相关信息,并进行配置时,可以基于子网缓存列表确定目标虚拟机发送的路由请求RS对应的路由应答RA,并通过服务器的控制器将用于目标虚拟机获取IPv6地址的路由应答RA发送给目标虚拟机。从而解决虚拟机要跨计算节点访问IPv6路由信息,导致虚拟机响应和通告IPv6路由信息的路径较长的问题。从而提高了虚拟机获取IPv6地址及相关信息,并进行配置的效率。
附图说明
图1为本申请的实施例提供的一种虚拟机获取IPv6地址及相关信息的流量路径示意图;
图2为本申请的实施例提供的一种虚拟机获取IPv6地址及相关信息的具体流程示意图;
图3为本申请的实施例提供的一种IPv6子网前缀通告实现系统的结构示意图;
图4为本申请的实施例提供的一种IPv6子网前缀通告实现方法流程示意图一;
图5为本申请的实施例提供的一种IPv6子网前缀通告实现方法流程示意图二;
图6为本申请的实施例提供的一种IPv6子网前缀通告实现方法流程示意图三;
图7为本申请的实施例提供的一种IPv6子网前缀通告实现方法流程示意图四;
图8为本申请的实施例提供的一种IPv6子网前缀通告实现方法流程示意图五;
图9为本申请的实施例提供的一种IPv6子网前缀通告实现方法具体流程示意图;
图10为本申请的实施例提供的一种IPv6子网前缀通告实现装置的结构示意图;
图11为本申请的实施例提供的一种电子设备结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
在本申请的描述中,除非另有说明,“/”表示“或”的意思,例如,A/B可以表示A或B。本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。此外,“至少一个”“多个”是指两个或两个以上。“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
在当前云平台中,如图1所示,示出了虚拟机获取IPv6地址及相关信息的流量路径。虚拟机通过集成网桥(可称为br-int或Ovs-bridge)发送IPv6路由请求RS(RouterSolicitation,Type 133)报文至物理网络设备(交换机、路由器等设备)。物理网络设备将IPv6路由请求RS通过集成网桥转发至radvd守护进程。radvd守护进程回复用于获取IPv6地址及相关信息的IPv6路由通告RA(Router Advertisement,Type 134)报文,并将IPv6路由通告RA重新通过物理网络设备发送至虚拟机,其中,IPv6路由通告RA用于告知虚拟机获取IPv6地址以及配置IPv6地址的方式、获取其他信息的方式以及IPv6地址子网前缀等信息。在上述路径中,当虚拟机通过虚拟路由器的命名空间(namespace)启动辅助进程radvd时,虚拟机发送的RS请求会到达虚拟路由器的namespace,并通过虚拟路由器的namespace启动辅助进程radvd。
具体的,OpenStack Neutron(Openstack的虚拟网络服务)VPC(虚拟机network下的subnet子网)中有两个关键属性ipv6_ra_mode和ipv6_address_mode(这两个关键属性都可以设置以下三个值:无状态地址自动配置(Stateless address autoconfiguration,slaac)、有状态动态主机配置协议(stateful dynamic host configuration protocolfor IPv6,dhcpv6-)和无状态动态主机配置协议(stateless dynamic hostconfiguration protocol for IPv6,dhcpv6-stateless))。根据这两个关键属性ipv6_ra_mode和ipv6_address_mode,可以生成相应的radvd的配置。这两个关键属性通过radvd的配置,控制radvd的RA应答关键标志位(Autonumuous Flag和Managed Flag),并最终影响虚拟机的IPv6地址、IPv6地址配置方式以及其他信息配置方式。其中,ipv6_ra_mode如果设置值,则表示虚拟机通过OpenStack Neutron使用radvd来设置IPv6地址;如果不设置值,则表示虚拟机通过非OpenStack使用外部IPv6路由器来设置IPv6地址。
ipv6_address_mod通过设置以下三个值:slaac、dhcpv6-stateful和dhcpv6-stateless,控制radvd的RA应答中的三个关键标志位(Autonumuous Flag,Managed Flag,Other Flag)。例如,若ipv6_address_mod设置为slaac,则A=1,M=0,O=0,表示虚拟机通过OpenStack,router根据radvd配置的通告,使用SLAAC配置IPv6地址;若ipv6_address_mod设置为dhcpv6-stateful,则A=0,M=1,O=1,表示虚拟机通过DHCPv6获取IPv6地址,并通过DHCPv6获取其他扩展信息;若ipv6_address_mod设置为dhcpv6-stateless,则A=1,M=0,O=1,表示虚拟机通过OpenStack,router根据radvd配置的通告,使用SLAAC配置IPv6地址,通过DHCPv6获取其他扩展信息。ipv6_ra_mode和ipv6_address_mode的具体设置如表1所示:
表1
在当前云网络环境下,虚拟机在启动后,需要根据VPC相关配置,对虚拟网卡设备进行IPv6相关配置,例如:学习IPv6地址配置的方式、配置IPv6地址信息、学习获取其他信息(如DNS、路由信息、网关信息等)的方式、配置获取的其他信息。
示例性的,如图2所示,示出了虚拟机获取IPv6地址及相关信息,并进行配置的具体流程图。虚拟机启动开始配置网卡,并自动生成IPv6本地链路地址,进一步的虚拟机发送IPv6路由请求RS,并通过radvd守护进程接收IPv6路由应答RA(包含IPv6子网前缀及参数),虚拟机根据RA报文的Autonumuous Flag确定生成IPv6地址的方式,并根据AutonumuousFlag生成本子网link路由和网关。如果RA报文的Autonumuous Flag为1,则虚拟机使用IPv6子网自动生成IPv6地址,生成本子网link路由和网关。如果RA报文的Autonumuous Flag为0,则虚拟机不生成IPv6地址,生成本子网link路由和网关。虚拟机根据RA报文的ManagedFlag确定是否发送DHCPv6请求获取IPv6地址及其他信息、是否配置获取的IPv6地址及其他信息。如果RA报文的Managed Flag为1,则虚拟机发送DHCPv6请求获取IPv6地址及其他信息、配置获取的IPv6地址及其他信息。如果RA报文的Managed Flag为0,则虚拟机根据RA报文的Other Flag确定是否发送DHCPv6请求获取其他信息、是否配置获取的其他信息。如果RA报文的Other Flag为1,则虚拟机发送DHCPv6请求获取其他信息、配置获取的其他信息。如果RA报文的Other Flag为0,则虚拟机不发送DHCPv6请求获取其他信息、不配置获取的其他信息。
在虚拟机通过radvd守护进程获取IPv6地址及相关信息,并进行配置的方法中,虚拟机需要通过与其部署在不同计算节点上的radvd进程,获取IPv6路由通告并进行IPv6地址配置,则虚拟机要跨计算节点访问IPv6路由信息,导致虚拟机响应和通告IPv6路由信息的路径较长。并且,虚拟机每次进行访问都会启动对应的VPC,每个VPC启动都要启动radvd进程,在整个云资源池中radvd数量与VPC数量一致,导致启动过多radvd进程;如果在分布式虚拟路由(distributed virtual router,DVR)环境下,那么在每个计算节点的每个虚拟路由器的namespace中,还要再次启动radvd进程,radvd守护进程数量会进一步增加,从而导致虚拟机获取IPv6地址及相关信息,并进行配置的效率较低。
同时,在上述方法中,通常只有在虚拟机需要配置IPv6地址和相关信息时,才会使用相关协议与radvd交互,而radvd进程长期存在,导致消耗服务器CPU和内存资源。如果在分布式虚拟路由环境下,在虚拟路由器的整个生命周期都伴随着radvd进程的启动,因此虚拟路由器需要为radvd实现一整套进程管理机制,由此会增加管理复杂度。
本申请实施例提供了一种IPv6子网前缀通告实现方法,在虚拟机需要获取IPv6地址及相关信息,并进行配置时,可以在服务器的控制器中增加IPv6子网前缀通告器。进一步的,获取服务器内的多个虚拟机端口对应的多个子网信息,并将多个子网信息添加至子网缓存列表中,当通过IPv6子网前缀通告器监听到目标注册事件时,接收目标注册事件对应的目标虚拟机发送的路由请求RS。进而基于子网缓存列表确定路由请求RS对应的包括IPv6子网前缀的路由应答RA,并通过服务器的控制器将用于目标虚拟机获取IPv6地址的路由应答RA发送给目标虚拟机,从而目标虚拟机基于路由应答RA获取IPv6地址。通过上述方法,在虚拟机需要获取IPv6地址及相关信息,并进行配置时,可以基于子网缓存列表确定目标虚拟机发送的路由请求RS对应的路由应答RA,并通过服务器的控制器将用于目标虚拟机获取IPv6地址的路由应答RA发送给目标虚拟机。从而解决虚拟机要跨计算节点访问IPv6路由信息,导致虚拟机响应和通告IPv6路由信息的路径较长的问题。从而提高了虚拟机获取IPv6地址及相关信息,并进行配置的效率。
本申请实施例提供的一种IPv6子网前缀通告实现方法,可以适用于IPv6子网前缀通告实现系统。图3示出了IPv6子网前缀通告实现系统的结构示意图。如图3所示,IPv6子网前缀通告实现系统20包括:虚拟机31、开放虚拟交换机(openvswitch)32和控制器(openvswitch-agent)33。开放虚拟交换机32包括集成网桥321和隧道桥(br-tun)322;集成网桥321包括tap口;控制器33包括IPv6子网前缀通告器(ra_speaker扩展插件)331;IPv6子网前缀通告器331包括EventOFPPacketIn和PaketOut。
其中,虚拟机31用于发送路由请求RS至集成网桥321;集成网桥321用于转发路由请求RS至控制器33的IPv6子网前缀通告器331、转发路由应答RA至虚拟机31;控制器33的IPv6子网前缀通告器331用于组装并发送路由应答RA至集成网桥321。
下面结合附图对本申请实施例提供的一种IPv6子网前缀通告实现方法进行描述。如图4所示,本申请实施例提供的一种IPv6子网前缀通告实现方法,方法包括S201-S204:
S201、在服务器的控制器中增加互联网协议第6版IPv6子网前缀通告器。
需要说明的是,控制器即为本服务器上的开放虚拟交换机openvswitch-agent,openvswitch-agent可以为运行于服务器上的一个流程。IPv6子网前缀通告器可以为位于服务器的控制器上的一个软件装置。
S202、获取服务器内的多个虚拟机端口对应的多个子网信息,并将多个子网信息添加至子网缓存列表中。
其中,一个虚拟机端口对应一个子网信息,每个子网信息包括以下至少一项:虚拟机端口IP地址、虚拟机端口子网前缀、虚拟机获得IPV6地址的方式、标志位。
可以理解,在IPv6子网前缀通告器初始化时,可以通过资源缓存远程过程调用(resource cache Remote Procedure Call,RPC)获取服务器内的全部虚拟机端口对应的全部子网信息,并将全部子网信息添加至子网缓存列表中。
需要说明的是,resource cache RPC为OpenStack Neutron自带的一个方法。
S203、当通过IPv6子网前缀通告器监听到目标注册事件时,接收目标虚拟机发送的路由请求RS。
可以理解,IPv6子网前缀通告器可以通过EventOFPPacketIn监听目标注册事件,在监听到目标注册事件时,接收目标虚拟机发送的路由请求RS。
可选地,目标注册事件可以为由目标虚拟机发送的路由请求RS。
需要说明的是,EventOFPPacketIn为IPv6子网前缀通告器的一个功能。
S204、基于子网缓存列表确定路由请求RS对应的路由应答RA,并通过服务器的控制器将路由应答RA发送给目标虚拟机。
其中,路由应答RA用于目标虚拟机获取IPv6地址,路由应答RA包括:IPv6子网前缀。
可以理解,IPv6子网前缀通告器可以基于子网缓存列表中发送路由请求RS的目标虚拟机对应的子网信息,组装路由请求RS对应的路由应答RA,并通过服务器的控制器上的PaketOut机制将路由应答RA发送给目标虚拟机。
需要说明的是,PaketOut机制为控制器的一个功能。
本申请提供了一种IPv6子网前缀通告实现方法,应用于虚拟机获取IPv6地址及相关信息,并进行配置的场景中。在虚拟机需要获取IPv6地址及相关信息,并进行配置时,可以在服务器的控制器中增加IPv6子网前缀通告器。进一步的,获取服务器内的多个虚拟机端口对应的多个子网信息,并将多个子网信息添加至子网缓存列表中,当通过IPv6子网前缀通告器监听到目标注册事件时,接收目标注册事件对应的目标虚拟机发送的路由请求RS。进而基于子网缓存列表确定路由请求RS对应的包括IPv6子网前缀的路由应答RA,并通过服务器的控制器将用于目标虚拟机获取IPv6地址的路由应答RA发送给目标虚拟机,从而目标虚拟机基于路由应答RA获取IPv6地址。通过上述方法,在虚拟机需要获取IPv6地址及相关信息,并进行配置时,可以基于子网缓存列表确定目标虚拟机发送的路由请求RS对应的路由应答RA,并通过服务器的控制器将用于目标虚拟机获取IPv6地址的路由应答RA发送给目标虚拟机。从而解决虚拟机要跨计算节点访问IPv6路由信息,导致虚拟机响应和通告IPv6路由信息的路径较长的问题。从而提高了虚拟机获取IPv6地址及相关信息,并进行配置的效率。
在一种设计中,如图5所示,本申请实施例提供的一种IPv6子网前缀通告实现方法,方法还包括S301:
S301、在服务器的集成网桥上增加目标流表。
其中,目标流表包括以下至少一项:虚拟机端口标识、源MAC地址、ICMPv6协议、路由请求RS对应的报文协议号,目标流表用于将目标虚拟机发送的路由请求RS发送给服务器的控制器。
可选的,目标流表的匹配规则包括:虚拟机端口标识、源MAC地址、ICMPv6协议、路由请求RS对应的报文协议号(例如133)。
示例性的,路由请求RS在目标流表上的匹配信息为:icmp6,in_port=“vm-tap”,dl_src=fa:16:3e:8a:5f:88,icmp_type=133,nd_target=fda7:a5cc:3460:5::72actions=CONTROLLER:0。
在一种设计中,如图6所示,本申请实施例提供的一种IPv6子网前缀通告实现方法,在上述步骤203中的方法之前,方法具体还包括S401:
S401、基于目标流表,将目标虚拟机发送的路由请求RS发送给服务器的控制器。
可以理解,在位于集成网桥上的目标流表基于匹配规则,匹配到目标虚拟机发送的路由请求RS时,集成网桥将来自目标虚拟机的路由请求RS发送给服务器的控制器。
在一种设计中,如图7所示,本申请实施例提供的一种IPv6子网前缀通告实现方法中,方法还包括S501:
S501、当通过IPv6子网前缀通告器未监听到目标注册事件时,基于子网缓存列表,每间隔预设时长向多个虚拟机发送路由应答RA。
可以理解,当位于控制器上的IPv6子网前缀通告器通过EventOFPPacketIn未监听到目标注册事件时,IPv6子网前缀通告器可以启动一个定时循环,每间隔预设时长通过控制器的PaketOut机制向服务器中的全部虚拟机发送路由应答RA。
在一种设计中,如图8所示,本申请实施例提供的一种IPv6子网前缀通告实现方法中,还包括S601-S602:
S601、当服务器中新增第一虚拟机时,确定第一虚拟机对应的子网信息,并通过IPv6子网前缀通告器将第一虚拟机对应的子网信息添加至子网缓存列表中。
可以理解,当服务器中新增第一虚拟机时,IPv6子网前缀通告器可以通过handle_port方法确定第一虚拟机对应的子网信息,并将第一虚拟机对应的子网信息添加至子网缓存列表中。
需要说明的是,handle_port方法为IPv6子网前缀通告器的一个功能。
可选的,当将服务器中新增第一虚拟机对应的子网信息加入子网缓存列表后,IPv6子网前缀通告器可以基于子网缓存列表中第一虚拟机对应的子网信息,每间隔预设时长向第一虚拟机发送路由应答RA。
S602、当服务器中的第二虚拟机被删除时,通过IPv6子网前缀通告器将第二虚拟机对应的子网信息从子网缓存列表中删除。
可以理解,当服务器中的第二虚拟机被删除时,IPv6子网前缀通告器可以通过delete_port方法确定被删除的第二虚拟机对应的子网信息,并将第二虚拟机对应的子网信息从子网缓存列表中删除。
需要说明的是,delete_port方法为IPv6子网前缀通告器的一个功能。
在一种实现方式中,如图9所示,示出了一种IPv6子网前缀通告实现方法具体流程图。当需要为虚拟机获取IPv6地址及相关信息,并进行配置时,首先启动控制器,进行IPv6子网前缀通告器初始化,获取服务器内全部虚拟机端口对应的子网信息,并将全部虚拟机端口对应的子网信息加入子网缓存列表。IPv6子网前缀通告器判断是否监听到IPv6路由请求RS。若监听到,则接收IPv6路由请求RS,并基于子网缓存列表中目标虚拟机对应的子网信息,组装IPv6路由应答RA,将IPv6路由应答RA发送至目标虚拟机。若未监听到,则启动定时循环,定时向服务器中全部虚拟机发送基于子网缓存列表的子网信息组装的IPv6路由应答RA。当服务器中新增虚拟机端口时,将新增虚拟机端口对应的子网信息添加到子网缓存列表中。当服务器中删除虚拟机端口时,将被删除的虚拟机端口从子网缓存列表中删除。
本申请实施例提供一种IPv6子网前缀通告实现方法,可以在云网络环境下实现分布式IPv6子网前缀通告,该方法可以完全替代radvd的功能。使用在每个计算节点内部响应和通告IPv6路由信息的方法,解决虚拟机要跨计算节点访问IPv6路由信息,并且虚拟机访问IPv6路由信息时不能保证链路的可用性,进而影响虚拟机IPv6相关配置的问题。在上述方法中,虚拟机启动和配置IPv6地址时,不需要启动辅助进程radvd,不消耗服务器资源。当radvd在集中式虚拟路由器namespace中启动时,解决因为集中的网络节点宕机,进而导致相关的路由信息获取机制不可用的问题。同时,单个计算节点的宕机,不影响其他节点响应和通告IPv6路由信息。
上述主要从方法的角度对本申请实施例提供的方案进行了介绍。为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请实施例能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对一种IPv6子网前缀通告实现方法进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。可选的,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
图10为本申请实施例提供的一种IPv6子网前缀通告实现装置的结构示意图。如图10所示,一种IPv6子网前缀通告实现装置40用于提高虚拟机获取IPv6地址及相关信息,并进行配置时的效率,例如用于执行图4所示的一种IPv6子网前缀通告实现方法。该IPv6子网前缀通告实现装置40包括:处理单元401、获取单元402和传输单元403;
处理单元401,用于在服务器的控制器中增加互联网协议第6版IPv6子网前缀通告器;
获取单元402,用于获取服务器内的多个虚拟机端口对应的多个子网信息;
处理单元401,还用于将多个子网信息添加至子网缓存列表中,一个虚拟机端口对应一个子网信息,每个子网信息包括以下至少一项:虚拟机端口IP地址、虚拟机端口子网前缀、虚拟机获得IPV6地址的方式、标志位;
传输单元403,用于当通过IPv6子网前缀通告器监听到目标注册事件时,接收目标虚拟机发送的路由请求RS;
处理单元401,还用于基于子网缓存列表确定路由请求RS对应的路由应答RA;
传输单元403,还用于通过服务器的控制器将路由应答RA发送给目标虚拟机,路由应答RA用于目标虚拟机获取IPv6地址,路由应答RA包括:IPv6子网前缀。
在一种可能的实现方式中,处理单元401,还用于在服务器的集成网桥上增加目标流表,目标流表包括以下至少一项:虚拟机端口标识、源MAC地址、ICMPv6协议、路由请求RS对应的报文协议号,目标流表用于将目标虚拟机发送的路由请求RS发送给服务器的控制器。
在一种可能的实现方式中,传输单元403,还用于基于目标流表,将目标虚拟机发送的路由请求RS发送给服务器的控制器。
在一种可能的实现方式中,传输单元403,还用于当通过IPv6子网前缀通告器未监听到目标注册事件时,基于子网缓存列表,每间隔预设时长向多个虚拟机发送路由应答RA。
在一种可能的实现方式中,处理单元401,还用于当服务器中新增第一虚拟机时,确定第一虚拟机对应的子网信息,并通过IPv6子网前缀通告器将第一虚拟机对应的子网信息添加至子网缓存列表中;处理单元401,还用于当服务器中的第二虚拟机被删除时,通过IPv6子网前缀通告器将第二虚拟机对应的子网信息从子网缓存列表中删除。
在采用硬件的形式实现上述集成的模块的功能的情况下,本申请实施例提供了上述实施例中所涉及的电子设备的另外一种可能的结构示意图。如图11所示,一种电子设备60,用于提高虚拟机获取IPv6地址及相关信息,并进行配置时的效率,例如用于执行图4所示的一种IPv6子网前缀通告实现方法。该电子设备60包括处理器601,存储器602以及总线603。处理器601与存储器602之间可以通过总线603连接。
处理器601是通信装置的控制中心,可以是一个处理器,也可以是多个处理元件的统称。例如,处理器601可以是一个通用中央处理单元(central processing unit,CPU),也可以是其他通用处理器等。其中,通用处理器可以是微处理器或者是任何常规的处理器等。
作为一种实施例,处理器601可以包括一个或多个CPU,例如图11中所示的CPU 0和CPU 1。
存储器602可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electricallyerasable programmable read-only memory,EEPROM)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
作为一种可能的实现方式,存储器602可以独立于处理器601存在,存储器602可以通过总线603与处理器601相连接,用于存储指令或者程序代码。处理器601调用并执行存储器602中存储的指令或程序代码时,能够实现本申请实施例提供的一种IPv6子网前缀通告实现方法。
另一种可能的实现方式中,存储器602也可以和处理器601集成在一起。
总线603,可以是工业标准体系结构(industry standard architecture,ISA)总线、外围设备互连(peripheral component interconnect,PCI)总线或扩展工业标准体系结构(extended industry standard architecture,EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图11中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
需要指出的是,图11示出的结构并不构成对该电子设备60的限定。除图11所示部件之外,该电子设备60可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
作为一个示例,结合图10,电子设备中的处理单元401、获取单元402和传输单元403实现的功能与图11中的处理器601的功能相同。
可选的,如图11所示,本申请实施例提供的电子设备60还可以包括通信接口604。
通信接口604,用于与其他设备通过通信网络连接。该通信网络可以是以太网,无线接入网,无线局域网(wireless local area networks,WLAN)等。通信接口604可以包括用于接收数据的接收单元,以及用于发送数据的发送单元。
在一种设计中,本申请实施例提供的电子设备中,通信接口还可以集成在处理器中。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能单元的划分进行举例说明。在实际应用中,可以根据需要而将上述功能分配由不同的功能单元完成,即将装置的内部结构划分成不同的功能单元,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质中存储有指令,当计算机执行该指令时,该计算机执行上述方法实施例所示的方法流程中的各个步骤。
本申请的实施例提供一种包含指令的计算机程序产品,当指令在计算机上运行时,使得计算机执行上述方法实施例中的一种IPv6子网前缀通告实现方法。
其中,计算机可读存储介质,例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘。随机存取存储器(random access memory,RAM)、只读存储器(read-only memory,ROM)、可擦式可编程只读存储器(erasable programmable read only memory,EPROM)、寄存器、硬盘、光纤、便携式紧凑磁盘只读存储器(compact disc read-only memory,CD-ROM)、光存储器件、磁存储器件、或者上述的人以合适的组合、或者本领域数值的任何其他形式的计算机可读存储介质。
一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于特定用途集成电路(application specific integrated circuit,ASIC)中。
在本申请实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
由于本申请的实施例中的电子设备、计算机可读存储介质、计算机程序产品可以应用于上述方法,因此,其所能获得的技术效果也可参考上述方法实施例,本申请实施例在此不再赘述。
以上,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。
Claims (12)
1.一种IPv6子网前缀通告实现方法,其特征在于,所述方法包括:
在服务器的控制器中增加互联网协议第6版IPv6子网前缀通告器;
获取所述服务器内的多个虚拟机端口对应的多个子网信息,并将所述多个子网信息添加至子网缓存列表中,一个虚拟机端口对应一个子网信息,每个子网信息包括以下至少一项:虚拟机端口IP地址、虚拟机端口子网前缀、虚拟机获得IPV6地址的方式、标志位;
当通过所述IPv6子网前缀通告器监听到目标注册事件时,接收目标虚拟机发送的路由请求RS;
基于所述子网缓存列表确定所述路由请求RS对应的路由应答RA,并通过所述服务器的控制器将所述路由应答RA发送给所述目标虚拟机,所述路由应答RA用于所述目标虚拟机获取IPv6地址,所述路由应答RA包括:IPv6子网前缀。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述服务器的集成网桥上增加目标流表,所述目标流表包括以下至少一项:虚拟机端口标识、源MAC地址、ICMPv6协议、路由请求RS对应的报文协议号,所述目标流表用于将所述目标虚拟机发送的所述路由请求RS发送给所述服务器的控制器。
3.根据权利要求2所述的方法,其特征在于,所述当通过所述IPv6子网前缀通告器监听到目标注册事件时,接收目标虚拟机发送的路由请求RS之前,方法还包括:
基于所述目标流表,将所述目标虚拟机发送的所述路由请求RS发送给所述服务器的控制器。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述方法还包括:
当通过所述IPv6子网前缀通告器未监听到所述目标注册事件时,基于所述子网缓存列表,每间隔预设时长向所述多个虚拟机发送所述路由应答RA。
5.根据权利要求1至3中任一项所述的方法,其特征在于,所述方法还包括:
当所述服务器中新增第一虚拟机时,确定所述第一虚拟机对应的子网信息,并通过所述IPv6子网前缀通告器将所述第一虚拟机对应的子网信息添加至所述子网缓存列表中;
当所述服务器中的第二虚拟机被删除时,通过所述IPv6子网前缀通告器将所述第二虚拟机对应的子网信息从所述子网缓存列表中删除。
6.一种IPv6子网前缀通告实现装置,其特征在于,所述IPv6子网前缀通告实现装置包括:处理单元、获取单元和传输单元;
所述处理单元,用于在服务器的控制器中增加互联网协议第6版IPv6子网前缀通告器;
所述获取单元,用于获取所述服务器内的多个虚拟机端口对应的多个子网信息;
所述处理单元,还用于将所述多个子网信息添加至子网缓存列表中,一个虚拟机端口对应一个子网信息,每个子网信息包括以下至少一项:虚拟机端口IP地址、虚拟机端口子网前缀、虚拟机获得IPV6地址的方式、标志位;
所述传输单元,用于当通过所述IPv6子网前缀通告器监听到目标注册事件时,接收目标虚拟机发送的路由请求RS;
所述处理单元,还用于基于所述子网缓存列表确定所述路由请求RS对应的路由应答RA;
所述传输单元,还用于通过所述服务器的控制器将所述路由应答RA发送给所述目标虚拟机,所述路由应答RA用于所述目标虚拟机获取IPv6地址,所述路由应答RA包括:IPv6子网前缀。
7.根据权利要求6所述的IPv6子网前缀通告实现装置,其特征在于,所述处理单元,还用于在所述服务器的集成网桥上增加目标流表,所述目标流表包括以下至少一项:虚拟机端口标识、源MAC地址、ICMPv6协议、路由请求RS对应的报文协议号,所述目标流表用于将所述目标虚拟机发送的所述路由请求RS发送给所述服务器的控制器。
8.根据权利要求7所述的IPv6子网前缀通告实现装置,其特征在于,所述传输单元,还用于基于所述目标流表,将所述目标虚拟机发送的所述路由请求RS发送给所述服务器的控制器。
9.根据权利要求6至8中任一项所述的IPv6子网前缀通告实现装置,其特征在于,所述传输单元,还用于当通过所述IPv6子网前缀通告器未监听到所述目标注册事件时,基于所述子网缓存列表,每间隔预设时长向所述多个虚拟机发送所述路由应答RA。
10.根据权利要求6至8中任一项所述的IPv6子网前缀通告实现装置,其特征在于,所述处理单元,还用于当所述服务器中新增第一虚拟机时,确定所述第一虚拟机对应的子网信息,并通过所述IPv6子网前缀通告器将所述第一虚拟机对应的子网信息添加至所述子网缓存列表中;
所述处理单元,还用于当所述服务器中的第二虚拟机被删除时,通过所述IPv6子网前缀通告器将所述第二虚拟机对应的子网信息从所述子网缓存列表中删除。
11.一种电子设备,其特征在于,包括:处理器以及存储器;其中,所述存储器用于存储一个或多个程序,所述一个或多个程序包括计算机执行指令,当所述电子设备运行时,处理器执行所述存储器存储的所述计算机执行指令,以使所述电子设备执行权利要求1-5中任一项所述的一种IPv6子网前缀通告实现方法。
12.一种存储一个或多个程序的计算机可读存储介质,其特征在于,所述一个或多个程序包括指令,所述指令当被计算机执行时使所述计算机执行如权利要求1-5中任一项所述的一种IPv6子网前缀通告实现方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211328845.4A CN115695374A (zh) | 2022-10-27 | 2022-10-27 | 一种IPv6子网前缀通告实现方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211328845.4A CN115695374A (zh) | 2022-10-27 | 2022-10-27 | 一种IPv6子网前缀通告实现方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115695374A true CN115695374A (zh) | 2023-02-03 |
Family
ID=85099183
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211328845.4A Pending CN115695374A (zh) | 2022-10-27 | 2022-10-27 | 一种IPv6子网前缀通告实现方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115695374A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116436727A (zh) * | 2023-04-19 | 2023-07-14 | 北京志凌海纳科技有限公司 | 一种虚拟机容器混合编排系统及其IPv6网络实现方法 |
CN117811987A (zh) * | 2023-12-28 | 2024-04-02 | 杭州森格算力技术有限公司 | 一种分布式内存资源自动寻址和管理的方法 |
-
2022
- 2022-10-27 CN CN202211328845.4A patent/CN115695374A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116436727A (zh) * | 2023-04-19 | 2023-07-14 | 北京志凌海纳科技有限公司 | 一种虚拟机容器混合编排系统及其IPv6网络实现方法 |
CN116436727B (zh) * | 2023-04-19 | 2023-12-05 | 北京志凌海纳科技有限公司 | 一种虚拟机容器混合编排系统及其IPv6网络实现方法 |
CN117811987A (zh) * | 2023-12-28 | 2024-04-02 | 杭州森格算力技术有限公司 | 一种分布式内存资源自动寻址和管理的方法 |
CN117811987B (zh) * | 2023-12-28 | 2024-07-19 | 杭州森格算力技术有限公司 | 一种分布式内存资源自动寻址和管理的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9369375B2 (en) | Link-layer level link aggregation autoconfiguration | |
US10693833B2 (en) | Address resolution suppression in a logical network | |
TWI577164B (zh) | 可縮放位址解析之技術 | |
CN113542128B (zh) | 一种发送路由信息的方法和装置 | |
US11516124B2 (en) | Leveraging multicast listener discovery for discovering hosts | |
WO2018214809A1 (zh) | 消息发送方法及装置、存储介质 | |
EP1639746A1 (en) | System and method for synchronous configuration of dhcp server and router interfaces | |
US11606332B1 (en) | Duplicate address detection for ranges of global IP addresses | |
US20130332586A1 (en) | Providing ipv6 connectivity through shared external interfaces on electronic devices | |
CN115695374A (zh) | 一种IPv6子网前缀通告实现方法、装置、设备及存储介质 | |
CN112688873B (zh) | 在evpn中部署安全邻居发现 | |
WO2021143279A1 (zh) | 段路由业务处理方法和装置、路由设备及存储介质 | |
CN110290234B (zh) | 节点地址溯源的方法、装置、系统、设备和存储介质 | |
WO2022060914A1 (en) | Systems and methods for zero-touch provisioning of a switch in intermediate distribution frames and main distribution frames | |
CN111614505A (zh) | 报文处理的方法和网关设备 | |
WO2017219777A1 (zh) | 一种报文处理方法及装置 | |
US11924166B2 (en) | Resource-path-based, dynamic group membership support for membership groups | |
US20200267116A1 (en) | Internet protocol version six address management | |
US11902380B1 (en) | Liveness detection for an authenticated client session | |
WO2014079235A1 (zh) | 一种释放地址的方法、用户节点及远程接入服务器 | |
US11212211B2 (en) | Systems and methods for automatically detecting routing peers | |
CN114765589A (zh) | 网络测试方法、装置及存储介质 | |
US10298481B1 (en) | Method and apparatus for testing VLAN | |
Wohlbold | Load Balancing and Failover for Isolated, Multi-Tenant Layer 2 Virtual Private Networks | |
CN114422360A (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 |