具有策略实施的基于云的路由器的制作方法

文档序号:25543421发布日期:2021-06-18 20:40
具有策略实施的基于云的路由器的制作方法

相关申请的交叉引用

本申请要求于2018年8月21日提交的美国临时专利申请62/720,710和2019年8月20日提交的美国非临时专利申请16/546,075的权益。上述申请的公开内容通过引用整体并入本文。

本发明的方面涉及网络架构,并且更具体地,涉及使用网络接入控制器的网络架构。



背景技术:

客户装置(例如,诸如智能电话、膝上型计算机、平板计算机等的计算装置)可以经由接入点与网络通信。例如,平板计算机可以经由诸如wi-fi接入点等的接入点与互联网(例如,网络)通信。一个或多个网络接入控制器可以为客户装置和接入点提供网络策略处理或实施功能。例如,网络接入控制器可以控制客户装置能够接入网络多长时间或客户装置的网络带宽(例如,吞吐量、下载速度、上传速度等)。

附图说明

通过参考以下结合附图的描述,可以最好地理解所描述的实施例及其优点。这些附图决不限制本领域技术人员在不脱离所描述的实施例的精神和范围的情况下可以对所描述的实施例进行的形式和细节上的任何改变。

图1是示出根据本发明的一些实施例的示例性系统架构的框图。

图2是示出根据本发明的一些实施例的示例性系统架构的框图。

图3是根据本发明的一些实施例的示例性包转发组件的框图。

图4是根据本发明的一些实施例的转发包的方法的流程图。

图5是示出根据本发明的一些实施例的示例性系统架构的框图。

图6是示出根据本发明的一些实施例的示例性系统架构的框图。

图7是根据本发明的一些实施例的转发包的方法的流程图。

图8是示出根据本发明的一些实施例的示例性系统架构的框图。

图9是根据本发明的一些实施例的转发包的方法的流程图。

图10是根据本发明的一些实施例的可以进行这里描述的一个或多个操作的示例性计算装置的框图。

具体实施方式

客户装置(例如,诸如智能电话、膝上型计算机、平板计算机等的计算装置)可以经由接入点与一个或多个网络通信。例如,平板计算机可以经由接入点(诸如wi-fi接入点等)与互联网(例如,网络)通信。一个或多个网络接入控制器可以为客户装置和接入点提供网络策略处理或实施功能。例如,网络接入控制器可以控制客户装置能够接入网络多长时间或客户装置的网络带宽(例如,吞吐量、下载速度、上传速度等)。

随着接入一个或多个网络的客户装置的数量改变,网络接入控制器上的负载也可能改变。例如,由网络接入控制器处理的客户装置的数量可以基于在给定时间可以使用接入点的客户装置的数量来减少或增加。可能难以动态地添加或去除网络接入控制器,这是因为网络接入控制器通常被配置为服务一个或多个接入点。另外,由于资源或逻辑原因,不同网络接入控制器可能部署在不同数据中心或云计算平台。如果一个数据中心中的网络接入控制器发生故障或使网络接入控制器脱机(例如,用于维护),则可能存在使用这些网络接入控制器的客户装置的网络服务中断。

本发明通过将客户装置分配到不同网络接入控制器来解决上述和其它缺陷。随着客户装置的数量改变(例如,随着客户装置的数量增加),可以在网络接入控制器之间分配负载以防止网络接入控制器过载或未充分利用。可以添加新的网络接入控制器,并且可以去除现有的网络接入控制器。客户装置可以分配在新的或剩余的网络接入控制器之间。

图1是示出根据本发明的一些实施例的示例性系统架构100的框图。系统架构100包括服务器系统110、认证服务器150、接入点130和客户装置140。服务器系统110、包转发组件120、认证服务器150、接入点130和客户装置140可以经由一个或多个网络彼此互连或耦接(例如,通信地耦接)。一个或多个网络可以在服务器系统110、包转发组件120、认证服务器150、接入点130和客户装置140之间传送通信(例如,数据、消息、包、帧、其它适当类型或格式的数据等)。网络可以是公共网络(例如,互联网)、私有网络(例如,局域网(lan)或广域网(wan))或其组合。在一个实施例中,网络可以包括有线或无线基础设施,其可以由一个或多个无线通信系统(诸如与网络连接的无线保真(wi-fi)热点等)和/或可以使用不同数据处理装置、通信塔(例如,小区塔)等实现的无线承载商系统提供。

计算装置可以是可包括诸如处理装置(例如,处理器、中央处理单元(cpu)、存储器(例如,随机存取存储器(ram)、存储装置(例如,硬盘驱动器(hdd)、固态驱动器(ssd)等)等的硬件和其它硬件装置(例如,声卡、视频卡等)的装置。计算装置可以包括具有可编程处理器的任何合适类型的装置或机器,包括例如服务器计算机、台式计算机、膝上型计算机、平板计算机、智能电话、机顶盒等。在一些示例中,计算装置可以包括单个机器或可以包括多个互连的机器(例如,配置在集群中的多个服务器)。各计算装置可以执行或包括操作系统(os),如以下更详细讨论的。计算装置的os可以管理其它组件(例如,软件、应用等)的执行和/或可以管理对计算装置的硬件(例如,处理器、存储器、存储装置等)的访问。

虚拟机(vm)可以是包括其自己的操作系统(称为宾客os)并执行应用程序、应用、软件的机器的软件实现(例如,计算装置的软件实现)。vm可以在管理程序上执行,该管理程序在计算装置的os(称为主机os)的顶层上执行。管理程序还可以称为虚拟机监视器(vmm)。管理程序可以是计算装置的os的组件,可以在计算装置的os的顶层上运行,或者可以直接在主机硬件上运行而不使用os。管理程序可以管理系统资源,包括对诸如物理处理装置(例如,处理器、cpu等)、物理存储器(例如,ram)、存储装置(例如,hdd、ssd)和/或其它装置(例如,声卡、视频卡等)等的硬件装置的访问。管理程序还可以模拟可由vm用来执行软件/应用的硬件(或其它物理资源)。管理程序还可以向其它软件(例如,“宾客”软件)呈现一个或多个虚拟机(vm)的抽象。vm可以执行使用物理资源(例如,虚拟处理器和宾客存储器)的底层模拟的宾客软件。

容器可以是被分配用于独立于其它应用、软件和/或进程而执行应用、软件和/或进程的隔离的资源集。容器可以在容器引擎上执行,该容器引擎在计算装置的os的顶层上执行。主机os(例如,计算装置的os)可以使用命名空间来将容器的资源彼此隔离。容器还可以是类似于虚拟机的虚拟化对象。然而,容器可能不实现单独的宾客os(如vm)。容器可以与在计算装置上执行的其它容器共享主机os的内核、库和二进制文件。容器引擎可以允许不同容器共享计算装置的主机os(例如,os内核、二进制文件、库等)。例如,容器引擎可以在多个容器之间复用主机os的二进制文件和/或库。容器引擎还可以促进容器与计算装置的资源之间的交互。例如,容器引擎可以管理来自容器的访问计算装置的存储器(例如,ram)的请求。在另一示例中,容器引擎可以管理来自容器的访问主机os的某些库/二进制文件的请求。容器引擎还可以用于创建、去除和管理容器。在一个实施例中,容器引擎可以是主机操作系统的组件。在另一实施例中,容器引擎可以在主机操作系统的顶层运行,或者可以直接在主机硬件上运行而不使用主机操作系统。

在一个实施例中,接入点130可以是在网络服务提供商(例如,互联网服务提供商、线缆服务提供商、蜂窝服务提供商等)与消费者(例如,客户装置140的用户)之间的边界上的装置。例如,接入点130可以是网络服务提供商的网络边界与消费者之间的分界。在另一实施例中,接入点130可以是消费者驻地设备(cpe)。cpe可以指可安装在或位于网络服务提供商的网络边界外部的装置。例如,cpe可以是安装在或位于用户的家中的无线路由器(例如,网络路由器)。

如图1所示,服务器系统110包括包转发组件120和网络接入控制器115。包转发组件120和网络接入控制器115各自可以是计算装置、vm或容器中的一个或多个。包转发组件120和网络接入控制器115还可以位于计算装置、vm或容器中的一个或多个上(例如,可安装在其上、可在其上执行等)。在一个实施例中,服务器系统110可以是包括多个计算装置(诸如服务器计算机等)的数据中心或云计算架构。在一个实施例中,网络接入控制器115中的一个可以是默认网络接入控制器,如下面更详细讨论的。例如,最上面的网络接入控制器115可以是默认网络接入控制器。

在一个实施例中,网络接入控制器(例如,网络接入控制器115等)可以进行与向客户装置140提供对一个或多个网络(例如,私有或企业网络、互联网、诸如机场、咖啡店、火车站等中的wi-fi网络等的公共网络、服务提供商网络、虚拟网络运营商和承载商等)的接入相关的各种功能、动作、操作等。在一个实施例中,网络接入控制器可以认证或授权客户装置140或客户装置140的用户。例如,网络接入控制器可以与认证服务器150通信以确定是否允许客户装置140的用户经由接入点130接入网络,如下文更详细论述。在另一实施例中,网络接入控制器可以提供网络策略处理或实施功能。例如,网络接入控制器可以确定用户或客户装置140的最大吞吐量(例如,最大下载速度)。在另一示例中,网络接入控制器可以确定用户或客户装置140被允许接入一个或多个网络的最大时间量或时间段(例如,客户装置140可以被允许接入一个或多个网络达一小时、一天或一些其它适当的时间段)。在另一示例中,网络接入控制器可以确定用户或客户装置140是否可接入一个或多个网络上的服务器计算机。在一个示例中,网络接入控制器还可以控制被发送或接收的数据的类型。例如,由于视频数据经常使用更多的带宽,因此网络接入控制器可以防止视频数据被发送或接收。在一些实施例中,组策略可以用于对一组用户或客户装置140实施网络策略。例如,可以使用组策略来控制在允许用户经由接入点130接入网络的特定订阅计划(例如,互联网接入订阅计划、线缆订阅计划等)中登记的用户的下载速度、时间量等。

在一个实施例中,认证服务器150可以包括或者可以耦接到包括认证表的数据存储,该认证表包括用户标识符(例如,用户名、登录、电子邮件地址、合法名称等)和与用户标识符相关联的网络接入控制器115的mac地址。例如,认证服务器150可以包括认证表(或其它类型的数据结构或格式),该认证表指示与该表中的各用户标识符(例如,各用户名)相关联的网络接入控制器115的mac地址。认证表可以包括被允许与一个或多个网络进行通信(例如,被允许向一个或多个网络发送数据和从一个或多个网络接收数据)的所有用户的所有用户标识符的列表。数据存储可以是能够存储数据的一个或多个装置。数据存储的示例包括但不限于光驱、硬盘驱动器(hdd)、固态驱动器(ssd)、随机存取存储器(ram)、高速缓存、数据库、网络附加存储(nas)驱动器、便携式硬盘等。

在一个实施例中,网络接入控制器可以对发送至接入点130的数据进行加密,并且可以对从接入点130接收的数据进行解密。例如,服务器(例如,远程服务器)向客户装置140发送的数据可以在数据被发送到接入点130之前被加密,以保护数据不受其它装置或用户的未授权访问。在另一示例中,从客户装置140接收的所发送的数据可以在数据被发送到一个或多个网络之前被解密。在另一实施例中,网络接入控制器还可以实施用于允许客户装置140的用户接入一个或多个网络的一个或多个条件。例如,除非客户装置140安装有防病毒软件,否则网络接入控制器可能不允许客户装置140接入一个或多个网络。

在一个实施例中,各网络接入控制器115可以实例化和管理不同互联网协议(ip)子网。子网可以是ip网络的逻辑划分。不同客户装置140可以是客户装置140使用网络接入控制器115所基于的不同子网的一部分。例如,使用第一网络接入控制器115的第一客户装置140可以是第一子网的一部分,使用第二网络接入控制器115的第二客户装置140可以是第二子网的一部分,等等。

如以上所讨论的,客户装置140可以经由接入点130接入一个或多个网络(例如,互联网、私有或企业网络等)。例如,接入点130可以是位于商店、咖啡店、公司大楼等中的无线接入点(例如,wi-fi接入点)。接入点130可以知道默认网络接入控制器115的媒体接入控制(mac)地址。例如,接入点130可以接收具有默认网络接入控制器115的mac地址的消息,或者管理员可以将默认网络接入控制器115的mac地址存储在配置文件或参数中。在一个实施例中,接入点130可以从客户装置140接收包(例如,消息)。接入点130可以用默认网络接入控制器的mac地址替换包的目的地mac地址。由于默认网络接入控制器115位于服务器系统110中(例如,在数据中心或云计算架构内),因此接入点130可以替换目的地mac地址以使得包被转发到服务器系统110。

在一个实施例中,在发送至服务器系统110的包被发送(例如,转发)到网络接入控制器115之前,这些包可以由包转发组件120接收到。例如,当客户装置140向服务器系统110发送包时,包转发组件120可以首先接收该包,并且可以将该包转发到网络接入控制器115之一,如下面更详细讨论的。

在一个实施例中,客户装置140或用户可以由认证服务器150认证。例如,客户装置140或用户可以经由接入点130向认证服务器150发送一个或多个认证包(例如,请求对用户或客户装置140进行认证的一个或多个包)。一个或多个认证包可以包括用户标识符(例如,用户名)和密码(或用于认证用户或客户装置140的一些其它适当的认证信息,诸如一次性密码、用户的社会保险号等)。接入点130可以将该一个或多个认证包发送(例如,转发)到包转发组件120,并且包转发组件120可以将该一个或多个认证包发送(例如,转发)到认证服务器150。认证服务器150可以认证用户标识符和密码(或用于认证用户或客户装置140的其它适当信息),并且如果用户标识符和密码有效,则可以允许客户装置140或用户接入一个或多个网络。认证服务器150可以发送指示对从客户装置接收到的认证包(例如,认证请求)的响应的认证包。例如,认证服务器150可以向接入点130发送指示用户被成功认证的响应。接入点130基于该响应可以允许客户装置140接入一个或多个网络。

在一个实施例中,认证服务器150可以在发送到客户装置140的认证包(例如,认证响应)中包括属性、字段或参数。属性可以包括用户标识符和与用户标识符相关联的网络接入控制器115的mac地址。如上所述,认证服务器150可以基于表来获得用户标识符以及与用户标识符相关联的网络接入控制器115的mac地址。认证服务器150可以在向客户装置发送认证包之前添加用户标识符和与用户标识符相关联的网络接入控制器115的mac地址。

在一个实施例中,认证服务器150可以是远程认证拨入用户服务(radius)服务器,并且认证包可以是radius包。尽管本发明可以参考radius、radius服务器或radius包,但在系统架构100中可以使用其它类型的认证服务器、认证协议、认证包等。

如上所述,包转发组件120可以接收由客户装置140发送的包,并且可以将该包转发到其它装置或网络。包转发组件120可以在客户装置与认证服务器150之间转发包。在一个实施例中,包转发组件120可以分析在客户装置140与认证服务器150之间通信的认证包。在客户装置140之间通信的认证包可以包括可指示网络接入控制器115中的应该用于用户的网络接入控制器的属性、字段、参数等。例如,认证包可以包括指示用户标识符和用于由用户标识符所标识的特定用户的特定网络接入控制器115(其应该被用来进行网络策略处理或实施)的mac地址的属性、字段、参数等。这些包还可以包括客户装置的mac地址作为客户装置140发送该包时的源mac地址。

在一个实施例中,包转发组件120可以存储客户装置的mac地址与特定网络接入控制器115的mac地址之间的关联。例如,包转发组件120可以将客户装置的mac地址与特定网络接入控制器115的mac地址之间的关联存储在nac表中。在其它实施例中,nac表可以包括客户装置的mac地址、网络接入控制器115的mac地址和用户的用户标识符(例如,用户标识符或客户装置140的用户)之间的关联。nac表可以存储在数据存储中,该数据存储包括在网络接入控制器115中或耦接到网络接入控制器115。

在一些实施例中,包转发组件120可以获得nac表或可以使用各种其它方法、功能、操作、技术等来更新nac表。例如,包转发组件120可以以逗号分隔值(csv)格式或javascript开放记号格式从其它计算装置(例如,其它服务器或数据库)接收nac表。

在一个实施例中,包转发组件120可以经由包转发组件120的入口网络接口(例如,经由网络端口、网络接口等)从客户装置140接收包。该包可以由接入点130转发至服务器系统110并且可以由包转发组件120接收。包可以包括作为默认网络接入控制器115的mac地址(例如,被设置为默认网络接入控制器115的mac地址)的目的地mac地址。包还可以包括作为客户装置140的mac地址(例如,被设置为客户装置140的mac地址)的源mac地址。

在一个实施例中,包转发组件120可以访问nac表(例如,访问指示用户标识符与网络接入控制器115的mac地址之间的关联的数据),并且可以确定或识别与客户装置140的mac地址相关联的网络接入控制器115的mac地址。包转发组件120可以基于与客户装置140的mac地址(例如,由客户装置140发送的包的源mac地址)相关联的网络接入控制器115的mac地址来识别哪个网络地址控制器115应该从客户装置140接收包。包转发组件120可以基于nac表将包的目的地mac地址从默认网络接入控制器的mac地址更新(例如,改变、修改)为与客户装置140的mac地址相关联的网络接入控制器115的mac地址。然后,包转发组件120可以经由出口网络接口(例如,经由网络端口、网络接口等)将包转发至与客户装置的mac地址相关联的网络接入控制器115。

在一个实施例中,包转发组件120可以从第二客户装置140接收第二包,该第二包包括默认网络接入控制器115的mac地址作为目的地mac地址。包转发组件120可以确定或识别可指示或标识第二客户装置140的mac地址的第二包的源mac地址。如上所述,包转发组件120可以基于nac表来识别与第二客户装置140的mac地址相关联的网络接入控制器115。包转发组件120可以将第二包的目的地mac地址从默认网络接入控制器的mac地址更新(例如,改变、修改)为与第二客户装置140的mac地址相关联的网络接入控制器115的mac地址。包转发组件120可以将第二包转发至与第二客户装置140的mac地址相关联的网络接入控制器115(例如,转发至第二网络接入控制器)。

包转发组件120可以更新nac表,以基于不同的算法、功能、参数、准则、条件等将客户装置140重新分配给不同网络接入控制器115或与不同网络接入控制器115重新关联。例如,nac可以基于网络接入控制器115的利用将客户装置140分配给网络接入控制器115(例如,将客户装置140与未充分利用的网络接入控制器115重新关联)。在另一示例中,包转发组件120可以基于客户装置140的用户的用户标识符的字母顺序将不同客户装置140与不同网络接入控制器115相关联。在进一步的示例中,包转发组件120可以基于客户装置140的地理区域、基于用户的订阅、或通过分析客户装置140所使用的接入点130来将不同客户装置140与不同网络接入控制器115相关联。

在一个实施例中,包转发组件120可以进行服务器系统110的负载均衡功能。例如,包转发组件120可以将来自不同客户装置140的包转发到不同网络接入控制器115,以将包分发到不同网络接入控制器115。这可以帮助防止网络接入控制器115过载,可以帮助防止网络接入控制器115未充分利用,并且可以允许更有效率地使用网络接入控制器115。在一个实施例中,包转发组件120可以称为负载均衡器。在另一实施例中,包转发组件120可以称为集中式负载均衡器,这是因为包转发组件120可以集中位于服务器系统110中(例如,数据中心中、云计算架构中等)。在一个实施例中,包转发组件220可以将包转发到同一网络接入控制器215,而不管客户装置240连接到哪个接入点230。这可以允许互联网协议(ip)移动性。例如,这可以允许系统架构200在客户装置240从一个接入点230移动(例如,漫游)到另一接入点230时保持客户装置240连接到同一ip子网。保持客户装置240连接到同一子网可以防止客户装置240与其它装置(例如,服务器计算机、其它客户装置等)之间的网络连接或客户会话的中断或断开连接。

在一个实施例中,包转发组件120还可以允许网络接入控制器115被添加到系统架构100中或从系统架构100去除。例如,可以添加网络接入控制器115,并且可以将与其它网络接入控制器115相关联的客户装置140与新的网络接入控制器115相关联。在另一示例中,网络接入控制器115可以被去除,并且与所去除的网络接入控制器115相关联的客户装置140可以与剩余的网络接入控制器115相关联。将客户装置140重新分配给不同网络接入控制器115或与不同网络接入控制器115重新关联,这可以允许系统架构100基于客户装置140和接入点的数量来扩大或缩小。

图2是示出根据本发明的一些实施例的示例性系统架构200的框图。系统架构200包括服务器系统210、认证服务器250、接入点230和客户装置240。如上所述,服务器系统210、认证服务器250、接入点230和客户装置240可以经由一个或多个网络互连或彼此耦接(例如,通信地耦接)。一个或多个网络可以在服务器系统210、认证服务器250、接入点230和客户装置240之间传送通信(例如,数据、消息、包、帧、其它适当类型或格式的数据等)。

如图2所示,服务器系统210包括包转发组件220和网络接入控制器215。如上所述,各网络接入控制器215可以是计算装置、vm或容器中的一个或多个。在一个实施例中,服务器系统210可以是包括多个计算装置(诸如服务器计算机等)的数据中心或云计算架构。在一个实施例中,如上所述,网络接入控制器215中的一个可以是默认网络接入控制器。

在一个实施例中,如上所述,网络接入控制器(例如,网络接入控制器215等)可以进行与向客户装置240提供对一个或多个网络(例如,私有或企业网络、互联网等)的接入相关的各种功能、动作、操作等。在一个实施例中,网络接入控制器可以对发送到接入点230的数据进行加密,并且可以对从接入点230接收的数据进行解密。在另一实施例中,网络接入控制器还可以实施用于允许客户装置240的用户接入一个或多个网络的一个或多个条件。在一些实施例中,各网络接入控制器215可以实例化和管理不同ip子网。

在一个实施例中,认证服务器250可以包括或者可以耦接到包括认证表的数据存储,该认证表包括用户标识符(以及如上所述与用户标识符相关联的网络接入控制器215的mac地址)。认证表可以包括被允许与一个或多个网络通信的所有用户的所有用户标识符的列表。

在一个实施例中,在发送到服务器系统210的包被发送(例如,转发)到网络接入控制器215之前,该包可以由包转发组件220接收。例如,当客户装置240向服务器系统210发送包时,包转发组件220可以首先接收该包,并且可以将该包转发到网络接入控制器215中的一个,如下面更详细讨论的。

在一个实施例中,客户装置240或用户可以由认证服务器250认证。例如,客户装置240或用户可以经由接入点230将一个或多个认证包(例如,请求用户或客户装置240的认证的一个或多个包)发送到认证服务器250。该一个或多个认证包可以包括用户标识符(例如,用户名)和密码(或用于认证用户或客户装置240的一些其它适当信息,诸如一次性密码、用户的社会保险号等)。接入点230可以将该一个或多个认证包发送(例如,转发)到包转发组件220,并且包转发组件220可以将该一个或多个认证包发送(例如,转发)到认证服务器250。认证服务器250可以认证用户标识符和密码(或用于认证用户或客户装置240的其它适当信息),并且如果用户标识符和密码有效,则可以允许客户装置240或用户接入一个或多个网络。认证服务器250可以发送指示对从客户装置接收到的认证包(例如,认证请求)的响应的认证包。例如,认证服务器240可以向接入点230发送指示用户被成功认证的响应。接入点230可以基于该响应允许客户装置240接入一个或多个网络。

在一个实施例中,认证服务器250可以在向客户装置240发送的认证包(例如,认证响应)中包括属性、字段或参数。属性可以包括用户标识符和与用户标识符相关联的网络接入控制器215的mac地址。如上所述,认证服务器250可以基于表来获得用户标识符以及与用户标识符相关联的网络接入控制器215的mac地址。认证服务器250可以在向客户装置发送认证包之前添加用户标识符和与用户标识符相关联的网络接入控制器215的mac地址。

在一个实施例中,认证服务器250可以是远程认证拨入用户服务(radius)服务器,并且认证包可以是radius包。尽管本发明可以参考radius、radius服务器或radius包,但是在系统架构200中可以使用其它类型的认证服务器、认证协议、认证包。

如图2所示,各接入点230包括包转发组件220。包转发组件220可以接收由客户装置240发送的包并将该包转发到其它装置或网络。包转发组件220可以在客户装置240与认证服务器250之间转发包。在一个实施例中,如上所述,包转发组件220可以分析在客户装置240与认证服务器240之间通信的认证包的属性、字段、参数等,以识别网络接入控制器215中的应该用于用户的网络接入控制器。

在一个实施例中,如上所述,包转发组件220可以将客户装置的mac地址与特定网络接入控制器215的mac地址之间的关联存储在nac表中。在其它实施例中,nac表可以包括客户装置的mac地址、网络接入控制器215的mac地址和用户的用户标识符(例如,用户标识符或客户装置240的用户)之间的关联。

在一些实施例中,接入点230可以由管理服务器配置或管理。管理服务器可以向接入点230提供nac表,作为对接入点230的管理的一部分。例如,管理服务器可以更新接入点230的设置或配置。管理服务器可以将nac表的副本发送到接入点130,并且接入点130可以将nac表存储在数据存储中(例如,存储器中、闪速存储器等中)。

在一个实施例中,包转发组件220可以从客户装置240接收包,并且该包可以包括作为默认网络接入控制器215的mac地址(例如,被设置为默认网络接入控制器215的mac地址)的目的地mac地址。该包还可以包括作为客户装置240的mac地址(例如,被设置为客户装置240的mac地址)的源mac地址。

在一个实施例中,包转发组件220可以访问nac表,并且可以确定或识别与客户装置240的mac地址相关联的网络接入控制器215的mac地址。基于nac表,包转发组件220可以将包的目的地mac地址从默认网络接入控制器的mac地址更新为与客户装置240的mac地址相关联的网络接入控制器215的mac地址。然后,包转发组件220可以将该包转发到与客户装置的mac地址相关联的网络接入控制器215。

在一个实施例中,包转发组件220可以从第二客户装置240接收第二包,该第二包包括默认网络接入控制器215的mac地址作为目的地mac地址。包转发组件220可以确定或识别可指示或标识第二客户装置240的mac地址的第二包的源mac地址。如上所述,包转发组件220可以基于nac表来识别与第二客户装置240的mac地址相关联的网络接入控制器215。包转发组件220可以将第二包的目的地mac地址从默认网络接入控制器的mac地址更新(例如,改变、修改)为与第二客户装置240的mac地址相关联的网络接入控制器215的mac地址。包转发组件220可以将第二包转发到与第二客户装置240的mac地址相关联的网络接入控制器215(例如,转发到第二网络接入控制器)。

包转发组件220可以更新nac表,以基于不同的算法、功能、参数、准则、条件等将客户装置240重新分配给不同网络接入控制器215或与不同网络接入控制器215重新关联。在一个实施例中,如上所述,包转发组件220可以进行服务器系统210的负载均衡功能。这可以帮助防止网络接入控制器215过载,可以帮助防止网络接入控制器215未充分利用,并且可以允许更有效率地使用网络接入控制器215。在一个实施例中,包转发组件120可以称为负载均衡器。在另一实施例中,包转发组件120可以称为分散或分布负载均衡器,这是因为包转发组件120分配在不同接入点230上。

在一个实施例中,当包转发组件120将目的地mac地址更新为与客户装置240的mac地址相关联的网络接入控制器215的mac地址时,包转发组件120可以帮助防止第2层mac广播帧进入服务器系统210。这可以通过防止广播包泛洪服务器系统210(或包括在服务器系统210中或耦接到服务器系统210的网络)来帮助服务器系统210。通过去除广播,可以保护服务器系统210免受被称为地址解析协议(arp)中毒的一种类型的安全漏洞。例如,可以保护客户装置240免于arp中毒。此外,去除广播可以允许系统架构在同一第2层(l2)网络上扩大到大量接入点230。例如,当不使用广播包时,数千、数百万或一些其它合适数量的接入点230可以在同一l2网络上。

图3是根据一些实施例的示例性包转发组件120的框图。包转发组件120包括处理装置310(例如,处理器、中央处理单元、多核处理器、多个处理器等)。包转发组件120还包括耦接到处理装置310的存储器320(例如,数据存储)。

认证桥接器330耦接到处理装置310。认证桥接器330可以是经由网络接口350与认证服务器(例如,图1中所示的认证服务器150)通信包(诸如认证包等)的硬件、固件、软件或其组合。例如,认证桥接器330可以包括可用于与认证服务器通信包的总线、队列等。

协议桥接器340耦接到处理装置310。协议桥接器340可以是与一个或多个网络或装置(例如,计算装置、服务器等)通信包的硬件、固件、软件或其组合。例如,认证桥接器可以包括可用于从客户装置接收包的总线、队列等。

网络接口350可以是可从一个或多个网络或装置接收数据或者将数据发送到一个或多个网络或装置的接口或端口。在一个实施例中,网络接口350可以是接收数据(例如,消息、包、帧等)的入口接口。在另一实施例中,网络接口350可以是发送数据的出口接口。在进一步的实施例中,网络接口350可以是出口接口和入口接口这两者。

图4是根据本发明的一些实施例的转发包的方法400的流程图。方法400可以由处理逻辑进行,该处理逻辑可以包括硬件(例如,电路、专用逻辑、可编程逻辑、处理器、处理装置、中央处理单元(cpu)、片上系统(soc)等)、软件(例如,在处理装置上运行/执行的指令)、固件(例如,微代码)或其组合。在一些实施例中,方法400可以由包转发组件、接入点和/或计算装置来进行。

方法400在框405处开始,在框405处,方法400可以从客户装置接收认证包(例如,radius包)。在框410处,方法400可以分析认证包并且可以确定用户认证信息(例如,用户名、密码、用户标识符等)、客户装置的mac地址、以及与客户装置的mac地址相关联(例如,与客户装置相关联)的网络接入控制器的mac地址中的一个或多个。在框415处,方法400可以将客户装置的mac地址与网络接入控制器的mac地址之间的关联存储在表中。

在框420处,方法400可以从客户装置接收包。例如,客户装置可以向其它网络或其它装置发送包。包的目的地mac地址可以是用于默认网络接入控制器的mac地址。在框425处,方法400可以识别该包的源mac地址。在框430和435处,方法400可以访问该表以基于表来识别网络接入控制器和与客户装置的mac地址相关联的网络接入控制器的mac地址。在框440处,方法400可以将包的目的地mac地址从默认网络接入控制器的mac地址更新为与客户装置相关联的网络接入控制器的mac地址。在框445处,方法400可以将包转发到与客户装置相关联的网络接入控制器。

图5是示出根据本发明的一些实施例的示例性系统架构500的框图。系统架构500包括服务器系统510、认证服务器550、隧道装置560、接入点530和客户装置540。服务器系统510、认证服务器550、接入点530、隧道装置560和客户装置540可以经由一个或多个网络互连或彼此耦接(例如,通信地耦接)。服务器系统510包括网络接入控制器515和包转发组件520。网络接入控制器515和包转发组件520还可以经由一个或多个网络互连或彼此耦接。一个或多个网络可以传送服务器系统510、认证服务器550、接入点530、隧道装置560和客户装置540之间的通信(例如,消息、包、帧等)。一个或多个网络可以包括公共网络、私有网络、广域网、城域网、有线网络、无线、网络等的组合。

在一个实施例中,服务器系统510可以位于包括多个计算装置(诸如服务器计算机等)的一个或多个数据中心或云计算架构(例如,云)中。例如,一些网络接入控制器515和一些包转发组件520可以位于不同的数据中心或云中。在另一示例中,所有网络接入控制器515和包转发组件520可以位于同一数据中心或云中。

网络接入控制器515、包转发组件520、隧道装置560、接入点530、客户装置540和认证服务器550各自可以是计算装置、vm或容器中的一个或多个。如上所述,计算装置可以是可包括诸如处理装置(例如,处理器、存储器(例如,ram))、存储装置(例如,hdd、ssd)和其它硬件装置(例如,视频卡)等的硬件的装置。计算装置可以包括具有可编程处理器的任何合适类型的装置或机器。vm可以是包括自身的操作系统(称为宾客os)并执行应用程序、应用、软件的计算装置的软件实现。vm可以在能够管理系统资源的管理程序上执行,该管理程序包括对硬件装置(例如,物理处理器、物理存储器或存储装置等)的访问。管理程序还可以模拟可由vm用来执行软件/应用的物理资源或硬件。如上所述,容器可以是被分配以独立于其它应用、软件和/或进程而执行应用、软件和/或进程的隔离的资源集。容器可以在容器引擎上执行,该容器引擎在计算装置的os的顶层上执行,该容器引擎可以允许不同容器共享计算装置的主机os(例如,os内核、二进制文件、库等)。

参考图1,包转发组件120可以从一个或多个接入点130接收包。各接入点130可以将包转发到包转发组件120。在某些情形或条件下,使用单个或中央包转发组件(如图1所示)可能会导致处理或转发包时的瓶颈、速度减慢等。例如,如果在系统架构100中使用一个包转发组件120,则该一个包转发组件120可以是处理来自所有接入点130的各包或将其转发到网络接入控制器115的唯一装置。因此,可以被处理或转发的包的量可能受包转发组件120的能力或资源的限制。例如,单个包转发组件120的能力或资源可以是可使用系统架构100处理和发送的包的量的限制因素(例如,瓶颈)。

增加系统架构100的能力的一种方法可以是垂直缩放。垂直缩放可以指添加或增加单个包转发组件120的能力或资源。例如,可以使用添加附加处理装置(例如,处理器或cpu)、添加更快或附加存储器、添加专用硬件装置(诸如专用网络接口卡或网络控制器等)、添加更复杂的操作系统/软件以优化具有低延迟和高速的存储器访问和处理中断等来垂直地缩放包转发组件120的能力或资源。然而,可能存在对单个包转发组件120可以垂直缩放多少的限制。例如,存在对可以添加到单个包转发组件120的处理装置的数量、存储器的量等的限制。

增加系统架构100的能力的另一种方式可以是水平缩放。水平缩放可以指向系统架构100添加附加包转发组件。例如,可以将数十、数百或数千个包转发组件添加到系统架构100。水平缩放可以允许更好地缩放系统架构100的资源和能力。例如,多个包转发组件中的各自可以转发或处理来自接入点130的子集的包。因此,包的转发或处理在多个包转发组件之间分布,而不是单个包转发组件120。水平缩放可以是用于增加系统架构100的能力的更有效率的方法,并且可以允许将来更大的可扩展性(例如,可以允许添加更大数量的无限数量的包转发组件和网络接入控制器)。

然而,简单地向系统架构100添加附加包转发组件可能导致系统架构100的更多困难、问题、难题等。例如,系统架构100可以使用第2层或数据链路层包(例如,以太网帧)。如果互连接入点130、包转发组件120和网络接入控制器115的网络装置(例如,交换机、路由器等)或链路(例如,数据链路、连接等)变得不可用,则系统架构可能更难以重新路由第2层包。例如,如果接入点130和包转发组件120之间的交换机变得不可用,则系统架构100可能难以通过其它网络装置重新路由包。另外,由于系统架构100可以在接入点130、包转发组件120和网络接入控制器115之间直接转发第2层或数据链路层包,因此互连接入点130、包转发组件120和网络接入控制器115的网络装置可以存储系统架构中的许多或所有客户装置140的mac地址。这可能导致网络装置使用其转发表中的更多空间来存储许多或所有客户装置的mac地址。能够存储客户装置的mac地址的网络装置的购买或操作可能更昂贵。此外,如果在接入点130、多个包转发组件和网络接入控制器115之间使用第2层包,则可能将重复的第2层包转发到同一网络接入控制器115。例如,如果接入点130将第2层包广播到多个包转发组件120,则各包转发组件120可以将第2层包转发到同一网络接入控制器115,这导致重复的第2层包到达网络接入控制器115。重复的第2层包可能浪费网络系统110中的网络容量或带宽。另外,网络接入控制器115可能浪费计算或存储资源来确定哪些第2层包是重复的。尽管可以修改接入点130以选择性地循环通过(例如,从第一包转发组件120循环到最后的包转发组件)或随机选择包转发组件,但这将增加接入点130的复杂性或成本。另外,一些接入点130可能不支持该特征或功能(例如,随机选择包转发组件120)。

在一个实施例中,接入点530可以是在网络服务提供商(例如,互联网服务提供商)和消费者(例如,客户装置540的用户)之间的边界上的装置。接入点530可以表示网络服务提供商的网络边界和消费者之间的分界。接入点530的示例可以是被安装或位于用户的家内的cpe,诸如无线路由器、线缆模式、数字订户线(dsl)调制解调器等。

如上所述,客户装置540可以经由接入点530(例如,位于商店、咖啡店、公司大楼等中的wi-fi接入点)接入一个或多个网络(例如,互联网、私有或企业网络等)。接入点530可以接收与客户装置540的第2层包或数据链路层包。接入点530可以将第2层包或数据链路层包转发到隧道装置560。如上所述,接入点530可以知道默认网络接入控制器515的媒体接入控制(mac)地址。在一个实施例中,如上所述,接入点530可以用默认网络接入控制器的mac地址对第2层包(例如,数据链路层包)的目的地mac地址进行修改、更新等。接入点530可以将所修改的第2层包转发到隧道装置560。

如图5所示,多个接入点530可以耦接(例如,通信地耦接)到隧道装置560。例如,各隧道装置560可以耦接到接入点530的集合。接入点530的集合可以位于地理区域或位置中。例如,接入点的集合可以位于几个城市区块内、社区内等。因此,各隧道装置560可以从位于地理区域或位置内的客户装置540接收第2层包。

在一个实施例中,隧道装置560可以经由隧道连接到包转发组件520之一。隧道可以是对在通信信道的第一端处接收的包进行封装、然后通过通信信道将封装包转发或发送到第二端的通信信道。封装包可以是在其有效载荷中包括另一包的包。针对隧道可以使用各种类型的隧道或隧道协议。例如,隧道可以是安全外壳(ssh)隧道、虚拟私有网络(vpn)隧道、第2层隧道协议(l2tp)隧道、通用路由封装(gre)隧道、虚拟可扩展lan(vxlan)隧道等。

在一个实施例中,隧道装置560可以从接入点530的集合接收第2层包,并且可以封装这些包以生成封装包。例如,隧道装置560可以基于从接入点530接收到的第2层包来生成封装包。封装包可以是第3层包。例如,封装包可以是ip包,ip包在其有效载荷中包括第2层包(例如,以太网帧)。因此,封装包可以属于比第2层包更高的网络层。例如,参考开放系统互连(osi)模型,第2层包可以属于数据链路层,而封装包可以属于网络层。隧道装置560可以经由隧道耦接到包转发组件520之一。隧道装置560可以经由隧道将封装包转发或发送到包转发组件520。

在一个实施例中,隧道可以允许隧道装置560更容易地重新连接到不同的包转发组件520。如果隧道装置560经由隧道耦接到第一包转发组件520,并且第一包转发组件520变得不可操作或不可用(例如,崩溃、重启、故障等),则隧道装置560可以经由第二隧道连接到第二包转发组件520。例如,隧道装置560可以利用第二包转发组件520自动建立第二隧道。在另一示例中,包转发组件520可以接收指示隧道装置560应使用哪个其它包转发组件520的数据(例如,消息)。隧道装置560可以经由相应的隧道将封装包发送到包转发组件620。封装包可以包括作为默认网络接入控制器515的mac地址的目的地mac地址和作为客户装置540的mac地址的源mac地址。

在一个实施例中,隧道装置560可以帮助减少可耦接到包转发组件520的连接、通信信道、隧道等的数量。例如,通过经由隧道装置560聚集多个接入点530,各接入点530不耦接到包转发组件520。这允许包转发组件520具有与隧道装置560的单个连接,而不是与耦接到隧道装置560的接入点530的多个连接。例如,如果存在耦接到隧道装置560的三十个接入点530,则包转发组件520可能能够经由与隧道装置的一个隧道而不是经由与各个接入点530的三十个连接从所有三十个接入点530接收包。

如上所述,包转发组件520可以进行服务器系统510的负载均衡功能。在一个实施例中,包转发组件520可以将包从客户装置转发到同一网络接入控制器515,而不管客户装置连接到哪个接入点530。包转发组件520可以基于nac表确定将包转发到哪个网络接入控制器515。包转发组件520可以经由一个或多个隧道耦接到网络接入控制器515。

在另一实施例中,包转发组件520还可以允许将网络接入控制器515添加到系统架构500或从系统架构500去除。例如,可以添加或去除网络接入控制器515,并且可以在添加或去除网络接入控制器515之后将一个或多个客户装置540与不同的网络接入控制器515重新关联或重新分配给不同的网络接入控制器515。可以利用另一网络接入控制器515重定向或重新建立隧道装置560和所去除的网络接入控制器515之间的隧道。将客户装置540重新分配给不同的网络接入控制器515或与不同的网络接入控制器515重新关联可以允许系统架构500基于客户装置540和接入点的数量来扩大或缩小。

在一个实施例中,网络接入控制器515可以进行与向客户装置540提供对一个或多个网络(例如,私有或企业网络、互联网、公共网络wi-fi网络、服务提供商网络等)的接入有关的各种功能、动作、操作等。网络接入控制器515可以在向客户装置540提供对一个或多个网络的接入(例如,对互联网的接入)之前认证或授权客户装置540。在另一实施例中,网络接入控制器可以提供网络策略处理或实施功能(例如,实施最大下载速度、实施数据限制等)。在一些实施例中,组策略可以用于对一组用户或客户装置540实施网络策略。例如,可以使用组策略来控制在特定订阅计划(例如,互联网接入订阅计划、家庭计划、共享计划、组订阅等)中登记的多个用户的下载速度、时间量等。

在一个实施例中,网络接入控制器515可以允许一个或多个客户装置540经由网络接入控制器515接入其它网络。例如,网络接入控制器515可以允许客户装置向互联网、私有企业网络等发送和从互联网、私有企业网络等接收数据(例如,包)。由于在客户装置540与其它网络之间通信的包通过网络接入控制器515路由,因此这可以允许网络接入控制器515充当对一个或多个客户装置540实施网络策略或组策略的类似于路由器(例如,家用路由器、dsl模式、线缆模式等)的中央实体或组件。

在一个实施例中,如上所述,网络接入控制器515可以对发送到接入点540的数据进行加密,并且可以对从接入点540接收到的数据进行解密。在另一实施例中,各网络接入控制器515可以实例化并且可以管理不同的互联网协议(ip)子网(例如,ip网络的逻辑划分)。不同的客户装置540可以是客户装置540使用网络接入控制器515所基于的不同子网的一部分。

在一个实施例中,认证服务器150可以使用认证表来认证客户装置540。认证表可以包括用户标识符(例如,用户名、登录、电子邮件地址、合法名称等)以及与用户标识符相关联的网络接入控制器515的mac地址。认证表可以将网络接入控制器515的mac地址与各用户标识符相关联。认证表可以包括被允许经由网络接入控制器515与一个或多个网络通信(例如,发送或接收包)的用户的用户标识符的列表。客户装置540可以经由接入点530向认证服务器150发送一个或多个认证包(例如,请求对用户或客户装置540进行认证的一个或多个包)。一个或多个认证包可以包括凭证(例如,用户标识符、密码等)。接入点530可以将该一个或多个认证包发送(例如,转发)到包转发组件520,并且包转发组件520可以将该一个或多个认证包发送(例如,转发)到认证服务器550。认证服务器150可以认证用户标识符和密码(或用于认证用户或客户装置540的其它适当信息),并且如果用户标识符和密码有效,则可以允许客户装置540或用户接入一个或多个网络。认证服务器550可以发送指示对从客户装置接收到的认证包(例如,认证请求)的响应的认证包。例如,认证服务器550可以向接入点530发送指示用户被成功认证的响应。接入点530可以基于响应来允许客户装置540接入一个或多个网络。

在一个实施例中,认证服务器550可以将属性、字段或参数存储或记录在向客户装置540发送和从客户装置540发送的认证包(例如,认证响应)中。属性可以包括用户标识符以及与用户标识符相关联的网络接入控制器515的mac地址。认证服务器550可以在将认证包发送到客户装置之前添加用户标识符以及与用户标识符相关联的网络接入控制器515的mac地址。认证服务器550还可以存储发送认证包的客户装置540的mac地址。用户标识符、网络接入控制器515的mac地址和客户装置540的mac地址可以彼此关联并存储在表中(例如,存储为表中的行)。在一个实施例中,认证服务器550可以是radius服务器,并且认证包可以是radius包。可以在系统架构500中使用其它类型的认证服务器、认证协议、认证包等。

在一个实施例中,当处理来自客户装置540的包时,网络接入控制器515可以使用存储在认证服务器550的表中的属性。例如,网络接入控制器515可以使用存储在表中的客户mac地址来确定哪个用户标识符与该mac地址相关联。这可以允许网络接入控制器515识别客户mac地址(例如,客户装置540)的订阅或计划。

在一个实施例中,可以使用多个认证服务器(图中未示出)。多个认证服务器各自可以与不同组的网络接入控制器515相关联。例如,特定网络接入控制器515可以将认证包转发到特定认证服务器。网络接入控制器515与认证服务器的这种关联可以允许网络接入控制器515基于客户mac地址继续识别用户的订阅,即使使用多个认证服务器也是如此。

如上所述,包转发组件520可以接收由客户装置540发送的包,并且可以将包转发到其它装置或网络。包转发组件520可以在客户装置与认证服务器150之间转发包。在一个实施例中,包转发组件520可以分析在客户装置540与认证服务器550之间通信的认证包。在客户装置540之间通信的认证包可以包括可指示网络接入控制器515中的应该用于用户的网络接入控制器的属性、字段、参数等。例如,认证包可以包括指示用户标识符和由用户标识符标识的特定用户的特定网络接入控制器515(应该用于进行网络策略处理或实施)的mac地址的属性、字段、参数等。包还可以包括客户装置的mac地址作为当客户装置540发送包时的源mac地址。

在一个实施例中,包转发组件520可以与一个或多个隧道装置560建立隧道(例如,gre隧道、vpn隧道、l2tp隧道等)(例如,针对各隧道装置560一个隧道)。包转发组件520或隧道装置560可以发起隧道的建立。包转发组件520还可以与一个或多个网络接入控制器515建立隧道。例如,包转发组件520可以建立到各网络接入控制器515的隧道。在另一示例中,包转发组件可以建立到网络接入控制器515的子集的一个或多个隧道。包转发组件520或网络接入控制器515可以发起隧道的建立。

在一个实施例中,包转发组件520可以经由包转发组件520与隧道装置560之间的隧道从隧道装置560接收封装包。如上所述,隧道装置560可以基于从客户装置540接收到的数据包(例如,第2层包)来生成封装包。封装包可以是较高层包(例如,第3层或网络层包),并且封装包的有效载荷可以包括较低层包(例如,第2层或数据链路层包)。

包转发组件520可以访问nac表以确定网络接入控制器515中的哪一个应该接收封装包(例如,将封装包转发至哪个网络接入控制器515)。nac表可以包括指示用户标识符、客户装置540的mac地址和网络接入控制器515的mac地址中的一个或多个之间的关联的数据。这些关联可以指示多个网络接入控制器515中的哪个应该用于特定客户装置540或用户。例如,这些关联可以指示哪个包转发组件520已经被分配给客户装置540或者适合于客户装置540。包转发组件520可以基于nac表将包的目的地mac地址从默认网络接入控制器的mac地址更新或修改为与客户装置540的mac地址相关联的适当网络接入控制器515的mac地址。然后,包转发组件520可以将包转发到与客户装置的mac地址相关联的网络接入控制器515。在一些实施例中,如上所述,包转发组件520可以获得nac表或可以更新nac表。例如,包转发组件520可以以csv格式、json格式或可扩展标记语言格式从其它计算装置(例如,服务器计算机)接收nac表。在另一示例中,包转发组件520可以基于经由接口(例如,经由图形用户界面(gui)、命令行界面(cli)等)从用户(例如,网络管理员)接收到的用户输入来接收nac表。还可以更新包转发组件520的nac表。例如,服务器计算机可以周期性地向包转发组件520发送新的nac表。如上所述,包转发组件520可以更新nac表以基于不同的算法、功能、参数、准则、条件等将客户装置540重新分配给不同网络接入控制器515或与不同网络接入控制器515重新关联。在一个实施例中,nac表或包转发组件520可以基于客户装置540的地理区域将不同客户装置540与不同网络接入控制器515相关联。例如,地理区域(例如,几个区块、城市、县、州、省等)中的所有客户装置540可以被分配或与某个网络接入控制器515相关联。在另一实施例中,nac表或包转发组件520可以基于不同的订阅或网络计划将不同的客户装置540与不同的网络接入控制器515相关联。例如,多个客户装置540可以是组计划(例如,家庭计划)的一部分。可以将在组计划中的客户装置540分配给同一网络接入控制器515或与同一网络接入控制器515相关联。在另一示例中,与不同订阅级别相关联的客户装置540可以与不同的网络接入控制器515相关联。使用更昂贵的订阅计划(例如,允许更快的速度或吞吐量、允许更高的数据限制或数据使用等的订阅计划)的客户装置540可以被分配给第一网络接入控制器或与第一网络接入控制器相关联。使用较便宜的订阅计划(例如,允许较低的速度或吞吐量、允许较低的数据限制或数据使用等的订阅计划)的客户装置540可以被分配给第二网络接入控制器515或与第二网络接入控制器515相关联。这可以允许服务器系统510在存在网络拥塞或降低网络容量时对包或业务进行优先级排序(例如,来自更昂贵的订阅计划中的客户装置的包可以优先)。在另一示例中,某些类型的订阅可以被分组或与某些网络接入控制器515相关联。例如,某些订阅计划用于流式传输视频或玩视频游戏的用户。这些视频游戏或流式传输视频订阅计划可以与被专门分配用于处理和转发用于流式传输视频或视频游戏的包的某些网络接入控制器515相关联。在另一示例中,某些用户可以是可被分组到能够向用户提供对不同特征或服务的接入的某些网络接入控制器515上的beta测试者。

在一个实施例中,包转发组件520可以将封装包转发或发送到基于nac表识别或选择的网络接入控制器515。包转发组件520可以经由包转发组件520与所识别的网络接入控制器515之间的隧道将封装包发送到所识别的网络接入控制器515。在一些实施例中,如下面更详细论述的,包转发组件520可以将包转发到同一网络接入控制器515,而不管客户装置540连接到哪个接入点530。如上所述,用户或客户装置540可以是组或订阅计划的一部分。在其它实施例中,在nac表中,作为同一组的一部分的客户装置540或用户可以与同一网络接入控制器515相关联。这可以允许来自同一组或订阅计划中的客户装置540的包(例如,数据包或第2层包)被转发到同一网络接入控制器515。如下面更详细论述的,由于来自同一组或订阅计划中的客户装置的包被转发到同一网络接入控制器515,因此这可以允许系统架构500更容易地实施针对该组中的客户装置540的网络策略或组策略。

在一个实施例中,客户装置540或用户可以是多个组的一部分。例如,客户装置540可以与不同的组订阅相关联。客户装置540可以是针对用户的工作的第一组订阅的一部分,并且可以是针对用户的家庭的第二组订阅的一部分。基于客户装置540是多个组订阅或组策略的一部分,网络接入控制器515可以确定应该应用哪个组策略。例如,如果客户装置540位于用户的工作场所,则使用第一组订阅。如果客户装置540位于用户的家中,则可以使用第二组订阅。

在一个实施例中,可以将不同的客户装置540分配给不同的网络接入控制器515。例如,分配给网络接入控制器515的客户装置540可以称为客户组。客户组可以包括来自多个组或组订阅的客户装置540。另外,可以修改网络接入控制器515的客户组。例如,网络管理员可以将客户装置540添加到客户组或从客户组去除客户装置。

网络接入控制器515可以耦接到诸如公共网络(例如,互联网)或私有网络(例如,企业网络)等的一个或多个网络。在一个实施例中,网络接入控制器515可以经由网络接入控制器515与包转发组件520之间的隧道从包转发组件520接收封装包。网络接入控制器515可以对封装包进行解封装、解包等,以获得由客户装置540发送到接入点530的数据包(例如,第2层包)。网络接入控制器515可以分析封装包或数据包中的一个或多个以识别网络策略(例如,用于用户的网络策略、用于用户组的组策略等)。例如,如下面更详细论述的,网络接入控制器可以识别源mac地址(其可以是客户装置540的mac地址)以识别与发送数据包的客户装置540相关联的网络策略或组策略。如下面更详细论述的,网络接入控制器515可以基于数据策略或组策略来确定是否、何时以及如何将数据包转发到一个或多个网络(例如,互联网)。

如上所述,向使用第2层包的系统架构添加附加包转发组件可能导致系统架构的更多困难、问题、难题等。例如,系统架构可能更难以将第2层包转发或路由到不同的网络接入控制器515。另外,可能使用更昂贵的网络装置来互连接入点130、包转发组件120和网络接入控制器115,以使网络装置在系统架构中存储许多或所有客户装置140的mac地址。

在一些实施例中,系统架构500在接入点130、包转发组件120和网络接入控制器115之间通信(例如,发送或接收)封装包而不是第2层包。这允许互连接入点130、包转发组件120和网络接入控制器115的网络装置在其转发表中存储较少的mac地址,这是因为客户装置540的mac地址不向网络装置公开。代替地,可以在封装包(例如,第3层包)中使用接入点130、包转发组件120和网络接入控制器115的mac地址。接入点130、包转发组件120和网络接入控制器115的mac地址的总数可以比客户装置540的mac地址的总数少得多。隧道装置560可以通过封装从客户装置540接收到的数据包(例如,第2层包)来允许系统架构500使用封装包。

在其它实施例中,系统架构500能够更容易地在接入点130、包转发组件120和网络接入控制器115之间路由封装包。由于封装包在比数据包(其在数据链路层或第2层)更高的层(例如,在网络层或第3层)处,因此系统架构500能够使用互联网协议(ip)层路由协议、标准、技术、方法、操作等来在接入点130、包转发组件120和网络接入控制器115之间路由封装包。例如,如果存在通过互连接入点130、包转发组件120和网络接入控制器115的网络装置的多个路径,并且网络装置之一不可操作(例如,崩溃、故障或以其它方式不可用),则可以使用ip路由协议通过其它路径重新路由封装包。这允许系统架构500具有更高的容错性并且能够更快或更有效率地从错误中恢复。

尽管本发明可能涉及wi-fi,但是可以使用其它类型的通信协议、接入技术和基础设施。例如,代替使用wi-fi网络,可以使用千兆位无源光网络(gpon)。在另一示例中,可以使用以太网网络。例如,可以使用可用于将客户装置mac地址转发到网络接入控制器515的任何协议、接入技术或基础设施。

另外,尽管本发明可能描述从客户装置540发送到网络控制器515的包,但是包也可以从网络接入控制器515发送到客户装置540。例如,在包从客户装置540发送到网络控制器515之后,网络接入控制器515可以知道已经分配给客户装置540的ip地址(例如,网络接入控制器515可以将ip地址分配给客户装置540)。网络接入控制器515还可以知道客户装置540的mac地址。网络接入控制器515可以将客户装置的ip地址与mac地址的关联存储在诸如arp表或类似类型的表等的表中。这允许网络接入控制器515基于客户装置540的mac地址来确定客户装置540的ip地址,并且无需使用arp广播。

在一个实施例中,系统架构500可以向数百万用户、家庭和企业提供较低成本宽带服务。系统架构500可以能够缩放到每秒数百千兆位或太位的聚合速度。例如,随着开发不同类型的接入技术或协议(例如,第五代(5g)协议、第六代(6g)协议等),可以用支持较新接入技术的不同接入点来替换接入点530。另外,系统架构许可集成数千、成百上千等的wi-fi接入点(或其它类型的接入点),各接入点具有不同的天线配置并且各接入点来自不同的供应商。这允许系统架构与所有类型的接入点(从具有更多功能的高端接入点到低端接入点)一起使用。系统架构500可以能够提供用于使用接入技术提供网络接入的各种解决方案,这些接入技术从用于农村地区的长距离wi-fi、用于更发达城市区域的光纤到家(ftth)或gpon、到用于企业或公司的企事业级接入点。通过使用第2层或第3层协议,并且通过使用较低成本接入点(例如,通过使用wi-fi接入点而不是蜂窝塔),系统架构500能够向数百万用户或家庭提供较低成本和高性能宽带服务(例如,提供网络接入)。例如,系统架构500可以能够以成本为具有类似能力的lte网络成本的1/30来部署室外wi-fi接入点以覆盖数百万家庭。

图6是示出根据本发明的一些实施例的示例性系统架构600的框图。系统架构600包括服务器系统510和隧道装置560。服务器系统510、认证服务器550和隧道装置560可以经由一个或多个网络互连或彼此耦接(例如,通信地耦接)。服务器系统510包括网络接入控制器515和包转发组件520。网络接入控制器515和包转发组件520也可以经由一个或多个网络互连或耦接。一个或多个网络可以传送服务器系统510与隧道装置560之间的通信(例如,消息、包、帧等)。各隧道装置可以耦接到一个或多个接入点(例如,图5中所示的接入点),并且各接入点可以耦接到一个或多个客户装置(例如,图5中所示的客户装置)。服务器系统510可以位于包括多个计算装置(诸如服务器计算机等)的一个或多个数据中心或云计算架构(例如,云)中。网络接入控制器515、包转发组件520和隧道装置560各自可以是计算装置、vm或容器中的一个或多个。

如上所述,隧道装置560可以耦接到一个或多个接入点。各隧道装置560可以耦接到地理位置内的接入点。各隧道装置560可以经由第2层连接或经由数据链路层连接而耦接到一个或多个接入点。例如,各隧道装置560可以从接入点接收第2层包。隧道装置560可以从接入点的集合接收第2层包(例如,数据包),并且可以对这些包进行封装以生成封装包(例如,第3层包)。封装包可以是较高层包(例如,第3层或网络层包),并且封装包的有效载荷可以包括较低层包(例如,第2层或数据链路层包)。

各隧道装置560可以经由隧道680耦接到包转发组件520。如上所述,隧道680可以是用于通信封装包的通信信道(例如,可以是gre隧道、l2tp隧道等)。各隧道680在一端耦接到隧道装置560,在另一端耦接到包转发组件520上的端点622。端点622可以被称为隧道端点。如上所述,隧道680可以允许隧道装置560更容易地重新连接到不同的包转发组件520。隧道680可以用于在隧道装置560与包转发组件520之间通信封装包(例如,第3层包、所封装的第2层包等)。尽管在隧道装置560与包转发组件520之间示出一个隧道680,但是隧道装置680可以经由多个隧道耦接到多个包转发组件520。这可以允许隧道装置680在包转发组件520之间更快地切换包转发组件520。例如,不是在第一包转发组件520故障时与第二包转发组件520建立新的隧道680,而是隧道装置680可以使用两个隧道并在包转发组件520故障时在两个隧道之间切换。

在一个实施例中,包转发组件520可以通过将来自不同客户装置的包转发到不同的网络接入控制器515以将包分配到不同的网络接入控制器515来进行服务器系统510的负载均衡功能。在另一实施例中,如下面更详细论述的,包转发组件520可以将包转发到同一网络接入控制器515,而不管客户装置连接到哪个接入点。如上所述,包转发组件520可以基于nac表确定将包转发到哪个网络接入控制器515。在另一实施例中,包转发组件520还可以允许将网络接入控制器515添加到系统架构500或从系统架构500去除。

各包转发组件520经由隧道690(例如,gre隧道、vpn隧道、l2tp隧道等)耦接到网络接入控制器515中的一个或多个。各隧道690可以是用于通信封装包的通信信道(例如,可以是gre隧道、l2tp隧道等)。各隧道690在端点616处耦接到网络接入控制器515,并且在端点621处耦接到包转发组件520。端点621和622可以称为隧道端点。隧道690可以允许包转发组件520更容易地重新连接到不同的网络接入控制器515。隧道690可以用于在包转发组件520与网络接入控制器之间通信封装包(例如,第3层包、所封装的第2层包等)。

在一个实施例中,包转发组件520可以将封装包转发到网络接入控制器515之一。包转发组件520可以访问nac表以确定网络接入控制器515中的哪一个应该接收封装包。nac表可以包括指示用户标识符、客户装置的mac地址和网络接入控制器515的mac地址中的一个或多个之间的关联的数据。关联可以指示网络接入控制器515中的哪个应该用于特定客户装置或用户。包转发组件520可以获得nac表或者可以使用各种其它方法、功能、操作、技术等来更新nac表。nac表或包转发组件520可以基于客户装置的地理区域将不同客户装置与不同网络接入控制器515相关联。nac表或包转发组件520还可以基于不同的订阅或网络计划将不同的客户装置与不同的网络接入控制器515相关联。

包转发组件520可以基于nac表将包的目的地mac地址从默认网络接入控制器的mac地址更新或修改为与客户装置的mac地址相关联的适当网络接入控制器515的mac地址。然后,包转发组件520可以将包转发到与客户装置的mac地址相关联的网络接入控制器515。

在一个实施例中,包转发组件520可以将封装包转发或发送到基于nac表识别或选择的网络接入控制器515。包转发组件520可以经由包转发组件520与所识别的网络接入控制器515之间的各个隧道690将封装包发送到所识别的网络接入控制器515。如下面更详细论述的,包转发组件520可以将来自客户装置的包转发到同一网络接入控制器515,而不管客户装置连接到哪个接入点。

在一个实施例中,网络接入控制器515可以进行与向客户装置提供对一个或多个网络(例如,互联网等)的接入有关的各种功能、动作、操作等。网络接入控制器515可以在向客户装置提供对一个或多个网络的接入之前对客户装置进行认证或授权。在另一实施例中,网络接入控制器515可以提供网络策略处理或实施功能(例如,实施最大下载速度、实施数据限制等)。例如,网络接入控制器515可以基于网络策略、组策略等来允许客户装置发送或接收包。如上所述,组策略可以与组订阅计划上的一组客户装置(例如,共享同一订阅计划的一组客户装置)相关联。可以使用组策略来控制在组订阅计划(例如,互联网接入订阅计划、家庭计划、共享计划等)中登记的多个用户的下载速度、时间量等。可以将来自组订阅计划中的客户装置的包转发到同一网络接入控制器515,而不管客户装置连接到哪个接入点。同一网络接入控制器515可以使用组策略来对该组客户装置实施网络策略。作为同一组的一部分的客户装置或用户可以与nac表中的同一网络接入控制器515相关联。

网络接入控制器515可以耦接到诸如公共网络(例如,互联网)或私有网络(例如,企业网络)等的一个或多个网络。在一个实施例中,网络接入控制器515可以经由网络接入控制器515与包转发组件520之间的隧道从包转发组件520接收封装包。网络接入控制器515可以对封装包进行解封装、解包等,以获得由客户装置发送到接入点的数据包(例如,第2层包)。网络接入控制器515可以分析封装包或数据包中的一个或多个以识别网络策略(例如,用于用户的网络策略、用于用户组的组策略等)。例如,网络接入控制器可以识别源mac地址(其可以是客户装置的mac地址)以识别与发送数据包的客户装置相关联的网络策略或组策略。如下面更详细论述的,网络接入控制器515可以基于数据策略或组策略来确定是否、何时以及如何将数据包转发到一个或多个网络(例如,互联网)。

在一个实施例中,各网络接入控制器515也可以是用户端口隔离组。各网络接入控制器515的不同端点622和621可以被分组为不同的端口隔离组。例如,端点621可以在第一端口隔离组中,而端点622可以在第二端口隔离组中。

在一个实施例中,端口隔离组内的端点可能不能在彼此之间转发包。例如,不允许包从包转发组件520的第一端点622去往同一包转发组件620的第二端点622。这可以帮助防止包通过包转发组件520循环并绕过网络接入控制器515。这还可以防止包通过服务器系统510泛洪。例如,系统架构可以使用地址解析协议(arp)包来将ip地址映射到mac地址。如果允许在包转发组件520上的端点621之间转发arp包,则这可能允许arp包通过服务器系统510连续地循环或泛洪。另外,端口隔离组可以防止扑动。当客户装置540出现在不同包转发组件520之间快速切换时,可能发生扑动,这是因为来自客户装置540的包通过服务器系统510循环。在另一实施例中,不同端口隔离组中的端点可以能够在彼此之间转发包。例如,端点621(其是第一端口隔离组的一部分)可以能够将包转发到端点622(其是第二端口隔离组的一部分)。

如上所述,系统架构600可以在接入点130、包转发组件120和网络接入控制器115之间使用封装包(例如,第3层包、ip包)。系统架构600可以能够使用互联网协议(ip)层路由协议、标准、技术、方法、操作等来在接入点130、包转发组件120和网络接入控制器115之间路由封装包。这允许系统架构500具有更高的容错性并且能够更快或更有效率地从错误中恢复。另外,使用隧道装置生成封装包允许服务器系统510更快、更容易和更有效率地将附加包转发组件520添加到服务器系统510。

图7是根据本发明的一些实施例的转发包的方法700的流程图。方法700可以由可包括硬件(例如,电路、专用逻辑、可编程逻辑、处理器、处理装置、中央处理单元、片上系统(soc)等)、软件(例如,在处理装置上运行/执行的指令)、固件(例如,微代码)或其组合的处理逻辑来进行。在一些实施例中,方法700可以由包转发组件、网络接入控制器、隧道装置、接入点和/或计算装置中的一个或多个来进行。

方法700在框705处开始,在框705处,方法700可以建立与隧道装置的第一隧道。如图6所示,隧道可以在隧道装置与包转发组件之间。在框710处,方法700建立与多个网络接入控制器的隧道集合。例如,如图6所示,方法700可以建立各网络接入控制器与包转发组件之间的隧道。在框715处,方法700可以经由第一隧道从隧道装置接收封装包。如上所述,封装包可以是第3层包。封装包可以包括由接入点从客户装置接收并由隧道装置封装的数据包(例如,数据链路层包、第2层包等)。

在框720处,方法700可以从多个网络接入控制器中识别第一网络接入控制器。例如,方法700可以识别封装包中的源mac地址(例如,将数据包发送到接入点的客户装置的mac地址)。方法700可以访问nac表以基于该表来识别网络接入控制器和与客户装置的mac地址相关联的第一网络接入控制器的mac地址。

在框725处,方法700可以将封装包转发到第一网络接入控制器。例如,方法700可以将封装包中的目的地mac地址从默认网络接入控制器的mac地址更新为第一网络接入控制器的mac地址(其与客户装置相关联)。

图8是示出根据本发明的一些实施例的示例性系统架构800的框图。系统架构800包括服务器系统510和隧道装置560。服务器系统510和隧道装置560可以经由一个或多个网络互连或彼此耦接(例如,通信地耦接)。服务器系统510包括网络接入控制器515和包转发组件520。网络接入控制器515和包转发组件520也可以经由一个或多个网络互连或耦接。各隧道装置560可以耦接到一个或多个接入点530,并且各接入点可以耦接到一个或多个客户装置。网络接入控制器515、包转发组件520和隧道装置560各自可以是计算装置、vm或容器中的一个或多个。

在一些实施例中,服务器系统510可以如同服务器系统510是路由器那样地起作用、操作或功能。例如,服务器系统510可以如同服务器系统510是家用路由器、线缆调制解调器、dsl调制解调器或某种其它cpe那样操作。即,如下面更详细论述,服务器系统510可以作为位于云或数据中心内的虚拟路由器操作。

如上所述,隧道装置560可以耦接到地理位置内的一个或多个接入点530。各隧道装置560可以经由第2层连接或经由数据链路层连接耦接到一个或多个接入点530。隧道装置560可以从接入点的集合接收第2层包(例如,数据包),并且可以对这些包进行封装以生成封装包(例如,第3层包)。封装包可以是较高层包,并且封装包的有效载荷可以包括较低层包。各隧道装置560可以经由隧道耦接到包转发组件520。隧道可以用于在隧道装置560与包转发组件520之间通信封装包(例如,第3层包、所封装的第2层包等)。

在一个实施例中,包转发组件520可以通过将来自不同客户装置的包转发到不同的网络接入控制器515以将包分配到不同的网络接入控制器515来进行服务器系统510的负载均衡功能。如上所述,包转发组件520可以基于nac表确定将包转发到哪个网络接入控制器515。nac表可以包括指示用户标识符、客户装置的mac地址和网络接入控制器515的mac地址中的一个或多个之间的关联的数据。这些关联可以指示网络接入控制器515中的哪个应该用于特定客户装置或用户。包转发组件520可以基于nac表将包的目的地mac地址从默认网络接入控制器的mac地址更新或修改为与客户装置的mac地址相关联的适当网络接入控制器515的mac地址。

各包转发组件520经由隧道(例如,gre隧道、vpn隧道、l2tp隧道等)耦接到网络接入控制器515中的一个或多个。隧道可以允许包转发组件520更容易地重新连接到不同的网络接入控制器515。隧道可以用于在包转发组件520与网络接入控制器之间通信封装包(例如,第3层包、所封装的第2层包等)。

在一个实施例中,网络接入控制器515可以进行与向客户装置提供对一个或多个网络(例如,互联网等)的接入有关的各种功能、动作、操作等。例如,网络接入控制器515可以在向客户装置提供对一个或多个网络的接入之前认证或授权客户装置。

网络接入控制器515可以耦接到诸如公共网络(例如,互联网)或私有网络(例如,企业网络)等的一个或多个网络。网络接入控制器515可以允许客户装置经由网络接入控制器515与一个或多个网络通信。例如,网络接入控制器515可以允许客户装置经由网络接入控制器515向互联网发送包和从互联网接收包。

在另一实施例中,网络接入控制器515可以提供网络策略处理或实施功能(例如,实施最大下载速度、实施数据限制等)。例如,网络接入控制器515可以基于网络策略来允许客户装置发送或接收包。如上所述,可以设置包转发组件520的nac表,使得来自客户装置的包被包转发组件520转发到同一网络接入控制器515。这帮助确保同一网络接入控制器515用于对由客户装置发送或接收的包实施网络策略。这还可以使网络接入控制器515更容易实施网络策略,这是因为网络接入控制器515不需要与其它网络接入控制器515协作以实施网络策略

网络接入控制器515还可以实施组策略。组策略可以是与一组客户装置(例如,客户装置840a和840b)相关联的网络策略。一组客户装置可以使用组订阅计划(例如,该组客户装置可以共享同一订阅计划)。可以使用组策略来控制在组订阅计划(例如,互联网接入订阅计划、家庭计划、共享计划等)中登记的多个客户装置或用户的下载速度、时间量等。包转发组件520上的nac表可以被设置成使得来自在组订阅计划中登记或作为组订阅计划的一部分的客户装置的包被包转发组件520转发到同一网络接入控制器515。

例如,如图8所示,客户装置840a和840b可以是组订阅计划的一部分,并且包转发组件520中的nac表可以指示来自客户装置840a和840b的包或数据应该被转发到最左边的网络接入控制器515。因此,可以对客户装置840a和840b实施或应用组策略(例如,应用于组订阅计划中的多个客户装置的网络策略)。组策略可以指示最大带宽(例如,最大吞吐量、最大下载速度)、数据限制(例如,可以下载的数据量)、时间限制(例如,客户装置可以在线或与网络通信包的时间量)等中的一个或多个。由于包转发组件520中的nac表可以将来自客户装置840a和840b的所有包转发到最左边的网络接入控制器515(例如同一网络接入控制器),因此最左边的网络接入控制器515可以能够更容易地实施或应用组策略。例如,最左边的网络接入控制器515可以不与其它网络接入控制器515协作以实施或应用组策略,这是因为其它网络接入控制器不处理来自客户装置840a和840b的包。

在一个实施例中,在客户装置从一个接入点530移动(例如,遍历)到另一个接入点时,网络接入控制器515可以对客户装置应用或实施网络策略。例如,客户装置840a可以使用可能在第一城市中的最左边的接入点530。稍后,客户装置840a可能移动到第二城市,并且可以使用可能位于第二城市中的中间接入点530。可以设置包转发组件的nac表以将来自客户装置840的包转发到最左边的接入点530,而不管客户装置840使用最左边的接入点530、中间接入点530还是其它接入点。这可以允许服务器系统510作为提供对一个或多个网络(例如,互联网)的接入并且能够对客户装置实施网络策略的虚拟或虚拟化路由器来操作。

在一个实施例中,在(组订阅计划中的)客户装置从一个接入点530移动到另一接入点时,网络接入控制器515可以对作为组订阅计划的一部分的客户装置(例如,客户装置840a和840b)应用或实施组策略。例如,组订阅计划可以指示可由组订阅计划中的客户装置共享的最大带宽。如图8所示,客户装置840a可以连接到中间接入点530,并且客户装置840b可以连接到最右边的接入点530。由于与客户装置840a和840b通信的所有包都通过最左边的网络接入控制器515,因此最左边的网络接入控制器515可以能够对客户装置840a和840b这两者实施最大带宽。例如,组订阅可以指示客户装置840a和840b应当共享每秒100兆位(mbps)的最大带宽。最左边的网络接入控制器515可以允许客户装置840a使用50mbps的带宽,并且可以允许客户装置840b使用50mbps的带宽。在其它示例中,最左边的网络接入控制器515可以在客户装置840a和840b之间划分100mbps的带宽,使得客户装置840a和840b使用的总带宽不超过100mbps。

在一个实施例中,最左边的网络接入控制器515可以能够对客户装置840a和840b应用这些带宽限制,而不管客户装置840a和840b使用哪个接入点,这是因为客户装置840a和840b通信的所有包都通过最左边的网络接入控制器515(例如,由于如何设置或配置包转发组件520上的nac表)。这可以允许服务器系统510作为提供对一个或多个网络(例如,互联网)的接入并且能够对组订阅中的客户装置实施网络策略的虚拟或虚拟化路由器来操作。例如,线缆调制解调器或路由器可以对耦接到线缆调制解调器或路由器的客户装置实施最大带宽。耦接线缆调制解调器或路由器的所有装置可以共享最大带宽。服务器系统510允许系统架构800模拟或作为路由器来操作(例如,作为虚拟路由器或虚拟化路由器来操作)并且对客户装置840a和840b实施最大带宽(例如,网络策略)。

图9是根据一些实施例的转发包的方法900的流程图。方法900可以由可包括硬件(例如,电路、专用逻辑、可编程逻辑、处理器、处理装置、中央处理单元、片上系统(soc)等)、软件(例如,在处理装置上运行/执行的指令)、固件(例如,微代码)或其组合的处理逻辑来进行。在一些实施例中,方法900可以由包转发组件、网络接入控制器、隧道装置、接入点和/或计算装置中的一个或多个来进行。

方法900在框905处开始,在框905处,方法900可以在包转发组件与隧道装置之间建立隧道,如图6所示。在框910处,方法900可以在包转发组件与网络接入控制器之间建立隧道,如图6所示。在框915处,方法900可以从客户装置接收包,并且将包转发到隧道装置。例如,接入点可以从客户装置接收数据包(例如,第2层包),并且将数据包转发到隧道装置。在框920处,隧道装置可以从接入点接收数据包,并且可以生成封装包(例如,第3层包)。隧道装置还可以将封装包转发到包转发组件。

在框925处,方法900可以从隧道装置接收包并将包转发到网络接入控制器。例如,包转发组件可以从隧道装置接收封装包,并且可以基于nac表将封装包转发到网络接入控制器。在框930处,当客户装置在不同接入点之间移动时,方法900可以对客户装置实施一个或多个网络策略。对于网络接入控制器,如上所述,当客户装置在不同接入点之间移动时,可以对组订阅中的客户装置实施网络策略。

图10是根据一些实施例的可以进行这里描述的一个或多个操作的示例性计算装置1000的框图。计算装置1000可以连接到lan、内部网、外部网和/或互联网中的其它计算装置。计算装置可以在客户-服务器网络环境中的服务器机器的容量或在对等网络环境中的客户的容量中操作。计算装置可以由个人计算机(pc)、机顶盒(stb)、服务器、网络路由器、交换机或桥接器、或能够执行指定由机器采取的动作的指令集(顺序地或以其它方式)的任何机器提供。此外,虽然仅示出了单个计算装置,但术语“计算装置”也应被视为包括单独或共同执行指令集(或多个指令集)以进行这里所述的方法的计算装置的任何集合。在一些实施例中,计算装置1000可以是接入点和包转发组件中的一个或多个。

示例性计算装置1000可以包括处理装置(例如通用处理器、pld等)1002、主存储器1004(例如同步动态随机存取存储器(dram)、只读存储器(rom))、静态存储器1006(例如闪速存储器和数据存储装置1018),它们可以经由总线1030彼此通信。

处理装置1002可以由诸如微处理器或中央处理单元等的一个或多个通用处理装置提供。在说明性示例中,处理装置1002可以包括复杂指令集计算(cisc)微处理器、简化指令集计算(risc)微处理器、超长指令字(vliw)微处理器或实现其它指令集的处理器或实现指令集的组合的处理器。处理装置1002还可以包括一个或多个专用处理装置,诸如专用集成电路(asic)、现场可编程门阵列(fpga)、数字信号处理器(dsp)或网络处理器等。处理装置1002可以被配置为根据本发明的一个或多个方面执行这里描述的操作,以用于进行这里所述的操作和步骤。

计算装置1000还可以包括可与网络1020通信的网络接口装置1008。计算装置1000还可以包括视频显示单元1010(例如液晶显示器(lcd)或阴极射线管(crt))、字母数字输入装置1012(例如键盘)、光标控制装置1014(例如鼠标)和声信号生成装置1016(例如扬声器)。在一个实施例中,视频显示单元1010、字母数字输入装置1012和光标控制装置1014可以组合成单个组件或装置(例如,lcd触摸屏)。

数据存储装置1018可以包括计算机可读存储介质1028,根据本发明的一个或多个方面,在该计算机可读存储介质1028上可以存储一个或多个指令集,例如用于执行这里描述的操作的指令。实现包转发组件、网络接入控制器、隧道装置和接入点中的一个或多个的指令1026也可以在由也构成计算机可读介质的计算装置1000、主存储器1004和处理装置1002执行期间完全或至少部分地驻留在主存储器1004内和/或处理装置1002内。指令还可以经由网络接口装置1008在网络1020上发送或接收。

虽然计算机可读存储介质1028在说明性示例中被示出为单个介质,但是术语“计算机可读存储介质”应该被视为包括存储一个或多个指令集的单个介质或多个介质(例如,集中式或分布式数据库和/或相关联的高速缓存和服务器)。术语“计算机可读存储介质”也应被视为包括能够存储、编码或携带供机器执行的指令集并使机器进行这里所述方法的任何介质。因此,术语“计算机可读存储介质”应被视为包括但不限于固态存储器、光介质和磁介质。

除非另有明确说明,否则诸如“接收”、“生成”、“识别”、“实施”、“转发”、“确定”、“分配”、“建立”或“更新”等的术语是指由计算装置进行或实现的动作和处理,这些动作和处理将计算装置的寄存器和存储器中表示为物理(电子)量的数据操纵和转换为计算装置存储器或寄存器或者其它这样的信息存储、发送或显示装置中类似地表示为物理量的其它数据。此外,如这里所使用的术语“第一”、“第二”、“第三”、“第四”等意指用于在不同元素之间区分的标签,并且不一定具有根据其数字指定的顺序含义。

这里描述的示例还涉及用于进行这里描述的操作的设备。该设备可以为所需的目的而特别构造,或者其可以包括由存储在计算装置中的计算机程序选择性地编程的通用计算装置。这种计算机程序可以存储在计算机可读的非暂时性存储介质中。

这里描述的方法和说明性示例并不固有地与任何特定计算机或其它设备有关。可以根据这里描述的教导使用各种通用系统,或者可以证明构造更专用的设备以进行所需的方法步骤是方便的。各种这些系统所需的结构将如以上描述中所呈现的。

以上描述旨在说明性而不是限制性的。尽管已经参考特定说明性示例描述了本发明,但是将认识到本发明不限于所描述的示例。本发明的范围应参考所附权利要求书以及权利要求所具有的全部等效范围来确定。

如这里所使用的,除非上下文清楚地另有指示,否则单数形式“a”、“an”和“the”也旨在包括复数形式。进一步理解的是,术语“包括”、“包含”、“具有”和/或“含有”在这里被使用时指定了所述特征、整数、步骤、操作、元素和/或组件的存在,但不排除一个或多个其它特征、整数、步骤、操作、元素、组件和/或其组的存在或添加。因此,这里使用的术语仅用于描述特定实施例的目的,而不是旨在限制。

还应该注意的是,在一些替代实现中,所述的功能/动作可以不按图中所述的顺序发生。例如,相继示出的两个附图实际上可以基本上同时执行,或者有时可以以相反的顺序执行,这取决于所涉及的功能/动作。

虽然以特定顺序描述了方法操作,但是应该理解,可以在所描述的操作之间进行其它操作,可以调整所描述的操作使得它们在稍微不同的时间发生,或者可以将所描述的操作分布在允许以与处理相关联的各种间隔发生处理操作的系统中。

可以将各种单元、电路或其它组件描述为或声称为“被配置为”或“可被配置为”进行一个或多个任务。在这样的上下文中,短语“被配置为”或“可被配置为”用于通过指示单元/电路/组件包括在操作期间进行一个或多个任务的结构(例如,电路)来表示结构。这样,即使在所指定的单元/电路/组件当前不工作(例如,不接通)时,也可以说单元/电路/组件被配置为进行任务,或者可被配置为进行任务。与“被配置为”或“可被配置为”语言一起使用的单元/电路/组件包括硬件——例如,电路、存储可执行以实现操作的程序指令的存储器等。描述单元/电路/组件“被配置为”进行一个或多个任务或者“可被配置为”进行一个或多个任务,这明确旨在针对该单元/电路/组件不调用35u.s.c.112第六段。另外,“被配置为”或“可被配置为”可以包括通用结构(例如,通用电路),该通用结构被软件和/或固件(例如,执行软件的fpga或通用处理器)操纵从而以能够进行所述的任务的方式操作。“被配置为”还可以包括调整加工工艺(例如,半导体制造设施)以制造适于实现或进行一个或多个任务的装置(例如,集成电路)。“可被配置为”明确旨在不应用于空白介质、未编程处理器或未编程通用计算机、或未编程的可编程逻辑装置、可编程门阵列或其它未编程装置,除非伴随有赋予未编程装置被配置为进行所公开功能的能力的编程介质。

为了说明的目的,已经参考具体实施例描述了以上描述。然而,上面的说明性论述不旨在穷尽或限制本发明至所公开的精确形式。鉴于上述教导,许多修改和变化是可行的。选择和描述实施例是为了最好地解释实施例的原理及其实际应用,从而使得本领域的其它技术人员能够最好地利用实施例和各种可以适合于所设想的特定使用的修改。因此,本实施例将被认为是说明性的而非限制性的,并且本发明不限于这里给出的细节,而是可以在所附权利要求书的范围和等同物内修改。

再多了解一些
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1