CN109462535A - 一种报文处理方法及装置 - Google Patents
一种报文处理方法及装置 Download PDFInfo
- Publication number
- CN109462535A CN109462535A CN201811237693.0A CN201811237693A CN109462535A CN 109462535 A CN109462535 A CN 109462535A CN 201811237693 A CN201811237693 A CN 201811237693A CN 109462535 A CN109462535 A CN 109462535A
- Authority
- CN
- China
- Prior art keywords
- message
- vlan tag
- vlan
- pass
- carried
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4641—Virtual LANs, VLANs, e.g. virtual private networks [VPN]
- H04L12/4645—Details on frame tagging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供了一种报文处理方法及装置,其中,该方法通过接收虚拟机发送的第一报文;然后判断所述第一报文中是否携带有虚拟局域网VLAN标签;若判断结果为是,则在检测到所述第一报文中携带的VLAN标签包含在预设的允许放行的VLAN标签列表中时,放行所述第一报文;若判断结果为否,则在所述第一报文中配置预设的默认VLAN标签,并放行携带有所述默认VLAN标签的第一报文。通过这种方式,既可以满足作为计算资源的虚拟机发送报文的需求,也可以满足作为网络资源的虚拟机发送报文的需求,可以适用存在较多作为网络资源的虚拟机的虚拟化环境中。
Description
技术领域
本申请涉及通信技术领域,具体而言,涉及一种报文处理方法及装置。
背景技术
随着云时代的来临,越来越多的企业将计算设施(例如服务器等)部署在云端的数据中心内,并利用OpenStack等虚拟化环境管理系统在数据中心中提供云端管理服务。例如,OpenStack可以对计算设施进行虚拟化并创建多台虚拟机,以便提供数据分析处理服务,并且创建在不同计算设施上的不同虚拟机之间也可以进行通信,以便互传报文。
目前,在虚拟化环境中可以抽象出虚拟设备来承载网络管理功能,例如,为实现报文隔离,可以将虚拟化环境中的虚拟机划分在不同的虚拟局域网(Virtual Local AreaNetwork,VLAN)中进行通信。具体的,每一个虚拟设备中配置一个默认VLAN标签,虚拟机发送的报文到达虚拟设备之后,需要带有上述默认VLAN标签才能被放行。
随着虚拟化技术越来越灵活,虚拟化环境中除了包括作为虚拟主机等计算资源的虚拟机之外,还包括了大量作为虚拟交换机、虚拟路由器等网络资源的虚拟机。对于作为网络资源的虚拟机,本身可以支持在虚拟机的同一个虚拟端口上创建不同的VLAN子端口,每个VLAN子端口对应一种VLAN标签,这样,通过同一虚拟机的不同VLAN子端口发出的报文也会携带有不同的VLAN标签。但是,这些携带有不同VLAN标签的报文到达配置有默认VLAN标签的虚拟设备时,只有具备上述默认VLAN标签的报文才能被放行,其它报文将会被丢弃。由此可见,上述报文处理方式很难适用在存在较多作为网络资源的虚拟机的虚拟化环境中。
发明内容
有鉴于此,本申请实施例的目的在于提供一种报文处理方法及装置,以适用于存在较多作为网络资源的虚拟机的虚拟化环境中。
第一方面,本申请实施例提供了一种报文处理方法,该方法包括:
接收虚拟机发送的第一报文;
判断所述第一报文中是否携带有VLAN标签;
若判断结果为是,则在检测到所述第一报文中携带的VLAN标签包含在预设的允许放行的VLAN标签列表中时,放行所述第一报文;
若判断结果为否,则在所述第一报文中配置预设的默认VLAN标签,并放行携带有所述默认VLAN标签的第一报文。
结合第一方面,本申请实施例提供了第一方面的第一种可能的实施方式,其中,所述方法还包括:
在判断出所述第一报文中携带有VLAN标签、且检测到所述第一报文携带的VLAN标签不包含在所述允许放行的VLAN标签列表中时,丢弃所述第一报文。
结合第一方面或第一方面的第一种可能的实施方式,本申请实施例提供了第一方面的第二种可能的实施方式,其中,所述默认VLAN标签与所述允许放行的VLAN标签列表中的VLAN标签不同。
结合第一方面的第二种可能的实施方式,本申请实施例提供了第一方面的第三种可能的实施方式,其中,所述方法还包括:
接收物理网卡转发的第二报文;
在检测到所述第二报文中携带有VLAN标签之后,若所述第二报文中携带的VLAN标签包含在所述允许放行的VLAN标签列表中,则放行所述第二报文;
若所述第二报文中携带的VLAN标签与所述默认VLAN标签一致,去掉所述第二报文中携带的VLAN标签,并放行去掉VLAN标签之后的第二报文。
结合第一方面的第三种可能的实施方式,本申请实施例提供了第一方面的第四种可能的实施方式,其中,所述方法还包括:
当检测到所述第二报文中不携带有VLAN标签,或者,所述第二报文中携带的VLAN标签不包含在所述允许放行的VLAN标签列表中、且所述第二报文中携带的VLAN标签与所述默认VLAN标签不一致时,丢弃所述第二报文。
第二方面,本申请实施例还提供一种报文处理装置,包括:
接收模块,用于接收虚拟机发送的第一报文;
处理模块,用于判断所述第一报文中是否携带有虚拟局域网VLAN标签;若判断结果为是,则在检测到所述第一报文中携带的VLAN标签包含在预设的允许放行的VLAN标签列表中时,放行所述第一报文;若判断结果为否,则在所述第一报文中配置预设的默认VLAN标签,并放行携带有所述默认VLAN标签的第一报文。
结合第二方面,本申请实施例提供了第二方面的第一种可能的实施方式,其中,所述处理模块,还用于:
在判断出所述第一报文中携带有VLAN标签、且检测到所述第一报文携带的VLAN标签不包含在所述允许放行的VLAN标签列表中时,丢弃所述第一报文。
结合第二方面或第二方面的第一种可能的实施方式,本申请实施例提供了第二方面的第二种可能的实施方式,其中,所述默认VLAN标签与所述允许放行的VLAN标签列表中的VLAN标签不同。
结合第二方面的第二种可能的实施方式,本申请实施例提供了第二方面的第三种可能的实施方式,其中,所述接收模块,还用于:
接收物理网卡转发的第二报文;
所述处理模块,还用于:
在检测到所述第二报文中携带有VLAN标签之后,若所述第二报文中携带的VLAN标签包含在所述允许放行的VLAN标签列表中,则放行所述第二报文;若所述第二报文中携带的VLAN标签与所述默认VLAN标签一致,去掉所述第二报文中携带的VLAN标签,并放行去掉VLAN标签之后的第二报文。
结合第二方面的第三种可能的实施方式,本申请实施例提供了第二方面的第四种可能的实施方式,其中,所述处理模块,还用于:
当检测到所述第二报文中不携带有VLAN标签,或者,所述第二报文中携带的VLAN标签不包含在所述允许放行的VLAN标签列表中、且所述第二报文中携带的VLAN标签与所述默认VLAN标签不一致时,丢弃所述第二报文。
第三方面,本申请实施例还提供一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行上述第一方面,或第一方面的任一种可能的实施方式中报文处理方法的步骤。
第四方面,本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述第一方面,或第一方面的任一种可能的实施方式中报文处理方法的步骤。
本申请实施例提供的报文处理方法及装置,通过在虚拟设备上配置默认VLAN标签、以及允许放行的VLAN标签列表,并基于上述配置来进行报文处理。具体的,一方面,针对作为计算资源的虚拟机发出的报文一般都不会携带VLAN标签,通过虚拟设备时可以打上默认VLAN标签,从而满足报文隔离的需求。另一方面,针对作为网络资源的虚拟机,这类虚拟机上从不同VLAN子端口发出的报文一般都携带有不同的VLAN标签,本申请通过设置放行的VLAN标签列表,虚拟设备也可以允许这类虚拟机发出的归属不同VLAN的报文通过,从而不影响作为网络资源的虚拟机的报文转发能力。这样,既可以满足作为计算资源的虚拟机发送报文的需求,也可以满足作为网络资源的虚拟机发送报文的需求,能够适用在既包含有作为计算资源的虚拟机、也包含有作为网络资源的虚拟机的虚拟化环境中。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1a示出了本申请实施例所提供的一种虚拟化环境下的网络架构图一;
图1b示出了本申请实施例所提供的一种虚拟化环境下的网络架构图一;
图2示出了本申请实施例所提供的一种适用于本申请的网络架构图;
图3示出了本申请实施例所提供的一种虚拟设备进行报文处理的流程图;
图4示出了本申请实施例所提供的另一种虚拟设备进行报文处理的流程图;
图5示出了本申请实施例所列举的一种网络架构图;
图6示出了本申请实施例所提供的一种报文处理装置600的结构示意图;
图7示出了本申请实施例所提供的一种电子设备700的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
在介绍本申请的技术方案之前,首先对本申请的技术背景进行简要说明。目前的虚拟化技术中,虚拟化环境中包含的虚拟机一般分为两类,一类是作为计算资源的虚拟机(下文中用虚拟主机来表示),虚拟主机发出的报文一般都不携带有VLAN标签,以便让用户侧感知不到VLAN隔离;另一类是作为计算资源的虚拟机(下文中用虚拟网络功能(VirtualNetwork Function,VNF)网元来表示),其中,VNF网元例如为虚拟交换机、虚拟路由器等,VNF网元由于能够承载网络功能,故自身可以进行VLAN划分等,具体的,VNF网元可以支持在同一个虚拟端口上创建不同的VLAN子端口,并且每一个VLAN子端口上可以创建一种VLAN,因此如果VNF网元上创建了不同VLAN子端口,那么VNF网元发出的报文携带有VLAN标签,且从不同的VLAN子端口发出的报文携带的VLAN标签不同。
鉴于上述虚拟机的特点,在虚拟化环境中,虚拟机之间进行报文交互时,虚拟机发出报文可能存在两种情况:一种是虚拟机发出的报文不携带VLAN标签,另一种是虚拟机发出的报文携带有VLAN标签。目前,针对上述两种情况下的报文,一般有如下两种处理方式:
方式一:参照图1a所示的虚拟化环境下的网络架构图一,可以在一台宿主机(例如服务器)上创建多台虚拟机,然后可以分别由不同的VLAN抽象网络来管理不同的虚拟机。这里,VLAN抽象网络可以理解为具备网络管理功能的虚拟设备等,下文中为便于描述和理解,将VLAN抽象网络统称为虚拟设备。具体的,每个虚拟设备中配置有一个默认的VLAN标签,当虚拟机之间进行报文交互时,虚拟机发出的报文经过虚拟设备时,虚拟设备可以检测报文是否携带有VLAN标签,若检测到报文中未携带VLAN标签,则进一步为报文贴上VLAN标签之后再放行报文,将报文通过物理网卡发送到物理交换机上,若检测到报文中携带有VLAN标签,则在检测报文中携带的VLAN标签与默认VLAN标签相同的情况下才放行报文,否则将会丢弃报文。
然而,考虑到在一台宿主机上创建的多台虚拟机可能既包括虚拟主机,也包括VNF网元,对于VNF网元来说,如果VNF网元的虚拟端口上创建不同的VLAN子端口,那么通过不同的VLAN子端口发出的报文携带的VLAN标签不同,这些携带有不同VLAN标签的报文通过已经配置了一个默认VLAN标签的虚拟设备时,虚拟设备无法有效将这些报文转发出去,故VNF网元的报文转发能力将会受到限制。
方式二:参照图1b所示的虚拟化环境下的网络架构图二,现有全通(FLAT)网络中定义了所有宿主机(例如服务器等)上创建的虚拟机全部直接连接到物理网卡上,所有的虚拟机发出的报文都可以通过物理网卡发送出去,使得FLAT网络具有直通性。这种情况下,VNF网元可以根据自身承载的网络功能,通过在虚拟端口上创建不同的VLAN子端口,可以使得从不同的VLAN子端口发出的报文带有不同的VLAN标签,从而实现报文隔离能力。但是,对于虚拟主机来说,虚拟主机发出的报文本身不携带有VLAN标签,由于FLAT网络的直通性,故由虚拟主机发出的报文没有办法进行有效隔离。
如果要对虚拟主机发出的报文进行隔离,只能在与虚拟主机所在的宿主机相连接的物理交换机上进行VLAN划分,但是由于在同一宿主机上创建的虚拟主机以及VNF网元都对应在物理交换机上的一个端口上,如果在该端口上创建VLAN,那么在同一宿主机上创建的所有虚拟主机以及VNF网元只能划分到该端口对应的同一个VLAN下,使得报文隔离效果不佳。
针对上述两个方式中指出的技术问题,本申请提出一种报文处理方法及装置,可以将一种能够兼容携带有VLAN标签的报文以及不携带有VLAN标签的报文的报文处理方式应用到虚拟化环境中,使得虚拟机之间进行报文交互时,可以兼容虚拟主机以及VNF网元发送的报文的特点,既可以对不携带有VLAN标签的报文有效进行隔离,也能够不影响从VNF网元发出的携带有VLAN标签的报文的转发过程。
下面结合具体实施例,对本申请提供的技术方案进行详细说明。应理解,下文中所述的“第一”、“第二”等序数词仅起到区分对象的目的,并不意味或暗示着某种顺序或主次关系等。
首先,参照图2所示,为本申请实施例列举的适用于本申请的网络架构图,该网络中包括在宿主机(例如服务器)上创建的多台虚拟机,这些虚拟机既可以包括虚拟主机,也可以包括VNF网元;该网络中还包括分别管理不同虚拟机的中继(TRUNK)类型的抽象网络,本文中简称为TRUNK网络,其中,TRUNK网络可以理解为能够允许携带不同VLAN标签的报文通过的虚拟设备,本申请中通过在虚拟设备中配置报文处理规则,以便分别针对携带有VLAN标签的报文以及去掉VLAN标签之后的报文进行有效处理;该网络中还包括物理网卡、以及物理交换机,其中,物理网卡分别与不同的虚拟设备相连接,物理网卡可以将来自虚拟设备的报文转发至物理交换机,以便物理交换机进一步转发报文,并且,物理网卡也可以接收来自物理交换机的报文,并将报文转发至对应的虚拟设备上接入的虚拟机上。
结合上述图2所示的网络架构图,对本申请实施例中报文处理过程进行详细说明。
在介绍具体的报文处理流程之前,首先对虚拟设备中配置的报文处理规则进行说明。本申请实施例中,在创建虚拟设备时,虚拟设备中可以预置至少两种参数:一种为默认VLAN标签,另一种为允许放行的VLAN标签列表。其中,虚拟设备可以放行携带有默认VLAN标签的报文,也可以放行携带有上述VLAN标签列表中的VLAN标签的报文通过。
需要说明的是,上述虚拟设备中配置的至少两种参数并不是一成不变的,实际应用中还可以根据虚拟机的创建情况,来调整默认VLAN标签、以及允许放行的VLAN标签列表,例如,可以根据VNF网元的不同VLAN子端口上配置的VLAN情况,来调整允许放行的VLAN标签列表中包含的VLAN标签,具体实施过程,本申请不再展开说明。
接下来,分别以虚拟机向外部发送报文的过程、以及虚拟机接收来自外部的报文的过程为例,对虚拟设备进行报文处理的过程进行详细说明。
当虚拟机向外部发送报文时,虚拟设备进行报文处理的过程参照图3所示:
步骤301、虚拟设备接收虚拟机发送的第一报文。
这里,虚拟机发送的第一报文至少存在两种情况:
第一种情况为虚拟设备接收到的第一报文中不携带有VLAN标签;
第二种情况为:虚拟设备接收到的第一报文中携带有VLAN标签。
步骤302、虚拟设备判断第一报文中是否携带有VLAN标签。
结合步骤301可知,虚拟设备接收到的第一报文的情况有至少两种,故首先可以判断第一报文中是否携带有VLAN标签,其中:
若步骤302的判断结果为否,则进一步执行步骤303。
若步骤302的判断结果为是,则进一步执行步骤304。
步骤303、在第一报文中配置预设的默认VLAN标签,并放行携带有默认VLAN标签的第一报文。
步骤304、判断第一报文中携带的VLAN标签是否包含在预设的允许放行的VLAN标签列表中。
其中,若步骤304的判断结果为否,则说明第一报文不符合放行条件,进一步执行步骤305;若步骤304的判断结果为是,则说明第一报文符合放行条件,进一步执行步骤306。
步骤305、丢弃第一报文。
步骤306、放行第一报文。
上述方式中,通过在虚拟装置上配置默认VLAN标签、以及允许放行的VLAN标签列表,这样,既可以满足虚拟主机发送报文的需求,也可以满足VNF网元发送报文的需求。其中,针对虚拟主机发送的报文一般都不会携带VLAN标签,报文通过虚拟设备时可以打上默认VLAN标签,从而满足报文隔离的需求;针对VNF网元,当VNF网元上创建了不同VLAN子端口时,由于VNF网元上的不同VLAN子端口发出的报文一般都携带有不同的VLAN标签,本申请通过设置放行的VLAN标签列表,虚拟设备也可以允许VNF网元发出的携带不同VLAN标签的报文通过,从而不影响VNF网元的报文转发能力。
其中,一种可能的实施方式中,上述虚拟设备中预先配置的默认VLAN标签与允许放行的VLAN标签列表中的VLAN标签不相同。之所以将默认VLAN标签与VLAN标签列表进行区分,是考虑到有些虚拟机发出的报文并不携带VLAN标签,而是报文到达虚拟设备之后,由虚拟设备为报文打上默认VLAN标签然后再发送出去,那么虚拟机发出的报文到达接收端时,为保证与发送端发出的报文的一致性,应该将报文进行去除VLAN标签的处理。鉴于这种需求,如果允许放行的VLAN列表中包含的VLAN标签与默认VLAN标签存在重复的VLAN标签,那么在为报文去除标签时可能会存在误操作的现象,例如误将VNF网元发出的已携带有VLAN标签的报文进行去标签处理。故此,本申请中默认VLAN标签与允许放行的VLAN标签列表中的VLAN标签可以配置为不相同的。
进一步地,当虚拟机接收来自外部的报文时,虚拟设备进行报文处理的过程参照图4所示:
步骤401、虚拟设备接收物理网卡转发的第二报文。
这里,由物理网卡转发的第二报文可以是其它虚拟设备上接入的虚拟机发送的报文。其中,其它虚拟设备与上述虚拟设备既可以是创建在同一宿主机上的虚拟设备,也可以是创建在不同宿主机上的虚拟设备。
步骤402、虚拟设备判断第二报文中是否携带有VLAN标签。
若步骤402的判断结果为否,即检测到第二报文中不携带有VLAN标签,则执行步骤403;
若步骤402的判断结果为是,即检测到第二报文中携带有VLAN标签,则执行步骤404。
步骤403、虚拟设备丢弃第二报文。
步骤404、虚拟设备判断第二报文中携带的VLAN标签是否包含在允许放行的VLAN标签列表中。
若步骤404的判断结果为是,即第二报文中携带的VLAN标签包含在允许放行的VLAN标签列表中时,则执行步骤405;
若步骤404的判断结果为否,即第二报文中携带的VLAN标签不包含在允许放行的VLAN标签列表中时则执行步骤406。
步骤405、虚拟设备放行第二报文。
步骤406、虚拟设备判断第二报文中携带的VLAN标签是否与默认VLAN标签一致。
若步骤406的判断结果为是,即第二报文中携带的VLAN标签与默认VLAN标签一致时,执行步骤407;
若步骤406的判断结果为否,即第二报文中携带的VLAN标签与默认VLAN标签不一致时,执行步骤408。
步骤407、虚拟设备去掉第二报文中携带的VLAN标签,并放行去掉VLAN标签之后的第二报文。
这里,结合图3所示的报文处理流程可知,报文中携带的VLAN标签实际上是报文通过虚拟设备发送到物理网卡的过程中,由虚拟设备为报文贴上的默认VLAN标签,故在报文传输到接收端时,需要将这类携带有默认VLAN标签的报文进行去除标签的处理,以便保证和最初发出的报文的一致性。故本申请中,虚拟设备可以在去掉第二报文中携带的VLAN标签之后,再放行去掉VLAN标签之后的第二报文。
步骤408、虚拟设备丢弃第二报文。
由图4所示的报文处理流程可知,当有报文从物理网卡进入虚拟化环境时,虚拟设备同样可以基于预先配置的默认VLAN标签、以及允许放行的VLAN标签列表对报文进行处理,将符合允许放行的条件的报文进一步转发至虚拟化环境中的虚拟机。从而可以兼容虚拟主机以及VNF网元发送的报文的特点。
此外,对本申请中虚拟机之间进行报文交互的具体场景进行示例性说明。
场景一:创建在同一宿主机上的不同虚拟机之间进行报文交互。这里,不同虚拟机可以是创建在同一宿主机上、但归属于不同的虚拟设备上的虚拟机。
场景二:创建在不同宿主机上的不同虚拟机之间进行报文交互。
其中,在上述两种场景下,虚拟设备在接收到报文之后,均可以按照上述图3以及图4所示的报文处理流程,基于预先配置的默认VLAN标签、以及允许放行的VLAN标签列表对报文进行处理,以便决策是否允许放行报文。并且,虚拟设备可以将允许放行的报文通过物理网卡、以及物理交换机转发至其它宿主机,也可以将允许放行的报文通过物理网卡转发至同一宿主机上的其它虚拟设备。
一种可能的实施方式中,虚拟设备在确定报文允许放行并转发报文的过程中,可以基于报文中携带的目的地址,来确认报文转发到的下一跳节点。具体的,虚拟设备上可以记录有接入虚拟设备的虚拟机的第一地址列表,当报文中携带的目的地址不在第一地址列表中,则虚拟设备将报文进一步转发到物理网卡上。其中上述目的地址可以为虚拟机的互联网协议(Internet Protocol,IP)地址和/或虚拟机的媒体访问控制(Media AccessControl,MAC)地址。
进一步地,报文在转发到物理网卡之后,物理网卡上记录有在物理网卡对应的宿主机上创建的全部虚拟机的第二地址列表,如果报文中携带的目的地址不在第二地址列表上,那么物理网卡将报文转发给物理交换机,由物理交换机将报文转发至其它宿主机;如果报文中携带的目的地址在第二地址列表上,则物理网卡将报文转发给同一宿主机上与目的地址对应的其它虚拟设备。
结合以上所述的报文交互过程,下面列举一个具体应用场景,对本申请的报文交互以及报文处理过程进行进一步说明。
参照图5中列举的一种网络架构图,其中,服务器1和服务器2中分别配置有物理网卡,物理网卡与物理交换机连接,以便服务器1与服务器2可以通过物理交换机进行通信。本应用场景中,在服务器1中创建两个TRUNK网络A1、以及TRUNK网络A2。其中,TRUNK网络A1、以及TRUNK网络A2也可以理解为能够允许携带不同VLAN标签的报文通过的虚拟设备B1、以及虚拟设备B2。其中,后文中为便于描述和理解,用虚拟设备B1来表示TRUNK网络A1,用虚拟设备B2来表示TRUNK网络A2。其中,虚拟设备B1通过虚拟网卡分别与VNF网元C1、以及虚拟主机D1连接,虚拟设备B2通过虚拟网卡与虚拟主机D2连接。
在服务器2中创建TRUNK网络A3、以及TRUNK网络A4。这里,TRUNK网络的作用与上述服务器1中创建的TRUNK网络的作用相同。其中,后文中为便于描述和理解,用虚拟设备B3来表示TRUNK网络A3,用虚拟设备B4来表示TRUNK网络A4。其中,虚拟设备B3通过虚拟网卡分别与VNF网元C2、以及虚拟主机D3连接,虚拟设备B4通过虚拟网卡与虚拟主机D4连接。
下面,针对图5所示的网络架构图,分别列举几种报文交互的情况。
假设网络中各通信单元的配置情况如下:
VNF网元C1中某一虚拟接口下创建了VLAN子端口,且VLAN子端口上配置了VLAN30;
虚拟设备B1配置了默认VLAN标签为VLAN10,允许放行的VLAN标签列表中记录了VLAN20至VLAN30;
虚拟设备B3与虚拟设备B1的配置相同;
虚拟设备B4中配置了默认VLAN标签为VLAN30,允许放行的VLAN标签列表中记录了VLAN10至VLAN20;
物理交换机的端口可以配置允许VLAN1至VLAN4094的报文通过。
情况1:VNF网元C1与虚拟主机D4之间的报文交互
虚拟设备B1接收到来自VNF网元C1的报文之后,识别出报文携带的VLAN标签为VLAN30,包含在允许放行的VLAN标签列表中。进一步地,虚拟设备B1转发报文到物理网卡,物理网卡转发报文到物理交换机。进一步地,物理交换机可以将报文转发到服务器2中物理网卡中,服务器2的物理网卡将报文转发到虚拟设备B4。虚拟设备B4接收到报文之后,识别出报文中携带的VLAN标签(VLAN30)与虚拟设备B4配置的默认VLAN标签(VLAN30)一致,故虚拟设备B4将报文中携带的VLAN30剥掉,进一步转发至虚拟主机D4。
进一步地,虚拟主机D4收到报文之后可以向VNF网元C1发送应答报文,应答报文中不携带有VLAN标签,应答报文经过虚拟设备B4时被贴上默认VLAN标签(VLAN30),进而转发到服务器2的物理网卡,由物理网卡送到物理交换机,进而由物理交换机转发到服务器1中,之后由服务器1的物理网卡转发到虚拟设备B1。由于VLAN30包含在虚拟设备B1中记录的允许放行的VLAN标签列表(VLAN20至VLAN30)内,故应答报文被虚拟设备B1放行后转发到VNF网元C1。
情况2:VNF网元C1与VNF网元C2之间的报文交互
虚拟设备B1接收到VNF网元C1发送的报文,报文中携带的VLAN标签为VLAN30,虚拟设备B1转发报文到物理网卡,物理网卡转发报文到物理交换机,物理交换机将报文转发到服务器2的物理网卡,服务器2的物理网卡将报文转发到虚拟设备B3,由于报文中携带的VLAN30包含在虚拟设备B3记录的允许放行的VLAN标签列表内,故虚拟设备B3将报文转发至VNF网元C2。其中,VNF网元C2中某一虚拟接口下创建了VLAN子端口,且VLAN子端口上配置了VLAN30。
进一步地,VNF网元C2收到报文之后可以发送应答报文,应答报文中携带有VLAN30,虚拟设备B3识别到应答报文中携带的VLAN30包含在允许放行的VLAN标签列表内,故虚拟设备B3将应答报文转发到服务器2的物理网卡,服务器2的物理网卡将应答报文转发到物理交换机,物理交换机将应答报文转发到服务器1的物理网卡,服务器1的物理网卡将应答报文送到虚拟设备B1,由于应答报文中携带的VLAN30包含在虚拟设备B1记录的允许放行的VLAN标签列表内,故虚拟设备B1将应答报文转发至VNF网元C1。
情况3:虚拟主机D1与虚拟主机D3之间的报文交互
虚拟设备B1接收到来自虚拟主机D1的报文,识别到报文中没有携带VLAN标签,为报文加上默认VLAN标签(VLAN10),并转发报文到服务器1的物理网卡,由服务器1的物理网卡转发报文到物理交换机,由物理交换机转发报文送到服务器2的物理网卡,再由服务器2的物理网卡转发到虚拟设备B3,其中,虚拟设备B3与虚拟设备B1的配置一致。由于VLAN 30与虚拟设备B3中记录的默认VLAN标签一致,故虚拟设备B3剥去报文中携带的VLAN标签后发送至虚拟主机D3。
进一步地,虚拟主机D3收到报文后可以发送应答报文,应答报文中没有携带VLAN标签。虚拟设备B3接收到应答报文之后,识别到应答报文中不携带VLAN标签,进而为应答报文贴上默认VLAN标签(VLAN10),进而转发到服务器2的物理网卡,由服务器2的物理网卡转发到物理交换机,由物理交换机转发到服务器1的物理网卡,再由服务器1的物理网卡转发到虚拟设备B1,由于应答报文中携带的VLAN10与虚拟设备B3记录的默认VLAN标签相同,故虚拟设备B1可以将应答报文中携带的VLAN10去掉后,转发至虚拟主机D1。
以上为本申请实施例列举的几种报文交互情况,实际应用时,同一服务器内不同虚拟设备所管理的虚拟机之间也可以进行上述报文交互过程,例如,VNF网元C1与虚拟主机D2之间进行报文交互,或者,VNF网元C2与虚拟主机D4之间进行报文交互等,本申请中不再展开说明。由此可见,采用本申请提供的报文处理方式,虚拟机之间进行报文交互时,可以兼容虚拟主机以及VNF网元发送的报文的特点,既可以有效进行报文隔离,也能够不限制虚拟机自身的报文转发能力。
基于同一申请构思,本申请实施例中还提供了与报文处理方法对应的报文处理装置,由于本申请实施例中的装置解决问题的原理与本申请实施例上述报文处理方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
参照图6所示,为本申请实施例提供的一种报文处理装置600的结构示意图,所述装置包括:接收模块601、以及处理模块602;其中:
接收模块601,用于接收虚拟机发送的第一报文;
处理模块602,用于判断所述第一报文中是否携带有虚拟局域网VLAN标签;若判断结果为是,则在检测到所述第一报文中携带的VLAN标签包含在预设的允许放行的VLAN标签列表中时,放行所述第一报文;若判断结果为否,则在所述第一报文中配置预设的默认VLAN标签,并放行携带有所述默认VLAN标签的第一报文。
一种可能的实施方式中,所述处理模块602,还用于:
在判断出所述第一报文中携带有VLAN标签、且检测到所述第一报文携带的VLAN标签不包含在所述允许放行的VLAN标签列表中时,丢弃所述第一报文。
一种可能的实施方式中,所述默认VLAN标签与所述允许放行的VLAN标签列表中的VLAN标签不同。
一种可能的实施方式中,所述接收模块601,还用于:
接收物理网卡转发的第二报文;
所述处理模块602,还用于:
在检测到所述第二报文中携带有VLAN标签之后,若所述第二报文中携带的VLAN标签包含在所述允许放行的VLAN标签列表中,则放行所述第二报文;若所述第二报文中携带的VLAN标签与所述默认VLAN标签一致,去掉所述第二报文中携带的VLAN标签,并放行去掉VLAN标签之后的第二报文。
一种可能的实施方式中,所述处理模块602,还用于:
当检测到所述第二报文中不携带有VLAN标签,或者,所述第二报文中携带的VLAN标签不包含在所述允许放行的VLAN标签列表中、且所述第二报文中携带的VLAN标签与所述默认VLAN标签不一致时,丢弃所述第二报文。
关于装置中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。
如图7所示,本申请实施例所提供的一种电子设备700的结构示意图,包括:处理器701、存储器702和总线703;
上述存储器702存储有上述处理器701可执行的机器可读指令,当电子设备700运行时,上述处理器701与上述存储器702之间通过总线703通信,上述机器可读指令被上述处理器701执行时执行如下处理:
接收虚拟机发送的第一报文;
判断所述第一报文中是否携带有虚拟局域网VLAN标签;
若判断结果为是,则在检测到所述第一报文中携带的VLAN标签包含在预设的允许放行的VLAN标签列表中时,放行所述第一报文;
若判断结果为否,则在所述第一报文中配置预设的默认VLAN标签,并放行携带有所述默认VLAN标签的第一报文。
一种可能的实施方式中,处理器701还可以执行如下处理:
在判断出所述第一报文中携带有VLAN标签、且检测到所述第一报文携带的VLAN标签不包含在所述允许放行的VLAN标签列表中时,丢弃所述第一报文。
一种可能的实施方式中,所述默认VLAN标签与所述允许放行的VLAN标签列表中的VLAN标签不同。
另一种可能的实施方式中,处理器701还可以执行如下处理:
接收物理网卡转发的第二报文;
在检测到所述第二报文中携带有VLAN标签之后,若所述第二报文中携带的VLAN标签包含在所述允许放行的VLAN标签列表中,则放行所述第二报文;
若所述第二报文中携带的VLAN标签与所述默认VLAN标签一致,去掉所述第二报文中携带的VLAN标签,并放行去掉VLAN标签之后的第二报文。
另一种可能的实施方式中,处理器701还可以执行如下处理:
当检测到所述第二报文中不携带有VLAN标签,或者,所述第二报文中携带的VLAN标签不包含在所述允许放行的VLAN标签列表中、且所述第二报文中携带的VLAN标签与所述默认VLAN标签不一致时,丢弃所述第二报文。
其中,关于处理器701在执行报文处理方法时所执行的具体处理流程可以参照上述方法实施例中的描述,这里不再展开说明。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述报文处理方法的步骤。
具体地,该存储介质能够为通用的存储介质,如移动磁盘、硬盘等,该存储介质上的计算机程序被运行时,能够执行上述报文处理方法的步骤,从而可以将一种能够兼容携带有VLAN标签的报文以及不携带有VLAN标签的报文的报文处理方式应用到虚拟化环境中,使得虚拟机之间进行报文交互时,既可以有效进行报文隔离,也能够不限制虚拟机自身的报文转发能力。
本申请实施例所提供的报文处理方法的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行上述方法实施例中所述的报文处理方法,具体实现可参见方法实施例,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (12)
1.一种报文处理方法,其特征在于,包括:
接收虚拟机发送的第一报文;
判断所述第一报文中是否携带有虚拟局域网VLAN标签;
若判断结果为是,则在检测到所述第一报文中携带的VLAN标签包含在预设的允许放行的VLAN标签列表中时,放行所述第一报文;
若判断结果为否,则在所述第一报文中配置预设的默认VLAN标签,并放行携带有所述默认VLAN标签的第一报文。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
在判断出所述第一报文中携带有VLAN标签、且检测到所述第一报文携带的VLAN标签不包含在所述允许放行的VLAN标签列表中时,丢弃所述第一报文。
3.如权利要求1或2所述的方法,其特征在于,所述默认VLAN标签与所述允许放行的VLAN标签列表中的VLAN标签不同。
4.如权利要求3所述的方法,其特征在于,所述方法还包括:
接收物理网卡转发的第二报文;
在检测到所述第二报文中携带有VLAN标签之后,若所述第二报文中携带的VLAN标签包含在所述允许放行的VLAN标签列表中,则放行所述第二报文;
若所述第二报文中携带的VLAN标签与所述默认VLAN标签一致,去掉所述第二报文中携带的VLAN标签,并放行去掉VLAN标签之后的第二报文。
5.如权利要求4所述的方法,其特征在于,所述方法还包括:
当检测到所述第二报文中不携带有VLAN标签,或者,所述第二报文中携带的VLAN标签不包含在所述允许放行的VLAN标签列表中、且所述第二报文中携带的VLAN标签与所述默认VLAN标签不一致时,丢弃所述第二报文。
6.一种报文处理装置,其特征在于,包括:
接收模块,用于接收虚拟机发送的第一报文;
处理模块,用于判断所述第一报文中是否携带有虚拟局域网VLAN标签;若判断结果为是,则在检测到所述第一报文中携带的VLAN标签包含在预设的允许放行的VLAN标签列表中时,放行所述第一报文;若判断结果为否,则在所述第一报文中配置预设的默认VLAN标签,并放行携带有所述默认VLAN标签的第一报文。
7.如权利要求6所述的装置,其特征在于,所述处理模块,还用于:
在判断出所述第一报文中携带有VLAN标签、且检测到所述第一报文携带的VLAN标签不包含在所述允许放行的VLAN标签列表中时,丢弃所述第一报文。
8.如权利要求6或7所述的装置,其特征在于,所述默认VLAN标签与所述允许放行的VLAN标签列表中的VLAN标签不同。
9.如权利要求8所述的装置,其特征在于,所述接收模块,还用于:
接收物理网卡转发的第二报文;
所述处理模块,还用于:
在检测到所述第二报文中携带有VLAN标签之后,若所述第二报文中携带的VLAN标签包含在所述允许放行的VLAN标签列表中,则放行所述第二报文;若所述第二报文中携带的VLAN标签与所述默认VLAN标签一致,去掉所述第二报文中携带的VLAN标签,并放行去掉VLAN标签之后的第二报文。
10.如权利要求9所述的装置,其特征在于,所述处理模块,还用于:
当检测到所述第二报文中不携带有VLAN标签,或者,所述第二报文中携带的VLAN标签不包含在所述允许放行的VLAN标签列表中、且所述第二报文中携带的VLAN标签与所述默认VLAN标签不一致时,丢弃所述第二报文。
11.一种电子设备,其特征在于,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如权利要求1至5任一所述的报文处理方法的步骤。
12.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求1至5任一所述的报文处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811237693.0A CN109462535A (zh) | 2018-10-23 | 2018-10-23 | 一种报文处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811237693.0A CN109462535A (zh) | 2018-10-23 | 2018-10-23 | 一种报文处理方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109462535A true CN109462535A (zh) | 2019-03-12 |
Family
ID=65608209
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811237693.0A Pending CN109462535A (zh) | 2018-10-23 | 2018-10-23 | 一种报文处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109462535A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113285877A (zh) * | 2020-02-20 | 2021-08-20 | 华为技术有限公司 | 一种报文转发的控制方法及相关装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101119276A (zh) * | 2007-08-22 | 2008-02-06 | 杭州华三通信技术有限公司 | 一种实现vlan内下行用户隔离的方法及设备 |
CN103051529A (zh) * | 2012-12-20 | 2013-04-17 | 华为技术有限公司 | 一种报文的处理方法和装置 |
US20160301630A1 (en) * | 2015-04-08 | 2016-10-13 | Infinera Corp. | Automatic network-wide service configuration system and method |
CN108011802A (zh) * | 2017-12-14 | 2018-05-08 | 锐捷网络股份有限公司 | 一种报文发送方法及二三层网络设备 |
-
2018
- 2018-10-23 CN CN201811237693.0A patent/CN109462535A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101119276A (zh) * | 2007-08-22 | 2008-02-06 | 杭州华三通信技术有限公司 | 一种实现vlan内下行用户隔离的方法及设备 |
CN103051529A (zh) * | 2012-12-20 | 2013-04-17 | 华为技术有限公司 | 一种报文的处理方法和装置 |
US20160301630A1 (en) * | 2015-04-08 | 2016-10-13 | Infinera Corp. | Automatic network-wide service configuration system and method |
CN108011802A (zh) * | 2017-12-14 | 2018-05-08 | 锐捷网络股份有限公司 | 一种报文发送方法及二三层网络设备 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113285877A (zh) * | 2020-02-20 | 2021-08-20 | 华为技术有限公司 | 一种报文转发的控制方法及相关装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11563669B2 (en) | Method for implementing network virtualization and related apparatus and communications system | |
US10938727B2 (en) | Method and device for offloading processing of data flows | |
US10678746B2 (en) | Virtual network optimizing a physical network | |
CN106953788B (zh) | 一种虚拟网络控制器及控制方法 | |
CN105610632B (zh) | 一种虚拟网络设备及相关方法 | |
CN112470436A (zh) | 使用srv6和bgp的多云连通性 | |
CN104320350B (zh) | 用于提供基于信用的流控制的方法及系统 | |
US20180219762A1 (en) | Seamless service function chaining across domains | |
EP3225014B1 (en) | Source ip address transparency systems and methods | |
CN109952746A (zh) | 在业务链网络环境中集成物理和虚拟网络功能 | |
CN109361606B (zh) | 一种报文处理系统及网络设备 | |
CN104734931A (zh) | 一种虚拟网络功能间链路建立方法及装置 | |
CN109088820B (zh) | 一种跨设备链路聚合方法、装置、计算装置和存储介质 | |
EP2760174A1 (en) | Virtual private cloud access authentication method and related apparatus | |
CN108900384A (zh) | 网络流量监控方法、装置及系统、计算机可读存储介质 | |
US10050906B2 (en) | Virtual node having separate control and data planes | |
CN105791175A (zh) | 软件定义网络中控制传输资源的方法及设备 | |
CN103945445A (zh) | 一种测试接入控制器性能的方法及装置 | |
US11165653B2 (en) | Node discovery mechanisms in a switchless network | |
CN111801911A (zh) | 业务功能链拥塞跟踪 | |
CN111711536A (zh) | 一种云架构下防火墙测试环境构建方法 | |
Katsikas et al. | Metron: High-performance NFV service chaining even in the presence of blackboxes | |
CN109462535A (zh) | 一种报文处理方法及装置 | |
CN104838624B (zh) | 一种控制业务数据在虚拟网络中转发的方法、装置及系统 | |
CN112532506B (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190312 |
|
RJ01 | Rejection of invention patent application after publication |