CN110798541B - 接口共享、报文转发方法、装置、电子设备及存储介质 - Google Patents
接口共享、报文转发方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN110798541B CN110798541B CN201911056247.4A CN201911056247A CN110798541B CN 110798541 B CN110798541 B CN 110798541B CN 201911056247 A CN201911056247 A CN 201911056247A CN 110798541 B CN110798541 B CN 110798541B
- Authority
- CN
- China
- Prior art keywords
- interface
- virtual
- physical
- mac address
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2101/00—Indexing scheme associated with group H04L61/00
- H04L2101/60—Types of network addresses
- H04L2101/618—Details of network addresses
- H04L2101/622—Layer-2 addresses, e.g. medium access control [MAC] addresses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供一种接口共享、报文转发方法、装置、电子设备及存储介质,接口共享方法包括:根据物理接口共享指令,将目标物理接口共享至目标虚拟设备,建立与该目标虚拟设备对应的虚拟接口,并在物理设备的本地转发表中记录目标物理接口、虚拟接口、目标虚拟设备的对应关系,以在接收到目的设备包括目标虚拟设备的报文时,向虚拟接口传输报文。通过本实施例提供的接口共享方法,可以实现将一个物理接口共享至任意虚拟设备,每一个虚拟设备可以最多拥有与物理设备同样多的接口数量,实现了接口数量的扩展,可以改善物理设备接口资源不足、无法满足虚拟设备对接口的需求等问题。
Description
技术领域
本申请涉及通信技术领域,具体涉及一种接口共享、报文转发方法、装置、电子设备及存储介质。
背景技术
多租户技术是云计算中一种软件架构技术,通过虚拟化技术将一台物理设备划分成多台逻辑设备,每台逻辑设备就称为一台MDC(Multitenant Device Context,多租户设备环境)。对于用户来说,每台MDC都可以看作是一台独立的设备,每台MDC拥有自己专属的软硬件资源,独立运行,独立转发,独立提供业务,创建、启动、重启、删除一台MDC,不会影响其它MDC的运行。对于管理者来说,当有新的分支机构加入时,可通过划分MDC,来节省购置新网络设备和网络设备硬件升级的开销,提高现有网络资源利用率,同时,多台MDC集成在一台物理设备上,又有效的减少了管理和维护成本。
当物理设备的硬件资源足够富裕时,可以虚拟化出很多台MDC,将接口分配给虚拟的MDC以满足MDC的接口需求,但是硬件上的接口资源是有限的,当物理设备需要虚拟化出多台MDC时,或者每一台MDC需要多个接口时,物理接口无法满足虚拟设备的接口需求。
发明内容
有鉴于此,本发明的目的在于提供一种接口共享、报文转发方法、装置、电子设备及存储介质,以改善现有的物理设备的接口资源不足、无法满足MDC的接口需求等问题。
第一方面,本发明提供了一种接口共享方法,该接口共享方法应用于物理设备,所述物理设备上包括一个或多个虚拟设备,所述方法包括:接收物理接口共享指令,所述物理接口共享指令包括被共享的目标物理接口的接口索引和共享所述目标物理接口的目标虚拟设备对应的标识;依据所述目标虚拟设备对应的标识,为所述目标虚拟设备创建对应的虚拟接口;在本地转发表中记录所述目标物理接口、虚拟接口、目标虚拟设备的对应关系,以在接收到目的设备包括所述目标虚拟设备的报文时,向所述虚拟接口传输所述报文。
可选的,在本地转发表中存储所述目标物理接口、虚拟接口、目标虚拟设备的对应关系,包括:依据所述目标物理接口的接口索引获取所述目标物理接口的MAC地址;依据所述目标物理接口的MAC地址,确定所述虚拟接口的MAC地址;在所述单播转发表中记录所述目标物理接口的接口索引和各所述虚拟接口的MAC地址、与所述虚拟接口的接口索引和所述目标虚拟设备的标识的对应关系;在所述广播转发表中记录所述目标物理接口的接口索引、与所述虚拟接口的接口索引和所述目标虚拟设备的标识的对应关系。
第二方面,本发明提供了一种报文转发方法,所述报文转发方法应用于存储有本地转发表的物理设备,所述物理设备包括一个或多个物理接口和一个或多个虚拟设备,针对所述一个或多个虚拟设备中的第一虚拟设备,所述物理设备还包括所述第一虚拟设备对应的虚拟接口,所述本地转发表中记录所述第一物理接口、虚拟接口、第一虚拟设备的对应关系;所述方法包括:当所述第一物理接口接收到报文时,根据所述报文的MAC地址,在确定所述报文的目的设备包括所述第一虚拟设备时,根据所述第一物理接口的接口索引在转发表中获得对应的第一虚拟设备标识;向所述虚拟接口发送所述报文,以将所述报文传输至所述第一虚拟设备。
可选的,所述本地转发表包括单播转发表,所述单播转发表记录有所述第一物理接口的接口索引和虚拟接口的MAC地址、与所述虚拟接口的接口索引和所述第一虚拟设备的标识的对应关系;所述根据所述报文的目的MAC地址,在确定所述报文的目的设备包括所述第一虚拟设备时,根据所述第一物理接口的接口索引在所述本地转发表中获得对应的第一虚拟设备的标识的步骤,包括:根据所述报文的目的MAC地址确定所述报文为单播报文;根据所述第一物理接口的接口索引、所述目的MAC地址在所述单播转发表中获得对应的所述第一虚拟设备的标识。
可选的,所述广播转发表记录有所述第一物理接口的接口索引与所述虚拟接口的接口索引和所述第一虚拟设备的标识的对应关系;所述根据所述报文的目的MAC地址,在确定所述报文的目的设备包括所述第一虚拟设备时,根据所述第一物理接口的接口索引在所述本地转发表中获得对应的第一虚拟设备的标识的步骤包括:根据所述报文的目的MAC地址确定所述报文为广播报文;根据所述第一物理接口的接口索引在所述广播转发表中获得目的设备的标识,所述目的设备包括所述第一虚拟设备以及除所述第一虚拟设备之外的第三虚拟设备;则所述报文转发方法还包括:向所述第三虚拟设备发送所述广播报文。
第三方面,本发明还提供了一种接口共享装置,所述接口共享装置用以执行上述的接口共享方法;所述接口共享装置包括:获取模块,用以接收物理接口共享指令,所述物理接口共享指令包括被共享的目标物理接口的接口索引和共享所述目标物理接口的目标虚拟设备对应的标识;创建模块,用以依据所述目标虚拟设备对应的标识,为所述目标虚拟设备创建对应的虚拟接口;配置模块,用以在本地转发表中记录所述目标物理接口、虚拟接口、目标虚拟设备的对应关系,以在接收到目的设备包括所述目标虚拟设备的报文时,向所述虚拟接口传输所述报文。
第四方面,本发明提供了一种报文转发装置,所述报文转发装置用于执行上述的报文转发方法,所述报文转发装置包括:查询模块,用以当所述第一物理接口接收到报文时,根据所述报文的目的MAC地址,在确定所述报文的目的设备包括所述第一虚拟设备时,根据所述第一物理接口的接口索引在所述本地转发表中获得对应的第一虚拟设备的标识;转发模块,用以向所述虚拟接口发送所述报文,以将所述报文传输至所述第一虚拟设备。
第五方面,本发明提供了一种存储介质,该存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述的接口共享方法或报文转发方法的步骤。
第六方面,本发明提供了一种电子设备,所述电子设备包括处理器,所述处理器用于运行计算计程序以执行上述的接口共享方法或报文转发方法的步骤。
相对于现有技术,本发明具有以下有益效果:
本实施例提供的接口共享、报文转发方法、装置、电子设备及存储介质,接口共享方法根据物理接口共享指令,将目标物理接口共享至目标虚拟设备,建立与该目标虚拟设备对应的虚拟接口,并在物理设备的本地转发表中记录目标物理接口、虚拟接口、目标虚拟设备的对应关系,以在接收到目的设备包括所述目标虚拟设备的报文时,向虚拟接口传输报文。通过本实施例提供的接口共享方法,可以实现将一个物理接口共享至任意虚拟设备,每一个虚拟设备可以最多拥有与物理设备同样多的接口数量,实现了接口数量的扩展,可以改善物理设备接口资源不足、无法满足虚拟设备对接口的需求等问题。
附图说明
图1示出了本申请实施例提供的一种多租户设备环境示意图。
图2示出了本申请实施例提供的一种物理设备示意图。
图3示出了本申请实施例提供的另一种物理设备示意图。
图4示出了本申请实施例提供的另一种物理设备示意图。
图5示出了本申请实施例提供的接口共享方法的流程示意图。
图6示出了本申请实施例提供的另一种接口共享方法的流程示意图。
图7示出了本申请实施例提供的另一种接口共享方法的流程示意图。
图8示出了本申请实施例提供的另一种接口共享方法的流程示意图。
图9示出了本申请实施例提供的另一种接口共享方法的流程示意图。
图10示出了报文转发的示意图。
图11示出了本申请实施例提供的一种报文转发方法的流程示意图。
图12示出了本申请实施例提供的另一种报文转发方法的流程示意图。
图13示出了本申请实施例提供的另一种报文转发方法的流程示意图。
图14示出了本申请实施例提供的另一种报文转发方法的流程示意图。
图15示出了本实施例提供的接口共享装置的功能模块示意图。
图16示出了本实施例提供的报文转发装置的功能模块示意图。
图17示出了本实施例提供的电子设备的示意图。
图标:300-接口共享装置;310-获取模块;320-配置模块;400-报文转发装置;410-查询模块;420-转发模块;500-电子设备;510-处理器;520-总线;530-存储器;540-物理接口。
具体实施方式
为使本发明的上述目的、特征和优点能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。
显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
多租户设备环境(Multitenant Device Contexts,MDC)技术是云计算中一种软件架构技术,通过虚拟化技术将一台物理设备划分成多台逻辑设备,该逻辑设备可以被称为MDC、用户MDC、虚拟MDC或虚拟设备。下文中在无特殊说明的前提下,统称该逻辑设备为MDC。对于用户来说,每台MDC都可以看作是一台独立的设备,不会影响其它MDC的运行。
MDC的应用十分广泛,比如提供设备出租和业务托管,应用于实验教学等。例如,以图1所示的场景进行距离说明,LAN 1、LAN 2和LAN 3是三个不同公司的局域网,它们通过同一台物理设备Device连接到外网。通过虚拟化技术,能将一台设备虚拟成三台设备使用。
具体做法是,在物理设备Device上创建三台MDC:Device 1、Device 2和Device 3,分别负责LAN 1、LAN 2、LAN 3的网络接入和控制。LAN 1、LAN 2、LAN 3的网络管理员可以分别登录到各个网络的MDC进行配置、保存、重启等操作,不会影响其它网络的使用。例如,当网络管理员相对LAN1进行配置时,可通过登陆Device1(MDC)进行相应配置。综上可知,通过在一个物理设备上针对每个LAN设置对应的MDC等效于分别针对LAN 1、LAN 2和LAN 3设置各自的网关Gateway 1、Gateway 2、Gateway 3以实现Internet的接入等操作。
对于物理设备而言,其本身可以被认为是一台MDC,即缺省MDC或管理MDC,该管理MDC可以用于为该物理设备上的MDC分配资源,例如分配物理接口。当用户登录物理设备时,亦可以被理解为登录了管理MDC。管理MDC可以创建/删除其他MDC,例如图1中的Device1、Device2及Device3。但是对于图1中的Device1来说,其并不可以再创建/删除新的MDC,意即对于MDC其并不具备创建其他MDC的功能。因此对于上文所述的MDC,其相对于管理MDC也可以被称为非缺省MDC。
一般而言,物理设备可以在性能允许的情况下新建多台MDC,每一台MDC均可以独立运行、独立转发,但对于每一台MDC而言,向外接收、发送报文均需要通过物理接口实现,在MDC数量较少时,可以将物理设备的物理接口对应分配给不同的MDC。
以图2所示的系统架构进行举例说明。图2所示的物理设备具有3个物理接口:物理接口A、物理接口B及物理接口C,在物理设备中设置了3台MDC:MDC1、MDC2及MDC3,当每一台MDC仅需要1个物理接口时,可以将3个物理接口分别分配给3台MDC,以满足每一台MDC的接口需求。例如,物理接口A分配给MDC1,物理接口B分配给MDC2,物理接口C分配给MDC3,当物理接口A接收到报文时,即将该报文发送至MDC1,MDC1也可以通过物理接口A外发报文。
需要说明的是。虽然图2仅示出了每一个MDC对应一个物理接口,但在实际应用环境中,还可以根据MDC的接口需求以及物理设备的物理接口数量对物理接口进行分配,一个MDC可以对应多个物理接口,但是所有MDC的所对应的物理接口的总和应与物理接口数量总和相等。
当该物理设备虚拟设立了超过物理接口数量的MDC时或者当某一台MDC需要多个物理接口时,物理设备则可能无法满足每一台MDC的接口需求,以如图3所示,图3示出的物理设备虚拟了4台MDC,但该物理设备仅具有3个物理接口。该物理设备无法满足4台或更多MDC的接口需求,例如假设在现有的配置条件下,将物理接口C分配给MDC3与MDC4,当其他设备通过物理接口C向MDC4发送报文时,由于该报文包含的目的MAC地址为物理接口C的MAC地址,造成当物理接口C接收到一个目的MAC地址为其自身MAC地址的报文时,并不能够将报文正确的发送给MDC4,因此现有的物理接口无法支持同时分配给多个MDC使用。
基于上述技术问题,本申请提供了一种接口共享方法。该接口共享方法应用于物理设备,以将物理接口共享给虚拟接口,从而将物理接口共享虚拟MDC。
本申请实施例的技术方案通过为MDC分别配置虚拟接口,且各自的虚拟接口共享同一个物理接口,例如图4所示,为MDC3和MDC4分别建立虚拟接口E和虚拟接口F,然后将物理接口C共享给虚拟接口E、F,以实现将物理接口C共享给MDC3和MDC4,使得不同MDC可以通过各自虚拟接口与共享物理接口的对应关系。当将物理接口C被虚拟接口E、虚拟接口F共享时,同时建立物理接口C与虚拟接口E、物理接口C与虚拟接口F的连接关系,同时也建立虚拟接口E与虚拟接口F的连接关系。基于本实施例,同一个物理接口创建的虚拟接口,称为共享同一个物理接口的虚拟接口;分配了共享同一个物理接口的虚拟接口的虚拟设备,称为共享同一物理接口的虚拟设备。由于建立了虚拟接口与被该虚拟接口共享的物理接口的连接关系,因此虚拟设备可以通过虚拟接口与被该虚拟接口共享的物理接口之间传输报文。同理,共享同一个物理接口的虚拟接口之间也存在连接关系,因此共享同一个物理接口的虚拟设备之间逻辑互联,能够互相通信,可以实现虚拟设备通过虚拟接口传输报文,实现报文的收发,从而满足MDC的接口需求,改善物理设备的接口资源不足等问题。
例如图4所示,物理接口C共享给虚拟接口E、F,以实现将物理接口C共享给MDC3和MDC4,虚拟接口E与虚拟接口F即为共享同一物理接口C的虚拟接口;MDC3和MDC4即为共享同一物理接口C的虚拟设备。MDC3可以通过虚拟接口E收发报文,MDC4可以通过虚拟接口F收发报文,MDC3与MDC4之间也能够互相通信。
需要说明的是,图4所示的方案仅以将物理接口C共享至MDC3和MDC4为例进行说明,但并非对本方案的限定。本申请提供的接口共享方法可以将任意一个物理接口共享至任意一个或多个MDC,每一个MDC也可以拥有至多与物理接口的数量相同的虚拟接口,例如,图4所示的物理设备具有物理接口A、物理接口B、物理接口C,以MDC3为例,MDC3具有共享物理接口C的虚拟接口E,物理设备还可以将物理接口A、物理接口B均共享给MDC3,当该物理设备的每一个物理接口均共享至MDC3时,MDC3拥有的虚拟接口的接口数量等于物理设备的物理接口的数量。
参阅图5,图5示出了本申请实施例提供的接口共享方法的流程示意图,该接口共享方法应用于物理设备,该物理设备上包括一个或多个虚拟设备,本实施例提供的接口共享方法包括步骤110~步骤130。
步骤110:接收物理接口共享指令。
物理设备包括至少一个物理接口,该物理接口共享指令包括被共享的目标物理接口的接口索引和共享该目标物理接口的目标虚拟设备对应的标识。例如,若要将物理接口A共享给MDC1,则该物理接口共享指令包括物理接口A的接口索引和MDC1的标识。该物理接口共享指令可以是该管理MDC发送的指令,也可以是管理MDC接收的用户输入的指令,但不限于此。
步骤120:依据物理接口共享指令,为目标虚拟设备创建对应的虚拟接口。
根据物理接口共享指令,为该目标虚拟设备建立虚拟接口。一个目标物理接口可以对应共享给一台目标虚拟设备的一个虚拟接口,当该物理接口共享指令包含多个目标物理接口的接口索引时,则为该目标虚拟设备建立多个虚拟接口,建立的虚拟接口一一对应共享所述目标物理接口。例如物理接口共享指令包含3个目标物理接口的接口索引:接口索引1、接口索引2、接口索引3,此时为目标虚拟设备建立3个虚拟接口:虚拟接口1、虚拟接口2、虚拟接口3,在具体实现时,可以将接口索引1的目标物理接口共享给虚拟接口2,将接口索引2的目标物理接口共享给虚拟接口1,将接口索引3的目标物理接口共享给虚拟接口3。
步骤130:在本地转发表中记录目标物理接口、虚拟接口、目标虚拟设备的对应关系,以在接收到目的设备包括所述目标虚拟设备的报文时,向虚拟接口传输报文。
在本申请实施例中,创建虚拟接口是为该虚拟接口申请或创建一存储空间,用以存储该虚拟接口的相关信息,具体的,可以存储该虚拟接口的索引、目标物理接口的索引。若要使该虚拟接口能够正常接收、转发或丢弃报文,还需要存储相应的转发信息。在一种可能的实现方式中,该物理设备内存储有本地转发表,当为目标虚拟设备创建对应的虚拟接口后,将目标物理接口、虚拟接口及目标虚拟设备的对应关系(即转发信息)记录在本地转发表中,当目标物理接口接收到的报文的目的设备包括该目标虚拟设备时,即可通过本地转发表查询对应的关系,将该报文传输至该虚拟接口,以达到通过虚拟接口接收报文并向目标虚拟设备发送报文的效果。
本实施例提供的接口共享方法,根据物理接口共享指令,将目标物理接口共享至目标虚拟设备,建立与该目标虚拟设备对应的虚拟接口,并在物理设备的本地转发表中记录目标物理接口、虚拟接口、目标虚拟设备的对应关系,以在接收到目的设备包括所述目标虚拟设备的报文时,向虚拟接口传输报文。通过本实施例提供的接口共享方法,可以实现将一个物理接口共享给虚拟接口,进行实现将物理接口共享给拥有虚拟接口的虚拟设备,每一个虚拟设备可以最多拥有与物理设备同样多的接口,实现了接口数量的扩展,可以改善物理设备接口资源不足、无法满足虚拟设备对接口的需求等问题。
在一种可能的实现方式中,引入接口索引的概念,以实现MDC、虚拟接口以及物理接口的对应关系,可选地,在图5的基础上,参阅图6,步骤120包括以下子步骤:
步骤120-1:依据物理接口共享指令,为虚拟接口分配接口索引。
依据物理接口共享指令,在创建虚拟接口的同时为虚拟接口分配接口索引,对于虚拟接口的接口索引分配没有限制,选取当前物理设备可用的接口索引即可。例如,当前物理设备的3个物理接口的接口索引分别为11、12、13,则为虚拟接口分配或确定的索引可以为14或15等等,本实施例对此不作限定。
由于虚拟接口是基于目标物理接口而存在的,因此每一个虚拟接口与一个目标物理接口具有对应关系,每个虚拟接口的接口索引与目标物理接口的接口索引也具有对应关系,该目标物理接口可以被称为宿主口,该虚拟接口可以被称为寄生口。
由前文可知,创建虚拟接口的同时会为该虚拟接口分配索引,而创建虚拟接口是为该虚拟接口申请或创建一存储空间,用以存储该虚拟接口的相关信息,具体的,可以存储该虚拟接口的索引、目标物理接口的索引,从而体现两个接口索引的对应关系。因此,创建虚拟接口并分配接口索引后,即可建立虚拟接口的接口索引与目标物理接口的接口索引的对应关系。因此,在获取到虚拟接口的接口索引后,可以获取被该虚拟接口共享的物理接口的接口索引。
而虚拟接口为一虚拟设备的接口,因此物理接口与虚拟设备与具有对应关系。
步骤120-2:将虚拟接口的接口索引存储至接口查询表。
创建虚拟接口是为该虚拟接口申请或创建一存储空间,用以存储该虚拟接口的相关信息,在步骤120-2中,该相关信息包括虚拟接口的接口索引。需要说明的是,在后续的过程中,还会有其他信息被作为相关信息存储至该接口查询表中,例如该虚拟接口的MAC地址、对应的虚拟设备的标识,目标物理接口的接口索引等等。
需要说明的是,若物理设备的存储空间不足,则有可能无法申请到相应的存储空间,则物理接口共享失败。
为该虚拟接口创建或申请到存储空间后,则需要对该虚拟接口建立虚拟接口、目标物理接口、目标虚拟设备的对应关系,以完成物理接口的共享。于本实施例中,在图5的基础上,请参阅图7,步骤130包括以下子步骤:
步骤130-1:依据目标物理接口的接口索引获取目标物理接口的MAC地址。
物理设备维护有接口查询表,该接口查询表中可以包括接口索引与接口控制块的对应关系。每一个接口对应的接口控制块存储有该接口的接口索引以及其他相关信息,例如该接口的MAC地址,接口角色信息、报文转发函数指针等等。
需要说明的是,接口控制块存储有接口的接口角色信息,对于物理接口而言,物理接口可以被共享给虚拟接口,物理接口的接口角色信息可以为宿主口,或者父接口,若物理接口未被共享,则物理接口的接口角色信息可以为普通接口;对于虚拟接口而言,虚拟接口是基于宿主口(物理接口)而存在的,虚拟接口的接口角色信息可以为寄生口,或者子接口。
还需要说明的是,由于一个目标物理接口可能会被共享给多个虚拟设备,因此目标物理接口仅需在第一次被共享时修改其接口角色信息,在为更多虚拟设备创建虚拟接口时,该目标物理接口的接口角色信息已经被修改为宿主口或者父接口,无须重复修改。
于本实施例中,普通接口的发送函数与共享接口的报文发送函数流程不同。当接口为普通接口时,例如接口角色信息为普通接口,其在进行报文转发时即调用普通接口的报文发送函数,当接口为共享接口时,例如,接口角色信息为宿主口或寄生口,其在进行报文转发时即调用共享接口的报文发送函数。
普通接口的报文发送函数在完成发送相关的准备后直接调用驱动程序将报文发送,而共享接口的报文发送函数则不同,首先需要判断报文是不是广播报文,如果不是广播报文,则判断报文目的地址是不是本设备内共享该目标物理接口的MDC的地址,或者说本设备内共享该目标物理接口的虚拟接口的地址。如果报文的目的地址不是本设备内共享该目标物理接口的MDC地址,则需要将当前的接口索引改为该虚拟接口对应的物理接口的接口索引(之所以改变接口索引是因为驱动程序只能识别物理接口的接口索引),然后调用驱动发送报文。如果目的地址是本设备内共享该目标物理接口的MDC,由于共享物理接口时即建立了共享该同一物理接口的虚拟接口之间的连接,共享同一物理接口的虚拟设备之间可以互相通信,则将报文送入相应的MDC,无需调用相关驱动接口,无须通过物理接口进行报文的转发,直接通过共享同一物理接口的虚拟设备之间的连接关系实现设备内部转发。如果是广播报文,需要先将报文写入队列中(此时也需要将接口索引改为该共享接口对应的物理接口的接口索引,这样才能将所有的广播报文发送到每个由这个物理接口共享的MDC中),然后调用驱动将报文发送出去。
在一种可能的实现方式中,目标物理接口的MAC地址存储在目标物理接口的控制块中,根据目标物理接口的接口索引在接口查询表中查询该目标物理接口的控制块,进而获取该目标物理接口的MAC地址。
在一种可能的实现方式中,接口查询表可以哈希表的形式进行存储,针对每一个接口,以该接口的接口索引为key存储在该接口查询哈希表中,通过目标物理接口的接口索引,可以快速查询该目标物理接口的控制块,从而获取目标物理接口的MAC地址。
步骤130-2:依据目标物理接口的MAC地址,确定虚拟接口的MAC地址。
可选地,对于步骤130-2,可以采用不同的规则确定虚拟接口的MAC地址,下面给出一种确定虚拟接口的MAC地址的确定规则:虚拟接口的MAC地址第1个字节固定为A2,虚拟接口的MAC地址第2个字节可以是目标物理接口(即虚拟接口对应的宿主口)MAC地址的第5个字节。虚拟接口的MAC地址第3个字节是目标物理接口MAC地址的第6个字节。虚拟接口的MAC地址第4个字节是目标物理接口MAC地址第4个字节数值再加1,虚拟接口的MAC地址第5和第6个字节组合填入目标虚拟设备的标识,例如目标虚拟设备的ID。
显然通过步骤130-2获得的虚拟接口的MAC地址与目标物理接口的MAC地址具有对应关系。进而可以将该虚拟接口的MAC地址加入本地转发表中。
步骤130-3:在单播转发表中记录目标物理接口的接口索引和各虚拟接口的MAC地址、与虚拟接口的接口索引和目标虚拟设备的标识的对应关系;在广播转发表中记录目标物理接口的接口索引、与虚拟接口的接口索引和目标虚拟设备的标识的对应关系。
在一个实施例,单播转发表的具体形式如下表1所示。
表1
参见上文图6的实施例,将接口查询表中的虚拟接口的接口索引记录在单播转发表中。
可选地,物理设备的本地转发表包括单播转发表。
在报文转发流程中,单播报文包括确定的目的MAC地址,根据单播报文的目的MAC地址可以将该单播报文发送至确定的某一台设备(虚拟设备或物理设备)。具体的,该单播转发表中记录有目标物理接口的接口索引和各虚拟接口的MAC地址、与虚拟接口的接口索引和目标虚拟设备的标识的对应关系,当目标物理接口接收到单播报文时,若该单播报文的目的MAC地址为目标物理接口对应的虚拟设备上的虚拟接口的MAC地址,则根据目标物理接口的接口索引及虚拟单播报文的目的MAC地址可以在单播转发表中获得接收报文的接口标识和接收报文的设备标识,进而将该报文转发至对应的接口,实现单播报文的转发。
物理设备的本地转发表还可以包括广播转发表,则相应的,为了实现报文的广播,将目标物理接口的接口索引、与虚拟接口的接口索引和目标虚拟设备的标识的对应关系记录在广播转发表中。
在一个实施例,广播转发表的具体形式如下表2所示。
表2
Key | 接收报文的接口标识 | 接收报文的设备标识 |
目标物理接口的接口索引1 | 虚拟接口的接口索引1 | 目标虚拟设备的标识1 |
目标物理接口的接口索引1 | 虚拟接口的接口索引2 | 目标虚拟设备的标识2 |
目标物理接口的接口索引1 | 虚拟接口的接口索引3 | 目标虚拟设备的标识3 |
在报文转发流程中,广播报文的目的MAC地址通常不是某一接口的MAC地址,例如,一般地,广播报文的目的MAC地址为十六进制的FFFFFFFFFFFF,若某一设备接收到该广播报文,则需要向除接收到该广播报文的接口之外的所有本地接口发送该广播报文。因此对于目标物理接口而言,当目标物理接口接收到广播报文时,其还需要将广播报文发送到除该目标物理接口之外的所有物理接口、以及共享与该目标物理接口的所有虚拟设备(即与该目标物理接口对应的所有虚拟设备)。
因此,在广播转发表中记录目标物理接口的接口索引、与虚拟接口的接口索引和目标虚拟设备的标识的对应关系。当目标物理接口接收到广播报文时,根据目标物理接口的接口索引,在广播转发表中可以获得接收报文的接口标识以及接收报文的设备标识,然后为每一个接口复制一份该广播报文,并发送至该接口,将报文传输至其目的设备,完成广播报文的转发。
当确定虚拟接口的MAC地址,且在本地转发表中记录目标物理接口、虚拟接口、目标虚拟设备的对应关系后,还需将该虚拟接口的相关信息进行存储,在一种可能的实现方式中,在图7的基础上,请参阅图8,接口共享方法还包括:
步骤140:在接口查询表中记录目标虚拟接口的接口索引、目标虚拟接口的MAC地址及目标物理接口的接口索引。
物理设备维护有接口查询表,可选地,该接口查询表相对于物理设备而言为全局表,即该接口查询表存储有物理设备上所有的接口信息,包括物理接口和虚拟接口。当创建完虚拟接口后,将虚拟接口的接口索引、虚拟接口的MAC地址、目标物理接口的接口索引等信息记录在接口查询表中。
需要说明的是,前文已经对接口查询表进行了介绍,在此不再赘述。
在一个实施例,接口查询表的具体形式如下表3所示。
表3
在一种可能的实现方式中,每一个接口对应的接口控制块用以存储该接口的接口索引以及其他相关信息。具体的,针对一虚拟接口而言,在接口查询表中记录该虚拟接口的接口索引、该虚拟接口的MAC地址及该虚拟接口共享的物理接口的接口索引,可以通过将该虚拟接口的接口索引、该虚拟接口的MAC地址及该虚拟接口共享的物理接口的接口索引存储至该虚拟接口的控制块中实现。针对一物理接口而言,在接口查询表中记录该物理接口的接口索引、该物理接口的MAC地址,可以通过将该物理接口的接口索引、该物理接口的MAC地址存储至该物理接口的控制块中实现。在实际使用场景中,当虚拟设备的数量较多时,虚拟设备需要的接口数量也会增加,当虚拟设备的数量减少时,所需要的接口数量也会减少。一台物理设备可以根据需求建立多台虚拟设备,为每一台虚拟设备创建虚拟接口,同样地,在实际使用场景中也会根据实际需求删除虚拟设备,当虚拟设备被删除或者需要的接口数量减少时,需要删除相应的虚拟接口。参阅图9,本实施例提供的接口共享方法还包括以下步骤:
步骤150:接收虚拟接口删除指令。
虚拟接口删除指令包括待删除的目标虚拟接口的接口索引。例如,虚拟设备具有接口索引为14、15的两个虚拟接口,当虚拟设备不需要虚拟接口15时,用户即可发出虚拟接口删除指令,将虚拟接口15删除,虚拟接口删除指令中包含待删除的目标虚拟接口的接口索引。
步骤160:根据目标虚拟接口的接口索引获取目标虚拟接口的MAC地址以及目标虚拟接口对应的物理接口的接口索引。
根据目标虚拟接口的接口索引,在接口查询表中查询目标虚拟接口的MAC地址和目标虚拟接口的对应的物理接口的接口索引。
步骤170:删除单播转发表中记录的物理接口的接口索引和目标虚拟接口的MAC地址、与虚拟接口的接口索引和目标虚拟设备的标识的对应关系;删除广播转发表中记录的物理接口的接口索引、与目标虚拟接口的接口索引和目标虚拟设备的标识的对应关系。
依据物理接口的接口索引和目标虚拟接口的MAC地址,在单播转发表中删除记录的物理接口的接口索引和目标虚拟接口的MAC地址、与虚拟接口的接口索引和目标虚拟设备的标识的对应关系。
依据物理接口的接口索引及目标虚拟接口的接口索引,在广播转发表中记录的物理接口的接口索引、与目标虚拟接口的接口索引和目标虚拟设备的标识的对应关系。
步骤180:在接口查询表中删除目标虚拟接口的接口索引、目标虚拟接口的MAC地址及目标物理接口的接口索引。
将目标虚拟接口的单播转发表及广播转发表中存储的相关信息删除后,依据目标虚拟接口的接口索引在接口查询表中删除目标虚拟接口的接口索引、目标虚拟接口的MAC地址及目标物理接口的接口索引。例如,在一种可能的实现方式中,接口查询表可以哈希表的形式进行存储,每一个接口的控制块以该接口的接口索引为KEY存储在该接口查询哈希表中,以目标虚拟接口的接口索引为KEY在接口查询哈希表中查询对应的节点,并将该节点删除。即完成了目标虚拟接口的删除。
在接口查询表删除目标虚拟接口的相关信息后,该目标虚拟接口占用的存储空间和该目标虚拟接口占用的接口索引也随即被释放。
由于一个物理接口可能被共享给多个虚拟接口,因此,删除物理接口对应的多个虚拟接口中的一个不会对物理接口的接口角色信息产生影响,其接口角色信息仍然为宿主口或父接口,但当共享该物理接口的所有虚拟接口均被删除后,该物理接口便不再是共享接口,其接口角色信息会发生改变。因此,在删除了共享物理接口的最后一个虚拟接口之后,还需要将该物理接口的接口角色信息由宿主口或父接口重新配置为普通接口。
上述实施例对如何共享物理接口,包括建立、删除虚拟接口等进行了介绍,下面对配置了虚拟接口且该虚拟接口共享某一物理接口的物理设备的报文收发流程进行介绍。本申请实施例还提供了一种报文转发方法,该报文转发方法应用于存储有本地转发表的物理设备,物理设备包括一个或多个物理接口和一个或多个虚拟设备,针对一个或多个虚拟设备中的第一虚拟设备,物理设备还包括对应的一虚拟接口,本地转发表中记录第一物理接口、虚拟接口、第一虚拟设备的对应关系。
参阅图10,图10示出了设备转发一个报文的流程图。报文转发整体上可以分为三个流程:报文接收、业务处理和报文发送。本实施例提供的方案不涉及业务处理,故不作详细介绍,主要对于报文接收和报文转发进行示例说明。端口相关信息的处理发生在报文接收和报文发送的阶段。参阅图11,本实施例提供的报文转发方法包括:
步骤210:当第一物理接口接收到报文时,根据报文的目的MAC地址,在确定报文的目的设备包括第一虚拟设备时,根据第一物理接口的接口索引在本地转发表中获得对应的第一虚拟设备的标识。
由于物理设备只能通过物理接口对外收发报文,因此,无论报文的目的设备是物理设备本身或者是物理设备内虚拟建立的MDC,报文都需要从物理接口进入物理设备。
参见上文表1或表2所示的转发表,以第一物理接口为例,当第一物理接口接收到报文时,根据报文携带的目的MAC地址,在确定报文的目的设备包括第一虚拟设备时,可以根据第一物理接口的接口索引在本地转发表中获得对应的第一虚拟设备的标识。
第一虚拟设备为第一物理接口接收报文的目的设备,当该报文为单播报文时,第一虚拟设备为一个确定的虚拟设备;当该报文为广播报文时,第一虚拟设备为一类虚拟设备,即共享第一物理接口的所有的虚拟设备。
步骤220:向虚拟接口发送报文,以将报文传输至第一虚拟设备。
当获得到对应的第一虚拟设备后的标识后,将第一物理接口接收的报文传输至虚拟接口,以将报文传输至第一虚拟设备。
根据报文的MAC地址在确定报文的目的设备包括第一虚拟设备时,根据第一物理接口的接口索引在本地转发表中获得对应的第一虚拟设备的标识,从而可以确定该报文的目的设备(第一虚拟设备),向第一虚拟设备对应的接口发送报文,以将该报文传输至第一虚拟设备,从而实现了虚拟设备接收报文的功能。具体的,若第一虚拟设备通过第一虚拟接口共享第一物理接口,那么则向第一虚拟接口发送报文,以将报文发送至第一虚拟设备,第一虚拟设备通过第一虚拟接口实现报文的接收,满足了第一虚拟设备的接口需求。
第一物理接口接收的报文类型可能是单播报文也可能是广播报文,第一物理接口接收到不同类型的报文时,采取的转发策略也不一样。在一种可能的实现方式中,当第一物理接口接收到报文时,首先要根据报文的目的MAC地址判断该报文的类型,然后再根据报文的类型获得报文的目的设备的标识。在图11的基础上,参阅图12,步骤210包括:
步骤210-1:根据报文的目的MAC地址确定报文为单播报文。
第一物理接口接收到报文后,首先根据报文的目的MAC地址判断该报文为单播报文或广播报文,可选地,若报文为广播报文,则其目的MAC地址为十六进制的FFFFFFFFFFFF,当报文的目的MAC地址不是十六进制的FFFFFFFFFFFF,而是确定的某一个接口的MAC地址时,则确定该报文为单播报文。
步骤210-2:根据第一物理接口的接口索引、目的MAC地址在单播转发表中获得对应的第一虚拟设备的标识。
在物理设备的单播转发表中记录有第一物理接口的接口索引和虚拟接口的MAC地址、与虚拟接口的接口索引和第一虚拟设备的标识的对应关系,因此,如果该单播转发表中存在与该报文目的MAC地址匹配的MAC地址,则根据第一物理接口的接口索引、报文的目的MAC地址在单播转发表中能够查询到接收报文的接口标识及接收报文的设备标识,则可以将报文传输至报文的目的设备。
若该单播转发表中不存在与该报文目的MAC地址匹配的MAC地址,则无法查找到接收报文的接口标识及接收报文的设备标识,转发流程结束。
上述实施例对报文类型为单播报文进行了介绍,在另一种可能的实现方式中,该报文还可能是广播报文,在图11的基础上,参阅图13,步骤210还包括:
步骤210-3:根据报文的目的MAC地址确定报文为广播报文。
第一物理接口接收到报文后,首先根据报文的目的MAC地址判断该报文为单播报文或广播报文,可选地,在一种可能的实现方式中,若报文为广播报文,则其目的MAC地址为十六进制的FFFFFFFFFFFF,当第一物理接口接收的报文的目的MAC地址为十六进制的FFFFFFFFFFFF时,即确定该报文为广播报文。
步骤210-4:根据第一物理接口的接口索引在广播转发表中获得对应的目的设备的标识,目的设备包括第一虚拟设备以及除第一虚拟设备之外的第三虚拟设备。
需要说明的是,当报文为广播报文时,其对应的目的设备并不单单指某一台虚拟设备,而是一类虚拟设备,即共享第一物理接口的所有的虚拟设备。第一虚拟设备和第三虚拟设备共享第一物理接口,当确定报文为广播报文时,以第一物理接口的接口索引在广播查询表中获得对应的目的设备的标识,即第一物理接口对应的所有的虚拟设备的标识。
当确定广播目的设备的标识后,需要向广播报文的目的设备发送广播报文,在步骤220向第一虚拟设备发送该广播报文时,本实施例还包括:步骤220-1:向第三虚拟设备发送广播报文。
应当理解的是,本实施例并不限定步骤220与步骤220-1的先后顺序。
需要说明的是,由于第一物理接口在进行广播报文发送的时候,会将报文发送至共享该物理接口的所有的虚拟设备,若该物理设备所在的广播域内还包括其他的物理设备,物理设备通过该第一物理接口与外部物理设备连接,则广播报文的目的设备还包括其他的外部物理设备,第一物理接口在广播发送报文时,还需要向外部物理设备发送该广播报文。
在另一种情况下,若该物理设备中除第一物理接口之外的其他物理接口也连接有虚拟设备和/或物理设备,该物理设备还会复制该广播报文,向其他物理接口发送该广播报文。其他物理接口接收到该广播报文后,可依据前述实施例描述的内容,向共享该物理接口的虚拟设备和/或连接该物理接口的物理设备广播该广播报文。
在一种可能的实现方式中,第一物理接口将接收的报文转发至对应的第一虚拟设备后,第一虚拟设备对报文进行业务处理,业务处理完成后,第一虚拟设备还需要发送处理得到的业务报文。在图11的基础上,参阅图14,报文转发方法还包括:
步骤230-1:对报文进行业务处理,获得业务报文。
第一虚拟设备对接收的报文进行业务处理,获得处理后的业务报文。
步骤230-2:当业务报文为单播报文时,根据业务报文的目的MAC地址判断目的设备是否为第二虚拟设备,第二虚拟设备为与第一物理接口在本地转发表中具有对应关系的虚拟设备。
对应当业务报文为单播报文时,业务报文的目的MAC地址与业务报文的目的设备对应。根据业务报文的目的MAC地址判断业务报文的目的设备是否为第二虚拟设备。第二虚拟设备为与第一物理接口在本地转发表中具有对应关系的虚拟设备,即第二虚拟设备与该第一虚拟设备为共享同一个物理接口(即第一物理接口)的虚拟设备。本地转发表中存储有每一个虚拟接口的MAC地址及该虚拟接口对应的虚拟设备的标识,若根据业务报文的目的MAC地址能够查询到对应的虚拟接口,若该虚拟接口与第一物理接在本地转发表中存在对应关系,则表明业务报文的目的设备为第二虚拟设备。执行步骤230-3,若根据业务报文的目的MAC地址无法查询到对应的虚拟接口,则表明业务报文的目的设备在本物理设备之外,执行步骤230-4。
步骤230-3:若是,向第二虚拟设备传输业务报文。
由于共享物理接口时建立了共享该同一物理接口的虚拟接口之间的连接,共享同一物理接口的虚拟设备之间可以互相通信,若该业务报文的目的设备为与该第一虚拟设备共享第一物理接口的虚拟设备,则向该虚拟设备传输业务报文,无须通过物理接口进行发送。
步骤230-4:若否,则向第一物理接口传输业务报文,以使第一物理接口向业务报文的目的MAC地址发送业务报文。
若该业务报文的目的设备不是与该第一虚拟设备共享第一物理接口的虚拟设备,第一虚拟设备与该业务报文的目的设备无法通信,则需要通过第一物理接口进行发送。
需要说明的是,当该虚拟设备的虚拟接口仅与一个第一物理接口对应时,则步骤230-4的第一物理接口与步骤210中的第一物理接口为同一个物理接口;若该虚拟设备的多个虚拟接口对应多个第一物理接口,则此时步骤230-4中的第一物理接口可以与步骤210中的第一物理接口不同。
为了执行上述各个实施例中接口共享方法及各个可能的实现方式中的相应步骤,下面给出一种接口共享装置300的实现方式。请参阅图15,图15为本申请实施例提供的一种接口共享装置300的功能模块图。需要说明的是,本实施例所提供的接口共享装置300,其基本原理及产生的技术效果和上述实施例提供的接口共享方法相同,为简要描述,本实施例部分未提及指出的部分内容,可参考上述实施例中的相应内容。该接口共享装置300包括获取模块310及配置模块320。
该获取摸块,用于接收物理接口共享指令,所述物理接口共享指令包括被共享的目标物理接口的接口索引和共享所述目标物理接口的目标虚拟设备对应的标识。
可选地,该获取模块310具体可以用于执行上述各个图中的步骤110,以实现对应的技术效果。
该配置模块320,用以依据所述目标虚拟设备对应的标识,为所述目标虚拟设备创建对应的虚拟接口。该配置模块320还用以在本地转发表中记录所述目标物理接口、虚拟接口、目标虚拟设备的对应关系,以在接收到目的设备包括所述目标虚拟设备的报文时,向所述虚拟接口传输所述报文。
可选地,该配置模块320具体可以用于执行上述各个图中的步骤120~步骤130,以实现对应的技术效果。
在一种可能的实现方式中,该配置模块320具体还用于依据物理接口共享指令,为虚拟接口分配接口索引。
可选地,该配置模块320具体可以用于执行上述各个图中的步骤120-1,以实现对应的技术效果。
该配置模块320具体还用于将虚拟接口的接口索引存储至接口查询表。
可选地,该配置模块320具体可以用于执行上述各个图中的步骤120-2,以实现对应的技术效果。
在一种可能的实现方式中,该配置模块320具体还用于依据目标物理接口的接口索引获取目标物理接口的MAC地址。
可选地,该配置模块320具体可以用于执行上述各个图中的步骤130-1,以实现对应的技术效果。
该配置模块320具体还用于依据目标物理接口的MAC地址,确定虚拟接口的MAC地址。
可选地,该配置模块320具体可以用于执行上述各个图中的步骤130-2,以实现对应的技术效果。
该配置模块320具体还用于在单播转发表中记录目标物理接口的接口索引和各虚拟接口的MAC地址、与虚拟接口的接口索引和目标虚拟设备的标识的对应关系;在广播转发表中记录目标物理接口的接口索引、与虚拟接口的接口索引和目标虚拟设备的标识的对应关系。
可选地,该配置模块320具体可以用于执行上述各个图中的步骤130-3,以实现对应的技术效果。
该配置模块320还用于在接口查询表中记录目标虚拟接口的接口索引、目标虚拟接口的MAC地址及目标物理接口的接口索引。
可选地,该配置模块320具体可以用于执行上述各个图中的步骤140,以实现对应的技术效果。
在一种可能的实现方式中,该获取模块310还用于接收虚拟接口删除指令。
虚拟接口删除指令包括待删除的目标虚拟接口的接口索引。
可选地,该获取模块310具体还可以用于执行上述各个图中的步骤150,以实现对应的技术效果。
该配置模块320还用于根据目标虚拟接口的接口索引获取目标虚拟接口的MAC地址以及目标虚拟接口对应的物理接口的接口索引。
可选地,该配置模块320具体可以用于执行上述各个图中的步骤160,以实现对应的技术效果。
该配置模块320还用于删除单播转发表中记录的物理接口的接口索引和目标虚拟接口的MAC地址、与虚拟接口的接口索引和目标虚拟设备的标识的对应关系;删除广播转发表中记录的物理接口的接口索引、与目标虚拟接口的接口索引和目标虚拟设备的标识的对应关系。
可选地,该配置模块320具体可以用于执行上述各个图中的步骤170,以实现对应的技术效果。
该配置模块320还用于在接口查询表中删除目标虚拟接口的接口索引、目标虚拟接口的MAC地址及目标物理接口的接口索引。
可选地,该配置模块320具体可以用于执行上述各个图中的步骤180,以实现对应的技术效果。
为了执行上述实施例中的报文转发方法及各个可能的实现方式中的相应步骤,下面给出一种报文转发装置400的实现方式。需要说明的是,本实施例提供的保温转发装置与上述实施例提供的接口共享装置300,其可以在同一个电子设备上实现。请参阅图16,图16为本申请实施例提供的一种报文转发装置400的功能模块图。需要说明的是,本实施例所提供的报文转发装置400,其基本原理及产生的技术效果和上述实施例提供的报文转发方法相同,为简要描述,本实施例部分未提及指出,可参考上述实施例中的相应内容。报文转发装置400包括查询模块410及转发模块420。
该查询模块410,用以当第一物理接口接收到报文时,根据报文的目的MAC地址、第一物理接口的接口索引在本地转发表中获得对应的第一虚拟设备的标识。
可选地,该查询模块410可以用于执行上述各个图中的步骤210,以实现对应的技术效果。
该转发模块420,用以向虚拟接口发送报文,以将报文传输至第一虚拟设备。
可选地,该转发模块420可以用于执行上述各个图中的步骤220,以实现对应的技术效果。
在一种可能的实现方式中,该查询模块410,还用于根据报文的目的MAC地址确定报文为单播报文。
可选地,该查询模块410可以用于执行上述各个图中的步骤210-1,以实现对应的技术效果。
该查询模块410,还用于根据第一物理接口的接口索引、目的MAC地址在单播转发表中获得对应的第一虚拟设备的标识。
可选地,该查询模块410可以用于执行上述各个图中的步骤210-2,以实现对应的技术效果。
在一种可能的实现方式中,该查询模块410,还用于根据报文的目的MAC地址确定报文为广播报文。
可选地,该查询模块410可以用于执行上述各个图中的步骤210-3,以实现对应的技术效果。
当报文为广播报文时,该查询模块410,还用于根据第一物理接口的接口索引在广播转发表中获得对应的目的设备的标识,目的设备包括第一虚拟设备以及除第一虚拟设备之外的第三虚拟设备。
可选地,该查询模块410可以用于执行上述各个图中的步骤210-4,以实现对应的技术效果。
该转发模块420还用于向第三虚拟设备发送所述广播报文。
可选地,该转发模块420具体可以用于执行上述各个图中的步骤220-1,以实现对应的技术效果。
在一种可能的实现方式中,该报文转发装置400还可以包括业务处理模块,该业务处理模块用于根据报文进行业务处理,获得业务报文。需要说明的是,该业务处理模块未在图17中示出,其可以分别与查询模块410和转发模块420连接。
可选地,该业务处理模块可以用于执行上述各个图中的步骤230-1。
在一种可能的实现方式中,该转发模块420还用于当业务报文为单播报文时,根据业务报文的目的MAC地址判断目的设备是否为第二虚拟设备,第二虚拟设备为与第一物理接口在本地转发表中具有对应关系的虚拟设备;业务报文的目的MAC地址与目的设备对应。
若是,该转发模块420还用于向第二虚拟设备传输业务报文。若否,则向第一物理接口传输业务报文,以使第一物理接口向所述业务报文的目的MAC地址发送业务报文。
可选地,该转发模块420具体还可以用于执行上述各个图中的步骤230-2~步骤230-4。
在一种可能的实现方式中,该转发模块420还用于当业务报文为广播报文时,则向第一物理接口发送广播报文,以使第一物理接口向除第一虚拟设备之外的第三虚拟设备发送广播报文,每个第三虚拟设备、第三虚拟设备的虚拟接口与第一物理接口在本地转发表中均具有对应关系。
可选地,该转发模块420具体还可以用于执行上述各个图中的步骤230-6。
在一种可能的实现方式中,该转发模块420还用于当第一物理接口连接有外部物理设备,向第一物理接口发送广播报文,以使第一物理接口向外部物理设备发送广播报文。
可选地,该转发模块420具体还可以用于执行上述各个图中的步骤230-7。
参阅图17,图17示出了本申请实施例提供的电子设备500的示意框图。该电子设备500可以用于实现前述实施例如图4提供的物理设备。电子设备500包括处理器510、总线520、存储器530及至少一个物理接口540。处理器510通过总线520与存储器530连接。
电子设备500可以是集成的服务器或特殊用途的计算机,两者都可以用于实现本申请实施例的接口共享方法或报文转发方法。该电子设备500还可以是任意支持上述多租户设备环境技术的设备,例如图4示出的系统架构。
存储器530用于存储程序,例如图15所示的接口共享装置300或图16所示的报文转发装置400,接口共享装置300或报文转发装置400包括至少一个可以软件或固件(firmware)的形式存储于存储器530中或固化在电子设备500的操作系统(operatingsystem,OS)中的软件功能模块,处理器510在接收到执行指令后,执行所述程序以实现发明上述实施例揭示的接口共享方法或报文转发方法。
存储器530可能包括高速随机存取存储器(Random Access Memory,RAM),也可能还包括非易失存储器(non-volatile memory,NVM)。
物理接口540用以对外收发消息,该电子设备500可以虚拟化建立多台虚拟设备,物理接口540可以被共享给多个虚拟接口,从而被共享给多台虚拟设备。
处理器510可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器510中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器510可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、微控制单元(Microcontroller Unit,MCU)、复杂可编程逻辑器件(ComplexProgrammable Logic Device,CPLD)、现场可编程门阵列(Field-Programmable GateArray,FPGA)、嵌入式ARM等芯片。
本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器510执行时实现上述实施例揭示的接口共享方法或报文转发方法。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (12)
1.一种接口共享方法,其特征在于,应用于物理设备,所述物理设备上包括一个或多个虚拟设备,所述方法包括:
接收物理接口共享指令,所述物理接口共享指令包括被共享的目标物理接口的接口索引和共享所述目标物理接口的目标虚拟设备对应的标识;
依据所述物理接口共享指令,为所述目标虚拟设备创建对应的虚拟接口,其中,所述物理接口共享给至少一个所述虚拟接口;
依据所述目标物理接口的接口索引获取所述目标物理接口的MAC地址,其中,所述目标物理接口包括普通接口、共享接口中至少一种;
依据所述目标物理接口的MAC地址和预设的规则,确定所述虚拟接口的MAC地址,其中,所述预设的规则包括所述虚拟接口的MAC地址第1个字节为固定值,所述虚拟接口的MAC地址第2个字节为所述目标物理接口的MAC地址的第5个字节,所述虚拟接口的MAC地址第3个字节为所述目标物理接口的MAC地址第6个字节,所述虚拟接口的MAC地址第4个字节为所述目标物理接口的MAC地址第4个字节数值再加1,所述虚拟接口的MAC地址第5和第6个字节组合填入所述目标虚拟设备的标识;
在本地转发表中记录所述目标物理接口、虚拟接口、目标虚拟设备的对应关系,以在接收到目的设备包括所述目标虚拟设备的报文时,向所述虚拟接口传输所述报文。
2.根据权利要求1所述的方法,其特征在于,所述本地转发表包括单播转发表和广播转发表,则所述在本地转发表中记录所述目标物理接口、虚拟接口、目标虚拟设备的对应关系,包括:
在所述单播转发表中记录所述目标物理接口的接口索引和各所述虚拟接口的MAC地址、与所述虚拟接口的接口索引和所述目标虚拟设备的标识的对应关系;在所述广播转发表中记录所述目标物理接口的接口索引、与所述虚拟接口的接口索引和所述目标虚拟设备的标识的对应关系。
3.根据权利要求2所述的方法,其特征在于,所述接口共享方法还包括:
接收虚拟接口删除指令,所述虚拟接口删除指令包括待删除的目标虚拟接口的接口索引;
根据所述目标虚拟接口的接口索引获取所述目标虚拟接口的MAC地址以及所述目标虚拟接口对应的物理接口的接口索引;
删除所述单播转发表中记录的所述物理接口的接口索引和所述目标虚拟接口的MAC地址、与所述虚拟接口的接口索引和所述目标虚拟设备的标识的对应关系;删除所述广播转发表中记录的所述物理接口的接口索引、与所述目标虚拟接口的接口索引和所述目标虚拟设备的标识的对应关系。
4.根据权利要求2所述的方法,其特征在于,所述物理设备还包括接口查询表,所述在本地转发表中记录所述目标物理接口、虚拟接口、目标虚拟设备的对应关系之后,所述方法还包括:
在接口查询表中记录所述虚拟接口的接口索引、所述虚拟接口的MAC地址及所述目标物理接口的接口索引。
5.一种报文转发方法,其特征在于,所述报文转发方法应用于存储有本地转发表的物理设备,所述物理设备包括一个或多个物理接口和一个或多个虚拟设备,针对所述一个或多个虚拟设备中的第一虚拟设备,所述物理设备还包括所述第一虚拟设备对应的虚拟接口,所述本地转发表中记录第一物理接口、虚拟接口、第一虚拟设备的对应关系中所述第一物理接口对应至少一个所述虚拟接口和至少一个所述第一虚拟设备,所述方法包括:
当所述第一物理接口接收到报文时,根据所述报文的目的MAC地址,在确定所述报文的目的设备包括所述第一虚拟设备时,根据所述第一物理接口的接口索引在所述本地转发表中获得对应的第一虚拟设备的标识;
依据所述第一物理接口的MAC地址和预设的规则,确定所述虚拟接口的MAC地址,其中,所述预设的规则包括所述虚拟接口的MAC地址第1个字节为固定值,所述虚拟接口的MAC地址第2个字节为所述第一物理接口的MAC地址的第5个字节,所述虚拟接口的MAC地址第3个字节为所述第一物理接口的MAC地址第6个字节,所述虚拟接口的MAC地址第4个字节为所述第一物理接口的MAC地址第4个字节数值再加1,所述虚拟接口的MAC地址第5和第6个字节组合填入所述第一虚拟设备的标识;
向所述虚拟接口发送所述报文,以将所述报文传输至所述第一虚拟设备。
6.根据权利要求5所述的方法,其特征在于,所述本地转发表包括单播转发表,所述单播转发表记录有所述第一物理接口的接口索引和虚拟接口的MAC地址、与所述虚拟接口的接口索引和所述第一虚拟设备的标识的对应关系;
所述根据所述报文的目的MAC地址,在确定所述报文的目的设备包括所述第一虚拟设备时,根据所述第一物理接口的接口索引在所述本地转发表中获得对应的第一虚拟设备的标识的步骤,包括:
根据所述报文的目的MAC地址确定所述报文为单播报文;
根据所述第一物理接口的接口索引、所述目的MAC地址在所述单播转发表中获得对应的所述第一虚拟设备的标识。
7.根据权利要求5所述的方法,其特征在于,向所述虚拟接口发送所述报文之后,所述报文转发方法还包括:
对所述报文进行业务处理,获得业务报文;
当所述业务报文为单播报文时,根据所述业务报文的目的MAC地址判断所述目的设备是否为第二虚拟设备,所述第二虚拟设备为与所述第一物理接口在本地转发表中具有对应关系的虚拟设备;
若是,向所述第二虚拟设备传输所述业务报文;
若否,则向所述第一物理接口传输所述业务报文,以使所述第一物理接口向所述业务报文的目的MAC地址发送所述业务报文。
8.根据权利要求5所述的方法,其特征在于,所述本地转发表包括广播转发表,所述广播转发表记录有所述第一物理接口的接口索引与所述虚拟接口的接口索引和所述第一虚拟设备的标识的对应关系;
所述根据所述报文的目的MAC地址,在确定所述报文的目的设备包括所述第一虚拟设备时,根据所述第一物理接口的接口索引在所述本地转发表中获得对应的第一虚拟设备的标识的步骤包括:
根据所述报文的目的MAC地址确定所述报文为广播报文;
根据所述第一物理接口的接口索引在所述广播转发表中获得目的设备的标识,所述目的设备包括所述第一虚拟设备以及除所述第一虚拟设备之外的第三虚拟设备;则所述报文转发方法还包括:
向所述第三虚拟设备发送所述广播报文。
9.一种接口共享装置,其特征在于,应用于物理设备,所述物理设备上包括一个或多个虚拟设备,所述接口共享装置包括:
获取模块,用以接收物理接口共享指令,所述物理接口共享指令包括被共享的目标物理接口的接口索引和共享所述目标物理接口的目标虚拟设备对应的标识;
配置模块,用以依据所述目标虚拟设备对应的标识,为所述目标虚拟设备创建对应的虚拟接口,其中,所述物理接口共享给至少一个所述虚拟接口;依据所述目标物理接口的接口索引获取所述目标物理接口的MAC地址,其中,所述目标物理接口包括普通接口、共享接口中至少一种;依据所述目标物理接口的MAC地址和预设的规则,确定所述虚拟接口的MAC地址,其中,所述预设的规则包括所述虚拟接口的MAC地址第1个字节为固定值,所述虚拟接口的MAC地址第2个字节为所述目标物理接口的MAC地址的第5个字节,所述虚拟接口的MAC地址第3个字节为所述目标物理接口的MAC地址第6个字节,所述虚拟接口的MAC地址第4个字节为所述目标物理接口的MAC地址第4个字节数值再加1,所述虚拟接口的MAC地址第5和第6个字节组合填入所述目标虚拟设备的标识;在本地转发表中记录所述目标物理接口、虚拟接口、目标虚拟设备的对应关系,以在接收到目的设备包括所述目标虚拟设备的报文时,向所述虚拟接口传输所述报文。
10.一种报文转发装置,其特征在于,所述报文转发方法应用于存储有本地转发表的物理设备,所述物理设备包括一个或多个物理接口和一个或多个虚拟设备,针对所述一个或多个虚拟设备中的第一虚拟设备,所述物理设备还包括所述第一虚拟设备对应的虚拟接口,所述本地转发表中记录第一物理接口、虚拟接口、第一虚拟设备的对应关系中所述第一物理接口对应至少一个所述虚拟接口和至少一个所述第一虚拟设备,所述报文转发装置包括:
查询模块,用以当第一物理接口接收到报文时,根据所述报文的目的MAC地址,在确定所述报文的目的设备包括第一虚拟设备时,根据所述第一物理接口的接口索引在本地转发表中获得对应的第一虚拟设备的标识;
配置模块,用以依据所述第一物理接口的MAC地址和预设的规则,确定所述虚拟接口的MAC地址,其中,所述预设的规则包括所述虚拟接口的MAC地址第1个字节为固定值,所述虚拟接口的MAC地址第2个字节为所述第一物理接口的MAC地址的第5个字节,所述虚拟接口的MAC地址第3个字节为所述第一物理接口的MAC地址第6个字节,所述虚拟接口的MAC地址第4个字节为所述第一物理接口的MAC地址第4个字节数值再加1,所述虚拟接口的MAC地址第5和第6个字节组合填入所述第一虚拟设备的标识;
转发模块,用以向虚拟接口发送所述报文,以将所述报文传输至所述第一虚拟设备。
11.一种存储介质,其特征在于,该存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求1~4或者权利要求5~8任意一项所述方法的步骤。
12.一种电子设备,其特征在于,所述电子设备包括处理器,所述处理器用于运行计算计程序以执行如权利要求1~4或者权利要求5~8任意一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911056247.4A CN110798541B (zh) | 2019-10-31 | 2019-10-31 | 接口共享、报文转发方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911056247.4A CN110798541B (zh) | 2019-10-31 | 2019-10-31 | 接口共享、报文转发方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110798541A CN110798541A (zh) | 2020-02-14 |
CN110798541B true CN110798541B (zh) | 2022-09-09 |
Family
ID=69442340
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911056247.4A Active CN110798541B (zh) | 2019-10-31 | 2019-10-31 | 接口共享、报文转发方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110798541B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111327635B (zh) * | 2020-03-09 | 2023-07-14 | 深信服科技股份有限公司 | 数据传输方法、服务器及可读存储设备 |
CN113296926B (zh) * | 2020-05-29 | 2022-06-21 | 阿里巴巴集团控股有限公司 | 一种资源分配方法、计算设备及存储介质 |
CN112616153B (zh) * | 2020-12-08 | 2023-07-25 | 京信网络系统股份有限公司 | 容器处理方法、装置、计算机设备和存储介质 |
CN113438186B (zh) * | 2021-06-09 | 2023-02-28 | 新华三技术有限公司 | 一种转发报文的方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102474449A (zh) * | 2009-11-02 | 2012-05-23 | 马维尔国际贸易有限公司 | 基于虚拟接口的交换装置和方法 |
CN102594660A (zh) * | 2012-01-19 | 2012-07-18 | 华为技术有限公司 | 一种虚拟接口交换方法、装置及系统 |
CN103621026A (zh) * | 2013-04-01 | 2014-03-05 | 华为技术有限公司 | 虚拟机的数据交换方法、装置和系统 |
-
2019
- 2019-10-31 CN CN201911056247.4A patent/CN110798541B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102474449A (zh) * | 2009-11-02 | 2012-05-23 | 马维尔国际贸易有限公司 | 基于虚拟接口的交换装置和方法 |
CN102594660A (zh) * | 2012-01-19 | 2012-07-18 | 华为技术有限公司 | 一种虚拟接口交换方法、装置及系统 |
CN103621026A (zh) * | 2013-04-01 | 2014-03-05 | 华为技术有限公司 | 虚拟机的数据交换方法、装置和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110798541A (zh) | 2020-02-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110798541B (zh) | 接口共享、报文转发方法、装置、电子设备及存储介质 | |
US20230353533A1 (en) | Providing services for logical networks | |
US9749145B2 (en) | Interoperability for distributed overlay virtual environment | |
US10320674B2 (en) | Independent network interfaces for virtual network environments | |
US8990374B2 (en) | Method and apparatus of cloud computing subsystem | |
US8954992B2 (en) | Distributed and scaled-out network switch and packet processing | |
US9952885B2 (en) | Generation of configuration files for a DHCP module executing within a virtualized container | |
EP3070887B1 (en) | Communication method, device and system for virtual extensible local area network | |
US8819211B2 (en) | Distributed policy service | |
US10880158B2 (en) | Identifying the realization status of logical entities based on a global realization number | |
US20120297384A1 (en) | Virtual Managed Network | |
CN107113241B (zh) | 路由确定方法、网络配置方法以及相关装置 | |
JP2014086081A (ja) | ストレージエリアネットワーク構成の引き継ぎを行うストレージボリューム移行方法および装置 | |
WO2019101056A1 (zh) | 一种配置方法及装置 | |
CN114070723A (zh) | 裸金属服务器的虚拟网络配置方法、系统及智能网卡 | |
US11609777B2 (en) | System and method for multi-cluster storage | |
WO2016101856A1 (zh) | 数据访问方法及装置 | |
CN112583655A (zh) | 数据传输方法、装置、电子设备及可读存储介质 | |
US12001872B2 (en) | Object tiering from local store to cloud store | |
US20190370047A1 (en) | Computer system and computer | |
CN112468308A (zh) | 虚拟局域网业务管理方法、虚拟局域网全局管理设备 | |
EP4102788A1 (en) | Storage system and request processing method, and switch | |
US20230281085A1 (en) | Method and system for generating backup of a large file and optimizing resource utilization | |
CN116401227A (zh) | 一种集群配置方法、装置、设备及介质 | |
CN116192642A (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 |