扩展来自外部服务的路由规则的制作方法_3

文档序号:9333004阅读:来源:国知局
该流或通过 SDK登记规则以管理该流的处置。如果该应用选择自己处理该流,则该流从托管该外部应用 的设备的出口端口继续。否则,该应用可以程序化地修改路由、策略、或与该流相关的其它 规则。SDK接收该修改并经由通信信道编排该修改。然后该修改在内部网络抽象层308被 解释,并且在服务实施层310被转化为命令或修改。进而,在服务实施层310处的服务在硬 件数据平面级控制该流,从而维持网络元件102的性能。至少在一些实施例中,该应用可以 根据由开发者编码在该应用中的规则任意地改变流、分组的状态,或者交换机的配置。
[0033] 图4为根据本公开所提及的一个实施例,示出了用于扩展来自外部服务的路由规 则的不同托管模式的示图400。该托管模式还可以被称为部署模式。如所示的,该托管模 式包括过程托管模式401:、刀片托管模式401 2、和端点托管模式4033。在过程托管模式401: 中,应用112被托管在容器内,并且在网络元件102内运行,该应用112提供了对转发路径 的低延迟访问。在刀片托管模式4012中,应用102被托管在容器内,并且在刀片服务器404 内运行,该刀片服务器被处置于与网络元件102相同的机架内,该应用提供了对转发路径 的中等延迟访问。至少在一些情形下,至少相对于过程托管模式40h,如此处理可以提供增 加的隔离度和额外的计算资源。
[0034] 在端点托管模式4013中,应用112被托管在容器内,并且在外部服务器406上运 行,该外部服务器可以为任何商品设备,比如服务器、膝上型计算机、移动设备等。至少在一 些情形下,如此处理可以提供对转发路径的高延迟访问。此外,至少相对于刀片托管模式 401 2,隔离度和计算资源均可以被进一步增加。相应地,在应用和服务框架之间所设有的通 信抽象允许将该应用部署在单独过程中的交换机上、与交换机同一机架内的刀片中、或者 在单独的计算机或者连同虚拟机(VM) -起(包括第三方计算机或VM)。
[0035] 图5为根据本公开所提及的一个实施例,描述了扩展来自外部服务的路由规则的 方法500的流程图。如所示的,方法500开始于步骤502,其中网络元件102接收用以修改被 网络元件102强制执行的指定规则的请求。该指定规则管理特定于应用112的网络流的处 置,该应用112可以包括第三方代码。该请求可以经由通信信道210接收,该通信信道210 被配置为向应用112公开API110。在步骤504,网络元件102在内部网络抽象层308解释 该请求。在步骤506,网络元件102在服务实施层310将该请求转化为一个或多个命令。在 步骤508,响应于该请求,网络元件102执行该一个或多个命令以修改被网络元件102强制 执行的指定规则。在步骤508之后,方法500终止。
[0036] 在一个实施例中,API可以被配置为允许应用独立地修改网络元件102的每一个 单独的管理和运行时间方面,该管理和运行时间方面选自于MPLS标记、层2信息、层3信 息、DPI、和路由表。该请求可以被应用112经由与至少一个网络元件102相关的表示层304 所提供的SDK212发送。该SDK可以被配置为编排该请求并经由通信信道发送编排后的请 求。如以上所描述的,在一个实施例中,通信信道可以为网络独立的RPC信道。在这样的实 施例中,网络元件112可以在解释请求之前,解编排所接收的请求。修改后的规则可以被阻 止,以避免影响与应用112的提供商不相关的至少一个网络流。指定规则可以被网络元件 102的管理运行时间修改。取决于实施例,应用112可以在网络元件102上执行、在被置于 与网络元件102同一机架内的刀片服务器上执行,或者在被操作连接至网络元件102的外 部计算机或VM上执行。
[0037] 相应地,本文所公开的至少一些实施例提供了扩展来自外部服务的路由规则的技 术。一个实施例提供了经协调的服务框架,该服务框架被配置为允许网络元件(比如交换 机或路由器)的管理和运行时间方面的操纵。连同网络透明的通信信道,经协调的服务框 架允许在各种使用案例情景中(包括多租户环境和第三方应用代码),外部控制器或应用 来控制分组和流的处置。因此,云主机可以在根据本文所公开的技术配置的任何网络的顶 端提供这样的应用。此外,通过使用本文所公开的技术,企业客户可以以任意方式扩展他们 的网络。
[0038] 在一些情形下,运行时间和底层硬件和外部应用之间的关系(涉及管理和策略平 面的分离),可以类似于SDN背景中的数据平面和独立的控制器之间的分离。然而,至少在 一些情形下,能够从外部应用管理的内容,可能要广泛得多,并且可以覆盖管理、检测、Q〇S、 流管理等。
[0039] 在一个实施例中,根据本文所公开的技术配置的任何路由器或交换机可以有利地 变为开放流使能(OpenFlow-enabled)。开放流控制分组可以在入口端口处被检测并且被转 移,并且被转移至在该网络元件上、在同一机架上的刀片服务器上、或者甚至在另一主机上 运行的开放流控制器。甚至当该网络元件本身可能未必支持开放流时,该开放流控制器应 用也可以使用SDK以根据开放流指令来程序化地改变该路由/交换元件。从外部看来,该 网络元件看起来像是确实支持开放流。
[0040] 在另一实施例中,被提供作为服务的负载平衡可以允许负载平衡规则集在第三方 VM上运行并且可以支持任意规则集,包括那些来自其他供应商的规则集。VM可以被第三方 控制,并且可以使用SDK以影响穿过多个网络元件的流。因为只有与第三方相关的流被转 移至第三方的负载平衡服务,多个第三方可以参与提供针对它们各自流的各自的规则,从 而提供了硬件上的网络流的多租户控制。
[0041] 图6为根据本公开中所提及的一个实施例,示出了扩展来自外部服务的路由规则 的网络系统600的组件的框图。网络系统600包括一个或多个网络组件102,以及经由软件 定义网络106被通信连接的一个或多个计算机。每一个网络元件102和计算机104 -般包 括处理器604,该处理器经由总线612被操作连接至存储器606、网络接口设备610、存储器 608。其它组件,比如计算机104的输入设备614和输出设备616可以被连接。
[0042] 通常,每一个网络元件102和计算机104受到操作系统的控制。操作系统的示例 包括LINIX^It作系统、分布式〇1111#操作系统、以及由加利福利亚圣何塞的思科系统@ 开发的NX-0S操作系统。更普遍地,可以使用支持本文所公开的功能的任何操作系统。至 少在一些实施例中,网络元件102的操作系统1081不同于计算机104的操作系统1082。
[0043] 所包括的每一个处理器604的代表为单个CPU、多CPU、具有多个处理核心的单个 CPU等。类似地,每一个存储器606可以为随机访问存储器。尽管每一个存储器606被示出 为单个实体,但是应当理解,每一个存储器606可以包括多个模块,并且每一个存储器606 可以存在于多个层次,从高速寄存器和缓存,到低速但是更大容量的DRAM芯片。每一个网 络接口设备610可以为允许网络元件102或计算机604经由软件定义网络106与其它节点 通信的任何类型的网络通信设备。
[0044] 每一个存储设备608可以为永久存储设备。尽管每一个存储器608被示出为单个 单元,但是每一个存储器608可以为固定和/或可移除存储设备的组合,比如固定盘驱动 器、固态驱动器、软盘驱动器、磁带驱动器、可移除存储器卡或光存储器。此外,存储器606 和存储设备608可以为跨主存储设备和辅存储设备的一个虚拟地址空间的一部分。
[0045] 输入设备614可以为用于向计算机604提供输入的任何设备。例如,键盘和/或 鼠标可以被使用。输出设备616可以为用于向计算机604的用户提供输出的任何设备。例 如,输出设备616可以为任何显示屏幕或一组扬声器。尽管输出设备616被示出为独立于 输入设备614,但是输出设备616和输入设备614可以被组合。例如,可以使用具有集成的 触摸
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1