用于承载操作和叠加操作的双向加密/解密设备的制作方法
未命名
07-12
阅读:70
评论:0

1.至少一个实施例涉及用于执行和促进网络通信的处理资源。例如,至少一个实施例涉及用于承载(underlay)操作和叠加(overlay)操作的双向加密/解密技术。
背景技术:
2.网络设备(例如,交换机、路由器、集线器、端点、网络接口卡(nic)、数据处理单元(dpu)等)可以具有加密/解密功能(例如,媒体访问控制安全性(macsec)或互联网协议安全性(ipsec)),以从网络堆栈的相关层开始加密/解密,例如第2层(l2)或第3层(l3)。当设备通过光缆点对点连接时,或者当中间有用于l2加密的交换机以及中间有用于l3加密的路由器时,可以使用这些加密/解密功能作为示例。
3.叠加联网(overlay networking)可用于创建网络抽象层,这些网络抽象层可用于在物理网络之上运行多个独立的、离散的虚拟化网络层。叠加联网使用叠加封装协议。叠加封装协议可以创建覆盖在现有物理网络基础设施之上的虚拟网络。它使用承载ip网络,并在其上构建灵活的第2层叠加逻辑网络。通过叠加,任何在第2层上运行的连接都可以跨越第3层网络。
4.将加密/解密功能与叠加网络技术一起使用可能会带来一些挑战。例如,支持macsec/ipsec的设备不能支持以下情况:需要携带叠加流量,同时假定承载设备应该能够使用l3路由来本地路由流量,包括在需要时读取l4报头。
附图说明
5.将参考附图描述根据本公开的各种实施例,其中:
6.图1a示出了根据至少一些实施例的示例通信系统。
7.图1b是根据至少一些实施例的网络设备的框图。
8.图2a是根据至少一些实施例的可编程路径选择电路以第一模式操作的网络设备的框图。
9.图2b是根据至少一些实施例的可编程路径选择电路以第二模式操作的网络设备的框图。
10.图3a是根据至少一些实施例的路径在第一模式下通过加密电路和解密电路的网络设备的框图。
11.图3b是根据至少一些实施例的路径在使用可编程复用器的第二模式中去往加密电路和解密电路的网络设备的框图。
12.图4是根据至少一些实施例的网络设备的框图。
13.图5是根据至少一些实施例的用于路由要在网络设备中加密和封装的传入分组的方法的流程图。
14.图6是根据至少一些实施例的用于在第一模式或第二模式下操作网络设备以在网络设备中路由传入分组的方法的流程图。
15.图7示出了根据至少一些实施例的包括可编程路径选择电路的示例计算机系统。
具体实施方式
16.描述了用于承载操作和叠加操作的双向加密和解密技术。媒体访问控制安全(macsec)功能(例如,以电路、集成芯片(ic)和设备的形式)已添加到许多网络设备(或电路),以便在不同类型的网络中提供端到端网络安全。例如,macsec是一种网络安全标准,在媒体访问控制层运行,并为媒体访问无关协议定义数据机密性和完整性。因此,macsec可以在以太网链路(本文通常称为网络链路)上提供点对点安全,并由电气和电子工程师协会(ieee)标准802.11ae定义。此外,macsec可以与其他安全协议(如互联网协议安全(ipsec)和安全套接字层(ssl))结合使用,以提供该端到端的网络安全。
17.macsec可以识别和防止大多数安全威胁,包括拒绝服务、入侵、中间人、伪装、被动窃听和回放攻击。为此,macsec为几乎所有流量保护以太网链路,包括来自链路层发现协议(lldp)、链路聚合控制协议(lacp)、动态主机配置协议(dhcp)、地址解析协议(arp)以及由于其他安全解决方案的限制而通常在以太网链路上不受保护的其他协议的帧。因此,macsec电路预计将随着物联网(iot)和其他启用网络的设备的扩展而增长。macsec的主要使用案例之一是保护具有多台机器的局域网(lan),特别是保护第二层lan网络上的以太网流量。为了在交换机和连接的端点(例如pc客户端、iot设备等)之间实现macsec功能,设备可以使用称为macsec密钥协议(ieee 802.1x-2010)的标准化协商协议。
18.虽然macsec电路可以集成在网络设备内(例如,耦合到网络设备内的网络电路),但保持macsec电路与网络设备分离是有好处的。例如,macsec电路是专门化的,可以作为ic或macec设备单独高效地制造,并且一些传统网络设备可能还没有包括macsec电路。在这些实施例中,macsec电路或设备(以下统称为“设备”)可以耦合在网络设备和网络连接源或其他网络设备之间。因此,每个macsec设备都为macsec设备所耦合的网络设备提供端到端安全性,并且网络设备无需重新设计或重新制造以包括macsec电路。
19.如上所述,将加密/解密功能与叠加网络技术一起使用可能会带来一些挑战。例如,支持macsec/ipsec的设备不能支持需要携带叠加流量的情况,同时假定承载设备应该能够使用l3路由来本地路由流量,包括在需要时读取l4报头。
20.本公开的方面和实施例通过为承载操作和叠加操作提供双向加密/解密来解决这些和其他挑战。本公开的方面和实施例可以提供用于不同操作模式的可编程路径选择电路。网络设备可以在两种模式下操作,并且实现本地网络和叠加网络的标准密码操作,同时具有使用可编程路径选择电路在两种模式下操作的灵活性。可编程路径选择电路耦合到安全ic(例如macsec设备或ipsec ic设备)。可编程路径选择电路可以改变密码设备内或密码设备外的连通性,以提供更大的灵活性。可编程路径选择电路使密码设备的两侧能够进行加密或解密,从而允许在网络处理元件处理之前对清晰的传入数据进行加密。
21.图1a示出了根据至少一个示例实施例的示例通信系统100。系统100包括设备110、包括通信信道109的通信网络108和设备112。在至少一个示例实施例中,设备110和112与个人计算机(pc)、笔记本电脑、平板电脑、智能手机、服务器、服务器集合等中的一个或更多个相对应。在一些实施例中,设备110和112可以与和连接到公共类型的通信网络108的其他设备通信的任何适当类型的设备相对应。根据实施例,设备110或112的接收器104可与图形处
理单元(gpu)、交换机(例如,高速网络交换机)、网络适配器、中央处理单元(cpu)等相对应。作为另一特定但非限制性示例,设备110和112可以与向系统100中的用户设备、客户端设备或其他主机提供信息资源、服务和/或应用程序的服务器相对应。
22.可用于连接设备110和112的通信网络108的示例包括互联网协议(ip)网络、以太网网络、infiniband(ib)网络、光纤通道网络、因特网、蜂窝通信网络、无线通信网络、其组合(例如,以太网上的光纤通道)、其变体等。在一个特定但非限制性的示例中,通信网络108是能够使用数据信号(例如,数字信号、光学信号、无线信号)在设备110和112之间进行数据传输的网络。
23.设备110包括收发器116,用于发送和接收信号,例如数据信号。数据信号可以是用数据调制的数字或光学信号,或者是用于携带数据的其他合适的信号。
24.收发器116可包括数字数据源120、发射器102、接收器104和控制收发器114的处理电路132。数字数据源120可以包括用于以数字格式(例如二进制代码和/或温度计代码)输出数据的适当硬件和/或软件。数字数据源120输出的数字数据可以从存储器(未示出)检索或根据输入(例如用户输入)生成。
25.发射器102包括适当的软件和/或硬件,用于从数字数据源120接收数字数据,并根据数字数据输出数据信号,以便通过通信网络108传输到设备112的接收器104。下面参考附图更详细地讨论发射器102的结构的其他细节。
26.设备110(和设备112)的接收器104可包括用于接收信号的适当硬件和/或软件,例如,来自通信网络108的数据信号。例如,接收器104可包含用于接收处理信号以提取数据以存储在存储器中的组件。
27.处理电路132可包括软件、硬件或其组合。例如,处理电路132可包括包括可执行指令的存储器和执行存储器上的指令的处理器(例如,微处理器)。存储器可以对应于被配置为存储指令的任何适当类型的存储器设备或存储器设备集合。可使用的合适存储器设备的非限制性示例包括闪存、随机存取存储器(ram)、只读存储器(rom)、其变体、其组合等。在一些实施例中,存储器和处理器可集成到公共设备中(例如,微处理器可包括集成存储器)。
28.处理电路132可向收发器116的其他元件发送和/或从收发器116的其他元件接收信号,以控制收发器114的整体操作。另外或可选地,处理电路132可包括硬件,例如专用集成电路(asic)。处理电路132的其他非限制性示例包括集成电路(ic)芯片、中央处理单元(cpu)、通用处理单元(gpu)、微处理器、现场可编程门阵列(fpga)、逻辑门或晶体管、电阻器、电容器、电感器、二极管等的集合。处理电路132中的一些或全部可以设置在印刷电路板(pcb)或pcb集合上。应当理解,任何适当类型的电组件或电组件集合可以适合于包括在处理电路132中。
29.收发器116或收发器114的选定元件可以采用设备110的可插拔卡或控制器的形式。例如,收发器118或收发器116的选定元件可以在网络接口卡(nic)上实现。
30.设备112可包括收发器136,用于通过通信网络108的信道109发送和接收信号,例如,数据信号。收发器116的相同或类似结构可应用于收发器134,因此,不单独描述收发器138的结构。
31.尽管未明确示出,但应理解的是,设备110和112以及收发器116和136可包括其他处理设备、存储设备和/或通常与计算任务相关联的通信接口,例如发送和接收数据。
32.在至少一个实施例中,设备110和112各自包括macsec设备。通信可以在设备110和112之间的两个方向上流动,其中第一macsec设备是用于保护设备110和设备112之间的通信的中间网络设备。通信网络108还可以包括macsec设备之间的网络链路(无论是有线的还是无线的),在一些实施例中可以在相对大的距离上。网络链路通常可以用双绞线电缆或光纤电缆实现。
33.设备110是网络设备,例如交换机,其包括多个端口和网络处理元件(例如,处理电路132)。如本文所述,设备110可在两种模式下操作,并可实现原生(native)网络和叠加网络的标准密码操作,同时具有使用耦合到安全ic 142(例如,macsec设备或ipsec ic设备)的可编程路径选择电路140在两种模式下操作的灵活性。可编程路径选择电路140可以改变密码设备内或密码设备外的连通性,以提供更大的灵活性。可编程路径选择电路140使得密码设备的两侧能够进行加密或解密,从而允许在网络处理元件处理之前对清晰的传入数据进行加密。下面参照图1b描述可编程路径选择电路140和安全ic 142的附加细节。
34.图1b是根据至少一些实施例的网络设备150的框图。网络设备150包括多个端口152、网络处理元件154,例如交换机asic(类似于上述处理电路132)、可编程路径选择电路140和安全ic 142(例如,macsec设备或ipsec ic设备)。在至少一个实施例中,可编程路径选择电路140被配置为在第一模式或第二模式下操作。在第一模式中,可编程路径选择电路140将第一传出分组路由到安全ic 142以在多个端口152中的一个端口上发送之前进行加密。此外,在第一模式中,可编程路径选择电路140将在多个端口152之一上接收的第一传入分组路由到安全ic 142以进行解密。在第二模式中,可编程路径选择电路140将第二传入分组路由到安全ic142,以便在网络处理元件154处理之前进行加密。
35.在另一个实施例中,在第二模式中,可编程路径选择电路140将第二传出分组路由到安全ic 142,然后由网络处理元件154后进行解密。
36.在另一个实施例中,在第一模式中,可编程路径选择电路140将第一传出分组路由到安全ic 142以获得加密分组。可编程路径选择电路140在多个端口152中的第一端口上发送加密分组。在至少一个实施例中,第一端口是受保护端口。在另一个实施方式中,在第一模式中,可编程路径选择电路140在多个端口152中的第二端口上接收第一传入分组。在至少一种实施例中,第二端口是受保护端口。可编程路径选择电路140将第一传入分组路由到安全ic 142以获得解密分组,并将解密分组路由到网络处理元件154。
37.在至少一个实施例中,在第二模式中,可编程路径选择电路140在多个端口152中的第一端口上接收第一传入分组,并将第一传出分组路由到安全ic 142以获得加密分组。可编程路径选择电路140将加密分组路由到网络处理元件154以获得封装分组。封装分组在多个端口152中的第二端口上发送。第二端口可以是受保护的端口。
38.在至少一个实施例中,在第二模式中,可编程路径选择电路140将第一传出分组路由到安全ic 142,以获得解密分组,并在多个端口152中的第二端口上发送解密分组。在至少一个实施例中,第二端口是非受保护端口。
39.如上所述,可编程路径选择电路140可耦合到安全ic 142,并以两种模式(如图2a-2b的示例路径中所示和所描述)提供到安全ic 140的路由。
40.图2a是根据至少一些实施例的可编程路径选择电路140以第一模式操作的网络设备200的框图。网络设备200包括一组端口202、一组安全ic 242(也称为密码电路)和网络处
理元件204。在第一模式下操作期间,网络设备200在第一端口202(1)上接收第一传入分组201。在一个实施例中,第一传入分组201包括macsec加密分组。可编程路径选择电路140将第一传入分组201路由到第一安全ic 242(1)以进行解密。在第一安全ic 242(1)解密第一传入分组201之后,可编程路径选择电路140将解密分组203路由到网络处理元件204。解密分组204可以是清晰的vxlan分组。或者,解密分组230可以不被封装。网络处理元件204可以处理vxlan分组。例如,网络处理元件204可以确定将分组路由到何处,是封装分组还是解封装分组,等等。网络处理元件204可以将传出分组205发送到第二端口202(2)。在至少一个实施例中,可编程路径选择电路140可将传出分组205路由到第二安全ic 242(3),以在经由第二端口202(2)发送之前进行加密作为加密分组207。加密分组207在第二端口202(2)上被发送出去。在至少一个实施例中,第一端口202(1)和第二端口202(2)是受保护端口。在另一个实施例中,第一端口202(1)是受保护端口,第二端口202(2)不是受保护端口,并且传出分组不被加密。
41.图2b是根据至少一些实施例的可编程路径选择电路140以第二模式操作的网络设备200的框图。
42.在第二模式下操作期间,网络设备200在第一端口202(1)上接收第一传入分组251。在一个实施例中,第一传入分组251包括叠加macsec加密分组。可编程路径选择电路140将第一传入分组251路由到网络处理元件204以进行处理(例如解封装),而不是由第一安全ic 242(1)进行解密。这可能需要进行,以便使安全ic 242(2)能够解密分组。网络处理元件204可以处理第一传入分组251中的叠加信息以获得传出分组253。应当注意,网络处理元件204可以处理承载并且仅处理来自叠加信息的mac报头。这是因为在这种情况下,叠加报头的其余部分仍然是加密的。传出分组253可以包括macsec加密分组。可编程路径选择电路140可将传出分组253路由到第二安全ic 242(2)以进行解密,以在经由第二端口202(2)发送之前获得解密分组255。解密分组255在第二端口202(2)上被发送出去。在至少一个实施例中,第一端口202(1)是受保护端口,第二端口202(2)是非受保护端口。
43.在另一个实施例中,网络设备200可在非受保护端口上接收传入分组。可编程路径选择电路140可将传入分组路由到安全ic,以便在由网络处理元件204处理之前进行加密。网络处理元件204可以向分组添加叠加或承载信息,并将传出分组作为叠加加密分组发送,其中另一个接收设备可以在解密分组之前处理叠加信息,如上文关于图2b所述。如上所述,网络处理元件204可以处理承载和叠加的未加密的部分。
44.可编程路径选择电路140可用于允许网络处理元件204处理分组中的叠加或承载信息。可编程路径选择电路140基于模式(如图3a-3b所示)在任一方向上将传入分组和传出分组路由到密码电路方面提供灵活性。
45.图3a是根据至少一些实施例的具有在第一模式下通过加密电路和解密电路的路径的网络设备300的框图。网络设备300包括第一端口302、第二端口304、加密电路306和解密电路308。可编程路径选择电路140提供在第一模式下在第一端口302和第二端口304之间的、通过加密电路306和解密电路308的路径。在第一模式中,第二端口304接收第一分组,可编程路径选择电路140将第一分组路由到加密电路306以进行加密,并将加密分组路由到第一端口302。可编程路径选择电路140在第二端口304和第一端口302之间的、通过加密电路306的第一路径301中路由第一分组。在第一模式中,第一端口302接收第二分组,可编程路
径选择电路140将第二分组路由到解密电路308以进行解密。可编程路径选择电路140将解密分组路由到第二端口304。可编程路径选择电路140在第一端口302和第二端口304之间的、通过解密电路308的第二路径303中路由第二分组。为了简单起见,图3a未示出处理传入分组和传出分组的网络处理元件。
46.图3b是根据至少一些实施例的在使用可编程复用器的第二模式中具有到加密电路和解密电路的路径的网络设备300的框图。可编程路径选择电路140在第二模式中提供第一端口302和第二端口304之间的且通过加密电路306和解密电路308的路径。在第二模式中,第二端口304接收第一分组,可编程路径选择电路140使用可编程复用器310将第一分组路由到加密电路306或解密电路308,并使用可编程复用器310将加密或解密分组路由到第一端口302。可编程路径选择电路140在第二端口304和第一端口302之间的通过加密电路306或解密电路308的第一路径351中路由第一分组。在第二模式中,第一端口302接收第二分组,可编程路径选择电路140使用可编程复用器310将第二分组路由到加密电路306或解密电路308,并使用可编程复用器310将加密或解密分组路由到第二端口304。可编程路径选择电路140在第一端口302和第二端口304之间的通过加密电路306或解密电路308的第二路径303中路由第二分组。为了简单起见,图3b未示出处理传入分组和传出分组的网络处理元件。
47.在至少一个实施例中,在第一模式中,使用可编程复用器310的可编程路径选择电路140可以将第一传出分组路由到密码电路,例如安全ic(例如,macsec设备或ipsec设备),以获得加密分组并在传出受保护端口上发送加密分组。使用可编程复用器310的可编程路径选择电路140可以在传入受保护端口上接收第一传入分组,将第一传入分组路由到安全ic以获得解密分组,并将解密分组路由到网络处理元件。
48.在至少一个实施例中,在第二模式中,使用可编程复用器310的可编程路径选择电路140可以在传入端口上接收第一传入分组。为了获得加密分组,可编程复用器310将第一传入分组路由到密码电路,例如安全ic(例如,macsec设备或ipsec设备)。可编程复用器310将加密分组路由到网络处理元件以获得封装分组。除了包括加密分组之外,封装包还可以包括叠加信息。可编程复用器310在传出受保护端口上路由封装分组。在另一个实施例中,在第二模式中,可编程路径选择电路140可将第一传出分组路由到安全集成电路,以获得解密分组并在传出端口上发送解密分组。
49.在至少一个实施例中,操作者可以选择分组应采取哪些路径351和353到达加密电路306和解密电路308。对于第二模式,来自“未受保护”端口的传入分组可以路由到加密电路306,而来自受保护端口的传入分组可以在路由到或不路由到加密回路306或解密回路308的情况下被路由出。到“未受保护”端口的传出分组可以路由到解密电路308,而来自受保护端口的传出分组可以在路由到或不路由到加密电路306或解密电路308的情况下被路由出。
50.图4是根据至少一些实施例的具有路径选择电路140的网络设备400的框图。在至少一些实施例中,网络设备400包括输入接口404、macsec电路412、网络处理元件426和输出接口413。输入接口404可以耦合到传入网络链路401,网络设备400通过传入网络链路401接收网络分组。输入接口404进一步耦合到路径选择电路140。路径选择电路140可耦合到至少两个不同路径,路径选择电路140可将传入数据分组405路由到所述至少两个不同路径到
macsec电路412、网络处理元件426或两者。一旦分组被处理,路径选择电路140可以将传出数据分组407发送到输出接口413,例如,通过传出网络链路421发送到目的网络设备。
51.更具体地说,在至少一些实施例中,路径选择电路140耦合在输入接口404和输出接口413之间,以根据网络设备400的模式,在网络处理元件426处理之前或之后将传入数据分组405路由到macsec电路412。
52.在至少一个实施例中,macsec电路412可以对传入数据分组405或传出数据分组407执行认证、完整性检查和可选的加密或解密,如本文所述。在至少一些实施例中,macsec电路412包括macsec加密器414、macsec解密器418、一组计数器422和重放保护器424,所有这些都可以是硬件。在一个实施例中,macsec加密器414和macsec解密器418被组合成单个加密/解密引擎。macsec加密器414和macsec解密器418可用于生成用于完整性检查的标签,并且重放保护器424可添加到安全标签以提供重放保护。macsec加密器414可以可选地在向输出接口413发送安全分组之前或者在向网络处理元件426发送安全分组之后加密分组,如本文所述。如果分组已经被加密,则macsec解密器418可以在将未加密分组发送到输出接口413之前或在将安全分组发送到网络处理元件426之前解密安全分组以生成未加密分组,如本文所述。如前所述,加密或解密是可选的。因此,macsec电路412可以加密或解密分组,以提供分组的在第一网络电路和第二网络电路之间的点对点加密。macsec电路412可以包括附加组件和功能,但出于解释的目的以简化的形式示出。
53.在至少一个实施例中,网络处理元件426可以执行分组的封装。在至少一些实施例中,网络处理元件426包括封装器428和解封装器430,两者都可以是硬件。
54.在一个实施例中,封装器428和解封装器430被组合成单个封装引擎。封装器428和解封装器430可用于将分组与叠加或承载信息一起封装,或从分组中提取叠加或承载信息。如本文所述,封装器428可以在向输出接口413发送安全分组之前选择性地封装分组。
55.图5是根据至少一些实施例的用于路由要在网络设备中加密和封装的传入分组的方法500的流程图。方法500可通过包括硬件、软件、固件或其任何组合的处理逻辑来执行。在至少一个实施例中,方法500由图1的设备110或设备112或图1b的网络设备150中的任何一个执行。在至少一个实施例中,方法500由图2的网络设备200、图3的网络设备300和图4的网络设备400中的任何一个执行。
56.考图5,方法500开始于处理逻辑在网络设备的第一端口处接收传入分组(框502)。处理逻辑将传入分组路由到加密电路以加密为加密分组(框504)。处理逻辑将加密分组路由到网络处理元件,以被封装为封装分组(框506)。处理逻辑将封装分组路由到网络设备的第二端口(框508)。
57.在另一个实施例中,处理逻辑从网络处理元件接收传出分组。处理逻辑将传出分组路由到解密电路,以解密为解密分组。处理逻辑将解密分组路由到第二端口。
58.在另一个实施例中,处理逻辑在第一端口处接收第二传入分组。处理逻辑将第二传入分组路由到解密电路,以解密为第二解密分组。处理逻辑将第二解密分组路由到网络处理元件。
59.在另一个实施例中,处理逻辑从网络处理元件接收第二传出分组。处理逻辑将第二传出分组路由到加密电路,以加密为第二加密分组。处理逻辑将第二加密分组路由到第二端口。
60.在另一个实施例中,处理逻辑在网络设备的第三端口处接收第二传入分组。在至少一个实施例中,所述第三端口是受保护端口。所述处理逻辑将第二传入分组路由到网络处理元件,以封装为第二封装分组。处理逻辑将第二封装分组路由到网络设备的第四端口。在至少一个实施例中,第四端口是受保护端口。
61.图6是根据至少一些实施例的用于在第一模式或第二模式下操作网络设备以在网络设备中路由传入分组的方法600的流程图。方法600可通过包括硬件、软件、固件或其任何组合的处理逻辑来执行。在至少一个实施例中,方法600由图1的设备110或设备112或图1b的网络设备150中的任何一个执行。在至少一个实施例中,方法600由图2的网络设备200、图3的网络设备300和图4的网络设备400中的任何一个执行。
62.参考图6,方法600开始于处理逻辑在网络设备的第一端口接收传入分组(框602)。处理逻辑确定网络设备是否在第一模式下操作(框603)。如果处理逻辑在框603确定网络设备在第一模式下操作,则处理逻辑将传入分组路由到解密电路,以解密为解密分组(框614)。处理逻辑将解密分组路由到网络处理元件进行处理(框616)。网络处理元件可以处理包含在分组中的叠加信息或承载信息。处理逻辑将解密分组路由到网络设备的第二端口(框618)。
63.如果处理逻辑在框603处确定网络设备未在第一模式下操作,则处理逻辑将传入分组路由到加密电路,以加密为加密分组(框604)。处理逻辑将加密分组路由到网络处理元件,以被封装为封装分组(框606)。处理逻辑将封装分组路由到网络设备的第二端口(框608)。
64.在第一模式的另一个实施例中,处理逻辑在网络设备的第二端口上接收解密分组。处理逻辑将解密分组路由到网络处理元件以处理解密分组。处理逻辑将解密分组路由到加密电路,以将解密分组加密为加密分组。处理逻辑将加密分组路由到第一端口。在第二模式(即,不在第一模式中)的另一个实施例中,处理逻辑在网络设备的第二端口上接收封装分组。处理逻辑将封装分组路由到网络处理元件以处理分组。处理逻辑将经处理的分组路由到加密电路以加密为加密分组,并将加密分组路由到第一端口。
65.图7示出了根据至少一个实施例的包括可编程路径选择电路140的计算机系统700。在至少一个实施例中,计算机系统700可以是具有互连设备和组件、soc或某种组合的系统。在至少一个实施例中,计算机系统700由处理器702形成,处理器702可包括用于执行指令的执行单元。在至少一个实施例中,计算机系统700可包括但不限于组件,例如处理器702,以采用包括逻辑的执行单元来执行用于处理数据的算法。在至少一个实施例中,计算机系统700可包括处理器,例如处理器系列、xeontm、xscaletm和/或可从加利福尼亚州圣克拉拉市英特尔公司获得的strongarmtm、core
tm
或nervana
tm
,尽管也可以使用其他系统(包括具有其他微处理器、工程工作站、机顶盒等的pc)。在至少一个实施例中,计算机系统700可以执行可从华盛顿州redmond的microsoft corporation获得的windows操作系统的版本,但也可以使用其他操作系统(例如unix和linux)、嵌入式软件和/或图形用户界面。
66.在至少一个实施例中,计算机系统700可用于其他设备,例如手持设备和嵌入式应用程序。手持设备的一些示例包括蜂窝电话、互联网协议设备、数码相机、个人数字助理(“pda”)和手持pc。在至少一个实施例中,嵌入式应用可包括微控制器、数字信号处理器
(dsp)、soc、网络计算机(“netpc”)、机顶盒、网络集线器、广域网(“wan”)交换机或可执行一个或更多个指令的任何其他系统。在一个实施例中,计算机系统700可用于诸如图形处理单元(gpu)、网络适配器、中央处理单元和诸如交换机的网络设备(例如,高速直接gpu到gpu互连,例如nvidiagh100 nvlink或nvidia quantum 2 64端口infiniband ndr交换机)之类的设备。
67.在至少一个实施例中,计算机系统700可包括但不限于处理器702,处理器702可包括但不仅限于一个或更多个执行单元707,其可被配置为执行计算统一设备架构(“cuda”)(由加利福尼亚州圣克拉拉市nvidiacorporation开发)程序。在至少一个实施例中,cuda程序是用cuda编程语言编写的软件应用程序的至少一部分。在至少一个实施例中,计算机系统700是单处理器桌面或服务器系统。在至少一个实施例中,计算机系统700可以是多处理器系统。在至少一个实施例中,处理器702可包括但不限于cisc微处理器、risc微处理器、vliw微处理器、实现指令集组合的处理器或任何其他处理器设备,例如,数字信号处理器。在至少一个实施例中,处理器702可耦合到处理器总线710,该处理器总线可在处理器702与计算机系统700中的其他组件之间传输数据信号。
68.在至少一个实施例中,处理器702可包括但不限于1级(“l1”)内部高速缓存存储器(“高速缓存”)704。在至少一个实施例中,处理器702可以具有单个内部高速缓存或多级内部高速缓存。在至少一个实施例中,高速缓存存储器可驻留在处理器702外部。在至少一个实施例中,处理器702还可以包括内部高速缓存和外部高速缓存的组合。在至少一个实施例中,寄存器堆(register file)706可在各种寄存器中存储不同类型的数据,包括但不限于整数寄存器、浮点寄存器、状态寄存器和指令指针寄存器。
69.在至少一个实施例中,执行单元707(包括但不限于执行整数和浮点运算的逻辑)也驻留在处理器702中。处理器702还可以包括存储某些宏指令的微码的微码(“ucode”)只读存储器(“rom”)。在至少一个实施例中,执行单元707可包括用于处理压缩指令集709的逻辑。在至少一个实施例中,通过将压缩指令集709包括在通用处理器702的指令集中,以及用于执行指令的相关电路,可以使用通用处理器702中的压缩数据来执行许多多媒体应用程序使用的操作。在至少一个实施例中,通过使用处理器的数据总线的全宽来对压缩数据执行操作,可以更有效地加速和执行许多多媒体应用程序,这可以消除通过处理器的数据总线传输较小数据单元以一次一个数据元素地执行一个或更多个操作的需要。
70.在至少一个实施例中,执行单元708还可用于微控制器、嵌入式处理器、图形设备、dsp和其他类型的逻辑电路。在至少一个实施例中,计算机系统700可包括但不限于存储器720。在至少一个实施例中,存储器720可以实现为dram设备、sram设备、闪存设备或其他存储器设备。存储器720可存储指令719和/或数据721,其由处理器702可执行的数据信号表示。
71.在至少一个实施例中,系统逻辑芯片可耦合到处理器总线710和存储器720。在至少一种实施例中,系统逻辑芯片可以包括但不限于存储器控制器集线器(“mch”)716,处理器702可通过处理器总线712与mch 716通信。在至少一个实施例中,mch 716可向存储器720提供高带宽存储器路径718,用于指令和数据存储以及用于图形命令、数据和纹理的存储。在至少一个实施例中,mch 716可在处理器702、存储器720和计算机系统700中的其他组件之间引导数据信号,并可在处理器总线710、存储器720和系统i/o 722之间桥接数据信号。
在至少一个实施例中,系统逻辑芯片可以提供用于耦合到图形控制器的图形端口。在至少一个实施例中,mch 716可通过高带宽存储器路径718耦合到存储器720,图形/视频卡712可通过加速图形端口(“agp”)互连714耦合到mch 716。
72.在至少一个实施例中,计算机系统700可使用系统i/o 722,其为专用集线器接口总线,用于将mch 716耦合到i/o控制器集线器(“ich”)730。在至少一个实施例中,ich 730可以提供经由本地i/o总线到一些i/o设备的直接连接。在至少一个实施例中,本地i/o总线可包括但不限于用于将外围设备连接到存储器720、芯片组和处理器702的高速i/o总线。示例可包括但不限于音频控制器729、固件集线器(“闪存bios”)728、无线收发器726、数据存储装置724、包含用户输入接口725和键盘接口的传统i/o控制器723、串行扩展端口727(例如usb)和网络控制器734。在至少一个实施例中,网络控制器734包括本文所述的可编程路径选择电路140。数据存储装置724可以包括硬盘驱动器、软盘驱动器、cd-rom设备、闪存设备或其他大容量存储设备。
73.在至少一个实施例中,图7示出了包括互连硬件设备或“芯片”的系统。在至少一个实施例中,图7可示出示例性soc。在至少一个实施例中,图7所示的设备可与专有互连、标准化互连(例如,pcie)或其某种组合互连。在至少一个实施例中,系统700的一个或更多个组件使用计算快速链路(“cxl”)互连来互连。
74.其他其他变型在本公开的精神内。因此,尽管公开的技术易于进行各种修改和替代构造,但是某些示出的其实施例在附图中示出并且已经在上面进行了详细描述。然而,应理解,无意将公开内容限制为所公开的一种或更多种特定形式,而是相反,其意图是涵盖落入如所附权利要求书所定义的本公开内容的精神和范围内的所有修改、替代构造和等同物。
75.除非另有说明或显然与上下文矛盾,否则在描述所公开的实施例的上下文中(特别是在所附权利要求的上下文中),术语“一”和“一个”和“该”以及类似指代的使用应被解释为涵盖单数和复数,而不是作为术语的定义。除非另有说明,否则术语“包括”、“具有”、“包含”和“含有”应被解释为开放式术语(意味着“包括但不限于”)。术语“连接”(在未经修改时指的是物理连接)应解释为部分或全部包含在内、附接到或连接在一起,即使有某些介入。除非本文另外指出,否则本文中对数值范围的引用仅旨在用作分别指代落入该范围内的每个单独值的简写方法,并且每个单独值都被并入说明书中,就如同其在本文中被单独叙述一样。在至少一个实施例中,除非另外指出或与上下文矛盾,否则术语“集”(例如“项目集”)或“子集”的使用应解释为包括一个或更多个成员的非空集合。此外,除非另外指出或与上下文矛盾,否则术语相应集的“子集”不一定表示对应集的适当子集,而是子集和对应集可以相等。
76.除非以其他方式明确指出或与上下文明显矛盾,否则诸如“a,b和c中的至少一个”或“a,b与c中的至少一个”形式的短语之类的连接语在上下文中理解为通常用来表示项目、条款等,其可以是a或b或c,也可以是a和b和c集的任何非空子集。例如,在具有三个成员的集的说明性示例中,连接短语“a,b和c中的至少一个”和“a,b与c中的至少一个”是指以下任意集:{a},{b},{c},{a,b},{a,c},{b,c},{a,b,c}。因此,这种连接语言通常不旨在暗示某些实施例要求存在a中的至少一个,b中的至少一个和c中的至少一个。另外,除非另有说明或与上下文矛盾,否则术语“多个”表示复数的状态(例如,“多个项目”表示多个项目)。在至
少一个实施例中,多个项目中项目的数量至少为两个,但如果明确指示或通过上下文指示,则可以更多。此外,除非另有说明或从上下文中可以清楚得知,否则短语“基于”是指“至少部分基于”而不是“仅基于”。
77.除非本文另外指出或与上下文明显矛盾,否则本文描述的过程的操作可以任何合适的顺序执行。在至少一个实施例中,诸如本文所述的那些过程(或其变形和/或其组合)之类的过程在配置有可执行指令的一个或更多个计算机系统的控制下执行,并且被实现为代码(例如,可执行指令,一个或更多个计算机程序或一个或更多个应用程序),该代码通过硬件或其组合在一个或更多个处理器上共同执行。在至少一个实施例中,代码以例如计算机程序的形式存储在计算机可读存储介质上,该计算机程序包括可由一个或更多个处理器执行的多个指令。在至少一个实施例中,计算机可读存储介质是非暂时性计算机可读存储介质,其排除了暂时性信号(例如,传播的瞬态电或电磁传输),但包括非暂时性数据存储电路(例如,缓冲区、高速缓存和队列)。在至少一个实施例中,代码(例如,可执行代码或源代码)被存储在其上存储有可执行指令的一组一个或更多个非暂时性计算机可读存储介质(或用于存储可执行指令的其他存储器)上,该可执行指令在由计算机系统的一个或更多个处理器执行时(即,作为被执行的结果),使得计算机系统执行本文所述的操作。在至少一个实施例中,一组非暂时性计算机可读存储介质包括多个非暂时性计算机可读存储介质,并且多个非暂时性计算机可读存储介质中的个体非暂时性存储介质中的一个或更多个缺少全部代码,而是多个非暂时性计算机可读存储介质共同存储全部代码。在至少一个实施例中,可执行指令被执行,以使得不同的指令由不同的处理器执行。
78.因此,在至少一个实施例中,计算机系统被配置为实现单独地或共同地执行本文所述的过程的操作的一个或更多个服务,并且这样的计算机系统被配置有使能实施操作的适用的硬件和/或软件。此外,实现本公开的至少一个实施例的计算机系统是单个设备,并且在另一实施例中是分布式计算机系统,其包括以不同方式操作的多个设备,使得分布式计算机系统执行本文所述的操作,并且使得单个设备不执行所有操作。
79.本文提供的任何和所有示例或示例性语言(例如,“诸如”)的使用仅旨在更好地阐明本公开的实施例,并且不对公开的范围构成限制,除非另有要求。说明书中的任何语言都不应被解释为表示任何未要求保护的要素对于实践公开内容是必不可少的。
80.本文引用的所有参考文献,包括出版物、专利申请和专利,均通过引用并入本文,其程度就如同每个参考文献被单独且具体地指示为以引用的方式并入本文并且其全部内容在本文中阐述一样。
81.在说明书和权利要求中,可以使用术语“耦合”和“连接”以及它们的派生词。应当理解,这些术语可能不旨在作为彼此的同义词。相反,在特定示例中,“连接”或“耦合”可用于指示两个或更多个元件彼此直接或间接物理或电接触。“耦合”也可能意味着两个或更多个元素彼此不直接接触,但仍彼此协作或交互。
82.除非另有明确说明,否则可以理解,在整个说明书中,诸如“处理”、“计算”、“计算”、“确定”等之类的术语,是指计算机或计算系统或类似的电子计算设备的动作和/或过程,其将计算系统的寄存器和/或存储器中表示为物理量(例如电子)的数据处理和/或转换为类似表示为计算系统的存储器、寄存器或其他此类信息存储、传输或显示设备中的物理量的其他数据。
83.以类似的方式,术语“处理器”可以指处理来自寄存器和/或存储器的电子数据并将该电子数据转换成可以存储在寄存器和/或存储器中的其他电子数据的任何设备或存储器的一部分。作为非限制性示例,“处理器”可以是网络设备或macsec设备。“计算平台”可以包括一个或更多个处理器。如本文所使用的,“软件”进程可以包括例如随时间执行工作的软件和/或硬件实体,诸如任务、线程和智能代理。同样,每个过程可以指代多个过程,以连续地或间歇地顺序地或并行地执行指令。在至少一个实施例中,术语“系统”和“方法”在本文中可以互换使用,只要系统可以体现一种或更多种方法,并且方法可以被认为是系统。
84.在本文件中,可以参考获得、获取、接收或将模拟或数字数据输入子系统、计算机系统或计算机实现的机器中。在至少一个实施例中,可以通过多种方式来完成获得、获取、接收或输入模拟和数字数据的过程,例如通过接收作为函数调用或对应用程序编程接口的调用的参数的数据。在至少一个实施例中,可以通过经由串行或并行接口传输数据来完成获得、获取、接收或输入模拟或数字数据的过程。在至少一个实施例中,可以通过经由计算机网络将数据从提供实体传输到获取实体来完成获得、获取、接收或输入模拟或数字数据的过程。在至少一个实施例中,也可以参考提供、输出、传送、发送或呈现模拟或数字数据。在各种示例中,提供、输出、传送、发送或呈现模拟或数字数据的过程可以通过将数据作为函数调用的输入或输出参数、应用程序编程接口或进程间通信机制的参数进行传输来实现。
85.尽管此处的描述阐述了所描述的技术的示例实施例,但是其他架构可以用于实现所描述的功能,并且旨在落入本公开的范围内。此外,尽管出于描述的目的可能在上面定义了具体的职责分配,但是根据情况,可以以不同的方式分配和划分各种功能和职责。
86.此外,尽管已经用特定于结构特征和/或方法动作的语言描述了主题,但是应当理解,所附权利要求书所要求保护的主题不必限于所描述的特定特征或动作。而是,公开了特定的特征和动作作为实现权利要求的示例性形式。
技术特征:
1.一种网络设备,包括:多个端口;网络处理元件;耦合到所述多个端口和所述网络处理元件的可编程路径选择电路;以及耦合到所述可编程路径选择电路的安全集成电路,其中所述可编程路径选择电路被配置为在以下模式下操作:i)第一模式,在所述第一模式下,第一传出分组被路由到所述安全集成电路,以便在所述多个端口中的一个端口上发送之前进行加密,并且在所述多个端口中的一个端口上接收到的第一传入分组被路由到所述安全集成电路以便进行解密;或ii)第二模式,在所述第二模式下,第二传入分组被路由到所述安全集成电路,以便在由所述网络处理元件处理之前进行加密。2.如权利要求1所述的网络设备,其中,在所述第二模式中,所述可编程路径选择电路用于将第二传出分组路由到所述安全集成电路,以便在由所述网络处理元件处理之后进行解密。3.如权利要求1所述的网络设备,其中,在所述第一模式中,所述可编程路径选择电路用于:将第一传出分组路由到所述安全集成电路,以获得加密分组;在所述多个端口中的第一端口上发送所述加密分组,其中所述第一端口是受保护端口;在所述多个端口中的第二端口上接收第一传入分组,其中所述第二端口是受保护端口;将所述第一传入分组路由到所述安全集成电路,以获得解密分组;以及将所述解密分组路由到所述网络处理元件。4.如权利要求1所述的网络设备,其中,在所述第二模式中,所述可编程路径选择电路用于:在所述多个端口中的第一端口上接收第一传入分组;将所述第一传入分组路由到所述安全集成电路以获得加密分组;以及将所述加密分组路由到所述网络处理元件以获得封装分组,其中所述封装分组在所述多个端口中的第二端口上发送,其中所述第二端口是受保护端口。5.如权利要求4所述的网络设备,其中,在所述第二模式中,所述可编程路径选择电路用于:将第一传出分组路由到所述安全集成电路以获得解密分组;以及将所述解密分组发送到所述多个端口中的第二端口。6.如权利要求5所述的网络设备,其中所述第二端口是非受保护端口。7.如权利要求1所述的网络设备,其中所述安全集成电路是媒体访问控制安全macsec设备。8.如权利要求1所述的网络设备,其中所述安全集成电路是互联网协议安全ipsec设备。9.一种装置,包括:
第一端口;第二端口;路径选择电路,其耦合到所述第一端口和所述第二端口;耦合到所述路径选择电路的加密电路,其中所述路径选择电路用于将在所述第一端口上接收的传入分组路由到所述加密电路,其中所述加密电路用于使用所述传入分组生成加密分组;以及耦合到所述路径选择电路的网络处理元件,其中所述路径选择电路用于将所述加密分组路由到所述网络处理元件,其中所述网络处理元件被配置为封装所述加密分组以获得封装分组,并将所述封装分组路由到所述第二端口。10.如权利要求9所述的装置,进一步包括与所述路径选择电路耦合的解密电路,其中所述路径选择电路用于从所述网络处理元件接收传出分组,并将所述传出分组路由到所述解密电路,其中所述解密电路用于接收所述传出分组并使用所述传出分组生成解密分组,其中在所述解密电路处接收到的所述传出分组是封装分组,并且其中所述路径选择电路用于将所述解密分组路由到所述第二端口。11.如权利要求10所述的装置,进一步包括:包括所述加密电路和所述解密电路的媒体访问控制安全macsec设备。12.如权利要求10所述的装置,进一步包括:包括所述加密电路和所述解密电路的互联网协议安全ipsec设备。13.如权利要求10所述的装置,其中所述路径选择电路包括第一模式和第二模式,其中所述路径选择电路用于:在所述第一模式中将所述传入分组路由到所述加密电路;以及在所述第二模式中将在所述第一端口上接收到的第二传入分组路由到所述解密电路。14.如权利要求13所述的装置,其中所述路径选择电路用于:在所述第一模式中将所述传出分组路由到所述解密电路;以及在所述第二模式中将第二传出分组路由到所述加密电路。15.如权利要求9所述的装置,其中所述封装分组包括叠加信息。16.一种方法,包括:在网络设备的第一端口处接收传入分组;将所述传入分组路由到加密电路以加密为加密分组;将所述加密分组路由到网络处理元件以封装为封装分组;以及将所述封装分组路由到所述网络设备的第二端口。17.如权利要求16所述的方法,进一步包括:从所述网络处理元件接收传出分组;将所述传出分组路由到解密电路以解密为解密分组;以及将所述解密分组路由到所述第二端口。18.如权利要求16所述的方法,进一步包括:在所述第一端口处接收第二传入分组;将所述第二传入分组路由到解密电路以解密为第二解密分组;以及将所述第二解密分组路由到所述网络处理元件。
19.如权利要求18所述的方法,进一步包括:从所述网络处理元件接收第二传出分组;将所述第二传出分组路由到所述加密电路以加密为第二加密分组;以及将所述第二加密分组路由到所述第二端口。20.如权利要求18所述的方法,进一步包括:在所述网络设备的第三端口处接收第二传入分组,其中所述第三端口是受保护端口;将所述第二传入分组路由到所述网络处理元件以封装为第二封装分组;以及将所述第二封装分组路由到所述网络设备的第四端口,其中所述第四端口是受保护端口。
技术总结
本公开涉及用于承载操作和叠加操作的双向加密/解密设备。描述了用于承载操作和叠加操作的双向加密和解密技术。一个网络设备包括多个端口、网络处理元件、可编程路径选择电路和安全IC。可编程路径选择电路被配置为在第一模式下进行操作,在第一模式中,第一传出分组被路由到安全集成电路以便在其中一个端口上发送之前进行加密,而在其中一个端口上接收到的第一传入分组被路由到安全集成电路进行解密。可编程路径选择电路被配置为在第二模式下进行操作,在第二模式中,第二传入分组被路由到安全集成电路,以便在由网络处理元件处理之前进行加密,并在由网络处理元件处理之后将第二传出分组路由到安全集成电路以进行解密。二传出分组路由到安全集成电路以进行解密。二传出分组路由到安全集成电路以进行解密。
技术研发人员:B
受保护的技术使用者:迈络思科技有限公司
技术研发日:2022.12.02
技术公布日:2023/7/11
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/
上一篇:一种Pdx1 下一篇:杀虫蛋白的用途的制作方法