CN117240790A - 流表规则的管理方法、流量管理方法、系统及存储介质 - Google Patents
流表规则的管理方法、流量管理方法、系统及存储介质 Download PDFInfo
- Publication number
- CN117240790A CN117240790A CN202210709643.8A CN202210709643A CN117240790A CN 117240790 A CN117240790 A CN 117240790A CN 202210709643 A CN202210709643 A CN 202210709643A CN 117240790 A CN117240790 A CN 117240790A
- Authority
- CN
- China
- Prior art keywords
- matching
- message
- flow
- network card
- intelligent network
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000007726 management method Methods 0.000 title claims description 190
- 238000000034 method Methods 0.000 claims abstract description 238
- 238000012423 maintenance Methods 0.000 claims abstract description 67
- 230000009471 action Effects 0.000 claims description 208
- 238000004590 computer program Methods 0.000 claims description 16
- 230000006870 function Effects 0.000 abstract description 79
- 238000004891 communication Methods 0.000 abstract description 22
- 239000008186 active pharmaceutical agent Substances 0.000 description 47
- 238000012545 processing Methods 0.000 description 41
- 230000008569 process Effects 0.000 description 40
- 238000010586 diagram Methods 0.000 description 25
- 102100033189 Diablo IAP-binding mitochondrial protein Human genes 0.000 description 11
- 101710101225 Diablo IAP-binding mitochondrial protein Proteins 0.000 description 11
- 230000003993 interaction Effects 0.000 description 11
- 230000003287 optical effect Effects 0.000 description 9
- 239000007787 solid Substances 0.000 description 5
- 238000012217 deletion Methods 0.000 description 4
- 230000037430 deletion Effects 0.000 description 4
- 238000011161 development Methods 0.000 description 4
- 238000004549 pulsed laser deposition Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 239000004744 fabric Substances 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000002776 aggregation Effects 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 230000010355 oscillation Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000000969 carrier Substances 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- RGNPBRKPHBKNKX-UHFFFAOYSA-N hexaflumuron Chemical compound C1=C(Cl)C(OC(F)(F)C(F)F)=C(Cl)C=C1NC(=O)NC(=O)C1=C(F)C=CC=C1F RGNPBRKPHBKNKX-UHFFFAOYSA-N 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003032 molecular docking Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/20—Traffic policing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供了一种流表规则的管理方法、流量管理方法、系统及存储介质,涉及通信技术领域。该方法包括:VS获取访问控制列表ACL流匹配规则,VS指示智能网卡管理所述ACL流匹配规则,智能网卡管理访问控制列表ACL流匹配规则,ACL流匹配规则用于智能网卡对报文进行运维功能管理。通过智能网卡管理ACL流匹配规则,当使能运维能力时,无需将智能网卡上已有的流表条目清除,首包也不用上送VS进行重新学习,将接收的报文经过ACL流匹配规则即可,使智能网卡具备高可维可靠的运维能力。再有,通过智能网卡实现运维功能,可实现由硬件进行计数统计等,相比于软件实现,统计结果更加准确。
Description
本申请要求于2022年06月06日提交的申请号为202210632725.7、发明名称为“一种数据转发的方法、系统及装置”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及通信技术领域,特别涉及流表规则的管理方法、流量管理方法、系统及存储介质。
背景技术
随着软件定义网络(software defined network,SDN)和网络功能虚拟化(network functions virtualization,NFV)技术的不断发展,各种数据面开源方案应运而生,虚拟交换机(virtual switch,VS)便是其中的一种。VS通过开源流(OpenFlow)协议管理交换机流表(flow table),能够使控制器软件通过网络访问一个交换机的数据路径,从而实现针对流量的运维功能、控制和转发等管理操作。
由于网络带宽的增加,VS的一些流量管理操作可由智能网卡实现。因此,有必要对智能网卡上的流表规则进行管理,以使智能网卡可基于流表规则进行流量管理。
发明内容
本申请提供了一种流表规则的管理方法、流量管理方法、系统及存储介质,能够实现在智能网卡上进行流表规则以及流量的管理。
第一方面,提供了一种流表规则的管理方法,该管理方法由智能网卡执行,智能网卡用于与VS连接,该方法包括:智能网卡管理访问控制列表ACL流匹配规则,ACL流匹配规则用于智能网卡对报文进行运维功能管理。
通过智能网卡管理AC流匹配规则,当使能运维能力时,无需将智能网卡上已有的流表条目清除,首包也不用上送VS进行重新学习,将接收的报文经过ACL流匹配规则即可,使智能网卡具备高可维可靠的运维能力。再有,通过智能网卡实现运维功能,可实现由硬件进行计数统计等,相比于软件实现,统计结果更加准确。
在一种可能的实现方式中,ACL流匹配规则包括入向的ACL流匹配规则和出向的ACL流匹配规则中的至少一种。入向的ACL流匹配规则可用于智能网卡在入向进行运维功能管理,出向的ACL流匹配规则可用于智能网卡在出向进行运维功能管理,通过不同方向的ACL流匹配规则,可使得智能网卡管理的更加精确和全面。
在一种可能的实现方式中,智能网卡管理访问控制列表ACL流匹配规则,包括:智能网卡接收VS调用第一应用程序编程接口API发送的第一消息,该第一消息包括智能网卡的第一端口的端口标识;智能网卡基于第一消息在智能网卡的第一端口上创建第一ACL流匹配规则。通过在第一消息中携带端口标识,使得智能网卡能够在对应的端口上创建ACL流匹配规则,提高创建ACL流匹配规则的准确性。
在一种可能的实现方式中,第一消息还包括流表规则属性、流表规则匹配项和流表规则动作项中的至少一种;其中,所述流表规则属性用于指示报文需匹配的组、所述第一ACL流匹配规则的方向信息、流表类型中的至少一种;所述流表规则匹配项包括匹配以太层信息、匹配虚拟局域网VLAN信息、匹配网际协议第四版IPv4信息或匹配网际协议第六版IPv6信息、匹配虚拟扩展局域网VXLAN信息、匹配项结束、报文标记中的至少一种;所述流表规则动作项包括流表统计、采样转发和流镜像、为报文设置内标记、修改指定字段和引用句柄操作中的至少一种。通过在第一消息中携带流表规则属性、流表规则匹配项和流表规则动作项中的至少一种信息,使得智能网卡创建的ACL流匹配规则更加的准确和全面。
在一种可能的实现方式中,该方法还包括:智能网卡向所述VS发送第二消息,所述第二消息指示在所述智能网卡的所述第一端口上创建所述第一ACL流匹配规则的结果。通过向VS返回用于指示创建ACL流匹配规则的结果,增加可靠性。
在一种可能的实现方式中,所述智能网卡管理访问控制列表ACL流匹配规则,所述方法包括:所述智能网卡接收所述VS调用第二API发送的第三消息,基于所述第三消息在所述智能网卡上删除第二ACL流匹配规则。当运维能力关闭或者ACL流匹配规则发生变化时,将下发的ACL流匹配规则进行删除,后续收到的报文不经过ACL流匹配规则的匹配即可,使智能网卡具备高可维可靠的运维能力,且灵活性更高。
在一种可能的实现方式中,所述智能网卡管理访问控制列表ACL流匹配规则,所述方法包括:智能网卡接收所述VS调用第三API发送的第四消息,基于所述第四消息查询并返回所述智能网卡的统计信息。通过第四消息实现统计信息的查询,使得流表规则的管理更加灵活。
在一种可能的实现方式中,所述方法还包括:所述智能网卡管理硬件匹配流表,所述硬件匹配流表用于所述智能网卡对流量进行流量管理,所述硬件匹配流表包括硬件精确匹配流表和硬件模糊匹配流表中的至少一种。除了管理ACL流匹配规则,还可以管理硬件匹配流表,使得流表规则的管理更加全面,且灵活性更高。
在一种可能的实现方式中,所述硬件模糊匹配流表用于与第一报文进行匹配,所述第一报文为生成流表条目满足第一阈值条件的网元所产生的报文;所述硬件精确匹配流表用于与第二报文进行匹配,所述第二报文为满足第二阈值条件的网元所产生的报文。对于智能网卡管理的硬件匹配流表包括硬件模糊匹配流表和硬件精确匹配流表的情况,智能网卡接收到报文后,无需将报文分别与硬件模糊匹配流表和硬件精确匹配流表进行匹配,而是先判断报文为第一报文还是第二报文,然后再与硬件模糊匹配流表或硬件精确匹配流表进行匹配。如此,根据报文的类型来进行流量管理,提高了管理效率。
在一种可能的实现方式中,该方法还包括:所述智能网卡管理数据面哈希表,所述数据面哈希表用于所述智能网卡对多路径转发报文进行多路径转发。通过数据面哈希表实现多路径转发,针对等价多路径(equal-cost multi-path,ECMP)场景,可节省硬件匹配流表中的条目的数量,当OpenFlow配置发生变化时,显著提升了流量管理的稳定性和可靠性。
在一种可能的实现方式中,所述硬件匹配流表中包括哈希匹配动作项、转向标识匹配动作项和报文上送所述VS软件控制面匹配动作项的至少一种;其中,所述哈希匹配动作项用于指示执行所述数据面哈希表的查询动作,所述转向标识用于指示所述数据面哈希表,所述数据面哈希表包括哈希值、掩码和所述转向标识,所述掩码对应下一跳信息。
第二方面,提供了一种流表规则的管理方法,该管理方法由VS执行,VS用于与智能网卡连接,该方法包括:VS获取访问控制列表ACL流匹配规则,所述ACL流匹配规则用于所述智能网卡对报文进行运维功能管理;VS指示智能网卡管理所述ACL流匹配规则。
在一种可能的实现方式中,所述ACL流匹配规则包括入向的ACL流匹配规则和出向的ACL流匹配规则中的至少一种。
在一种可能的实现方式中,所述VS指示所述智能网卡管理所述ACL流匹配规则,所述方法包括:所述VS调用第一应用程序编程接口API向所述智能网卡发送第一消息,所述第一消息包括所述智能网卡的第一端口的端口标识,所述第一消息用于所述智能网卡在所述智能网卡的第一端口上创建第一ACL流匹配规则。
在一种可能的实现方式中,所述第一消息还包括流表规则属性、流表规则匹配项和流表规则动作项中的至少一种;其中,所述流表规则属性用于指示报文需匹配的组、所述第一ACL流匹配规则为入向的ACL流匹配规则还是出向的ACL流匹配规则、流表类型中的至少一种;所述流表规则匹配项包括匹配以太层信息、匹配虚拟局域网VLAN信息、匹配网际协议第四版IPv4信息或匹配网际协议第六版IPv6信息、匹配虚拟扩展局域网VXLAN信息、匹配项结束、报文标记中的至少一种;所述流表规则动作项包括流表统计、采样转发和流镜像、为报文设置内标记、修改指定字段和引用句柄操作中的至少一种。
在一种可能的实现方式中,所述方法还包括:所述VS接收所述智能网卡发送的第二消息,所述第二消息用于指示在所述智能网卡的所述第一端口上创建所述第一ACL流匹配规则的结果。
在一种可能的实现方式中,所述VS指示所述智能网卡管理所述ACL流匹配规则,所述方法包括:所述VS调用第二API向所述智能网卡发送第三消息,所述第三消息用于所述智能网卡在所述智能网卡上删除第二ACL流匹配规则。
在一种可能的实现方式中,所述VS指示所述智能网卡管理所述ACL流匹配规则,所述方法包括:所述VS调用第三API向所述智能网卡发送第四消息,所述第四消息用于所述智能网卡查询并返回所述智能网卡的统计信息。
在一种可能的实现方式中,所述方法还包括:所述VS获取硬件匹配流表,所述硬件匹配流表用于所述智能网卡对流量进行流量管理,所述硬件匹配流表包括硬件精确匹配流表和硬件模糊匹配流表中的至少一种;所述VS指示所述智能网卡管理所述硬件匹配流表。
在一种可能的实现方式中,所述硬件模糊匹配流表用于与第一报文进行匹配,所述第一报文为生成流表条目满足第一阈值条件的网元所产生的报文;所述硬件精确匹配流表用于与第二报文进行匹配,所述第二报文为满足第二阈值条件的网元所产生的报文。
在一种可能的实现方式中,所述方法还包括:所述VS获取数据面哈希表,所述数据面哈希表用于所述智能网卡对多路径转发报文进行多路径转发;所述VS指示所述智能网卡管理所述数据面哈希表。
在一种可能的实现方式中,所述硬件匹配流表中包括哈希匹配动作项、转向标识匹配动作项和报文上送所述VS软件控制面匹配动作项的至少一种;其中,所述哈希匹配动作项用于指示执行所述数据面哈希表的查询动作,所述转向ID用于指示所述数据面哈希表,所述数据面哈希表包括哈希值、掩码和所述转向标识,所述掩码对应下一跳信息。
第三方面,提供了一种流量管理方法,该方法包括:智能网卡接收报文,将所述报文与所述智能网卡上创建的访问控制列表ACL流匹配规则进行匹配;基于所述报文与所述ACL流匹配规则匹配成功,所述智能网卡根据所述ACL流匹配规则对所述报文进行运维功能管理。当使能运维能力时,由智能网卡实现运维功能的管理,无需将现有转发流表条目清除,接收到的报文也不用上送VS进行重新学习,也可以不再由流量触发,只需将接收到的报文经过智能网卡进行ACL流规则匹配即可,因此,使智能网卡具备高可维可靠的运维能力。再有,通过智能网卡实现计数统计等运维功能,也即由硬件实现计数统计等,相比于软件实现,统计结果更加准确。
在一种可能的实现方式中,所述ACL流匹配规则包括入向的ACL流匹配规则和出向的ACL流匹配规则;所述基于所述报文与所述ACL流匹配规则匹配成功,所述智能网卡根据所述ACL流匹配规则对所述报文进行运维功能管理,包括:基于所述报文与所述入向的ACL流匹配规则匹配成功,所述智能网卡根据所述入向的ACL流匹配规则对所述报文进行入向的运维功能管理;所述智能网卡将所述报文进行二三层网络转发;基于所述报文与所述出向的ACL流匹配规则匹配成功,所述智能网卡根据所述出向的ACL流匹配规则对所述报文进行出向的运维功能管理。
在一种可能的实现方式中,所述方法还包括:所述智能网卡将所述报文与硬件匹配流表进行匹配,所述硬件匹配流表包括硬件精确匹配流表和硬件模糊匹配流表中的至少一种;所述智能网卡根据所述报文与所述硬件匹配流表的匹配结果对所述报文进行流量管理。
在一种可能的实现方式中,所述智能网卡将所述报文与硬件匹配流表进行匹配,包括:基于所述报文为第一报文,所述智能网卡将所述报文与所述硬件模糊匹配流表进行匹配,所述第一报文为生成流表条目满足第一阈值条件的网元所产生的报文;或,基于所述报文为第二报文,所述智能网卡将所述报文与所述硬件精确匹配流表进行匹配,所述第二报文为满足第二阈值条件的网元所产生的报文。
在一种可能的实现方式中,所述智能网卡根据所述报文与所述硬件匹配流表的匹配结果对所述报文进行流量管理,包括:基于所述报文与所述硬件匹配流表的匹配结果为所述报文与所述硬件匹配流表匹配成功,且所述硬件匹配流表中包括上送动作项,将所述报文上送所述VS;或者,基于所述报文与所述硬件匹配流表的匹配结果为所述报文与所述硬件匹配流表匹配失败,将所述报文上送所述VS。
在一种可能的实现方式中,所述报文为多路径转发报文,所述方法还包括:所述智能网卡将所述报文与数据面哈希表进行匹配;基于所述报文与所述数据面哈希表匹配成功,所述智能网卡对所述报文进行多路径转发。
在一种可能的实现方式中,所述硬件匹配流表包括哈希匹配动作项和转向标识匹配动作项;其中,所述哈希匹配动作项用于指示执行所述数据面哈希表的查询动作,所述转向标识用于指示所述数据面哈希表,所述数据面哈希表包括哈希值、掩码和所述转向标识,所述掩码对应下一跳信息;
所述智能网卡将所述报文与数据面哈希表进行匹配,包括:所述智能网卡基于所述哈希匹配动作项,计算所述报文对应的哈希值,基于所述哈希值获取所述报文对应的掩码;基于所述转向标识匹配动作项,查找所述数据面哈希表;基于所述报文对应的掩码与所述数据面哈希表中的掩码一致,确定所述报文与所述数据面哈希表匹配成功;
所述智能网卡对所述报文进行多路径转发,包括:所述智能网卡按照所述数据面哈希表中所述掩码对应的下一跳信息对所述报文进行多路径转发。
在一种可能的实现方式中,所述硬件匹配流表包括哈希匹配动作项、转向标识匹配动作项和报文上送所述VS软件控制面匹配动作项;其中,所述哈希匹配动作项用于指示执行所述数据面哈希表的查询动作,所述转向标识用于指示所述数据面哈希表,所述数据面哈希表包括哈希值、掩码和所述转向标识,所述掩码对应下一跳信息;
所述智能网卡将所述报文与数据面哈希表进行匹配,包括:所述智能网卡基于所述哈希匹配动作项,计算所述报文对应的哈希值,基于所述哈希值获取所述报文对应的掩码;基于所述转向标识匹配动作项,查找所述数据面哈希表;基于所述报文对应的哈希值与所述数据面哈希表中的掩码不一致,确定所述报文与所述数据面哈希表匹配失败;
所述方法还包括:所述智能网卡将所述报文上送虚拟交换机VS。
第四方面,提供了一种流量管理方法,该方法包括:虚拟交换机VS接收智能网卡发送的报文,所述报文由所述智能网卡在所述报文与所述智能网卡上的硬件匹配流表的匹配成功,且所述硬件匹配流表中包括上送动作项的情况下发送,或者,所述报文由所述智能网卡在所述报文与所述智能网卡上的硬件匹配流表的匹配失败的情况下发送,或者,所述报文由所述智能网卡在所述报文与所述智能网卡上的数据面哈希表匹配失败后发送;所述VS将所述报文与所述VS上的开源流表进行匹配,根据匹配结果对所述报文进行流量管理。
第五方面,提供了一种流表规则的管理方法,该方法由智能网卡执行,方法包括:智能网卡管理硬件匹配流表,所述硬件匹配流表用于所述智能网卡对流量进行流量管理,所述硬件匹配流表包括硬件精确匹配流表和硬件模糊匹配流表中的至少一种。
在一种可能的实现方式中,所述硬件模糊匹配流表用于与第一报文进行匹配,所述第一报文为生成流表条目满足第一阈值条件的网元所产生的报文;所述硬件精确匹配流表用于与第二报文进行匹配,所述第二报文为满足第二阈值条件的网元所产生的报文。
在一种可能的实现方式中,所述方法还包括:所述智能网卡管理数据面哈希表,所述数据面哈希表用于所述智能网卡对多路径转发报文进行多路径转发。
在一种可能的实现方式中,所述硬件匹配流表中包括哈希匹配动作项、转向标识匹配动作项和报文上送所述VS软件控制面匹配动作项的至少一种;其中,所述哈希匹配动作项用于指示执行所述数据面哈希表的查询动作,所述转向标识用于指示所述数据面哈希表,所述数据面哈希表包括哈希值、掩码和所述转向标识,所述掩码对应下一跳信息。
第六方面,提供了一种流表规则的管理方法,该方法由VS执行,VS用于与智能网卡连接,方法包括:VS获取硬件匹配流表,所述硬件匹配流表用于所述智能网卡对流量进行流量管理,所述硬件匹配流表包括硬件精确匹配流表和硬件模糊匹配流表中的至少一种;所述VS指示所述智能网卡管理所述硬件匹配流表。
在一种可能的实现方式中,所述硬件模糊匹配流表用于与第一报文进行匹配,所述第一报文为生成流表条目满足第一阈值条件的网元所产生的报文;所述硬件精确匹配流表用于与第二报文进行匹配,所述第二报文为满足第二阈值条件的网元所产生的报文。
在一种可能的实现方式中,所述方法还包括:所述VS获取数据面哈希表,所述数据面哈希表用于所述智能网卡对多路径转发报文进行多路径转发;所述VS指示所述智能网卡管理所述数据面哈希表。
在一种可能的实现方式中,所述硬件匹配流表中包括哈希匹配动作项、转向标识匹配动作项和报文上送所述VS软件控制面匹配动作项的至少一种;其中,所述哈希匹配动作项用于指示执行所述数据面哈希表的查询动作,所述转向ID用于指示所述数据面哈希表,所述数据面哈希表包括哈希值、掩码和所述转向标识,所述掩码对应下一跳信息。
第七方面,提供了一种流量管理方法,该方法包括:智能网卡获取报文,将所述报文与硬件匹配流表进行匹配,所述硬件匹配流表包括硬件精确匹配流表和硬件模糊匹配流表中的至少一种;所述智能网卡根据所述报文与所述硬件匹配流表的匹配结果对所述报文进行流量管理。
在一种可能的实现方式中,所述智能网卡将所述报文与硬件匹配流表进行匹配,包括:基于所述报文为第一报文,所述智能网卡将所述报文与所述硬件模糊匹配流表进行匹配,所述第一报文为生成流表条目满足第一阈值条件的网元所产生的报文;或,基于所述报文为第二报文,所述智能网卡将所述报文与所述硬件精确匹配流表进行匹配,所述第二报文为满足第二阈值条件的网元所产生的报文。
在一种可能的实现方式中,所述智能网卡根据所述报文与所述硬件匹配流表的匹配结果对所述报文进行流量管理,包括:基于所述报文与所述硬件匹配流表的匹配结果为所述报文与所述硬件匹配流表匹配成功,且所述硬件匹配流表中包括上送动作项,将所述报文上送所述VS;或者,基于所述报文与所述硬件匹配流表的匹配结果为所述报文与所述硬件匹配流表匹配失败,将所述报文上送所述VS。
在一种可能的实现方式中,所述报文为多路径转发报文,所述方法还包括:所述智能网卡将所述报文与数据面哈希表进行匹配;基于所述报文与所述数据面哈希表匹配成功,所述智能网卡对所述报文进行多路径转发。
在一种可能的实现方式中,所述硬件匹配流表包括哈希匹配动作项和转向标识匹配动作项;其中,所述哈希匹配动作项用于指示执行所述数据面哈希表的查询动作,所述转向标识用于指示所述数据面哈希表,所述数据面哈希表包括哈希值、掩码和所述转向标识,所述掩码对应下一跳信息;
所述智能网卡将所述报文与数据面哈希表进行匹配,包括:所述智能网卡基于所述哈希匹配动作项,计算所述报文对应的哈希值,基于所述哈希值获取所述报文对应的掩码;基于所述转向标识匹配动作项,查找所述数据面哈希表;基于所述报文对应的掩码与所述数据面哈希表中的掩码一致,确定所述报文与所述数据面哈希表匹配成功;
所述智能网卡对所述报文进行多路径转发,包括:所述智能网卡按照所述数据面哈希表中所述掩码对应的下一跳信息对所述报文进行多路径转发。
在一种可能的实现方式中,所述硬件匹配流表包括哈希匹配动作项、转向标识匹配动作项和报文上送所述VS软件控制面匹配动作项;其中,所述哈希匹配动作项用于指示执行所述数据面哈希表的查询动作,所述转向标识用于指示所述数据面哈希表,所述数据面哈希表包括哈希值、掩码和所述转向标识,所述掩码对应下一跳信息;
所述智能网卡将所述报文与数据面哈希表进行匹配,包括:所述智能网卡基于所述哈希匹配动作项,计算所述报文对应的哈希值,基于所述哈希值获取所述报文对应的掩码;基于所述转向标识匹配动作项,查找所述数据面哈希表;基于所述报文对应的哈希值与所述数据面哈希表中的掩码不一致,确定所述报文与所述数据面哈希表匹配失败;
所述方法还包括:所述智能网卡将所述报文上送虚拟交换机VS。
第八方面,提供了一种流量管理方法,该方法包括:VS接收智能网卡发送的报文,所述报文由所述智能网卡在所述报文与所述智能网卡上的硬件匹配流表的匹配成功,且所述硬件匹配流表中包括上送动作项的情况下发送,或者,所述报文由所述智能网卡在所述报文与所述智能网卡上的硬件匹配流表的匹配失败的情况下发送,或者,所述报文由所述智能网卡在所述报文与所述智能网卡上的数据面哈希表匹配失败后发送;
所述VS将所述报文与所述VS上的开源流表进行匹配,根据匹配结果对所述报文进行流量管理。
第九方面,提供了一种管理装置,该装置包括:处理器,所述处理器用于实现如上述第一方面或第二方面或第五方面或第六方面中任一的流表规则的管理方法,或者,用于实现如上述第三方面或第四方面或第七方面或第八方面任一所述的流量管理方法。
在一种可能的实现方式中,所述装置为芯片。
在一种可能的实现方式中,所述装置为网络设备,所述网络设备的类型包括以下至少一项:路由器、交换机或服务器。
第十方面,提供了一种管理系统,该管理系统包括VS和智能网卡,智能网卡用于执行上述第一方面、第五方面中任一的流表规则的管理方法,VS用于执行上述第二方面或第六方面中任一的流表规则的管理方法。
第十一方面,提供了一种管理系统,该管理系统包括VS和智能网卡,智能网卡用于执行上述第三方面、第七方面中任一的流量管理方法,VS用于执行上述第四方面或第八方面中任一的流量管理方法。
第十二方面,提供了一种网络设备,该网络设备包括处理器,处理器与存储器耦合,存储器中存储有至少一条程序指令或代码,至少一条程序指令或代码由处理器加载并执行,以使该网络设备实现如上述第一方面或第二方面或第五方面或第六方面中任一的流表规则的管理方法,或者,实现如上述第三方面或第四方面或第七方面或第八方面任一所述的流量管理方法。
第十三方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令,所述指令由处理器加载并执行,以使计算机实现如上述第一方面或第二方面或第五方面或第六方面中任一的流表规则的管理方法,或者,实现如上述第三方面或第四方面或第七方面或第八方面任一所述的流量管理方法。
第十四方面,提供了一种计算机程序(产品),该计算机程序(产品)包括计算机程序,当该计算机程序被计算机运行时,使得该计算机执行如上述第一方面或第二方面或第五方面或第六方面中任一的流表规则的管理方法,或者,执行如上述第三方面或第四方面或第七方面或第八方面任一所述的流量管理方法。
第十五方面,提供了一种通信装置,该装置包括:收发器、存储器和处理器。其中,该收发器、该存储器和该处理器通过内部连接通路互相通信,该存储器用于存储指令,该处理器用于执行该存储器存储的指令,以控制收发器接收信号,并控制收发器发送信号,并且当该处理器执行该存储器存储的指令时,使得该处理器执行如上述第一方面或第二方面或第五方面或第六方面中任一的流表规则的管理方法,或者,执行如上述第三方面或第四方面或第七方面或第八方面任一所述的流量管理方法。
在一种可能的实现方式中,处理器为一个或多个,存储器为一个或多个。
在一种可能的实现方式中,存储器可以与处理器集成在一起,或者存储器与处理器分离设置。
在具体实现过程中,存储器可以为非瞬时性(non-transitory)存储器,例如,只读存储器(read only memory,ROM),其可以与处理器集成在同一块芯片上,也可以分别设置在不同的芯片上,本申请对存储器的类型以及存储器与处理器的设置方式不做限定。
第十六方面,提供了一种芯片,包括处理器,用于从存储器中调用并运行存储器中存储的指令,使得安装有芯片的通信设备执行如上述第一方面或第二方面或第五方面或第六方面中任一的流表规则的管理方法,或者,执行如上述第三方面或第四方面或第七方面或第八方面任一所述的流量管理方法。
第十七方面,提供了另一种芯片,包括:输入接口、输出接口、处理器和存储器,输入接口、输出接口、处理器以及存储器之间通过内部连接通路相连,处理器用于执行存储器中的代码,当代码被执行时,处理器用于执行如上述第一方面或第二方面或第五方面或第六方面中任一的流表规则的管理方法,或者,执行如上述第三方面或第四方面或第七方面或第八方面任一所述的流量管理方法。
应当理解的是,本申请的第二方面至第十七方面技术方案及对应的可能的实施方式所取得的有益效果可以参见上述对第一方面及其对应的可能的实施方式的技术效果,此处不再赘述。
附图说明
图1为本申请实施例提供的一种实施环境示意图;
图2为本申请实施例提供的另一种实施环境示意图;
图3为本申请实施例提供的另一种实施环境示意图;
图4为本申请实施例提供的一种流表规则的管理方法的交互示意图;
图5为本申请实施例提供的一种流量管理方法流程图;
图6为本申请实施例提供的一种流表规则的管理及流量管理过程示意图;
图7为本申请实施例提供的另一种流表规则的管理方法的交互示意图;
图8为本申请实施例提供的另一种流表规则的管理方法的交互示意图;
图9为本申请实施例提供的另一种流量管理方法流程图;
图10为本申请实施例提供的另一种流表规则的管理及流量管理过程示意图;
图11为本申请实施例提供的另一种流表规则的管理及流量管理过程示意图;
图12为本申请实施例提供的另一种流表规则的管理方法的交互示意图;
图13为本申请实施例提供的另一种流量管理方法的交互示意图;
图14为本申请实施例提供的另一种流表规则的管理及流量管理过程示意图;
图15为本申请实施例提供的另一种流表规则的管理方法的交互示意图;
图16为本申请实施例提供的一种流表规则的管理装置的结构示意图;
图17为本申请实施例提供的另一种流表规则的管理装置的结构示意图;
图18为本申请实施例提供的一种流量管理装置的结构示意图;
图19为本申请实施例提供的另一种流量管理装置的结构示意图;
图20为本申请实施例提供的一种网络设备的结构示意图;
图21为本申请实施例提供的另一种网络设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
随着网卡(network interface card,NIC)的发展,智能网卡(smart NIC)应运而生。智能网卡也称智能网络适配器,除了能完成标准网卡所具有的网络传输功能之外,智能网卡还提供内置的可编程、可配置的硬件加速引擎。智能网卡不仅能够提升应用程序的性能,还可以大幅降低中央处理器(central processing unit,CPU)在通信中的消耗,因而能够为应用程序提供更多的CPU资源。也正因为如此,随着网络带宽的增加,VS的一些流量管理操作可由智能网卡实现。本申请实施例提供了一种流表规则的管理方法以及流量管理方法,以在VS将流表规则下发到智能网卡后,能够对智能网卡上的流表规则进行管理,进一步基于流表规则进行流量管理。
示例性地,本申请实施例提供的方法可应用于如图1所示的实施环境中。图1中,该实施环境包括SDN控制器、VS和智能网卡。SDN控制器与VS连接,VS上插接有至少一个智能网卡(图1中仅以一个为例进行说明)。其中,VS是支持OpenFlow协议的虚拟交换机,OpenFlow协议是一套SDN控制协议,不同厂商使用该标准实现交换机和控制器(controller)能够相互兼容,从而便于实现SDN。可选地,VS可以是开源虚拟交换机(open virtual switch,OVS)。
在一种可能的实现方式中,SDN控制器管理所有流表,流表中包括一条或多条流匹配规则。SDN控制器向VS下发OpenFlow表,OpenFlow表中包括至少一条OpenFlow匹配规则,VS可基于OpenFlow表生成ACL,也即生成一条或者多条ACL流匹配规则。以图2所示的实施环境为例,VS生成ACL之后,可在VS上管理OpenFlow表和ACL,也即管理OpenFlow匹配规则和ACL流匹配规则。其中,ACL包括但不限于入向(ingress)的ACL和出向(egress)的ACL中的至少一种,也即VS生成的ACL流匹配规则包括但不限于入向的ACL流匹配规则和出向的ACL流匹配规则中的至少一种。入向的ACL流匹配规则用于对报文在入向进行访问控制,出向的ACL流匹配规则用于对报文在出向进行访问控制。
可选地,VS除了基于OpenFlow表生成ACL之外,还可基于OpenFlow表生成模糊匹配流(MegaFlow)表和精确匹配流(extract match cache,EMC)表中的至少一种。以图3所示的实施环境为例,VS可在VS上管理OpenFlow表、ACL、模糊匹配流表和精确匹配流表。其中,模糊匹配流表中包括至少一条模糊流匹配规则,精确匹配流表中包括至少一条精确流匹配规则,该ACL中包括至少一条ACL流匹配规则,该至少一条ACL流匹配规则包括入向的ACL流匹配规则和出向的ACL流匹配规则中的至少一种。
无论VS上管理的流表是哪种,随着网络带宽的增加,VS可将VS上的流表下发到智能网卡,并指示由智能网卡来进行流表规则的管理以及流量管理。在一种可能的实现方式中,VS上运行有数据平面开发套件(data plane development kit,DPDK),DPDK是在数据平面应用中为快速的数据包处理提供的一个简单而完善的开源框架,VS与智能网卡通过该开源框架连接。不同的智能网卡可通过智能网卡上的驱动程序注册到该开源框架上,从而实现VS与智能网卡的绑定,VS也由此能够获取智能网卡的相关信息,例如端口信息。其中,开源框架上包括多个开源接口,也即应用程序编程接口(application programminginterface,API)。VS指示智能网卡进行流表规则的管理时,可通过调用开源框架上对应的API来实现。接下来,以如下几种流表规则的管理方法为例进行说明。
本申请实施例提供了一种流表规则的管理方法,如图4所示的流表规则的管理方法的交互示意图,该管理方法由VS和智能网卡之间的交互来实现。如图4所示,该方法包括但不限于如下步骤401-步骤403。
步骤401,VS获取ACL流匹配规则,ACL流匹配规则用于智能网卡对报文进行运维功能管理。
如图2或图3的实施环境所述,SDN控制器可向VS下发OpenFlow表,VS可基于OpenFlow表生成ACL,也即生成一条或者多条ACL流匹配规则。之后,VS可将生成的ACL流匹配规则下发给智能网卡。示例性地,ACL流匹配规则包括入向的ACL流匹配规则和出向的ACL流匹配规则中的至少一种。任一条ACL流匹配规则用于智能网卡对报文进行运维功能管理,如果ACL流匹配规则仅包括入向的ACL流匹配规则,该入向的ACL流匹配规则可用于智能网卡在入向进行运维功能管理。如果ACL流匹配规则仅包括出向的ACL流匹配规则,该出向的ACL流匹配规则可用于智能网卡在出向进行运维功能管理。如果ACL流匹配规则既包括入向的ACL流匹配规则,也包括出向的ACL流匹配规则,则可用于智能网卡既在入向进行运维功能管理,也在出向进行运维功能管理。
步骤402,VS指示智能网卡管理ACL流匹配规则。
VS将ACL流匹配规则下发给智能网卡后,可指示智能网卡管理ACL流匹配规则,由此实现将ACL流匹配规则下发到智能网卡上,使智能网卡具有运维功能。其中,VS指示智能网卡管理ACL流匹配规则的方式包括但不限于创建ACL流匹配规则、删除ACL流匹配规则以及基于ACL流匹配规则查询统计信息等运维功能。
步骤403,智能网卡管理ACL流匹配规则。
智能网卡接收到VS下发的ACL流匹配规则,根据VS的指示来管理ACL流匹配规则。在一种可能的实现方式中,VS指示智能网卡管理ACL流匹配规则以及智能网卡管理ACL流匹配规则,包括但不限于如下几种情况。
情况一,VS指示智能网卡创建ACL流匹配规则。
在该情况一中,由于VS与智能网卡通过开源框架连接,开源框架上包括多个开源接口,也即API,VS可获取到智能网卡的端口信息。因此,VS指示智能网卡管理ACL流匹配规则时,VS可调用第一API向智能网卡发送第一消息,该第一消息包括智能网卡的第一端口的端口标识,第一消息用于智能网卡在智能网卡的第一端口上创建第一ACL流匹配规则。通过在第一消息中携带端口标识,使得智能网卡能够在对应的端口上创建ACL流匹配规则,提高创建ACL流匹配规则的准确性。
本申请实施例不限定第一API,例如,该第一API对应流表条目创建函数,VS调用第一API,也即实现对流表条目创建函数的调用,进而通过该第一API来封装第一消息,并向智能网卡发送第一消息。由于第一消息包括智能网卡的第一端口的端口标识,使得智能网卡接收到第一消息后,能够确定在哪个端口上创建第一ACL流匹配规则。
在一种可能的实现方式中,该第一消息除了包括智能网卡的第一端口的端口标识外,第一消息还包括流表规则属性、流表规则匹配项和流表规则动作项中的至少一种;其中,流表规则属性用于指示报文需匹配的组、第一ACL流匹配规则的方向信息、流表类型中的至少一种;流表规则匹配项包括匹配以太层信息、匹配虚拟局域网(virtual local areanetwork,VLAN)信息、匹配网际协议第四版(internet protocol version4,IPv4)信息或匹配网际协议第六版(internet protocol version6,IPv6)信息、匹配虚拟扩展局域网(virtual extensible local area network,VXLAN)信息、匹配项结束、报文标记中的至少一种;流表规则动作项包括流表统计、采样转发和流镜像、为报文设置内标记、修改指定字段和引用句柄操作中的至少一种。通过在第一消息中携带流表规则属性、流表规则匹配项和流表规则动作项中的至少一种信息,使得智能网卡创建的ACL流匹配规则更加的准确和全面。
例如,该流表条目创建函数以及第一消息的内容及说明可如下面的表1所示。表1中,保留(reserved)字段对应保留位的高两位,通过保留位的高两位来代表流表规则类型。对于ACL流匹配规则,该reserved参数的高两位为3,代表创建的流表规则类型为ACL流匹配规则。
表1
示例性地,上述表1中的流表规则匹配项,包括但不限于如下表2所示的内容。
表2
/>
示例性地,上述表1中的流表规则动作项,包括但不限于如下表3所示的内容。
表3
基于上述表1-表3,针对运维统计需求,通过flow接口(reserved=3)将ACL流匹配规则下发到智能网卡上。智能网卡在创建ACL流匹配规则时可指定ACL流匹配规则的方向,例如入向(ingress)的ACL流匹配规则或出向(egress)的ACL流匹配规则。对于智能网卡上创建有入向的ACL流匹配规则和出向的ACL流匹配规则的情况,智能网卡对接收到的报文执行入向的ACL流匹配规则匹配,然后进行二三层网络转发,再执行出向的ACL流匹配规则的过程。
可选地,如上面表1所示,智能网卡还支持对ACL流匹配规则进行分组,同一端口同一方向的ACL流匹配规则可对每个分组进行匹配查询。例如,可通过表1中的group参数标识不同的规则组编号。
在一种可能的实现方式中,本申请实施例提供的方法中的ACL流匹配规则可在入向时为报文设置TAG标记,在出向时通过匹配TAG标记即可实现对报文的统计。
需要说明的是,在本申请实施例提供的方法中,ACL流匹配规则支持流表规则匹配项的任意组合。在实施的过程中,本申请实施例提供的方法可不对某一个流表规则匹配项的某些bit进行掩码匹配,但各个流表规则匹配项可通过掩码(mask)的方式确定是否作为上述表2所示的流表规则匹配项。此外,ACL流匹配规则支持上述表3中的流表规则动作项的任意组合。例如,基于表3,可以使用引用1个句柄操作。
在一种可能的实现方式中,智能网卡创建ACL规则之后,该方法还包括:智能网卡向VS发送第二消息,第二消息指示在智能网卡的第一端口上创建第一ACL流匹配规则的结果。示例性地,第二消息包括第一端口的端口标识以及创建第一ACL流匹配规则的结果。例如,智能网卡创建第一ACL流匹配规则的结果为成功时,返回对应的返回值,否则为错误信息。例如,创建第一ACL流匹配规则的结果为成功时,返回的返回值为0。或者,返回值为流表条目对象指针。如果创建第一ACL流匹配规则的结果为失败时,返回值为空指针。
相应的,VS接收智能网卡发送的第二消息。由于第二消息用于指示在智能网卡的第一端口上创建第一ACL流匹配规则的结果,因此,VS基于第二消息可获取到智能网卡在第一端口创建第一ACL流匹配规则的结果。例如,第二消息包括创建第一ACL流匹配规则的结果为成功时对应的返回值,则VS能够确定智能网卡成功创建第一ACL流匹配规则,如果第二消息包括的是错误信息,则VS能够确定智能网卡创建第一ACL流匹配规则失败。通过向VS返回用于指示创建ACL流匹配规则的结果,增加可靠性。
情况二,VS指示智能网卡删除ACL流匹配规则
在该情况二中,VS指示智能网卡管理ACL流匹配规则,包括:VS调用第二API向智能网卡发送第三消息。其中,第三消息用于智能网卡在智能网卡上删除第二ACL流匹配规则。
本申请实施例不对第二API进行限定,当创建的ACL流匹配规则发生变化时,VS可调用第二API,进而通过该第二API来封装第三消息,并向智能网卡发送第三消息。其中,第三消息可包括智能网卡的第二端口的端口标识,以指示智能网卡将在第二端口创建的第二ACL流匹配规则进行删除。可选地,第三消息中除了包括端口标识,还可以包括流信息,例如该流信息包括ACL匹配规则方向和ACL匹配规则项等信息,从而通过该第三消息指示智能网卡删除端口标识对应的端口上与该流信息对应的ACL流匹配规则。
需要说明的是,本申请实施例中的第一端口可与第二端口相同,则第一ACL流匹配规则与第二ACL流匹配规则相同,在创建第一ACL流匹配规则之后,可支持对第一ACL流匹配规则的删除。可选地,第一端口也可与第二端口不同,第二ACL流匹配规则与第二ACL流匹配规则不同,本申请实施例不对创建和删除的ACL流匹配规则是否为同样的ACL流匹配规则进行限定。例如,第二API对应流表条目删除函数。该流表条目删除函数的内容可如下面的表4所示。
表4
相应的,智能网卡管理ACL流匹配规则,包括:智能网卡接收VS调用第二API发送的第三消息,基于第三消息在智能网卡上删除第二ACL流匹配规则。
在一种可能的实现方式中,智能网卡还可向VS返回删除第二ACL流匹配规则的结果,例如,如果删除成功,向VS返回值为0的消息,以使VS根据返回值确定智能网卡成功删除了第二ACL流匹配规则。又例如,如果智能网卡删除第二ACL流匹配规则失败,则返回错误信息,例如错误信息的参数默认为null,以使VS根据返回的错误信息确定智能网卡未成功删除第二ACL流匹配规则。或者,如果删除成功,返回值为流表条目对象指针。如果删除第一ACL流匹配规则的结果为失败时,返回值为空指针。
情况三,VS指示智能网卡查询统计信息
在情况三中,VS指示智能网卡管理ACL流匹配规则,包括:VS调用第三API向智能网卡发送第四消息。其中,第四消息用于智能网卡查询并返回智能网卡的统计信息。
本申请不限定第三API,VS需要查询智能网卡上的统计信息时,通过调用第三API向智能网卡发送第四消息。示例性地,VS通过调用第三API来封装第四消息,该第四消息中包括智能网卡上的端口的端口标识,用于智能网卡查询并返回该端口标识对应的端口上的统计信息。例如,ACL流匹配规则包括流表统计动作项,则智能网卡进行流表统计动作之后,VS可通过第四消息查询智能网卡上的统计信息。可选地,在ACL流匹配规则不包括流表统计动作项的情况下,VS也可调用第三API向智能网卡发送第四消息,以查询智能网卡上的统计信息,例如查询VS下发至智能网卡上的ACL规则条目。
以该第三API对应开源查询函数为例,VS调用第三API,也即调用开源查询函数,查询函数的内容可如下面的表5所示。
表5
相应的,智能网卡管理ACL流匹配规则,包括:智能网卡接收VS调用第三API发送的第四消息,基于第四消息查询并返回智能网卡的统计信息。通过第四消息实现统计信息的查询,使得流表规则的管理更加灵活。
在一种可能的实现方式中,智能网卡还可向VS返回查询结果,例如,如果查询成功,向VS返回值为0的消息,以使VS根据返回值确定智能网卡成功查询到了流表规则的条目。又例如,如果智能网卡查询失败,则返回错误信息,例如错误信息的参数默认为null,以使VS根据返回的错误信息确定智能网卡未查询到流表规则的条目。或者,如果查询成功,返回值为流表条目对象指针。如果查询失败时,返回值为空指针。
本申请实施例提供的方法,通过将运维规则下发到智能网卡,无需流量触发,当使能运维能力时,无需将智能网卡上已存在的转发流表条目清除,首包也不用上送VS进行重新学习;当运维能力关闭或者ACL流匹配规则发生变化时,VS将下发的ACL流匹配规则进行删除,后续收到的报文不经过ACL流匹配规则的匹配即可,使智能网卡具备高可维可靠的运维能力,且灵活性更高。再有,通过智能网卡实现计数统计等运维功能,也即由硬件实现计数统计等,相比于软件实现,统计结果更加准确。
基于上述流表规则的管理方法,本申请实施例提供了一种流量管理方法,参见图5,本申请实施例提供的流量管理方法包括如下步骤501和步骤502。
步骤501,智能网卡接收报文,将报文与智能网卡上创建的ACL流匹配规则进行匹配。
本申请实施例不对智能网卡接收到的报文的类型进行限定,例如,该报文为音视频应用程序的报文,也可以为游戏类应用程序的报文,还可以为即时通讯应用程序的报文等。本申请实施例也不限定智能网卡接收到的报文数量,每个报文均可按照本申请实施例提供的流量管理方法进行管理。
无论是哪种类型的报文,智能网卡接收到该报文后,均将报文与智能网卡上创建的ACL流匹配规则进行匹配。其中,智能网卡上创建的ACL流匹配规则包括入向的ACL流匹配规则和出向的ACL流匹配规则中的至少一种,任一条ACL流匹配规则用于智能网卡对报文进行运维功能管理。例如,如果ACL流匹配规则仅包括入向的ACL流匹配规则,智能网卡将报文与该入向的ACL流匹配规则进行匹配。如果ACL流匹配规则仅包括出向的ACL流匹配规则,该智能网卡将报文与出向的ACL流匹配规则进行匹配。如果ACL流匹配规则既包括入向的ACL流匹配规则,也包括出向的ACL流匹配规则,则智能网卡将报文与入向的ACL流匹配规则和出向的ACL流匹配规则分别进行匹配。
示例性地,无论是入向的ACL流匹配规则,还是出向的ACL流匹配规则,其中,ACL流匹配规则中的流表规则匹配项可如上面的表2所示。智能网卡将报文与ACL流匹配规则中的各条流表规则匹配项进行匹配,如果报文命中任一流表规则匹配项,则认为报文与ACL流匹配规则匹配成功。
例如,以ACL流匹配规则中包括表2中用于匹配以太层信息的流表规则匹配项ETH为例,该流表规则匹配项ETH包括源MAC地址、目的MAC地址和协议类型等匹配项参数。智能网卡接收到报文后,获取报文的源MAC地址、目的MAC地址和协议类型,如果报文的源MAC地址、目的MAC地址和协议类型与ACL流匹配规则中的流表规则匹配项ETH包括的源MAC地址、目的MAC地址和协议类型匹配,则确定报文与ACL流匹配规则匹配成功。
可选地,如果报文与ACL流匹配规则中的各个流表规则匹配项均不匹配,则确定报文与ACL流匹配规则匹配失败。
步骤502,基于报文与ACL流匹配规则匹配成功,智能网卡根据ACL流匹配规则对报文进行运维功能管理。
在一种可能的实现方式中,ACL流匹配规则包括入向的ACL流匹配规则和出向的ACL流匹配规则;基于报文与ACL流匹配规则匹配成功,智能网卡根据ACL流匹配规则对报文进行运维功能管理,包括:基于报文与入向的ACL流匹配规则匹配成功,智能网卡根据入向的ACL流匹配规则对报文进行入向的运维功能管理;智能网卡将报文进行二三层网络转发;基于报文与出向的ACL流匹配规则匹配成功,智能网卡根据出向的ACL流匹配规则对报文进行出向的运维功能管理。
为了便于说明,以图6所示的流表规则的管理和流量管理过程为例,对本申请实施例提供的方法进行举例说明。图6中,VS基于SDN控制器下发的OpenFlow表生成入向的ACL流匹配规则和出向的ACL流匹配规则后,如图6中的虚线箭头所示,将入向的ACL流匹配规则和出向的ACL流匹配规则下发到智能网卡,在智能网卡上进行流表规则的管理。该流表规则的管理过程可参见上述图4所示的流表规则的管理方法,此处不再赘述。
如图6的实线箭头所示,智能网卡接收到报文后,先将报文与入向的ACL流匹配规则进行匹配,如果匹配成功,智能网卡根据入向的ACL流匹配规则对报文进行入向的运维功能管理,也即执行流表规则动作项对应的动作,例如执行入向的流表统计、为报文设置TAG标记等。执行流表规则动作项对应的动作之后,智能网卡将报文进行二三层网络转发。
在报文出智能网卡之前,基于报文与出向的ACL流匹配规则进行匹配,如果匹配成功,智能网卡根据出向的ACL流匹配规则对报文进行出向的运维功能管理。例如,对报文执行出向的流表统计,基于入向设置的TAG标记进行报文的统计等。
可选地,本申请实施例提供的方法还包括:基于报文与入向的ACL流匹配规则或者出向的ACL流匹配规则匹配失败,无需执行ACL流匹配规则中的流表规则动作项,智能网卡将报文直接进行二三层网络转发。
需要说明的是,以上仅以智能网卡管理的ACL流匹配规则包括入向的ACL流匹配规则和出向的ACL流匹配规则为例进行说明。在本申请实施例提供的方法中,智能网卡管理的ACL流匹配规则也可以仅包括入向的ACL流匹配规则,或者仅包括出向的ACL流匹配规则。智能网卡仅包括入向的ACL流匹配规则,或者仅包括出向的ACL流匹配规则可以是VS仅将入向的ACL流匹配规则下发到智能网卡或者仅将出向的ACL流匹配规则下发到智能网卡,也可以是VS将入向的ACL流匹配规则和出向的ACL流匹配规则下发到智能网卡后,又指示将入向的ACL流匹配规则或出向的ACL流匹配规则进行了删除的情况。关于删除ACL流匹配规则的过程,可参见上述图4所示的流表规则的管理方法中的相关说明,此处不再赘述。
针对智能网卡管理的ACL流匹配规则仅包括入向的ACL流匹配规则的情况,智能网卡接收到报文后,先将报文与入向的ACL流匹配规则进行匹配。如果匹配成功,智能网卡根据入向的ACL流匹配规则对报文进行入向的运维功能管理,也即执行流表规则动作项对应的动作,例如执行入向的流表统计、为报文设置TAG标记等。执行流表规则动作项对应的动作之后,智能网卡将报文进行二三层网络转发。
针对智能网卡管理的ACL流匹配规则仅包括出向的ACL流匹配规则的情况,智能网卡接收到报文后,先将报文进行理由转发。在报文出智能网卡之前,将报文与出向的ACL流匹配规则进行匹配,如果匹配成功,智能网卡根据出向的ACL流匹配规则对报文进行出向的运维功能管理,也即执行流表规则动作项对应的动作,例如执行出向的流表统计等。执行流表规则动作项对应的动作之后,智能网卡将报文进行二三层网络转发。
本申请实施例提供的方法,当使能运维能力时,由智能网卡实现运维功能的管理,无需将智能网卡上已有的流表条目清除,接收到的报文也不用上送VS进行重新学习,无需流量触发,只需将ACL流匹配规则下发到智能网卡,并让接收到的报文经过智能网卡进行ACL流规则匹配即可,因此,使智能网卡具备高可维可靠的运维能力。再有,通过智能网卡实现计数统计等运维功能,也即由硬件实现计数统计等,相比于软件实现,统计结果更加准确。
本申请实施例提供了一种流表规则的管理方法,如图7所示的流表规则的管理方法的交互示意图,该管理方法由VS和智能网卡之间的交互来实现。如图7所示,该方法包括但不限于如下步骤701-步骤703。
步骤701,VS获取硬件匹配流表,硬件匹配流表用于智能网卡对流量进行流量管理。其中,硬件匹配流表包括硬件精确匹配流表和硬件模糊匹配流表中的至少一种。
如图2或图3的实施环境所述,SDN控制器可向VS下发OpenFlow表,VS可基于OpenFlow表生成硬件(hardware,hw)匹配流表,硬件匹配流表中包括一条或者多条硬件匹配流规则。之后,VS可将生成的硬件匹配流表下发给智能网卡。其中,硬件匹配流表包括硬件精确匹配流表(hw EMC)和硬件模糊匹配流表(hw MegaFlow)中的至少一种。硬件精确匹配流表的表容量比硬件模糊匹配流表的表容量要大,但硬件模糊匹配流表的查表效率比硬件精确匹配流表的查表效率要高。
在一种可能的实现方式中,硬件模糊匹配流表中包括用于指定类型的报文上送处理的条目,例如该指定类型的报文包括互联网控制报文协议(internet control messageprotocol,ICMP)/动态主机配置协议(dynamic host configuration protocol,DHCP)/地址解析协议(address resolution protocol,ARP)报文等,该条目相比于硬件模糊匹配流表中的其他聚合条目能够优先命中。
此外,当OpenFlow流表配置变化后,下发到智能网卡的流表全部无效,需要全部上送VS再生成更新后的流表条目,而VS和智能网卡之间的带宽有限,因此,有必要缩减下发到智能网卡上的流表条目的数量。例如,本申请实施例中的硬件模糊匹配流表用于与第一报文进行匹配,第一报文为生成流表条目满足第一阈值条件的网元所产生的报文;硬件精确匹配流表用于与第二报文进行匹配,第二报文为满足第二阈值条件的网元所产生的报文。通过将硬件模糊匹配流表与硬件精确匹配流表分别用于与不同的报文进行匹配,由此减少硬件模糊匹配流表与硬件精确匹配流表的流表条目的数量。
本申请实施例不对第一阈值条件和第二阈值条件进行限定,第一阈值条件和第二阈值条件可基于经验设置,也可基于应用场景设置。可选地,在本申请实施例提供的方法中,VS结合控制器的流表规则设置,将会生成超大规格流表条目也即满足第一阈值条件的网元所产生的流量设置为模糊匹配流表并下发至智能网卡,其余场景均作为满足第二阈值条件的网元,使用精确匹配流表并下发至智能网卡。也就是说,第二阈值条件可以是指除了第一阈值条件之外的条件,也即第二报文为第一报文之外的任意报文。
步骤702,VS指示智能网卡管理硬件匹配流表。
VS将硬件匹配流表下发给智能网卡后,可指示智能网卡管理硬件匹配流表,由此实现将硬件匹配流表下发到智能网卡上,使智能网卡具有流量管理功能。其中,VS指示智能网卡管理硬件匹配流表包括但不限于管理硬件精确匹配流表和硬件模糊匹配流表中的至少一种。
步骤703,智能网卡管理硬件匹配流表。
智能网卡接收到VS下发的硬件匹配流表,根据VS的指示来管理硬件匹配流表。在一种可能的实现方式中,VS指示智能网卡管理硬件匹配流表以及智能网卡管理硬件匹配流表,包括但不限于如下交互过程。
由于VS与智能网卡通过开源框架连接,开源框架上包括多个开源接口,也即API,VS可获取到智能网卡的端口信息。因此,VS指示智能网卡管理硬件匹配流表时,VS可调用对应的第一API向智能网卡发送第五消息,该第五消息包括智能网卡的目标端口的端口标识,第五消息用于智能网卡在智能网卡的目标端口上创建硬件匹配流表。
本申请实施例不限定第一API,如图4所示的流表规则的管理方法中,该第一API对应流表条目创建函数,VS调用第一API,也即实现对流表条目创建函数的调用,进而通过该第一API来封装第五消息,并向智能网卡发送第五消息。由于第五消息包括智能网卡的目标端口的端口标识,使得智能网卡接收到第五消息后,能够确定在哪个端口上创建硬件匹配流表。
例如,该流表条目创建函数以及第五消息的内容及说明可如下面的表6所示。表6中,reserved参数对应保留位的高两位,通过保留位的高两位来代表流表规则类型。对于硬件匹配流表,该reserved参数的高两位为0和1中的至少一个值。其中,0代表创建的流表规则类型为精确路由转发规则,也即硬件精确匹配流表。1代表创建的流表规则类型为目的IP模糊匹配规则,也即硬件模糊匹配流表。
表6
在一种可能的实现方式中,该第五消息除了包括智能网卡的目标端口的端口标识外,第五消息还包括流表规则属性、流表规则匹配项和流表规则动作项中的至少一种;其中,流表规则属性用于指示报文需匹配的组和流表类型中的至少一种;流表规则匹配项包括但不限于表2所示的规则匹配项和表7所示的规则匹配项。如表2所示的规则匹配项包括匹配以太层信息、匹配虚拟局域网(virtual local area network,VLAN)信息、匹配网际协议第四版(internet protocol version4,IPv4)信息或匹配网际协议第六版(internetprotocol version6,IPv6)信息、匹配虚拟扩展局域网(virtual extensible local areanetwork,VXLAN)信息、匹配项结束、报文标记中的至少一种;如表7所示的规则匹配项包括匹配dp_hash值、匹配转向标识(recirc_id)。流表规则动作项包括但不限于表8所示的规则动作项和表9所示的规则动作项;如表8所示的规则动作项包括流表统计、转发到端口、POPVLAN、PUSH VLAN、设置VLAN ID、设置VLAN优先级、解封装vxlan头、封装vxlan头、Vxlan头key值、TTL减一、修改源mac地址、修改目的mac地址、采样转发和流镜像、ACTION结束、为报文设置内标记、修改指定字段、引用句柄操作和丢弃报文中的至少一种。如表9所示的规则动作项包括执行dp-hash动作、匹配dp-hash二级表recirc_id和报文上送VS软件控制面。
表7
表8
/>
表9
针对上述表8中的修改指定字段的动作,需支持如表10所示的以下字段。
表10
参见图8,本申请实施例提供的方法还包括步骤704-步骤706。
步骤704,VS获取数据面哈希表,数据面哈希表用于智能网卡对多路径转发报文进行多路径转发。
如图2或图3的实施环境所述,SDN控制器可向VS下发OpenFlow表,VS可基于OpenFlow表生成硬件匹配流表,硬件匹配流表中包括一条或者多条硬件匹配流规则。之后,VS可将生成的硬件匹配流表下发给智能网卡。其中,硬件匹配流表包括硬件精确匹配流表(hardware EMC,hw EMC)和硬件模糊匹配流表(hw MegaFlow)中的至少一种。
在一种可能的实现方式中,硬件匹配流表中包括哈希匹配动作项、转向标识匹配动作项和报文上送VS软件控制面匹配动作项的至少一种。VS除了向智能网卡下发硬件匹配流表,还下发数据面哈希表(Datapath-Hash)。其中,哈希匹配动作项用于指示执行数据面哈希表的查询动作,转向ID用于指示数据面哈希表,数据面哈希表包括哈希值、掩码和转向标识,掩码对应下一跳信息。
步骤705,VS在智能网卡上管理数据面哈希表。
VS将硬件匹配流表下发给智能网卡后,还可向智能网卡下发数据面哈希表,可指示智能网卡管理数据面哈希表,由此实现将硬件匹配流表下发到智能网卡上,节省硬件匹配流表的条目,且使流量卸载到智能网卡,使智能网卡具有流量管理功能。
步骤706,智能网卡管理数据面哈希表,数据面哈希表用于智能网卡对多路径转发报文进行多路径转发。
智能网卡接收到VS下发的数据面哈希表,根据VS的指示来管理数据面哈希表。在一种可能的实现方式中,VS指示智能网卡管理数据面哈希表以及智能网卡管理数据面哈希表,包括但不限于如下交互过程。
由于VS与智能网卡通过开源框架连接,开源框架上包括多个开源接口,也即API,VS可获取到智能网卡的端口信息。因此,VS指示智能网卡管理数据面哈希表时,VS可调用对应的第一API向智能网卡发送第六消息,第六消息用于智能网卡在智能网卡的目标端口上创建数据面哈希表。
本申请实施例不限定第一API,如图4所示的流表规则的管理方法中,该第一API对应流表条目创建函数,VS调用第一API,也即实现对流表条目创建函数的调用,进而通过该第一API来封装第六消息,并向智能网卡发送第六消息。由于该数据面哈希表复用第一API,使得智能网卡接收到第六消息后,能够确定在哪个端口上创建数据面哈希表。
例如,该流表条目创建函数以及第六消息的内容及说明可如下面的表11所示。表11中,reserved参数对应保留位的高两位,通过保留位的高两位来代表流表规则类型。对于数据面哈希表,该reserved参数的高两位为2。其中,2代表创建的流表规则类型为数据面哈希表,也即DP-HASH。
表11
当OpenFlow中配置了DP-HASH相关流表条目时,则下发下一跳信息至DP-HASH表中,此时代表开启DP-HASH功能,硬件匹配流表中的条目如果动作是DP_HASH,则会经过DP-HASH表查询,否则不查询。
其中,硬件匹配流表中的条目需要支持DP HASH和RECIRC_ID两个action字段,也即包括执行dp-hash动作、匹配dp-hash二级表recirc_id两个规则动作项,如下面的表12所示。数据面哈希表可如表13所示。
表12
表13
需要说明的是,图8仅以VS先下发硬件匹配流表,指示智能网卡管理硬件匹配流表,之后再下发数据面哈希表,指示智能网卡管理数据面哈希表为例进行说明。在一种可能的实现方式中,VS可以同时下发硬件匹配流表和数据面哈希表,指示智能网卡管理硬件匹配流表和数据面哈希表。或者,先下发数据面哈希表,再下发硬件匹配流表,本申请实施例不对硬件匹配流表和数据面哈希表的下发和管理顺序进行限定。其中,硬件匹配流表包括硬件精确匹配流表和硬件模糊匹配流表中的至少一种。
本申请实施例提供的方法,硬件精确匹配流表的转发性能低于硬件模糊匹配流表。在有网元大流量的场景,选择硬件模糊匹配流表下发到智能网卡,能够保证主要场景转发性能最高。网元大流量场景下发硬件模糊匹配流表至智能网卡,减少了硬件精确匹配流表生成的流表数量;而硬件模糊匹配流表本身条目不多,因此,当OpenFlow配置发生变化时,显著提升了流量的稳定性,降低了流量震荡。
当智能网卡支持DP-HASH表处理时,针对ECMP场景,硬件匹配流表中无需源IP、四层源port、四层目的port信息,从而进一步减少了硬件匹配流表的条目。当OpenFlow配置发生变化时,显著提升了流量的稳定性。
基于上述图7和图8所示的流表规则的管理方法,本申请实施例提供了一种流量管理方法。参见图9,该方法包括步骤901和步骤902。
步骤901,智能网卡接收报文,将报文与硬件匹配流表进行匹配。
本申请实施例不对智能网卡接收到的报文的类型进行限定,例如,该报文为音视频应用程序的报文,也可以为游戏类应用程序的报文,还可以为即时通讯应用程序的报文等。本申请实施例也不限定智能网卡接收到的报文数量,每个报文均可按照本申请实施例提供的流量管理方法进行管理。
无论是哪种类型的报文,智能网卡接收到该报文后,均将报文与智能网卡上创建的硬件匹配流表进行匹配。其中,智能网卡上创建的硬件匹配流表包括硬件精确匹配流表和硬件模糊匹配流表中的至少一种。例如,如果硬件匹配流表包括硬件精确匹配流表,智能网卡将报文与该硬件精确匹配流表中的流匹配规则进行匹配。如果硬件匹配流表包括硬件模糊匹配流表,该智能网卡将报文与硬件模糊匹配流表中的流匹配规则进行匹配。如果硬件匹配流表包括硬件精确匹配流表和硬件模糊匹配流表,则智能网卡将报文与硬件精确匹配流表和硬件模糊匹配流表中的流匹配规则分别进行匹配。
示例性地,无论是硬件精确匹配流表,还是硬件模糊匹配流表,硬件精确匹配流表和硬件模糊匹配流表中的流表规则匹配项可如上面的表2和表7所示。智能网卡将报文与各条流表规则匹配项进行匹配,如果报文命中任一流表规则匹配项,则认为报文与硬件匹配流表匹配成功。
例如,以硬件匹配流表中包括表2中用于匹配VLAN信息的流表规则匹配项为例进行说明。如表2所示,该流表规则匹配项包括参数名、vlan tci值和内层协议类型。智能网卡接收到报文后,获取报文的参数名、vlan tci值和内层协议类型,如果报文的参数名、vlantci值和内层协议类型与硬件匹配流表中的流匹配规则包括的流表规则匹配项包括的参数名、vlan tci值和内层协议类型匹配,则确定报文与硬件匹配流表匹配成功。
可选地,如果报文与硬件匹配流表中的各个流表规则匹配项均不匹配,则确定报文与硬件匹配流表匹配失败。
步骤902,智能网卡根据报文与硬件匹配流表的匹配结果对报文进行流量管理。
为了便于说明,以图10所示的流表规则的管理和流量管理过程为例,对本申请实施例提供的方法进行举例说明。图10中,VS基于SDN控制器下发的OpenFlow表生成硬件精确匹配流(hw EMC)表和硬件模糊匹配流(hw MegaFlow)表后,如图10中的虚线箭头所示,将硬件精确匹配流表和硬件模糊匹配流表配置下发到智能网卡,在智能网卡上进行流表规则的管理。该流表规则的管理过程可参见上述图7所示的流表规则的管理方法,此处不再赘述。
如图10的实线箭头所示,智能网卡接收到报文后,先将报文与硬件模糊匹配流表进行匹配,如果匹配成功,智能网卡根据硬件模糊匹配流表对报文进行流量管理,也即执行硬件模糊匹配流表中的流匹配规则包括的流表规则动作项对应的动作。执行流表规则动作项对应的动作之后,智能网卡将报文继续传输。可选地,智能网卡将报文与硬件模糊匹配流表进行匹配后,如果报文未命中硬件模糊匹配流表,则智能网卡将报文与硬件精确匹配流表进行匹配,如果匹配成功,智能网卡根据硬件精确匹配流表对报文进行流量管理,也即执行硬件精确匹配流表中的流匹配规则包括的流表规则动作项对应的动作。
在一种可能的实现方式中,智能网卡根据报文与硬件匹配流表的匹配结果对报文进行流量管理,包括:基于报文与硬件匹配流表的匹配结果为报文与硬件匹配流表匹配成功,且硬件匹配流表中包括上送动作项,将报文上送VS;或者,基于报文与硬件匹配流表的匹配结果为报文与硬件匹配流表匹配失败,将报文上送VS。如图10中硬件模糊匹配流表向VS的实线箭头,如果报文与硬件模糊匹配流表匹配失败,或者报文命中硬件模糊匹配流表中的流匹配规则,且命中的流匹配规则中的上送动作项,智能网卡将报文上送VS。如图10中硬件精确匹配流表向VS的实线箭头,如果报文与硬件精确匹配流表匹配失败,或者报文命中硬件精确匹配流表中的流匹配规则,且命中的流匹配规则中的上送动作项,智能网卡将报文上送VS。
需要说明的是,针对硬件匹配流表包括硬件模糊匹配流表和硬件精确匹配流表的情况,上述报文与硬件匹配流表匹配失败,是指报文与硬件模糊匹配流表和硬件精确匹配流表均匹配失败,也即报文既未命中硬件模糊匹配流表,也未命中硬件精确匹配流表。
需要说明的是,以上仅以智能网卡管理的硬件匹配流表包括硬件模糊匹配流表和硬件精确匹配流表为例进行说明。在本申请实施例提供的方法中,智能网卡管理的硬件匹配流表也可以仅包括硬件精确匹配流表,或者仅包括硬件模糊匹配流表。关于硬件匹配流表的过程,可参见上述图7所示的流表规则的管理方法中的相关说明,此处不再赘述。
在一种可能的实现方式中,智能网卡将报文与硬件匹配流表进行匹配,包括:基于报文为第一报文,智能网卡将报文与硬件模糊匹配流表进行匹配,第一报文为生成流表条目满足第一阈值条件的网元所产生的报文;或,基于报文为第二报文,智能网卡将报文与硬件精确匹配流表进行匹配,第二报文为满足第二阈值条件的网元所产生的报文。
针对该种实现方式,对于智能网卡管理的硬件匹配流表包括硬件模糊匹配流表和硬件精确匹配流表的情况,智能网卡接收到报文后,无需将报文分别与硬件模糊匹配流表和硬件精确匹配流表进行匹配,而是先判断报文为第一报文还是第二报文,然后再与硬件模糊匹配流表或硬件精确匹配流表进行匹配。例如,如果智能网卡接收到的报文为第一报文,则可将该报文与硬件模糊匹配流表进行匹配,而无需再与硬件精确匹配流表进行匹配。如果智能网卡接收到的报文为第二报文,则可将该报文与硬件精确匹配流表进行匹配,而无需再与硬件模糊匹配流表进行匹配。如此,根据报文的类型来进行流量管理,提高了管理效率。
在一种可能的实现方式中,报文为多路径转发报文,该方法还包括:智能网卡将报文与数据面哈希表进行匹配;基于报文与数据面哈希表匹配成功,智能网卡对报文进行多路径转发。
示例性地,硬件匹配流表包括哈希匹配动作项和转向标识匹配动作项;其中,哈希匹配动作项用于指示执行数据面哈希表的查询动作,转向标识用于指示数据面哈希表,数据面哈希表包括哈希值、掩码和转向标识,掩码对应下一跳信息;
智能网卡将报文与数据面哈希表进行匹配,包括:智能网卡基于哈希匹配动作项,计算报文对应的哈希值,基于哈希值获取报文对应的掩码;基于转向标识匹配动作项,查找数据面哈希表;基于报文对应的掩码与数据面哈希表中的掩码一致,确定报文与数据面哈希表匹配成功;
智能网卡对报文进行多路径转发,包括:智能网卡按照数据面哈希表中掩码对应的下一跳信息对报文进行多路径转发。
为了便于理解,以图11所示的流表规则的管理和流量管理过程为例,对本申请实施例提供的方法进行举例说明。图11中,VS基于SDN控制器下发的OpenFlow表生成硬件精确匹配流(hw EMC)表、硬件模糊匹配流(hw MegaFlow)表和数据面哈希表(DP Hash)后,如图11中的虚线箭头所示,将硬件精确匹配流表、硬件模糊匹配流表和数据面哈希表配置下发到智能网卡,在智能网卡上进行流表规则的管理。该流表规则的管理过程可参见上述图8所示的流表规则的管理方法,此处不再赘述。
如图11的实线箭头所示,智能网卡接收到报文后,先将报文与硬件模糊匹配流表进行匹配,如果匹配成功,智能网卡根据硬件模糊匹配流表对报文进行流量管理,也即执行硬件模糊匹配流表中的流匹配规则包括的流表规则动作项对应的动作。执行流表规则动作项对应的动作之后,智能网卡将报文与硬件精确匹配流表进行匹配,如果匹配成功,智能网卡根据硬件精确匹配流表对报文进行流量管理,也即执行硬件精确匹配流表中的流匹配规则包括的流表规则动作项对应的动作。之后,智能网卡基于哈希匹配动作项,计算报文对应的哈希值,基于哈希值获取报文对应的掩码;基于转向标识匹配动作项,查找数据面哈希表;基于报文对应的掩码与数据面哈希表中的掩码一致,确定报文与数据面哈希表匹配成功。因此,智能网卡按照数据面哈希表中掩码对应的下一跳信息对报文进行多路径转发。
例如,硬件匹配流表中包括的流匹配规则包括如下两个条目:
dmac=FF:AB:EE:CB:DE,Ip,dip=63.63.63.63/<maskLen>
actions=hash(l4(0)),recirc(0x1111)
dmac=FF:AB:EE:CB:DE,Ip,dip=62.62.62.62/<maskLen>
actions=hash(l4(0)),recirc(0x2222)
智能网卡计算报文的哈希值HASH为:01011101011,将哈希值与掩码0x11做与操作,得到的结果为0x11,数据面哈希表包括如下几个条目:
第一个条目:recirc_id(0x1111),dp_hash(0x00/0x11),
actions=mod_dl_dst:<vmport1-mac>,mod_dl_src:<vmport1-gw-mac>,
load:0x5e->NXM_NX_TUN_ID[],output:<vm1-ofport>;
第二个条目:recirc_id(0x1111),dp_hash(0x01/0x11),
actions=mod_dl_dst:<vmport2-mac>,mod_dl_src:<vmport2-gw-mac>,
load:0x5F->NXM_NX_TUN_ID[],output:<vm2-ofport>,
第三个条目:recirc_id(0x1111),dp_hash(0x10/0x11),
actions=mod_dl_dst:<vmport3-mac>,mod_dl_src:<vmport3-gw-mac>,
load:0x60->NXM_NX_TUN_ID[],load:0x1020303->NXM_NX_TUN_IPV4_SRC[],
load:0x1020304->NXM_NX_TUN_IPV4_DST[],output:<vtep-ofport>
第四个条目:recirc_id(0x1111),dp_hash(0x11/0x11),
actions=mod_dl_dst:<vmport4-mac>,mod_dl_src:<vmport4-gw-mac>,
load:0x60->NXM_NX_TUN_ID[],load:0x1020303->NXM_NX_TUN_IPV4_SRC[],
load:0x1020305->NXM_NX_TUN_IPV4_DST[],output:<vtep-ofport>
第五个条目:recirc_id(0x2222),dp_hash(0x00/0x11),
actions=mod_dl_dst:<vmport3-mac>,mod_dl_src:<vmport3-gw-mac>,
load:0x5e->NXM_NX_TUN_ID[],output:<vm3-ofport>。
基于上述数据面哈希表的内容,由于对报文进行计算得到的结果为0x11,该结果与数据面哈希表中的第四个条目匹配,因而可按照第四个条目对应的下一跳信息对报文进行多路径转发。
上述仅以报文与数据面哈希表匹配成功的情况进行的说明,在另一种可能的实现方式中,硬件匹配流表包括哈希匹配动作项(也即表9中执行dp-hash动作)、转向标识匹配动作项(也即表9中匹配dp-hash二级表recirc_id)和报文上送VS软件控制面匹配动作项;其中,哈希匹配动作项用于指示执行数据面哈希表的查询动作,转向标识用于指示数据面哈希表,数据面哈希表包括哈希值、掩码和转向标识,掩码对应下一跳信息;
智能网卡将报文与数据面哈希表进行匹配,包括:智能网卡基于哈希匹配动作项,计算报文对应的哈希值,基于哈希值获取报文对应的掩码;基于转向标识匹配动作项,查找数据面哈希表;基于报文对应的哈希值与数据面哈希表中的掩码不一致,确定报文与数据面哈希表匹配失败。针对匹配失败的情况,该方法还包括:智能网卡将报文上送VS。
相应的,虚拟交换机VS接收智能网卡发送的报文,该报文由智能网卡在报文与智能网卡上的硬件匹配流表的匹配成功,且硬件匹配流表中包括上送动作项的情况下发送,或者,报文由智能网卡在报文与智能网卡上的硬件匹配流表的匹配失败的情况下发送,或者,报文由智能网卡在报文与智能网卡上的数据面哈希表匹配失败后发送。
VS接收到智能网卡上送的报文后,将报文与VS上的开源流表进行匹配,根据匹配结果对报文进行流量管理。
本申请实施例提供的方法,将硬件匹配流表下发到智能网卡,可适用于带宽增加的情况下,使得流量管理的效率更高。此外,根据报文类型,选择将报文与对应的硬件匹配流表进行匹配,实现流量管理。在有网元大流量的场景,选择硬件模糊匹配流表下发到智能网卡,能够保证主要场景转发性能最高。网元大流量场景下发硬件模糊匹配流表至智能网卡,减少了硬件精确匹配流表生成的流表数量,进一步提高了流量管理的效率;又由于硬件模糊匹配流表本身条目不多,因此,当OpenFlow配置发生变化时,显著提升了流量的稳定性,降低了流量震荡。
当智能网卡支持DP-HASH表处理时,针对ECMP场景,可节省硬件匹配流表中的条目的数量,当OpenFlow配置发生变化时,显著提升了流量管理的稳定性和可靠性。
本申请实施例提供了一种流表规则的管理方法,参见图12,该方法包括如下步骤1201-步骤1203。
步骤1201,VS获取ACL流匹配规则、硬件匹配流表和数据面哈希表。
本申请实施例不限定VS获取ACL流匹配规则、硬件匹配流表和数据面哈希表的先后顺序,获取ACL流匹配规则的过程可参考图4所示的步骤401的相关描述,获取硬件匹配流表的过程可参考图7所示的步骤701的相关描述,获取数据面哈希表的过程可参考图8所示的步骤704的相关描述,此处不再一一赘述。除了管理ACL流匹配规则,还可以管理硬件匹配流表,使得流表规则的管理更加全面,且灵活性更高。
步骤1202,VS指示智能网卡管理ACL流匹配规则、硬件匹配流表和数据面哈希表。
步骤1203,智能网卡管理ACL流匹配规则、硬件匹配流表和数据面哈希表。
本申请实施例不限定VS指示智能网卡管理ACL流匹配规则、硬件匹配流表和数据面哈希表的先后顺序进行限定,VS指示智能网卡管理ACL流匹配规则以及智能网卡管理ACL流匹配规则的过程可参考图4所示的步骤402和步骤403的相关描述,VS指示智能网卡管理硬件匹配流表的过程以及智能网卡管理硬件匹配流表的过程可参考图7所示的步骤702和步骤703的相关描述,VS指示智能网卡管理数据面哈希表以及智能网卡管理数据面哈希表的过程可参考图8所示的步骤705和步骤706的相关描述,此处不再一一赘述。
本申请实施例提供了一种流量管理方法,参见图13,该方法包括如下步骤1301-步骤1305。
步骤1301,智能网卡接收报文,将报文与智能网卡上创建的入向的ACL流匹配规则进行匹配。
该步骤1301的实现过程可参考图5所示的步骤501以及图6的相关描述,此处不再赘述。
步骤1302,基于报文与ACL流匹配规则匹配成功,智能网卡根据入向的ACL流匹配规则对报文进行运维功能管理。
该步骤1302的实现过程可参考图5所示的步骤502以及图6的相关描述,此处不再赘述。
步骤1303,智能网卡将报文与硬件匹配流表进行匹配,硬件匹配流表包括硬件精确匹配流表和硬件模糊匹配流表中的至少一种。
该步骤1302的实现过程可参考图9所示的步骤901以及图10的相关描述,此处不再赘述。
步骤1304,智能网卡根据报文与硬件匹配流表的匹配结果对报文进行流量管理。
该步骤1304的实现过程可参考图9所示的步骤902以及图10的相关描述,此处不再赘述。
在一种可能的实现方式中,报文为多路径转发报文,该方法还包括如下的步骤1305。
步骤1305,智能网卡将报文与数据面哈希表进行匹配;基于报文与数据面哈希表匹配成功,智能网卡对报文进行多路径转发。
该步骤1305的实现过程可参考图9所示的步骤902下面有关数据面哈希表的相关描述以及图11的相关描述,此处不再赘述。
步骤1306,智能网卡将报文与智能网卡上创建的出向的ACL流匹配规则进行匹配。
该步骤1306的实现过程可参考图5所示的步骤501以及图6的相关描述,此处不再赘述。
步骤1307,基于报文与ACL流匹配规则匹配成功,智能网卡根据出向的ACL流匹配规则对报文进行运维功能管理。
该步骤1307的实现过程可参考图5所示的步骤502以及图6的相关描述,此处不再赘述。
为了便于理解,以图14所示的流表规则的管理过程以及流量管理过程为例,对本申请实施例中上述图12提供的流表规则的管理方法以及图13所示的流量管理方法进行举例说明。图14中,VS基于SDN控制器下发的OpenFlow表生成入向的ACL也即入向的ACL流匹配规则和出向的ACL也即出向的ACL流匹配规则后,如图14中的虚线箭头所示,将入向的ACL流匹配规则和出向的ACL流匹配规则下发到智能网卡,在智能网卡上进行流表规则的管理。该流表规则的管理过程可参见上述图4所示的流表规则的管理方法,此处不再赘述。此外,VS基于SDN控制器下发的OpenFlow表生成硬件精确匹配流(hw EMC)表、硬件模糊匹配流(hwMegaFlow)表和数据面哈希表(DP Hash)后,如图14中的虚线箭头所示,将硬件精确匹配流表、硬件模糊匹配流表和数据面哈希表配置下发到智能网卡,在智能网卡上进行流表规则的管理。该流表规则的管理过程可参见上述图8所示的流表规则的管理方法,此处不再赘述。
智能网卡接收到报文后,如图14的实线箭头所示,先将报文与入向的ACL流匹配规则进行匹配,如果匹配成功,智能网卡根据入向的ACL流匹配规则对报文进行入向的运维功能管理,也即执行流表规则动作项对应的动作,例如执行入向的流表统计、为报文设置TAG标记等。执行流表规则动作项对应的动作之后,智能网卡将报文与硬件模糊匹配流表进行匹配,如果匹配成功,智能网卡根据硬件模糊匹配流表对报文进行流量管理,也即执行硬件模糊匹配流表中的流匹配规则包括的流表规则动作项对应的动作。执行流表规则动作项对应的动作之后,智能网卡将报文与硬件精确匹配流表进行匹配,如果匹配成功,智能网卡根据硬件精确匹配流表对报文进行流量管理,也即执行硬件精确匹配流表中的流匹配规则包括的流表规则动作项对应的动作。之后,智能网卡基于哈希匹配动作项,计算报文对应的哈希值,基于哈希值获取报文对应的掩码;基于转向标识匹配动作项,查找数据面哈希表;基于报文对应的掩码与数据面哈希表中的掩码一致,确定报文与数据面哈希表匹配成功。因此,智能网卡按照数据面哈希表中掩码对应的下一跳信息对报文进行多路径转发。
在报文出智能网卡之前,基于报文与出向的ACL流匹配规则进行匹配,如果匹配成功,智能网卡根据出向的ACL流匹配规则对报文进行出向的运维功能管理。例如,对报文执行出向的流表统计,基于入向设置的TAG标记进行报文的统计等。
可选地,本申请实施例提供的方法还包括:基于报文与入向的ACL流匹配规则匹配失败,无需执行入向的ACL流匹配规则中的流表规则动作项,智能网卡将报文与硬件模糊匹配流表进行匹配。基于报文与硬件模糊匹配流表的匹配结果为报文与硬件模糊匹配流表匹配成功,且硬件模糊匹配流表中包括上送动作项,将报文上送VS;或者,基于报文与硬件模糊匹配流表的匹配结果为报文与硬件模糊匹配流表匹配失败,将报文上送VS。
除上述上送VS的情况外,如果报文与硬件模糊匹配流表匹配成功,且硬件模糊匹配流表中不包括上送动作项,按照硬件模糊匹配流表对报文进行流量管理之后,将报文与硬件精确匹配流表进行匹配。基于报文与硬件精确匹配流表的匹配结果为报文与硬件精确匹配流表匹配成功,且硬件精确匹配流表中包括上送动作项,将报文上送VS;或者,基于报文与硬件精确匹配流表的匹配结果为报文与硬件精确匹配流表匹配失败,将报文上送VS。
如果基于报文与硬件精确匹配流表的匹配结果为报文与硬件精确匹配流表匹配成功,且硬件精确匹配流表中不包括上送动作项,按照硬件精确匹配流表对报文进行流量管理之后,智能网卡基于哈希匹配动作项,计算报文对应的哈希值,基于哈希值获取报文对应的掩码;基于转向标识匹配动作项,查找数据面哈希表;基于报文对应的掩码与数据面哈希表中的掩码一致,确定报文与数据面哈希表匹配成功。因此,智能网卡按照数据面哈希表中掩码对应的下一跳信息对报文进行多路径转发。最后,再将报文与出向的ACL流匹配规则进行匹配,如果匹配成功,智能网卡根据出向的ACL流匹配规则对报文进行出向的运维功能管理。
本申请实施例还提供了一种流表规则的管理方法,以该方法由SDN控制器与VS的交互执行为例,如图15所示,该方法包括步骤1501-步骤1503。
步骤1501,SDN控制器基于流表聚合标记获取策略路由。
在一种可能的实现方式中,网元在网元网络共享磁盘(network sharing disk,NSD)描述文件中,对与终端侧相连接的端口所在的虚拟路由器(virtual router)上增加是否为南北向(出入数据中心(data center,DC))的标识,该标识用于指示该端口流表是否聚合使用。当网元从该端口发出三层业务报文时,能够统一去往外部网关(gateway,GW)。SDN控制器在OpenFlow表的处理流程中,对于虚拟路由器中的标识为南北向的标识,增加策略路由,以指示三层报文默认转发到GW。
示例性地,策略路由匹配字段包括端口标识(port),可选地,该策略路由匹配字段还包括vlan、源MAC(smac)、目的MAC(dmac)和以太类型(ethtype)中的至少一项。该策略路由匹配字段还包括action,示例性地,该action为转发到GW,例如,以VXLAN封装的方式转发到GW。
步骤1502,SDN控制器将策略路由下发给VS,指示VS基于该策略路由管理硬件模糊匹配流表。
通过将策略路由下发给VS,指示VS基于该策略路由管理硬件模糊匹配表时,用于该端口流表聚合使用,进一步缩减精确匹配表与模糊匹配表的流表条目。
步骤1503,VS接收策略路由,基于策略路由和OpenFlow表生成硬件模糊匹配流表。
可选地,VS基于策略路由和OpenFlow表生成硬件模糊匹配流表之后,VS可基于该硬件模糊匹配流表进行流量管理。在一种可能的实现方式中,VS还可将生成的硬件模糊匹配流表下发到智能网卡上,指示智能网卡管理硬件模糊匹配流表。也就是说,本申请实施例提供的图15所示的流表规则的管理方法可应用于图7、图8以及图13所示的步骤701中获取硬件模糊匹配流表的过程。VS生成硬件模糊匹配流表之后,还可将生成的硬件模糊匹配流表下发到智能网卡上,指示智能网卡管理硬件模糊匹配流表的过程可参考图7、图8以及图13所示的步骤702及之后的过程,此处不再一一赘述。
图16是本申请实施例提供的一种流表规则的管理装置的结构示意图,该装置应用于智能网卡,智能网卡用于与VS连接,该智能网卡为上述图4所示的智能网卡。基于图16所示的如下多个模块,该图16所示的流表规则的管理装置能够执行智能网卡所执行的全部或部分操作。应理解到,该装置可以包括比所示模块更多的附加模块或者省略其中所示的一部分模块,本申请实施例对此并不进行限制。如图16所示,该装置包括:
管理模块1601,用于管理访问控制列表ACL流匹配规则,ACL流匹配规则用于智能网卡对报文进行运维功能管理。
在一种可能的实现方式中,ACL流匹配规则包括入向的ACL流匹配规则和出向的ACL流匹配规则中的至少一种。
在一种可能的实现方式中,管理模块1601,用于接收VS调用第一应用程序编程接口API发送的第一消息,该第一消息包括智能网卡的第一端口的端口标识;基于第一消息在智能网卡的第一端口上创建第一ACL流匹配规则。
在一种可能的实现方式中,第一消息还包括流表规则属性、流表规则匹配项和流表规则动作项中的至少一种;其中,流表规则属性用于指示报文需匹配的组、第一ACL流匹配规则的方向信息、流表类型中的至少一种;流表规则匹配项包括匹配以太层信息、匹配虚拟局域网VLAN信息、匹配网际协议第四版IPv4信息或匹配网际协议第六版IPv6信息、匹配虚拟扩展局域网VXLAN信息、匹配项结束、报文标记中的至少一种;流表规则动作项包括流表统计、采样转发和流镜像、为报文设置内标记、修改指定字段和引用句柄操作中的至少一种。
在一种可能的实现方式中,该装置还包括:发送模块,用于向VS发送第二消息,第二消息指示在智能网卡的第一端口上创建第一ACL流匹配规则的结果。
在一种可能的实现方式中,管理模块1601,用于接收VS调用第二API发送的第三消息,基于第三消息在智能网卡上删除第二ACL流匹配规则。
在一种可能的实现方式中,管理模块1601,用于接收VS调用第三API发送的第四消息,基于第四消息查询并返回智能网卡的统计信息。
在一种可能的实现方式中,管理模块1601,还用于管理硬件匹配流表,硬件匹配流表用于智能网卡对流量进行流量管理,硬件匹配流表包括硬件精确匹配流表和硬件模糊匹配流表中的至少一种。
在一种可能的实现方式中,硬件模糊匹配流表用于与第一报文进行匹配,第一报文为生成流表条目满足第一阈值条件的网元所产生的报文;硬件精确匹配流表用于与第二报文进行匹配,第二报文为满足第二阈值条件的网元所产生的报文。
在一种可能的实现方式中,管理模块1601,还用于管理数据面哈希表,数据面哈希表用于智能网卡对多路径转发报文进行多路径转发。
在一种可能的实现方式中,硬件匹配流表中包括哈希匹配动作项、转向标识匹配动作项和报文上送VS软件控制面匹配动作项的至少一种;其中,哈希匹配动作项用于指示执行数据面哈希表的查询动作,转向标识用于指示数据面哈希表,数据面哈希表包括哈希值、掩码和转向标识,掩码对应下一跳信息。
图17是本申请实施例提供的一种流表规则的管理装置的结构示意图,该装置应用于VS,VS用于与智能网卡连接,该VS为上述图4或图7或图8所示的VS。基于图17所示的如下多个模块,该图17所示的流表规则的管理装置能够执行VS所执行的全部或部分操作。应理解到,该装置可以包括比所示模块更多的附加模块或者省略其中所示的一部分模块,本申请实施例对此并不进行限制。如图17所示,该装置包括:
获取模块1701,用于获取访问控制列表ACL流匹配规则,ACL流匹配规则用于智能网卡对报文进行运维功能管理;
指示模块1702,用于指示智能网卡管理ACL流匹配规则。
在一种可能的实现方式中,ACL流匹配规则包括入向的ACL流匹配规则和出向的ACL流匹配规则中的至少一种。
在一种可能的实现方式中,指示模块1702,用于调用第一应用程序编程接口API向智能网卡发送第一消息,第一消息包括智能网卡的第一端口的端口标识,第一消息用于智能网卡在智能网卡的第一端口上创建第一ACL流匹配规则。
在一种可能的实现方式中,第一消息还包括流表规则属性、流表规则匹配项和流表规则动作项中的至少一种;其中,流表规则属性用于指示报文需匹配的组、第一ACL流匹配规则为入向的ACL流匹配规则还是出向的ACL流匹配规则、流表类型中的至少一种;流表规则匹配项包括匹配以太层信息、匹配虚拟局域网VLAN信息、匹配网际协议第四版IPv4信息或匹配网际协议第六版IPv6信息、匹配虚拟扩展局域网VXLAN信息、匹配项结束、报文标记中的至少一种;流表规则动作项包括流表统计、采样转发和流镜像、为报文设置内标记、修改指定字段和引用句柄操作中的至少一种。
在一种可能的实现方式中,该装置还包括:接收模块,用于接收智能网卡发送的第二消息,第二消息用于指示在智能网卡的第一端口上创建第一ACL流匹配规则的结果。
在一种可能的实现方式中,指示模块1702,用于调用第二API向智能网卡发送第三消息,第三消息用于智能网卡在智能网卡上删除第二ACL流匹配规则。
在一种可能的实现方式中,指示模块1702,用于调用第三API向智能网卡发送第四消息,第四消息用于智能网卡查询并返回智能网卡的统计信息。
在一种可能的实现方式中,获取模块1701,还用于获取硬件匹配流表,硬件匹配流表用于智能网卡对流量进行流量管理,硬件匹配流表包括硬件精确匹配流表和硬件模糊匹配流表中的至少一种;
指示模块1702,还用于指示智能网卡管理硬件匹配流表。
在一种可能的实现方式中,硬件模糊匹配流表用于与第一报文进行匹配,第一报文为生成流表条目满足第一阈值条件的网元所产生的报文;硬件精确匹配流表用于与第二报文进行匹配,第二报文为满足第二阈值条件的网元所产生的报文。
在一种可能的实现方式中,获取模块1701,还用于获取数据面哈希表,数据面哈希表用于智能网卡对多路径转发报文进行多路径转发;指示模块1702,还用于指示智能网卡管理数据面哈希表。
在一种可能的实现方式中,硬件匹配流表中包括哈希匹配动作项、转向标识匹配动作项和报文上送VS软件控制面匹配动作项的至少一种;其中,哈希匹配动作项用于指示执行数据面哈希表的查询动作,转向ID用于指示数据面哈希表,数据面哈希表包括哈希值、掩码和转向标识,掩码对应下一跳信息。
图18是本申请实施例提供的一种流量管理装置的结构示意图,该装置应用于智能网卡,智能网卡用于与VS连接,该智能网卡为上述图5或图9所示的智能网卡。基于图18所示的如下多个模块,该图18所示的流量管理装置能够执行智能网卡所执行的全部或部分操作。应理解到,该装置可以包括比所示模块更多的附加模块或者省略其中所示的一部分模块,本申请实施例对此并不进行限制。如图18所示,该装置包括:
接收模块1801,用于接收报文,将报文与智能网卡上创建的访问控制列表ACL流匹配规则进行匹配;
管理模块1802,用于基于报文与ACL流匹配规则匹配成功,根据ACL流匹配规则对报文进行运维功能管理。
在一种可能的实现方式中,ACL流匹配规则包括入向的ACL流匹配规则和出向的ACL流匹配规则;管理模块1802,用于基于报文与入向的ACL流匹配规则匹配成功,根据入向的ACL流匹配规则对报文进行入向的运维功能管理;将报文进行二三层网络转发;基于报文与出向的ACL流匹配规则匹配成功,根据出向的ACL流匹配规则对报文进行出向的运维功能管理。
在一种可能的实现方式中,管理模块1802,还用于将报文与硬件匹配流表进行匹配,硬件匹配流表包括硬件精确匹配流表和硬件模糊匹配流表中的至少一种;根据报文与硬件匹配流表的匹配结果对报文进行流量管理。
在一种可能的实现方式中,管理模块1802,用于基于报文为第一报文,将报文与硬件模糊匹配流表进行匹配,第一报文为生成流表条目满足第一阈值条件的网元所产生的报文;或,基于报文为第二报文,将报文与硬件精确匹配流表进行匹配,第二报文为满足第二阈值条件的网元所产生的报文。
在一种可能的实现方式中,管理模块1802,用于基于报文与硬件匹配流表的匹配结果为报文与硬件匹配流表匹配成功,且硬件匹配流表中包括上送动作项,将报文上送VS;或者,基于报文与硬件匹配流表的匹配结果为报文与硬件匹配流表匹配失败,将报文上送VS。
在一种可能的实现方式中,报文为多路径转发报文,管理模块1802,还用于将报文与数据面哈希表进行匹配;基于报文与数据面哈希表匹配成功,对报文进行多路径转发。
在一种可能的实现方式中,硬件匹配流表包括哈希匹配动作项和转向标识匹配动作项;其中,哈希匹配动作项用于指示执行数据面哈希表的查询动作,转向标识用于指示数据面哈希表,数据面哈希表包括哈希值、掩码和转向标识,掩码对应下一跳信息;
管理模块1802,用于基于哈希匹配动作项,计算报文对应的哈希值,基于哈希值获取报文对应的掩码;基于转向标识匹配动作项,查找数据面哈希表;基于报文对应的掩码与数据面哈希表中的掩码一致,确定报文与数据面哈希表匹配成功;
管理模块1802,用于按照数据面哈希表中掩码对应的下一跳信息对报文进行多路径转发。
在一种可能的实现方式中,硬件匹配流表包括哈希匹配动作项、转向标识匹配动作项和报文上送VS软件控制面匹配动作项;其中,哈希匹配动作项用于指示执行数据面哈希表的查询动作,转向标识用于指示数据面哈希表,数据面哈希表包括哈希值、掩码和转向标识,掩码对应下一跳信息;
管理模块1802,用于基于哈希匹配动作项,计算报文对应的哈希值,基于哈希值获取报文对应的掩码;基于转向标识匹配动作项,查找数据面哈希表;基于报文对应的哈希值与数据面哈希表中的掩码不一致,确定报文与数据面哈希表匹配失败;
管理模块1802,还用于将报文上送虚拟交换机VS。
图19是本申请实施例提供的一种流量管理装置的结构示意图,该装置应用于VS,VS用于与智能网卡连接,该VS为上述图9所示的VS。基于图19所示的如下多个模块,该图19所示的流量管理装置能够执行VS所执行的全部或部分操作。应理解到,该装置可以包括比所示模块更多的附加模块或者省略其中所示的一部分模块,本申请实施例对此并不进行限制。如图19所示,该装置包括:
接收模块1901,用于接收智能网卡发送的报文,报文由智能网卡在报文与智能网卡上的硬件匹配流表的匹配成功,且硬件匹配流表中包括上送动作项的情况下发送,或者,报文由智能网卡在报文与智能网卡上的硬件匹配流表的匹配失败的情况下发送,或者,报文由智能网卡在报文与智能网卡上的数据面哈希表匹配失败后发送;
管理模块1902,用于将报文与VS上的开源流表进行匹配,根据匹配结果对报文进行流量管理。
本申请实施例提供的一种管理装置,该管理装置可为智能网卡或者VS,用于执行上述图4、图5、图7、图8、图9、图12、图13以及图15中所示的方法中智能网卡或者VS涉及的操作。示例性地,该管理装置包括:处理器,该处理器用于实现智能网卡或者VS所涉及的操作。
在一种可能的实现方式中,该装置为芯片。
在一种可能的实现方式中,该装置为网络设备,该网络设备的类型包括以下至少一项:路由器、交换机或服务器。
示例性地,处理器是通用中央处理器(central processing unit,CPU)、数字信号处理器(digital signal processor,DSP)、网络处理器(network processer,NP)、图形处理器(graphics processing unit,GPU)、神经网络处理器(neural-network processingunits,NPU)、数据处理单元(data processing unit,DPU)、微处理器或者一个或多个用于实现本申请方案的集成电路。例如,处理器1001包括专用集成电路(application-specificintegrated circuit,ASIC),可编程逻辑器件(programmable logic device,PLD)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。PLD例如是复杂可编程逻辑器件(complex programmable logic device,CPLD)、现场可编程逻辑门阵列(field-programmable gate array,FPGA)、通用阵列逻辑(generic array logic,GAL)或其任意组合。其可以实现或执行结合本申请实施例公开内容所描述的各种逻辑方框、模块和电路。该处理器也可以是实现计算功能的组合,例如包括一个或多个微处理器组合,DSP和微处理器的组合等等。
参见图20,图20示出了本申请一个示例性实施例提供的网络设备2000的结构示意图。图20所示的网络设备2000可为智能网卡或者VS,用于执行上述图4、图5、图7、图8、图9、图12、图13以及图15中所示的方法所涉及的操作。该网络设备2000例如是交换机、路由器等,该网络设备2000可以由一般性的总线体系结构来实现。如图20所示,网络设备2000包括至少一个处理器2001、存储器2003以及至少一个通信接口2004。
处理器2001例如是CPU、DSP、NP、GPU、NPU、DPU、微处理器或者一个或多个用于实现本申请方案的集成电路。例如,处理器2001包括ASIC,PLD或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。PLD例如是,CPLD、FPGA、GAL或其任意组合。其可以实现或执行结合本申请实施例公开内容所描述的各种逻辑方框、模块和电路。该处理器也可以是实现计算功能的组合,例如包括一个或多个微处理器组合,DSP和微处理器的组合等等。
可选的,网络设备2000还包括总线。总线用于在网络设备2000的各组件之间传送信息。总线可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图20中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器2003例如是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其它类型的静态存储设备,又如是随机存取存储器(random access memory,RAM)或者可存储信息和指令的其它类型的动态存储设备,又如是电可擦可编程只读存储器(electrically erasable programmable read-only memory,EEPROM)、只读光盘(compactdisc read-only memory,CD-ROM)或其它光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其它磁存储设备,或者是能够用于携带或存储具有指令或数据结构形式的期望的程序指令并能够由计算机存取的任何其它介质,但不限于此。存储器2003例如是独立存在,并通过总线与处理器2001相连接。存储器2003也可以和处理器2001集成在一起。
通信接口2004使用任何收发器一类的装置,用于与其它设备或通信网络通信,通信网络可以为以太网、无线接入网(RAN)或无线局域网(wireless local area network,WLAN)等。通信接口2004可以包括有线通信接口,还可以包括无线通信接口。具体的,通信接口2004可以为以太(ethernet)接口、快速以太(fast ethernet,FE)接口、千兆以太(gigabit ethernet,GE)接口,异步传输模式(asynchronous transfer mode,ATM)接口,无线局域网(wireless local area networks,WLAN)接口,蜂窝网络通信接口或其组合。以太网接口可以是光接口,电接口或其组合。在本申请实施例中,通信接口2004可以用于网络设备2000与其他设备进行通信。
在具体实现中,作为一种实施例,处理器2001可以包括一个或多个CPU,如图20中所示的CPU0和CPU1。这些处理器中的每一个可以是一个单核(single-CPU)处理器,也可以是一个多核(multi-CPU)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
在具体实现中,作为一种实施例,网络设备2000可以包括多个处理器,如图20中所示的处理器2001和处理器2005。这些处理器中的每一个可以是一个单核处理器(single-CPU),也可以是一个多核处理器(multi-CPU)。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(如计算机程序指令)的处理核。
在具体实现中,作为一种实施例,网络设备2000还可以包括输出设备和输入设备。输出设备和处理器2001通信,可以以多种方式来显示信息。例如,输出设备可以是液晶显示器(liquid crystal display,LCD)、发光二级管(light emitting diode,LED)显示设备、阴极射线管(cathode ray tube,CRT)显示设备或投影仪(projector)等。输入设备和处理器2001通信,可以以多种方式接收用户的输入。例如,输入设备可以是鼠标、键盘、触摸屏设备或传感设备等。
在一些实施例中,存储器2003用于存储执行本申请方案的程序指令2010,处理器2001可以执行存储器2003中存储的程序指令2010。也即是,网络设备2000可以通过处理器2001以及存储器2003中的程序指令2010,来实现方法实施例提供的流表规则的管理方法或者流量管理方法。程序指令2010中可以包括一个或多个软件模块。可选地,处理器2001自身也可以存储执行本申请方案的程序代码或指令。
在具体实施例中,本申请实施例的网络设备2000可对应于上述图4、图5、图7、图8、图9、图12、图13以及图15中方法实施例中的VS,网络设备2000中的处理器2001读取存储器2003中的指令,使图21所示的网络设备2000能够执行VS所执行的全部或部分操作。
在具体实施例中,本申请实施例的网络设备2000可对应于上述图4、图5、图7、图8、图9、图12、图13以及图15中方法实施例中的智能网卡,网络设备2000中的处理器2001读取存储器2003中的指令,使图21所示的网络设备2000能够执行智能网卡所执行的全部或部分操作。
网络设备2000还可以对应于上述图16-19所示的装置,该装置中的每个功能模块采用网络设备2000的软件实现。换句话说,装置中包括的功能模块为网络设备2000的处理器2001读取存储器2003中存储的程序指令2010后生成的。
其中,图4、图5、图7、图8、图9、图12、图13以及图15中所示的方法的各步骤通过网络设备2000的处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤,为避免重复,这里不再详细描述。
参见图21,图21示出了本申请另一个示例性实施例提供的网络设备2100的结构示意图。图21所示的网络设备2100可为智能网卡或者VS,用于执行上述图4、图5、图7、图8、图9、图12、图13以及图15中所示的方法所涉及的操作。该网络设备2100例如是交换机、路由器等,该网络设备2100可以由一般性的总线体系结构来实现。如图21所示,网络设备2100包括:主控板2110和接口板2130。
主控板也称为主处理单元(main processing unit,MPU)或路由处理卡(routeprocessor card),主控板2110用于对网络设备2100中各个组件的控制和管理,包括路由计算、设备管理、设备维护、协议处理功能。主控板2110包括:中央处理器2111和存储器2112。
接口板2130也称为线路接口单元卡(line processing unit,LPU)、线卡(linecard)或业务板。接口板2130用于提供各种业务接口并实现数据包的转发。业务接口包括而不限于以太网接口、POS(packet over SONET/SDH)接口等,以太网接口例如是灵活以太网业务接口(flexible ethernet clients,FlexE Clients)。接口板2130包括:中央处理器2131网络处理器2132、转发表项存储器2134和物理接口卡(physical interface card,PIC)2133。
接口板2130上的中央处理器2131用于对接口板2130进行控制管理并与主控板2110上的中央处理器2111进行通信。
网络处理器2132用于实现报文的转发处理。网络处理器2132的形态可以是转发芯片。转发芯片可以是网络处理器(network processor,NP)。在一些实施例中,转发芯片可以通过专用集成电路(application-specific integrated circuit,ASIC)或现场可编程门阵列(field programmable gate array,FPGA)实现。具体而言,网络处理器2132用于基于转发表项存储器2134保存的转发表转发接收到的报文,如果报文的目的地址为报文处理设备2100的地址,则将该报文上送至CPU(如中央处理器2131)处理;如果报文的目的地址不是报文处理设备2100的地址,则根据该目的地址从转发表中查找到该目的地址对应的下一跳和出接口,将该报文转发到该目的地址对应的出接口。其中,上行报文的处理可以包括:报文入接口的处理,转发表查找;下行报文的处理可以包括:转发表查找等等。在一些实施例中,中央处理器也可执行转发芯片的功能,比如基于通用CPU实现软件转发,从而接口板中不需要转发芯片。
物理接口卡2133用于实现物理层的对接功能,原始的流量由此进入接口板2130,以及处理后的报文从该物理接口卡2133发出。物理接口卡2133也称为子卡,可安装在接口板2130上,负责将光电信号转换为报文并对报文进行合法性检查后转发给网络处理器2132处理。在一些实施例中,中央处理器2131也可执行网络处理器2132的功能,比如基于通用CPU实现软件转发,从而物理接口卡2133中不需要网络处理器2132。
示例性地,网络设备2100包括多个接口板,例如网络设备2100还包括接口板2140,接口板2140包括:中央处理器2141、网络处理器2142、转发表项存储器2144和物理接口卡2143。接口板2140中各部件的功能和实现方式与接口板2130相同或相似,在此不再赘述。
示例性地,网络设备2100还包括交换网板2120。交换网板2120也可以称为交换网板单元(switch fabric unit,SFU)。在网络设备有多个接口板的情况下,交换网板2120用于完成各接口板之间的数据交换。例如,接口板2130和接口板2140之间可以通过交换网板2120通信。
主控板2110和接口板耦合。例如。主控板2110、接口板2130和接口板2140,以及交换网板2120之间通过系统总线与系统背板相连实现互通。在一种可能的实现方式中,主控板2110和接口板2130及接口板2140之间建立进程间通信协议(inter-processcommunication,IPC)通道,主控板2110和接口板2130及接口板2140之间通过IPC通道进行通信。
在逻辑上,网络设备2100包括控制面和转发面,控制面包括主控板2110和中央处理器2111,转发面包括执行转发的各个组件,比如转发表项存储器2134、物理接口卡2133和网络处理器2132。控制面执行路由器、生成转发表、处理信令和协议报文、配置与维护网络设备的状态等功能,控制面将生成的转发表下发给转发面,在转发面,网络处理器2132基于控制面下发的转发表对物理接口卡2133收到的报文查表转发。控制面下发的转发表可以保存在转发表项存储器2134中。在有些实施例中,控制面和转发面可以完全分离,不在同一网络设备上。
值得说明的是,主控板可能有一块或多块,有多块的时候可以包括主用主控板和备用主控板。接口板可能有一块或多块,网络设备的数据处理能力越强,提供的接口板越多。接口板上的物理接口卡也可以有一块或多块。交换网板可能没有,也可能有一块或多块,有多块的时候可以共同实现负荷分担冗余备份。在集中式转发架构下,网络设备可以不需要交换网板,接口板承担整个系统的业务数据的处理功能。在分布式转发架构下,网络设备可以有至少一块交换网板,通过交换网板实现多块接口板之间的数据交换,提供大容量的数据交换和处理能力。所以,分布式架构的报文处理设备的数据接入和处理能力要大于集中式架构的报文处理设备。示例性地,网络设备的形态也可以是只有一块板卡,即没有交换网板,接口板和主控板的功能集成在该一块板卡上,此时接口板上的中央处理器和主控板上的中央处理器在该一块板卡上可以合并为一个中央处理器,执行两者叠加后的功能,这种形态的网络设备的数据交换和处理能力较低(例如,低端交换机或路由器等网络设备)。具体采用哪种架构,取决于具体的组网部署场景,此处不做任何限定。
在一种可能的实现方式中,本申请实施例还提供了一种管理系统,该系统包括:VS和智能网卡。示例性地,VS和智能网卡均适用于上述管理装置。示例性地,该管理系统基于图20和图21示出的网络设备得到。例如,VS为图20所示的网络设备2000或图21所示的网络设备2100,智能网卡为图20所示的网络设备2000或图21所示的网络设备2100。VS和智能网卡所执行的方法可参见上述图4、图5、图7、图8、图9、图12、图13以及图15中所示的方法所示实施例的相关描述,此处不再加以赘述。
本申请实施例还提供了一种通信装置,该装置包括:收发器、存储器和处理器。其中,该收发器、该存储器和该处理器通过内部连接通路互相通信,该存储器用于存储指令,该处理器用于执行该存储器存储的指令,以控制收发器接收信号,并控制收发器发送信号,并且当该处理器执行该存储器存储的指令时,使得该处理器执行图4、图5、图7、图8、图9、图12、图13以及图15中智能网卡或者VS所需执行的方法。
应理解的是,上述处理器可以是CPU,还可以是其他通用处理器、DSP、ASIC、FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者是任何常规的处理器等。值得说明的是,处理器可以是支持进阶精简指令集机器(advanced RISC machines,ARM)架构的处理器。
进一步地,在一种可选的实施例中,上述存储器可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据。存储器还可以包括非易失性随机存取存储器。例如,存储器还可以存储设备类型的信息。
该存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用。例如,静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic random access memory,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data dateSDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(directrambus RAM,DR RAM)。
本申请实施例还提供了一种计算机可读存储介质,存储介质中存储有至少一条指令,指令由处理器加载并执行以实现如上图4、图5、图7、图8、图9、图12、图13以及图15中任一所述的方法。
本申请实施例还提供了一种计算机程序(产品),当计算机程序被计算机执行时,可以使得处理器或计算机执行上述方法实施例中对应的方法的各个步骤和/或流程。
本申请实施例还提供了一种芯片,包括处理器,用于从存储器中调用并运行所述存储器中存储的指令,使得安装有所述芯片的通信设备执行如上图4、图5、图7、图8、图9、图12、图13以及图15中任一所述的方法。
本申请实施例还提供另一种芯片,包括:输入接口、输出接口、处理器和存储器,所述输入接口、输出接口、所述处理器以及所述存储器之间通过内部连接通路相连,所述处理器用于执行所述存储器中的代码,当所述代码被执行时,所述处理器用于执行如上图4、图5、图7、图8、图9、图12、图13以及图15中任一所述的方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘solid statedisk)等。
本领域普通技术人员可以意识到,结合本文中所公开的实施例中描述的各方法步骤和模块,能够以软件、硬件、固件或者其任意组合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各实施例的步骤及组成。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域普通技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,该程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机程序指令。作为示例,本申请实施例的方法可以在机器可执行指令的上下文中被描述,机器可执行指令诸如包括在目标的真实或者虚拟处理器上的器件中执行的程序模块中。一般而言,程序模块包括例程、程序、库、对象、类、组件、数据结构等,其执行特定的任务或者实现特定的抽象数据结构。在各实施例中,程序模块的功能可以在所描述的程序模块之间合并或者分割。用于程序模块的机器可执行指令可以在本地或者分布式设备内执行。在分布式设备中,程序模块可以位于本地和远程存储介质二者中。
用于实现本申请实施例的方法的计算机程序代码可以用一种或多种编程语言编写。这些计算机程序代码可以提供给通用计算机、专用计算机或其他可编程的数据处理装置的处理器,使得程序代码在被计算机或其他可编程的数据处理装置执行的时候,引起在流程图和/或框图中规定的功能/操作被实施。程序代码可以完全在计算机上、部分在计算机上、作为独立的软件包、部分在计算机上且部分在远程计算机上或完全在远程计算机或服务器上执行。
在本申请实施例的上下文中,计算机程序代码或者相关数据可以由任意适当载体承载,以使得设备、装置或者处理器能够执行上文描述的各种处理和操作。载体的示例包括信号、计算机可读介质等等。
信号的示例可以包括电、光、无线电、声音或其它形式的传播信号,诸如载波、红外信号等。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、设备和模块的具体工作过程,可以参见前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,该模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、设备或模块的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
该作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请实施例方案的目的。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以是两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
该集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。计算机可读存储介质可以是包含或存储用于或有关于指令执行系统、装置或设备的程序的任何有形介质。计算机可读存储介质可以是机器可读信号介质或机器可读存储介质。计算机可读存储介质可以包括但不限于电子的、磁的、光学的、电磁的、红外的或半导体系统、装置或设备,或其任意合适的组合。计算机可读存储介质的更详细示例包括带有一根或多根导线的电气连接、便携式计算机磁盘、硬盘、随机存储存取器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、光存储设备、磁存储设备,或其任意合适的组合。
还应理解,在本申请的各个实施例中,各个过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
本申请中术语“至少一个”的含义是指一个或多个,本申请中术语“多个”的含义是指两个或两个以上,例如,多个目标对象是指两个或两个以上的目标对象。
应理解,在本文中对各种所述示例的描述中所使用的术语只是为了描述特定示例,而并非旨在进行限制。如在对各种所述示例的描述和所附权利要求书中所使用的那样,单数形式“一个(“a”,“an”)”和“该”旨在也包括复数形式,除非上下文另外明确地指示。
还应理解,本文中所使用的术语“和/或”是指并且涵盖相关联的所列出的项目中的一个或多个项目的任何和全部可能的组合。术语“和/或”,是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本申请中的字符“/”,一般表示前后关联对象是一种“或”的关系。
还应理解,术语“包括”(也称“includes”、“including”、“comprises”和/或“comprising”)当在本说明书中使用时指定存在所陈述的特征、整数、步骤、操作、元素、和/或部件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元素、部件、和/或其分组。
还应理解,术语“若”和“如果”可被解释为意指“当...时”(“when”或“upon”)或“响应于确定”或“响应于检测到”。类似地,根据上下文,短语“若确定...”或“若检测到[所陈述的条件或事件]”可被解释为意指“在确定...时”或“响应于确定...”或“在检测到[所陈述的条件或事件]时”或“响应于检测到[所陈述的条件或事件]”。
应理解,根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其它信息确定B。
还应理解,说明书通篇中提到的“一个实施例”、“一实施例”、“一种可能的实现方式”意味着与实施例或实现方式有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”、“一种可能的实现方式”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。
需要说明的是,本申请所涉及的信息(包括但不限于用户设备信息、用户个人信息等)、数据(包括但不限于用于分析的数据、存储的数据、展示的数据等)以及信号,均为经用户授权或者经过各方充分授权的,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。例如,本申请中涉及到的多个目标对象中的各个目标对象的位置信息都是在充分授权的情况下获取的。
以上描述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (37)
1.一种流表规则的管理方法,其特征在于,所述管理方法由智能网卡执行,所述智能网卡用于与虚拟交换机VS连接,所述方法包括:
所述智能网卡管理访问控制列表ACL流匹配规则,所述ACL流匹配规则用于所述智能网卡对报文进行运维功能管理。
2.根据权利要求1所述的方法,其特征在于,所述ACL流匹配规则包括入向的ACL流匹配规则和出向的ACL流匹配规则中的至少一种。
3.根据权利要求1或2所述的方法,其特征在于,所述智能网卡管理访问控制列表ACL流匹配规则,所述方法包括:
所述智能网卡接收所述VS调用第一应用程序编程接口API发送的第一消息,所述第一消息包括所述智能网卡的第一端口的端口标识;
所述智能网卡基于所述第一消息在所述智能网卡的所述第一端口上创建第一ACL流匹配规则。
4.根据权利要求3所述的方法,其特征在于,所述第一消息还包括流表规则属性、流表规则匹配项和流表规则动作项中的至少一种;
其中,所述流表规则属性用于指示报文需匹配的组、所述第一ACL流匹配规则的方向信息、流表类型中的至少一种;
所述流表规则匹配项包括匹配以太层信息、匹配虚拟局域网VLAN信息、匹配网际协议第四版IPv4信息或匹配网际协议第六版IPv6信息、匹配虚拟扩展局域网VXLAN信息、匹配项结束、报文标记中的至少一种;
所述流表规则动作项包括流表统计、采样转发和流镜像、为报文设置内标记、修改指定字段和引用句柄操作中的至少一种。
5.根据权利要求3或4所述的方法,其特征在于,所述方法还包括:
所述智能网卡向所述VS发送第二消息,所述第二消息指示在所述智能网卡的所述第一端口上创建所述第一ACL流匹配规则的结果。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述智能网卡管理访问控制列表ACL流匹配规则,所述方法包括:
所述智能网卡接收所述VS调用第二API发送的第三消息,基于所述第三消息在所述智能网卡上删除第二ACL流匹配规则。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述智能网卡管理访问控制列表ACL流匹配规则,所述方法包括:
所述智能网卡接收所述VS调用第三API发送的第四消息,基于所述第四消息查询并返回所述智能网卡的统计信息。
8.根据权利要求1-7任一项所述的方法,其特征在于,所述方法还包括:
所述智能网卡管理硬件匹配流表,所述硬件匹配流表用于所述智能网卡对流量进行流量管理,所述硬件匹配流表包括硬件精确匹配流表和硬件模糊匹配流表中的至少一种。
9.根据权利要求8所述的方法,其特征在于,所述硬件模糊匹配流表用于与第一报文进行匹配,所述第一报文为生成流表条目满足第一阈值条件的网元所产生的报文;
所述硬件精确匹配流表用于与第二报文进行匹配,所述第二报文为满足第二阈值条件的网元所产生的报文。
10.根据权利要求8或9所述的方法,其特征在于,所述方法还包括:
所述智能网卡管理数据面哈希表,所述数据面哈希表用于所述智能网卡对多路径转发报文进行多路径转发。
11.根据权利要求10所述的方法,其特征在于,所述硬件匹配流表中包括哈希匹配动作项、转向标识匹配动作项和报文上送所述VS软件控制面匹配动作项的至少一种;
其中,所述哈希匹配动作项用于指示执行所述数据面哈希表的查询动作,所述转向标识用于指示所述数据面哈希表,所述数据面哈希表包括哈希值、掩码和所述转向标识,所述掩码对应下一跳信息。
12.一种流表规则的管理方法,其特征在于,所述管理方法由虚拟交换机VS执行,所述VS用于与智能网卡连接,所述方法包括:
所述VS获取访问控制列表ACL流匹配规则,所述ACL流匹配规则用于所述智能网卡对报文进行运维功能管理;
所述VS指示所述智能网卡管理所述ACL流匹配规则。
13.根据权利要求12所述的方法,其特征在于,所述ACL流匹配规则包括入向的ACL流匹配规则和出向的ACL流匹配规则中的至少一种。
14.根据权利要求12或13所述的方法,其特征在于,所述VS指示所述智能网卡管理所述ACL流匹配规则,所述方法包括:
所述VS调用第一应用程序编程接口API向所述智能网卡发送第一消息,所述第一消息包括所述智能网卡的第一端口的端口标识,所述第一消息用于所述智能网卡在所述智能网卡的第一端口上创建第一ACL流匹配规则。
15.根据权利要求14所述的方法,其特征在于,所述第一消息还包括流表规则属性、流表规则匹配项和流表规则动作项中的至少一种;
其中,所述流表规则属性用于指示报文需匹配的组、所述第一ACL流匹配规则为入向的ACL流匹配规则还是出向的ACL流匹配规则、流表类型中的至少一种;
所述流表规则匹配项包括匹配以太层信息、匹配虚拟局域网VLAN信息、匹配网际协议第四版IPv4信息或匹配网际协议第六版IPv6信息、匹配虚拟扩展局域网VXLAN信息、匹配项结束、报文标记中的至少一种;
所述流表规则动作项包括流表统计、采样转发和流镜像、为报文设置内标记、修改指定字段和引用句柄操作中的至少一种。
16.根据权利要求14或15所述的方法,其特征在于,所述方法还包括:
所述VS接收所述智能网卡发送的第二消息,所述第二消息用于指示在所述智能网卡的所述第一端口上创建所述第一ACL流匹配规则的结果。
17.根据权利要求12-16任一项所述的方法,其特征在于,所述VS指示所述智能网卡管理所述ACL流匹配规则,所述方法包括:
所述VS调用第二API向所述智能网卡发送第三消息,所述第三消息用于所述智能网卡在所述智能网卡上删除第二ACL流匹配规则。
18.根据权利要求12-17任一项所述的方法,其特征在于,所述VS指示所述智能网卡管理所述ACL流匹配规则,所述方法包括:
所述VS调用第三API向所述智能网卡发送第四消息,所述第四消息用于所述智能网卡查询并返回所述智能网卡的统计信息。
19.根据权利要求12-18任一项所述的方法,其特征在于,所述方法还包括:
所述VS获取硬件匹配流表,所述硬件匹配流表用于所述智能网卡对流量进行流量管理,所述硬件匹配流表包括硬件精确匹配流表和硬件模糊匹配流表中的至少一种;
所述VS指示所述智能网卡管理所述硬件匹配流表。
20.根据权利要求19所述的方法,其特征在于,所述硬件模糊匹配流表用于与第一报文进行匹配,所述第一报文为生成流表条目满足第一阈值条件的网元所产生的报文;
所述硬件精确匹配流表用于与第二报文进行匹配,所述第二报文为满足第二阈值条件的网元所产生的报文。
21.根据权利要求19或20所述的方法,其特征在于,所述方法还包括:
所述VS获取数据面哈希表,所述数据面哈希表用于所述智能网卡对多路径转发报文进行多路径转发;
所述VS指示所述智能网卡管理所述数据面哈希表。
22.根据权利要求21所述的方法,其特征在于,所述硬件匹配流表中包括哈希匹配动作项、转向标识匹配动作项和报文上送所述VS软件控制面匹配动作项的至少一种;
其中,所述哈希匹配动作项用于指示执行所述数据面哈希表的查询动作,所述转向ID用于指示所述数据面哈希表,所述数据面哈希表包括哈希值、掩码和所述转向标识,所述掩码对应下一跳信息。
23.一种流量管理方法,其特征在于,所述方法包括:
智能网卡接收报文,将所述报文与所述智能网卡上创建的访问控制列表ACL流匹配规则进行匹配;
基于所述报文与所述ACL流匹配规则匹配成功,所述智能网卡根据所述ACL流匹配规则对所述报文进行运维功能管理。
24.根据权利要求23所述的方法,其特征在于,所述ACL流匹配规则包括入向的ACL流匹配规则和出向的ACL流匹配规则;
所述基于所述报文与所述ACL流匹配规则匹配成功,所述智能网卡根据所述ACL流匹配规则对所述报文进行运维功能管理,包括:
基于所述报文与所述入向的ACL流匹配规则匹配成功,所述智能网卡根据所述入向的ACL流匹配规则对所述报文进行入向的运维功能管理;
所述智能网卡将所述报文进行二三层网络转发;
基于所述报文与所述出向的ACL流匹配规则匹配成功,所述智能网卡根据所述出向的ACL流匹配规则对所述报文进行出向的运维功能管理。
25.根据权利要求23或24所述的方法,其特征在于,所述方法还包括:
所述智能网卡将所述报文与硬件匹配流表进行匹配,所述硬件匹配流表包括硬件精确匹配流表和硬件模糊匹配流表中的至少一种;
所述智能网卡根据所述报文与所述硬件匹配流表的匹配结果对所述报文进行流量管理。
26.根据权利要求25所述的方法,其特征在于,所述智能网卡将所述报文与硬件匹配流表进行匹配,包括:
基于所述报文为第一报文,所述智能网卡将所述报文与所述硬件模糊匹配流表进行匹配,所述第一报文为生成流表条目满足第一阈值条件的网元所产生的报文;或
基于所述报文为第二报文,所述智能网卡将所述报文与所述硬件精确匹配流表进行匹配,所述第二报文为满足第二阈值条件的网元所产生的报文。
27.根据权利要求25或26所述的方法,其特征在于,所述智能网卡根据所述报文与所述硬件匹配流表的匹配结果对所述报文进行流量管理,包括:
基于所述报文与所述硬件匹配流表的匹配结果为所述报文与所述硬件匹配流表匹配成功,且所述硬件匹配流表中包括上送动作项,将所述报文上送所述VS;
或者,基于所述报文与所述硬件匹配流表的匹配结果为所述报文与所述硬件匹配流表匹配失败,将所述报文上送所述VS。
28.根据权利要求25-27任一项所述的方法,其特征在于,所述报文为多路径转发报文,所述方法还包括:
所述智能网卡将所述报文与数据面哈希表进行匹配;
基于所述报文与所述数据面哈希表匹配成功,所述智能网卡对所述报文进行多路径转发。
29.根据权利要求28所述的方法,其特征在于,所述硬件匹配流表包括哈希匹配动作项和转向标识匹配动作项;其中,所述哈希匹配动作项用于指示执行所述数据面哈希表的查询动作,所述转向标识用于指示所述数据面哈希表,所述数据面哈希表包括哈希值、掩码和所述转向标识,所述掩码对应下一跳信息;
所述智能网卡将所述报文与数据面哈希表进行匹配,包括:
所述智能网卡基于所述哈希匹配动作项,计算所述报文对应的哈希值,基于所述哈希值获取所述报文对应的掩码;
基于所述转向标识匹配动作项,查找所述数据面哈希表;
基于所述报文对应的掩码与所述数据面哈希表中的掩码一致,确定所述报文与所述数据面哈希表匹配成功;
所述智能网卡对所述报文进行多路径转发,包括:
所述智能网卡按照所述数据面哈希表中所述掩码对应的下一跳信息对所述报文进行多路径转发。
30.根据权利要求28所述的方法,其特征在于,所述硬件匹配流表包括哈希匹配动作项、转向标识匹配动作项和报文上送所述VS软件控制面匹配动作项;其中,所述哈希匹配动作项用于指示执行所述数据面哈希表的查询动作,所述转向标识用于指示所述数据面哈希表,所述数据面哈希表包括哈希值、掩码和所述转向标识,所述掩码对应下一跳信息;
所述智能网卡将所述报文与数据面哈希表进行匹配,包括:
所述智能网卡基于所述哈希匹配动作项,计算所述报文对应的哈希值,基于所述哈希值获取所述报文对应的掩码;
基于所述转向标识匹配动作项,查找所述数据面哈希表;
基于所述报文对应的哈希值与所述数据面哈希表中的掩码不一致,确定所述报文与所述数据面哈希表匹配失败;
所述方法还包括:
所述智能网卡将所述报文上送虚拟交换机VS。
31.一种流量管理方法,其特征在于,所述方法包括:
虚拟交换机VS接收智能网卡发送的报文,所述报文由所述智能网卡在所述报文与所述智能网卡上的硬件匹配流表匹配成功,且所述硬件匹配流表中包括上送动作项的情况下发送,或者,所述报文由所述智能网卡在所述报文与所述智能网卡上的硬件匹配流表匹配失败的情况下发送,或者,所述报文由所述智能网卡在所述报文与所述智能网卡上的数据面哈希表匹配失败后发送;
所述VS将所述报文与所述VS上的开源流表进行匹配,根据匹配结果对所述报文进行流量管理。
32.一种管理装置,其特征在于,包括处理器,所述处理器用于实现如权利要求1-11任一项所述的流表规则的管理方法,或者,所述处理器用于实现如权利要求12-22任一项所述的流表规则的管理方法,或者,所述处理器用于实现如权利要求23-30任一项所述的流量管理方法,或者,所述处理器用于实现如权利要求31所述的流量管理方法。
33.根据权利要求32所述的装置,其特征在于,所述管理装置为芯片。
34.根据权利要求32所述的装置,其特征在于,所述管理装置为网络设备,所述网络设备的类型包括以下至少一项:路由器、交换机或服务器。
35.一种管理系统,其特征在于,所述管理系统包括虚拟交换机VS和智能网卡;
其中,所述智能网卡用于执行如权利要求1-11中任一项所述的流表规则的管理方法,所述VS用于执行如权利要求12-22任一项所述的流表规则的管理方法;
或者,所述智能网卡用于实现如权利要求23-30任一项所述的流量管理方法,所述VS用于实现如权利要求31所述的流量管理方法。
36.一种计算机可读存储介质,其特征在于,所述计算机存储介质中存储有至少一条指令,所述至少一条指令由处理器加载并执行,以使计算机实现如权利要求1-11任一项所述的流表规则的管理方法,或者,实现如权利要求12-22任一项所述的流表规则的管理方法,或者,实现如权利要求23-30任一项所述的流量管理方法,或者,实现如权利要求31所述的流量管理方法。
37.一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序由计算机加载并执行,以使所述计算机实现如权利要求1-11任一项所述的流表规则的管理方法,或者,实现如权利要求12-22任一项所述的流表规则的管理方法,或者,实现如权利要求23-30任一项所述的流量管理方法,或者,实现如权利要求31所述的流量管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2023/097966 WO2023236858A1 (zh) | 2022-06-06 | 2023-06-02 | 流表规则的管理方法、流量管理方法、系统及存储介质 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210632725 | 2022-06-06 | ||
CN2022106327257 | 2022-06-06 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117240790A true CN117240790A (zh) | 2023-12-15 |
Family
ID=89093587
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210709643.8A Pending CN117240790A (zh) | 2022-06-06 | 2022-06-21 | 流表规则的管理方法、流量管理方法、系统及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN117240790A (zh) |
WO (1) | WO2023236858A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117640547A (zh) * | 2024-01-24 | 2024-03-01 | 苏州元脑智能科技有限公司 | 访问控制列表下发方法、装置、通信设备及存储介质 |
CN117714398A (zh) * | 2024-02-05 | 2024-03-15 | 浪潮电子信息产业股份有限公司 | 一种数据传输系统、方法、电子设备及存储介质 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8528041B1 (en) * | 2008-11-07 | 2013-09-03 | Sprint Communications Company L.P. | Out-of-band network security management |
CN102739473B (zh) * | 2012-07-09 | 2015-06-24 | 南京中新赛克科技有限责任公司 | 一种应用智能网卡的网络检测方法 |
CN102752119B (zh) * | 2012-07-09 | 2015-06-24 | 南京中新赛克科技有限责任公司 | 一种智能网卡的接口实现方法 |
CN104994065A (zh) * | 2015-05-20 | 2015-10-21 | 上海斐讯数据通信技术有限公司 | 基于软件定义网络的访问控制列表运行系统和方法 |
CN105207873B (zh) * | 2015-08-31 | 2019-02-26 | 华为技术有限公司 | 一种报文处理方法和装置 |
CN108512779B (zh) * | 2017-02-24 | 2020-11-27 | 华为技术有限公司 | 控制信息传递方法、服务器和系统 |
CN108200092A (zh) * | 2018-02-08 | 2018-06-22 | 赛特斯信息科技股份有限公司 | 基于nfv技术加速报文acl匹配处理的方法及系统 |
CN108540387A (zh) * | 2018-06-06 | 2018-09-14 | 新华三云计算技术有限公司 | 网络访问控制方法和装置 |
CN113703912A (zh) * | 2021-07-22 | 2021-11-26 | 新华三大数据技术有限公司 | 一种虚拟机管理方法及装置 |
-
2022
- 2022-06-21 CN CN202210709643.8A patent/CN117240790A/zh active Pending
-
2023
- 2023-06-02 WO PCT/CN2023/097966 patent/WO2023236858A1/zh unknown
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117640547A (zh) * | 2024-01-24 | 2024-03-01 | 苏州元脑智能科技有限公司 | 访问控制列表下发方法、装置、通信设备及存储介质 |
CN117714398A (zh) * | 2024-02-05 | 2024-03-15 | 浪潮电子信息产业股份有限公司 | 一种数据传输系统、方法、电子设备及存储介质 |
CN117714398B (zh) * | 2024-02-05 | 2024-05-10 | 浪潮电子信息产业股份有限公司 | 一种数据传输系统、方法、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2023236858A1 (zh) | 2023-12-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11962501B2 (en) | Extensible control plane for network management in a virtual infrastructure environment | |
CN111901244B (zh) | 一种网络报文转发系统 | |
US8369347B2 (en) | Fiber channel over Ethernet and fiber channel switching based on Ethernet switch fabrics | |
WO2023236858A1 (zh) | 流表规则的管理方法、流量管理方法、系统及存储介质 | |
EP4109830A1 (en) | Packet processing method, device, system, and storage medium | |
US8542679B2 (en) | Method of controlling data propagation within a network | |
US8687649B2 (en) | Message forwarding toward a source end node in a converged network environment | |
CN105531967B (zh) | 一种报文传输方法、设备及通信系统 | |
EP3968580B1 (en) | Method for generating multicast forwarding table entry, and access gateway | |
EP4156626A1 (en) | Ipv6 network communication method, apparatus and system | |
CN106992918B (zh) | 报文转发方法和装置 | |
CN112187584B (zh) | 路径故障探测方法、系统、服务器及存储介质 | |
US20230216792A1 (en) | Method for Generating Routing Information, Method for Sending Location Information, Method for Forwarding Packet, and Device | |
CN116962161A (zh) | 路径检测方法、装置、系统及计算机可读存储介质 | |
US20170339055A1 (en) | Communication device and communication method | |
CN115914087A (zh) | 报文转发方法、装置、设备、系统及存储介质 | |
CN114513485A (zh) | 获取映射规则的方法、装置、设备、系统及可读存储介质 | |
WO2023040782A1 (zh) | 处理报文的方法、系统、设备和存储介质 | |
CN115426305B (zh) | 报文处理方法、装置、系统及存储介质 | |
WO2023078144A1 (zh) | 报文处理方法、装置及系统 | |
EP4175257A1 (en) | Packet processing method, apparatus, and system, and storage medium | |
EP4376375A1 (en) | Packet mirroring method, apparatus, and system | |
EP4304144A1 (en) | Communication method and apparatus | |
WO2024011982A1 (zh) | 报文转发方法、系统、网络设备、存储介质及程序产品 | |
EP4391482A1 (en) | Method, apparatus and system for acquiring capability, method, apparatus and system for sending capability information, and storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |