CN114629844B - 一种报文转发的方法、装置及电子设备 - Google Patents
一种报文转发的方法、装置及电子设备 Download PDFInfo
- Publication number
- CN114629844B CN114629844B CN202210187002.0A CN202210187002A CN114629844B CN 114629844 B CN114629844 B CN 114629844B CN 202210187002 A CN202210187002 A CN 202210187002A CN 114629844 B CN114629844 B CN 114629844B
- Authority
- CN
- China
- Prior art keywords
- container
- virtual network
- network card
- ipvlan
- request
- 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
- 238000000034 method Methods 0.000 title claims abstract description 67
- 238000004590 computer program Methods 0.000 claims description 13
- 230000004044 response Effects 0.000 claims description 7
- 238000004891 communication Methods 0.000 abstract description 7
- 238000013461 design Methods 0.000 description 20
- 238000010586 diagram Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 9
- 238000012545 processing Methods 0.000 description 7
- 230000000694 effects Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000013519 translation Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000002955 isolation Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000006386 memory function Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
-
- 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]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开一种报文转发的方法、装置及电子设备,该方法包括首先响应于容器网络拓扑的配置请求,基于宿主机的物理网卡,创建与物理网卡直接连接的单个或多个VLAN虚拟网卡,为创建的每个VLAN虚拟网卡绑定单个或多个I PVLAN虚拟网卡,并为每个I PVLAN虚拟网卡绑定单个或多个I P地址,在这里,一个I P地址对应一个容器,然后,基于容器网络拓扑,实现绑定于同一I PVLAN虚拟网卡的多个容器之间的报文转发;以及容器与宿主机局域网之间的报文转发。基于上述方法可以解决现有技术应用于超大规模的容器集群场景,存在MAC地址冲突或MAC地址不够用的问题,并实现I PVLAN在L2模式下子接口和父接口之间的网络连通。
Description
技术领域
本申请涉及容器网络技术领域,尤其涉及一种报文转发的方法、装置及电子设备。
背景技术
随着虚拟网卡方案的发展,现有技术不仅可以将一张物理网卡虚拟成多张虚拟网卡,而且可以为这多张虚拟网卡各自配置不同的MAC(Media Access Control,媒体介入控制层)地址,并配置每个MAC地址对应的IP(Internet Protocol,网际互连协议)地址,在这里,一个IP地址可以对应一个容器(docker),即实现多张虚拟网卡各自与容器之间的连接。
但是,当前网络接口和交换机所支持的MAC地址有限,鉴于此,在现有技术应用于超大规模的容器集群场景时,由于每个容器都采用不同的MAC地址,将导致容器所使用的MAC地址冲突,或MAC地址不够用的问题发生。
发明内容
本申请提供一种报文转发的方法、装置及电子设备,用以基于容器网络拓扑,实现绑定于同一IPVLAN虚拟网卡的多个容器之间的报文转发;以及容器与宿主机局域网之间的报文转发,解决现有技术应用于超大规模的容器集群场景时,存在MAC地址冲突或MAC地址不够用的问题。
第一方面,本申请提供了一种报文转发的方法,所述方法包括:
基于容器网络拓扑,接收第一容器访问第二容器的第一请求;其中,所述第一容器和所述第二容器为绑定于第一IPVLAN虚拟网卡的容器,所述第一容器和所述第二容器的MAC地址为所述第一IPVLAN虚拟网卡的MAC地址;
响应于所述第一请求,通过所述第一IPVLAN虚拟网卡,将所述第一容器发送的报文转发至所述第二容器。
基于上述方法,IPVLAN虚拟网卡下的所有容器子接口,可以共用IPVLAN虚拟网卡的父接口,即VLAN虚拟网卡的MAC地址,用以解决应用于超大规模的容器集群场景时,现有技术存在MAC地址冲突,或MAC地址不够用的问题,进而能够提升交换机的转发性能。
在一种可能的设计中,所述方法,还包括:基于所述容器网络拓扑,接收第三容器访问宿主机局域网的第二请求;其中,所述第三容器为绑定于第二IPVLAN虚拟网卡的容器;响应于所述第二请求,通过第一VLAN虚拟网卡,在所述第三容器发送的报文中添加第一标识;其中,所述第一VLAN虚拟网卡为创建所述第二IPVLAN虚拟网卡的虚拟网卡,所述第一标识为所述第二IPVLAN虚拟网卡对应的标识;采用所述第一VLAN虚拟网卡的MAC地址,将添加所述第一标识的报文发送至所述宿主机局域网。
基于上述方法,可以适配交换机的VLAN划分,并且确定容器(容器侧的网络设备)对应级联IPVLAN虚拟网卡的父接口是VLAN虚拟网卡,通过VLAN虚拟网卡为容器发送的报文自动搭上指定标识,并且为交换机接口设置相同的trunk id,实现容器内网的网段一致,一方面避免容器侧的网络设备与交换机上相同内网的网段的IP地址出现冲突,另一方面实现与其他容器内网的网段隔离。
在一种可能的设计中,所述方法,还包括:基于所述容器网络拓扑,接收宿主机局域网访问第四容器的第三请求;根据所述第三请求中的MAC地址,确定绑定所述第四容器的第三IPVLAN虚拟网卡;通过所述第三IPVLAN虚拟网卡,将接收到所述宿主机局域网发送的报文转发至所述第四容器。
基于上述方法,通过IPVLAN的两级级联,使得IPVLAN虚拟网卡可以直接与其容器子接口进行报文传输,实现容器子接口与其父接口IPVLAN虚拟网卡之间的直接访问,解决了IPVLAN当前在L2模式下存在IPVLAN子接口和父接口之间存在网络不通的问题,用以实现IPVLAN在L2模式下,实现子接口与父接口之间的网络连通。
在一种可能的设计中,在所述基于容器网络拓扑,接收第一容器访问第二容器的第一请求之前,还包括:响应于容器网络拓扑的配置请求,配置级联的所述容器网络拓扑;其中,所述容器网络拓扑的各层分别包括物理网卡、VLAN虚拟网卡、IPVLAN虚拟网卡以及容器。
基于上述级联式的容器网络拓扑,通过宿主机侧的物理网卡连接到容器侧的容器,能够实现IPVLAN的两级级联。
在一种可能的设计中,所述响应于容器网络拓扑的配置请求,配置级联的容器网络拓扑,包括:响应于容器网络拓扑的配置请求,基于宿主机的物理网卡,创建与所述物理网卡直接连接的单个或多个VLAN虚拟网卡;为创建的每个VLAN虚拟网卡绑定单个或多个IPVLAN虚拟网卡;为每个IPVLAN虚拟网卡绑定单个或多个IP地址;其中,一个IP地址对应一个容器。
基于上述级联式的容器网络拓扑,通过宿主机侧的物理网卡连接到容器侧的容器,能够实现IPVLAN的两级级联,进一步实现容器侧的网络设备(容器)对宿主机侧的物理网卡的直接访问,使得IPVLAN在L2模式下实现子接口和父接口之间网络连通。
在一种可能的设计中,所述创建与所述物理网卡直接连接的单个或多个VLAN虚拟网卡,还包括:为不同的VLAN虚拟网卡分别分配不同的MAC地址。
在一种可能的设计中,所述为创建的每个VLAN虚拟网卡绑定单个或多个IPVLAN虚拟网卡,还包括:为绑定于同一VLAN虚拟网卡的IPVLAN虚拟网卡分配相同的MAC地址。
基于上述级联式的容器网络拓扑,用以解决现有技术应用于超大规模的容器集群场景,存在MAC地址冲突或MAC地址不够用的问题。
第二方面,本申请提供了一种报文转发的装置,所述装置包括:
第一接收请求模块,基于容器网络拓扑,接收第一容器访问第二容器的第一请求;其中,所述第一容器和所述第二容器为绑定于第一IPVLAN虚拟网卡的容器,所述第一容器和所述第二容器的MAC地址为所述第一IPVLAN虚拟网卡的MAC地址;
第一转发报文模块,响应于所述第一请求,通过所述第一IPVLAN虚拟网卡,将所述第一容器发送的报文转发至所述第二容器。
在一种可能的设计中,所述装置还包括:
第二接收请求模块,基于所述容器网络拓扑,接收第三容器访问宿主机局域网的第二请求;其中,所述第三容器为绑定于第二IPVLAN虚拟网卡的容器;
添加标识模块,响应于所述第二请求,通过第一VLAN虚拟网卡,在所述第三容器发送的报文中添加第一标识;其中,所述第一VLAN虚拟网卡为创建所述第二IPVLAN虚拟网卡的虚拟网卡,所述第一标识为所述第二IPVLAN虚拟网卡对应的标识;
第二转发报文模块,采用所述第一VLAN虚拟网卡的MAC地址,将添加所述第一标识的报文发送至所述宿主机局域网。
在一种可能的设计中,所述装置还包括:
第三接收请求模块,基于所述容器网络拓扑,接收宿主机局域网访问第四容器的第三请求;
确定虚拟网卡模块,根据所述第三请求中的MAC地址,确定绑定所述第四容器的第三IPVLAN虚拟网卡;
第三转发报文模块,通过所述第三IPVLAN虚拟网卡,将接收到所述宿主机局域网发送的报文转发至所述第四容器。
在一种可能的设计中,在所述第一接收请求模块之前,还包括:
配置容器网络拓扑模块,响应于容器网络拓扑的配置请求,配置级联的所述容器网络拓扑;其中,所述容器网络拓扑的各层分别包括物理网卡、VLAN虚拟网卡、IPVLAN虚拟网卡以及容器。
在一种可能的设计中,所述配置容器网络拓扑模块,具体用于:响应于容器网络拓扑的配置请求,基于宿主机的物理网卡,创建与所述物理网卡直接连接的单个或多个VLAN虚拟网卡;为创建的每个VLAN虚拟网卡绑定单个或多个IPVLAN虚拟网卡;为每个IPVLAN虚拟网卡绑定单个或多个IP地址;其中,一个IP地址对应一个容器。
在一种可能的设计中,所述配置容器网络拓扑模块,具体用于:为不同的VLAN虚拟网卡分别分配不同的MAC地址。
在一种可能的设计中,所述配置容器网络拓扑模块,具体用于:为绑定于同一VLAN虚拟网卡的IPVLAN虚拟网卡分配相同的MAC地址。
第三方面,本申请提供了一种电子设备,所述电子设备包括:
存储器,用于存放计算机程序;
处理器,用于执行所述存储器上所存放的计算机程序时,实现上述的一种报文转发的方法步骤。
第四方面,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述的一种报文转发的方法步骤。
上述第二方面至第四方面中的各个方面以及各个方面可能达到的技术效果请参照上述针对第一方面或第一方面中的各种可能方案可以达到的技术效果说明,这里不再重复赘述。
附图说明
图1为本申请提供的一种可能的容器网络拓扑的示意图;
图2为本申请提供的一种报文转发的方法的流程图;
图3为本申请提供的一种容器内网中容器互访的示意图;
图4为本申请提供的一种报文转发的方法的流程图;
图5为本申请提供的一种容器访问宿主机局域网的示意图;
图6为本申请提供的一种报文转发的方法的流程图;
图7为本申请提供的一种宿主机局域网访问容器的示意图;
图8为本申请提供的一种基于容器网络拓扑转发报文的流程图;
图9为本申请提供的一种报文转发的装置的示意图;
图10为本申请提供的一种电子设备的结构的示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述。方法实施例中的具体操作方法也可以应用于装置实施例或系统实施例中。需要说明的是,在本申请的描述中“多个”理解为“至少两个”。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。A与B连接,可以表示:A与B直接连接和A与B通过C连接这两种情况。另外,在本申请的描述中,“第一”、“第二”等词汇,仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。
本申请实施例提供了一种适用于报文转发的容器网络拓扑的配置方法。
根据本申请实施例提供的配置容器网络拓扑的方法,可以响应于容器网络拓扑的配置请求,配置出级联的容器网络拓扑,在这里,容器网络拓扑的各层分别包括物理网卡、VLAN虚拟网卡、IPVLAN虚拟网卡、容器。
具体来说,响应于容器网络拓扑的配置请求,并基于宿主机的物理网卡,创建与该物理网卡直接连接的单个或多个VLAN虚拟网卡,然后为创建的每个VLAN虚拟网卡绑定单个或多个IPVLAN虚拟网卡,为绑定于同一VLAN虚拟网卡的IPVLAN虚拟网卡分配相同的MAC地址,在这里,一个IP地址可以用于对应一个容器。
在可选的实施例中,还可以为不同的VLAN虚拟网卡分别分配不同的MAC地址。
在可选的实施例中,还可以为每个IPVLAN虚拟网卡绑定单个或多个IP地址。
举例来说,参见图1,为本申请实施例所提供的一种可能的容器网络拓扑的示意图。
值得说明的是,在此结合示意图的目的是对容器网络拓扑的结构作详细说明,便于本领域技术人员理解,其内容不构成本申请实施例提供的配置容器网络拓扑方法的限定。
如图1所示,首先以宿主机的物理网卡作为第一父接口eth0,创建一个VLAN虚拟网卡的第一子接口eth0.10,并且设置该VLAN虚拟网卡的VLAN ID(VLAN标识)为指定数值,如设定VLAN ID为10,然后以第一子接口eth0.10作为第二父接口,创建一个IPVLAN虚拟网卡的第二子接口ipvlan10,再以第二子接口ipvlan10作为第三父接口,创建三个容器侧的第三子接口eth0,并且每个第三子接口eth0都可以对应一个容器。
综上所述,基于上述级联式的容器网络拓扑,通过宿主机侧的eth0连接到容器侧的eth0,实现IPVLAN的两级级联。
基于容器网络拓扑,本申请实施例提供了一种报文转发的方法、装置及电子设备,解决现有技术应用于超大规模的容器集群场景,存在MAC地址冲突或MAC地址不够用的问题。
根据本申请实施例提供的方法,基于创建的两级级联的IPVLAN容器网络拓扑,实现容器侧的容器(网络设备)eth0对宿主机侧的物理网卡eth0的直接访问,并且实现IPVLAN在L2模式下子接口和父接口之间的网络连通。
进一步,通过容器网络拓扑中的VLAN虚拟网卡创建,配合交换机的trunk口,能够构建出IPVLAN容器的私有网络,避免同一交换机相同接入网络的IP地址冲突,并且实现与其他网络之间的隔离。
下面结合附图对本申请实施例所提供的方法作出进一步详细说明。
值得说明的是,本申请提供如下三个实施例,分别对基于容器网络拓扑实现报文转发的方法作详细介绍,各实施例中涉及的技术手段以及能够达到的技术效果均属于本申请技术方案的保护范围,进一步,在实际应用中,还可以结合各个实施例以解决相应的技术问题。
实施例1:
参阅图2所示,本申请实施例提供了一种报文转发的方法,具体流程如下:
步骤201:基于容器网络拓扑,接收第一容器访问第二容器的第一请求;
步骤202:响应于所述第一请求,通过所述第一IPVLAN虚拟网卡,将所述第一容器发送的报文转发至所述第二容器。
在这里,上述的第一容器和第二容器为绑定于第一IPVLAN虚拟网卡的容器,并且第一容器和第二容器的MAC地址为第一IPVLAN虚拟网卡的MAC地址。
举例来说,参见图3所示,为容器内网中容器互访的示意图。
如图3所示,容器内网可以是,由父节点ipvlan10,加上与父节点ipvlan10连接的三个容器子节点eth0共同构成。在这里,三个容器子节点eth0彼此之间的访问可以通过其父节点ipvlan10来完成,即ipvlan10可以用于转发在容器内网中容器互访所发送的报文。
另外,这三个容器子节点eth0的MAC地址可以与父节点ipvlan10相同,如父节点ipvlan10的MAC地址为“192.168.×.×”时,三个容器子节点eth0的MAC地址都为“192.168.×.×”,并且基于该MAC地址,三个容器子节点eth0可以根据实际应用设置各自的IP地址,如分别设置为“192.168.10.2”、“192.168.10.3”、“192.168.10.4”。
实施例2:
参阅图4所示,本申请实施例提供了一种报文转发的方法,具体流程如下:
步骤401:基于所述容器网络拓扑,接收第三容器访问宿主机局域网的第二请求;
步骤402:响应于所述第二请求,通过第一VLAN虚拟网卡,在所述第三容器发送的报文中添加第一标识;
步骤403:采用所述第一VLAN虚拟网卡的MAC地址,将添加所述第一标识的报文发送至所述宿主机局域网。
在这里,上述的第三容器为绑定于第二IPVLAN虚拟网卡的容器,第一VLAN虚拟网卡为创建第二IPVLAN虚拟网卡的虚拟网卡,第一标识为第二IPVLAN虚拟网卡对应的标识。
举例来说,参见图5所示,为容器内网中容器访问宿主机局域网的示意图。
如图5所示,容器内网可以是,由父节点ipvlan10,加上与父节点ipvlan10连接的三个容器子节点eth0共同构成,当容器内网的网络为“192.168.0.0/16”时,可以通过设置连接父节点ipvlan10的三个容器子节点eth0的默认网关为其父节点ipvlan10的IP地址,并且配置SNAT(Source Network Address Translation,源地址转换)规则,以实现容器内网中容器对宿主机局域网的访问,即实现报文的转发。
值得说明的是,SNAT是防火墙的一种地址转换操作,也是命令中的一种数据包控制类型,其作用是根据指定条件修改数据包的源IP地址,通过SNAT可以实现透明代理技术,以及四层流量隧道功能。
进一步,设置容器子节点eth0的默认网关为ipvlan10的IP地址后,还可以通过ipvlan10的父接口eth0.10为容器子节点eth0发送的报文添加ipvlan10对应的标识,如添加trunk id为10的标识。
实施例3:
参阅图6所示,本申请实施例提供了一种报文转发的方法,具体流程如下:
步骤601:基于所述容器网络拓扑,接收宿主机局域网访问第四容器的第三请求;
步骤602:根据所述第三请求中的MAC地址,确定绑定所述第四容器的第三IPVLAN虚拟网卡;
步骤603:通过所述第三IPVLAN虚拟网卡,将接收到所述宿主机局域网发送的报文转发至所述第四容器。
举例来说,参见图7所示,为宿主机局域网访问容器内网中的容器的示意图。
如图7所示,容器内网可以是,由父节点ipvlan10,加上与父节点ipvlan10连接的三个容器子节点eth0共同构成,宿主机所在的局域网,可以通过配置DNAT规则或者DNAT网关,实现宿主机局域网对容器内网“192.168.0.0/24”的访问。
值得说明的是,SNAT是防火墙的一种地址转换操作,也是命令中的一种数据包控制类型,其作用是根据指定条件修改数据包的源IP地址,通过SNAT可以实现透明代理技术,以及四层流量隧道功能。
综上所述,本申请实施例提供的一种基于容器网络拓扑转发报文的方法,如图8所示,具体可以包括:
步骤801:响应于容器网络拓扑的配置请求,基于宿主机的物理网卡,创建与物理网卡直接连接的单个或多个VLAN虚拟网卡;
步骤802:为创建的每个VLAN虚拟网卡绑定单个或多个IPVLAN虚拟网卡;
步骤803:为每个IPVLAN虚拟网卡绑定单个或多个IP地址,并各个IP地址与各个容器之间一一对应;
步骤804:基于所述容器网络拓扑,对任意两个容器、任意一个容器与宿主机局域网之间传输的报文进行转发。
基于本申请实施例所提供的方法,可以达到如下的技术效果:
1、IPVLAN虚拟网卡下的所有容器子接口,可以共用IPVLAN虚拟网卡的父接口,即VLAN虚拟网卡的MAC地址,通过上述方法可以解决应用于超大规模的容器集群场景时,现有技术存在MAC地址冲突,或MAC地址不够用的问题,进而能够提升应用在超大规模的容器集群场景时,交换机的转发性能;
2、基于级联的容器网络拓扑,可以实现在无线网络场景下的工作,解决现有技术无法和802.11(wireless)网络一起工作,存在适用场景有限的问题,有效扩大基容器网络拓扑的使用场景,减少适用环境对于容器网络的约束,进而便于实际应用中的部署和维护;
3、基于容器网络拓扑,通过IPVLAN的两级级联,使得IPVLAN虚拟网卡可以直接与其容器子接口eth0进行报文传输,实现容器子接口eth0与其父接口IPVLAN虚拟网卡之间的直接访问,解决了IPVLAN当前在L2模式下存在IPVLAN子接口和父接口之间存在网络不通的问题,用以实现IPVLAN在L2模式下,实现子接口与父接口之间的网络连通;
4、基于本申请实施例的方法,可以适配交换机的VLAN划分,并且确定容器侧的网络设备eth0对应级联IPVLAN虚拟网卡的父接口是VLAN虚拟网卡eth0.10,通过VLAN虚拟网卡eth0.10为网络设备eth0发送的报文自动搭上指定标识,并且为交换机接口设置相同的trunk id,实现容器内网的网段一致,如:192.168.0/16网段,通过这样的方法,一方面避免容器侧的网络设备与交换机上相同内网的网段的IP地址出现冲突,另一方面实现与其他容器内网的网段隔离。
基于同一发明构思,本申请还提供了一种报文转发的装置,用以基于容器网络拓扑,实现绑定于同一IPVLAN虚拟网卡的多个容器之间的报文转发;以及容器与宿主机局域网之间的报文转发,解决现有技术应用于超大规模的容器集群场景时,存在MAC地址冲突或MAC地址不够用的问题,参见图9,该装置包括:
第一接收请求模块901,基于容器网络拓扑,接收第一容器访问第二容器的第一请求;其中,所述第一容器和所述第二容器为绑定于第一IPVLAN虚拟网卡的容器,所述第一容器和所述第二容器的MAC地址为所述第一IPVLAN虚拟网卡的MAC地址;
第一转发报文模块902,响应于所述第一请求,通过所述第一IPVLAN虚拟网卡,将所述第一容器发送的报文转发至所述第二容器。
在一种可能的设计中,所述装置还包括:
第二接收请求模块,基于所述容器网络拓扑,接收第三容器访问宿主机局域网的第二请求;其中,所述第三容器为绑定于第二IPVLAN虚拟网卡的容器;
添加标识模块,响应于所述第二请求,通过第一VLAN虚拟网卡,在所述第三容器发送的报文中添加第一标识;其中,所述第一VLAN虚拟网卡为创建所述第二IPVLAN虚拟网卡的虚拟网卡,所述第一标识为所述第二IPVLAN虚拟网卡对应的标识;
第二转发报文模块,采用所述第一VLAN虚拟网卡的MAC地址,将添加所述第一标识的报文发送至所述宿主机局域网。
在一种可能的设计中,所述装置还包括:
第三接收请求模块,基于所述容器网络拓扑,接收宿主机局域网访问第四容器的第三请求;
确定虚拟网卡模块,根据所述第三请求中的MAC地址,确定绑定所述第四容器的第三IPVLAN虚拟网卡;
第三转发报文模块,通过所述第三IPVLAN虚拟网卡,将接收到所述宿主机局域网发送的报文转发至所述第四容器。
在一种可能的设计中,在所述第一接收请求模块901之前,还包括:
配置容器网络拓扑模块,响应于容器网络拓扑的配置请求,配置级联的所述容器网络拓扑;其中,所述容器网络拓扑的各层分别包括物理网卡、VLAN虚拟网卡、IPVLAN虚拟网卡以及容器。
在一种可能的设计中,所述配置容器网络拓扑模块,具体用于:响应于容器网络拓扑的配置请求,基于宿主机的物理网卡,创建与所述物理网卡直接连接的单个或多个VLAN虚拟网卡;为创建的每个VLAN虚拟网卡绑定单个或多个IPVLAN虚拟网卡;为每个IPVLAN虚拟网卡绑定单个或多个IP地址;其中,一个IP地址对应一个容器。
在一种可能的设计中,所述配置容器网络拓扑模块,具体用于:为不同的VLAN虚拟网卡分别分配不同的MAC地址。
在一种可能的设计中,所述配置容器网络拓扑模块,具体用于:为绑定于同一VLAN虚拟网卡的IPVLAN虚拟网卡分配相同的MAC地址。
基于上述装置,可以解决现有技术应用于超大规模的容器集群场景,存在MAC地址冲突或MAC地址不够用的问题,能够实现IPVLAN在L2模式下子接口和父接口之间的网络连通,提升交换机的转发性能。
基于同一发明构思,本申请实施例中还提供了一种电子设备,所述电子设备可以实现前述一种报文转发的装置的功能,参考图10,所述电子设备包括:
至少一个处理器11,以及与至少一个处理器11连接的存储器12,本申请实施例中不限定处理器11与存储器12之间的具体连接介质,图10中是以处理器11和存储器12之间通过总线10连接为例。总线10在图10中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。总线10可以分为地址总线、数据总线、控制总线等,为便于表示,图10中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。或者,处理器11也可以称为控制器,对于名称不做限制。
在本申请实施例中,存储器12存储有可被至少一个处理器11执行的指令,至少一个处理器11通过执行存储器12存储的指令,可以执行前文论述的报文转发方法。处理器11可以实现图9所示的装置中各个模块的功能。
其中,处理器11是该装置的控制中心,可以利用各种接口和线路连接整个该控制设备的各个部分,通过运行或执行存储在存储器12内的指令以及调用存储在存储器12内的数据,该装置的各种功能和处理数据,从而对该装置进行整体监控。
在一种可能的设计中,处理器11可包括一个或多个处理单元,处理器11可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器11中。在一些实施例中,处理器11和存储器12可以在同一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。
处理器11可以是通用处理器,例如中央处理器(CPU)、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的报文转发方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器12作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器12可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(Random Access Memory,RAM)、静态随机访问存储器(Static Random Access Memory,SRAM)、可编程只读存储器(Programmable Read Only Memory,PROM)、只读存储器(Read Only Memory,ROM)、带电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性存储器、磁盘、光盘等等。存储器12是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本申请实施例中的存储器12还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
通过对处理器11进行设计编程,可以将前述实施例中介绍的报文转发方法所对应的代码固化到芯片内,从而使芯片在运行时能够执行本申请实施例的报文转发方法的步骤。如何对处理器11进行设计编程为本领域技术人员所公知的技术,这里不再赘述。
基于同一发明构思,本申请实施例还提供一种存储介质,该存储介质存储有计算机指令,当该计算机指令在计算机上运行时,使得计算机执行前文论述报文转发方法。
在一些可能的实施方式中,本申请提供的报文转发方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在装置上运行时,程序代码用于使该控制设备执行本说明书上述描述的根据本申请各种示例性实施方式的报文转发方法中的步骤。
本领域内的技术人员应明白,本申请的实施例可提供为方法、装置、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (9)
1.一种报文转发的方法,其特征在于,所述方法包括:
基于容器网络拓扑,接收第一容器访问第二容器的第一请求;其中,所述第一容器和所述第二容器为绑定于第一IPVLAN虚拟网卡的容器,所述第一容器和所述第二容器的MAC地址为所述第一IPVLAN虚拟网卡的MAC地址;
响应于所述第一请求,通过所述第一IPVLAN虚拟网卡,将所述第一容器发送的报文转发至所述第二容器;
基于所述容器网络拓扑,接收第三容器访问宿主机局域网的第二请求;其中,所述第三容器为绑定于第二IPVLAN虚拟网卡的容器;
响应于所述第二请求,通过第一VLAN虚拟网卡,在所述第三容器发送的报文中添加第一标识;其中,所述第一VLAN虚拟网卡为创建所述第二IPVLAN虚拟网卡的虚拟网卡,所述第一标识为所述第二IPVLAN虚拟网卡对应的标识;
采用所述第一VLAN虚拟网卡的MAC地址,将添加所述第一标识的报文发送至所述宿主机局域网。
2.如权利要求1所述的方法,其特征在于,所述方法,还包括:
基于所述容器网络拓扑,接收宿主机局域网访问第四容器的第三请求;
根据所述第三请求中的MAC地址,确定绑定所述第四容器的第三IPVLAN虚拟网卡;
通过所述第三IPVLAN虚拟网卡,将接收到所述宿主机局域网发送的报文转发至所述第四容器。
3.如权利要求1所述的方法,其特征在于,在所述基于容器网络拓扑,接收第一容器访问第二容器的第一请求之前,还包括:
响应于容器网络拓扑的配置请求,配置级联的所述容器网络拓扑;其中,所述容器网络拓扑的各层分别包括物理网卡、VLAN虚拟网卡、IPVLAN虚拟网卡以及容器。
4.如权利要求3所述的方法,其特征在于,所述响应于容器网络拓扑的配置请求,配置级联的容器网络拓扑,包括:
响应于容器网络拓扑的配置请求,基于宿主机的物理网卡,创建与所述物理网卡直接连接的单个或多个VLAN虚拟网卡;
为创建的每个VLAN虚拟网卡绑定单个或多个IPVLAN虚拟网卡;
为每个IPVLAN虚拟网卡绑定单个或多个IP地址;其中,一个IP地址对应一个容器。
5.如权利要求4所述的方法,其特征在于,所述创建与所述物理网卡直接连接的单个或多个VLAN虚拟网卡,还包括:为不同的VLAN虚拟网卡分别分配不同的MAC地址。
6.如权利要求4所述的方法,其特征在于,所述为创建的每个VLAN虚拟网卡绑定单个或多个IPVLAN虚拟网卡,还包括:为绑定于同一VLAN虚拟网卡的IPVLAN虚拟网卡分配相同的MAC地址。
7.一种报文转发的装置,其特征在于,所述装置包括:
第一接收请求模块,基于容器网络拓扑,接收第一容器访问第二容器的第一请求;其中,所述第一容器和所述第二容器为绑定于第一IPVLAN虚拟网卡的容器,所述第一容器和所述第二容器的MAC地址为所述第一IPVLAN虚拟网卡的MAC地址;
第一转发报文模块,响应于所述第一请求,通过所述第一IPVLAN虚拟网卡,将所述第一容器发送的报文转发至所述第二容器;
第二接收请求模块,基于所述容器网络拓扑,接收第三容器访问宿主机局域网的第二请求;其中,所述第三容器为绑定于第二IPVLAN虚拟网卡的容器;
添加标识模块,响应于所述第二请求,通过第一VLAN虚拟网卡,在所述第三容器发送的报文中添加第一标识;其中,所述第一VLAN虚拟网卡为创建所述第二IPVLAN虚拟网卡的虚拟网卡,所述第一标识为所述第二IPVLAN虚拟网卡对应的标识;
第二转发报文模块,采用所述第一VLAN虚拟网卡的MAC地址,将添加所述第一标识的报文发送至所述宿主机局域网。
8.一种电子设备,其特征在于,包括:
存储器,用于存放计算机程序;
处理器,用于执行所述存储器上所存放的计算机程序时,实现权利要求1-6中任一项所述的方法步骤。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-6任一项所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210187002.0A CN114629844B (zh) | 2022-02-28 | 2022-02-28 | 一种报文转发的方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210187002.0A CN114629844B (zh) | 2022-02-28 | 2022-02-28 | 一种报文转发的方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114629844A CN114629844A (zh) | 2022-06-14 |
CN114629844B true CN114629844B (zh) | 2024-04-05 |
Family
ID=81899396
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210187002.0A Active CN114629844B (zh) | 2022-02-28 | 2022-02-28 | 一种报文转发的方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114629844B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116827777B (zh) * | 2023-04-28 | 2024-05-14 | 北京绪水互联科技有限公司 | 适用于n台相同IP地址的目标设备的数据采集方法及网络配置方法、电子设备、数据采集系统 |
Citations (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101098252A (zh) * | 2006-06-29 | 2008-01-02 | 阿尔卡特公司 | Ip网络中的合法监听 |
CN103259735A (zh) * | 2013-05-15 | 2013-08-21 | 重庆邮电大学 | 一种基于NetFPGA的可编程虚拟化路由器的通信方法 |
CN105430110A (zh) * | 2015-10-30 | 2016-03-23 | 浪潮(北京)电子信息产业有限公司 | 一种虚拟网络系统的容器配置方法及网络传输装置 |
CN106789526A (zh) * | 2016-11-29 | 2017-05-31 | 北京元心科技有限公司 | 多系统网络连接的方法及装置 |
CN107070691A (zh) * | 2017-01-12 | 2017-08-18 | 阿里巴巴集团控股有限公司 | Docker容器的跨主机通信方法和系统 |
CN107566541A (zh) * | 2017-08-03 | 2018-01-09 | 携程旅游信息技术(上海)有限公司 | 容器网络资源分配方法、系统、存储介质和电子设备 |
CN107579898A (zh) * | 2017-09-14 | 2018-01-12 | 快云信息科技有限公司 | 一种多种容器间互联通信的方法及其装置 |
CN107995326A (zh) * | 2017-12-13 | 2018-05-04 | 北京搜狐新媒体信息技术有限公司 | 一种容器网络的管理方法及装置 |
CN109587281A (zh) * | 2017-09-29 | 2019-04-05 | 华为技术有限公司 | 容器配置方法和计算节点 |
CN110569111A (zh) * | 2019-09-12 | 2019-12-13 | 天津华云软件有限公司 | 一种基于传统容器的虚拟机实现方法、装置及系统 |
CN110704155A (zh) * | 2018-07-09 | 2020-01-17 | 阿里巴巴集团控股有限公司 | 容器网络构建方法及装置、物理主机、数据传输方法 |
CN110858821A (zh) * | 2018-08-23 | 2020-03-03 | 阿里巴巴集团控股有限公司 | 容器通信方法及装置 |
CN110995561A (zh) * | 2019-12-06 | 2020-04-10 | 中国科学院信息工程研究所 | 基于容器技术的虚拟网络数据通信交互方法与系统 |
CN111147450A (zh) * | 2019-12-09 | 2020-05-12 | 江苏艾佳家居用品有限公司 | 一种基于macvlan模式的容器网络隔离方法 |
CN111885075A (zh) * | 2020-07-30 | 2020-11-03 | 广州华多网络科技有限公司 | 容器通信方法、装置、网络设备及存储介质 |
CN112398687A (zh) * | 2020-11-13 | 2021-02-23 | 广东省华南技术转移中心有限公司 | 云计算网络的配置方法、云计算网络系统以及存储介质 |
CN112753204A (zh) * | 2018-07-24 | 2021-05-04 | 上海诺基亚贝尔股份有限公司 | 使用单独的传输服务vnfc递送数据平面分组的方法、设备和计算机可读介质 |
CN112925581A (zh) * | 2021-02-22 | 2021-06-08 | 百果园技术(新加坡)有限公司 | Dpdk容器的启动方法、装置及电子设备 |
CN113824622A (zh) * | 2021-09-13 | 2021-12-21 | 京东科技信息技术有限公司 | 容器之间的通信控制方法、装置、计算机设备及存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7738457B2 (en) * | 2006-12-20 | 2010-06-15 | Oracle America, Inc. | Method and system for virtual routing using containers |
US10063469B2 (en) * | 2015-12-16 | 2018-08-28 | Nicira, Inc. | Forwarding element implementation for containers |
US11481356B2 (en) * | 2020-07-21 | 2022-10-25 | EMC IP Holding Company LLC | Techniques for providing client interfaces |
-
2022
- 2022-02-28 CN CN202210187002.0A patent/CN114629844B/zh active Active
Patent Citations (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101098252A (zh) * | 2006-06-29 | 2008-01-02 | 阿尔卡特公司 | Ip网络中的合法监听 |
CN103259735A (zh) * | 2013-05-15 | 2013-08-21 | 重庆邮电大学 | 一种基于NetFPGA的可编程虚拟化路由器的通信方法 |
CN105430110A (zh) * | 2015-10-30 | 2016-03-23 | 浪潮(北京)电子信息产业有限公司 | 一种虚拟网络系统的容器配置方法及网络传输装置 |
CN106789526A (zh) * | 2016-11-29 | 2017-05-31 | 北京元心科技有限公司 | 多系统网络连接的方法及装置 |
CN107070691A (zh) * | 2017-01-12 | 2017-08-18 | 阿里巴巴集团控股有限公司 | Docker容器的跨主机通信方法和系统 |
CN107566541A (zh) * | 2017-08-03 | 2018-01-09 | 携程旅游信息技术(上海)有限公司 | 容器网络资源分配方法、系统、存储介质和电子设备 |
CN107579898A (zh) * | 2017-09-14 | 2018-01-12 | 快云信息科技有限公司 | 一种多种容器间互联通信的方法及其装置 |
CN109587281A (zh) * | 2017-09-29 | 2019-04-05 | 华为技术有限公司 | 容器配置方法和计算节点 |
CN107995326A (zh) * | 2017-12-13 | 2018-05-04 | 北京搜狐新媒体信息技术有限公司 | 一种容器网络的管理方法及装置 |
CN110704155A (zh) * | 2018-07-09 | 2020-01-17 | 阿里巴巴集团控股有限公司 | 容器网络构建方法及装置、物理主机、数据传输方法 |
CN112753204A (zh) * | 2018-07-24 | 2021-05-04 | 上海诺基亚贝尔股份有限公司 | 使用单独的传输服务vnfc递送数据平面分组的方法、设备和计算机可读介质 |
CN110858821A (zh) * | 2018-08-23 | 2020-03-03 | 阿里巴巴集团控股有限公司 | 容器通信方法及装置 |
CN110569111A (zh) * | 2019-09-12 | 2019-12-13 | 天津华云软件有限公司 | 一种基于传统容器的虚拟机实现方法、装置及系统 |
CN110995561A (zh) * | 2019-12-06 | 2020-04-10 | 中国科学院信息工程研究所 | 基于容器技术的虚拟网络数据通信交互方法与系统 |
CN111147450A (zh) * | 2019-12-09 | 2020-05-12 | 江苏艾佳家居用品有限公司 | 一种基于macvlan模式的容器网络隔离方法 |
CN111885075A (zh) * | 2020-07-30 | 2020-11-03 | 广州华多网络科技有限公司 | 容器通信方法、装置、网络设备及存储介质 |
CN112398687A (zh) * | 2020-11-13 | 2021-02-23 | 广东省华南技术转移中心有限公司 | 云计算网络的配置方法、云计算网络系统以及存储介质 |
CN112925581A (zh) * | 2021-02-22 | 2021-06-08 | 百果园技术(新加坡)有限公司 | Dpdk容器的启动方法、装置及电子设备 |
CN113824622A (zh) * | 2021-09-13 | 2021-12-21 | 京东科技信息技术有限公司 | 容器之间的通信控制方法、装置、计算机设备及存储介质 |
Non-Patent Citations (5)
Title |
---|
EVN: An Elastic Virtual Network Supporting NFV Customized and Rapid Migration;Jian Zou等;2018 27th International Conference on Computer Communication and Networks (ICCCN);全文 * |
Machine Learning Techniques to Enhance Container Network Security;Abhinav Kommula等;2020 International Conference on Computational Science and Computational Intelligence (CSCI);全文 * |
一种面向多租户的Linux容器集群组网方法;朱瑜坚;马俊明;安博;曹东刚;;计算机科学(第09期);全文 * |
基于Macvlan的Docker容器网络架构研究;李巍;赵永彬;王鸥;刚毅凝;;机械设计与制造(第05期);全文 * |
面向Docker的覆盖网络搭建探究;张青;刘剑;朱晓民;;电信工程技术与标准化(第09期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN114629844A (zh) | 2022-06-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10063470B2 (en) | Data center network system based on software-defined network and packet forwarding method, address resolution method, routing controller thereof | |
CN110012125B (zh) | 集群网络通信方法、装置、存储介质和设备 | |
CN106656719B (zh) | 云间通信方法及相关设备、云间通信配置方法及相关设备 | |
US11831551B2 (en) | Cloud computing data center system, gateway, server, and packet processing method | |
CN111800326B (zh) | 报文传输方法及装置、处理节点及存储介质 | |
US11394607B2 (en) | Method and system for network configuration | |
CN111064649B (zh) | 一种分层端口绑定实现方法、装置、控制设备及存储介质 | |
CN105323136A (zh) | 信息的处理方法及装置 | |
CN104937885A (zh) | 用于结构交换机的全局vlan | |
CN109617995B (zh) | 对租户集群vpc内部容器的管理系统、方法及电子设备 | |
CN111556110B (zh) | 一种用于私有云系统的不同物理业务网络自动化适配方法 | |
CN107306215B (zh) | 一种数据处理方法、系统及节点 | |
CN108028801B (zh) | 一种基于sdn的arp实现方法及装置 | |
CN110351135B (zh) | 多dc中的网络设备配置方法及装置 | |
CN112631726B (zh) | 一种虚拟机数据处理方法、系统、设备以及介质 | |
CN108965134B (zh) | 报文转发方法及装置 | |
CN109547350B (zh) | 一种路由学习方法及网关设备 | |
CN113132202A (zh) | 一种报文传输方法及相关设备 | |
CN114629844B (zh) | 一种报文转发的方法、装置及电子设备 | |
CN112769584B (zh) | 网络切片共享上联口的方法、装置及存储介质 | |
CN111294268B (zh) | 避免ip地址冲突的方法及装置 | |
CN113726915A (zh) | 网络系统及其中的报文传输方法和相关装置 | |
CN109995636B (zh) | 混合组网方法、装置、系统、设备及介质 | |
CN114124714A (zh) | 一种多层级网络部署方法、装置、设备及存储介质 | |
EP3503484B1 (en) | Message transmission methods and devices |
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 |