掌桥专利:专业的专利平台
掌桥专利
首页

用于生成群聚的功能IPV6地址的计算设备和方法

文献发布时间:2023-06-19 19:30:30


用于生成群聚的功能IPV6地址的计算设备和方法

技术领域

本公开涉及大规模多设备应用部署。更具体而言,本公开涉及用于生成群聚(pod)的功能IPv6地址的计算设备和方法。

背景技术

Kubernetes是大规模多设备应用部署框架的示例。在Kubernetes中,应用部署包括部署群聚。Kubernetes中的计算设备被称为节点。群聚由一个或多个容器组成,这些容器共置于同一节点上并共享资源。每个容器执行软件,并且由群聚的(一个或多个)容器执行的(一个或多个)软件的组合实现应用。一个或多个相同类型的群聚可以在同一节点上并发执行,也可以在不同节点上执行。

在Kubernetes中,节点上的每个群聚都分配有互联网协议(IP)地址,用于与节点外部的其它实体通信,包括在其它节点上执行的群聚。本公开关注IPv6地址。

生成IPv6地址的常用方法是组合拓扑组件和个体组件。例如,拓扑组件作为分配给执行群聚的节点的IPv6前缀的和个体组件是群聚的标识符。

但是,生成IPv6地址的常用方法并不代表群聚的功能架构。一组群聚可能共享共同的属性,这些属性未在其各自的IPv6地址中表示。因此,为了寻址一组共享共同属性的群聚,需要引用属于该组的群聚的每个个体IPv6地址。例如,为了为共享共同属性的一组群聚提供基于IPv6地址的入口或出口过滤,对于属于该组的每个群聚的IPv6地址需要使用至少一个过滤规则。考虑到组可能包含大量群聚并且属于该组的群聚可能会随着时间的推移发生很大变化,因此管理此类过滤规则存在可扩展性问题。

因此,需要一种用于生成群聚的功能IPv6地址的计算设备和方法。

发明内容

根据第一方面,本公开涉及一种计算设备。该计算设备包括用于存储至少一个命名空间、每个命名空间的至少一种相关联的容器类型和互联网协议版本6(IPv6)基本前缀的存储器。该计算设备还包括处理单元,其包括至少一个处理器。处理单元从至少一个命名空间中选择命名空间。处理单元从与所选择的命名空间相关联的至少一个群聚类型中选择群聚类型。处理单元创建与所选择的命名空间和所选择的群聚类型对应的群聚。处理单元为群聚生成群聚标识符,容器标识符在计算设备级别唯一地识别群聚。处理单元基于所选择的命名空间生成命名空间字段。处理单元基于所选择的群聚类型生成群聚类型字段。处理单元通过至少组合IPv6基本前缀、命名空间字段、群聚类型字段和群聚标识符来生成群聚的功能IPv6地址。

根据第二方面,本公开涉及一种用于生成群聚的功能互联网协议版本6(IPv6)地址的方法。该方法包括在计算设备的存储器中存储至少一个命名空间、每个命名空间的至少一个相关联的群聚类型以及IPv6基本前缀。该方法包括由计算设备的处理单元在至少一个命名空间中选择命名空间。该方法包括由处理单元在与所选择的命名空间相关联的至少一个群聚类型中选择群聚类型。该方法包括由处理单元创建与所选择的命名空间和所选择的群聚类型对应的群聚。该方法包括由处理单元生成群聚的群聚标识符。群聚标识符在计算设备级别唯一地识别群聚。该方法包括由处理单元基于所选择的命名空间生成命名空间字段。该方法包括由处理单元基于所选择的群聚类型生成群聚类型字段。该方法包括由处理单元通过至少组合IPv6基本前缀、命名空间字段、群聚类型字段和群聚标识符来生成群聚的功能IPv6地址。

根据第三方面,本公开提供了一种非暂态计算机程序产品,包括可由计算设备的处理单元执行的指令。处理单元对指令的执行提供了通过实现上述方法来生成群聚的功能互联网协议版本6(IPv6)地址。

在特定方面,功能IPv6地址以IPv6基本前缀开始,随后是命名空间字段,可选地随后是填充字段,随后是群聚类型字段,并以群聚标识符结束。

在另一个特定方面,处理单元进一步执行群聚,群聚的执行包括执行容器化软件应用。

在又一个特定方面,群聚是Kubernetes群聚。

附图说明

本公开的实施例将仅通过示例的方式参考附图进行描述,其中:

图1表示计算设备;

图2表示在几个计算设备上部署群聚;

图3表示用于生成群聚的功能IPv6地址的方法;

图4图示了图的执行过滤软件的计算设备之一;以及

图5表示用于过滤群聚的功能IPv6地址的方法。

具体实施方式

通过阅读仅作为示例参考附图给出的说明性实施例的以下非限制性描述,前述和其它特征将变得更加明显。

本公开的各个方面总体上解决了与为群聚生成和使用IPv6地址相关的一个或多个问题,其中IPv6地址考虑了群聚部署框架(例如,Kubernetes)的功能架构。

群聚的功能IPV6地址的生成

在接下来的描述中,Kubernetes框架将用于描述群聚基础设施的部署以及为群聚生成功能IPv6地址。在Kubernetes中,群聚是容器化的软件应用,实现在同一计算设备上执行的一个或多个软件容器。本公开可以扩展到支持群聚作为容器化软件应用的概念并进一步支持用于生成IPv6功能地址的Kubernetes的其它功能(如下所述)的另一个应用部署框架。

现在参考图1,图示了计算设备100。在接下来的描述中,计算设备100将被称为节点,这是Kubernetes框架中通常使用的术语,用于指定执行一个或多个群聚的计算设备。节点100的示例包括(但不限于)交换机、路由器、服务器、台式机、移动计算设备(例如,智能电话或平板电脑)等。

节点100包括处理单元110、存储器120和至少一个通信接口130。节点100可以包括附加组件(为了简化目的在图1中未表示)。例如,节点100可以包括用户界面和/或显示器。

处理单元110包括能够执行计算机程序的指令的一个或多个处理器(为了说明目的,图1中表示了单个处理器)。每个处理器还可以包括一个或几个内核。处理单元110还可以包括一个或多个专用处理组件(例如,网络处理器、专用集成电路(ASIC)等),用于执行专门的联网功能(例如,分组转发)。

存储器120存储由处理单元110执行的(一个或多个)计算机程序的指令、由处理单元110执行(一个或多个)计算机程序所生成的数据、经由(一个或多个)通信接口130接收到的数据等。图1中仅表示了单个存储器120,但是节点100可以包括几种类型的存储器,包括易失性存储器(诸如随机存取存储器(RAM))和非易失性存储器(诸如硬盘驱动器、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)等)。

每个通信接口130允许节点100与其它设备交换数据(为了说明目的,图1中表示了两个通信接口)。有线类型的通信接口130的示例包括标准(电气)以太网端口、光纤端口、适于接收小形状因子可插拔(SFP)单元的端口等。通信接口130也可以是无线类型的(例如,Wi-Fi接口)。通信接口130包括硬件和由硬件执行的软件的组合,用于实现通信接口130的通信功能。可替代地,用于实现通信接口130的通信功能的硬件和软件的组合被至少部分地包括在处理单元110中。

现在同时参考图1和图2。图2图示了具有在主节点200的控制下执行群聚的三个节点100(分别为节点1、节点2和节点3)的架构。在接下来的描述中,与主节点对照,(在主节点200的控制下)执行群聚的节点100将被简称为节点。

主节点200的硬件架构类似于图1中所示的节点100的硬件架构。主节点200包括执行用于管理(配置、创建、执行、删除等)节点100上的群聚的主软件的处理单元210。主节点200对群聚的管理基于主节点200和节点100之间的数据交换,这不在本要求保护的发明的范围内。虽然为了简化目的未在图2中表示,但是每个节点100执行客户端软件,该客户端软件与主软件交互以实现节点100上的群聚的管理。

为了说明目的,节点1执行4个群聚(分别为POD 1、POD 2、POD 3和POD 4),节点2执行3个群聚(分别为POD 1、POD 2和POD 3),并且节点3执行3个群聚(分别为POD 1,POD 2和POD3)。此外,虽然图2中表示了3个节点100,但是任何数量的节点100都可以在主节点200的控制下操作。

Kubernetes框架提供了命名空间的功能,其通常用在包括大量用户的环境。命名空间为Kubernetes框架中使用的资源(例如,群聚、服务等)名称提供范围。资源的名称在给定命名空间内是唯一的,但跨命名空间不是唯一的。

命名空间可以用于定义资源配额限制,这些限制在主节点200的控制下强制实施。例如,第一命名空间(对应于第一组用户)在主节点200的控制下具有由所有节点100提供的30%的处理能力和30%的存储器的限制,而第二命名空间(对应于第二组用户)在主节点200的控制下具有由所有节点100提供的40%的处理能力和50%的存储器的限制。在另一个示例中,第一命名空间在主节点200的控制下被分配所有节点100的25%,而第二命名空间在主节点200的控制下被分配所有节点100的50%。命名空间也可以用于例如通过减少属于给定命名空间的一组用户的特权来强制实施安全策略。

Kubernetes框架还提供了群聚模板的功能。群聚模板是用于根据群聚模板创建群聚的规范。每个群聚模板都是文本文件,它定义从群聚模板创建的群聚的行为方式。特别地,群聚模板定义了由群聚实现的软件容器的数量,以及对于每个容器,由容器执行的(一个或多个)特定软件程序。每个群聚模板都包含识别群聚模板的名称。在接下来的描述中,群聚模板的名称将被称为群聚类型。因此,给定的群聚类型识别对应的给定群聚模板。对应于给定群聚类型的群聚实例将被称为给定群聚类型的群聚。相同群聚类型的几个群聚可以在不同节点100上并发执行。此外,可以在同一节点100上并发执行同一群聚类型的几个群聚。

命名空间和群聚类型的概念是相互关联的。群聚模板和相关联的群聚类型是在给定命名空间的上下文中生成的。由于命名空间和群聚类型由名称组成,因此它们分别由串实现,该串可能有或没有预定义的长度。例如,命名空间是具有最多N个(例如,30个)字符的串,并且群聚类型是具有最多T个(例如,20个)字符的串。命名空间串和群聚类型串可以被转换成(比串)更有效的格式用于内部存储和内部处理。串格式供用户使用,并允许由用户(例如,由管理员使用主节点200的用户界面)对命名空间和群聚类型进行创建、修改、删除等。

以下是与图2中表示的群聚对应的示例性命名空间和群聚类型。生成名称为“域A”的第一命名空间。在命名空间“域A”内,生成两个名称分别为“app_a01”和“app_a02”的群聚类型。群聚类型“app_a01”识别群聚模板t_a01,并且群聚类型“app_a02”识别群聚模板t_a02。节点1上的POD 1属于命名空间“域A”并且对应于群聚类型“app_a01”(节点1上的POD 1实现群聚模板t_a01)。节点1上的POD 2属于命名空间“域A”并且也对应于群聚类型“app_a01”(节点1上的POD 2实现群聚模板t_a01)。POD 1和POD 2图示了在同一节点上并发执行的同一命名空间/群聚类型的两个实例。节点1上的POD 4属于命名空间“域A”并且对应于群聚类型“app_a02”(节点1上的POD 4实现群聚模板t_a02)。节点2上的POD 1属于命名空间“域A”并且对应于群聚类型“app_a01”(节点2上的POD 1实现群聚模板t_a01)。节点3上的POD 1属于命名空间“域A”并且对应于群聚类型“app_a02”(节点3上的POD 1实现群聚模板t_a02)。

生成名称为“域B”的第二命名空间。在这个命名空间“域B”内,生成两个分别名称为“app_b01”和“app_b02”的群聚类型。群聚类型“app_b01”识别群聚模板t_b01,并且群聚类型“app_b02”识别群聚模板t_b02。节点1上的POD 3属于命名空间“域B”并且对应于群聚类型“app_b01”(节点1上的POD 3实现群聚模板t_b01)。节点2上的POD 2属于命名空间“域B”并且对应于群聚类型“app_b02”(节点2上的POD 2实现群聚模板t_b02)。节点2上的POD 3属于命名空间“域B”并且对应于群聚类型“app_b01”(节点2上的POD 3实现群聚模板t_b01)。节点3上的POD 2属于命名空间“域B”并且对应于群聚类型“app_b02”(节点3上的POD2实现群聚模板t_b02)。

生成名称为“域C”的第三命名空间。在这命名空间“域C”内,生成一个名称为“app_c01”的群聚类型。群聚类型“app_c01”识别群聚模板t_c01。节点3上的POD 3属于命名空间“域C”并且对应于群聚类型“app_c01”(节点3上的POD 3实现群聚模板t_c01)。

在第一实施方式中,群聚类型在所有定义的命名空间中是唯一的。在第二实施方式中,群聚类型在给定的命名空间内是唯一的(相同的群聚类型可以在两个不同的命名空间中使用)。在这两种实施方式中,群聚类型和其中定义了它的命名空间的组合都是唯一的。

前面示例中的命名空间数量和每个命名空间的群聚类型数量仅用于说明目的,并且可能因群聚基础设施的每个特定实施方式而变化。下表总结了前面的示例。

表1

Kubernetes框架还提供了为每个群聚分配至少一个互联网协议(IP)地址的功能。因此,群聚可以仅具有IPv4地址、仅具有IPv6地址,或者具有IPv4和IPv6地址。在同一节点100上执行的两个群聚通常使用它们各自的IP地址直接交换数据。在两个不同节点100上执行的两个群聚使用它们各自的IP地址并通过两个不同节点的各自通信接口130交换数据。

本公开关注分配给群聚的IPv6地址的生成。在Kubernetes术语中,集群是一组节点100和(一个或多个)主节点200。集群被分配有IPv6前缀;例如2001:db80:aabb/48。集群中的每个节点100被分配从集群的IPv6前缀导出的IPv6前缀;例如,用于节点1的2001:db80:aabb:1001/64,用于节点2的2001:db80:aabb:1002/64,和用于节点3的2001:db80:aabb:1003/64。在接下来的描述中,被分配给每个节点100的IPv6前缀将被称为IPv6基本前缀。

给定节点100上的每个群聚还被分配有预定义位数(例如,14或16位)的群聚标识符。在给定节点100内,群聚标识符是唯一的。但是,同一群聚标识符可以在不同的节点100上使用。例如,群聚标识符0x0001、0x0002、0x0003和0x0004分别被分配给节点1上的群聚POD 1、POD 2、POD 3和POD 4。群聚标识符0x0001、0x0002和0x0003分别被分配给节点2上的群聚POD 1、POD 2和POD 3。群聚标识符0x0001、0x0002和0x0003分别被分配给节点3上的群聚POD 1、POD 2和POD 3。

Kubernetes框架为集群的每个对象(包括群聚)分配128位的通用唯一标识符(UUID)。因此,在示例性实施方式中,通过计算分配给群聚的UUID的散列来生成群聚的群聚标识符。散列函数的输入是128位的UUID,并且散列函数的输出是14(或16)位的群聚标识符。散列函数的设计使得两个不同的UUID值在应用散列函数时不会生成相同的输出。

为群聚生成IPv6地址的传统方法是将群聚在其上执行的节点100的基于IPv6的前缀与分配给群聚的唯一标识符组合。下表基于表1说明了为群聚生成IPv6地址的传统方法。

表2

如表2所示,分配给群聚的IPv6地址没有考虑群聚的命名空间和群聚类型。本公开旨在提供一种生成群聚的IPv6地址的新方法,其考虑群聚各自的命名空间和群聚类型。这样的IPv6地址将被称为功能IPv6地址。

群聚的功能IPv6地址由拓扑组件、基于群聚命名空间的字段、基于群聚的群聚类型的字段和群聚的群聚标识符组合生成。在示例性实施方式中,拓扑组件是在其上执行群聚的节点的IPv6基础前缀。

例如,功能IPv6地址定义如下:::::,其中

是64位字段,由执行群聚的节点的IPv6基本前缀组成。

是16位字段,基于群聚的命名空间生成。

是18位字段,用零填充,可以用于将附加特征合并到功能IPv6地址中。

是16位字段,基于群聚的群聚类型生成。

是14位字段,由执行群聚的节点上的群聚标识符组成。

本领域技术人员将容易理解,一个或多个字段的特性可以变化。例如,可以修改一些字段的长度,只要所得的功能IPv6地址具有128位即可。在另一个示例中,可以修改一些字段的顺序。在另一个示例中,可以抑制填充字段并且扩展一个或多个其它字段的长度。

基于命名空间生成命名空间字段和基于群聚类型生成群聚类型字段可以以不同的方式实现。由于相应的命名空间字段的位长度(例如,16位)和群聚类型字段的位长度(例如,16位)小,因此可以为此使用散列函数。如果使用散列函数,那么该散列函数需要在所有节点上生成相同的结果,即使散列函数的输入以不同的顺序给出。如前所述,散列函数的两个不同输入不应生成相同的散列函数输出。这通常需要对所有节点实现的散列函数进行某种类型的中央协调。

例如,串命名空间“域A”、“域B”和“域C”分别在命名空间字段0x000A、0x000B和0x000C中通过散列函数进行转换。类似地,串群聚类型“app_a01”、“app_a02”、“app_a03”、“app_b01”、“app_b02”和“app_c01”分别在群聚类型字段0x0A01、0x0A02、0x0A03、0x0B01、0x0B02和0x0C01中通过散列函数进行转换。

如前所述,命名空间和群聚类型也可以由Kubernetes框架以(比字符串)更有效的格式编码以供内部使用。在接下来的描述中,对命名空间和群聚类型的引用可以包含Kubernetes用于操纵命名空间和群聚类型的任何格式。如果格式与命名空间字段和/或群聚类型字段兼容(相同或更少的位数),那么此格式可以直接用于命名空间字段和/或群聚类型字段。如果格式与命名空间字段和/或群聚类型字段不兼容(更多位数),那么可以经由散列函数转换该格式以生成命名空间字段和/或群聚类型字段。

下表基于表1和表2,说明了为群聚示例性生成功能IPv6地址。出于简化目的,字段被设置为16位(而不是前面示例中的18位),并且字段被设置为16位(而不是前面示例中的14位)。

表3

现在同时参考图1、2和3,图3中图示了用于生成群聚的功能IPv6地址的方法300。方法300的至少一些步骤由图2中表示的每个节点100执行。

专用计算机程序具有用于实现方法300的至少一些步骤的指令。指令包含在非暂态计算机程序产品(例如,节点100的存储器120)中。这些指令在由节点100的处理单元110执行时提供生成群聚的功能IPv6地址。指令可经由诸如存储介质(例如,CD-ROM、USB盘等)之类的电子可读介质,或经由通信链路(例如,经由通过节点100的通信接口130之一的通信网络)传送到节点100。如前所述,处理单元110包括至少一个处理器,每个处理器包括至少一个核心。

方法300包括在存储器120中(例如,在如图1中所示的一个或多个配置文件121中)存储至少一个命名空间、每个命名空间的至少一个相关联的群聚类型和IPv6基本前缀的步骤305。步骤305由节点100的处理单元110执行。

例如,每个命名空间由集群的管理员在主节点200处定义。对于每个命名空间,相关联的一个或多个群聚类型也由集群的管理员(或简单用户)在主节点200处定义。一个或多个命名空间和每个对应的一个或多个群聚类型从主节点200传输到每个节点100、经由通信接口130在每个节点100处被接收到,并存储在存储器120中。前面已经描述了存储在各节点——节点1、节点2和节点3的存储器120中的命名空间和对应群聚类型的示例性说明。

关于IPv6基本前缀,它的生成和传输(例如,由主节点200或图2中未表示的另一个计算设备)到每个节点100不在本公开的范围内。IPv6基本前缀具有预定义的位数(例如,64位)。用于在节点100的集群中生成、管理和传播IPv6前缀的机制在本领域中是众所周知的。

方法300包括从存储在存储器120中的至少一个命名空间中选择命名空间的步骤310。步骤310由节点100的处理单元110执行。

方法300包括从与在步骤310处选择的命名空间相关联的至少一个群聚类型(存储在存储器120中)中选择群聚类型的步骤315。步骤315由节点100的处理单元110执行。例如,如果在步骤310处选择命名空间“域A”,那么在步骤315处选择群聚类型“app_a01”、“app_a02”或“app_a03”之一。

方法300包括创建与在步骤310处选择的命名空间和在步骤315处选择的群聚类型对应的群聚的步骤320。步骤320由节点100的处理单元110执行。例如在Kubernetes框架的上下文中群聚的创建在本领域中是众所周知的并且不在本公开的范围内。群聚的创建可以例如包括硬件和/或软件资源的分配、从永久存储存储器(例如,节点100的硬盘驱动器)传输软件指令(与在步骤315处选择的群聚类型相关联)到临时执行存储器(例如,节点100的随机存取存储器(RAM))等。群聚的创建是基于与所选择的命名空间和群聚类型对应的群聚模板。例如,如果在步骤310处选择命名空间“域A”并且在步骤315处选择群聚类型“app_a02”,那么在步骤320处创建的群聚符合模板t_a02。

方法300包括为在步骤320处创建的群聚生成群聚标识符的步骤325。步骤325由节点100的处理单元110执行。群聚标识符具有预定义的位数,并且唯一地在节点100级别识别在步骤320处创建的群聚(在同一节点100上创建的任何两个群聚具有各自不同的群聚标识符)。前面已经描述了确定群聚标识符的示例性实现。步骤325可以集成到步骤320中,或者可以独立于步骤320执行(例如,通过Kubernetes框架或独立于Kubernetes框架的专用机制)。

方法300包括基于在步骤310处选择的命名空间生成命名空间字段的步骤330。步骤330由节点100的处理单元110执行。前面已经描述了步骤330的示例性实现。命名空间字段具有预定义的位数。

方法300包括基于在步骤315处选择的群聚类型生成群聚类型字段的步骤335。步骤335由节点100的处理单元110执行。前面已经描述了步骤335的示例性实现。群聚类型字段具有预定义的位数。

方法300包括通过至少组合IPv6基本前缀(在步骤305处存储)、命名空间字段(在步骤330处生成)、群聚类型字段(在步骤335处生成)和群聚标识符(在步骤325处生成)来生成群聚的功能IPv6地址(在步骤320处创建)的步骤340。步骤340由节点100的处理单元110执行。前面已经描述了步骤340的示例性实现。

方法300包括执行在步骤320处创建的群聚的步骤345。步骤345由节点100的处理单元110执行。群聚的执行是本领域众所周知的,例如在Kubernetes框架的上下文中。群聚的执行包括执行容器化软件应用。群聚包括一个或多个容器,每个容器执行(一个或多个)计算机程序。由(一个或多个)容器执行的(一个或多个)计算机程序的组合实现群聚支持的软件应用。容器的概念在本领域中也是众所周知的。

虽然出于简化目的未在图3中表示,但是在步骤340处生成功能IPv6地址之后通常是功能IPv6地址的通告(由处理单元110经由(一个或多个)通信接口330执行)。通告可以集成到步骤345或者可以独立于步骤345执行。例如,功能IPv6地址的通告由节点1向(一个或多个)其它节点100(例如,节点2和3)进行,以使用在步骤340处生成的功能IPv6地址,允许在步骤320处在节点1上创建的群聚与在(一个或多个)其它节点100上执行的其它群聚(例如,节点2和3上的群聚)之间的通信。

以下是在步骤345处执行群聚期间执行的通信示例。出于说明目的,群聚是在节点1上执行的POD 1。在第一示例中,在节点1上执行POD 1生成具有功能IPv6地址作为源IPv6地址的IPv6数据包,并且处理单元110经由通信接口130将IPv6数据包传输到节点2(更具体而言,传输到在节点2上执行的POD 2)。在第二示例中,处理单元110经由通信接口130(例如,从节点3并且更具体而言从在节点3上执行的POD 3)接收具有功能IPv6地址作为目的地IPv6地址的IPv6数据包,并且IPv6数据包在节点1上的POD 1执行期间被处理。节点1上的POD 1也可以使用功能IPv6地址与群聚以外的其它实体进行通信。例如,节点1上的POD 1经由功能IPv6地址与托管web服务器的计算设备(支持IPv6协议)进行通信。节点1上的POD1执行web客户端,用于经由功能IPv6地址与web服务器交互。

如图3中所示,方法300执行的步骤顺序仅用于说明目的。在不脱离当前要求保护的发明的范围的情况下,可以改变方法300的一些步骤的顺序。例如,步骤330和335可以在步骤320之前执行。

步骤310和/或315处的选择可以由处理单元110基于节点100的用户经由节点100的用户界面的交互来执行。可替代地,步骤310和/或315处的选择是由处理单元110基于经由通信接口130从主节点200接收到的命令执行的(该命令基于主节点200的用户经由主节点200的用户界面的交互)。

类似地,处理单元110可以基于节点100的用户经由节点100的用户界面的交互来执行步骤320处的群聚的创建。可替代地,步骤320处的群聚的创建是由处理单元110基于经由通信接口130从主节点200接收到的命令执行的(该命令基于主节点200的用户经由主节点200的用户界面的交互)。

如前所述,方法300不限于Kubernetes框架,而是可以扩展到支持以下特征的另一个框架:群聚、命名空间和群聚类型(以类似于在Kubernetes的上下文中支持这些特征的方式)。

应用于群聚的功能IPV6地址的数据包过滤

现在同时参考图4和图5,图5中图示了用于执行应用于群聚的功能IPv6地址的数据包过滤的方法400。方法400的至少一些步骤由图4中表示的节点100(节点1)执行。

图4中表示的节点100(节点1)对应于图1中表示的节点100和图2中表示的节点1。为了实现数据包过滤功能,过滤规则122存储在存储器120中并且处理单元110使用过滤规则122执行过滤软件111以执行数据包过滤。每个过滤规则122包括一个或多个条件,以及一个或多个对应的动作。

IPv6数据包的数据包过滤在本领域中是众所周知的。将IPv6数据包的特性与过滤规则的一个或多个条件进行比较,并且如果满足给定过滤规则的一个或多个条件,那么执行对应的一个或多个动作。被比较的IPv6数据包的特性包括源IPv6地址、目的地IPv6地址、目的地端口(例如,HTTP),有时还有源端口、传输协议(例如,TCP、UDP)等。过滤规则的(一个或多个)条件取决于所考虑的特性。例如,源IPv6地址是否匹配给定的IPv6前缀(例如,2001:db80:aabb::/48),目的地IPv6地址是否不匹配给定的IPv6前缀(例如,2001:db80:aabb:1001::/64),目的地端口或源端口是否匹配给定的端口值或给定的端口值范围,传输协议是TCP还是UDP等。动作的示例包括允许或丢弃与过滤规则的(一个或多个)条件匹配的IPv6数据包、修改与过滤规则的(一个或多个)条件匹配的IPv6数据包的字段等。过滤应用于经由通信接口130接收到的IPv6数据包(入口过滤)和/或应用于由处理单元110生成的要经由通信接口130传送的IPv6数据包。

前面描述的功能IPv6地址提供了基于它们的命名空间字段和群聚类型字段的新过滤能力。新过滤规则可以单独基于所选择的命名空间创建,或者基于所选择的命名空间和对应的所选择的群聚类型的组合创建。解析IPv6数据包的源和/或目的地IPv6地址,以识别与所选择的命名空间和群聚类型匹配的命名空间字段和群聚类型字段。

方法400提供过滤群聚的功能IPv6地址。方法400的至少一些步骤由图4中表示的节点100(节点1)执行。

方法400包括在存储器120中存储至少一个命名空间和每个命名空间的至少一个相关联的群聚类型的步骤405。步骤405由节点100的处理单元110执行。前面已经关于图3中表示的方法300的步骤305描述了步骤405的示例性实现。

方法400包括从存储在存储器120中的至少一个命名空间中选择命名空间的步骤410。步骤410由节点100的处理单元110执行。例如,在步骤410处选择命名空间“域A”、“域B”、“域C”之一。前面已经关于图3中表示的方法300的步骤310描述了步骤410的示例性实现。

方法400包括基于在步骤410处选择的命名空间生成命名空间字段的步骤415。步骤415由节点100的处理单元110执行。前面已经关于图3中表示的方法300的步骤330描述了步骤415的示例性实现。

方法400包括在与在步骤410处选择的命名空间相关联的至少一个群聚类型(存储在存储器120中)中选择群聚类型的可选步骤420。步骤420由节点100的处理单元110执行。例如,如果在步骤410处选择命名空间“域A”,那么在步骤420处选择群聚类型“app_a01”、“app_a02”或“app_a03”之一。前面已经关于图3中表示的方法300的步骤315描述了步骤420的示例性实现。

方法400包括基于在步骤420处选择的群聚类型生成群聚类型字段的可选步骤425(仅当步骤420已经执行时才执行步骤425)。步骤425由节点100的处理单元110执行。前面已经关于图3中表示的方法300的步骤335描述了步骤425的示例性实现。

方法400包括至少基于在步骤415处生成的命名空间字段和可选地基于在步骤425处生成的群聚类型字段生成数据包过滤规则的步骤430。步骤430由节点100的处理单元110执行。数据包过滤规则的条件是应用于命名空间字段和可选的群聚类型字段的条件。如前所述,数据包过滤规则可以包括附加条件,诸如源或目的地端口/端口范围、传输协议等。

例如,命名空间“域A”在步骤410被选择并且命名空间字段0x000A在步骤415被生成。不执行步骤420和425。以下是过滤规则的示例性条件:入站IPv6数据包的源IPv6地址的命名空间字段等于0x000A。以下是过滤规则的另一个示例性条件:出站IPv6数据包的目的地IPv6地址的命名空间字段不同于0x000A。以下是过滤规则的又一个示例性条件:入站IPv6数据包的目的地IPv6地址的命名空间字段等于0x000A。以下是过滤规则的还一个示例性条件:出站IPv6数据包的源IPv6地址的命名空间字段不为0x000A。

在另一个示例中,命名空间“域B”在步骤410被选择并且命名空间字段0x000B在步骤415被生成。群聚类型“app_b02”在步骤420被选择并且群聚类型字段0x0B02在步骤425被生成。以下是过滤规则的示例性条件:入站IPv6数据包的源IPv6地址的命名空间字段等于0x000B,并且入站IPv6数据包的源IPv6地址的群聚类型字段等于0x0B02。以下是过滤规则的另一个示例性条件:出站IPv6数据包的目的地IPv6地址的命名空间字段等于0x000B,并且出站IPv6数据包的目的地IPv6地址的群聚类型字段不同于0x0B02。以下是过滤规则的又一个示例性条件:入站IPv6数据包的目的地IPv6地址的命名空间字段等于0x000B,并且入站IPv6数据包的目的地IPv6地址的群聚类型字段等于0x0B02。以下是过滤规则的又一个示例性条件:出站IPv6数据包的源IPv6地址的命名空间字段等于0x000B,并且出站IPv6数据包的源IPv6地址的群聚类型字段不同于0x0B02。

如前所述,还为在步骤430生成的数据包过滤规则定义了一个或多个动作。例如,与数据包过滤规则的(一个或多个)条件匹配的数据包可以被允许、丢弃、修改、修改和允许等。

方法400包括将在步骤430生成的过滤规则存储在存储器120中(例如,存储在包括过滤软件111使用的所有过滤规则122的配置文件中)的步骤435。步骤435由节点100的处理单元110执行。

方法400包括将在步骤430生成的(并在步骤435存储的)数据包过滤规则应用于数据包的IPv6功能地址的步骤440。步骤440由节点100的处理单元110执行的过滤软件111执行。

如前所述,数据包为经由通信接口130接收到的入站数据包或由处理单元110生成的出站数据包(例如,由POD 1生成的出站数据包)。数据包过滤规则应用于数据包的源IPv6地址或数据包的目的地IPv6地址。

在应用数据包过滤规则之前,可以验证前提条件:数据包是否符合功能IPv6地址格式。如果数据包符合,那么应用数据包过滤规则。如果数据包不符合,那么应用预定义的动作(例如,丢弃数据包、允许数据包等)。

如果数据包与数据包过滤规则的(一个或多个)条件匹配,那么执行数据包过滤规则的(一个或多个)动作。

例如,过滤规则包括:出站IPv6数据包的目的地IPv6地址的命名空间字段等于0x000B,并且出站IPv6数据包的目的地IPv6地址的群聚类型字段不同于0x0B02。该动作包括丢弃与规则匹配的出站IPv6数据包。

第一出站IPv6数据包的目的地IPv6地址具有命名空间字段0x000A和任何群聚类型字段:该数据包被允许。

第二出站IPv6数据包的目的地IPv6地址具有命名空间字段0x000B和群聚类型字段0x0B02:该数据包被允许。

第三出站IPv6数据包的目的地IPv6地址具有命名空间字段0x000B和群聚类型字段0x0B01:该数据包被丢弃。

虽然本公开已经通过其非限制性、说明性实施例描述了本公开,但是在不脱离本公开的精神和本质的情况下,可以在所附权利要求的范围内随意修改这些实施例。

相关技术
  • 用于地址生成服务器的用户认证方法、设备、系统及介质
  • 生成IPv6地址的服务器、系统及方法
  • 一种用于计算机辅助隐形正畸的虚拟牙根的生成方法、存储设备及计算机
  • 用于生成链路IPV6地址的计算设备和方法
  • 用于生成架构范围的IPV6地址的计算设备和方法
技术分类

06120115938277