CN113949679B - 一种容器网络的数据传输方法、装置、系统及存储介质 - Google Patents

一种容器网络的数据传输方法、装置、系统及存储介质 Download PDF

Info

Publication number
CN113949679B
CN113949679B CN202010610921.5A CN202010610921A CN113949679B CN 113949679 B CN113949679 B CN 113949679B CN 202010610921 A CN202010610921 A CN 202010610921A CN 113949679 B CN113949679 B CN 113949679B
Authority
CN
China
Prior art keywords
vlan
data
container
port
sub
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
CN202010610921.5A
Other languages
English (en)
Other versions
CN113949679A (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202010610921.5A priority Critical patent/CN113949679B/zh
Publication of CN113949679A publication Critical patent/CN113949679A/zh
Application granted granted Critical
Publication of CN113949679B publication Critical patent/CN113949679B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3009Header conversion, routing tables or routing tags
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/354Switches specially adapted for specific applications for supporting virtual local area networks [VLAN]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Small-Scale Networks (AREA)

Abstract

本申请提供一种容器网络的数据传输方法、装置、系统及存储介质,由VLAN子接口将容器的数据发送至ENI,再由ENI将容器的数据发送至虚拟交换机的主干端口,在通过主干端口接收数据后,虚拟交换机对数据进行转发。或者,由虚拟交换机通过主干端口向ENI发送容器的数据,并由ENI向接入容器的VLAN子接口发送该数据。该主干端口可对应一个ENI,能够满足高密度部署容器的需求。此外,上述传输数据的过程不要求一个ENI对应的全部容器属于同一个子网,数据传输方式更为灵活。

Description

一种容器网络的数据传输方法、装置、系统及存储介质
技术领域
本申请涉及通信技术领域,尤其涉及一种容器网络的数据传输方法、装置、系统及存储介质。
背景技术
在目前的容器网络技术领域中,常用的组网方式是弹性网络接口(elasticnetwork interface,ENI)直通容器(container)的组网方式,和ENI多网际协议(internetprotocol,IP)地址组网方式。以上不同的组网方式下,容器网络的数据传输方式是存在差异的。
其中,ENI直通容器的组网方式中,要求每个容器占用一个ENI,从而由容器独享ENI的服务。基于该种组网方式,在进行数据包的转发时能获得较好的转发性能。但由于网络中要求每个ENI与一个容器绑定,而ENI的数量会受限于主机的物理资源,因此该组网方式和数据包转发方式下主机支持的容器数量受限,不能满足高密度部署容器的要求。此外,该组网方式需要加载多个ENI,导致组网时延较大。
ENI多IP组网方式中,需要根据容器的IP地址来进行数据包的转发,要求容器的IP地址是预先规划的子网,并且同属于一个ENI的IP地址要同属于一个子网,因此该方案限制了容器组网的灵活性,数据包的转发灵活性同样受限。
综上所述,现有容器网络的数据传输方式不能满足高密度部署容器的需要,并且数据的转发灵活性受限。
发明内容
本申请提供一种容器网络的数据传输方法、装置、系统及存储介质,用以满足高密度部署容器的需要,以及提高数据转发灵活性。
第一方面,本申请提供一种容器网络的数据传输方法,该容器网络的数据传输方法可由包括虚拟局域网(virtual local area network,VLAN)子接口(以下称为第一VLAN子接口)、ENI以及虚拟交换机的系统实施。该系统可包括容器网络系统。
根据该方法,第一VLAN子接口可将第一容器的数据发送至ENI,其中,该第一VLAN子接口连接至该第一容器,该数据携带第一VLAN标识,该第一VLAN标识为该第一VLAN子接口的VLAN标识。
ENI可将该数据发送至虚拟交换机的主干端口,该ENI接入该第一容器所属的虚拟机,该虚拟交换机部署于该虚拟机所属的主机。
虚拟交换机可通过主干端口接收该数据。虚拟交换机还可根据VLAN标识与子端口之间的对应关系,确定该第一VLAN标识对应的第一子端口。虚拟交换机还可删除该数据中携带的该第一VLAN标识,并将该数据的收包端口配置为该第一子端口,该第一子端口用于表示该数据来自于第一容器。虚拟交换机还可根据该数据的路由信息转发该数据,该路由信息用于确定数据的转发路由。
采用以上方法,可由VLAN子接口将容器的数据发送至ENI,再由ENI将容器的数据发送至虚拟交换机的主干端口,在通过主干端口接收数据后,虚拟交换机对数据进行转发,该主干端口可对应一个ENI,能够满足高密度部署容器的需求。此外,上述传输数据的过程不要求一个ENI对应的全部容器属于同一个子网,数据传输方式更为灵活。
在一种可能的设计中,第一VLAN子接口还可在该数据中添加该第一VLAN标识。
在一种可能的设计中,第一VLAN子接口还可在该数据中添加该数据的协议标识。
在一种可能的设计中,虚拟交换机可接收来自于虚拟机代理的VLAN标识与子端口之间的对应关系。
第二方面,本申请提供一种容器网络的数据传输方法,该容器网络的数据传输方法可由包括第一VLAN子接口、ENI以及虚拟交换机的系统实施。该系统可包括容器网络系统。
根据该方法,虚拟交换机可接收数据,其中,该虚拟交换机部署于主机,该数据的目的端口为第一子端口。该虚拟交换机还可根据VLAN子接口与子端口之间的对应关系,确定该第一子端口对应的第一VLAN子接口,该第一VLAN子接口连接至第一容器。该虚拟交换机进一步将第一VLAN标识写入该数据,其中,该第一VLAN标识为该第一VLAN子接口的VLAN标识。此后,该虚拟交换机可根据主干端口与子端口的对应关系确定该自端口对应的主干端口,并通过主干端口向ENI发送该数据,该ENI接入虚拟机,该虚拟机包括该第一容器,该虚拟机属于该主机。
该ENI在接收该数据后,可根据该数据中的第一VLAN标识将该数据发送至该第一VLAN子接口。
第一VLAN子接口可删除该数据中携带的该第一VLAN标识。
采用以上方法,可由虚拟交换机通过主干端口向ENI发送容器的数据,并由ENI向接入容器的VLAN子接口发送该数据,因此可由虚拟机中的容器接收相应数据。其中,该主干端口可对应一个ENI,能够满足高密度部署容器的需求。此外,上述传输数据的过程不要求一个ENI对应的全部容器属于同一个子网,数据传输方式更为灵活。
在一种可能的设计中,虚拟交换机可在该数据中添加该第一VLAN标识。
在一种可能的设计中,虚拟交换机还可在该数据中添加该数据的协议标识。
在一种可能的设计中,ENI具体可将该第一VLAN子接口配置为该数据的目的端口,并将该数据发送至该目的端口。
在一种可能的设计中,虚拟交换机可接收来自于虚拟机代理的VLAN标识与子端口之间的对应关系以及主干端口与子端口之间的对应关系。
第三方面,本申请实施例提供一种容器网络的数据传输方法,该方法可由第一VLAN子接口实施。该方法可用于转发来自于容器的数据。
根据该方法,第一VLAN子接口可将第一容器的数据发送至ENI,其中,该第一VLAN子接口连接至该第一容器,该数据携带第一VLAN标识,该第一VLAN标识为该第一VLAN子接口的VLAN标识,该ENI接入该第一容器所属的虚拟机,该虚拟交换机部署于该虚拟机所属的主机。
在一种可能的设计中,第一VLAN子接口还可在该数据中添加该第一VLAN标识。
在一种可能的设计中,第一VLAN子接口还可在该数据中添加该数据的协议标识。
第四方面,本申请实施例提供一种容器网络的数据传输方法,该方法可由ENI实施。该方法可用于转发来自于容器的数据。
根据该方法,ENI可接收来自于第一VLAN子接口的数据,该第一VLAN子接口连接至第一容器,该数据携带第一VLAN标识,该第一VLAN标识为该第一VLAN子接口的VLAN标识;该ENI接入该第一容器所属的虚拟机,该虚拟交换机部署于该虚拟机所属的主机。
ENI还可将该数据发送至虚拟交换机的主干端口,该虚拟交换机部署于该虚拟机所属的主机。
第五方面,本申请实施例提供一种容器网络的数据传输方法,该方法可由虚拟交换机实施。该方法可用于转发来自于容器的数据。
根据该方法,虚拟交换机可通过主干端口接收来自于ENI的数据,该ENI接入该第一容器所属的虚拟机,该虚拟交换机部署于该虚拟机所属的主机,该数据携带第一VLAN标识,该第一VLAN标识为第一VLAN子接口的VLAN标识,该第一VLAN子接口连接至第一容器。
该虚拟交换机还可根据VLAN标识与子端口之间的对应关系,确定该第一VLAN标识对应的第一子端口。
该虚拟交换机还可删除该数据中携带的该第一VLAN标识,并将该数据的收包端口配置为该第一子端口,该第一子端口用于表示该数据来自于该第一容器。
该虚拟交换机还可根据该数据的路由信息转发该数据,路由信息用于确定该数据的转发路由。
在一种可能的设计中,虚拟交换机可接收来自于虚拟机代理的该VLAN标识与子端口之间的对应关系。
第六方面,本申请实施例提供一种容器网络的数据传输方法,该方法可由虚拟交换机实施。该方法可用于向容器转发数据。
根据该方法,虚拟交换机可接收数据,其中,该虚拟交换机部署于主机,该数据的目的端口为第一子端口。
该虚拟交换机还可根据VLAN子接口与子端口之间的对应关系,确定该第一子端口对应的第一VLAN子接口,该第一VLAN子接口连接至第一容器,该第一容器部署于该主机的虚拟机中。
该虚拟交换机还可将第一VLAN标识写入该数据,其中,该第一VLAN标识为该第一VLAN子接口的VLAN标识。
该虚拟交换机还可根据主干端口与子端口之间的对应关系,确定该第一子端口对应的主干端口,并通过该主干端口向ENI发送该数据,其中,该ENI接入该容器所属的虚拟机。
在一种可能的设计中,虚拟交换机可在该数据中添加该第一VLAN标识。
在一种可能的设计中,虚拟交换机还可在该数据中添加该数据的协议标识。
在一种可能的设计中,虚拟交换机还可接收来自于虚拟机代理的VLAN标识与子端口之间的对应关系以及主干端口与子端口之间的对应关系。
第七方面,本申请实施例提供一种容器网络的数据传输方法,该方法可由ENI实施。该方法可用于向容器转发数据。
根据该方法,ENI可接收来自于虚拟交换机的数据,其中,该数据中携带第一VLAN标识,该第一VLAN标识为第一VLAN子接口的VLAN标识,该ENI接入虚拟机,该第一VLAN子接口连接至第一容器,该第一容器部署于该虚拟机中。
该ENI还可根据该数据中的第一VLAN标识将该数据发送至该第一VLAN子接口。
在一种可能的设计中,ENI具体可将该第一VLAN子接口配置为该数据的目的端口,并将该数据发送至该目的端口。
第八方面,本申请实施例提供一种容器网络的数据传输方法,该方法可由第一VLAN子接口实施。该方法可用于向容器转发数据。
根据该方法,第一VLAN子接口可接收来自于ENI的数据,其中,该数据中携带第一VLAN标识,该第一VLAN标识为该第一VLAN子接口的VLAN标识,该ENI接入虚拟机,该第一VLAN子接口连接至第一容器,该第一容器部署于该虚拟机中;
该第一VLAN子接口还可删除该数据中携带的该第一VLAN标识。
第九方面,本申请实施例提供一种端口创建方法,该方法可由容器网络控制面实施。该方法可用于创建虚拟交换机的主干端口和子端口。容器网络控制面具体可包括容器控制器、容器代理、容器数据库、虚拟机数据库、虚拟机代理以及虚拟机控制器等组件或模块。
根据该方法,可由虚拟机代理创建ENI,并在虚拟交换机创建主干端口以及与该主干端口对应的多个子端口,其中,该主干端口关联至该ENI。
容器控制器可向虚拟机控制器申请预分配的IP地址网段和可用的VLAN ID,并接收虚拟机控制器分配的IP地址网段和可用的VLAN ID。
虚拟机代理接收虚拟机控制器分配的IP地址网段和可用的VLAN ID,并根据IP地址网段和可用的VLAN ID配置子端口。
容器控制器向主机的容器代理发送逻辑网络配置,逻辑网络配置中包括IP地址网段和可用的VLAN ID。
容器代理在接收到容器网络接口(container network interface,CNI)的容器网络创建请求后,添加VLAN子接口,并根据逻辑网络配置,配置VLAN子接口的VLAN ID,将VLAN子接口连接到容器,并根据逻辑网络配置,配置VLAN子接口的IP地址。
采用以上所示方法,可通过容器网络控制面实现图2所示主干端口和子端口的创建和配置。
第十方面,本申请实施例提供一种端口删除方法,该方法可由容器网络控制面实施。该方法可用于删除虚拟交换机的主干端口和子端口。容器网络控制面具体可包括容器控制器、容器代理、虚拟机代理以及虚拟机控制器等组件或模块。
根据该方法,容器代理可在接收到CNI的容器网络接口删除请求后,清空VLAN子接口配置的IP地址,并删除VLAN子接口。
容器控制器可向容器代理以及虚拟机控制器发送逻辑网络删除请求。
虚拟机控制器可根据该逻辑网络删除请求,回收预分配的IP地址网段。
虚拟机控制器可向虚拟机代理发送逻辑网络删除请求。
虚拟机代理根据逻辑网络删除请求删除已经创建的主干端口和子端口。
采用以上所示方法,可通过容器网络控制面实现图2所示主干端口和子端口的删除。
第十一方面,本申请实施例提供一种通信装置,该通信装置可用于执行上述第三方面或第三方面的任一可能的设计中由第一VLAN子接口执行的步骤。该通信装置可通过硬件结构、软件模块、或硬件结构加软件模块的形式来实现上述各方法中的各功能。
在由软件模块构成时,通信装置可包括相互耦合的通信模块以及处理模块,其中,通信模块可用于支持通信装置进行通信,处理模块可用于通信装置执行处理操作,如生成需要发送的数据、信息或消息,或对接收的信号进行处理以得到数据、信息或消息。
在实现上述第三方面所述方法时,通信模块可将第一容器的数据发送至ENI,其中,该第一VLAN子接口连接至该第一容器,该数据携带第一VLAN标识,该第一VLAN标识为该第一VLAN子接口的VLAN标识,该ENI接入该第一容器所属的虚拟机,该虚拟交换机部署于该虚拟机所属的主机。
在一种可能的设计中,处理模块可在该数据中添加该第一VLAN标识。
在一种可能的设计中,处理模块还可在该数据中添加该数据的协议标识。
在通过硬件组件实现第十一方面所示通信装置时,该通信装置可包括处理器。可由处理器执行以上第三方面中或第三方面的任一可能的设计中由第一VLAN子接口执行的步骤。该通信装置可包括通信接口(或称收发器、收发单元、通信单元),通信接口可用于支持以上装置与其他设备或装置进行通信。具体的,该通信接口可用于支持通信装置进行通信。在通过硬件组件实现以上装置时,该装置还可包括存储器,该存储器可用于存储程序,可由处理器执行该程序以执行以上通信装置所执行的步骤。具体的,通信接口可用于执行第十一方面中由通信模块所执行的步骤,和/或,处理器可用于执行以上第十一方面中由处理模块所执行的步骤。
第十二方面,本申请实施例提供一种通信装置,该通信装置可用于执行上述第四方面或第四方面的任一可能的设计中由ENI执行的步骤。该通信装置可通过硬件结构、软件模块、或硬件结构加软件模块的形式来实现上述各方法中的各功能。
在由软件模块构成时,通信装置可包括相互耦合的通信模块以及处理模块,其中,通信模块可用于支持通信装置进行通信,处理模块可用于通信装置执行处理操作,如生成需要发送的数据、信息或消息,或对接收的信号进行处理以得到数据、信息或消息。
在实现上述第四方面所述方法时,通信模块可接收来自于第一VLAN子接口的数据,该第一VLAN子接口连接至第一容器,该数据携带第一VLAN标识,该第一VLAN标识为该第一VLAN子接口的VLAN标识;该ENI接入该第一容器所属的虚拟机,该虚拟交换机部署于该虚拟机所属的主机。
通信模块还可将该数据发送至虚拟交换机的主干端口,该虚拟交换机部署于该虚拟机所属的主机。
在通过硬件组件实现第十二方面所示通信装置时,该通信装置可包括处理器。可由处理器执行以上第四方面中或第四方面的任一可能的设计中由ENI执行的步骤。该通信装置可包括通信接口(或称收发器、收发单元、通信单元),通信接口可用于支持以上装置与其他设备或装置进行通信。具体的,该通信接口可用于支持通信装置进行通信。在通过硬件组件实现以上装置时,该装置还可包括存储器,该存储器可用于存储程序,可由处理器执行该程序以执行以上通信装置所执行的步骤。具体的,通信接口可用于执行第十二方面中由通信模块所执行的步骤,和/或,处理器可用于执行以上第十二方面中由处理模块所执行的步骤。
第十三方面,本申请实施例提供一种通信装置,该通信装置可用于执行上述第五方面或第五方面的任一可能的设计中由虚拟交换机执行的步骤。该通信装置可通过硬件结构、软件模块、或硬件结构加软件模块的形式来实现上述各方法中的各功能。
在由软件模块构成时,通信装置可包括相互耦合的通信模块以及处理模块,其中,通信模块可用于支持通信装置进行通信,处理模块可用于通信装置执行处理操作,如生成需要发送的数据、信息或消息,或对接收的信号进行处理以得到数据、信息或消息。
在实现上述第五方面所述方法时,通信接口可通过主干端口接收来自于ENI的数据,该ENI接入该第一容器所属的虚拟机,该虚拟交换机部署于该虚拟机所属的主机,该数据携带第一VLAN标识,该第一VLAN标识为第一VLAN子接口的VLAN标识,该第一VLAN子接口连接至第一容器。
处理模块可根据VLAN标识与子端口之间的对应关系,确定该第一VLAN标识对应的第一子端口。
处理模块还可删除该数据中携带的该第一VLAN标识,并将该数据的收包端口配置为该第一子端口,所述第一子端口用于表示所述数据来自于所述第一容器。
通信模块还可根据该数据的路由信息转发该数据,所述路由信息用于确定所述数据的转发路由。
在一种可能的设计中,通信模块可接收来自于虚拟机代理的所述VLAN标识与子端口之间的对应关系。
在通过硬件组件实现第十三方面所示通信装置时,该通信装置可包括处理器。可由处理器执行以上第五方面中或第五方面的任一可能的设计中由虚拟交换机执行的步骤。该通信装置可包括通信接口(或称收发器、收发单元、通信单元),通信接口可用于支持以上装置与其他设备或装置进行通信。具体的,该通信接口可用于支持通信装置进行通信。在通过硬件组件实现以上装置时,该装置还可包括存储器,该存储器可用于存储程序,可由处理器执行该程序以执行以上通信装置所执行的步骤。具体的,通信接口可用于执行第十三方面中由通信模块所执行的步骤,和/或,处理器可用于执行以上第十三方面中由处理模块所执行的步骤。
第十四方面,本申请实施例提供一种通信装置,该通信装置可用于执行上述第六方面或第六方面的任一可能的设计中由虚拟交换机执行的步骤。该通信装置可通过硬件结构、软件模块、或硬件结构加软件模块的形式来实现上述各方法中的各功能。
在由软件模块构成时,通信装置可包括相互耦合的通信模块以及处理模块,其中,通信模块可用于支持通信装置进行通信,处理模块可用于通信装置执行处理操作,如生成需要发送的数据、信息或消息,或对接收的信号进行处理以得到数据、信息或消息。
在实现上述第六方面所述方法时,通信模块可接收数据,其中,该虚拟交换机部署于主机,该数据的目的端口为第一子端口。
处理模块可根据VLAN子接口与子端口之间的对应关系,确定该第一子端口对应的第一VLAN子接口,该第一VLAN子接口连接至第一容器,该第一容器部署于该主机的虚拟机中。
处理模块还可将第一VLAN标识写入该数据,其中,该第一VLAN标识为该第一VLAN子接口的VLAN标识。
处理模块还可根据主干端口与子端口之间的对应关系,确定该第一子端口对应的主干端口,该通信模块还可通过主干端口向ENI发送该数据,其中,该ENI接入该容器所属的虚拟机。
在一种可能的设计中,处理模块还可在该数据中添加该第一VLAN标识。
在一种可能的设计中,处理模块还可在该数据中添加该数据的协议标识。
在一种可能的设计中,通信模块还可接收来自于虚拟机代理的VLAN标识与子端口之间的对应关系以及主干端口与子端口之间的对应关系。
在通过硬件组件实现第十四方面所示通信装置时,该通信装置可包括处理器。可由处理器执行以上第六方面中或第六方面的任一可能的设计中由虚拟交换机执行的步骤。该通信装置可包括通信接口(或称收发器、收发单元、通信单元),通信接口可用于支持以上装置与其他设备或装置进行通信。具体的,该通信接口可用于支持通信装置进行通信。在通过硬件组件实现以上装置时,该装置还可包括存储器,该存储器可用于存储程序,可由处理器执行该程序以执行以上通信装置所执行的步骤。具体的,通信接口可用于执行第十四方面中由通信模块所执行的步骤,和/或,处理器可用于执行以上第十四方面中由处理模块所执行的步骤。
第十五方面,本申请实施例提供一种通信装置,该通信装置可用于执行上述第七方面或第七方面的任一可能的设计中由虚拟交换机执行的步骤。该通信装置可通过硬件结构、软件模块、或硬件结构加软件模块的形式来实现上述各方法中的各功能。
在由软件模块构成时,通信装置可包括相互耦合的通信模块以及处理模块,其中,通信模块可用于支持通信装置进行通信,处理模块可用于通信装置执行处理操作,如生成需要发送的数据、信息或消息,或对接收的信号进行处理以得到数据、信息或消息。
在实现上述第七方面所述方法时,通信接口可接收来自于虚拟交换机的数据,其中,该数据中携带第一VLAN标识,该第一VLAN标识为第一VLAN子接口的VLAN标识,该ENI接入虚拟机,该第一VLAN子接口连接至第一容器,该第一容器部署于该虚拟机中。
通信模块还可根据该数据中的第一VLAN标识将该数据发送至该第一VLAN子接口。
在通过硬件组件实现第十五方面所示通信装置时,该通信装置可包括处理器。可由处理器执行以上第七方面中或第七方面的任一可能的设计中由ENI执行的步骤。该通信装置可包括通信接口(或称收发器、收发单元、通信单元),通信接口可用于支持以上装置与其他设备或装置进行通信。具体的,该通信接口可用于支持通信装置进行通信。在通过硬件组件实现以上装置时,该装置还可包括存储器,该存储器可用于存储程序,可由处理器执行该程序以执行以上通信装置所执行的步骤。具体的,通信接口可用于执行第十五方面中由通信模块所执行的步骤,和/或,处理器可用于执行以上第十五方面中由处理模块所执行的步骤。
第十六方面,本申请实施例提供一种通信装置,该通信装置可用于执行上述第八方面或第八方面的任一可能的设计中由第一VLAN子接口执行的步骤。该通信装置可通过硬件结构、软件模块、或硬件结构加软件模块的形式来实现上述各方法中的各功能。
在由软件模块构成时,通信装置可包括相互耦合的通信模块以及处理模块,其中,通信模块可用于支持通信装置进行通信,处理模块可用于通信装置执行处理操作,如生成需要发送的数据、信息或消息,或对接收的信号进行处理以得到数据、信息或消息。
在实现上述第八方面所述方法时,通信接口可接收来自于ENI的数据,其中,该数据中携带第一VLAN标识,该第一VLAN标识为该第一VLAN子接口的VLAN标识,该ENI接入虚拟机,该第一VLAN子接口连接至第一容器,该第一容器部署于该虚拟机中。处理模块可删除该数据中携带的该第一VLAN标识。
在通过硬件组件实现第十六方面所示通信装置时,该通信装置可包括处理器。可由处理器执行以上第八方面中或第八方面的任一可能的设计中由第一VLAN子接口执行的步骤。该通信装置可包括通信接口(或称收发器、收发单元、通信单元),通信接口可用于支持以上装置与其他设备或装置进行通信。具体的,该通信接口可用于支持通信装置进行通信。在通过硬件组件实现以上装置时,该装置还可包括存储器,该存储器可用于存储程序,可由处理器执行该程序以执行以上通信装置所执行的步骤。具体的,通信接口可用于执行第十六方面中由通信模块所执行的步骤,和/或,处理器可用于执行以上第十六方面中由处理模块所执行的步骤。
第十七方面,本申请提供一种通信系统。该通信系统可包括第一VLAN子接口、ENI以及虚拟交换机,用于执行上述第一方面所示方法。
其中,第一VLAN子接口可用于将第一容器的数据发送至弹性网络接口ENI,其中,该第一VLAN子接口连接至该第一容器,该数据携带第一VLAN标识,该第一VLAN标识为该第一VLAN子接口的VLAN标识。
ENI可用于将该数据发送至虚拟交换机,该ENI接入该第一容器所属的虚拟机的主干端口,该虚拟交换机部署于该虚拟机所属的主机。
虚拟交换机可用于通过主干端口接收该数据。虚拟交换机还可根据VLAN标识与子端口之间的对应关系,确定该第一VLAN标识对应的第一子端口。虚拟交换机还可删除该数据中携带的该第一VLAN标识,并将该数据的收包端口配置为该第一子端口,该第一子端口用于表示该数据来自于该第一容器。虚拟交换机还可根据该数据的路由信息转发该数据,该路由信息用于确定该数据的转发路由。
在一种可能的设计中,该通信系统还可包括虚拟机代理,用于向所述虚拟交换机发送所述VLAN标识与子端口之间的对应关系。
或者,该通信系统可包括第十一方面至第十三方面所示的通信装置。
第十八方面,本申请提供一种通信系统。该通信系统可包括第一VLAN子接口、ENI以及虚拟交换机,用于执行上述第二方面所示方法。
其中,虚拟交换机可用于接收数据,其中,该虚拟交换机部署于主机,该数据的目的端口为第一子端口。该虚拟交换机还可根据VLAN子接口与子端口之间的对应关系,确定该第一子端口对应的第一VLAN子接口,该第一VLAN子接口连接至第一容器。该虚拟交换机进一步将第一VLAN标识写入该数据,其中,该第一VLAN标识为该第一VLAN子接口的VLAN标识。此后,该虚拟交换机可根据主干端口与子端口之间的对应关系,确定所述第一子端口对应的主干端口,并通过主干端口向ENI发送该数据,该ENI接入虚拟机,该虚拟机包括该第一容器,该虚拟机属于该主机。
该ENI可用于接收该数据,并根据第一VLAN标识将该数据发送至该第一VLAN子接口。
第一VLAN子接口可删除该数据中携带的该第一VLAN标识。
在一种可能的设计中,该通信系统还可包括虚拟机代理,用于向所述虚拟交换机发送所述VLAN标识与子端口之间的对应关系以及所述主干端口与子端口之间的对应关系。
或者说,该通信系统可包括第十四方面至第十六方面所示的通信装置。
第十九方面,本申请提供一种通信系统。该通信系统可包括容器控制器模块、容器代理模块、容器数据库模块、虚拟机数据库模块、虚拟机代理模块以及虚拟机控制器模块,用于执行上述第九方面所示方法。
其中,可由虚拟机代理模块创建ENI,并在虚拟交换机创建主干端口以及与该主干端口对应的多个子端口,其中,该主干端口关联至该ENI。
容器控制器模块可向虚拟机控制器模块申请预分配的IP地址网段和可用的VLANID,并接收虚拟机控制器模块分配的IP地址网段和可用的VLAN ID。
虚拟机代理模块接收虚拟机控制器模块分配的IP地址网段和可用的VLAN ID,并根据IP地址网段和可用的VLAN ID配置子端口。
容器控制器模块向主机的容器代理模块发送逻辑网络配置,逻辑网络配置中包括IP地址网段和可用的VLAN ID。
容器代理模块在接收到CNI的容器网络创建请求后,添加VLAN子接口,并根据逻辑网络配置,配置VLAN子接口的VLAN ID,将VLAN子接口连接到容器,并根据逻辑网络配置,配置VLAN子接口的IP地址。
第二十方面,本申请提供一种通信系统。该通信系统可包括容器控制器模块、容器代理模块、虚拟机代理模块以及虚拟机控制器模块,用于执行上述第十方面所示方法。
其中,容器代理模块可在接收到CNI的容器网络接口删除请求后,清空VLAN子接口配置的IP地址,并删除VLAN子接口。
容器控制器模块可向容器代理以及虚拟机控制器模块发送逻辑网络删除请求。
虚拟机控制器模块可根据该逻辑网络删除请求,回收预分配的IP地址网段。
虚拟机控制器模块可向虚拟机代理发送逻辑网络删除请求。
虚拟机代理模块根据逻辑网络删除请求删除已经创建的主干端口和子端口。
第二十一方面,本申请提供一种计算机存储介质,所述计算机存储介质中存储有指令(或称程序),当其在计算机上被调用执行时,使得计算机执行上述第三方面至第八方面及上述方面可能的设计中的任意一种可能的设计中所述的方法。
第二十二方面,本申请提供一种计算机程序产品,该计算基础产品可包含指令,当所述计算机程序产品在计算机上运行时,使得计算机执行上述第三方面至第八方面及上述方面可能的设计中的任意一种可能的设计中所述的方法。
第二十三方面,本申请提供一种芯片或包含芯片的芯片系统,该芯片可包括处理器。该芯片还可以包括存储器(或存储模块)和/或通信接口(或通信模块)。该芯片可用于执行上述第三方面至第八方面及上述方面可能的设计中的任意一种可能的设计中所述的方法。该芯片系统可以由上述芯片构成,也可以包含上述芯片和其他分立器件,如存储器(或存储模块)和/或通信接口(或通信模块)。
上述第三方面至第五方面、第十一至第十三方面、第十七以及第二十一至二十三方面及上述方面可能的设计中的有益效果可以参考对第一方面及其任一可能的设计中所述方法的有益效果的描述。上述第六方面至第八方面、第十四至第十六方面、第十八以及第二十一至二十三方面及上述方面可能的设计中的有益效果可以参考对第二方面及其任一可能的设计中所述方法的有益效果的描述。上述第十九方面的有益效果可以参考对第九方面中所述方法的有益效果的描述。上述第二十方面的有益效果可以参考对第十方面中所述方法的有益效果的描述。
附图说明
图1为本申请实施例提供的一种容器网络的架构示意图;
图2为本申请实施例提供的一种容器网络的架构示意图;
图3为本申请实施例提供的一种数据传输方法的流程示意图;
图4为本申请实施例提供的一种数据传输方法的流程示意图;
图5为本申请实施例提供的一种创建主干端口和子端口的方法流程示意图;
图6为本申请实施例提供的一种创建主干端口和子端口的方法流程示意图;
图7为本申请实施例提供的一种创建主干端口和子端口的方法流程示意图;
图8为本申请实施例提供的一种创建主干端口和子端口的方法流程示意图;
图9为本申请实施例提供的一种创建主干端口和子端口的方法流程示意图;
图10为本申请实施例提供的一种删除主干端口和子端口的方法流程示意图;
图11为本申请实施例提供的一种数据传输方法的系统和流程示意图;
图12为本申请实施例提供的一种数据传输方法的系统和流程示意图;
图13为本申请实施例提供的一种通信装置的结构示意图;
图14为本申请实施例提供的一种通信装置的结构示意图;
图15为本申请实施例提供的一种通信系统的结构示意图。
具体实施方式
为了优化容器网络的数据传输方式,本申请提供一种容器网络的数据传输方法。下面将结合附图对本申请作进一步地详细描述。应理解,下面所介绍的方法实施例中的具体操作方法也可以应用于装置实施例或系统实施例中。
本申请实施例提供的容器网络的数据传输方法可应用于如图1所示的容器网络通信系统。
如图1所示,虚拟私有云(virtual private cloud,VPC)等虚拟机网络系统中,主机(或称主机节点、节点)可部署多个虚拟机(virtual machine,VM),每个VM可部署多个容器。其中,虚拟机可通过ENI实现与主机的连接。ENI支持通过热插拔技术弹性的接入到虚拟机或者从虚拟机中移除。
容器可用于在平台即服务(platform as a service,PaaS)系统中支持计算、存储与网络等资源隔离的技术,PaaS系统中,可按容器实例来分配和回收资源。通过容器控制器(container controller)可管理容器的生命周期和调度。
在PaaS系统中,容器网络是指基于容器组网的网络,其用于实现容器与容器之间、容器与其它系统之间进行组网通信,实现网络策略,安全隔离等网络功能。容器网络可包括容器网络控制面(或简称控制面)以及容器网络数据面(或简称数据面)。
其中,容器网络控制面是指PaaS系统中提供容器网络管控功能的组件,容器网络控制面实现对网络数据面的端口配置、资源分配、设备生命周期管理、转发表项管理、网络拓扑管理、策略规则管理以及监控等。
例如,在ENI直通容器的组网方式中,容器网络控制面可包括容器控制器、容器代理(container agent)、容器数据库(container database)、虚拟机数据库(VMdatabase)、虚拟机代理(VM agent)以及虚拟机控制器(VMcontroller)等组件或模块。其中,容器控制器为管控组件,可与虚拟机控制器交互,包括向虚拟机控制器请求ENI信息,将ENI信息写入容器数据库。虚拟机控制器为管理组件,功能包括生成端口(port)(或称接口、端口设备、逻辑网络接口设备等),并将port直通到虚拟机内,其中,直通是指直接连通(或称直接连接)。容器代理可操作ENI,将ENI直通到容器内。该组网方式下,进行数据传输时可由一个ENI负责一个容器的数据传输。
基于ENI直通容器的组网方式创建的容器网络,要求每个容器直通一个ENI,如果部署的容器数量增加,容器网络所需的网卡数量增加,容器网络很难负荷,因此无法支持高密度的容器部署。此外,该容器组网方式要求执行ENI直通虚拟机的操作,该步骤占时较大,影响了容器的拉起时延。
此外,在ENI多IP组网方式中,容器控制器可向虚拟机控制器请求ENI网卡信息以及IP地址,将ENI网卡信息以及IP地址写入容器数据库。虚拟机控制器可用于生成port,并将port直通到VM内。容器代理可操作ENI,生成虚拟以太网(virtual ethernet,veth)设备,将veth设备放到容器中,并配置IP地址。该组网方式下,进行数据传输时可由一个ENI根据IP地址负责多个容器的数据传输。
基于ENI多IP组网方式创建的容器网络,虽然不要求每个容器直通一个ENI,但在组网过程中仍然要求执行ENI直通虚拟机的操作,存在较大的时延,并且随着IP网段的增多,组网时延也会不断增大。另外,该组网方式存在较大的配置局限,即一个ENI网卡只能供IP地址属于一个子网的容器使用,并且虚拟机上的每个ENI只能为某个固定IP网段服务,当容器的IP网段很多的时候,ENI数量也要增加,需要占用更多的资源。
容器网络数据面是指PaaS系统中提供容器网络报文转发的组件,网络数据面一般基于虚拟交互机实现,提供接口设备、网络报文转发、报文过滤、路由等组网功能。容器网络数据面可包括虚拟交换机(virtual switch),虚拟交换机可部署在主机上,用于实现虚拟机和容器的组网,提供网络二层和三层转发功能,策略(policy)功能等。
下面,结合本申请实施例提供的容器组网通信系统,对本申请实施例提供的数据传输方式进行说明。
如图2所示,本申请实施例提供的容器组网通信系统可包括主机,主机部署有虚拟机以及虚拟交换机等组件和模块,其中,虚拟机部署有容器。虚拟交换机可部署主干端口(trunk port)以及至少一个子端口(sub port)。
其中,trunk port是虚拟交换机中的一种逻辑端口设备,该逻辑端口设备作为subport的共享父设备,支持多个sub port关联到同一个trunk port,trunk port的生命周期由虚拟交换机控制面管理,由虚拟交换机数据面实现网络报文的转发和其它网络功能。
sub port是指虚拟交换机中的一种逻辑端口设备,该逻辑端口设备作为trunkport的子设备关联到trunk port,sub port共享其trunk port的报文收发队列等物理资源。sub port的生命周期由容器网络控制面管理,由虚拟交换机数据面实现网络报文的转发。sub port连接容器时,在容器所在的主机操作系统中创建虚拟局域网(virtual localarea network,VLAN)子接口与sub port对应。VLAN子接口是指,基于内核技术创建的VLAN设备,VLAN子接口用于连接容器和容器所在主机,VLAN子接口的生命周期由容器网络控制面管理,基于内核网络协议栈进行网络报文转发。
图2所示架构可应用于基础设施即服务(infrastructure as a service,IaaS)层与PaaS层融合的场景,作为融合场景下的一种容器网络组网方案。在主机201内虚拟机203的容器204的组网过程中,可将虚拟机203接入的ENI203.B注册为IaaS层虚拟交换机的trunk port,因此ENI203.B的数据包会到达虚拟交换机202的trunk port,该trunk port发出的数据包会到达ENI203.B。应理解,该ENI203.B还可接入虚拟机203以外的其他虚拟机,从而支持多个虚拟机与主机201的连接。以及可在虚拟机203上基于ENI203.B创建多个VLAN子接口,并将多个VLAN子接口分别接入虚拟机203的容器,例如,VLAN子接口204.A接入容器204。应理解,同一个ENI下不同容器的VLAN子接口根据不同的VLAN标识(identifier,ID)作为区分,不同ENI下VLAN ID配置是没有限制的,可以重复。同时,可将这些VLAN子接口注册为IaaS层虚拟交换机的sub port,并且关联到对应的trunk port,比如,VLAN子接口204.A对应的sub port关联到ENI203.B对应的trunk port202.A。这些sub port在IaaS层的虚拟交换机中没有真实的收发包队列,而是复用了trunk port的收发包队列。
本申请实施例提供的容器网络的数据传输方法可由虚拟交换机、ENI以及第一VLAN子接口实施。其中,该虚拟交换机部署于主机,ENI接入该主机中的一个虚拟机,第一VLAN子接口连接至ENI对应的虚拟机中的一个容器。以图2为例,虚拟交换机包括图2所示虚拟交换机202,ENI包括图2所示的ENI203.B,第一VLAN子接口包括图2所示的VLAN子接口204.A。
基于图2所示架构,本申请实施例提供的一种数据传输方法可包括如图3所示步骤,可用于将容器的数据向外发送:
S101:VLAN子接口204.A将容器204的数据发送出容器204,到达ENI203.B。其中,数据中携带VLAN ID_100,VLAN ID_100为VLAN子接口204.A的VLAN ID。
VLAN子接口204.A可在该数据中携带VLAN ID_100。VLAN子接口204.A还可在该数据中携带协议版本标识(如802.1q)等。
其中,容器204与VLAN子接口204.A对应。具体的,容器204与VLAN子接口204.A对应是指,连接至容器204的sub port202.B与VLAN子接口204.A对应,或者说,容器204、VLAN子接口204.A以及sub port202.B之间两两对应。其中,VLAN子接口204.A可通过VLAN ID_100表示。
应理解,这里的数据包括数据报文。
S102:数据通过ENI203.B的发包列发送出虚拟机203,通过trunk port202.A到达虚拟交换机202。
S103:虚拟交换机202根据VLAN ID与sub port之间的对应关系,确定数据中携带的VLAN ID_100所属的VLAN子接口204.A所对应的sub port202.B。
其中,VLAN ID_100与sub port202.B之间的对应关系、VLAN子接口204.A与subport202.B之间的对应关系,或VLAN子接口204.A、VLAN ID_100与sub port202.B之间的对应关系可在容器组网过程中由虚拟机代理201.A发送至虚拟交换机202。在本申请实施例提供的容器组网的过程中,可由虚拟机代理201.A配置VLAN ID_100与sub port202.B之间的对应关系,并将该对应关系发送至虚拟交换机202。
可选的,可由虚拟交换机202在确定该数据通过trunk port202.A接收后执行。
S104:虚拟交换机202删除数据中携带的VLAN ID_100,并将收包端口配置为subport202.B。
sub port202.B可用于指示该数据来自于容器204。
具体的,虚拟交换机202可将sub port202.B的端口号作为收包端口号写入该数据。
可选的,S104所示步骤可由虚拟交换机202的内核执行。
S105:虚拟交换机202根据数据的路由信息进行数据的转发。
其中,路由信息可用于确定该数据的转发路由。
这里虚拟交换机202可按照协议(如协议802.1q)对该数据进行转发。
其中,该数据可转发至虚拟机203的除容器204以外的其他容器,或转发至主机201中除虚拟机203以外的虚拟机,或转发至主机201以外的其他主机。
可选的,可由虚拟交换机的内核将S104获得的数据转发至虚拟交换机202的转发模块,由该转发模块对数据进行转发。
采用以上图3所示方法,可由虚拟交换机通过trunk port接收来自于容器的数据,并由虚拟交换机对来自于容器的数据进行转发,该trunk port可对应一个ENI,能够满足高密度部署容器的需求。此外,上述传输数据的过程不要求一个ENI对应的全部容器属于同一个子网,数据传输方式更为灵活。
基于图2所示架构,本申请实施例提供的一种数据传输方法可包括如图4所示步骤,可用于将来自于外部的数据发送至容器:
S201:虚拟交换机202接收数据,确定该数据的目的端口为sub port202.B。
具体的,虚拟交换机202可存储sub port的端口号,比如,虚拟交换机202已知subport202.B的端口号,在接收到数据后,若确定该数据的目的端口号为sub port202.B的端口号,则可确定数据的目的端口为sub port202.B。sub port202.B的端口号可在容器组网过程中发送至虚拟交换机202。
其中,该数据可来自于虚拟机203的除容器204以外的其他容器,或来自于主机201中除虚拟机203以外的虚拟机,或来自于主机201以外的其他主机。
可选的,可由虚拟交换机202的内核执行S201所示步骤。
S202:虚拟交换机202根据VLAN子接口与sub port的对应关系,确定subport202.B对应的VLAN子接口204.A。
VLAN ID_100与sub port202.B之间的对应关系可在容器组网过程中由容器网络控制面发送至虚拟交换机202。
可选的,可由虚拟交换机202的内核执行S202所示步骤。
S203:虚拟交换机202将VLAN ID_100写入该数据。
其中,VLAN ID_100为VLAN子接口204.A的VLAN ID,VLAN子接口204.A与subport202.B相对应。
此外,虚拟交换机202还可在该数据中携带协议版本标识(如802.1q)等。
可选的,可由虚拟交换机202的内核执行S203所示步骤。
S204:虚拟交换机202根据trunk port与sub port的对应关系,确定subport202.B对应的trunk port202.A。
trunk port202.A与sub port202.B之间的对应关系,可由虚拟机代理201.A在创建trunk port202.A与sub port202.B后发送至虚拟交换机202。
S205:虚拟交换机202通过trunk port202.A的发送队列发送该数据。
S206:ENI203.B接收该数据,确定该数据中携带VLAN ID_100。
S207:ENI203.B根据VLAN ID_100将数据发送至VLAN子接口204.A。
示例性的,ENI203.B将VLAN子接口204.A配置为数据的目的端口,并将该数据转发至目的端口。
S208:VLAN子接口204.A删除(或称剥除、清除)数据中携带的VLAN ID_100。
由于VLAN子接口204.A直通容器,可由容器中的业务获取删除VLAN ID_100后的数据。
采用以上图4所示方法,可由虚拟交换机通过trunk port对发送至虚拟机中多个容器的数据进行转发,由虚拟机中的容器接收相应数据,其中,该trunk port可对应一个ENI,能够满足高密度部署容器的需求。此外,上述传输数据的过程不要求一个ENI对应的全部容器属于同一个子网,数据传输方式更为灵活。
下面结合附图,具体说明图2所示的容器网络系统中主干端口和子端口的创建和删除流程。在多主机的集群环境下,trunk port和sub port的创建和配置过程可包括图5所示步骤:
S301:集群启动过程中,虚拟机代理201.A建立一个ENI,并在虚拟交换机创建一个trunk port以及与该trunk port对应的多个sub port,其中,该trunk port关联至该ENI。
此外,在创建一个trunk port以及与该trunk port对应的多个sub port之后,虚拟机代理201.A可向虚拟交换机202发送sub port与trunk port之间的对应关系。
S302:容器控制器101.B向虚拟机控制器102.B申请预分配的IP地址网段和可用的VLAN ID,并接收虚拟机控制器102.B分配的IP地址网段和可用的VLAN ID。IP地址网段和可用的VLAN ID分别存储至容器数据库101.A以及虚拟机数据库102.A。之后执行S303。
如图6所示,S302所示步骤具体可包括以下流程:
S302-1:容器控制器101.B向虚拟机控制器102.B申请预分配的IP地址网段和可用的VLAN ID。
S302-2:容器控制器101.B判断IP地址网段和可用的VLAN ID是否分配成功,比如,判断是否接收到来自于虚拟机控制器102.B的IP地址网段和可用的VLAN ID。若是,则执行S302-3,否则执行S302-4。
S302-3:容器控制器101.B将IP地址网段和可用的VLAN ID存储至容器数据库101.A。之后结束本流程。
S302-4:容器控制器101.B判断是否重新向虚拟机控制器102.B申请预分配的IP地址网段和可用的VLAN ID,若是,则再次执行S302-1,否则接收本流程。比如,容器控制器101.B可判断IP地址网段和可用的VLAN ID分配失败的次数是否达到阈值,如5次,若是,则判断不重新向虚拟机控制器102.B申请预分配的IP地址网段和可用的VLAN ID,若未达到阈值,则判断重新向虚拟机控制器102.B申请预分配的IP地址网段和可用的VLAN ID。
S303:虚拟机控制器102.B将分配好的IP地址网段和可用的VLAN ID发送至虚拟机代理201.A。
S304:虚拟机代理201.A根据IP地址网段和可用的VLAN ID配置sub port202.B。之后执行S305。
此外,在根据可用的VLAN ID配置sub port202.B之后,虚拟机代理201.A可向虚拟交换机202发送sub port202.B与分配的VLAN ID之间的对应关系。
如图7所示,S304所示步骤具体可包括以下流程:
S304-1:虚拟机代理201.A调用虚拟交换机的接口配置创建好的多个subport202.B。
具体的,虚拟机代理201.A可配置sub port202.B与VLAN ID之间一一对应的关系。
其中,虚拟机代理201.A可预先调用虚拟交换机的接口创建该trunk port202.A以及对应的多个sub port202.B。
S304-2:虚拟机代理201.A判断配置是否成功,若是,则结束本流程,否则执行S304-3。
S304-3:虚拟机代理201.A判断是否再次调用虚拟交换机的接口配置创建好的subport202.B,若是,则再次执行S304-1,否则,结束本流程。比如,虚拟机代理201.A可判断配置失败的次数是否达到阈值,若达到阈值,则可判断不再调用虚拟交换机的接口配置创建好的sub port202.B,否则,若未达到阈值,则可判断再次调用虚拟交换机的接口配置创建好的sub port202.B。
S305:容器控制器101.B向集群中各主机的容器代理203.A发送逻辑网络配置,逻辑网络配置中包括IP地址网段和可用的VLAN ID。之后执行S306。
如图8所示,S305所示步骤具体可包括以下流程:
S305-1:容器控制器101.B判断是否将虚拟机控制器102.B分配的IP地址和VLANID存储至容器数据库101.A,若是,则执行S305-2,否则,执行S305-3。
S305-2:容器控制器101.B向集群中各主机的容器代理203.A发送逻辑网络配置,之后执行S305-4。
S305-3:容器控制器101.B判断是否重新执行IP地址和VLAN ID的存储,若是,则尝试将虚拟机控制器102.B分配的IP地址和VLAN ID存储至容器数据库101.A,之后再次执行S305-1。否则,结束本流程。
S305-4:容器控制器101.B判断逻辑网络配置是否发送成功,比如,若接收到来自于容器代理203.A的接收响应则确定发送成功。若是,则结束本流程,否则,重新执行S305-2。
S306:容器代理203.A在接收到容器网络接口(container network interface,CNI)的容器网络创建请求后,添加VLAN子接口204.A,并根据逻辑网络配置,配置VLAN子接口204.A的VLAN ID,将VLAN子接口204.A连接到容器204,并根据逻辑网络配置,配置VLAN子接口204.A的IP地址。
如图9所示,S306所示步骤具体可包括以下流程:
S306-1:容器代理203.A调用CNI添加VLAN子接口204.A。
S306-2:容器代理203.A判断是否成功添加VLAN子接口204.A,若是,则执行S306-3,否则,再次执行S306-1。
S306-3:容器代理203.A配置VLAN子接口204.A的VLAN ID,将VLAN子接口204.A放入容器204中,并配置VLAN子接口204.A的IP地址。
S306-4:容器代理203.A判断是否成功将VLAN子接口204.A放入容器204中,并成功配置VLAN子接口204.A的IP地址和VLAN ID,若是,则结束本流程,否则,再次执行S306-3。
采用S301-S306所示方法,可通过容器网络控制面实现图2所示trunk port和subport的创建和配置。
此外,在多主机的集群环境下,图2所示中主干端口和子端口的删除过程可包括图10所示步骤:
S401:容器代理203.A在接收到CNI的容器网络接口删除请求后,清空(flush)VLAN子接口204.A配置的IP地址,并删除VLAN子接口204.A。
S402:容器控制器101.B向容器代理203.A以及虚拟机控制器102.B发送逻辑网络删除请求。
S403:虚拟机控制器102.B根据该逻辑网络删除请求回收预分配的IP地址网段。
S404:虚拟机控制器102.B向虚拟机代理201.A发送逻辑网络删除请求。
S405:虚拟机代理201.A根据逻辑网络删除请求删除已经创建的trunk port和subport。
其中,sub port包括sub port202.B。
采用该方法,可通过容器网络控制面实现图2所示trunk port和sub port的删除。
基于本申请实施例提供的容器网络的数据传输方法,如图11所示,当在同一主机内的容器301要访问同主机的容器300时,容器301发送的数据经过VLAN子接口301.A(VLAN子接口301.A对应于sub port100.B)达到ENI,该数据的目的端口为sub port100.C,VLAN子接口301.A在数据中添加了VLAN子接口301.A的VLAN ID(以下称为VLAN ID_200),数据由ENI发送至虚拟交换机,经过trunk port100.A收包后,虚拟交换机剥除数据中的VLAN ID_200,将数据发送至sub port100.C。sub port100.C将数据发送给虚拟交换机,虚拟交换机在数据中携带VLAN ID_100(即VLAN子接口300.A的VLAN ID,VLAN子接口300.A对应于subport100.C),经过trunk port100.A发包到容器300的VLAN子接口300.A,VLAN子接口剥除VLAN ID_100,至此发包流程结束。
如图12所示,当在属于主机201的容器301要访问另一个主机401的虚拟机402中的容器403时,容器301发出的数据经过VLAN子接口301.A(VLAN子接口301.A对应于subport100.B),该数据的目的端口为sub port403.B,VLAN子接口301.A在数据中添加了VLAN子接口301.A的VLAN ID(以下称为VLAN ID_200),经过trunk port100.A收包后到达主机201对应的虚拟交换机,主机201对应的虚拟交换机剥除VLAN ID_200,并根据转发规则转发到主机201的以太网(ethernet,eth)eth0口,数据被发送到交换机,交换机收到数据之后转发到主机401的以太网eth1口,进而通过eth1口转发到主机101对应的虚拟交换机,进而转发到sub port403.B。sub port403.B将该数据发包到主机101对应的虚拟交换机,主机101对应的虚拟交换机在数据上打上VLAN ID_300(即VLAN子接口403.A的VLAN ID,VLAN子接口403.A对应于sub port403.B),经过trunk port404.A发包到容器403的VLAN子接口403.A,VLAN子接口403.A被添加到容器403中,VLAN子接口403.A剥除VLAN ID_100,至此发包流程结束。
基于相同的构思,为了实现上述本申请实施例提供的方法中的各功能,本申请还提供一种通信装置。该通信装置可用于执行以上方法实施例中由虚拟交换机、ENI或VLAN子接口执行的步骤。该通信装置可以包括硬件结构和/或软件模块,以硬件结构、软件模块、或硬件结构加软件模块的形式来实现上述各功能。上述各功能中的某个功能以硬件结构、软件模块、还是硬件结构加软件模块的方式来执行,取决于技术方案的特定应用和设计约束条件。
如图13所示,本申请实施例提供的一种通信装置可以包括通信模块1301以及处理模块1302,以上通信模块1301以及处理模块1302之间相互耦合。该通信装置1300可用于执行以上图3至图8中所示的由虚拟交换机、ENI或VLAN子接口(以下可称为第一VLAN子接口)执行的步骤。该通信模块1301可用于支持通信装置1300进行通信,通信模块1301也可被称为通信单元、通信接口、收发模块或收发单元。通信模块1301可具备数据传输功能。处理模块1302也可被称为处理单元,可用于支持该通信装置1300执行上述方法实施例中虚拟交换机、ENI或VLAN子接口的处理动作,包括但不限于:生成由通信模块1301发送的满足通信协议的数据、信令,和/或,对通信模块1301接收的信号进行处理。
具体的,在执行由虚拟交换机执行的转发容器的数据的动作时,通信模块1301可将第一容器的数据发送至ENI,其中,该第一VLAN子接口连接至该第一容器,该数据携带第一VLAN标识,该第一VLAN标识为该第一VLAN子接口的VLAN标识,该ENI接入该第一容器所属的虚拟机,该虚拟交换机部署于该虚拟机所属的主机。
在一种可能的设计中,处理模块可在该数据中添加该第一VLAN标识。
在一种可能的设计中,处理模块还可在该数据中添加该数据的协议标识。
在执行由ENI执行的转发容器的数据的动作时,通信模块1301可接收来自于第一VLAN子接口的数据,该第一VLAN子接口连接至第一容器,该数据携带第一VLAN标识,该第一VLAN标识为该第一VLAN子接口的VLAN标识;该ENI接入该第一容器所属的虚拟机,该虚拟交换机部署于该虚拟机所属的主机。
通信模块1301还可将该数据发送至虚拟交换机的主干端口,该虚拟交换机部署于该虚拟机所属的主机。
在执行由第一VLAN子接口执行的转发容器的数据的动作时,通信接口1301可通过主干端口接收来自于ENI的数据,该ENI接入该第一容器所属的虚拟机,该虚拟交换机部署于该虚拟机所属的主机,该数据携带第一VLAN标识,该第一VLAN标识为第一VLAN子接口的VLAN标识,该第一VLAN子接口连接至第一容器。
处理模块1302可根据VLAN标识与子端口之间的对应关系,确定该第一VLAN标识对应的第一子端口。
处理模块1302还可删除该数据中携带的该第一VLAN标识,并将该数据的收包端口配置为该第一子端口,所述第一子端口用于表示所述数据来自于所述第一容器。
通信模块1301还可根据该数据的路由信息转发该数据,所述路由信息用于确定所述数据的转发路由。
在一种可能的设计中,通信模块1301可接收来自于虚拟机代理的所述VLAN标识与子端口之间的对应关系。
在执行由虚拟交换机执行的向容器转发数据的动作时,通信模块1301可接收数据,其中,该虚拟交换机部署于主机,该数据的目的端口为第一子端口。处理模块1302可根据VLAN子接口与子端口之间的对应关系,确定该第一子端口对应的第一VLAN子接口,该第一VLAN子接口连接至第一容器,该第一容器部署于该主机的虚拟机中。处理模块1302还可将第一VLAN标识写入该数据,其中,该第一VLAN标识为该第一VLAN子接口的VLAN标识。处理模块1302还可根据主干端口与子端口之间的对应关系,确定该第一子端口对应的主干端口,该通信模块还可通过主干端口向ENI发送该数据,其中,该ENI接入该容器所属的虚拟机。
在一种可能的设计中,处理模块1302还可在该数据中添加该第一VLAN标识。
在一种可能的设计中,处理模块1302还可在该数据中添加该数据的协议标识。
在一种可能的设计中,通信模块1301还可接收来自于虚拟机代理的VLAN标识与子端口之间的对应关系以及主干端口与子端口之间的对应关系。
在执行由ENI执行的向容器转发数据的动作时,通信接口1301可接收来自于虚拟交换机的数据,其中,该数据中携带第一VLAN标识,该第一VLAN标识为第一VLAN子接口的VLAN标识,该ENI接入虚拟机,该第一VLAN子接口连接至第一容器,该第一容器部署于该虚拟机中。
通信模块1301还可根据该数据中的第一VLAN标识将该数据发送至该第一VLAN子接口。
在执行由第一VLAN子接口执行的向容器转发数据的动作时,通信接口1301可接收来自于ENI的数据,其中,该数据中携带第一VLAN标识,该第一VLAN标识为该第一VLAN子接口的VLAN标识,该ENI接入虚拟机,该第一VLAN子接口连接至第一容器,该第一容器部署于该虚拟机中。处理模块1302可删除该数据中携带的该第一VLAN标识。
此外,另一种可能的实现方式中,若通过硬件组件实现该通信装置,其结构还可如图14所示。为便于理解,图14中仅示出了执行本申请所示方法所必须的结构,本申请并不限制通信装置可具备更多组件。该通信装置1400可包括通信接口1401、存储器1402以及处理器1403。该通信接口1401可以用于通信装置进行通信,如用于通过有线和/或无线发送或接收信号,从而进行信息、数据和消息等的发送和/或接收。该存储器1402与所述处理器1403耦合,其用于保存通信装置1400实现各功能所必要的程序和数据。该处理器1403被配置为支持通信装置1400执行上述方法中由虚拟交换机、ENI或第一VLAN子接口执行的处理功能,如确定生成由通信接口1401发送的信息、消息,和/或,对通信接口1401接收的信号进行解调解码等等。以上存储器1402以及处理器1403可集成于一体也可相互独立。
示例性的,该通信接口1401可包括有线通信接口,可用于支持通信装置1400通过有线方式接收和发送信令和/或数据。通信接口1401也可被称为收发单元或通信单元。或者,该通信接口1401可包括无线收发器(如包括调制解调器和/或天线),可用于支持通信装置1400通过无线方式接收和发送信令和/或数据。通信接口1401也可被称为无线收发器或无线通信单元。
该处理器1403可通过处理芯片或处理电路实现。
应理解,以上通信接口1401可用于执行由通信模块1301执行的动作。处理器1403可用于调用存储器1402中的程序,执行由处理模块1302执行的动作。
具体的,在执行由虚拟交换机执行的转发容器的数据的动作时,通信接口1401可将第一容器的数据发送至ENI,其中,该第一VLAN子接口连接至该第一容器,该数据携带第一VLAN标识,该第一VLAN标识为该第一VLAN子接口的VLAN标识,该ENI接入该第一容器所属的虚拟机,该虚拟交换机部署于该虚拟机所属的主机。
在一种可能的设计中,处理模块可在该数据中添加该第一VLAN标识。
在一种可能的设计中,处理模块还可在该数据中添加该数据的协议标识。
在执行由ENI执行的转发容器的数据的动作时,通信接口1401可接收来自于第一VLAN子接口的数据,该第一VLAN子接口连接至第一容器,该数据携带第一VLAN标识,该第一VLAN标识为该第一VLAN子接口的VLAN标识;该ENI接入该第一容器所属的虚拟机,该虚拟交换机部署于该虚拟机所属的主机。
通信接口1401还可将该数据发送至虚拟交换机的主干端口,该虚拟交换机部署于该虚拟机所属的主机。
在执行由第一VLAN子接口执行的转发容器的数据的动作时,通信接口1301可通过主干端口接收来自于ENI的数据,该ENI接入该第一容器所属的虚拟机,该虚拟交换机部署于该虚拟机所属的主机,该数据携带第一VLAN标识,该第一VLAN标识为第一VLAN子接口的VLAN标识,该第一VLAN子接口连接至第一容器。
处理器1403可根据VLAN标识与子端口之间的对应关系,确定该第一VLAN标识对应的第一子端口。
处理器1403还可删除该数据中携带的该第一VLAN标识,并将该数据的收包端口配置为该第一子端口,所述第一子端口用于表示所述数据来自于所述第一容器。
通信接口1401还可根据该数据的路由信息转发该数据,所述路由信息用于确定所述数据的转发路由。
在一种可能的设计中,通信接口1401可接收来自于虚拟机代理的所述VLAN标识与子端口之间的对应关系。
在执行由虚拟交换机执行的向容器转发数据的动作时,通信接口1401可接收数据,其中,该虚拟交换机部署于主机,该数据的目的端口为第一子端口。处理器1403可根据VLAN子接口与子端口之间的对应关系,确定该第一子端口对应的第一VLAN子接口,该第一VLAN子接口连接至第一容器,该第一容器部署于该主机的虚拟机中。处理器1403还可将第一VLAN标识写入该数据,其中,该第一VLAN标识为该第一VLAN子接口的VLAN标识。处理器1403还可根据主干端口与子端口之间的对应关系,确定该第一子端口对应的主干端口,该通信模块还可通过主干端口向ENI发送该数据,其中,该ENI接入该容器所属的虚拟机。
在一种可能的设计中,处理器1403还可在该数据中添加该第一VLAN标识。
在一种可能的设计中,处理器1403还可在该数据中添加该数据的协议标识。
在一种可能的设计中,通信接口1401还可接收来自于虚拟机代理的VLAN标识与子端口之间的对应关系以及主干端口与子端口之间的对应关系。
在执行由ENI执行的向容器转发数据的动作时,通信接口1301可接收来自于虚拟交换机的数据,其中,该数据中携带第一VLAN标识,该第一VLAN标识为第一VLAN子接口的VLAN标识,该ENI接入虚拟机,该第一VLAN子接口连接至第一容器,该第一容器部署于该虚拟机中。
通信接口1401还可根据该数据中的第一VLAN标识将该数据发送至该第一VLAN子接口。
在执行由第一VLAN子接口执行的向容器转发数据的动作时,通信接口1301可接收来自于ENI的数据,其中,该数据中携带第一VLAN标识,该第一VLAN标识为该第一VLAN子接口的VLAN标识,该ENI接入虚拟机,该第一VLAN子接口连接至第一容器,该第一容器部署于该虚拟机中。处理器1403可删除该数据中携带的该第一VLAN标识。
基于相同的发明构思,本申请实施例还提供一种通信系统。该通信系统可包括图1和/或图2所示架构。
示例性的,该通信系统可包括虚拟交换机、ENI以及第一VLAN子接口。示例性的,虚拟交换机例如图1和/或图2所示的虚拟交换机202,ENI例如图1和/或图2所示的ENI203.B,第一VLAN子接口例如图1和/或图2所示的VLAN子接口204.A。
应理解,该通信系统可用于实现如图3和/或图4所示流程。
具体来说,在转发来自于容器的数据时,第一VLAN子接口可用于将第一容器的数据发送至ENI,该第一VLAN子接口对应于该第一容器,该数据携带有第一VLAN标识,该第一VLAN标识为该第一VLAN子接口的VLAN标识。
该ENI可用于将该数据发送至虚拟交换机,该ENI接入该第一容器所属的虚拟机,该虚拟交换机部署于该虚拟机所属的主机。
该虚拟交换机可用于通过主干端口接收该数据;该虚拟交换机还可根据VLAN标识与子端口之间的对应关系,确定该第一VLAN标识对应的第一子端口;该虚拟交换机还可删除该数据中携带的该第一VLAN标识,并将该数据的收包端口配置为该第一子端口,该第一子端口用于表示该数据来自于该第一容器;以及,该虚拟交换机还可根据该数据的路由信息转发该数据。该数据的路由信息可由容器中的应用添加,该路由信息用于确定该数据的转发路由。
在一种可能的示例中,该第一VLAN子接口还可用于在该数据中添加该第一VLAN标识。
在一种可能的示例中,该第一VLAN子接口还可用于在该数据中添加该数据的协议标识。
在一种可能的设计中,该通信系统还可包括虚拟机代理,用于向所述虚拟交换机发送所述VLAN标识与子端口之间的对应关系。
在将数据转发至容器时,虚拟交换机可用于接收数据,该虚拟交换机部署于主机,该数据的目的端口为第一子端口;虚拟交换机还可根据VLAN子接口与子端口之间的对应关系,确定该第一子端口对应的第一VLAN子接口,该第一VLAN子接口对应于第一容器;虚拟交换机还可将第一VLAN标识写入该数据,该第一VLAN标识为该第一VLAN子接口的VLAN标识;以及,虚拟交换机还可根据主干端口与子端口之间的对应关系,确定所述第一子端口对应的主干端口,并通过主干端口向ENI发送该数据;该主干端口对应于该ENI,该ENI接入虚拟机,该虚拟机包括该第一容器,该虚拟机属于该主机。
该ENI可用于根据该第一VLAN标识确定该第一VLAN子接口,以及,将该数据发送至该第一VLAN子接口。
该第一VLAN子接口可用于删除该数据中携带的该第一VLAN标识。
在一种可能的示例中,该虚拟交换机还可用于在该数据中添加该第一VLAN标识。
在一种可能的示例中,该虚拟交换机还可用于在该数据中添加该数据的协议标识。
在一种可能的设计中,该通信系统还可包括虚拟机代理,用于向所述虚拟交换机发送所述VLAN标识与子端口之间的对应关系以及所述主干端口与子端口之间的对应关系。
基于相同的发明构思,本申请实施例还提供一种通信系统。该通信系统可包括图15所示结构,用于执行图5和/或图10所示方法。
如图15所示,该通信系统1500可包括容器控制器模块、容器代理模块、虚拟机代理模块以及虚拟机控制器模块。可选的,该通信系统1500还可包括容器数据库模块以及虚拟机数据库模块。
在执行图5所示流程时,可由虚拟机代理模块创建ENI,并在虚拟交换机创建主干端口以及与该主干端口对应的多个子端口,其中,该主干端口关联至该ENI。容器控制器模块可向虚拟机控制器模块申请预分配的IP地址网段和可用的VLAN ID,并接收虚拟机控制器模块分配的IP地址网段和可用的VLAN ID。虚拟机代理模块接收虚拟机控制器模块分配的IP地址网段和可用的VLAN ID,并根据IP地址网段和可用的VLAN ID配置子端口。容器控制器模块向主机的容器代理模块发送逻辑网络配置,逻辑网络配置中包括IP地址网段和可用的VLAN ID。容器代理模块在接收到CNI的容器网络创建请求后,添加VLAN子接口,并根据逻辑网络配置,配置VLAN子接口的VLAN ID,将VLAN子接口连接到容器,并根据逻辑网络配置,配置VLAN子接口的IP地址。
在执行图10所示流程时,容器代理模块可在接收到CNI的容器网络接口删除请求后,清空VLAN子接口配置的IP地址,并删除VLAN子接口。容器控制器模块可向容器代理以及虚拟机控制器模块发送逻辑网络删除请求。虚拟机控制器模块可根据该逻辑网络删除请求,回收预分配的IP地址网段。虚拟机控制器模块可向虚拟机代理发送逻辑网络删除请求。虚拟机代理模块根据逻辑网络删除请求删除已经创建的主干端口和子端口。
基于与上述方法实施例相同构思,本申请实施例中还提供一种计算机可读存储介质,其上存储有计算机程序(或称指令),该程序被处理器执行时,使该计算机执行上述方法实施例、方法实施例的任意一种可能的实现方式中由虚拟交换机、ENI和/或第一VLAN子接口执行的操作。
基于与上述方法实施例相同构思,本申请还提供一种计算机程序产品,该计算机程序产品在被计算机调用执行时,可以使得计算机实现上述方法实施例、方法实施例的任意一种可能的实现方式中由虚拟交换机、ENI和/或第一VLAN子接口执行的操作。
基于与上述方法实施例相同构思,本申请还提供一种芯片或芯片系统,该芯片与收发器耦合,用于实现上述方法实施例、方法实施例的任意一种可能的实现方式中由虚拟交换机、ENI和/或第一VLAN子接口执行的操作。该芯片系统可包括该芯片,以及包括存储器、通信接口等组件。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的保护范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (34)

1.一种容器网络的数据传输方法,其特征在于,包括:
第一虚拟局域网VLAN子接口将第一容器的数据发送至弹性网络接口ENI,所述第一VLAN子接口连接至所述第一容器,所述数据携带第一VLAN标识,所述第一VLAN标识为所述第一VLAN子接口的VLAN标识;
所述ENI将所述数据发送至虚拟交换机的主干端口,所述ENI接入所述第一容器所属的虚拟机,所述虚拟交换机部署于所述虚拟机所属的主机;
所述虚拟交换机通过所述主干端口接收所述数据;
所述虚拟交换机根据VLAN标识与子端口之间的对应关系,确定所述第一VLAN标识对应的第一子端口;
所述虚拟交换机删除所述数据中携带的所述第一VLAN标识,并将所述数据的收包端口配置为所述第一子端口,所述第一子端口用于表示所述数据来自于所述第一容器;
所述虚拟交换机根据所述数据的路由信息转发所述数据,所述路由信息用于确定所述数据的转发路由。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
所述第一VLAN子接口在所述数据中添加所述第一VLAN标识。
3.如权利要求1或2所述的方法,其特征在于,所述方法还包括:
所述第一VLAN子接口在所述数据中添加所述数据的协议标识。
4.如权利要求1或2所述的方法,其特征在于,还包括:
所述虚拟交换机接收来自于虚拟机代理的VLAN标识与子端口之间的对应关系。
5.一种容器网络的数据传输方法,其特征在于,包括:
虚拟交换机接收数据,所述虚拟交换机部署于主机,所述数据的目的端口为第一子端口;
所述虚拟交换机根据VLAN子接口与子端口之间的对应关系,确定所述第一子端口对应的第一VLAN子接口,所述第一VLAN子接口连接至第一容器;
所述虚拟交换机将第一VLAN标识写入所述数据,所述第一VLAN标识为所述第一VLAN子接口的VLAN标识;
所述虚拟交换机根据主干端口与子端口之间的对应关系,确定所述第一子端口对应的主干端口;
所述虚拟交换机通过所述主干端口向ENI发送所述数据,所述ENI接入虚拟机,所述虚拟机包括所述第一容器,所述虚拟机属于所述主机;
所述ENI根据所述数据中的第一VLAN标识将所述数据发送至所述第一VLAN子接口;
所述第一VLAN子接口删除所述数据中携带的所述第一VLAN标识。
6.如权利要求5所述的方法,其特征在于,所述方法还包括:
所述虚拟交换机在所述数据中添加所述第一VLAN标识。
7.如权利要求5或6所述的方法,其特征在于,所述方法还包括:
所述虚拟交换机在所述数据中添加所述数据的协议标识。
8.如权利要求5或6所述的方法,其特征在于,所述ENI根据所述数据中的第一VLAN标识将所述数据发送至所述第一VLAN子接口,包括:
所述ENI将所述第一VLAN子接口配置为所述数据的目的端口,并将所述数据发送至所述目的端口。
9.如权利要求5或6所述的方法,其特征在于,还包括:
所述虚拟交换机接收来自于虚拟机代理的VLAN标识与子端口之间的对应关系以及主干端口与子端口之间的对应关系。
10.一种容器网络的数据传输方法,其特征在于,包括:
第一VLAN子接口将第一容器的数据发送至ENI,所述第一VLAN子接口连接至所述第一容器,所述数据携带第一VLAN标识,所述第一VLAN标识为所述第一VLAN子接口的VLAN标识;所述ENI接入所述第一容器所属的虚拟机。
11.如权利要求10所述的方法,其特征在于,所述方法还包括:
所述第一VLAN子接口在所述数据中添加所述第一VLAN标识。
12.如权利要求10或11所述的方法,其特征在于,所述方法还包括:
所述第一VLAN子接口在所述数据中添加所述数据的协议标识。
13.一种容器网络的数据传输方法,其特征在于,包括:
ENI接收来自于第一VLAN子接口的数据,所述第一VLAN子接口连接至第一容器,所述数据携带第一VLAN标识,所述第一VLAN标识为所述第一VLAN子接口的VLAN标识;所述ENI接入所述第一容器所属的虚拟机;
所述ENI将所述数据发送至虚拟交换机的主干端口,所述虚拟交换机部署于所述虚拟机所属的主机。
14.一种容器网络的数据传输方法,其特征在于,包括:
虚拟交换机通过主干端口接收来自于ENI的数据,所述ENI接入第一容器所属的虚拟机,所述虚拟交换机部署于所述虚拟机所属的主机,所述数据携带第一VLAN标识,所述第一VLAN标识为第一VLAN子接口的VLAN标识,所述第一VLAN子接口连接至第一容器;
所述虚拟交换机根据VLAN标识与子端口之间的对应关系,确定所述第一VLAN标识对应的第一子端口;
所述虚拟交换机删除所述数据中携带的所述第一VLAN标识,并将所述数据的收包端口配置为所述第一子端口,所述第一子端口用于表示所述数据来自于所述第一容器;
所述虚拟交换机根据所述数据的路由信息转发所述数据,所述路由信息用于确定所述数据的转发路由。
15.如权利要求14所述的方法,其特征在于,还包括:
所述虚拟交换机接收来自于虚拟机代理的VLAN标识与子端口之间的对应关系。
16.一种容器网络的数据传输方法,其特征在于,包括:
虚拟交换机接收数据,所述虚拟交换机部署于主机,所述数据的目的端口为第一子端口;
所述虚拟交换机根据VLAN子接口与子端口之间的对应关系,确定所述第一子端口对应的第一VLAN子接口,所述第一VLAN子接口连接至第一容器,所述第一容器部署于所述主机的虚拟机中;
所述虚拟交换机将第一VLAN标识写入所述数据,所述第一VLAN标识为所述第一VLAN子接口的VLAN标识;
所述虚拟交换机根据主干端口与子端口之间的对应关系,确定所述第一子端口对应的主干端口;
所述虚拟交换机通过所述主干端口向ENI发送所述数据,所述ENI接入所述容器所属的虚拟机。
17.如权利要求16所述的方法,其特征在于,所述方法还包括:
所述虚拟交换机在所述数据中添加所述第一VLAN标识。
18.如权利要求16或17所述的方法,其特征在于,所述方法还包括:
所述虚拟交换机在所述数据中添加所述数据的协议标识。
19.如权利要求16或17所述的方法,其特征在于,所述方法还包括:
所述虚拟交换机接收来自于虚拟机代理的VLAN标识与子端口之间的对应关系以及主干端口与子端口之间的对应关系。
20.一种容器网络的数据传输方法,其特征在于,包括:
ENI接收来自于虚拟交换机的数据,所述数据中携带第一VLAN标识,所述第一VLAN标识为第一VLAN子接口的VLAN标识,所述ENI接入虚拟机,所述第一VLAN子接口连接至第一容器,所述第一容器部署于所述虚拟机中;
所述ENI根据所述数据中的第一VLAN标识将所述数据发送至所述第一VLAN子接口。
21.如权利要求20所述的方法,其特征在于,所述ENI根据所述数据中的第一VLAN标识将所述数据发送至所述第一VLAN子接口,包括:
所述ENI将所述第一VLAN子接口配置为所述数据的目的端口;
所述ENI将所述数据发送至所述目的端口。
22.一种容器网络的数据传输方法,其特征在于,包括:
第一VLAN子接口接收来自于ENI的数据,所述数据中携带第一VLAN标识,所述第一VLAN标识为所述第一VLAN子接口的VLAN标识,所述ENI接入虚拟机,所述第一VLAN子接口连接至第一容器,所述第一容器部署于所述虚拟机中;
所述第一VLAN子接口删除所述数据中携带的所述第一VLAN标识。
23.一种通信装置,其特征在于,包括:
通信模块,用于所述通信装置进行通信;
处理模块,用于执行如权利要求10至22中任意一项所述的方法。
24.一种通信系统,其特征在于,包括:
第一VLAN子接口,用于将第一容器的数据发送至ENI,所述第一VLAN子接口连接至所述第一容器,所述数据携带有第一VLAN标识,所述第一VLAN标识为所述第一VLAN子接口的VLAN标识;
所述ENI,用于将所述数据发送至虚拟交换机的主干端口,所述ENI接入所述第一容器所属的虚拟机,所述虚拟交换机部署于所述虚拟机所属的主机;
所述虚拟交换机,用于通过所述主干端口接收所述数据;根据VLAN标识与子端口之间的对应关系,确定所述第一VLAN标识对应的第一子端口;删除所述数据中携带的所述第一VLAN标识,并将所述数据的收包端口配置为所述第一子端口,所述第一子端口用于表示所述数据来自于所述第一容器;以及,根据所述数据的路由信息转发所述数据,所述路由信息用于确定所述数据的转发路由。
25.如权利要求24所述的通信系统,其特征在于,所述第一VLAN子接口还用于:
在所述数据中添加所述第一VLAN标识。
26.如权利要求24或25所述的通信系统,其特征在于,所述第一VLAN子接口还用于:
在所述数据中添加所述数据的协议标识。
27.如权利要求24或25所述的通信系统,其特征在于,还包括虚拟机代理,用于
向所述虚拟交换机发送VLAN标识与子端口之间的对应关系。
28.一种通信系统,其特征在于,包括:
虚拟交换机,用于接收数据,所述虚拟交换机部署于主机,所述数据的目的端口为第一子端口;根据VLAN子接口与子端口之间的对应关系,确定所述第一子端口对应的第一VLAN子接口,所述第一VLAN子接口连接至第一容器;将第一VLAN标识写入所述数据,所述第一VLAN标识为所述第一VLAN子接口的VLAN标识;根据主干端口与子端口之间的对应关系,确定所述第一子端口对应的主干端口;以及,通过所述主干端口向ENI发送所述数据;所述ENI接入所述虚拟机,所述第一容器属于所述虚拟机,所述虚拟机属于所述主机;
所述ENI,用于根据所述数据中的第一VLAN标识将所述数据发送至所述第一VLAN子接口;
所述第一VLAN子接口,用于删除所述数据中携带的所述第一VLAN标识。
29.如权利要求28所述的通信系统,其特征在于,所述虚拟交换机还用于:
在所述数据中添加所述第一VLAN标识。
30.如权利要求28或29所述的通信系统,其特征在于,所述虚拟交换机还用于:
在所述数据中添加所述数据的协议标识。
31.如权利要求28或29所述的通信系统,其特征在于,所述ENI具体用于:
将所述第一VLAN子接口配置为所述数据的目的端口,并将所述数据发送至所述目的端口。
32.如权利要求28或29所述的通信系统,其特征在于,还包括虚拟机代理,用于
向所述虚拟交换机发送VLAN标识与子端口之间的对应关系以及主干端口与子端口之间的对应关系。
33.一种计算机可读存储介质,所述计算机可读存储介质中存储有程序,其特征在于,当所述程序在计算机上被调用执行时,使得计算机执行如权利要求10至22中任一所述的方法。
34.一种通信装置,其特征在于,包括:
通信接口,用于所述通信装置进行通信;
处理器,用于执行如权利要求10至22中任意一项所述的方法。
CN202010610921.5A 2020-06-29 2020-06-29 一种容器网络的数据传输方法、装置、系统及存储介质 Active CN113949679B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010610921.5A CN113949679B (zh) 2020-06-29 2020-06-29 一种容器网络的数据传输方法、装置、系统及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010610921.5A CN113949679B (zh) 2020-06-29 2020-06-29 一种容器网络的数据传输方法、装置、系统及存储介质

Publications (2)

Publication Number Publication Date
CN113949679A CN113949679A (zh) 2022-01-18
CN113949679B true CN113949679B (zh) 2022-09-23

Family

ID=79325795

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010610921.5A Active CN113949679B (zh) 2020-06-29 2020-06-29 一种容器网络的数据传输方法、装置、系统及存储介质

Country Status (1)

Country Link
CN (1) CN113949679B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102752187A (zh) * 2011-04-21 2012-10-24 中兴通讯股份有限公司 弹性网络接口的实现方法和系统
CN109660443A (zh) * 2018-12-26 2019-04-19 江苏省未来网络创新研究院 基于sdn的物理设备与虚拟网络通信方法和系统

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10171336B2 (en) * 2015-12-16 2019-01-01 Telefonaktiebolaget Lm Ericsson (Publ) Openflow configured horizontally split hybrid SDN nodes
US10911397B2 (en) * 2017-07-31 2021-02-02 Nicira, Inc. Agent for implementing layer 2 communication on layer 3 underlay network

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102752187A (zh) * 2011-04-21 2012-10-24 中兴通讯股份有限公司 弹性网络接口的实现方法和系统
CN109660443A (zh) * 2018-12-26 2019-04-19 江苏省未来网络创新研究院 基于sdn的物理设备与虚拟网络通信方法和系统

Also Published As

Publication number Publication date
CN113949679A (zh) 2022-01-18

Similar Documents

Publication Publication Date Title
CN110088732B (zh) 一种数据包处理方法、主机和系统
CN109074330B (zh) 网络接口卡、计算设备以及数据包处理方法
US10616133B2 (en) Resource configuration method and network device thereof
CN111796905B (zh) 一种kubernetes容器云平台VLAN网络的实现方法及系统
US10063470B2 (en) Data center network system based on software-defined network and packet forwarding method, address resolution method, routing controller thereof
CN106302206B (zh) 报文的转发处理方法、装置及系统
CN105323136B (zh) 信息的处理方法及装置
US9489224B2 (en) Network virtualization system, physical node, and virtual interface identification method in virtual machine
CN111698112B (zh) 一种容器化虚拟网络功能vnf的资源管理方法及装置
CN111221618B (zh) 一种容器化虚拟网络功能的部署方法和装置
CN110063045B (zh) 云计算系统中的报文处理方法及设备
CN104012057A (zh) 用于网络光纤信道网络的灵活且可扩缩的增强的传输选择方法
CN111800523B (zh) 虚拟机网络的管理方法、数据处理方法及系统
CN108574635B (zh) 一种路由优先级配置方法、设备以及控制器
CN111294268B (zh) 避免ip地址冲突的方法及装置
CN113535319A (zh) 一种实现多rdma网卡虚拟化的方法、设备及存储介质
CN107948042A (zh) 一种报文转发方法以及装置
CN113162779A (zh) 一种多云互联的方法及设备
CN112583655B (zh) 数据传输方法、装置、电子设备及可读存储介质
CN113949679B (zh) 一种容器网络的数据传输方法、装置、系统及存储介质
CN111654559B (zh) 一种容器数据传输方法及装置
CN111262771B (zh) 虚拟私有云通信系统、系统配置方法及控制器
CN105939242B (zh) 实现虚拟系统的方法及装置
CN105009522A (zh) 一种部署增值业务的方法、网络设备及增值业务设备
JP2014187430A (ja) 通信システム、中継装置、通信方法、及びプログラム

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