CN108471389A - 一种基于服务功能链的交换机系统 - Google Patents

一种基于服务功能链的交换机系统 Download PDF

Info

Publication number
CN108471389A
CN108471389A CN201810201215.8A CN201810201215A CN108471389A CN 108471389 A CN108471389 A CN 108471389A CN 201810201215 A CN201810201215 A CN 201810201215A CN 108471389 A CN108471389 A CN 108471389A
Authority
CN
China
Prior art keywords
network function
data packet
function
network
processing
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.)
Granted
Application number
CN201810201215.8A
Other languages
English (en)
Other versions
CN108471389B (zh
Inventor
许都
杜炯
张凤
孙罡
虞红芳
廖丹
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.)
University of Electronic Science and Technology of China
Original Assignee
University of Electronic Science and Technology of China
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 University of Electronic Science and Technology of China filed Critical University of Electronic Science and Technology of China
Priority to CN201810201215.8A priority Critical patent/CN108471389B/zh
Publication of CN108471389A publication Critical patent/CN108471389A/zh
Application granted granted Critical
Publication of CN108471389B publication Critical patent/CN108471389B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements

Landscapes

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

Abstract

本发明公开了一种基于服务功能链的交换机系统,针对交换节点数据面固化、功能扩展性差、资源过配置等问题,通过将线卡中的非通用功能分离出来,以网络功能池的形式为数据包提供灵活的网络功能处理。数据包由分类器通过匹配规则划分为不同类型,对于需要进行非通用网络功能处理的数据包,则依据数据包匹配域在流表的网络功能实例列表中找到需要进行的网络功能实例(非通用网络功能),在网络功能池中由对应的不同网络功能组成的服务功能链进行处理。与传统交换机系统、P4架构等现有研究技术相比较,具有如下优势:支持高级网络功能、数据流量处理规则可灵活扩展、动态变化、资源利用率提高、资本支出和运营成本降低。

Description

一种基于服务功能链的交换机系统
技术领域
本发明属于网络交换设备技术领域,更为具体地讲,涉及一种基于服务功能链的交换机系统。
背景技术
1、交换机发展沿革
随着互联网规模不断扩大,网络应用服务日趋多样化,传统网络中交换机的设计理念和体系结构日益暴露出其不足。首先,传统交换机被各大厂商设计成封闭的“黑盒”,其开放性、可扩展性和互操作性较差,导致网络更新缓慢、设备管理复杂;其次,交换机中线卡全线速、流水线(Pipeline)的处理模式存在线卡功能扩展性差、处理能力“过配置”造成资源浪费等问题;最后,网络服务的多样化需求要求交换机不应该仅仅支持简单的数据转发,而应是一个连接多种智能模块、更加开放、支持定制化网络处理功能的设备。传统网络交换机的种种问题促进了网络可编程技术的研究与发展。
网络可编程的核心思想是对网络交换机提供开放的编程接口,利用软件定义的方式实现新型网络应用的快速开发和灵活部署,以及对网络功能和行为的有效管控。该思想随着OpenFlow的提出而得到学术界和工业界的广泛关注。
OpenFlow将传统网络中交换设备的功能解耦为数据转发层面和控制层面,并分别对应于OpenFlow交换机和控制器。OpenFlow交换机采用流表(flow table)进行数据转发,控制器则负责流表的生成、管理和分发等功能。然而,OpenFlow将网络决策权都交给了控制层面,流表中的动作(“action”)仅支持分组的转发、头部修改和丢弃等简单操作,所以网络中的数据层面仅仅是一个实现简单功能组合的单一交换设备,而无法满足如深度包检测(Deep Packet Inspection,DPI)、网络地址转换(NAT)、防火墙(Firewall)等高层次网络功能(Network Function,简称NF)的需求。OpenFlow技术在数据转发层面上的灵活性较差、扩展性不足的问题促进了数据转发层面可编程技术的进一步研究与发展。
网络功能虚拟化(Network Function Virtualization,简称NFV)作为数据转发层面可编程技术的重要组成部分,其核心思想是基于通用型硬件平台,通过引入虚拟化技术采用软件的形式实现各种网络功能。在网络中,数据流量通常需要先依次经过多个网络功能服务,最终才能到达目的端。这些多个有序的网络功能构成不同组合的服务功能链(Service Function Chain,SFC)为用户流量提供各式各样的服务。NFV和SFC都意在提升网络数据转发层面的灵活性和扩展性,从而加速网络创新应用的部署,同时降低服务供应商的资本支出(Capital Expenditure,CAPEX)和运营成本(Operating Expense,OPEX)。
与OpenFlow的观点不同,NFV和SFC认为交换机不应仅仅是一个“哑的”转发设备,其描述的未来交换机的数据转发层面应该满足:(1)、允许用户自由定制和实现数据转发层面功能;(2)、实现网络与通用型硬件之间的深度整合;(3)、能同时支持网络任务和新型网络应用的灵活部署。
NFV和SFC的思想为交换机数据转发层面的灵活扩展及按需定制提供了重要思路,但也随之带来一了些挑战,比如交换机系统的重新设计。
2、现有技术中的关键技术
2.1、网络功能虚拟化
网络功能虚拟化即NFV是针对传统的专用网络设备的局限性而产生的。传统的网络设备通常是专用硬件和对应的专用软件相结合。比如专用的入侵检测系统(IntrusionDetection System,IDS)、负载均衡器(Load Balancer,LB)、内容分发网络(ContentDelivery Network,CDN)等设备。这些设备在带来高性能和高可靠性的同时也存在技术创新难、设备升级复杂、扩展性差、成本高等问题。
网络功能虚拟化针对传统网络应用基于专用设备实现所带来的问题,提出了基于x86等通用型硬件平台,通过引入虚拟化技术,采用软件的形式实现网络功能,即虚拟网络功能(Virtual Network Function,VNF)的解决方案。网络功能虚拟化技术使得网络应用的创新和开发不再受专用硬件设备和专用软件的限制,有利于新应用的快速开发和灵活部署;同时降低服务提供商的资本支出和运营成本,实现资源的按需按量定制和灵活共享,提高资源的利用率。
2.2、服务功能链
在网络中,数据流量通常需要先依次经过多个网络功能服务,最终才能到达目的端。这些多个有序的网络功能构成不同组合的服务功能链为用户流量提供各式各样的服务。下面将从架构和具体流程两个方面概述服务功能链。
(1)、服务功能链架构
服务功能链架构由多个逻辑组件构成,如图1所示,这些逻辑组件包含网络功能、分类器、服务功能转发器(Service Function Forwarder,简称SFF)、业务控制器、服务功能链和服务路径呈现(Rendered Service Path,简称RSP)和服务功能路径(ServiceFunction Path,简称SFP)等。下面简要阐述各个组件的特定功能。
●网络功能:按照匹配信息对数据包进行处理的逻辑组件。网络功能既可以是实际的硬件设备也可以是虚拟网络功能(VNF),一个或多个网络功能可以部署在同一网络设备上。网络功能可通过软件定义网络(Software Defined Network,简称SDN)等控制面技术实现网络功能链化,从而提升管理效率和服务能力。目前常见的网络功能有:深度包检测(DPI)、防火墙(Firewall)、入侵检测系统(IDS)、负载均衡(LB)、代理(Proxy)等。
●分类器:根据预定规则对到达的数据流量进行匹配,匹配后对其进行SFC封装,并转入对应的SFC中进行处理,即数据流量将依次流经SFC所包含的各个特定网络功能。
●服务功能转发器:转发封装有对应SFC标签的数据包,转发的下一跳可以是一个或多个相连的NF,也可以是分类器,或者其他的服务功能转发器。
●业务控制器:负责服务功能链路径的构造和策略控制,并将逻辑上的服务功能链路径对应到具体的物理转发路径上。
●服务功能链:一个有序的网络功能集合,引导数据流量按照策略依次经过其中的每一个网络功能。一条具体的服务功能链如图2所示,图2中的两个端机(Endpoint)表示服务功能链请求的源端和目的端,两个端机之间的三个图形表示该服务功能链所要经过的网络功能,分别是防火墙、深度包检和代理。数据流量按照图2中箭头依次从源端经三个网络功能处理后到达目的端。
●服务路径呈现:数据包在网络功能之间通行时所经过的物理转发路径。
●服务功能路径:介于服务功能链和服务路径呈现之间的中间层,服务功能路径指定了数据包需要流经的网络功能实例,但未指定实际的物理路径。
(2)服务功能链转发流程
下面通过一个实例来说明服务功能链架构下数据包转发的具体流程。如图3所示,控制器用于配置和管理服务功能链。分类器对需要SFC处理的数据包进行分类和封装。封装头部中包含了具体执行的服务链编号、服务链跳数等信息。各网络功能为数据包提供特殊处理能力。服务功能转发器实现数据包的逐条转发,直到数据包达到目的主机。因此,图3所示的整个转发流程为:源主机发送的数据包在分类器处根据规则匹配和分类信息执行内容为“FW(防火墙)->DPI(深度包检测)->Proxy(代理)”的服务功能链,分类器在数据包头部封装对应的NSH报文;接着数据包通过服务功能转发器1转发至第一个网络功能FW即防火墙,在第一个网络功能完成处理后,返回服务功能转发器1并转发给服务功能转发器2,然后转发至第二个网络功能DPI即深度包检测,直到完成三个网络功能上的所有处理,最终到达目的主机。
3、相关的现有技术一
交换节点是网络体系中最重要的节点之一,而交换节点中与报文处理关系最密切的组件是线卡(Linecard)。在传统结构的线卡设计中,所有端口对应的处理是确定的,如图4所示,不同数据包执行不同的操作集是预设的,报文以流水线(Pipeline)的形式通过所有的处理单元。同时,对报文的操作也是预先规定的,比如修改部分字段、丢弃、转发到端口。这样的数据交换存在一系列的问题,比如:
(1)、固定的报文处理方式使得线卡功能的变更极不灵活,功能扩展性差;
(2)、所有报文的Pipeline处理方式要求所有组件具备全线速的处理能力,但大部分时候线卡资源处于“过配置”状态而导致资源浪费。
4、相关的现有技术二
Pat Bosshart等人在2014年提出了P4(Programming Protocol-IndependentPacket Processors),一种对底层设备数据处理行为进行编程的高级语言,主要思想是协议无关交换架构(Protocol Independent Switch Architecture,PISA)。如图5所示,P4自定义了一套抽象转发模型,主要包括可编程定制的解析器(Parser)和匹配+动作(Match+Action)操作。配置阶段定义转发逻辑的协议解析过程,以及定义流表、流表之间的依赖关系以及流表匹配后执行的动作集等;第二个阶段流表控制,主要完成流表下发、表项的修改和删除、匹配动作的选择等任务。P4以匹配动作表为基础,通过可编程的控制逻辑,构建协议无关的数据包处理流水线,但随着网络规模的不断扩大,数据面所支持的数据包处理功能将会变得越来越复杂,P4语言仍存在以下局限:
(1)编排固化:P4程序下载到可编程网络设备上之后,无法按动态网络策略需求动态调整数据包处理功能;
(2)编程复杂:P4程序只对数据平面匹配动作表做高层描述,表达的语义与数据包处理策略之间存在差异,复杂数据包处理策略的代码开发较为复杂;
(3)灵活性和资源利用率仍需提升:支持P4语言的芯片仍以流水线模式处理内部消息,这需要足够多的匹配+动作模块,才有可能完成日渐复杂的数据包处理任务。此外,不同模块之间消息传递需要大量的交换阵列,限制了处理的灵活性,导致资源利用率下降。
发明内容
本发明的目的在于克服现有技术中数据面固化、功能扩展性差、资源过配置的不足,提出一种基于服务功能链的交换机系统,以提升系统的灵活性和资源利用率。
为实现上述发明目的,本发明基于服务功能链的交换机系统,其特征在于,包括:
进线卡(线卡Ingress),由通用网络功能处理模块和分类器组成,通用网络功能处理模块用于交换机接收到数据包后,执行通用网络功能的处理,处理完后将数据包送入分类器与匹配规则进行匹配:根据数据包匹配域与流表(Flow Table)中的匹配域(Match)进行匹配,得到对应的流表项,然后将数据包送入交换矩阵上与进线卡连接的传输端口Tport(进端口),其中,所述通用网络功能是指每个数据包都需要进行处理的网络功能;
交换矩阵,其包括对外通信的传输端口Tport(Transport Port,传输端口)以及与网络功能池挂接的功能端口Fport(Function Port,功能端口),用于数据包的交换,其中,传输端口Tport负责数据包进出交换机系统,功能端口Fport负责数据包从交换矩阵进出网络功能池;
调度器,用于对分类器得到的流表项进行判断:若网络功能实例列表(NetworkFunction Instance List)为空且得到的流表项中下一跳(Next Hop)不为丢弃(Drop),则将数据包直接通过分组调度交换到下一跳(Next Hop)指定的交换矩阵的传输端口即出端口,若网络功能实例列表为空且下一跳(Next Hop)为丢弃,则将数据包丢弃,若网络功能实例列表不为空,则将数据包送入网络功能池中并在完成网络功能实例列表所指定的网络功能处理之后再查询流表,将处理后的数据包通过分组调度交换到下一跳(Next Hop)指定的交换矩阵的传输端口即出端口;
网络功能池(Network Function Pool,即NFP),为网络功能处理模块集合;网络功能池由多个处理节点组成,每个处理节点中包含一定数目的网络功能处理模块,并每个处理节点通过一个功能端口Fport与交换矩阵相连接,其中,所述网络功能处理模块处理线卡中的非通用网络功能即不是每个数据包都需要进行处理的网络功能,用于网络功能实例列表不为空时,数据包根据网络功能实例列表所指定网络功能实例,依次通过处理节点的功能端口Fport在网络功能实例对应的网络功能处理模块进行网络功能处理;
出线卡(线卡Egress),其包括通用网络功能处理模块,与出端口连接,用于将交换矩阵交换后的数据包的通用网络功能的处理,处理后的数据包离开交换机。
本发明的目的是这样实现的。
本发明基于服务功能链的交换机系统,针对交换节点数据面固化、功能扩展性差、资源过配置等问题,本发明提出了一种基于服务功能链的交换机系统(Service FunctionChain based Switch Architecture,SFCSA)。该架构通过将线卡中的非通用功能分离出来,以网络功能池(Network Function Pool,NFP)的形式为数据包提供灵活的网络功能处理。数据包由分类器通过匹配规则划分为不同类型,对于需要进行非通用网络功能处理的数据包,则依据数据包匹配域在流表的网络功能实例列表中找到需要进行的网络功能实例(非通用网络功能),在网络功能池中由对应的不同网络功能组成的服务功能链(SFC)进行处理。
与传统交换机系统、P4架构等现有研究技术相比较,具有如下优势:
(1)、支持高级网络功能。本发明基于服务功能链的交换机系统引入NFV,以软件定义来实现网络功能的可编程,能更好地支持现有基于“Mtach+Action”处理机制不能满足的复杂网络功能,如NAT、DPI、IDS等。
(2)、数据流量处理规则可灵活扩展、动态变化。本发明基于服务功能链的交换机系统下,特定网络功能可由挂接的网络功能池提供,其组成、策略、处理能力可随用户需求的变化而改变。网络功能池以服务功能链的形式为用户数据流量提供所需的网络服务,而分类器和调度器根据网络状态、用户需求来引导数据流量历经多个特定的网络功能序列。
(3)、资源利用率提高、资本支出和运营成本降低。网络功能池中的网络功能处理包含可编程资源和特定功能资源两大类。可编程资源可能是通用处理器、NP、FPGA等,当系统中完全无需某些功能时可以彻底回收相应的支撑性资源;特定功能资源包含现有的ASIC、子卡、节点外独立的MiddleBox等,充分利用已有的资源(器件和技术)。本发明通过网络设备的深度可编程、高效回收利用以及现有资源的再利用,可显著提高资源利用率,降低服务供应商的资本支出和运营成本。
附图说明
图1是服务功能链的总体架构示意图;
图2是服务功能链一具体实例示意图;
图3是服务功能链转发流程一具体实例示意图;
图4是传统交换机系统示意图;
图5是P4抽象转发模型示意图;
图6是本发明基于服务功能链的交换机系统一种具体实施方式的结构示意图;
图7是本发明基于服务功能链的交换机系统数据流向一具体实例示意图;
图8是分类器的整体处理一具体流程图;
图9是调度器功能一具体实例示意图;
图10是本发明中数据报文的整体处理流程示意图;
图11是本发明中SFH封装数据包的处理流程
图12是本发明3级Clos组网示意图。
具体实施方式
下面结合附图对本发明的具体实施方式进行描述,以便本领域的技术人员更好地理解本发明。需要特别提醒注意的是,在以下的描述中,当已知功能和设计的详细描述也许会淡化本发明的主要内容时,这些描述在这里将被忽略。
图6是本发明本发明基于服务功能链的交换机系统一种具体实施方式的结构示意图。
在本实施例中,如图6所示,本发明基于服务功能链的交换机系统包括进线卡1(线卡Ingress)、交换矩阵2、调度器3、网络功能池4以及出线卡5(线卡Egress)。
进线卡1由通用网络功能处理模块101和分类器102组成,通用网络功能处理模块101在交换机接收到数据包后,执行通用网络功能的处理。其中,所述通用网络功能是指每个数据包都需要进行处理的功能,常见的通用网络功能如数据包完整性校验。数据包完整性校验是指当交换机接收到数据包之后,必须通过执行数据包校验来检测接收到的数据包是否完整,如果不完整,则需要进行丢包操作,只有完整的数据包才被递交到下一层进行更多的处理。
通用网络功能处理完后将数据包送入分类器102与匹配规则进行匹配:根据数据包匹配域与流表(Flow Table)中的匹配域(Match)进行匹配,得到对应的流表项,然后将数据包送入交换矩阵上与进线卡连接的传输端口Tport。
分类器102是本发明基于服务功能链的交换机系统下进线卡的核心模块。分类器102将接收到的数据包与匹配规则进行匹配,并将其划分为不同类型。不同类型的数据包对应着不同的服务功能链处理。比如有些数据包在经过通用功能处理后,直接通过交换矩阵交换到输出端口,而有些数据包需要先经过网络功能池中服务功能链的处理后才离开交换机。
交换矩阵2包括对外通信的传输端口Tport(Transport Port,传输端口)以及与网络功能池挂接的功能端口Fport(Function Port,功能端口),用于数据包的交换。传输端口TPort表示交换机系统对外通信的端口,负责数据包进出交换机系统。FPort表示与网络功能池挂接的功能端口,功能端口Fport负责数据包从交换矩阵进出网络功能池。交换矩阵2可以是一个单级的交换矩阵,也可以是多个单级交换节点互联后形成的多级交换结构。为了便于说明,本发明中交换矩阵采用的是单级结构,采用基于输入排队的VOQ-crossbar结构。
调度器3用于对分类器102得到的流表项进行判断:若网络功能实例列表(NetworkFunction Instance List)为空且得到的流表项中下一跳(Next Hop)不为丢弃(Drop),则将数据包直接通过分组调度交换到下一跳(Next Hop)指定的交换矩阵2的传输端口即出端口,若网络功能实例列表为空且下一跳(Next Hop)为丢弃,则将数据包丢弃,若网络功能实例列表不为空,则将数据包送入网络功能池4中并在完成网络功能实例列表所指定的网络 功能处理之后再查询流表,将处理后的数据包通过分组调度交换到下一跳(Next Hop)指定的交换矩阵2的传输端口即出端口。
网络功能池4(Network Function Pool,即NFP),为网络功能处理模块集合;网络功能池由多个处理节点组成,每个处理节点中包含一定数目的网络功能处理模块,并每个处理节点通过一个功能端口Fport与交换矩阵相连接,其中,所述网络功能处理模块处理线卡中的非通用网络功能即不是每个数据包都需要进行处理的网络功能,用于网络功能实例列表不为空时,数据包根据网络功能实例列表所指定网络功能实例,依次通过处理节点的功能端口Fport在网络功能实例对应的网络功能处理模块进行网络功能处理。
在本实施例中,网络功能池4中网络功能处理模块包含可编程资源和特定功能资源两类。其中,可编程资源可以是通用处理器、NP、FPGA等,特点是高度灵活,甚至可以在功能不再需要时彻底回收;特定功能资源则是现行线卡实现中的ASIC、子卡、加速引擎,甚至是节点外独立的Middlebox,这使得现有资源可以得到充分利用,保护投资的同时技术过渡也更为平滑。为了便于说明,本发明中网络功能池的处理节点定义为基于x86的通用型服务器(Server),网络功能(NF)定义为运行在Server上的虚拟网络功能(Virtual NetworkFunction,VNF),各个网络功能之间通过软件交换机(或节点内的控制模块)连接。
出线卡5(线卡Egress)包括通用网络功能处理模块,与出端口连接,用于将交换矩阵交换后的数据包的通用网络功能的处理,处理后的数据包离开交换机。
在本发明中,调度器也是其核心模块。调度器提供了对整个交换机系统的管理和调度能力,主要包括对网络功能池中网络功能实例(NFI)的管理、对分类器分配服务功能路径的管理以及交换矩阵输入输出端口之间的分组调度。
在本实施例中,交换机系统中的数据包流向如图7所示。图7中给出了3种可能的数据包处理流程,分别是:
(1)、数据包在经过通用网络功能处理模块处理之后,直接经交换矩阵交换离开交换机系统,如图7中曲线B所示;
(2)、数据包在经过通用网络功能处理模块处理之后,还需要经过网络功能池中的服务功能链SFC1处理,该服务功能链SFC1所包含的网络功能由网络功能池中的一个处理节点(Server)提供,待网络功能池处理完成后,数据包经交换矩阵交换离开交换机系统,如图7中曲线A所示;
(3)、数据包在经过通用网络功能处理模块之后,还需要经网络功能池中的服务功能链SFC2处理,该服务功能链所包含的网络功能由网络功能池中的两个处理节点(Server)提供,待网络功能池处理完成后,数据包经交换矩阵交换离开交换机系统,如图7中曲线C所示。
下面对本发明两个核心模块进行详细的说明。
1、分类器的设计与实现
如前所述,本发明基于服务功能链的交换机系统中,线卡的核心功能是数据包的分类和标记。分类器将接收到的数据包与匹配规则进行匹配,划分为不同类型,并对需要经过网络功能池(NFP)处理的数据包添加指示功能链路径的头部,在调度器的调度下历经不同的处理流程。本节将详细描述分类器的设计与实现。
1.1、数据包分类
分类器必须依靠匹配规则表来对数据包进行分类处理。分类的结果是不同的数据包对应于不同的处理流程,部分数据包经过交换矩阵直接交换离开交换机系统,而需要经过网络功能池处理的数据包则被打上标签以对应于不同的服务功能链处理。在本实施例中,规则匹配表使用表1所示的流表和表2所示的网络功能实例列表来描述。其中,流表(Flow Table)表示对应于不同匹配域的数据包应该接受处理的服务功能链(SFC)的信息及其离开交换机系统的出端口。
表1
在本实施例中,如表1所示,匹配域为源地址src_ip,网络功能实例例表中的顺序序号为依次执行的网络功能实例(NFI)的序号,完成了网络功能实例列表所指定的网络功能处理后,再通过分组调度交换到下一跳(Next Hop)指定的交换矩阵的传输端口即出端口。
网络功能实例状态表则描述了当前交换机系统中部署的所有网络功能实例(NFI)的状态信息,包括其全局唯一的序号(NF Instance Index)、与交换矩阵相连的功能端口(FPort)、类型、当前状态信息处理队列的长度以及功能描述等。
表2
在本实施例中,如表2所示,类型为1表示网络功能实例正常,类型为0表示网络功能实例不正常。
分类器的整体处理流程如图8所示,当数据包完成通用网络功能处理进入分类器时,分类器首先匹配流表(Flow Table)中的流表项,得到当前数据包对应的网络功能实例列表。若该列表为空且下一跳(Next Hop)不为丢弃(Drop),则数据包直接通过分组调度交换到下一跳(Next Hop)指定的传输端口Tport即出端口;若该列表为空且Next Hop为Drop,则丢弃数据包;若网络功能实例列表不为空,则表明数据包需要进入网络功能池(NFP)中进行相应的处理,并在完成所有指定网络功能处理之后再查询流表(Flow Table)将数据包通过分组调度交换到Next Hop指定的传输端口Tport即出端口。
1.2、SFH协议设计
为了标识数据包应该接受处理的服务功能链,在本实施例中,在NSH的基础上设计了SFH(Switch Function Header,交换功能头)协议,用于本发明中交换矩阵与网络功能池之间进行网络功能处理的交互。SFH采用给数据包打标签(Mark)的方式,实现对数据包的封装,加入头部,其具体格式定义如表3所示。
表3
在本实施例中,表3中各个字段的含义如下:
Identification:特征标识。标识该协议为SFH报文,固定填充为B0101010。
F:标识SFH报文中是否存在Meta Data。
Count:服务功能链即网络功能实例例表中包含的网络功能个数。
Offset:当前网络功能实例的偏移量,初始化为0。因为Index向量长度可变,通过设置Offset字段,便于获取当前和下一个处理的网络功能。每个NFI完成对数据包的处理后将Offset的值加1,当Offset值等于Count的时候,表明数据包已完成所有的网络功能处理,处理节点内的软件交换机或控制模块将SFH头部移除。
Instance Index:当前网络功能实例序号,初始值为可变长度的网络功能实例序号向量中的第一个序号。
Instance Index Vector:可变长度的网络功能实例序号向量,标识有序的服务功能链。
Length:可选字段,如果报文中含有Meta Data,标识Meta Data的长度。
SRC Index和DEST Index:可选字段,如果报文中含有Meta Data,标识传递MetaData的源NFI和目的NFI。
Meta Data:可选字段,在各网络功能中传递的元数据,用于数据包处理过程中网络功能之间的信息交互。
在本实施例中,所设计的SFH协议相比于NSH具有如下优势:
(1)、轻量级,SFH协议的基本字段相比于NSH更加轻量级,最大程度降低了交换节点由于服务功能路径封装和标识所带来的额外开销。此外,SFH协议中Offset字段的设计加速了Index的读取和更新速度。
(2)、细粒度,SFH协议可选字段中加入了标识传递Meta Data的源NFI和目的NFI信息,为各网络功能之间的消息传递提供了更细粒度的支持。
2、调度器的设计与实现
调度器是本发明的核心模块。如图9所示,调度器3提供了对整个交换机系统的管理和调度能力,主要包括对网络功能池4中网络功能的管理、对分类器102分配服务功能路径(Service Function Path,SFP)的管理以及交换矩阵2输入输出端口之间的分组调度。
2.1、服务功能路径(SFP)管理
服务功能路径管理是指调度器根据当前网络功能池中网络功能(NF)各实例(Network Function Instance,NFI)和服务功能链(SFC)的状态等信息,以流为粒度,为数据流量指定合适的网络功能实例组成的服务功能路径。调度器3通过更新流表(Flowtable)中的网络功能实例列表(Network Function Instance List)表项来影响分类器102对数据包进行SFH协议的封装过程。
网络功能池4中的每个处理节点401(Server)都包含一个代理(Agent)模块以实现与调度器3之间的交互。二者的通信采用带外信道,代理模块定时上报当前处理节点401各网络功能实例的状态信息,调度器3对于网络功能实例的管理信息也通过代理模块传达到各个处理节点。
代理模块上报处理节点中各网络功能实例的状态信息采用如表4所示的消息格式。因为每个网络功能实例的状态信息为固定长度,所以该消息与传统的TLV(Tag,Length和Value)格式相比省去了Length字段,一定程度上节约了网络传输开销。
Type(8) Instance State Info
表4
该消息中各字段的含义如下:
Type:消息类型,表明消息为代理模块传输给调度器3的网络功能实例状态信息。
Instance State Info:变长字段,反映该处理节点上多个网络功能实例的状态。每个网络功能实例的状态消息由1Byte的实例序号(Instance Index)和2Byte的序列长度(Queue Length组成),若Queue Length为-1,代表该Instance处于OFF状态;否则代表当前Instance处理缓冲区的队列长度。
调度器3对网络功能实例的管理信息通过表5所示的消息格式传输。
Type(8) Agent Index(8) Instance Management Info
表5
表5为调度器管理网络功能实例状态的消息格式,该消息中各字段的含义如下:
Type:消息类型,表明消息为调度器传输给代理模块的网络功能实例管理信息。
Agent Index:代理模块的编号,表明接收该消息的代理模块。
Instance Management Info:变长字段,反映调度器传递给代理模块的多个网络功能实例的管理信息。该管理信息主要包括两种类型:
(1)、创建NFI。此时,Instance Management Info由1Byte的状态(State),1Byte的(序号)Index和4Byte的功能描述信息组成;
(2)、关闭NFI。Instance Management Info由1Byte的状态(State),1Byte的(序号)Index组成。
综上所述,调度器可通过代理模块定时上报的网络功能实例的状态信息,实时获取整个交换机系统中各网络功能实例的状态和处理能力,从而实现:1)为数据流量指定合适的服务功能路径,并通过分类器为数据包添加对应的SFH头部来实现;2)提供实时反馈的能力,为网络功能实例的管理和动态扩容等提供充分的信息。
2.2、分组调度
分组调度是指交换矩阵针对数据包粒度的调度,通过匹配交换矩阵的输入和输出端口,解决分组间的交换资源竞争,达到合理利用网络资源,减少时延,提高吞吐率的目的。本发明中分组调度的对象是所有流经交换机系统的数据流量,包括直接经交换矩阵交换后离开交换机系统和先进入网络功能池接受特定网络功能处理后再离开交换机系统的流量。分组调度旨在实现输入和输出端口间公平高效的数据传输,同时保障在不同流量模型、不同业务分布等条件下的较好性能。
3、本发明中报文的处理流程
在本实施例中,对于数据报文的整体处理流程如图10示。当交换机系统对外通信的传输端口TPort收到数据包输入(Packet-In)事件后,首先执行帧处理、数据包校验等通用网络功能处理,对于校验不合格的数据包进行丢包处理。然后经分类器匹配由调度器负责更新的流表(Flow Table)中的流表项,得到当前数据包对应的网络功能实例列表。若该列表为空且下一跳(Next Hop)不为丢弃(Drop),数据包将进入到下一跳(Next Hop)指定的传输端口即出端口所对应的虚拟输出队列(Virtual Output Queue,VOQ)中排队,等待交换调度;若该列表不为空,分类器为数据包添加网络功能实例列表对应的SFH头部,然后调度器根据当前网络功能实例序号,查询网络功能实例状态表,得到首个网络功能实例所在处理节点(Server)连接的功能端口FPort,并将其缓存到VOQ队列,等待交换调度;
在本实施例中,对SFH封装数据包的处理流程如图11所示。处理节点收到经交换矩阵交换到达的由SFH封装的数据包后,其内部的软件交换机(或控制模块)将数据包递交到当前网络功能实例序号(Index)对应的网络功能实例(NFI)处理,每个网络功能实例在完成数据包的网络功能处理之后,更新SFH封装数据包中的Offset字段(值加1),然后将SFH封装数据包传递给软件交换机。软件交换机在收到数据包后,首先检查Offset字段和Count字段之间的大小关系,如果二者相等,则表明数据包已经完成所有的功能处理,由软件交换机移除SFH头部,并递交数据包至相应的功能端口FPort,然后经交换调度离开交换机系统;否则,当前网络功能实例序号更新为Instance Index Vector中下一个网络功能实例序号,并进行流表项匹配,匹配成功则表明下一个待处理的网络功能实例位于当前处理节点(Server),软件交换机直接将数据包递交给对应的网络功能实例;匹配失败则表明下一个待处理的网络功能实例不在当前处理节点,软件交换机将数据包递交给所连接的功能端口FPort,调度器根据当前网络功能实例序号,查询网络功能实例状态表,得到网络功能实例所在处理节点(Server)连接的功能端口FPort,并将其缓存到VOQ队列,等待交换调度,这样,经功能端口FPort交换后传递至下一个处理节点处理。
4、本发明技术方案的部署实施
4.1、组件级部署
本发明围绕数据面可编程这一核心思想,以数据面可深度定制、灵活的交换处理方式、高效的资源利用为目标,提出了基于服务功能链的可编程数据面的交换机架构。该架构可部署在企业网络中心以及数据中心,为数据包提供灵活的处理。下面具体说明本发明技术方案的部署实施步骤:
(1)、首先对流经现有交换节点的数据流量大小和所需的功能处理类型进行统计和预测,这在现有的技术下很容易实现;
(2)、根据所得到的指标,同时考虑负载均衡、高可用等因素,计算该交换架构所需要的网络功能实例,实现资源的按需分配。这些网络功能实例可由可编程资源提供,比如VNF、FPGA等,也可以利用现有的资源,比如ASIC、Middlebox,提高资源利用率,使得技术过渡更为平滑。
(3)、根据所得到的指标,确定交换矩阵中的TPort和FPort个数,并对TPort、FPort和网络功能池进行连接和配置;
(4)、配置分类器和调度器,使得数据流量能够按照在该交换架构中完成正常的网络功能处理和转发操作。
4.2、平台级部署
在大规模组网(比如3级Clos网络)时,还可以基于该架构进行多个交换节点的联合部署(平台级部署),如图12所示,从而实现多个交换节点之间网络功能处理的协作和灵活管控,可针对不同优先级业务进行资源预留和路径配置。此外,还可考虑引入SDN架构下的逻辑集中控制框架,这样整个系统将具有两级数据面能力,方便业务编排层进行灵活、多样的调配。
尽管上面对本发明说明性的具体实施方式进行了描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。

Claims (2)

1.一种基于服务功能链的交换机系统,其特征在于,包括:
进线卡(线卡Ingress),由通用网络功能处理模块和分类器组成,通用网络功能处理模块用于交换机接收到数据包后,执行通用网络功能的处理,处理完后将数据包送入分类器与匹配规则进行匹配:根据数据包匹配域与流表(Flow Table)中的匹配域(Match)进行匹配,得到对应的流表项,然后将数据包送入交换矩阵上与进线卡连接的传输端口Tport(进端口),其中,所述通用网络功能是指每个数据包都需要进行处理的网络功能;
交换矩阵,其包括对外通信的传输端口Tport(Transport Port,传输端口)以及与网络功能池挂接的功能端口Fport(Function Port,功能端口),用于数据包的交换,其中,传输端口Tport负责数据包进出交换机系统,功能端口Fport负责数据包从交换矩阵进出网络功能池;
调度器,用于对分类器得到的流表项进行判断:若网络功能实例列表(NetworkFunction Instance List)为空且得到的流表项中下一跳(Next Hop)不为丢弃(Drop),则将数据包直接通过分组调度交换到下一跳(Next Hop)指定的交换矩阵的传输端口即出端口,若网络功能实例列表为空且下一跳(Next Hop)为丢弃,则将数据包丢弃,若网络功能实例列表不为空,则将数据包送入网络功能池中并在完成网络功能实例列表所指定的网络功能处理之后再查询流表,将处理后的数据包通过分组调度交换到下一跳(Next Hop)指定的交换矩阵的传输端口即出端口;
网络功能池(Network Function Pool,即NFP),为网络功能处理模块集合;网络功能池由多个处理节点组成,每个处理节点中包含一定数目的网络功能处理模块,并每个处理节点通过一个功能端口Fport与交换矩阵相连接,其中,所述网络功能处理模块处理线卡中的非通用网络功能即不是每个数据包都需要进行处理的网络功能,用于网络功能实例列表不为空时,数据包根据网络功能实例列表所指定网络功能实例,依次通过处理节点的功能端口Fport在网络功能实例对应的网络功能处理模块进行网络功能处理;
出线卡(线卡Egress),其包括通用网络功能处理模块,与出端口连接,用于将交换矩阵交换后的数据包的通用网络功能的处理,处理后的数据包离开交换机。
2.根据权利要求1所述的交换机系统,其特征在于,采用SFH(Switch FunctionHeader,交换功能头)协议,用于交换矩阵与网络功能池之间进行网络功能处理的交互,SFH采用给数据包打标签(Mark)的方式,实现对数据包的封装,加入头部,头部包括:
Count:服务功能链中包含的网络功能实例个数;
Offset:当前网络功能实例的偏移量,初始化为0;每个网络功能实例完成对数据包的处理后将Offset的值加1,当Offset值等于Count的时候,表明数据包已完成所有的网络功能处理,处理节点内的软件交换机或控制模块将SFH头部移除;
Instance Index:当前网络功能实例序号,初始值为可变长度的网络功能实例序号向量中的第一个序号;
Instance Index Vector:可变长度的网络功能实例序号向量,标识有序的服务功能链;
调度器对分类器得到的流表项进行判断,若网络功能实例列表不为空时,分类器为数据包添加网络功能实例列表对应的SFH头部,然后根据当前网络功能实例序号,查询网络功能实例状态表,得到首个网络功能实例所在处理节点(Server)连接的功能端口FPort,并将其缓存到VOQ队列,等待交换调度;
处理节点收到经交换矩阵交换到达的由SFH封装的数据包后,其内部的软件交换机(或控制模块)将数据包递交到当前网络功能实例序号(Index)对应的网络功能实例(NFI)处理,每个网络功能实例在完成数据包的网络功能处理之后,更新SFH封装数据包中的Offset字段(值加1),然后将SFH封装数据包传递给软件交换机。软件交换机在收到数据包后,首先检查Offset字段和Count字段之间的大小关系,如果二者相等,则表明数据包已经完成所有的功能处理,由软件交换机移除SFH头部,并递交数据包至相应的功能端口FPort,然后经交换调度离开交换机系统;否则当前网络功能实例序号更新为Instance Index Vector中下一个网络功能实例序号,并进行流表项匹配,匹配成功则表明下一个待处理的网络功能实例位于当前处理节点(Server),软件交换机直接将数据包递交给对应的网络功能实例;匹配失败则表明下一个待处理的网络功能实例不在当前处理节点,软件交换机将数据包递交给所连接的功能端口FPort,调度器根据当前网络功能实例序号,查询网络功能实例状态表,得到网络功能实例所在处理节点(Server)连接的功能端口FPort,并将其缓存到VOQ队列,等待交换调度,这样,经功能端口FPort交换后传递至下一个处理节点处理。
CN201810201215.8A 2018-03-12 2018-03-12 一种基于服务功能链的交换机系统 Expired - Fee Related CN108471389B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810201215.8A CN108471389B (zh) 2018-03-12 2018-03-12 一种基于服务功能链的交换机系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810201215.8A CN108471389B (zh) 2018-03-12 2018-03-12 一种基于服务功能链的交换机系统

Publications (2)

Publication Number Publication Date
CN108471389A true CN108471389A (zh) 2018-08-31
CN108471389B CN108471389B (zh) 2020-06-12

Family

ID=63264296

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810201215.8A Expired - Fee Related CN108471389B (zh) 2018-03-12 2018-03-12 一种基于服务功能链的交换机系统

Country Status (1)

Country Link
CN (1) CN108471389B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109753359A (zh) * 2018-12-27 2019-05-14 郑州云海信息技术有限公司 一种用于构建资源池的fpga板卡、服务器和系统
CN112769785A (zh) * 2020-12-29 2021-05-07 深圳市风云实业有限公司 基于机架交换机设备的网络一体化深度检测装置及方法
CN113132156A (zh) * 2021-03-31 2021-07-16 中国人民解放军战略支援部队信息工程大学 存储-计算-传输一体化的网络功能基础平台结构及方法
WO2021155637A1 (zh) * 2020-02-07 2021-08-12 阿里巴巴集团控股有限公司 信息处理方法、设备、系统及存储介质
CN113472811A (zh) * 2021-08-23 2021-10-01 北京交通大学 一种智融标识网络中的异构服务功能链转发协议与方法
CN115086450A (zh) * 2022-06-01 2022-09-20 珠海高凌信息科技股份有限公司 一种可编程数据平面架构、流表更新方法及交换机
WO2024066555A1 (zh) * 2022-09-26 2024-04-04 华为技术有限公司 一种数据通信方法、交换芯片、通信节点及通信网络

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170177396A1 (en) * 2015-12-22 2017-06-22 Stephen T. Palermo Methods and apparatus for multi-stage vm virtual network function and virtual service function chain acceleration for nfv and needs-based hardware acceleration
CN107332913A (zh) * 2017-07-04 2017-11-07 电子科技大学 一种5g移动网络中服务功能链的优化部署方法
CN107493184A (zh) * 2016-06-12 2017-12-19 中兴通讯股份有限公司 虚拟化网络功能部署方法及系统
US20180034714A1 (en) * 2016-07-29 2018-02-01 Fujitsu Limited Cross-domain orchestration of switch and service functions

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170177396A1 (en) * 2015-12-22 2017-06-22 Stephen T. Palermo Methods and apparatus for multi-stage vm virtual network function and virtual service function chain acceleration for nfv and needs-based hardware acceleration
CN107493184A (zh) * 2016-06-12 2017-12-19 中兴通讯股份有限公司 虚拟化网络功能部署方法及系统
US20180034714A1 (en) * 2016-07-29 2018-02-01 Fujitsu Limited Cross-domain orchestration of switch and service functions
CN107332913A (zh) * 2017-07-04 2017-11-07 电子科技大学 一种5g移动网络中服务功能链的优化部署方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
J. HALPERN, ED等: "Service Function Chaining (SFC) Architecture", 《IETF DRAFT-IETF-SFC-ARCHITECTURE-07》 *
P. QUINN, ED.等: "Network Service Header (NSH)", 《IETF DRAFT-IETF-SFC-NSH-28》 *
刘益岑等: "动态服务功能链(SFC)技术研究进展", 《计算机工程与应用》 *

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109753359A (zh) * 2018-12-27 2019-05-14 郑州云海信息技术有限公司 一种用于构建资源池的fpga板卡、服务器和系统
WO2021155637A1 (zh) * 2020-02-07 2021-08-12 阿里巴巴集团控股有限公司 信息处理方法、设备、系统及存储介质
CN113259143A (zh) * 2020-02-07 2021-08-13 阿里巴巴集团控股有限公司 信息处理方法、设备、系统及存储介质
CN112769785A (zh) * 2020-12-29 2021-05-07 深圳市风云实业有限公司 基于机架交换机设备的网络一体化深度检测装置及方法
CN112769785B (zh) * 2020-12-29 2023-06-27 深圳市风云实业有限公司 基于机架交换机设备的网络一体化深度检测装置及方法
CN113132156A (zh) * 2021-03-31 2021-07-16 中国人民解放军战略支援部队信息工程大学 存储-计算-传输一体化的网络功能基础平台结构及方法
CN113132156B (zh) * 2021-03-31 2022-08-12 中国人民解放军战略支援部队信息工程大学 存储-计算-传输一体化的网络功能基础平台结构及方法
CN113472811A (zh) * 2021-08-23 2021-10-01 北京交通大学 一种智融标识网络中的异构服务功能链转发协议与方法
CN115086450A (zh) * 2022-06-01 2022-09-20 珠海高凌信息科技股份有限公司 一种可编程数据平面架构、流表更新方法及交换机
CN115086450B (zh) * 2022-06-01 2023-11-17 珠海高凌信息科技股份有限公司 一种可编程数据平面装置、流表更新方法及交换机
WO2024066555A1 (zh) * 2022-09-26 2024-04-04 华为技术有限公司 一种数据通信方法、交换芯片、通信节点及通信网络

Also Published As

Publication number Publication date
CN108471389B (zh) 2020-06-12

Similar Documents

Publication Publication Date Title
CN108471389A (zh) 一种基于服务功能链的交换机系统
CN108475244A (zh) 加速网络分组处理
CN102334112B (zh) 用于虚拟机网络的方法和系统
CN103347013B (zh) 一种增强可编程能力的OpenFlow网络系统和方法
CN102347900B (zh) 整合虚拟和物理网络交换设备到异构交换域的方法和系统
CN105553849B (zh) 一种传统ip网络与sptn网络互通方法与系统
CN105519046B (zh) 可缩放和分离式网络虚拟化
CN104685507B (zh) 向虚拟云基础结构提供虚拟安全装置架构
CN105634986B (zh) 一种交换机实现方法与系统
CN107819742B (zh) 一种动态部署网络安全服务的系统架构及其方法
CN105812340B (zh) 一种虚拟网络访问外网的方法和装置
CN102255903B (zh) 一种云计算虚拟网络与物理网络隔离安全方法
CN108833299B (zh) 一种基于可重构交换芯片架构的大规模网络数据处理方法
CN103004158A (zh) 具有可编程内核的网络设备
CN106685903A (zh) 基于sdn的数据传输方法、sdn控制器和sdn系统
CN105721358A (zh) 多跳分布控制面和单跳数据面交换结构系统的方法和装置
CN104734872B (zh) 一种基于软件定义网络的工业回程网实现方法与系统
CN106341330A (zh) 一种sdn控制器的拓扑发现方法及系统
CN104247341B (zh) 分布式交换机及其多播树层次结构的动态优化方法
CN105049419B (zh) 基于异构多样性的拟态网络逐级交换路由系统
CN108390833A (zh) 一种基于虚拟域的软件定义网络转发控制方法
CN101160856A (zh) 一种网络处理器
CN110430114A (zh) 一种虚拟路由器及实现sdn网络与传统ip网络互联的方法
CN113411207B (zh) 智慧网络服务功能链的服务功能流转编排基础平台及方法
CN106301570B (zh) 一种软件定义FiWi的混合接入网络及其NC集中控制方法

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20200612

CF01 Termination of patent right due to non-payment of annual fee