第三方控制的数据包转发路径的网络装置数据平面沙盒制造方法及图纸

技术编号:24763505 阅读:42 留言:0更新日期:2020-07-04 10:58
本申请公开了第三方控制的数据包转发路径的网络装置数据平面沙盒。在一些实例中,网络装置包括第一应用程序和第二应用程序;转发单元,其包括用于接收数据包的接口卡;数据包处理器;转发单元的内部转发路径;转发单元处理器;第一接口;以及第二接口。所述第一应用程序被配置成通过所述第一接口将所述内部转发路径配置成包括沙盒,沙盒包括用于在所述内部转发路径内内联配置的指令的容器。所述第二应用程序被配置成通过所述第二接口为沙盒配置有确定在所述沙盒内处理数据包的第二指令。数据包处理器被配置成响应于确定由所述转发单元接收的数据包与至少部分由第二应用程序控制的数据包流相关联,通过执行为沙盒配置的第二指令,来处理数据包。

Data plane sandbox of network device with packet forwarding path controlled by the third party

【技术实现步骤摘要】
第三方控制的数据包转发路径的网络装置数据平面沙盒本申请是申请号为201610991565.X、申请日为2016年11月10日、专利技术名称为“第三方控制的数据包转发路径的网络装置数据平面沙盒”的专利申请的分案申请。
本公开涉及基于数据包的计算机网络,并且更具体而言,涉及在计算机网络装置内处理数据包。
技术介绍
计算机网络是可以交换数据和分享资源的大量互连的计算装置的集合。实例网络装置包括在开放系统互连(OSI)参考模型的第二层(即,数据链路层)内操作的层2装置以及在OSI参考模型的第三层(即,网络层)内操作的层3装置。计算机网络内的网络装置通常包括控制单元,其为网络装置和用于路由或切换数据单元的转发元件提供控制平面功能。在一些情况下,例如,网络装置可以包括多个数据包处理器和交换结构,其共同提供转发平面,用于转发网络流量。由控制单元提供的控制平面功能包括以路由信息库(RIB)的形式储存网络拓扑,执行路由协议以与对等路由装置通信从而保持和更新RIB,并且提供管理接口以允许网络装置的用户访问和配置。控制单元保持表示网络的总体拓扑的路由信息并且限定在网络内到目的地前缀的路由。控制单元获得转发信息库(FIB),其包括由控制单元根据路由信息和控制信息生成的多个转发结构。控制单元在数据平面内安装转发结构,以可编程地配置转发元件。构成转发结构的数据和指令为网络装置接收的每个进入数据包限定内部转发路径。例如,为了生成路由表查找转发结构,控制单元选择由网络拓扑限定的路径并且将数据包关键信息(例如,目的地信息和来自数据包报头的其他选择信息)映射到一个或多个特定的下一跳网络装置并且最后映射到网络装置的接口卡的一个或多个特定的输出接口。在某些情况下,控制单元可以将转发结构安装到每个数据包处理器内,以在每个数据包处理器内更新FIB并且在数据平面内控制流量转发。分支控制和数据平面功能允许更新数据平面内的一个或多个FIB,而不使网络装置的数据包转发性能退化。
技术实现思路
总体上,本公开描述了用于促进受约束的第三方访问网络装置数据平面的内部数据包转发路径的技术。例如,网络装置转发路径可以配置有一个或多个“沙盒”,每个沙盒在总体转发路径内分界独立的、并行的以及异步转发路径逻辑。虽然总体转发路径由本地应用程序和处理来管理和配置,本地应用程序和处理在网络装置控制平面内执行并且由网络装置制造商开发以管理网络装置的操作,但是本地应用程序可以在总体转发路径内配置一个或多个沙盒。将在沙盒内的转发路径逻辑的配置委托给第三方开发的一个或多个应用程序(“第三方应用程序”),所述第三方应用程序由网络装置制造商开发并且网络装置制造商很少或者不控制所述第三方应用程序。一旦在网络装置的数据平面的数据包处理器(例如,转发集成电路)内配置,沙盒就可以通过这种方式向第三方应用程序呈现在数据包处理器内的独立的、隔离的、虚拟数据包处理器,使得第三方应用程序在沙盒的确定范围内完全控制由转发逻辑执行的操作。为了执行隔离,沙盒可以由本地应用程序配置有定义明确的输入和输出接口,通过所述接口,数据包分别进入和离开网络装置的数据包处理器的总体转发路径。在一些实例中,响应于从控制平面应用程序中接收指令而配置转发路径的数据包处理器驱动器向应用程序暴露单独的接口:为转发路径提供全套数据包处理操作的本地接口以及为转发路径提供更少的一组数据包处理操作的沙盒接口。本地接口允许网络装置的本地应用程序使用数据包处理器可用的任何数据包处理操作来配置总体转发路径,包括配置一个或多个沙盒。沙盒接口使第三方应用程序能够为沙盒配置从更少的一组数据包处理操作中提取的数据包处理操作。由沙盒接口通过这种方式提供的更少的一组数据包处理操作约束了允许应用于由沙盒处理的数据包流的操作的类型,但是促进由第三方应用程序完全控制沙盒。所描述的技术可以提供一个或多个优点。例如,在总体转发路径内隔离沙盒可以保护沙盒转发逻辑远离剩余的转发路径转发逻辑,反之亦然。进一步,使沙盒的控制与本地应用程序分离,减少并且至少在某些情况下消除了在转发逻辑中于沙盒与剩余的转发路径之间的配置依赖性,使得沙盒和剩余的转发路径可以作为并行异步的部件被配置和执行。而且,在某些情况下,由沙盒接口提供的更少的一组数据包处理操作可以约束在沙盒内可执行的操作的类型,以尤其防止沙盒转发逻辑从沙盒中“跳出”,并且由此限制数据包处理操作离开由本地应用程序配置的定义明确的出口端口。更少的一组数据包处理操作通过这种方式进一步促进沙盒隔离。作为另一个实例优点,通过例如根据由网络装置运营商规定的配置为沙盒配置指定的资源限制,本地应用程序可以约束可用于沙盒的资源量。这可以防止第三方应用程序因错误配置、软件问题或对网络装置或第三方应用程序/控制器的恶意攻击而耗尽转发路径资源。在一个实例中,一种方法包括:由网络装置的控制平面执行的第一应用程序经由由网络装置的转发单元执行的第一接口为所述转发单元的内部转发路径配置确定处理由所述转发单元接收的数据包的第一指令,其中,所述第一应用程序将所述内部转发路径配置成包括沙盒,所述沙盒包括用于在所述内部转发路径内内联配置的指令的容器,并且其中,所述内部转发路径的至少一部分储存到所述转发单元的存储器中并且由所述转发单元的数据包处理器可执行。所述方法还包括:由网络装置的控制平面执行的第二应用程序经由由网络装置的转发单元执行的第二接口为所述沙盒配置确定在所述沙盒内处理数据包的第二指令。所述方法还包括:响应于确定由所述转发单元接收的数据包与至少部分由第二应用程序控制的数据包流相关联,由所述数据包处理器通过执行为所述沙盒配置的第二指令,来处理所述数据包。在另一个实例中,一种网络装置包括:控制平面,其被配置成执行第一应用程序和第二应用程序;以及转发单元,包括:接口卡,其被配置成接收数据包;数据包处理器,其可操作地耦接至存储器;内部转发路径,其中,所述内部转发路径的至少一部分储存到所述存储器中并且由数据包处理器可执行;转发单元处理器;以及第一接口和第二接口,其被配置成由所述转发单元处理器执行,其中,所述第一应用程序被配置成通过所述第一接口将所述内部转发路径配置成包括沙盒,所述沙盒包括用于在所述内部转发路径内内联配置的指令的容器,其中,所述第二应用程序被配置成通过所述第二接口为所述沙盒配置有确定在所述沙盒内处理数据包的第二指令,并且其中,所述数据包处理器被配置成响应于确定由所述转发单元接收的数据包与至少部分由第二应用程序控制的数据包流相关联,通过执行为所述沙盒配置的第二指令,来处理所述数据包。在另一个实例中,一种永久性计算机可读介质包括指令,所述指令用于促使网络装置的一个或多个可编程处理器执行以下:通过被配置成由网络装置的控制平面执行的第一应用程序经由被配置成由网络装置的转发单元执行的第一接口为所述转发单元的内部转发路径配置有确定处理由所述转发单元接收的数据包的第一指令,其中,所述第一应用程序将所述内部转发路径配置成包括沙盒,所述沙盒包括用于在所述内部转发路径内内联配置的指令的容器,并且其中,所述内部转发路径的至少一本文档来自技高网
...

【技术保护点】
1.一种方法,包括:/n通过由网络装置的控制平面执行的第一应用程序经由通过所述网络装置的转发单元执行的第一接口,为所述转发单元的内部转发路径配置沙盒,所述沙盒包括用于所述内部转发路径内内联配置的指令的容器,并且/n其中,所述内部转发路径的至少一部分储存到所述转发单元的存储器中并且能够由所述转发单元的数据包处理器执行;/n由所述第一应用程序为所述沙盒配置插口;/n通过由所述网络装置的所述控制平面执行的第二应用程序经由所述网络装置的所述转发单元执行的第二接口,为所述沙盒配置用于所述沙盒的指令;以及/n由所述数据包处理器使用用于所述沙盒的指令来处理由所述转发单元接收的数据包,以使得所述转发单元通过所述插口将所述数据包发送给所述第二应用程序。/n

【技术特征摘要】
20151117 US 14/944,1131.一种方法,包括:
通过由网络装置的控制平面执行的第一应用程序经由通过所述网络装置的转发单元执行的第一接口,为所述转发单元的内部转发路径配置沙盒,所述沙盒包括用于所述内部转发路径内内联配置的指令的容器,并且
其中,所述内部转发路径的至少一部分储存到所述转发单元的存储器中并且能够由所述转发单元的数据包处理器执行;
由所述第一应用程序为所述沙盒配置插口;
通过由所述网络装置的所述控制平面执行的第二应用程序经由所述网络装置的所述转发单元执行的第二接口,为所述沙盒配置用于所述沙盒的指令;以及
由所述数据包处理器使用用于所述沙盒的指令来处理由所述转发单元接收的数据包,以使得所述转发单元通过所述插口将所述数据包发送给所述第二应用程序。


2.根据权利要求1所述的方法,进一步包括:
由所述第二应用程序处理所述数据包以获得处理数据包:以及由所述第二应用程序通过所述插口,将所述处理数据包发送至所述转发单元。


3.根据权利要求1所述的方法,其中,所述数据包包括第一数据包,所述方法进一步包括:
由所述数据包处理器经由所述插口从所述第二应用程序接收第二数据包;以及
由所述数据包处理器使用用于所述沙盒的指令来处理所述第二数据包。


4.根据权利要求1所述的方法,其中,所述插口包括网络插口。


5.根据权利要求1所述的方法,
其中,用于所述沙盒的指令包括匹配和接收指令:并且
其中,使用用于所述沙盒的指令来处理由所述转发单元接收的所述数据包包括:
由所述数据包处理器确定所述数据包与所述匹配和接收指令匹配:以及
响应于所述确定,由所述转发单元经由所述插口将所述数据包发送给所述第二应用程序。


6.根据权利要求1所述的方法,进一步包括:
由所述转发单元的所述第二接口经由所述插口将所述数据包发送给所述第二应用程序。


7.根据权利要求1所述的方法,进一步包括:
由所述转发单元的转发单元处理器执行所述第二接口和所述插口。


8.根据权利要求1所述的方法,其中,所述第二应用程序向所述数据包应用至少一个服务链的服务。


9.根据权利要求1所述的方法,其中,所述转发单元包括能够插入所述网络装置的底盘内的线卡。


10.根据权利要求1所述的方法,其中,为所述内部转发路径配置所述沙盒包括:由所述第一应用程序为所述沙盒配置入口端口,所述入口端口限定所述内部转发路径的至少一个指令进入所述沙盒所经由的虚拟端口。


11.根据权利要求10所述的方法,进一步包括:
由所述第一应用程序将所述内部转发路径配置成将所述转发单元的逻辑入站接口映射到所述沙盒的所述入口端口,
其中,使用用于所述沙盒的指令处理由所述转发单元接收的所述数据包包括:响应于确定所述转发单元在所述逻辑入站接口处接收所述数据包,由所述数据包处理器使用用于所述沙盒的指令处理所述数据包。


12.根据权利要求10所述的方法,
其中,所述入口端口包括包含基准的间接下一跳,
其中,配置所述入口端口包括由所述第一接口将所述间接下一跳存储到所述存储器中,
其中,为所述沙盒配置用于所述沙盒的指令包括:由所述第二接口将所述间接下一跳的基准配置成参考在所述沙盒内配置的转发路径部...

【专利技术属性】
技术研发人员:斯科特·麦凯安杰伊·希什科尼廷·库马尔蒂莫西·L·帕特里克苏里亚·钱德拉·谢卡尔·尼麦咖达
申请(专利权)人:丛林网络公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1