CN109952746B - 在业务链网络环境中集成物理和虚拟网络功能 - Google Patents

在业务链网络环境中集成物理和虚拟网络功能 Download PDF

Info

Publication number
CN109952746B
CN109952746B CN201780070143.1A CN201780070143A CN109952746B CN 109952746 B CN109952746 B CN 109952746B CN 201780070143 A CN201780070143 A CN 201780070143A CN 109952746 B CN109952746 B CN 109952746B
Authority
CN
China
Prior art keywords
function
message
packet
chain
header
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.)
Active
Application number
CN201780070143.1A
Other languages
English (en)
Other versions
CN109952746A (zh
Inventor
法尔哈德·P·桑娜瓦拉
张红
亨利·L·福里
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Cloud Computing Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN109952746A publication Critical patent/CN109952746A/zh
Application granted granted Critical
Publication of CN109952746B publication Critical patent/CN109952746B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/12Discovery or management of network topologies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/302Route determination based on requested QoS
    • H04L45/306Route determination based on the nature of the carried application
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0813Configuration setting characterised by the conditions triggering a change of settings
    • H04L41/0816Configuration setting characterised by the conditions triggering a change of settings the condition being an adaptation, e.g. in response to network events
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/34Signalling channels for network management communication
    • H04L41/342Signalling channels for network management communication between virtual entities, e.g. orchestrators, SDN or NFV entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

数据报文可以由包括虚拟和物理业务功能的业务功能链或业务功能序列处理。在一种方式中,在软件交换机上分析报文的原始报头和/或净荷,从而确定所述报文是否应该由链处理。如果指示了如此处理,则识别下一个处理所述报文的业务功能。之后,将所述报文转发到实现所述下一个业务功能的虚拟化设备或物理设备。可以修改所述报头的一部分,例如MAC目的地址,从而将所述报文引向所述下一个功能。此外,在一些情况下,可以在所述报文中添加或去除带有链标识的业务功能链(service function chain,SFC)报头。

Description

在业务链网络环境中集成物理和虚拟网络功能
相关申请案交叉申请
本申请要求2016年11月14日递交的发明名称为“在业务链网络环境中集成物理和虚拟网络功能(INTEGRATING PHYSICAL AND VIRTUAL NETWORK FUNCTIONS IN ASERVICE-CHAINED NETWORK ENVIRONMENT)”的第15/350,966号美国非临时专利申请案的在先申请优先权,该在先申请的全部内容以引入的方式并入本文本中。
技术领域
本申请涉及网络技术领域,尤其涉及一种计算机设备以及数据存取方法。
背景技术
网络向终端用户下发业务时,通常使用各种业务功能。举例来说,此类功能包括入侵检测业务、反病毒业务、垃圾邮件过滤器、防火墙、网络地址转换(network addresstranslation,NAT)业务、加权缓存控制器、服务质量(quality of service,QOS)系统、虚拟专用网(virtual private network,VPN)、负载均衡器、广域网(wide area network,WAN)优化器以及父母控制业务。
发明内容
实施例一针对一种设备,所述设备包括:包括指令的非瞬时性内存存储器和一个或多个与所述存储器通信的处理器,其中,所述一个或多个处理器在软件交换机上执行所述指令,从而:确定报文由功能链处理,其中,所述功能链包括一个或多个虚拟网络功能(virtual network function,VNF)和一个或多个物理网络功能(physical networkfunction,PNF);识别所述功能链中的下一个功能;将所述报文转发到所述功能链中的所述下一个功能;当所述下一个功能是所述一个或多个虚拟网络功能中的虚拟网络功能时,将所述报文转发到所述下一个功能之前,在所述报文中添加包括所述功能链的标识的业务功能链(service function chain,SFC)报头;当所述下一个功能是所述一个或多个物理网络功能中的物理网络功能时,将所述报文转发到所述下一个功能之前,从所述报文中去除所述SFC报头。
实施例二针对实施例一,其中,所述一个或多个处理器在所述软件交换机上执行所述指令,从而:确定所述下一个功能是所述一个或多个虚拟网络功能中的一个虚拟网络功能;将所述报文的目的媒体接入控制(medium access control,MAC)地址设置为所述一个虚拟网络功能的输入端口的地址,并将所述报文转发到所述一个虚拟网络功能。
实施例三针对实施例二,其中,所述一个或多个处理器在所述软件交换机上执行所述指令,从而:基于从所述功能链中的先于所述一个虚拟网络功能的其它虚拟网络功能接收所述报文,确定所述下一个功能是所述一个虚拟网络功能。
实施例四针对实施例一至三中的任一项,其中,所述一个或多个处理器在所述软件交换机上执行所述指令,从而:确定所述下一个功能是所述一个或多个物理网络功能中的一个物理网络功能;将所述报文的目的媒体接入控制(Medium Access Control,MAC)地址设置为所述物理网络功能的输入端口的地址,并将所述报文转发到所述物理网络功能。
实施例五针对实施例一至四中的任一项,其中,为了确定所述报文由所述功能链处理,所述一个或多个处理器在所述软件交换机上执行所述指令,从而确定所述报文的原始报头和/或净荷中的字段与指定的一组字段相匹配。
实施例六针对实施例五,其中,所述指定的一组字段指示所述报文来自指定的源且正被发送到指定的目的地。
实施例七针对实施例六,其中,所述指定的源包括互联网协议(InternetProtocol,IP)地址、媒体接入控制(Medium Access Control,MAC)地址或端口中的至少一个;所述指定的目的地包括互联网协议(Internet Protocol,IP)地址、媒体接入控制(Medium Access Control,MAC)地址或端口中的至少一个。
实施例八针对实施例五,其中,所述指定的一组字段指示所述报文是通过指定的协议传输的。
实施例九针对实施例八,其中,所述指定的协议包括传输控制协议(TransmissionControl Protocol,TCP)、用户数据报协议(User Datagram Protocol,UDP)或因特网控制报文协议(Internet Control Message Protocol,ICMP)中的至少一个。
实施例十针对实施例一至九中的任一项,其中,所述一个或多个处理器在所述软件交换机上执行所述指令,从而:将所述报文的目的媒体接入控制(medium accesscontrol,MAC)地址设置为所述下一个功能的地址,并将所述报文转发到所述下一个功能。
实施例十一针对实施例一至十中的任一项,其中,所述一个或多个处理器在所述软件交换机上执行所述指令,从而:当所述下一个功能是所述一个或多个物理网络功能中的物理网络功能,且最近一个处理过所述报文的功能是所述一个或多个虚拟网络功能中的虚拟网络功能时,将所述报文转发到所述下一个功能之前,从所述报文中去除所述SFC报头。
实施例十二针对实施例一至十一中的任一项,其中,所述一个或多个虚拟网络功能托管在一个或多个虚拟化设备上;所述一个或多个物理网络功能托管在一个或多个物理设备上,并不托管在虚拟化设备上。
实施例十三针对一种计算机实现的数据处理方法,包括:利用一个或多个处理器,根据报文的原始报头和/或净荷,确定所述报文将由功能链处理;作为对所述确定所述报文将由所述功能链处理的响应,确定所述功能链中的下一个功能是虚拟网络功能;作为对所述确定所述下一个功能是所述虚拟网络功能的响应,在所述报文中添加包括所述功能链的标识的业务功能链(service function chain,SFC)报头,并将所述报文转发到带有所述SFC报头的所述虚拟网络功能;在所述将所述报文转发到带有所述SFC报头的所述虚拟网络功能之后,确定所述功能链中的下一个功能是物理网络功能;作为对所述确定所述下一个功能是所述物理网络功能的响应,去除所述SFC报头,并将所述报文转发到没有所述SFC报头的所述物理网络功能。
实施例十四针对实施例十三,还包括:利用所述一个或多个处理器:在所述将所述报文转发到没有所述SFC报头的所述物理网络功能之后,从所述物理网络功能接收所述报文,并根据所述报文的所述原始报头和/或净荷,重新确定所述报文将由所述功能链通过对所述报文的所述原始报头中的源MAC地址进行匹配来处理;作为对所述重新确定所述报文将由所述功能链处理的响应,确定所述功能链中的下一个功能是其它虚拟网络功能;作为对所述确定所述功能链中的下一个功能是所述其它虚拟网络功能的响应,在所述报文中添加包括所述标识的所述SFC报头,并将所述报文转发到带有所述报头中的所述标识的所述其它虚拟网络功能。
实施例十五针对实施例十三,其中,所述方法还包括:利用所述一个或多个处理器:在所述将所述报文转发到没有所述SFC报头的所述物理网络功能之后,从所述物理网络功能接收所述报文,并根据所述报文的所述原始报头和/或净荷,重新确定所述报文将由所述功能链处理;作为对所述重新确定所述报文将由所述功能链通过对所述原始报头中的源MAC地址进行匹配来处理的响应,确定所述功能链中的下一个功能是其它物理网络功能;作为对所述确定所述下一个功能是所述其它物理网络功能的响应,将所述报文转发到没有所述SFC报头的所述其它物理网络功能。
实施例十六针对实施例十三至十五中的任一项,其中,所述方法还包括:利用所述一个或多个处理器:在所述将所述报文转发到没有所述SFC报头的所述物理网络功能之后,从所述物理网络功能接收所述报文,并根据所述原始报头和/或净荷,重新确定所述报文将由所述功能链通过对源MAC地址进行匹配来处理;作为对所述重新确定所述报文将由所述功能链处理的响应,确定所述报文已由所述功能链处理完成;作为对所述确定所述报文已由所述功能链处理完成的响应,将所述报文转发到所述原始报头中标识的目的地。
实施例十七针对一种存储用于处理数据的计算机指令的非瞬时性计算机可读介质,当所述计算机指令由一个或多个处理器执行时,使得所述一个或多个处理器进行如下步骤:从物理网络功能接收报文;根据所述报文的原始报头和/或净荷,确定所述报文将由包括所述物理网络功能的功能链处理;作为对所述确定所述报文将由所述功能链处理的响应,确定所述功能链中的下一个功能是虚拟网络功能;作为对所述确定所述下一个功能是所述虚拟网络功能的响应,将所述报文转发到所述虚拟网络功能;确定所述报文已由所述功能链处理完成;作为对所述确定所述报文已由所述功能链处理完成的响应,将所述报文转发到所述原始报头中标识的目的地。
实施例十八针对实施例十七,其中,所述报文的所述目的地是网络中的虚拟化设备;利用软件交换机将所述报文转发到所述目的地。
实施例十九针对实施例十七或十八,其中,所述确定所述报文已由所述功能链处理完成发生在网络的网络节点上的软件交换机上;所述报文的所述目的地在所述网络之外;利用所述网络节点上的软件路由器,将所述报文转发到所述目的地。
实施例二十针对实施例十七至十九中的任一项,其中,所述确定所述报文已由所述功能链处理完成发生在网络的网络节点上的软件交换机上;所述虚拟网络功能托管在所述网络的一个子网中的虚拟化设备中;所述报文的所述目的地在所述网络的其它子网中;利用所述网络节点上的软件路由器,将所述报文转发到所述目的地。
附图说明
本发明的方面通过示例的方式被示出,且不被附图所限制,其中,附图中相同的附图标记表示元件。
图1A描绘了包括物理业务功能的示例网络;
图1B描绘了符合图1A的示例物理业务功能链;
图2A描绘了包括虚拟业务功能的示例网络;
图2B描绘了符合图2A的示例虚拟业务功能链;
图3A描绘了根据一实施例的包括虚拟和物理业务功能的示例网络;
图3B描绘了符合图3A的示例虚拟和物理业务功能链;
图4A是根据一实施例的图3A中的虚拟化设备的图;
图4B是根据一实施例的图4A中的虚拟机模块420提供的虚拟机的图;
图4C是根据一实施例的图3A中的硬件交换机的图;
图4D是根据一实施例的图3A中的物理设备的图;
图5A是根据一实施例的通过虚拟和物理业务功能处理数据报文的方法的流程图;
图5B是根据一实施例的图5A中的步骤506的示例实现方式的流程图;
图5C描绘了根据一实施例的示例数据报文;
图6A描绘了根据一实施例的用于实现图5A中的流程的示例网络,其中,提供了两台虚拟化设备、一台物理设备和一台硬件交换机;
图6B描绘了符合图6A的指示原始报头和/或净荷数据以及相应的链标识(identifier,ID)和功能链的示例数据表;
图7A描绘了根据一实施例的用于实现图5A中的流程的示例网络,其中,提供了两台虚拟化设备、两台物理设备和一台硬件交换机;
图7B描绘了符合图7A的指示原始报头和/或净荷数据以及相应的链标识(identifier,ID)和功能链的示例数据表;
图7C描绘了根据一实施例的用于实现图5A中的流程的示例网络,其中,提供了两台虚拟化设备、两台物理设备和两台硬件交换机;
图8描绘了根据一实施例的用于实现图5A中的流程的示例网络,其中,通过网络节点到达报文目的地;
图9描绘了根据一实施例的用于实现图5A中的流程的示例网络,其中,在网络的不同子网中的虚拟化设备中处理报文源。
具体实施方式
本发明涉及用于集成计算机网络中的虚拟和物理业务功能的设备和技术。
传统上,利用专用的独立计算设备提供诸如开头提到的业务功能。网络运营商会向厂商购买这些传统设备,并以物理方式将这些传统设备连接至其网络,从而利用其业务功能进行数据处理。受欢迎的此类设备厂商包括思科系统公司和帕洛阿尔托网络公司。然而,此类设备价格昂贵,且包含专有软件。此外,每台机器都典型地针对单个业务功能,因而需要用多台设备执行多个业务功能。业务功能也称为网络功能。
最近的趋势是虚拟化,其中,一台计算设备(一台虚拟化设备)托管多台虚拟机。虚拟化设备提供执行操作系统的功能。在该设备中,虚拟机监视器通过本地执行来共享和管理硬件,考虑到了同一台物理设备上存在相互隔离的多个环境。虚拟化设备能够运行独立计算设备的软件,从而执行关联的业务功能。这一方法的优势包括:节省成本和空间,能够轻松纵向扩展,从而应对更大的流量。
然而,在一些情况下,业务功能软件在虚拟化设备中不可用。此外,网络运营商希望继续使用这些独立设备,以免损失其花在这些设备上的投资。
本文提供的技术支持集成虚拟和物理业务功能。数据报文能够被业务功能链或业务功能序列处理,一个功能处理一次。这些业务功能既包括虚拟业务功能,也包括物理业务功能。因此,网络运营商在采用完全虚拟化的业务功能之前,可以将虚拟和物理业务功能结合起来,同时不损失其花在独立设备上的投资。
在一种方式中,在软件交换机上分析报文的原始报头和/或净荷,从而确定该报文是否应该由业务功能链处理。如果指示了如此处理,则识别下一个处理该报文的业务功能。之后,将该报文转发到实现下一个业务功能的虚拟化设备或物理设备。该报文一经处理,就可以返回到同一软件交换机,或者转发到其它软件交换机,从而确定链中的下一个处理该报文的业务功能,或者确定该报文已由链处理完成。
可以修改该报文的原始报头,从而将该报文引向下一个功能,无论下一个功能是虚拟功能还是物理功能。此外,向虚拟业务功能转发该报文时,可以在所述报文中添加带有链标识的SFC报头。向物理业务功能转发该报文时,可以去除这个带有链标识的SFC报头,其中,物理网络功能运行其自身的专有软件且识别不出这一标识。
图1A描绘了包括物理业务功能的示例网络100。在这一示例中,提供了三台物理设备110、120和130。这些设备是计算设备,比如不托管虚拟机的服务器。这些物理设备有时被称为裸金属服务器、非虚拟化设备或者不实现虚拟机的设备。每一台物理设备都托管各自的物理业务功能(physical service function,PSF),并与硬件交换机相关联。在一种方式中,硬件交换机是数据中心的架顶式交换机。硬件交换机可以连接到机架上的多台物理设备,并将这些设备连接到网络。物理设备110、120和130分别托管物理业务功能PSF1 111、PSF2 121和PSF3 131,并且分别与硬件交换机112、122和132相关联。源计算设备101生成一系列数据报文,这些数据报文首先通过硬件交换机112传输到物理设备110,以便由PSF1进行处理。之后,硬件交换机112通过硬件交换机122将报文转发到物理设备120,以便由PSF2进行处理。之后,硬件交换机122通过硬件交换机132将报文转发到物理设备130,以便由PSF3进行处理。报文被最后一个业务功能处理之后,硬件交换机132将报文转发到目的计算设备140。每一台硬件交换机可以用于将入流量引向关联的物理设备,并将出流量从关联的物理设备引向下一个硬件交换机。
图1B描绘了图1A中的网络提供的物理业务功能PSF1 111、PSF2 121和PSF3 131组成的示例链150。链一般包括多个业务功能,其中,每次由一个业务功能以指定的顺序处理数据。数据的处理取决于业务功能的用途。处理可能导致数据被阻挡而无法到达目的地,或者延迟到达目的地,或者被修改,等等。处理也可能导致报文净荷改变,比如插入了HTTP报头的情况。
图2A描绘了包括虚拟业务功能的示例网络200。在此示例中,提供了两台虚拟化设备210和220。通常,虚拟业务功能可以在各自的虚拟机上运行,虚拟机托管在一台或多台虚拟化设备上。虚拟化设备是指托管虚拟机的物理设备。在此示例中,每一台虚拟化设备托管多个虚拟业务功能(virtual service function,VSF),并与软件交换机相关联。交换机由服务器内的软件实现,能够在虚拟化设备中转发报文,或者向其它虚拟化设备或物理设备转发报文。因此,交换机可以作为路由器。在一种方式中,软件交换机采用开源标准,比如,提供多层虚拟交换机的开放虚拟交换标准(Open vSwitch,OVS)。此外,软件交换机包括分析报文的报头和/或净荷信息的分类器。报头和/或净荷信息可以指示,例如,应该将报文转发到链中的下一个业务功能,或者报文由业务功能链处理。VSF和软件交换机可以由编排器设备205进行配置。例如,它可以是拥有用户接口的计算设备;通过该用户接口,操作员将特定的VSF部署给特定的虚拟化设备,并配置分类器和交换机,以实现针对指定报文类型的指定业务功能链。
虚拟化设备210包括分别托管在(例如,运行或执行在)虚拟机VM1、VM2和VM3上的虚拟业务功能(VSF)VSF1 211、VSF2 212和VSF3 213,以及配有分类器215的软件交换机214。虚拟化设备220包括分别托管在虚拟机VM4和VM5上的虚拟业务功能VSF4 221和VSF5222。
源201向软件交换机214传输报文。分类器确定是否每个报文都要由业务功能链处理。此外,如果报文要由业务功能链处理,则确定链中的下一个功能。之后,软件交换机将报文转发到链中的所下一个业务功能。处理后,VSF向软件交换机返回报文,链中的下一个业务功能被识别。在此示例中,下一个业务功能可以是在同一虚拟化设备中,也可以是在其它虚拟化设备中。报文依次由虚拟化设备210中的VSF1、VSF2和VSF3进行处理。之后,报文被转发到虚拟化设备220中的软件交换机223,以便由VM4和VM5上的VSF4 221和VSF5 222分别进行处理。链中的最后一个业务功能VSF5处理报文后,报文被转发到目的地230。软件交换机223包括与分类器215类似的分类器224。注意,在一种方式中,源和目的地可以分别位于虚拟化设备210和220中的相应虚拟机。或者,源和/或目的地可以位于不同的虚拟化设备或物理设备。
图2B描绘了虚拟业务功能VSF1 211、VSF2 212、VSF3 213、VSF4 221和VSF5 222组成的示例链280。
图3A描绘了根据一实施例的包括虚拟和物理业务功能的示例网络300。如前所述,可以通过集成公共功能链中的虚拟和物理业务功能实现各种优势。通常,链包括一台或多台虚拟化设备上的一个或多个虚拟业务功能,以及一台或多台物理设备上的一个或多个物理业务功能。在此示例中,虚拟化设备311托管虚拟业务功能312,比如图2A中的VSF1 211和VSF3 213,物理设备托管物理业务功能317,比如图1A中的PSF2 121。虚拟化设备311包括配有分类器314的软件交换机313,物理设备318与硬件交换机316相关联。
来自源320的报文被提供给软件交换机,并被分类器归类为由功能链处理。归类可以是基于报文报头中的信息,比如源地址和目的地址、源端口和目的端口以及协议。软件交换机可以向虚拟业务功能转发报文,然后向物理业务功能转发报文。在另一种方式中,软件交换机可以将报文转发给一个虚拟业务功能,例如VSF1,再转发给物理业务功能,例如PSF2,再转发给其它虚拟业务功能,例如VSF3。也可能有其它变化。例如,软件交换机可以将报文首先转发给物理业务功能,再转发给虚拟业务功能。业务功能处理报文之后,报文被转发到目的地321。
编排器310利用用于分类和转发报文的信息配置一台或多台虚拟化设备的软件交换机。图6B和图7B的表中提供了此类信息的示例。
图3B描绘了符合图3A的虚拟和物理业务功能VSF1 211、PSF2 121和VSF3 213组成的示例链380。
图4A是根据一实施例的图3A中的虚拟化设备311的图。该设备包括网络接口401,网络接口401包括端口402。例如,网络接口可以使用以太网标准等进行通信。以太网是一种描述网络设备如何设置用于传输到其它网络设备的数据格式的局域网(local areanetwork,LAN)技术。以太网传输使用包括报头和净荷的报文。除了检错数据之外,报头还包括媒体接入控制(Media Access Control,MAC)目的地址和源地址等信息。网络接口可以是包括端口的网络接口控制卡。通信电缆,比如CAT5电缆,可以插入物理端口。
该设备还包括处理器404。处理器404可以是微处理器,或者处理单元的其它实现方式。该设备还包括工作存储器403和存储器410。
处理器与网络接口、工作存储器和存储器410进行通信。存储器410可以是软件(代码)的非易失性存储器,软件(代码)被加载到工作存储器403中,被处理器404执行以实现本文所述功能。工作存储器可以是易失性存储器,例如RAM。
存储器410包括一组模块411,这一组模块包括分类器412、报头添加/去除模块413、转发模块414和下一个功能/完成检测模块415。分类器确定报文是否由功能链处理。这可以包括确定报文/净荷中的数据字段,比如源地址和目的地址以及协议,是否匹配源地址和目的地址以及协议的指定值。报头添加/去除模块可以在报文中添加或去除带有链ID的SFC报头,并设置报文原始报头中的目的MAC地址。转发模块将报文路由到下一个虚拟或物理业务功能,或者路由到目的设备。下一个功能/完成检测模块确定链中的下一个处理报文的功能,或者确定链完成了处理。例如,见图6B和图7B中的表。存储器还包括虚拟机模块420,虚拟机模块提供图4B所示的虚拟机。
在图4A、图4C和图4D中,存储器和工作存储器可以包括计算机可读的非瞬时性介质。此类介质可以包括所有类型的计算机可读介质,包括磁存储介质、光存储介质、固态存储介质,具体不包括信号。应理解,软件可以安装在设备中,与设备一起出售。或者,可以获取软件,将软件加载到设备中。这包括通过碟盘介质或任何其它形式的网络或分配系统获取软件。例如,可以从软件创作者拥有的服务器或者软件创作者不拥有但使用的服务器中获取软件。软件可以存储在服务器上,以便通过互联网等进行分发。
各种计算设备可以利用示出的所有组件,或仅利用组件的子集。集成级别可因设备而不同。此外,设备可包含一个组件的多个实例,比如多个处理单元、处理器、存储器、发射器、接收器等。数据源可以包括存储待处理数据样本的硬件存储设备。处理器可以是任何类型的电子数据处理器,比如CPU。输入/输出设备可以包括网络接口、存储接口、监测器、键盘、定点设备等。工作存储器可以存储代码,例如由处理器执行以实现本文所述功能的指令。代码可以存储在非易失性存储器中,并加载到工作存储器中。
存储器/存储设备可以包括任何类型的系统存储器,比如静态随机存取存储器(static random access memory,SDRAM)、动态随机存取存储器(dynamic random accessmemory,DRAM)、同步DRAM(synchronous DRAM,SDRAM)、只读存储器(read-only memory,ROM)、固态驱动器、硬盘驱动器、磁盘驱动器或光盘驱动器。存储设备可以包括用于自举时的ROM,以及用于程序执行过程中的程序和数据存储的DRAM。存储设备可以包括非瞬时性的硬件存储设备。
图4B是根据一实施例的虚拟机428或图4A中的虚拟机模块420提供的VM的图。虚拟机包括虚拟的或软件实现的组件,这些组件拥有类似于相应硬件组件的功能。例如,VM包括虚拟存储器424,虚拟存储器424包括用于虚拟业务功能425的软件。还提供了虚拟处理器423。虚拟网络接口421包括虚拟端口422。
图4C是根据一实施例的图3A中的硬件交换机316的图。硬件交换机包括网络接口431,网络接口431包括端口432。硬件交换机还包括处理器434、工作存储器433和存储器435。处理器与网络接口、工作存储器和存储器435通信。存储器435可以是用于软件的非易失性存储器,软件被加载到工作存储器中,由处理器执行以实现本文所述功能。存储器435包括路由模块436,路由模块436用于将报文路由到其它计算设备,比如虚拟化设备和物理设备。在一种方式中,报文报头中的互联网协议(Internet Protocol,IP)目的地址标识了路由报文的目的地。
图4D是根据一实施例的图3A中的物理设备318的图。该设备包括网络接口451,网络接口451包括端口452。该设备还包括处理器454、工作存储器453和存储器455。处理器与网络接口、工作存储器和存储器455通信。存储器455可以是用于软件的非易失性存储器,软件被加载到工作存储器中,由处理器执行以实现本文所述功能。存储器455还包括物理业务功能模块456,用于在业务功能链中处理报文。
图5A是根据一实施例的通过虚拟和物理业务功能处理数据报文的方法的流程图500。例如,该流程可以在一台或多台虚拟化设备上实现。在一种方式中,该流程由虚拟化设备的软件交换机实现。步骤501包括在虚拟化设备的软件交换机上接收报文。决策步骤502确定报文是否有包含链标识(identifier,ID)的SFC报头。在报文已被标识为由标识的功能链处理之后,在向虚拟业务功能转发报文时,可以在报文中添加含有链ID的SFC报头。在一些情况下,不同的功能链可用于根据指定的标准处理不同的报文。例如,父母控制功能可以处理某些报文,而无法处理其它报文。因此,不同的报文可以由不同的链进行处理。此外,不同的链中可以存在共同的功能。链ID标识了用于处理特定报文的指定功能链。
如果决策步骤502为假,步骤503将报文的原始报头和/或净荷中的字段与指定的一组字段进行比较。这是分类器的任务。指定的一组字段可以指示报文来自指定的源且正被发送到指定的目的地。例如,指定的源可以包括互联网协议(Internet Protocol,IP)地址、媒体接入控制(Medium Access Control,MAC)地址或端口中的至少一个,指定的目的地可以包括互联网协议(Internet Protocol,IP)地址、媒体接入控制(Medium AccessControl,MAC)地址或端口中的至少一个。例如,步骤503可以确定报头中的源IP地址和目的IP地址是否分别与指定的源IP地址和目的IP地址相匹配。或者,步骤503可以确定报头中的源IP地址和目的MAC地址是否分别与指定的源IP地址和目的MAC地址相匹配。也可以采用各种其它匹配组合。指定的一组字段也可以指示报文通过指定的协议传输,比如传输控制协议(Transmission Control Protocol,TCP)、用户数据报协议(User Datagram Protocol,UDP)或因特网控制报文协议(Internet Control Message Protocol,ICMP)中的至少一个。
决策步骤504确定是否通过数据链处理报文,例如,步骤503的比较中是否存在匹配。如果决策步骤504为真,则报文来自PSF,步骤506确定链中的下一个处理报文的功能;或者确定处理完成,因而没有下一个功能。下一个功能是基于最近一个处理过报文的功能以及链ID(如果存在的话)来确定的。如果没有最近一个功能,报文应该由链中的第一个功能处理。如果有最近一个功能,则报文应该由链中最近一个功能的下一个功能处理。例如,最近一个功能可以通过报文的源地址或端口进行识别。
步骤506之后,可以跟着执行三个分支之一。在第一个分支,步骤507确定下一个功能是虚拟网络功能。步骤509将报文的目的MAC地址设置为虚拟网络功能的地址。如果报文中尚没有包含链ID的SFC报头,这一步骤还可以将SFC报头添加到报文中。步骤511通过软件交换机,根据目的MAC地址向虚拟网络功能转发报文。转发可以发生在数据链路层。步骤513在虚拟网络功能处理报文,向软件交换机返回处理后的报文。在一种方式中,指定的输入端口和输出端口(端口对)与虚拟网络功能相关联。指定的输入端口上的VNF接收报文,并通过指定的输出端口返回报文。运行VNF的虚拟机可以在报文原始报头中设置一个源地址,使得来自VNF的在软件交换机上接收的报文能够被标识为来自VNF。步骤513之后,再次执行步骤506,从而确定链中的下一个功能,或者确定处理完成。
在步骤506之后的第二个分支中,进行步骤515,其中,功能链处理完成,报文被转发到目的地址。
在步骤506之后的第三个分支中,步骤508确定下一个功能是物理网络功能。步骤510将报文的目的MAC地址设置为物理网络功能的地址。如果报文中有包含链ID的SFC报头,这一步骤也可以从报文中去除SFC报头。这么做是因为报文转发到的硬件交换机是传统的专有设备,识别不出链ID。步骤512通过硬件交换机,根据目的MAC地址向物理网络功能转发报文。步骤514在物理网络功能处理报文,并向目的地址转发报文。例如,目的地址可以是目的IP地址。这是传统硬件交换机的预期行为。转发可以发生在数据链路层之上的网络层。
后续地,功能链的处理在步骤515完成,或者再次执行步骤501,从而在位于目的地址的虚拟化设备中的软件交换机上接收报文。软件交换机可以是步骤501的前一次迭代中所使用的同一软件交换机,或者也可以是别的软件交换机。例如,图6A示出了一种网络,在该网络中,虚拟化设备601中的软件交换机605根据步骤501的第一次迭代处理报文,另一台虚拟化设备611中的软件交换机613根据步骤501的第二次迭代处理报文。
如果决策步骤502为真,则报文来自VSF,并执行步骤506。链ID可以用于直接查找功能链,比如,从表(见图6B和图7B)中查找,并确定所述下一个功能,或者确定处理完成。如果决策步骤504为假,则执行步骤505。这一步骤中,报文不经功能链处理就被转发到目的地址。在这种情况下,报文不满足步骤503中的由功能链处理的标准。
报文中存在SFC报头和链ID时,软件交换机就能够迅速确定报文由指定的功能链处理。这一确定可以通过最少的计算资源实现,且能使报文被迅速路由到下一跳/下一个业务功能。理论上,软件交换机可以通过将原始报头和/或净荷中的数据字段与一组指定的字段相匹配,来重新确定报文由指定的功能链处理,而无需通过SFC报头和链ID来重新确定。然而,由于报文的每一跳,即软件交换机每一次处理报文时,都要进行重新确定,因此这一方式要使用更多的计算资源。
图5B是根据一实施例的图5A中的步骤506的示例实现方式的流程图。步骤506确定链中的下一个处理报文的功能;或者确定处理完成,因而没有下一个功能。在一种方式中,步骤521根据源IP地址、源MAC地址和/或源端口等源地址确定最近一个功能。源地址可以是,比如,VM或物理机的源MAC地址。步骤522识别与链ID相关联的数据库。示例包括图6B和图7B中的表。步骤523基于最近一个功能在数据库中查找下一个功能。步骤524中,如果没有下一个功能,则处理完成。
图5C描绘了根据一实施例的数据报文示例。源计算设备,比如源VM,生成原始数据报文550。示例原始报文遵循以太网格式。原始报文550包括原始报头551和净荷552。原始报头551包括源IP地址、目的IP地址、源MAC地址、目的MAC地址、源端口标识、目的端口标识以及协议标识等数据。产生原始报文时,提供原始报头。在一些情况下,在原始报文中添加被称为SFC报头549的附加报头,以提供修改的报文550a。SFC报头549包括链标识(identifier,ID),如上文所述。如上文所述,在业务功能链处理过程中的不同时刻,报文中可能存在或不存在包括链ID的SFC报头549。此外,可以设置目的MAC地址,以便向下一个业务功能转发报文,无论下一个业务功能是虚拟业务功能还是物理业务功能。通过添加一个单独的SFC报头,可以保持原始报头。即使修改了原始报头以设置MAC目的地址,该修改也是针对原始报头中的已有字段进行的,因此保持了原始报头的结构。因此,已有的读取原始报头并识别其字段的软件流程可以正常运行。
图6A描绘了根据一实施例的用于实现图5A中的流程的示例网络600,其中提供了两台虚拟化设备、一台物理设备和一台硬件交换机。在网络600中,一台虚拟化设备601包括源VM 602、托管虚拟业务功能VSF1 603的虚拟机VM1、托管虚拟业务功能VSF3 604的虚拟机VM2,以及软件交换机605。另一台虚拟化设备611包括目的VM 612和软件(software,SW)交换机613。源VM是生成数据报文的虚拟机,而目的VM是作为报文的预期接收方的虚拟机。然而,在目的VM接收报文之前,报文要由业务功能链进行处理。网络还包括托管物理业务功能PSF2的、且与硬件(hardware,HW)交换机610相关联的物理设备620。
软件交换机可以配置有图6B中的表640,表640中标识了功能链以及用于转发报文的相关信息。
向路径606中的SW交换机605提供源VM生成的报文。SW交换机接收到报文时,确定报文中没有链ID。作为响应,SW交换机(通过分类器605a)确定报文应该由表640中所列的VSF1、PSF2和VSF3等功能组成的指定功能链进行处理。此外,SW交换机确定下一个功能,即链中的第一个功能,为VSF1。SW交换机将报文的目的MAC地址设置为虚拟网络功能的输入端口的地址(比如,将地址设置为DA_VSF1),并根据此地址向VM1上的VSF1转发报文。VM1处理报文,并向路径607中的SW交换机605返回报文。SW交换机605确定报文中有链ID。因而,SW交换机可以直接确定下一个功能,且分类器无需再次确定报文应由指定的功能链处理。
SW交换机605确定下一个功能,即链中的第二个功能,为PSF2。SW交换机将报文的目的MAC地址设置为物理网络功能的输入端口的地址(例如,将地址设置为DA_PSF2),并根据此地址向物理设备630上的PSF2转发报文。硬件交换机将报文路由到物理设备。物理设备处理报文,并且,比如,基于报文的目的IP地址向虚拟化设备611转发报文。
软件交换机613通过路径631接收报文,并(通过分类器613a)对报头和/或净荷进行分析,类似于软件交换机605对接收自源VM的报文进行分析。软件交换机613确定报文应该由指定的功能链处理。此外,报文的源MAC地址指示报文接收自PSF2,因而下一个功能是VSF3。分类器613a对PSF返回的报文的源MAC地址进行匹配,从而识别PSF。除了对原始报头和/或净荷的字段进行匹配以重新确定报文由指定的功能链处理之外,确定链中的下一跳功能,并将报文转发到链中的下一个功能。SW交换机613将报文的目的MAC地址设置为虚拟网络功能VSF3的输入端口的地址(例如,将地址设置为DA_VSF3),并根据此地址向VM2上的VSF3转发报文。VM2处理报文,并向路径632中的SW交换机613返回报文。然后,SW交换机确定链对报文的处理完成,并向目的VM612转发报文。SW交换机613可以将报文的目的MAC地址设置为目的VM的输入端口的地址。
在一种方式中,虚拟业务功能居于虚拟化服务器上,虚拟化服务器是虚拟(叠加)网络中的计算节点。硬件交换机610作为物理路由器并不知道虚拟网络,因此无法监听或者重定向物理业务功能和连接虚拟网络的设备之间的流量。一种集成物理设备和虚拟网络中的虚拟化设备的方法采用了L2网关(L2 Gateway,L2GW)。这是一种针对OpenStack(一种开源云计算软件)的API框架,将两个或更多网络桥接在一起,从而使两个或更多网络面向单个广播域。L2GW可以用于桥接虚拟网络和物理网络。L2是指开放系统互连(Open SystemInterconnection,OSI)模型的二级(数据链路层)。
L2代理可以通过两个数据库(OVSDB和HW_VTEP)与硬件VTEP通信,从而无缝集成物理和虚拟网络。VTEP是指VXLAN隧道端点。VXLAN是指虚拟扩展局域网——一种网络虚拟化技术。OVSDB是指开放vSwitch数据库,一种软件定义网络环境(software-definednetworking,SDN)下的管理协议。开放vSwitch是一种被设计为用作配有基于Linux的虚拟机监视器的虚拟交换机的开源软件交换机。
此外,在一种示例实现方式中,OpenStack Neutron可以用于使得物理设备能够通过L2GW代理与虚拟网络通信。OpenStack Neutron是专注于虚拟计算环境中的网络即服务(networking-as-a-service,NaaS)下发的SDN网络项目。物理设备与硬件VTEP交换机连接。此类交换机的例子包括戴尔的S6000机型和Arista Networks的7000机型。这些交换机使用专有的硬件和软件,其与外界的唯一接口是通过OVS数据库和HW_VTEP数据库。链接与这些HW VTEP之一的端口相连的物理设备的业务要求在物理端口监听报文,然后按照需要重定向报文。然而,由于HW VTEP交换机的架构和专有特性,这一要求是不可能得到满足的。本文提供的技术在适应这些限制的同时,仍能实现虚拟和物理业务功能的链接。
这些技术的一个方面涉及监听报文,并且涉及向链中的下一个业务功能转发报文,报文是计算节点或网络节点(例如虚拟化设备611)上的(附着HW VTEP设备的)物理业务功能发送的,计算节点或网络节点托管报文的最终IP目的地址。L2硬件交换机可以根据报文的目的IP地址,通过VxLAN隧道,将报文路由到托管目的VM 612的计算节点上。然后,分类器613a可以实现规则,对报文的源MAC地址(物理设备630的源MAC地址)和,可选地,报头和/或净荷中的其它数据进行匹配,从而确定报文是否来自物理服务器上的物理业务功能,以及是否要求业务链中进行进一步的处理。如果报文来自物理业务功能,且要求进一步的处理,则分类器重新分类报文,将包含链ID的SFC报头添加到报文中,并向下一个业务功能转发修改后的报文。否则,向目的VM转发报文。因为报文的源MAC地址是来自物理设备630,分类器613a确定路径631上的报文是来自PSF2。
图6B描绘了符合图6A的指示原始报头和/或净荷数据以及相应的链标识(identifier,ID)和功能链的示例数据表640。原始报头和/或净荷数据是数据1,且可以包括例如图5C中的信息,比如源IP地址、目的IP地址、源MAC地址、目的MAC地址、源端口标识、目的端口标识以及协议。数据1被归类为与带有ID1标识的功能链相关联。链包括如下顺序的业务功能:VSF1、PSF2、VSF3。
该表还描绘了最近一个功能组成的链、最近一个功能的源地址、下一个功能以及下一个功能的目的地址的交叉参照列表。源地址和目的地址可以是,例如,MAC地址。MAC地址在OSI模型中的第二层使用。第二层可以涉及以太网通信。
列表的第一行指示:在没有最近一个功能的情况下,链中的下一个功能是带有DA_VSF1的目的地址的VSF1。列表的第二行指示:在VSF1是SA_VSF1源地址所标识的最近一个功能时,链中的下一个功能是带有DA_PSF2目的地址的PSF2。列表的第三行指示:当PSF2是SA_PSF2源地址所标识的最近一个功能时,下一个功能是带有DA_VSF3目的地址的VSF3。列表的第四行指示:当VSF3是SA_VSF3源地址所标识的最近一个功能时,链中没有下一个功能。
图7A描绘了根据一实施例的用于实现图5A中的流程的示例网络700,其中,提供了两台虚拟化设备、两台物理设备和一台硬件交换机。在图6A的示例中,SW交换机613向虚拟业务功能转发来自物理设备的报文。在此示例中,向虚拟业务功能转发来自第二物理设备的报文之前,SW交换机613首先向第二物理设备(例如,托管PSF3 721的物理设备720)转发来自第一物理设备(例如,托管PSF2 621的物理设备620)的报文。此外,报文是通过通用HW交换机610在物理设备之间转发的。
通过向VSF1 603转发来自源VM的报文,在路径606上处理该报文。当SW交换机在路径607上接收到了VSF1返回的报文,SW交换机通过HW交换机610向PSF2转发去除了链ID的报文。托管PSF2的物理设备620基于报文的IP目的地址,在路径631上向SW交换机613转发报文。SW交换机在接收来自物理设备620的MAC地址的报文(并且知道此地址与PSF2相关联)的基础上,确定链中的下一个功能是PSF3,并通过HW交换机610,在路径722上向PSF3转发报文。在转发中,没有使用链ID。托管PSF3的物理设备720基于报文的IP目的地址,在路径723上向SW交换机613转发报文。SW交换机613在接收来自物理设备720的MAC地址的报文(并且知道此地址与PSF3相关联)的基础上,确定链中的下一个功能是VSF4,并通过SW交换机605,在路径608上向VSF4转发报文(带有链ID)。SW交换机613接收VSF4返回的报文,确定链处理完成,并向目的VM 612转发报文。因此,SW交换机613监听来自每一台物理设备的流量,并向物理或虚拟业务功能转发流量。基于比如各自不同的网络接口卡,每一台物理设备都有不同的源MAC地址。
图7B描绘了符合图7A的指示原始报头和/或净荷数据以及相应的链标识(identifier,ID)和功能链的示例数据表740。原始报头和/或净荷数据是数据2,且可以包括例如图5C中的信息,比如源IP地址、目的IP地址、源MAC地址、目的MAC地址、源端口标识、目的端口标识以及协议。数据2被归类为与带有ID2标识的功能链相关联。注意,不同的报文可以由不同的链并发处理。链包括如下顺序的业务功能:VSF1、PSF2、PSF3、VSF4。
该表还描绘了最近一个功能组成的链、最近一个功能的源地址、下一个功能以及下一个功能的目的地址的交叉参照列表。列表的第一行指示:在没有最近一个功能的情况下,链中的下一个功能是带有DA_VSF1目的地址的VSF1。列表的第二行指示:在VSF1是SA_VSF1源地址所标识的最近一个功能时,链中的下一个功能是带有DA_PSF2目的地址的PSF2。列表的第三行指示:当PSF2是SA_PSF2源地址所标识的最近一个功能时,链中的下一个功能是带有DA_PSF3目的地址的PSF3。列表的第四行指示:当PSF3是SA_PSF3源地址所标识的最近一个功能时,链中的下一个功能是带有DA_VSF4目的地址的VSF4。列表的第五行指示:当VSF4是SA_VSF4源地址所标识的最近一个功能时,链中没有下一个功能。在一个示例的实现方式中,表640和表740中的源地址和目的地址可以是MAC地址。
图7C描绘了根据一实施例的用于实现图5A中的流程的示例网络750,其中,提供了两台虚拟化设备、两台物理设备和两台硬件交换机。这与图7A的不同之处在于,物理设备620和物理设备720分别与不同的HW交换机610和HW交换机710相关联。
通过向VSF1 603转发来自源VM的报文,在路径606上处理该报文。当SW交换机在路径607上接收到了VSF1返回的报文,SW交换机通过HW交换机610向PSF2转发报文。托管PSF2的物理设备620基于报文的IP目的地址,在路径631上向SW交换机613转发报文。SW交换机在接收来自物理设备620的MAC地址的报文(并且知道此地址与PSF2相关联)的基础上,确定链中的下一个功能是PSF3,并通过HW交换机710,在路径722a上向PSF3转发报文。托管PSF3的物理设备720基于报文的IP目的地址,在路径723a上向SW交换机613转发报文。SW交换机613在接收来自物理设备720的MAC地址的报文(并且知道此地址与PSF3相关联)的基础上,确定链中的下一个功能是VSF4,并通过SW交换机605,在路径608上向VSF4转发报文。SW交换机613在路径632上接收VSF4返回的报文,确定链处理完成,并向目的VM 612转发报文。
图8描绘了根据一实施例的用于实现图5A中的流程的示例网络800,其中,通过网络节点到达报文目的地。在此示例中,报文目的地在生成报文的源的网络之外。例如,目的地815可以是计算设备,比如连接到互联网814的服务器或客户端设备。此外,提供了虚拟路由器811,或者在软件中实现的路由器,用于将报文路由到目的地。在一些情况下,网络中的软件交换机向网络中的目的地转发报文,而网络中的路由器向网络外的目的地转发报文。
操作与图6A相似。在路径832上向SW交换机813返回报文时,SW交换机813确定链处理完成,且目的地在网络之外(竖虚线的右边)。基于这一判断,SW交换机813向虚拟路由器811转发报文。虚拟路由器又在路径812上向目的地转发报文。虚拟路由器和交换机813在网络节点810中。网络节点810是计算设备,比如用于将网络中的计算设备和网络外的计算设备相连接的服务器。SW交换机813有一个与前文所述的分类器613a类似的分类器813a。
图9描绘了根据一实施例的用于实现图5A中的流程的示例网络900,其中,在网络的不同子网中的虚拟化设备中处理报文源。子网是更大网络的一部分。在此示例中,虚拟化设备601中的源VM、VM1和VM2在第一子网902中,虚拟化设备611中的目的VM 612在第二子网931中。
操作与图6A相似。在路径832上向SW交换机813返回报文时,SW交换机813确定链处理完成,且目的VM在其它子网中。这一判断可以是基于IP目的地址。IP地址可以包括网络前缀,网络前缀后面跟着子网编号和主机编号。基于这一判断,SW交换机813向虚拟路由器811转发报文。虚拟路由器又在路径922上向子网931中的目的VM转发报文。
由此可以看出,本文提供的技术允许已有的物理业务功能通过已有的硬件交换机无缝集成虚拟业务功能,从而实现业务功能链接。
应理解,本发明可以通过多种不同形式来实现,而不应限于在此阐述的实施例。相反,提供这些实施例是为了使本发明内容透彻和完整,并将本发明充分传达给本领域技术人员。实际上,本发明旨在覆盖这些实施例的替代,修改和等同物,并包括在由所附权利要求限定的本发明的范围和精神内。此外列出了大量的具体细节,以便理解透彻。然而,所属领域的普通技术人员将清楚,本实施例可以在没有这些具体细节的情况下实践。
根据本发明的各实施例,本文所述的方法可以通过执行软件程序的硬件计算机系统来实施。此外,在示例性、非限制性实施例中,实施方式可以包括分布式处理、组件/对象分布式处理和并行处理。可以构造虚拟计算机系统处理,从而实现本文所述方法或功能中的一种或多种,本文所述的处理器可以用来支持虚拟处理环境。
此处,结合本发明实施例的方法、装置(系统)以及计算机程序产品的流程图和/或方框图描述本发明的各方面。应当理解,流程图和/或方框图的每个框以及流程图和/或方框图中的框的组合可以由计算机程序指令来实现。可以将这些计算机程序指令提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,以生成一个设备,使得这些通过计算机或其它可编程指令执行装置的处理器所执行的指令创建实现所述流程图和/或方框图中的一个或多个方框所指定的功能/动作的机制。
这里所使用的术语仅用于描述特定方面,而非旨在限制本发明。除非上下文清楚说明,否则本文所用的单数形式“一”和“所述”包括其复数形式。应进一步了解,本说明书中所用的术语“包括”用于说明存在所述特征、整数、步骤、操作、元件和/或部件,但并不排除存在或添加一个或多个其它特征、整数、步骤、操作、元件、部件和/或它们的组合。
本发明的描述是为了阐述和说明,并非详尽的,也不限于所揭露的形式。在不偏离本发明的范围和精神的前提下,多种修改和改变对本领域技术人员而言是显而易见的。选择和描述的本发明各个方面以便更好地解释本发明的原理和实际应用,并且使本领域技术人员能够理解本发明适合预期特定用途的各种修改。
为了本文的目的,每一个与所揭露的技术相关联的流程都可以由一台或多台计算设备持续进行。流程中的各步骤可以由其它步骤中使用的相同或不同的计算设备进行,各步骤无需由单个计算设备进行。虽然已经以特定于结构特征和/或方法动作的语言描述了主题,但是应该理解的是,权利要求书定义的主题不必局限于上面描述的具体特征或动作。实际上,上文所述的特定特征和行为是以实现权利要求的示例形式揭露的。

Claims (16)

1.一种计算机设备,其特征在于,包括:
包括指令的非瞬时性内存存储器;和
一个或多个与所述存储器通信的处理器,其中,所述一个或多个处理器在软件交换机上执行所述指令,从而
确定报文由功能链处理,其中,所述功能链包括一个或多个虚拟网络功能和一个或多个物理网络功能;
识别所述功能链中的下一个功能;
将所述报文转发到所述功能链中的所述下一个功能;
当所述下一个功能是所述一个或多个虚拟网络功能中的虚拟网络功能时,将所述报文转发到所述下一个功能之前,对于不包括所述功能链的标识的业务功能链(servicefunction chain,SFC)报头的报文,在所述报文中添加所述SFC报头;以及
当所述下一个功能是所述一个或多个物理网络功能中的物理网络功能时,将所述报文转发到所述下一个功能之前,从所述报文中去除所述SFC报头。
2.根据权利要求1所述的计算机设备,其特征在于,所述一个或多个处理器在所述软件交换机上执行所述指令,从而
确定所述下一个功能是所述一个或多个虚拟网络功能中的一个虚拟网络功能;以及
将所述报文的目的媒体接入控制(medium access control,MAC)地址设置为所述一个虚拟网络功能的输入端口的地址,并将所述报文转发到所述一个虚拟网络功能。
3.根据权利要求2所述的计算机设备,其特征在于,所述一个或多个处理器在所述软件交换机上执行所述指令,从而
基于从所述功能链中的先于所述一个虚拟网络功能的其它虚拟网络功能接收所述报文,确定所述下一个功能是所述一个虚拟网络功能。
4.根据权利要求1所述的计算机设备,其特征在于,所述一个或多个处理器在所述软件交换机上执行所述指令,从而:
确定所述下一个功能是所述一个或多个物理网络功能中的一个物理网络功能;以及
将所述报文的目的媒体接入控制(Medium Access Control,MAC)地址设置为所述一个物理网络功能的输入端口的地址,并将所述报文转发到所述一个物理网络功能。
5.根据权利要求1所述的计算机设备,其特征在于:
为了确定所述报文由所述功能链处理,所述一个或多个处理器在所述软件交换机上执行所述指令,从而确定所述报文的原始报头和/或净荷中的字段与指定的一组字段相匹配。
6.根据权利要求5所述的计算机设备,其特征在于:
所述指定的一组字段指示所述报文来自指定的源且正被发送到指定的目的地。
7.根据权利要求6所述的计算机设备,其特征在于:
所述指定的源包括互联网协议(Internet Protocol,IP)地址、媒体接入控制(MediumAccess Control,MAC)地址或端口中的至少一个;以及
所述指定的目的地包括互联网协议(Internet Protocol,IP)地址、媒体接入控制(Medium Access Control,MAC)地址或端口中的至少一个。
8.根据权利要求5所述的计算机设备,其特征在于:
所述指定的一组字段指示所述报文是通过指定的协议传输的。
9.根据权利要求8所述的计算机设备,其特征在于:
所述指定的协议包括传输控制协议(Transmission Control Protocol,TCP)、用户数据报协议(User Datagram Protocol,UDP)或因特网控制报文协议(Internet ControlMessage Protocol,ICMP)中的至少一个。
10.根据权利要求1所述的计算机设备,其特征在于,所述一个或多个处理器在所述软件交换机上执行所述指令,从而:
将所述报文的目的媒体接入控制(medium access control,MAC)地址设置为所述下一个功能的地址,并将所述报文转发到所述下一个功能。
11.根据权利要求1所述的计算机设备,其特征在于,所述一个或多个处理器在所述软件交换机上执行所述指令,从而:
当所述下一个功能是所述一个或多个物理网络功能中的物理网络功能,且最近一个处理过所述报文的功能是所述一个或多个虚拟网络功能中的虚拟网络功能时,将所述报文转发到所述下一个功能之前,从所述报文中去除所述SFC报头。
12.根据权利要求1所述的计算机设备,其特征在于:
所述一个或多个虚拟网络功能托管在一个或多个虚拟化设备上;以及
所述一个或多个物理网络功能托管在一个或多个物理设备上,并不托管在虚拟化设备上。
13.一种计算机实现的数据存取方法,其特征在于,包括:
利用一个或多个处理器:
根据报文的原始报头和/或净荷,确定所述报文将由功能链处理;
作为对所述确定所述报文将由所述功能链处理的响应,确定所述功能链中的下一个功能是虚拟网络功能;
作为对所述确定所述下一个功能是所述虚拟网络功能的响应,对于不包括所述功能链的标识的业务功能链(service function chain,SFC)报头的报文,在所述报文中添加所述SFC报头,并将所述报文转发到带有所述SFC报头的虚拟网络功能;
在所述将所述报文转发到带有所述SFC报头的所述虚拟网络功能之后,确定所述功能链中的下一个功能是物理网络功能;以及
作为对所述确定所述下一个功能是所述物理网络功能的响应,去除所述SFC报头,并将所述报文转发到没有所述SFC报头的所述物理网络功能。
14.根据权利要求13所述的计算机实现的数据存取方法,其特征在于,还包括:
利用所述一个或多个处理器:
在所述将所述报文转发到没有所述SFC报头的所述物理网络功能之后,从所述物理网络功能接收所述报文,并根据所述原始报头和/或净荷,重新确定所述报文将由所述功能链通过对所述报文的所述原始报头中的源MAC地址进行匹配来处理;
作为对所述重新确定所述报文将由所述功能链处理的响应,确定所述功能链中的下一个功能是其它虚拟网络功能;以及
作为对所述确定所述功能链中的下一个功能是所述其它虚拟网络功能的响应,在所述报文中添加包括所述标识的所述SFC报头,并将所述报文转发到带有所述SFC报头的所述其它虚拟网络功能。
15.根据权利要求13所述的计算机实现的数据存取方法,其特征在于,还包括:
利用所述一个或多个处理器:
在所述将所述报文转发到没有所述SFC报头的所述物理网络功能之后,从所述物理网络功能接收所述报文,并根据所述原始报头和/或净荷,重新确定所述报文将由所述功能链通过对所述原始报头中的源MAC地址进行匹配来处理;
作为对所述重新确定所述报文将由所述功能链处理的响应,确定所述功能链中的下一个功能是其它物理网络功能;以及
作为对所述确定所述下一个功能是所述其它物理网络功能的响应,将所述报文转发到没有所述SFC报头的所述其它物理网络功能。
16.根据权利要求13所述的计算机实现的数据存取方法,其特征在于,还包括:
利用所述一个或多个处理器:
在所述将所述报文转发到没有所述SFC报头的所述物理网络功能之后,从所述物理网络功能接收所述报文,并根据所述原始报头和/或净荷,重新确定所述报文将由所述功能链通过对源MAC地址进行匹配来处理;
作为对所述重新确定所述报文将由所述功能链处理的响应,确定所述报文已由所述功能链处理完成;以及
作为对所述确定所述报文已由所述功能链处理完成的响应,将所述报文转发到所述原始报头中标识的目的地。
CN201780070143.1A 2016-11-14 2017-10-28 在业务链网络环境中集成物理和虚拟网络功能 Active CN109952746B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/350,966 2016-11-14
US15/350,966 US10187263B2 (en) 2016-11-14 2016-11-14 Integrating physical and virtual network functions in a service-chained network environment
PCT/CN2017/108156 WO2018086465A1 (en) 2016-11-14 2017-10-28 Integrating physical and virtual network functions in a service-chained network environment

Publications (2)

Publication Number Publication Date
CN109952746A CN109952746A (zh) 2019-06-28
CN109952746B true CN109952746B (zh) 2021-06-15

Family

ID=62108883

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780070143.1A Active CN109952746B (zh) 2016-11-14 2017-10-28 在业务链网络环境中集成物理和虚拟网络功能

Country Status (3)

Country Link
US (1) US10187263B2 (zh)
CN (1) CN109952746B (zh)
WO (1) WO2018086465A1 (zh)

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9225638B2 (en) 2013-05-09 2015-12-29 Vmware, Inc. Method and system for service switching using service tags
CN104243302B (zh) * 2013-06-20 2018-03-16 华为技术有限公司 业务路由报文处理方法、装置及网络系统
US9774537B2 (en) 2014-09-30 2017-09-26 Nicira, Inc. Dynamically adjusting load balancing
US10516568B2 (en) 2014-09-30 2019-12-24 Nicira, Inc. Controller driven reconfiguration of a multi-layered application or service model
US11722367B2 (en) 2014-09-30 2023-08-08 Nicira, Inc. Method and apparatus for providing a service with a plurality of service nodes
US10594743B2 (en) 2015-04-03 2020-03-17 Nicira, Inc. Method, apparatus, and system for implementing a content switch
EP3340581B1 (en) * 2016-12-20 2022-02-23 InterDigital CE Patent Holdings Method for managing service chaining at a network equipment, corresponding network equipment
CA2993369C (en) * 2017-01-30 2021-10-19 Sandvine Incorporated Ulc System and method for traffic steering and analysis
US11336572B2 (en) 2017-05-12 2022-05-17 Nicira, Inc. Dynamic chain of service functions for processing network traffic in a virtual computing environment
US10412047B2 (en) 2017-08-17 2019-09-10 Arista Networks, Inc. Method and system for network traffic steering towards a service device
US10721651B2 (en) 2017-09-29 2020-07-21 Arista Networks, Inc. Method and system for steering bidirectional network traffic to a same service device
US10805181B2 (en) 2017-10-29 2020-10-13 Nicira, Inc. Service operation chaining
US10764234B2 (en) 2017-10-31 2020-09-01 Arista Networks, Inc. Method and system for host discovery and tracking in a network using associations between hosts and tunnel end points
US11012420B2 (en) 2017-11-15 2021-05-18 Nicira, Inc. Third-party service chaining using packet encapsulation in a flow-based forwarding element
US10797910B2 (en) 2018-01-26 2020-10-06 Nicira, Inc. Specifying and utilizing paths through a network
US10805192B2 (en) 2018-03-27 2020-10-13 Nicira, Inc. Detecting failure of layer 2 service using broadcast messages
US11595250B2 (en) 2018-09-02 2023-02-28 Vmware, Inc. Service insertion at logical network gateway
US10917342B2 (en) 2018-09-26 2021-02-09 Arista Networks, Inc. Method and system for propagating network traffic flows between end points based on service and priority policies
US10749789B2 (en) 2018-12-04 2020-08-18 Arista Networks, Inc. Method and system for inspecting broadcast network traffic between end points residing within a same zone
US10848457B2 (en) 2018-12-04 2020-11-24 Arista Networks, Inc. Method and system for cross-zone network traffic between different zones using virtual network identifiers and virtual layer-2 broadcast domains
US10855733B2 (en) 2018-12-04 2020-12-01 Arista Networks, Inc. Method and system for inspecting unicast network traffic between end points residing within a same zone
US10805164B2 (en) 2018-12-14 2020-10-13 At&T Intellectual Property I, L.P. Controlling parallel data processing for service function chains
US11146506B2 (en) 2018-12-14 2021-10-12 At&T Intellectual Property I, L.P. Parallel data processing for service function chains spanning multiple servers
US11042397B2 (en) 2019-02-22 2021-06-22 Vmware, Inc. Providing services with guest VM mobility
CN112565044B (zh) 2019-09-10 2023-08-25 华为技术有限公司 报文处理方法及装置
US11140218B2 (en) 2019-10-30 2021-10-05 Vmware, Inc. Distributed service chain across multiple clouds
US11283717B2 (en) 2019-10-30 2022-03-22 Vmware, Inc. Distributed fault tolerant service chain
CN113132200B (zh) * 2019-12-30 2024-01-19 中兴通讯股份有限公司 数据转发方法、转发器、系统、服务器和存储介质
US11223494B2 (en) 2020-01-13 2022-01-11 Vmware, Inc. Service insertion for multicast traffic at boundary
US11153406B2 (en) 2020-01-20 2021-10-19 Vmware, Inc. Method of network performance visualization of service function chains
US11659061B2 (en) 2020-01-20 2023-05-23 Vmware, Inc. Method of adjusting service function chains to improve network performance
CN111371608B (zh) * 2020-02-28 2022-07-22 苏州浪潮智能科技有限公司 一种部署sfc业务链的方法、装置和介质
CN111464443B (zh) * 2020-03-10 2022-06-28 中移(杭州)信息技术有限公司 基于服务功能链的报文转发方法、装置、设备及存储介质
US11368387B2 (en) 2020-04-06 2022-06-21 Vmware, Inc. Using router as service node through logical service plane
EP4147395A4 (en) * 2020-05-06 2024-05-01 Primewan Limited VIRTUAL NETWORK DEVICE
CN112367258B (zh) * 2020-10-29 2022-09-06 浪潮云信息技术股份公司 基于Openstack架构实现服务链功能的方法
US11734043B2 (en) 2020-12-15 2023-08-22 Vmware, Inc. Providing stateful services in a scalable manner for machines executing on host computers
US11611625B2 (en) 2020-12-15 2023-03-21 Vmware, Inc. Providing stateful services in a scalable manner for machines executing on host computers
CN112737860B (zh) * 2021-01-06 2023-06-20 浪潮云信息技术股份公司 裸金属服务器vxlan接入的方法及计算机可读介质
CN113708954B (zh) * 2021-07-23 2023-04-25 苏州浪潮智能科技有限公司 一种网络切换方法、装置及电子设备和存储介质
CN114500169B (zh) * 2021-12-27 2024-01-02 天翼云科技有限公司 建立vxlan隧道的方法、报文转发的方法及装置
CN114640557B (zh) * 2022-03-18 2024-07-30 阿里云计算有限公司 网关以及云网络系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105763512A (zh) * 2014-12-17 2016-07-13 杭州华三通信技术有限公司 Sdn虚拟化网络的通信方法和装置

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101374096B (zh) 2008-10-22 2011-05-18 清华大学 一种虚拟并存的互联网体系结构
CN103118144B (zh) 2013-01-22 2016-03-23 北京华信傲天网络技术有限公司 一种无线接入控制器及其远程接口代理方法
US9374323B2 (en) 2013-07-08 2016-06-21 Futurewei Technologies, Inc. Communication between endpoints in different VXLAN networks
US9825856B2 (en) * 2014-01-06 2017-11-21 Futurewei Technologies, Inc. Service function chaining in a packet network
US9614739B2 (en) 2014-01-30 2017-04-04 Cisco Technology, Inc. Defining service chains in terms of service functions
CN104954245B (zh) * 2014-03-27 2019-07-16 中兴通讯股份有限公司 业务功能链处理方法及装置
US9774533B2 (en) 2014-08-06 2017-09-26 Futurewei Technologies, Inc. Mechanisms to support service chain graphs in a communication network
US10243922B2 (en) * 2014-09-23 2019-03-26 Nec Corporation Efficient service function chaining over a transport network
US9923815B2 (en) 2014-11-11 2018-03-20 Avago Technologies General Ip (Singapore) Pte. Ltd. Network based service function chaining on top of rack switches
US9674639B2 (en) 2015-02-24 2017-06-06 At&T Intellectual Property I, L.P. Method and apparatus for virtualized network function chaining management
US10489178B2 (en) 2015-04-28 2019-11-26 Altera Corporation Network functions virtualization platforms with function chaining capabilities
US9762402B2 (en) * 2015-05-20 2017-09-12 Cisco Technology, Inc. System and method to facilitate the assignment of service functions for service chains in a network environment
US10122622B2 (en) * 2015-05-29 2018-11-06 Futurewei Technologies, Inc. Exchanging application metadata for application context aware service insertion in service function chain
CN105242956B (zh) 2015-09-15 2018-06-12 中国人民解放军信息工程大学 虚拟功能服务链部署系统及其部署方法
US10164875B2 (en) * 2016-02-22 2018-12-25 Cisco Technology, Inc. SR app-segment integration with service function chaining (SFC) header metadata
US10171350B2 (en) * 2016-04-27 2019-01-01 Cisco Technology, Inc. Generating packets in a reverse direction of a service function chain
US10218593B2 (en) * 2016-08-23 2019-02-26 Cisco Technology, Inc. Identifying sources of packet drops in a service function chain environment

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105763512A (zh) * 2014-12-17 2016-07-13 杭州华三通信技术有限公司 Sdn虚拟化网络的通信方法和装置

Also Published As

Publication number Publication date
WO2018086465A1 (en) 2018-05-17
US20180139098A1 (en) 2018-05-17
US10187263B2 (en) 2019-01-22
CN109952746A (zh) 2019-06-28

Similar Documents

Publication Publication Date Title
CN109952746B (zh) 在业务链网络环境中集成物理和虚拟网络功能
US11625154B2 (en) Stage upgrade of image versions on devices in a cluster
US10862732B2 (en) Enhanced network virtualization using metadata in encapsulation header
US11665242B2 (en) Bypassing a load balancer in a return path of network traffic
EP3673628B1 (en) Specifying and utilizing paths through a network
EP3254417B1 (en) Method and system for supporting port ranging in a software-defined networking (sdn) system
US10212071B2 (en) Bypassing a load balancer in a return path of network traffic
US10237230B2 (en) Method and system for inspecting network traffic between end points of a zone
US9363183B2 (en) Network address translation offload to network infrastructure for service chains in a network environment
US9614739B2 (en) Defining service chains in terms of service functions
EP1917765B1 (en) Flow control based on flow policies in a communication network
US10230628B2 (en) Contract-defined execution of copy service
EP3903456B1 (en) Service insertion in public cloud environments
EP3292663B1 (en) Packet forwarding
US9473396B1 (en) System for steering data packets in communication network
EP3373556A1 (en) Method to be implemented at a network element for managing instances of network functions, and corresponding network element
US11463404B2 (en) Quarantined communications processing at a network edge
US11711292B2 (en) Pre-filtering of traffic subject to service insertion
US20240348536A1 (en) Single hierarchical construct for defining a service in a service chain
US20240259290A1 (en) Deploying symmetric routing
WO2024215936A1 (en) Single hierarchical construct for defining a service in a service chain
Agouros Real Live SDN with OpenFlow: Where does it make sense in the Datacentre?

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
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220215

Address after: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province

Patentee after: Huawei Cloud Computing Technologies Co.,Ltd.

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd.