CN114844833B - 报文处理方法和系统,存储介质及计算机终端 - Google Patents

报文处理方法和系统,存储介质及计算机终端 Download PDF

Info

Publication number
CN114844833B
CN114844833B CN202210326985.1A CN202210326985A CN114844833B CN 114844833 B CN114844833 B CN 114844833B CN 202210326985 A CN202210326985 A CN 202210326985A CN 114844833 B CN114844833 B CN 114844833B
Authority
CN
China
Prior art keywords
target
address
virtual machine
physical machine
local cache
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
CN202210326985.1A
Other languages
English (en)
Other versions
CN114844833A (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.)
Alibaba Cloud Computing Ltd
Original Assignee
Alibaba Cloud Computing 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 Alibaba Cloud Computing Ltd filed Critical Alibaba Cloud Computing Ltd
Priority to CN202210326985.1A priority Critical patent/CN114844833B/zh
Publication of CN114844833A publication Critical patent/CN114844833A/zh
Application granted granted Critical
Publication of CN114844833B publication Critical patent/CN114844833B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/742Route cache; Operation thereof
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/255Maintenance or indexing of mapping tables
    • H04L61/2553Binding renewal aspects, e.g. using keep-alive messages

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请公开了一种报文处理方法和系统,存储介质及计算机终端。其中,该方法应用于物理机,该方法包括:获取待转发的目标报文,其中,目标报文包含目标虚拟机的目标虚拟机地址;从本地缓存中查询是否存储有与目标虚拟机地址具有关联关系的目标物理机地址,其中,本地缓存中存储了虚拟机地址和物理机地址之间的关联关系,目标物理机地址用于表征部署有目标虚拟机的物理机的地址;如果查询成功,则从本地缓存中读取目标物理机地址;基于目标物理机地址发送目标报文至目标物理机。本申请解决了虚拟机频繁上下线、热迁移时的网络访问的技术问题。

Description

报文处理方法和系统,存储介质及计算机终端
技术领域
本申请涉及云网络领域,具体而言,涉及一种报文处理方法和系统,存储介质及计算机终端。
背景技术
在云网络中,基于overlay网络进行报文转发时,需要得知虚拟机所在物理机的物理机的地址。随着数据中心上承载的虚拟网络日益增长,虚拟机频繁创建、销毁、迁移时,物理机往往无法大量、快速获取到互访虚拟机所在物理机的地址,导致网络访问出现问题。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种报文处理方法和系统,存储介质及计算机终端,以至少解决虚拟机频繁上下线、热迁移时的网络访问的技术问题。
根据本申请实施例的一个方面,提供了一种报文处理方法,包括:获取待转发的目标报文,其中,目标报文包含目标虚拟机的目标虚拟机地址;从本地缓存中查询是否存储有与目标虚拟机地址具有关联关系的目标物理机地址,其中,本地缓存中存储了虚拟机地址和物理机地址之间的关联关系,目标物理机地址用于表征部署有目标虚拟机的物理机的地址;如果查询成功,则从本地缓存中读取目标物理机地址;基于目标物理机地址发送目标报文至目标物理机。
根据本申请实施例的另一方面,还提供了一种报文处理装置,包括:获取模块,用于获取待转发的目标报文,其中,目标报文包含目标虚拟机的目标虚拟机地址;查询模块,用于从本地缓存中查询是否存储有与目标虚拟机地址具有关联关系的目标物理机地址,其中,本地缓存中存储了虚拟机地址和物理机地址之间的关联关系,目标物理机地址用于表征部署有目标虚拟机的物理机的地址;读取模块,用于如果查询成功,如果查询成功,则从本地缓存中读取目标物理机地址;发送模块,用于基于目标物理机地址发送目标报文至目标物理机。
根据本申请实施例的另一方面,还提供了一种报文处理系统,包括:目标虚拟机,部署在目标物理机上;源物理机,包括:本地缓存和处理器;本地缓存用于存储虚拟机地址和物理机地址之间的关联关系;处理器用于获取待转发的目标报文,目标报文包含目标虚拟机的目标虚拟机地址,从本地缓存中查询是否存储有与目标虚拟机地址具有关联关系的目标物理机地址,如果查询成功,则从本地缓存中读取目标物理机地址,并基于目标物理机地址发送目标报文至目标物理机。
根据本申请实施例的另一方面,还提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行上述实施例中的报文处理方法。
根据本申请实施例的另一方面,还提供了一种计算机终端,包括存储器和处理器,处理器用于运行存储器中存储的程序,其中,程序运行时执行实施例中的报文处理方法。
在本申请实施例中,在获取到待转发的目标报文之后,可以从本地缓存中查询是否存储有与目标报文中携带的目标虚拟机地址具有关联关系的目标物理机地址,如果查询成功,则直接读取出该目标物理机地址,并基于目标物理机地址进行报文转发,将目标报文转发至目标物理机,达到了虚拟机之间互相网络访问目的。容易注意到的是,目标物理机地址可以是从物理机本地缓存中读取的地址,无需从地址服务器获取,从而达到了快速获取物理机地址,减轻地址服务器压力,提升网络访问效率的技术效果,进而解决了虚拟机频繁上下线、热迁移时的网络访问的技术问题。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的一种用于实现报文处理方法的计算机终端的硬件结构框图;
图2是根据本申请实施例的一种可选的计算机终端作为源物理机的示意图;
图3是根据本申请实施例的一种报文处理方法的流程图;
图4是根据本申请实施例的一种可选的报文处理方法的应用场景的示意图;
图5是根据本申请实施例的一种可选的报文处理方法的流程图;
图6是根据本申请实施例的一种报文处理装置的示意图;
图7是根据本申请实施例的一种报文处理系统的示意图;
图8是根据本申请实施例的一种计算机终端的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
首先,在对本申请实施例进行描述的过程中出现的部分名词或术语适用于如下解释:
虚拟机(Virtual Machine,VM):在地址服务器上可以通过虚拟化技术创建的虚拟服务器。部署有虚拟机的地址服务器可以被称为物理机或宿主机。
虚拟交换机(vswitch):可以通过软件实现的用于转发VM流量的虚拟交换机。
地址服务器:用于表征存储虚拟机地址到物理机地址的映射表项的高性能服务器。
LRU(Least Recently Used,最近最少使用)算法:是内存管理的一种页面置换算法,常用于页面置换算法,是为虚拟页式存储管理服务的。
通常在虚拟化网络中,物理机之间可以通过多种方式获取互访虚拟机所在物理机的地址:第一种方式为通过集中式控制器下发配置,第二种方式为通过集中式网关转发访问流量;第三种方式为从地址服务器定时获取所需表项。
但是,在网络规模扩大、虚拟机迁移频繁时,上述方法均存在实时性差的问题。为了在有限的cpu、memory资源情况下,使得内存资源快速、正确地感知虚拟机所在的物理机的地址,并在虚拟机发生创建、销毁、迁移时邻居节点能快速获取目标物理机地址,本申请在物理机本地提供大量、快速的虚拟机地址映射表cache,以解决虚拟机频繁上下线、热迁移时的网络访问的问题。
实施例1
根据本申请实施例,还提供了一种报文处理方法,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请实施例一所提供的方法实施例可以在计算机终端、服务器或者类似的运算装置中执行。图1示出了一种用于实现报文处理方法的计算机终端的硬件结构框图。如图1所示,计算机终端10可以包括一个或多个(图中采用102a、102b,……,102n来示出)处理器(处理器可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输模块106。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为BUS总线的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
应当注意到的是上述一个或多个处理器和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算机终端10中的其他元件中的任意一个内。如本申请实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
存储器104可用于存储应用软件的软件程序以及模块,如本申请实施例中的报文处理方法对应的程序指令/数据存储装置,处理器通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的报文处理方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
显示器可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与计算机终端10的用户界面进行交互。
图1示出的硬件结构框图,不仅可以作为上述计算机终端10的示例性框图,还可以作为上述服务器的示例性框图,一种可选实施例中,图2以框图示出了使用上述图1所示的计算机终端10作为发送端的源物理机的一种实施例。如图2所示,计算机终端10可以经由物理网络连接或电子连接到一个或多个其他物理机10,或经过云网络连接到地址服务器20。物理机10上部署有多个虚拟机,每个虚拟机通过物理机10访问其他虚拟机,也即,源虚拟机将报文发送给源物理机,源物理机通过目标虚拟机地址和目标物理机地址的映射关系,将该报文转发至目标物理机,由目标物理机转发给目标虚拟机。为了实现物理机之间的报文转发,可以通过地址服务器20为所有物理机10提供虚拟机地址和物理机地址的映射关系,物理机10通过发送查询请求至地址服务器,即可查询任意一个虚拟机所在物理机的地址。一种可选实施例中,上述计算机终端10可以是任意移动计算设备等。
在上述运行环境下,本申请提供了如图3所示的报文处理方法。图3是根据本申请实施例的一种报文处理方法的流程图。如图3所示,该方法包括如下步骤:
步骤S302,获取待转发的目标报文,其中,目标报文包含目标虚拟机的目标虚拟机地址。
上述步骤中的目标报文可以源虚拟机发送给目标虚拟机的网络报文,源虚拟机部署在源物理机上,目标虚拟机部署在目标物理机上,此处的“源”和“目标”仅仅用于区分目标报文的发送方和接收方。不同服务器均分配有相应的IP地址,其中,虚拟机的IP地址被称为目标虚拟机地址,物理机的IP地址被称为目标物理机地址。
在一种可选的实施例中,源虚拟机需要发送目标报文至目标虚拟机时,源虚拟机可以在目标报文中封装该虚拟机的IP地址,并将目标报文发送给该源虚拟机所在的源物理机,并由源物理机将目标报文转发至目标虚拟机所在的目标物理机,由目标物理机发送给目标虚拟机。
例如,以如图4所示的云网络场景为例进行详细说明,如图4所示,源物理机的IP地址为10.0.1.6,源虚拟机vpc1的IP地址为192.168.1.1,目标虚拟机vpc1的IP地址为192.168.1.2。当源虚拟机需要发送网络报文至目标虚拟机时,源虚拟机可以生成目标报文,该报文中封装有源虚拟机的虚拟机名和IP地址,以及目标虚拟机的虚拟机名和目标虚拟机地址。
步骤S304,从本地缓存中查询是否存储有与目标虚拟机地址具有关联关系的目标物理机地址,其中,本地缓存中存储了虚拟机地址和物理机地址之间的关联关系,目标物理机地址用于表征部署有目标虚拟机的物理机的地址。
上述步骤中的本地缓存可以是源物理机的本地存储空间中存储的地址映射表,该表中的每个表项都记录了具有关联关系的IP地址对和虚拟机名,每个表项都包含有一个关联关系,也即,包含一个虚拟机的虚拟机名,该虚拟机的IP地址和该虚拟机所在物理机的IP地址。例如,仍以如图4所示的场景为例,假设源物理机的本地缓存可以记录如下四个关联关系:vpc1,192.168.1.1:10.0.1.6;vpc1,192.168.1.2:10.0.1.4;vpc3,192.168.1.1:10.0.1.6;vpc3,192.168.1.2:10.0.1.7。
在一种可选的实施例中,为了减小地址服务器的压力,并且提升物理机地址获取的效率和准确率,可以在物理机上部署一个vm-location管理模块,将从地址服务器获取到的所有关联关系均保存在本地cache,用以在后续访问相同虚拟机地址时直接使用,而不需要再次访问地址服务器,从而快速进行报文转发。
例如,仍以如图4所示的场景为例,源物理机的IP地址为10.0.1.6,源虚拟机vpc1的IP地址为192.168.1.1,目标虚拟机vpc1的IP地址为192.168.1.2,假设源物理机的本地缓存如下:vpc1,192.168.1.1:10.0.1.6;vpc1,192.168.1.2:10.0.1.4;vpc3,192.168.1.1:10.0.1.6;vpc3,192.168.1.2:10.0.1.7。在源物理机获取目标报文之后,可以对目标报文进行解封,读取出目标报文中包含的虚拟机名:vpc1,和目标虚拟机地址:192.168.1.2。然后可以在本地缓存中进行查询,查询本地缓存中是否存储有目标虚拟机地址,经过查询可以确认本地缓存中存储有vpc1和192.168.1.2。
步骤S306,如果查询成功,则从本地缓存中读取目标物理机地址。
在一种可选的实施例中,如果本地缓存中存储有与目标虚拟机地址具有关联关系的目标物理机地址,则可以直接从本地缓存中读取到该目标物理机地址。例如,仍以如图4所示的场景为例,源物理机的IP地址为10.0.1.6,源虚拟机vpc1的IP地址为192.168.1.1,目标虚拟机vpc1的IP地址为192.168.1.2,假设源物理机的本地缓存可以记录如下关联关系:vpc1,192.168.1.1:10.0.1.6;vpc1,192.168.1.2:10.0.1.4;vpc3,192.168.1.1:10.0.1.6;vpc3,192.168.1.2:10.0.1.7。在读取出目标报文中包含的虚拟机名:vpc1,和目标虚拟机地址:192.168.1.2之后,可以从本地缓存中直接读取到目标物理机地址为:10.0.1.4。
步骤S308,基于目标物理机地址发送目标报文至目标物理机。
在一种可选的实施例中,在读取到目标物理机地址之后,源物理机可以通过互联网将目标报文发送给目标物理机,再由目标物理机转发给部署在该物理机上的目标虚拟机。
需要说明的是,云网络中往往包含有大量的物理机,每在本申请实施例中,仅以一个物理机为例进行说明,其他物理机可以采用相同的方式进行报文转发,在此不做赘述。
通过本申请上述实施例,在获取到待转发的目标报文之后,可以从本地缓存中查询是否存储有与目标报文中携带的目标虚拟机地址具有关联关系的目标物理机地址,如果查询成功,则直接读取出该目标物理机地址,并基于目标物理机地址进行报文转发,将目标报文转发至目标物理机,达到了虚拟机之间互相网络访问目的。容易注意到的是,目标物理机地址可以是从物理机本地缓存中读取的地址,无需从地址服务器获取,从而达到了快速获取物理机地址,减轻地址服务器压力,提升网络访问效率的技术效果,进而解决了虚拟机频繁上下线、热迁移时的网络访问的技术问题。
在本申请上述实施例中,本地缓存中还存储有关联关系的使用时间,该方法还包括:如果预设定时时间到达,则读取本地缓存中存储的使用时间;基于使用时间确定关联关系继续使用;从本地缓存中删除不再继续使用的关联关系。
上述步骤中的预设定时时间可以是预先由用户设定的时间,在该时间到达之后,可以对本地缓存数据进行更新淘汰,降低内存占用量。使用时间可以是最近一次读取该表项中的物理机的地址的时间。
由于物理机内存有限,随着网络规模的增长,本地缓存中存储的关联关系的数量越来越多,会大大影响物理机的正常工作。而且,不同虚拟机的作用不同,经常访问的其他虚拟机也不同。因此,每次读取本地缓存中的物理机的地址时以记录响应的使用时间。并且通过定时器进行扫描,根据使用时间确定源虚拟机经常访问的目标虚拟机,并保留该目标虚拟机的虚拟机地址和物理机地址的映射关系,并删除其他不经常使用的虚拟机地址和物理机地址之间的关联关系,以节约内存。
在一种可选的实施例中,可以使用LRU算法将不再使用的虚拟机的地址和物理机的地址的映射关系淘汰掉,但不仅限于此,也可以是根据实际需要采用其他算法实现。
在本申请上述实施例中,在从本地缓存中删除不再继续使用的关联关系之后,方法还包括如下之一:发送携带有目标虚拟机地址的第一查询请求至地址服务器,接收地址服务器返回的目标物理机地址,并将目标虚拟机地址和目标物理机地址之间的目标关联关系存储至本地缓存;发送携带有多个第一虚拟机地址的第二查询请求至地址服务器,接收地址服务器返回的与多个第一虚拟机地址具有关联关系的多个第一物理机地址,并将多个第一虚拟机地址和多个第一物理机地址之间的第一关联关系存储至本地缓存,其中,多个第一虚拟机地址用于表征处于同一个虚拟网络的虚拟机的地址。
在一种可选的实施例中,可以针对本地缓存中每个关联关系进行定时更新,同时,可以向地址服务器再次发起查询,从地址服务器获取与目标虚拟机地址具有关联关系的目标物理机地址,并更新本地缓存,将目标虚拟机地址和目标物理机地址之间的目标关联关系存储至本地缓存。
在另一种可选的实施例中,可以针对本地缓存中属于同一个虚拟网络的所有关联关系进行定时更新,同时,可以向地址服务器再次发起查询,从地址服务器获取同一个虚拟网络中所有第一虚拟机地址具有关联关系的第一物理机地址,并更新本地缓存,将多个第一虚拟机地址和多个第一物理机地址之间的第一关联关系存储至本地缓存。
在本申请上述实施例中,该方法还包括:如果查询失败,则发送携带有目标虚拟机地址的查询请求至地址服务器;接收地址服务器返回的目标物理机地址;基于目标物理机地址发送目标报文至目标物理机。
上述步骤中的地址服务器可以是现有的用于存储所有虚拟机的地址和物理机的地址的关联关系的服务器,该服务器的数量可以是一个,也可以是多个,可以根据网络规模的实际情况进行设定。
由于物理机的内存有限,而且随着网络规模不断增加,虚拟机频繁创建、销毁,导致物理机上往往无法存储全部虚拟机地址和物理机地址之间的关联关系。在一种可选的实施例中,如果在本地缓存中查询失败,则表明源物理机本地缓存中并未存储目标物理机地址,为了实现网络访问的目的,可以发送携带有目标虚拟机地址的查询请求至地址服务器,在地址服务器中进行查询,地址服务器可以将查询到的目标物理机地址返回给源物理机,从而源物理机可以基于该地址访问目标物理机。
例如,仍以如图4所示的场景为例,假设源物理机本地缓存中存储有vpc1,192.168.1.1:10.0.1.6,vpc2,192.168.1.2:10.0.1.4,当目标虚拟机的IP地址为vpc1,192.168.1.2时,无法在本地缓存中查询到与该地址具有关联关系的物理机的地址,因此,可以将该IP地址打包成查询请求并发送给地址服务器,地址服务器经过查询之后,可以将IP地址10.0.0.6返回给源物理机,方便源物理机进行目标报文的转发。
在本申请上述实施例中,将目标虚拟机地址和目标物理机地址之间的目标关联关系存储至本地缓存,并存储目标关联关系的使用时间。
在一种可选的实施例中,源物理机在接收到地址服务器发送的目标物理机地址之后,可以基于该地址对本地缓存进行更新,也即将目标虚拟机地址和目标物理机地址之间的关联关系作为一个表项存储在本地缓存,以方便后续访问同一个目标虚拟机时,可以直接从本地缓存中读取目标物理机地址,无需再访问地址服务器。
例如,仍以如图4所示的场景为例,假设源物理机本地缓存中存储有vpc1,192.168.1.1:10.0.1.6,vpc2,192.168.1.2:10.0.1.4,当目标虚拟机的IP地址为vpc1,192.168.1.2时,无法在本地缓存中查询到与该IP地址具有关联关系的物理机的地址,并且在接收到地址服务器返回的IP地址10.0.0.6之后,可以将vpc1,192.168.1.2和10.0.0.6进行关联存储,作为一个新的表项存储在本地缓存中,因此,源物理机的本地缓存可以更新为:vpc1,192.168.1.1:10.0.1.6,vpc2,192.168.1.2:10.0.1.4,vpc1,192.168.1.2:10.0.0.6。
需要说明是的,由于虚拟机频繁创建、销毁、迁移,因此,所有物理机均可以通过定时器定时箱地址服务器发起查询,如果发现表项发生变化,则可以基于地址服务器中的表项对本地缓存进行更新,确保本地缓存中存储的都是最新、正确的关联关系,方便后续网络访问的需要。
下面结合图5对本申请的一种优选的实施例进行详细说明。如图5所示,该方法包括:
步骤S51,查询vm-location。如果已经存在,则进入步骤S52;如果不存在,则进入步骤S53。
步骤S52,直接使用本地cache。
步骤S53,从地址服务器获取并使用。
可选的,可以在物理机上预先部署的vm-location管理模块,通过该模块将地址服务器同步的所有虚拟机的地址和物理机的地址的关联关系保存在本地cache。后续接收到虚拟机发送的请求报文之后,优先从本地cache中查询目标物理机地址,如果查询失败,则表明本地未缓存有与该地址相关的关联关系,可以从地址服务器获取。
步骤S54,在使用完毕之后,更新使用时间。
可选的,由于物理机内存有限,可以在使用这些cache表项时记录使用时间。
步骤S55,定时器定时扫描本地cache。
步骤S56,使用LRU算法判断表项是否不再使用,如果是,则进入步骤S57。
步骤S57,删除过期cache,也即,删除不再使用的表项。
可选的,可以通过定时器扫描本地cache信息,使用LRU算法将不再使用的表项淘汰掉,大大缩小所需内存和地址服务器的压力。同时定时器可以向地址服务器再次发起查询,如果发现表项变化,则更新本地cache。
通过上述步骤,减小了地址服务器压力,并且可以节约物理机内存。
在本申请上述实施例中,该方法还包括:检测查询请求是否属于地址扫描行为;如果查询请求属于地址扫描行为,则确定查询请求对应的发送对象;控制查询请求的发送速度小于预设速度,其中,预设速度基于发送对象确定。
上述步骤中的发送对象可以是指使用源虚拟机的用户。预设速度可以是预先针对不同用户所设定的上传速度阈值,该速度小于正常情况下的上传速度。
在一种可选的实施例中,为了保护地址服务器,降低地址服务器压力,可以通过相关检测方案来检测用户发送查询请求的行为是否为攻击扫描行为,如果不是,则物理机可以按照正常上传速度将查询请求发送至地址服务器;如果是,则物理机可以按照预先针对不同用户所设定的上传速度阈值,对查询请求的上传进行保护性限速。
在本申请上述实施例中,在发送携带有目标虚拟机地址的查询请求至地址服务器之前,该方法还包括:确定本地缓存的剩余存储空间是否大于预设阈值;如果剩余存储空间大于预设阈值,则发送携带有目标虚拟机地址的查询请求至地址服务器;如果剩余存储空间小于预设阈值,则发送目标报文至目标网关设备,其中,目标报文通过目标网关设备转发至目标物理机。
上述步骤中的预设阈值可以是预先针对不同物理机所限定的最大剩余存储空间,如果本地缓存的剩余存储空间大于该预设阈值,则表明本地缓存中存储的关联关系已满,无法继续存储新的关联关系。目标网关设备可以是一个或多个地址服务器指定的网关节点,也即,可以通过目标网关设备达到集中式网关转发的目的。
在一种可选的实施例中,由于物理机内存有限,本地缓存的存储空间有限,因此,在检测到本地缓存的剩余存储空间大于预设阈值的情况下,确定物理机表项满配,此时,物理机中未存储有与目标虚拟机地址具有关联关系的目标物理机地址,且物理机无法存储从地址服务器获取到的目标物理机地址,为了确保网络访问正常,物理机可以将目标报文发送至目标网关设备,由目标网关设备进行集中式网关转发,从而目标物理机可以获取到目标网关设备转发的目标报文。
在本申请上述实施例中,在发送目标报文至目标网关设备之后,该方法还包括:接收目标网关设备下发的目标关联关系,其中,目标关联关系由目标网关设备在检测到源虚拟机的访问流量大于预设流量时发送,源虚拟机用于表征发送目标报文的虚拟机;将目标关联关系存储至本地缓存。
上述步骤中的预设流量可以是预先针对不同虚拟机所设定的最大流量,如果源虚拟机的访问流量大于该预设流量,则表明该虚拟机流量存在大象流,会影响目标网关设备的吞吐量。
在一种可选的实施例中,为了避免目标网关设备的吞吐量降低,当目标网关设备发现源虚拟机流量存在大象流,也即,源虚拟机的访问流量大于预设流量时,可以将源虚拟机访问的目标虚拟机的IP地址和目标物理机的IP地址之间的目标关联关系强制下发给源物理机进行存储,从而不再由目标网关设备进行报文转发,达到优化网络路径、降低成本的效果。
在本申请上述实施例中,将目标关联关系存储至本地缓存包括:删除本地缓存中已经存储的部分关联关系;将目标关联关系存储至本地缓存。
由于物理机本地cache的剩余存储空间不足,为了确保可以存储目标关联关系,首先需要将已经存储的部分关联关系进行删除,然后将目标关联关系进行存储。在一种可选的实施例中,可以基于使用时间,一次性删除多个表项,释放部分存储空间,目标关联关系存储效率较高,操作简便。在另一种可选的实施例中,可以基于使用时间,依次删除使用时间最早的表项,确保能够存储较多的关联关系,避免空间浪费。
在本申请上述实施例中,在基于目标物理机地址发送目标报文至目标物理机之后,该方法还包括:如果接收到目标物理机返回的第一通知报文,发送携带有目标虚拟机地址的请求至地址服务器,其中,第一通知报文用于通知目标虚拟机从目标物理机迁移至其他物理机;接收地址服务器返回的与目标虚拟机地址具有关联关系的新物理地址,其中,新物理地址用于表征目标虚拟机迁移后的第一物理机的地址;基于新物理地址发送目标报文至第一物理机;基于新物理地址对本地缓存进行更新。
随着网络规模增加,虚拟机频繁发生迁移,物理机中本地缓存的更新不及时,导致本地缓存中存储的表项条目失效。为了解决上述问题,可以采用被动更新机制,在虚拟机发生迁移之后,可以从地址服务器获取第一物理机的新物理地址,并基于新物理地址对本地缓存进行更新,确保访问流量能够到达迁移后的物理机。
在一种可选的实施例中,源物理机基于本地缓存中目标物理机地址,将目标报文转发至目标物理机,如果目标虚拟机发生迁移,目标物理机可以主动发送一个通知报文(即第一通知报文)给源物理机,告知目标虚拟机已从目标物理机迁移至其他物理机,该cache条目失效了,需要重新向地址服务器查询。源物理机在接收到该通知报文之后,可以发送查询请求至地址服务器,查询目标虚拟机当前所在第一物理机的IP地址,也即上述的新物理地址,地址服务器将新物理地址返回给源物理机,从而源物理机可以将目标报文转发给新物理地址对应的第一物理机,并更新本地cache,也即,将本地cache中目标物理机地址更新为新物理地址。
下面结合图4对本申请一种优选的被动更新机制进行详细说明。如图4所示假设源物理机的IP地址为10.0.1.6,源虚拟机的IP地址为192.168.1.1,目标物理机的IP地址为10.0.1.5,目标虚拟机的IP地址为192.168.1.2,目标虚拟机发生迁移,第一物理机的IP地址为10.0.1.4。该机制的具体实现流程如下:
步骤S41,源物理机接收到源虚拟机发送给目标虚拟机的请求报文之后,通过查询本地缓存“vpc1,192.168.1.2:10.0.1.5”得到目标物理机地址为10.0.1.5,进而源物理机将该请求报文发送给目标物理机;
步骤S42,由于目标虚拟机已从目标物理机迁移至第一物理机,目标物理机可以主动返回一个通知报文,告知源物理机上述条目“vpc1,192.168.1.2:10.0.1.5”已经失效;
步骤S43,源物理机可以重新向地址服务器查询vm_location信息,地址服务器可以将新的条目“vpc1,192.168.1.2:10.0.1.4”返回给源物理机;
步骤S44,源物理机基于新物理地址10.0.1.4,将请求报文转发至第一物理机,并由新物理机转发给目标虚拟机。
通过上述步骤,采用被动更新的方法,在表项规模变大也能及时更新失效的cache内容。
在本申请上述实施例中,在基于目标物理机地址发送目标报文至目标物理机之后,该方法还包括:如果接收到目标物理机返回的第二通知报文,发送携带有多个第二虚拟机地址的请求至地址服务器,其中,多个第二虚拟机地址对应的网卡从目标物理机迁移至其他物理机;接收地址服务器返回的与多个第二虚拟机地址具有关联关系的第二物理机地址,其中,第二物理机地址用于表征网卡迁移后的第二物理机的地址;基于第二物理机地址发送目标报文至第二物理机;基于第二物理机地址对本地缓存进行更新。
随着网络规模增加,虚拟机频繁发生迁移,物理机中本地缓存的更新不及时,导致本地缓存中存储的表项条目失效。对于目标物理机,往往针对使用同一个网卡的虚拟机进行迁移,为了避免频繁的被动更新,在虚拟机发生迁移之后,可以针对同一个网卡对应的所有第二虚拟机地址,从地址服务器获取与多个第二虚拟机地址具有关联关系的第二物理机地址,并基于第二物理机地址对本地缓存进行更新,确保访问流量能够到达所有迁移后的物理机。
在一种可选的实施例中,源物理机基于本地缓存中目标物理机地址,将目标报文转发至目标物理机,如果目标虚拟机发生迁移,目标物理机可以主动发送一个通知报文(即第二通知报文)给源物理机,告知同一个网卡对应的所有第二虚拟机地址对应的虚拟机已从目标物理机迁移至其他物理机,相应的cache条目失效了,需要重新向地址服务器查询。源物理机在接收到该通知报文之后,可以发送查询请求至地址服务器,查询所有第二虚拟机地址对应的虚拟机所在第二物理机的IP地址,也即上述的第二物理机地址,地址服务器将第二物理机地址返回给源物理机,从而源物理机可以将目标报文转发给第二物理机地址对应的第二物理机,并更新本地cache,也即,将本地cache中所有第二虚拟地址对应的物理机地址更新为第二物理机地址。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
实施例2
根据本申请实施例,还提供了一种用于实施上述报文处理方法的报文处理装置,如图6所示,该装置600包括:获取模块602、查询模块604、读取模块606和发送模块608。
其中,获取模块602用于获取待转发的目标报文,其中,目标报文包含目标虚拟机的目标虚拟机地址;查询模块604用于从本地缓存中查询是否存储有与目标虚拟机地址具有关联关系的目标物理机地址,其中,本地缓存中存储了虚拟机地址和物理机地址之间的关联关系,目标物理机地址用于表征部署有目标虚拟机的物理机的地址;读取模块606用于如果查询成功,如果查询成功,则从本地缓存中读取目标物理机地址;发送模块608用于基于目标物理机地址发送目标报文至目标物理机。
此处需要说明的是,上述获取模块602、查询模块604、读取模块606和发送模块608对应于实施例1中的步骤S302至步骤S308,四个模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例1提供的计算机终端10中。
在本申请上述实施例中,本地缓存中还存储有关联关系的使用时间,该装置还包括:确定模块和删除模块。
其中,读取模块还用于如果预设定时时间到达,则读取本地缓存中存储的使用时间;确定模块用于基于使用时间确定关联关系继续使用;删除模块用于从本地缓存中删除不再继续使用的关联关系。
在本申请上述实施例中,该装置还包括如下之一:第一更新模块和第二更新模块。
其中,第一更新模块用于发送携带有目标虚拟机地址的第一查询请求至地址服务器,接收地址服务器返回的目标物理机地址,并将目标虚拟机地址和目标物理机地址之间的目标关联关系存储至本地缓存;第二更新模块用于发送携带有多个第一虚拟机地址的第二查询请求至地址服务器,接收地址服务器返回的与多个第一虚拟机地址具有关联关系的多个第一物理机地址,并将多个第一虚拟机地址和多个第一物理机地址之间的第一关联关系存储至本地缓存,其中,多个第一虚拟机地址用于表征处于同一个虚拟网络的虚拟机的地址。
在本申请上述实施例中,该装置还包括:接收模块。
其中,发送模块还用于如果查询失败,则发送携带有目标虚拟机地址的查询请求至地址服务器;接收模块用于接收地址服务器返回的目标物理机地址。
在本申请上述实施例中,该装置还包括:存储模块。
其中,存储模块用于将目标虚拟机地址和目标物理机地址之间的目标关联关系存储至本地缓存,并存储目标关联关系的使用时间。
在本申请上述实施例中,该装置还包括:检测模块、确定模块和控制模块。
其中,检测模块用于检测查询请求是否属于地址扫描行为;确定模块用于如果查询请求属于地址扫描行为,则确定查询请求对应的发送对象;控制模块用于控制查询请求的发送速度小于预设速度,其中,预设速度基于发送对象确定。
在本申请上述实施例中,该装置还包括:确定模块。
其中,确定模块用于确定本地缓存的剩余存储空间是否大于预设阈值;发送模块还用于如果剩余存储空间大于预设阈值,则发送携带有目标虚拟机地址的查询请求至地址服务器;如果剩余存储空间小于预设阈值,则发送目标报文至目标网关设备,其中,目标报文通过目标网关设备转发至目标物理机。
在本申请上述实施例中,该装置还包括:接收模块和存储模块。
其中,接收模块用于接收目标网关设备下发的目标关联关系,其中,目标关联关系由目标网关设备在检测到源虚拟机的访问流量大于预设流量时发送,源虚拟机用于表征发送目标报文的虚拟机;存储模块用于将目标关联关系存储至本地缓存。
在本申请上述实施例中,存储模块包括:删除单元和存储单元。
其中,删除单元用于删除本地缓存中已经存储的部分关联关系;存储单元用于将目标关联关系存储至本地缓存。
在本申请上述实施例中,该装置还包括:第三更新模块。
其中,发送模块还用于如果接收到目标物理机返回的第一通知报文,发送携带有目标虚拟机地址的请求至地址服务器,其中,第一通知报文用于通知目标虚拟机从目标物理机迁移至其他物理机;接收模块还用于接收地址服务器返回的与目标虚拟机地址具有关联关系的新物理地址,其中,新物理地址用于表征目标虚拟机迁移后的第一物理机的地址;发送模块还用于基于新物理地址发送目标报文至第一物理机;第三更新模块用于基于新物理地址对本地缓存进行更新。
在本申请上述实施例中,该装置还包括:第四更新模块。
其中,发送模块还用于如果接收到目标物理机返回的第二通知报文,发送携带有多个第二虚拟机地址的请求至地址服务器,其中,多个第二虚拟机地址对应的网卡从目标物理机迁移至其他物理机;接收模块还用于接收地址服务器返回的与多个第二虚拟机地址具有关联关系的第二物理机地址,其中,第二物理机地址用于表征网卡迁移后的第二物理机的地址;发送模块还用于基于第二物理机地址发送目标报文至第二物理机;第三更新模块用于基于第二物理机地址对本地缓存进行更新。
需要说明的是,本申请上述实施例中涉及到的优选实施方案与实施例1提供的方案以及应用场景、实施过程相同,但不仅限于实施例1所提供的方案。
实施例3
根据本申请实施例,还提供了一种用于实施上述报文处理方法的报文处理系统,如图7所示,该系统包括:
目标虚拟机72,部署在目标物理机74上;
源物理机76,包括:本地缓存762和处理器764。
其中,本地缓存762用于存储虚拟机地址和物理机地址之间的关联关系;处理器764用于获取待转发的目标报文,目标报文包含目标虚拟机的目标虚拟机地址,从本地缓存中查询是否存储有与目标虚拟机地址具有关联关系的目标物理机地址,如果查询成功,则从本地缓存中读取目标物理机地址,并基于目标物理机地址发送目标报文至目标物理机。
在本申请上述实施例中,本地缓存中还存储有关联关系的使用时间,处理器还用于如果预设定时时间到达,则读取本地缓存中存储的使用时间,基于使用时间确定关联关系继续使用,并从本地缓存中删除不再继续使用的关联关系。
在本申请上述实施例中,该系统还包括:
地址服务器,与源物理机通信连接,用于接收源物理机发送的携带有目标虚拟机地址的第一查询请求,并返回目标物理机地址;或接收源物理机发送的携带有多个第一虚拟机地址的第二查询请求,并返回与多个第一虚拟机地址具有关联关系的多个第一物理机地址;
本地缓存还用于存储目标虚拟机地址和目标物理机地址之间的目标关联关系,或多个第一虚拟机地址和多个第一物理机地址之间的第一关联关系。
在本申请上述实施例中,该系统还包括:
地址服务器,与源物理机通信连接,用于接收源物理机发送的携带有目标虚拟机地址的请求,并返回目标物理机地址;
处理器还用于基于目标物理机地址发送目标报文至目标物理机。
在本申请上述实施例中,处理器还用于将目标虚拟机地址和目标物理机地址之间的目标关联关系存储至本地缓存,并存储目标关联关系的使用时间。
在本申请上述实施例中,处理器还用于检测查询请求是否属于地址扫描行为,如果查询请求属于地址扫描行为,则确定查询请求对应的发送对象,并控制查询请求的发送速度小于预设速度,其中,预设速度基于发送对象确定。
在本申请上述实施例中,处理器还用于确定本地缓存的剩余存储空间是否大于预设阈值;其中,如果剩余存储空间大于预设阈值,则发送携带有目标虚拟机地址的查询请求至地址服务器;如果剩余存储空间小于预设阈值,则发送目标报文至目标网关设备;
该系统还包括:目标网关设备,与源物理机通信连接,用于将目标报文转发至目标物理机。
在本申请上述实施例中,目标网关设备还用于在检测到源虚拟机的访问流量大于预设流量时下发目标关联关系至源物理机,其中,源虚拟机用于表征发送目标报文的虚拟机;处理器还用于将目标关联关系存储至本地缓存。
在本申请上述实施例中,处理器还用于删除本地缓存中已经存储的部分关联关系,并将目标关联关系存储至本地缓存。
在本申请上述实施例中,处理器还用于如果接收到目标物理机返回的第一通知报文,发送携带有目标虚拟机地址的请求至地址服务器,其中,第一通知报文用于通知目标虚拟机从目标物理机迁移至其他物理机;地址服务器还用于返回与目标虚拟机地址具有关联关系的新物理地址,其中,新物理地址用于表征目标虚拟机迁移后的第一物理机的地址;处理器还用于基于新物理地址发送目标报文至第一物理机,并基于新物理地址对本地缓存进行更新。
在本申请上述实施例中,处理器还用于如果接收到目标物理机返回的第二通知报文,发送携带有多个第二虚拟机地址的请求至地址服务器,其中,多个第二虚拟机地址对应的网卡从目标物理机迁移至其他物理机;地址服务器还用于返回与多个第二虚拟机地址具有关联关系的第二物理机地址,其中,第二物理机地址用于表征网卡迁移后的第二物理机的地址;处理器还用于基于第二物理机地址发送目标报文至第二物理机,并基于第二物理机地址对本地缓存进行更新。
需要说明的是,本申请上述实施例中涉及到的优选实施方案与实施例1提供的方案以及应用场景、实施过程相同,但不仅限于实施例1所提供的方案。
实施例4
本申请的实施例可以提供一种计算机终端,该计算机终端可以是计算机终端群中的任意一个计算机终端设备。可选地,在本实施例中,上述计算机终端也可以替换为移动终端等终端设备。
可选地,在本实施例中,上述计算机终端可以位于计算机网络的多个网络设备中的至少一个网络设备。
在本实施例中,上述计算机终端可以执行报文处理方法中以下步骤的程序代码:获取待转发的目标报文,其中,目标报文包含目标虚拟机的目标虚拟机地址;从本地缓存中查询是否存储有与目标虚拟机地址具有关联关系的目标物理机地址,其中,本地缓存中存储了虚拟机地址和物理机地址之间的关联关系,目标物理机地址用于表征部署有目标虚拟机的物理机的地址;如果查询成功,则从本地缓存中读取目标物理机地址;基于目标物理机地址发送目标报文至目标物理机。
可选地,图8是根据本申请实施例的一种计算机终端的结构框图。如图8所示,该计算机终端A可以包括:一个或多个(图中仅示出一个)处理器802、以及存储器804。
其中,存储器可用于存储软件程序以及模块,如本申请实施例中的报文处理方法和装置对应的程序指令/模块,处理器通过运行存储在存储器内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的报文处理方法。存储器可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至终端A。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
处理器可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:获取待转发的目标报文,其中,目标报文包含目标虚拟机的目标虚拟机地址;从本地缓存中查询是否存储有与目标虚拟机地址具有关联关系的目标物理机地址,其中,本地缓存中存储了虚拟机地址和物理机地址之间的关联关系,目标物理机地址用于表征部署有目标虚拟机的物理机的地址;如果查询成功,则从本地缓存中读取目标物理机地址;基于目标物理机地址发送目标报文至目标物理机。
可选的,本地缓存中还存储有关联关系的使用时间,上述处理器还可以执行如下步骤的程序代码:如果预设定时时间到达,则读取本地缓存中存储的使用时间;基于使用时间确定关联关系继续使用;从本地缓存中删除不再继续使用的关联关系。
可选的,上述处理器还可以执行如下之一步骤的程序代码:发送携带有目标虚拟机地址的第一查询请求至地址服务器,接收地址服务器返回的目标物理机地址,并将目标虚拟机地址和目标物理机地址之间的目标关联关系存储至本地缓存;发送携带有多个第一虚拟机地址的第二查询请求至地址服务器,接收地址服务器返回的与多个第一虚拟机地址具有关联关系的多个第一物理机地址,并将多个第一虚拟机地址和多个第一物理机地址之间的第一关联关系存储至本地缓存,其中,多个第一虚拟机地址用于表征处于同一个虚拟网络的虚拟机的地址。
可选的,上述处理器还可以执行如下步骤的程序代码:如果查询失败,则发送携带有目标虚拟机地址的查询请求至地址服务器;接收地址服务器返回的目标物理机地址;基于目标物理机地址发送目标报文至目标物理机。
可选的,上述处理器还可以执行如下步骤的程序代码:将目标虚拟机地址和目标物理机地址之间的目标关联关系存储至本地缓存,并存储目标关联关系的使用时间。
可选的,上述处理器还可以执行如下步骤的程序代码:检测查询请求是否属于地址扫描行为;如果查询请求属于地址扫描行为,则确定查询请求对应的发送对象;控制查询请求的发送速度小于预设速度,其中,预设速度基于发送对象确定。
可选的,上述处理器还可以执行如下步骤的程序代码:在发送携带有目标虚拟机地址的查询请求至地址服务器之前,确定本地缓存的剩余存储空间是否大于预设阈值;如果剩余存储空间大于预设阈值,则发送携带有目标虚拟机地址的查询请求至地址服务器;如果剩余存储空间小于预设阈值,则发送目标报文至目标网关设备,其中,目标报文通过目标网关设备转发至目标物理机。
可选的,上述处理器还可以执行如下步骤的程序代码:在发送目标报文至目标网关设备之后,接收目标网关设备下发的目标关联关系,其中,目标关联关系由目标网关设备在检测到源虚拟机的访问流量大于预设流量时发送,源虚拟机用于表征发送目标报文的虚拟机;将目标关联关系存储至本地缓存。
可选的,上述处理器还可以执行如下步骤的程序代码:删除本地缓存中已经存储的部分关联关系;将目标关联关系存储至本地缓存。
可选的,上述处理器还可以执行如下步骤的程序代码:在基于目标物理机地址发送目标报文至目标物理机之后,如果接收到目标物理机返回的第一通知报文,发送携带有目标虚拟机地址的请求至地址服务器,其中,第一通知报文用于通知目标虚拟机从目标物理机迁移至其他物理机;接收地址服务器返回的与目标虚拟机地址具有关联关系的新物理地址,其中,新物理地址用于表征目标虚拟机迁移后的第一物理机的地址;基于新物理地址发送目标报文至第一物理机;基于新物理地址对本地缓存进行更新。
可选的,上述处理器还可以执行如下步骤的程序代码:在基于目标物理机地址发送目标报文至目标物理机之后,如果接收到目标物理机返回的第二通知报文,发送携带有多个第二虚拟机地址的请求至地址服务器,其中,多个第二虚拟机地址对应的网卡从目标物理机迁移至其他物理机;接收地址服务器返回的与多个第二虚拟机地址具有关联关系的第二物理机地址,其中,第二物理机地址用于表征网卡迁移后的第二物理机的地址;基于第二物理机地址发送目标报文至第二物理机;基于第二物理机地址对本地缓存进行更新。
采用本申请实施例,提供了一种报文处理的方案。通过从本地缓存中查询是否存储有与目标报文中携带的目标虚拟机地址具有关联关系的目标物理机地址,如果查询成功,则直接读取出该目标物理机地址,并基于目标物理机地址进行报文转发,将目标报文转发至目标物理机,达到了虚拟机之间互相网络访问目的。容易注意到的是,目标物理机地址可以是从物理机本地缓存中读取的地址,无需从地址服务器获取,从而达到了快速获取物理机地址,减轻地址服务器压力,提升网络访问效率的技术效果,进而解决了虚拟机频繁上下线、热迁移时的网络访问的技术问题。
本领域普通技术人员可以理解,图8所示的结构仅为示意,计算机终端也可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌声电脑以及移动互联网设备(MobileInternet Devices,MID)、PAD等终端设备。图8其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图8中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图8所示不同的配置。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(RandomAccess Memory,RAM)、磁盘或光盘等。
实施例5
本申请的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于保存上述实施例一所提供的报文处理方法所执行的程序代码。
可选地,在本实施例中,上述存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:获取待转发的目标报文,其中,目标报文包含目标虚拟机的目标虚拟机地址;从本地缓存中查询是否存储有与目标虚拟机地址具有关联关系的目标物理机地址,其中,本地缓存中存储了虚拟机地址和物理机地址之间的关联关系,目标物理机地址用于表征部署有目标虚拟机的物理机的地址;如果查询成功,则从本地缓存中读取目标物理机地址;基于目标物理机地址发送目标报文至目标物理机。
可选的,本地缓存中还存储有关联关系的使用时间,上述存储介质还被设置为存储用于执行以下步骤的程序代码:如果预设定时时间到达,则读取本地缓存中存储的使用时间;基于使用时间确定关联关系继续使用;从本地缓存中删除不再继续使用的关联关系。
可选的,上述存储介质还被设置为存储用于执行以下之一步骤的程序代码:发送携带有目标虚拟机地址的第一查询请求至地址服务器,接收地址服务器返回的目标物理机地址,并将目标虚拟机地址和目标物理机地址之间的目标关联关系存储至本地缓存;发送携带有多个第一虚拟机地址的第二查询请求至地址服务器,接收地址服务器返回的与多个第一虚拟机地址具有关联关系的多个第一物理机地址,并将多个第一虚拟机地址和多个第一物理机地址之间的第一关联关系存储至本地缓存,其中,多个第一虚拟机地址用于表征处于同一个虚拟网络的虚拟机的地址。
可选的,上述存储介质还被设置为存储用于执行以下步骤的程序代码:如果查询失败,则发送携带有目标虚拟机地址的查询请求至地址服务器;接收地址服务器返回的目标物理机地址;基于目标物理机地址发送目标报文至目标物理机。
可选的,上述存储介质还被设置为存储用于执行以下步骤的程序代码:将目标虚拟机地址和目标物理机地址之间的目标关联关系存储至本地缓存,并存储目标关联关系的使用时间。
可选的,上述存储介质还被设置为存储用于执行以下步骤的程序代码:检测查询请求是否属于地址扫描行为;如果查询请求属于地址扫描行为,则确定查询请求对应的发送对象;控制查询请求的发送速度小于预设速度,其中,预设速度基于发送对象确定。
可选的,上述存储介质还被设置为存储用于执行以下步骤的程序代码:在发送携带有目标虚拟机地址的查询请求至地址服务器之前,确定本地缓存的剩余存储空间是否大于预设阈值;如果剩余存储空间大于预设阈值,则发送携带有目标虚拟机地址的查询请求至地址服务器;如果剩余存储空间小于预设阈值,则发送目标报文至目标网关设备,其中,目标报文通过目标网关设备转发至目标物理机。
可选的,上述存储介质还被设置为存储用于执行以下步骤的程序代码:在发送目标报文至目标网关设备之后,接收目标网关设备下发的目标关联关系,其中,目标关联关系由目标网关设备在检测到源虚拟机的访问流量大于预设流量时发送,源虚拟机用于表征发送目标报文的虚拟机;将目标关联关系存储至本地缓存。
可选的,上述存储介质还被设置为存储用于执行以下步骤的程序代码:删除本地缓存中已经存储的部分关联关系;将目标关联关系存储至本地缓存。
可选的,上述存储介质还被设置为存储用于执行以下步骤的程序代码:在基于目标物理机地址发送目标报文至目标物理机之后,如果接收到目标物理机返回的通知报文,发送携带有目标虚拟机地址的请求至地址服务器,其中,通知报文用于通知目标虚拟机从目标物理机迁移至其他物理机;接收地址服务器返回的与目标虚拟机地址具有关联关系的新物理地址,其中,新物理地址用于表征目标虚拟机迁移后的第一物理机的地址;基于新物理地址发送目标报文至第一物理机;基于新物理地址对本地缓存进行更新。
可选的,上述存储介质还被设置为存储用于执行以下步骤的程序代码:在基于目标物理机地址发送目标报文至目标物理机之后,如果接收到目标物理机返回的第二通知报文,发送携带有多个第二虚拟机地址的请求至地址服务器,其中,多个第二虚拟机地址对应的网卡从目标物理机迁移至其他物理机;接收地址服务器返回的与多个第二虚拟机地址具有关联关系的第二物理机地址,其中,第二物理机地址用于表征网卡迁移后的第二物理机的地址;基于第二物理机地址发送目标报文至第二物理机;基于第二物理机地址对本地缓存进行更新。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

Claims (10)

1.一种报文处理方法,其特征在于,应用于源物理机,所述方法包括:
获取待转发的目标报文,其中,所述目标报文包含目标虚拟机的目标虚拟机地址和目标虚拟机名,以及源虚拟机的源虚拟机地址和源虚拟机的源虚拟机名,所述目标报文由所述源虚拟机生成;
从本地缓存中查询是否存储有与所述目标虚拟机地址具有关联关系的目标物理机地址,其中,所述本地缓存中存储了虚拟机地址和物理机地址之间的关联关系,所述目标物理机地址用于表征部署有所述目标虚拟机的目标物理机的地址,所述本地缓存部署于所述源物理机的本地存储空间中;
如果查询成功,则从所述本地缓存中读取所述目标物理机地址;
如果查询失败,则发送携带有所述目标虚拟机地址的查询请求至地址服务器;
接收所述地址服务器返回的所述目标物理机地址;
将所述目标虚拟机地址和所述目标物理机地址之间的目标关联关系存储至所述本地缓存;
基于所述目标物理机地址发送所述目标报文至所述目标物理机;
所述方法还包括:通过定时器扫描所述本地缓存,并使用LRU算法将不再使用的所述虚拟机地址和所述物理机地址之间的关联关系淘汰;
发送携带有多个第一虚拟机地址的第二查询请求至地址服务器,接收所述地址服务器返回的与所述多个第一虚拟机地址具有关联关系的多个第一物理机地址,并将所述多个第一虚拟机地址和所述多个第一物理机地址之间的第一关联关系存储至所述本地缓存,其中,所述多个第一虚拟机地址用于表征处于同一个虚拟网络的虚拟机的地址;
其中,在发送携带有所述目标虚拟机地址的查询请求至地址服务器之前,所述方法还包括:确定所述本地缓存的剩余存储空间是否大于预设阈值;如果所述剩余存储空间大于所述预设阈值,则发送携带有所述目标虚拟机地址的查询请求至地址服务器;如果所述剩余存储空间小于所述预设阈值,则发送所述目标报文至目标网关设备,其中,所述目标报文通过所述目标网关设备转发至所述目标物理机;
在发送所述目标报文至目标网关设备之后,所述方法还包括:接收所述目标网关设备下发的目标关联关系,其中,所述目标关联关系由所述目标网关设备在检测到源虚拟机的访问流量大于预设流量时发送,所述源虚拟机用于表征发送所述目标报文的虚拟机;将所述目标关联关系存储至所述本地缓存。
2.根据权利要求1所述的方法,其特征在于,所述本地缓存中还存储有所述关联关系的使用时间,所述方法还包括:
如果预设定时时间到达,则读取所述本地缓存中存储的所述使用时间;
基于所述使用时间确定所述关联关系是否继续使用;
从所述本地缓存中删除不再继续使用的关联关系。
3.根据权利要求2所述的方法,其特征在于,在从所述本地缓存中删除不再继续使用的关联关系之后,所述方法还包括:
发送携带有所述目标虚拟机地址的第一查询请求至地址服务器,接收所述地址服务器返回的所述目标物理机地址,并将所述目标虚拟机地址和所述目标物理机地址之间的目标关联关系存储至所述本地缓存。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
检测所述查询请求是否属于地址扫描行为;
如果所述查询请求属于地址扫描行为,则确定所述查询请求对应的发送对象;
控制所述查询请求的发送速度小于预设速度,其中,所述预设速度基于所述发送对象确定。
5.根据权利要求1所述的方法,其特征在于,将所述目标关联关系存储至所述本地缓存包括:
删除所述本地缓存中已经存储的部分关联关系;
将所述目标关联关系存储至所述本地缓存。
6.根据权利要求1所述的方法,其特征在于,在基于所述目标物理机地址发送所述目标报文至所述目标物理机之后,所述方法还包括:
如果接收到所述目标物理机返回的第一通知报文,发送携带有所述目标虚拟机地址的请求至地址服务器,其中,所述第一通知报文用于通知所述目标虚拟机从所述目标物理机迁移至其他物理机;
接收所述地址服务器返回的与所述目标虚拟机地址具有关联关系的新物理地址,其中,所述新物理地址用于表征所述目标虚拟机迁移后的第一物理机的地址;
基于所述新物理地址发送所述目标报文至所述第一物理机;
基于所述新物理地址对所述本地缓存进行更新。
7.根据权利要求1所述的方法,其特征在于,在基于所述目标物理机地址发送所述目标报文至所述目标物理机之后,所述方法还包括:
如果接收到所述目标物理机返回的第二通知报文,发送携带有多个第二虚拟机地址的请求至地址服务器,其中,所述多个第二虚拟机地址对应的网卡从所述目标物理机迁移至其他物理机;
接收所述地址服务器返回的与所述多个第二虚拟机地址具有关联关系的第二物理机地址,其中,所述第二物理机地址用于表征所述网卡迁移后的第二物理机的地址;
基于所述第二物理机地址发送所述目标报文至所述第二物理机;
基于所述第二物理机地址对所述本地缓存进行更新。
8.一种报文处理系统,其特征在于,包括:
目标虚拟机,部署在目标物理机上;
源物理机,包括:本地缓存和处理器;
所述本地缓存用于存储虚拟机地址和物理机地址之间的关联关系,所述本地缓存部署于所述源物理机的本地存储空间中;
所述处理器用于获取待转发的目标报文,所述目标报文包含目标虚拟机的目标虚拟机地址和目标虚拟机名,以及源虚拟机的源虚拟机地址和源虚拟机的源虚拟机名,所述目标报文由所述源虚拟机生成,从所述本地缓存中查询是否存储有与所述目标虚拟机地址具有关联关系的目标物理机地址,如果查询成功,则从所述本地缓存中读取所述目标物理机地址,并基于所述目标物理机地址发送所述目标报文至所述目标物理机;如果查询失败,则发送携带有所述目标虚拟机地址的查询请求至地址服务器;接收所述地址服务器返回的所述目标物理机地址;将所述目标虚拟机地址和所述目标物理机地址之间的目标关联关系存储至所述本地缓存;
通过定时器扫描所述本地缓存,并使用LRU算法将不再使用的所述虚拟机地址和所述物理机地址之间的关联关系淘汰;
发送携带有多个第一虚拟机地址的第二查询请求至地址服务器,接收所述地址服务器返回的与所述多个第一虚拟机地址具有关联关系的多个第一物理机地址,并将所述多个第一虚拟机地址和所述多个第一物理机地址之间的第一关联关系存储至所述本地缓存,其中,所述多个第一虚拟机地址用于表征处于同一个虚拟网络的虚拟机的地址;
在发送携带有所述目标虚拟机地址的查询请求至地址服务器之前,确定所述本地缓存的剩余存储空间是否大于预设阈值;如果所述剩余存储空间大于所述预设阈值,则发送携带有所述目标虚拟机地址的查询请求至地址服务器;如果所述剩余存储空间小于所述预设阈值,则发送所述目标报文至目标网关设备,其中,所述目标报文通过所述目标网关设备转发至所述目标物理机;
在发送所述目标报文至目标网关设备之后,接收所述目标网关设备下发的目标关联关系,其中,所述目标关联关系由所述目标网关设备在检测到源虚拟机的访问流量大于预设流量时发送,所述源虚拟机用于表征发送所述目标报文的虚拟机;将所述目标关联关系存储至所述本地缓存。
9.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求1至7中任意一项所述的报文处理方法。
10.一种计算机终端,其特征在于,包括存储器和处理器,所述处理器用于运行所述存储器中存储的程序,其中,所述程序运行时执行权利要求1至7中任意一项所述的报文处理方法。
CN202210326985.1A 2022-03-30 2022-03-30 报文处理方法和系统,存储介质及计算机终端 Active CN114844833B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210326985.1A CN114844833B (zh) 2022-03-30 2022-03-30 报文处理方法和系统,存储介质及计算机终端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210326985.1A CN114844833B (zh) 2022-03-30 2022-03-30 报文处理方法和系统,存储介质及计算机终端

Publications (2)

Publication Number Publication Date
CN114844833A CN114844833A (zh) 2022-08-02
CN114844833B true CN114844833B (zh) 2024-06-25

Family

ID=82564843

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210326985.1A Active CN114844833B (zh) 2022-03-30 2022-03-30 报文处理方法和系统,存储介质及计算机终端

Country Status (1)

Country Link
CN (1) CN114844833B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115913824B (zh) * 2023-02-10 2023-07-25 中航金网(北京)电子商务有限公司 跨vpc的虚拟服务器通信方法及系统
CN116938753B (zh) * 2023-09-13 2023-12-29 中移(苏州)软件技术有限公司 数据处理方法、装置及电子设备
CN117555672A (zh) * 2023-10-19 2024-02-13 南昌大学 一种基于象群优化的云计算动态虚拟机分配方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9619662B1 (en) * 2011-01-13 2017-04-11 Google Inc. Virtual network pairs

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8989187B2 (en) * 2010-06-04 2015-03-24 Coraid, Inc. Method and system of scaling a cloud computing network
US9419921B1 (en) * 2011-01-13 2016-08-16 Google Inc. Network address translation for virtual machines
WO2012163017A1 (zh) * 2011-10-21 2012-12-06 华为技术有限公司 分布式虚拟机访问异常的处理方法以及虚拟机监控器
CN103942087B (zh) * 2014-03-31 2017-11-17 华为技术有限公司 虚拟机热迁移方法及相关装置和集群系统
CN104243265B (zh) * 2014-09-05 2018-01-05 华为技术有限公司 一种基于虚拟机迁移的网关控制方法、装置及系统
JP2016100625A (ja) * 2014-11-18 2016-05-30 富士通株式会社 経路情報提供プログラム、経路情報提供方法、経路情報提供装置、情報処理システムの経路制御方法、及び、情報処理システム
CN106031104B (zh) * 2015-01-21 2019-07-12 华为技术有限公司 数据报文的转发方法、装置及设备
CN106470155B (zh) * 2015-08-14 2020-03-31 中国电信股份有限公司 一种虚拟机数据的转发方法、sdn控制器和sdn系统
WO2017056238A1 (ja) * 2015-09-30 2017-04-06 株式会社日立製作所 Vm配置管理システム、及び、vm配置管理方法
US20170142234A1 (en) * 2015-11-13 2017-05-18 Microsoft Technology Licensing, Llc Scalable addressing mechanism for virtual machines
KR101716715B1 (ko) * 2016-12-27 2017-03-15 주식회사 티맥스클라우드 가상 머신 환경의 네트워크 입출력 장치 가상화 방법 및 장치
CN108322393B (zh) * 2017-01-18 2021-03-16 阿里巴巴集团控股有限公司 路由链路管理方法和系统、虚拟路由网关和宿主机网关
CN106911534A (zh) * 2017-02-28 2017-06-30 郑州云海信息技术有限公司 一种虚拟机热迁移方法及其系统
CN107329790B (zh) * 2017-06-30 2021-01-15 联想(北京)有限公司 一种数据处理方法和电子设备
CN110597451B (zh) * 2018-06-12 2021-02-23 华为技术有限公司 一种虚拟化缓存的实现方法及物理机
CN110633127A (zh) * 2018-06-25 2019-12-31 华为技术有限公司 一种数据处理方法及相关设备
CN112866410B (zh) * 2021-02-10 2023-04-07 北京字节跳动网络技术有限公司 数据报文的转发控制方法、装置、介质及电子设备
CN114003349B (zh) * 2021-12-30 2022-07-12 杭州优云科技有限公司 一种虚拟机迁移方法及设备

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9619662B1 (en) * 2011-01-13 2017-04-11 Google Inc. Virtual network pairs

Also Published As

Publication number Publication date
CN114844833A (zh) 2022-08-02

Similar Documents

Publication Publication Date Title
CN114844833B (zh) 报文处理方法和系统,存储介质及计算机终端
CN107707628B (zh) 用于传输数据处理请求的方法和装置
CN109101318B (zh) 一种虚拟机迁移控制方法及装置
KR101857511B1 (ko) 가상 머신 마이그레이션을 판정하는 방법 및 장치
US10361992B2 (en) Method for synchronizing virtual machine location information between data center gateways, gateway, and system
CN109428839B (zh) 一种cdn调度方法、设备及系统
CN109639748B (zh) Dns服务器的缓存更新方法、装置、系统及域名系统
EP3974969A1 (en) System startup method and related device
CN108964972B (zh) 一种计算节点管理的方法、装置和系统
US20220222016A1 (en) Method for accessing solid state disk and storage device
US11455117B2 (en) Data reading method, apparatus, and system, avoiding version rollback issues in distributed system
CN114598735B (zh) 数据处理方法和系统
WO2017095820A1 (en) Methods and devices for acquiring data using virtual machine and host machine
CN110795395A (zh) 文件部署系统和文件部署方法
US9344363B2 (en) Information processing system, relay device, information processing device, and information processing method
CN111694703A (zh) 缓存区管理方法、装置和计算机设备
CN113518013B (zh) 一种实现心跳机制的处理方法及装置
CN115543225B (zh) 数据处理方法、系统、装置、计算机存储介质及电子设备
CN110309120B (zh) 数据处理方法和数据处理装置
CN115221130A (zh) 文件的处理系统、文件的处理方法和装置
CN110858201B (zh) 数据处理方法及系统、处理器、存储介质
CN111414127B (zh) 计算集群系统及其数据获取方法以及电子设备
CN117493258B (zh) 基板管理控制器的信息获取系统、方法、装置、存储介质
CN111695018B (zh) 数据处理方法及装置、分布式网络系统、计算机设备
CN114143574B (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