CN111131135B - 数据传输方法、***、计算机可读存储介质及电子设备 - Google Patents

数据传输方法、***、计算机可读存储介质及电子设备 Download PDF

Info

Publication number
CN111131135B
CN111131135B CN201811296057.5A CN201811296057A CN111131135B CN 111131135 B CN111131135 B CN 111131135B CN 201811296057 A CN201811296057 A CN 201811296057A CN 111131135 B CN111131135 B CN 111131135B
Authority
CN
China
Prior art keywords
security component
data packet
component
nsh
target
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
CN201811296057.5A
Other languages
English (en)
Other versions
CN111131135A (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.)
Sangfor Technologies Co Ltd
Original Assignee
Sangfor 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 Sangfor Technologies Co Ltd filed Critical Sangfor Technologies Co Ltd
Priority to CN201811296057.5A priority Critical patent/CN111131135B/zh
Publication of CN111131135A publication Critical patent/CN111131135A/zh
Application granted granted Critical
Publication of CN111131135B publication Critical patent/CN111131135B/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
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0281Proxies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4633Interconnection of networks using encapsulation techniques, e.g. tunneling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]
    • 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/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • H04L41/0663Performing the actions predefined by failover planning, e.g. switching to standby network elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0272Virtual private networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请公开了一种数据传输方法,应用于业务链,所述数据传输方法包括当前安全组件对数据包清洗完成后,根据所述业务链的配置信息判断所述当前安全组件与下一安全组件是否为同一设备的安全组件;其中,所述数据包具体为剥离NSH后的数据包;若是,则将所述数据包传输至所述下一安全组件;若否,则在所述数据包中添加目标NSH,并将添加所述目标NSH后的数据包传输至所述下一安全组件。本方法能够降低业务链中数据传输过程中添加、剥离NSH的性能损耗,提高数据传输的效率。本申请还公开了一种数据传输***、一种计算机可读存储介质及一种电子设备,具有以上有益效果。

Description

数据传输方法、***、计算机可读存储介质及电子设备
技术领域
本发明涉及信息安全技术领域,特别涉及一种数据传输方法、***、一种计算机可读存储介质及一种电子设备。
背景技术
在安全资源池场景下,数据包从外网(公网)到内网(用户网络),或从外网到内网,需要经过各种各样的服务节点,才能够保证提供给快速、安全、稳定的网络服务。这些服务节点,包括熟知的vIDS,vNGFW,vAC,vAD等。网络数据包需要按照特定的业务逻辑所要求的顺序依次通过指定的网络服务节点,这就是业务链。
现有技术中业务链的实现方式为:利用Proxy代理接收SFF(Service FunctionForwarder,一种负责服务链上的流量转发功能的模块)转发来的数据包,剥离NSH,并发送给安全组件SF。当安全组件SF对剥离NSH的数据进行清洗后,将清洗后的数据利用Proxy代理添加NSH,并通过Proxy代理将数据发送回SFF,以便由SFF将数据包转发下一安全组件。但是,上述现有技术对于相同设备内的安全组件需要多次添加/剥离NSH,性能损耗较大。且当安全组件具有SNAT和DNAT时若存在多条业务链经过安全组件的情况下,Proxy代理无法添加特定的NSH,导致基于五元组和NSH的映射不成功。
因此,如何降低业务链中数据传输过程中添加、剥离NSH的性能损耗,提高数据传输的效率是本领域技术人员目前需要解决的技术问题。
发明内容
本申请的目的是提供一种数据传输方法、***、一种计算机可读存储介质及一种电子设备,能够降低业务链中数据传输过程中添加、剥离NSH的性能损耗,提高数据传输的效率。
为解决上述技术问题,本申请提供一种数据传输方法,应用于业务链,该数据传输方法包括:
当前安全组件对数据包清洗完成后,根据业务链的配置信息判断当前安全组件与下一安全组件是否为同一设备的安全组件;其中,数据包具体为剥离NSH后的数据包;
若是,则将数据包传输至下一安全组件;
若否,则在数据包中添加目标NSH,并将添加目标NSH后的数据包传输至下一安全组件。
可选的,根据业务链的配置信息判断当前安全组件与下一安全组件是否为同一设备的安全组件包括:
根据业务链的配置信息确定当前安全组件的第一输出端口和下一安全组件的第二输入端口;
根据第一输出端口和第二输入端口判断当前安全组件与下一安全组件是否为同一设备的安全组件。
可选的,将数据包传输至下一安全组件包括:
将当前安全组件的第一输出端口加当前安全组件的第一输入端口的分类器作为第二匹配域;
根据入口流表确定与第一匹配域对应的本地租户流表,并执行本地租户流表中与第一匹配域对应的动作,以便将数据包发送至下一安全组件的第二输入端口;
其中,入口流表为描述匹配域与租户流表的对应关系的表,租户流表为描述匹配域与输入端口的对应关系的表。
可选的,将添加目标NSH后的数据包传输至下一安全组件包括:
将下一安全组件的第二输出端口加下一安全组件的第二输出端口的分类器作为第二匹配域;
根据入口流表确定与第二匹配域对应的远端租户流表,并执行远端租户流表中与第二匹配域对应的动作,以便将添加目标NSH后的数据包传输至下一安全组件。
可选的,还包括:
当接收到业务链调整指令时,确定业务链调整指令对应的第一目标安全组件;
修改与第一目标安全组件对应的所有业务链中第一目标安全组件的输入输出端口状态,以便根据所有输入输出端口状态创建新的业务链;其中,业务链调整指令为Bypass触发指令或Bypass恢复指令。
可选的,还包括:
当检测到第二目标安全组件存在故障时,执行主备切换操作将第二目标安全组件更换为备用安全组件;
将第二目标安全组件的输入输出端口更换为备用安全组件的输入输出端口,并更新业务链。
本申请还提供了一种数据传输***,应用于业务链,该数据传输包括:
判断模块,用于当前安全组件对数据包清洗完成后,根据业务链的配置信息判断当前安全组件与下一安全组件是否为同一设备的安全组件;其中,数据包具体为剥离NSH后的数据包;
本地传输模块,用于当当前安全组件与下一安全组件为同一设备的安全组件时,将数据包传输至下一安全组件;
远端传输模块,用于当当前安全组件与下一安全组件不为同一设备的安全组件时,在数据包中添加目标NSH,并将添加目标NSH后的数据包传输至下一安全组件。
可选的,判断模块包括:
端口确定单元,用于根据业务链的配置信息确定当前安全组件的第一输出端口和下一安全组件的第二输入端口;
端口判断单元,用于根据第一输出端口和第二输入端口判断当前安全组件与下一安全组件是否为同一设备的安全组件。
可选的,本地传输模块包括:
第一匹配域确定单元,用于当当前安全组件与下一安全组件为同一设备的安全组件时,将当前安全组件的第一输出端口加当前安全组件的第一输入端口的分类器作为第二匹配域;
第一传输单元,用于根据入口流表确定与第一匹配域对应的本地租户流表,并执行本地租户流表中与第一匹配域对应的动作,以便将数据包发送至下一安全组件的第二输入端口;
其中,入口流表为描述匹配域与租户流表的对应关系的表,租户流表为描述匹配域与输入端口的对应关系的表。
可选的,远端传输模块包括:
第二匹配域确定单元,用于当当前安全组件与下一安全组件不为同一设备的安全组件时,将下一安全组件的第二输出端口加下一安全组件的第二输出端口的分类器作为第二匹配域;
第二传输单元,用于根据入口流表确定与第二匹配域对应的远端租户流表,并执行远端租户流表中与第二匹配域对应的动作,以便将添加目标NSH后的数据包传输至下一安全组件。
可选的,还包括:
组件确定模块,用于当接收到业务链调整指令时,确定业务链调整指令对应的第一目标安全组件;
业务链调整模块,用于修改与第一目标安全组件对应的所有业务链中第一目标安全组件的输入输出端口状态,以便根据所有输入输出端口状态创建新的业务链;其中,业务链调整指令为Bypass触发指令或Bypass恢复指令。
可选的,还包括:
切换模块,用于当检测到第二目标安全组件存在故障时,执行主备切换操作将第二目标安全组件更换为备用安全组件;
业务链更新模块,用于将第二目标安全组件的输入输出端口更换为备用安全组件的输入输出端口,并更新业务链。
本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序执行时实现上述数据传输方法执行的步骤。
本申请还提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器调用所述存储器中的计算机程序时实现上述数据传输方法执行的步骤。
本发明提供了一种数据传输方法,包括当前安全组件对数据包清洗完成后,根据所述业务链的配置信息判断所述当前安全组件与下一安全组件是否为同一设备的安全组件;其中,所述数据包具体为剥离NSH后的数据包;若是,则将所述数据包传输至所述下一安全组件;若否,则在所述数据包中添加目标NSH,并将添加所述目标NSH后的数据包传输至所述下一安全组件。
本申请为了减少现有技术中反复添加、剥离NSH带来的性能损耗,首先判断清洗数据包的当前安全组件和下一安全组件是否为同一设备上的安全组件,来决定是否需要添加NSH。需要说明的是,NSH是业务链的数据包头部,里面包括业务链路径ID,路径上各安全组件的编号,元数据等信息。只有当前安全组件和下一安全组件不在同一设备上时,NSH上存储的地址、编号等信息才起到作用。若当前安全组件和下一安全组件在同一设备上,NSH并不起作用,反而需要反复执行类似现有技术中Proxy代理添加/剥离NSH的操作。故本申请通过判断当前安全组件和下一安全组件是否为同一设备上的安全组件,来发送数据包前决定是否需要添加NSH。若当前安全组件和下一安全组件为同一设备上的安全组件,无需添加NSH直接传输即可。若当前安全组件和下一安全组件不为同一设备上的安全组件,添加NSH并进行跨隧道传输,由于跨隧道传输需要NSH内的相关信息,因此无需执行剥离NSH的操作。因此,本申请可以降低业务链中数据传输过程中添加、剥离NSH的性能损耗,提高数据传输的效率。本申请同时还提供了一种数据传输***、一种计算机可读存储介质和一种电子设备,具有上述有益效果,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例所提供的一种数据传输方法的流程图;
图2为本申请实施例所提供的一种本地数据包传输的方法的流程图;
图3为本申请实施例所提供的一种远端数据包传输的方法的流程图;
图4为本申请实施例所提供的一种优选的数据传输方法的流程图;
图5为本申请实施例所提供的一种数据传输***的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
下面请参见图1,图1为本申请实施例所提供的一种数据传输方法的流程图。
具体步骤可以包括:
S101:当前安全组件对数据包清洗完成后,根据业务链的配置信息判断当前安全组件与下一安全组件是否为同一设备的安全组件;若是,则进入S102;若否,则进入S103;
其中,本实施例是应用于业务链的数据传输方法,业务链又称服务链(SFC,service function chain),是一种将物理/虚拟功能组件(主要是L4~L7层功能组件,如防火墙、VPN),按照一定顺序串起来,让特定流量按照预定顺序经过这些安全组件的技术。本实施例为与各个安全组件的连接的交换机,该交换机可以为Open Vswitch。Open Vswitch是一种开源稳定的软件SDN交换机,具体的Open Vswitch上的Vxlan-GPE技术可以封装Ip,Ethernet,MPLS,NSH等报文,故本实施例可以利用Vxlan-GPE技术封装NSH报文,以便完成安全组件之间的数据传输。交换机将数据包传输至当前安全组件,当当前安全组件对数据包清洗结束后,将清洗后的数据包发送回交换机,交换机再将当前安全组件清洗后的数据包发送至下一安全组件。NSH(network function header,服务链的数据包头部),NSH里面包括服务链路径ID,路径上各安全组件的编号,元数据等信息。在进行数据源端传输时,如果没有NSH封装,那么在业务链对应的每个安全组件上都需要对流量进行分类识别,不仅影响性能,而且不利于扩展。
本步骤中提到的当前安全组件、下一安全组件、上一安全组件都属于安全组件,安全组件是用于对注入的数据进行清洗或过滤的安全设备。安全组件可以是实体的设备,也可以是通过NFV(网络功能虚拟化)技术实现的虚拟设备,此处不进行具体的限定。
在本步骤中并不限定当前安全组件是否为业务链中第一个安全组件,故本步骤中当前安全组件清洗的数据包可以是上一安全组件清洗后的报文,也可以是尚未清洗过的报文。由于各个安全组件所实现的功能各不相同,例如可以包括下一代防火墙服务、数据库审计服务、SSL VPN安全接入服务、运维审计服务、主机防病毒服务、日志审计服务、漏洞扫描服务、配置核查服务、负载均衡服务、微隔离服务、主机安全检测服务和响应服务中任意一项或任意几项的组合,因此每一安全组件对数据包所进行的处理也不尽相同。
需要说明的是,在业务链中安全组件又称为SF(Service Function),由于负责对收到的数据包做特定的处理。通常情况下,安全组件并不具备NSH解析功能,若数据包添加有NSH,则需要在安全组件和其对应的SFF之间增加一个proxy,以便解析NSH并将剥离NSH后的数据包发送给安全组件。SFF(Service Function Forwarder)用于实现服务链上的流量转发功能。因此,在本实施例中,当前安全组件清洗的数据包是不包括NSH的数据包。
可以理解的是,本实施例可以通过预先记录各个安全组件所对应的设备,通过业务链的配置信息确定当前安全组件和下一安全组件,在根据预先存储的对应关系判断当前组件和下一安全组件是否为同一设备的安全组件。进一步的,由于业务链是一种让特定流量按照预定顺序经过各个安全组件的技术,因此业务链的配置信息中包括有业务链涉及的安全组件的先后顺序以及流量经过各个安全组件的输入端口和输出端口。作为一种优选的实施方式,可以通过判断在业务链上顺序相邻的两个安全组件的输入/输出端口来判断是否为同一设备上的安全组件。具体的,可以包括以下步骤:根据业务链的配置信息确定当前安全组件的第一输出端口和下一安全组件的第二输入端口;根据第一输出端口和第二输入端口判断当前安全组件与下一安全组件是否为同一设备的安全组件。
前面已经提到NSH中包括服务链路径ID、路径上各个安全组件的编号及元信息,在进行本地传输时由于当前安全组件和下一安全组件在为同一设备的安全组件,并不需要NSH中的地址信息,因此可以不添加NSH直接将清洗后的数据包发送至相应的端口。若当前安全组件和下一安全组件在不为同一设备的安全组件,在进行数据传输时需要用到NSH中的地址信息,故需要在数据包上添加NSH,再发送到对应的端口。
S102:将数据包传输至下一安全组件;
其中,本步骤是建立在当前安全组件与下一安全组件为同一设别上的安全组件的前提下,由于当前安全组件所清洗的数据包为剥离NSH头后的数据包,而本步骤中并没有添加NSH的操作,因此下一安全组件接收到的数据包同样是不存在NSH头的数据包,故无需采用如现有技术中Proxy代理剥离NSH的操作。
需要说明的是,本实施例中所提到的“当前安全组件所清洗的数据包为剥离NSH头后的数据包”是指不包括NSH的数据包,并不限定当前安全组件是否存在剥离NSH的操作。在将数据包传输至下一安全组件后,下一安全组件对数据包执行相应的数据清洗操作后,可以继续按照业务链所规定的流量经过顺序将清洗后的数据包传输至其他安全组件。
S103:在数据包中添加目标NSH,并将添加目标NSH后的数据包传输至下一安全组件。
其中,本步骤是建立在当前安全组件与下一安全组件不为同一设别上的安全组件的前提下,由于当前安全组件所清洗的数据包为剥离NSH头后的数据包,而为了将数据包传输至不在同一设备上的下一安全组件,需要利用NSH中的地址信息,故本步骤中需要先执行添加目标NSH的操作再将数据包传输至下一安全组件。具体的,在本步骤中可以通过Vxlan-Gpe隧道将数据包传输至下一安全组件。可以理解的是,不同的数据传输路径对应着不同的NSH,因此本实施例默认存在根据当前安全组件与下一安全组件确定目标NSH,再将NSH添加至数据包中的操作。
本实施例为了减少现有技术中反复添加、剥离NSH带来的性能损耗,首先判断清洗数据包的当前安全组件和下一安全组件是否为同一设备上的安全组件,来决定是否需要添加NSH。需要说明的是,NSH是业务链的数据包头部,里面包括业务链路径ID,路径上各安全组件的编号,元数据等信息。只有当前安全组件和下一安全组件不在同一设备上时,NSH上存储的地址、编号等信息才起到作用。若当前安全组件和下一安全组件在同一设备上,NSH并不起作用,反而需要反复执行类似现有技术中Proxy代理添加/剥离NSH的操作。故本实施例通过判断当前安全组件和下一安全组件是否为同一设备上的安全组件,来发送数据包前决定是否需要添加NSH。若当前安全组件和下一安全组件为同一设备上的安全组件,无需添加NSH直接传输即可。若当前安全组件和下一安全组件不为同一设备上的安全组件,添加NSH并进行跨隧道传输,由于跨隧道传输需要NSH内的相关信息,因此无需执行剥离NSH的操作。因此,本实施例可以降低业务链中数据传输过程中添加、剥离NSH的性能损耗,提高数据传输的效率。
下面请参见图2,图2为本申请实施例所提供的一种本地数据包传输的方法的流程图;本步骤是对图1对应的实施例中S102的具体描述,可以将本实施例与图1对应的实施例相结合得到更优选的实施方式。
具体步骤可以包括:
S201:将当前安全组件的第一输出端口加当前安全组件的第一输入端口的分类器作为第二匹配域;
其中,由于当前安全组件与下一安全组件为同一设备的安全组件,因此在入口流表中将第一输出端口加当前安全组件的分类器得到第一匹配域,当前安全组件的分类器就是当前安全组件的五元组。
S202:根据入口流表确定与第一匹配域对应的本地租户流表,并执行本地租户流表中与第一匹配域对应的动作,以便将数据包发送至下一安全组件的第二输入端口;
其中,入口流表为描述匹配域与租户流表的对应关系的表,租户流表为描述匹配域与输入端口的对应关系的表。租户流表可以包括本地租户流表和远端租户流表。
本实施例默认对交换机内部的流表进行了改进:在分配租户或创建租户时,为了避免多租户使用流表带来的复杂度,本实施例中所有租户共用入口流表,入口流表中的匹配域对应着输出到某一本地租户流表或远端租户流表的动作。本地租户流表或远端租户流表中的匹配域对应着将数据包传输到某一安全组件的输入端口的操作。流表属于本领域常见的概念,此处不再赘述,总之在本实施例中将流表分为两大类,一类是记录本地或远端租户流表与匹配域的对应关系的入口流表,另一类是记录安全组件的输入端口与匹配与之间的对应关系的本地或远端租户流表。需要说明的是,流表中实际记录的是匹配域与动作的对应关系,由于在本申请中流表中的动作为确定租户流表或将数据包输出到安全组件的输入端口,为了方便理解,在本步骤中将其引申为述匹配域与租户流表、匹配域与输入端口的对应关系。
举例说明上述流表划分的过程:在分配租户时候或创建租户时,多个租户共用一开始的流分类表,每个租户有自己的一个表,用于实现自己的SFC功能(流表项)。OpenvSwitch的创建的每个br(交换机)有255个表,其中table 0表作为入口表;table 10到220为租户表以支撑210个租户,租户表用来执行具体的动作(输出到输入输出端口中的ingress或隧道口);table 220到255用于支持其他的基础网络业务。
下面请参见图3,图3为本申请实施例所提供的一种远端数据包传输的方法的流程图;本步骤是对图1对应的实施例中S103的具体描述,可以将本实施例与图1对应的实施例相结合得到更优选的实施方式。
S301:将下一安全组件的第二输出端口加下一安全组件的第二输出端口的分类器作为第二匹配域;
其中,由于当前安全组件与下一安全组件不为同一设备的安全组件,因此在入口流表中将第一输出端口加下一安全组件的分类器得到第二匹配域,以便在远端租户流表中执行第二匹配域对应的输出动作。
S302:根据入口流表确定与第二匹配域对应的远端租户流表,并执行远端租户流表中与第二匹配域对应的动作,以便将添加目标NSH后的数据包通过Vxlan-Gpe隧道传输至下一安全组件。
其中,Vxlan(Virtual eXtensible Local Area Network,虚拟可扩展局域网)是一种将二层报文用四层协议进行封装的Overlay技术。具体来说,Vxlan采用MAC-in-UDP的封装方式对二层网络进行扩展。目前在数据中心内应用Vxlan技术最广泛的场景即是实现虚拟机在三层网络范围内的自由迁移。使用Vxlan之后,原来局限于同数据中心、同物理二层网、同VLAN的虚拟机迁移可以不再受这些限制,可以按需扩展到虚拟二层网络上的任何地方。Vxlan-Gpe隧道为Vxlan中的一个隧道。
下面请参见图4,图4为本申请实施例所提供的一种优选的数据传输方法的流程图,本实施例是将图1、图2和图3对应的实施例进行结合得到的一种更优选的实施方式,具体步骤可以包括:
S401:当前安全组件对数据包清洗完成后,根据业务链的配置信息确定当前安全组件的第一输出端口和下一安全组件的第二输入端口;
S402:根据第一输出端口和第二输入端口判断当前安全组件与下一安全组件是否为同一设备的安全组件;其中,数据包具体为剥离NSH后的数据包;若是,则进入S403;若否,则进入S405;
S403:将当前安全组件的第一输出端口加当前安全组件的第一输入端口的分类器作为第二匹配域;进入S404;
S404:根据入口流表确定与第一匹配域对应的本地租户流表,并执行本地租户流表中与第一匹配域对应的动作,以便将数据包发送至下一安全组件的第二输入端口;结束流程;
S405:将下一安全组件的第二输出端口加下一安全组件的第二输出端口的分类器作为第二匹配域;进入S406
S406:根据入口流表确定与第二匹配域对应的远端租户流表,并执行远端租户流表中与第二匹配域对应的动作,以便将添加目标NSH后的数据包通过Vxlan-Gpe隧道传输至下一安全组件;结束流程。
本实施例针对现有的SFC实现方案的不足,提出一个支持多租户、多Vlan、多网关模式,支持安全资源池在有无Vrouter模式下,高性能的一种实现业务链方式;提出基于VXLAN-GPE+NSH协议,去掉Proxy模式下,SF在相同SFF上,数据包经过SFF到SF不会添加/剥离NSH头操作,从而提高网络性能和吞吐。本实施例设计多级流表以减少主场景下NSH的开销和避免多租户时流表的复杂度。本发明支持NFV(SF)的高可用和ByPass功能,且不关注NFV(SF)具体的业务行为(是否DNAT或SNAT等),详见以下两个例子:
例1、Bypass功能的实现方案
步骤1:当接收到业务链调整指令时,确定业务链调整指令对应的第一目标安全组件;
其中,业务链调整指令可以为Bypass触发指令或Bypass恢复指令,当业务链调整指令为Bypass触发指令说明第一安全组件对应的虚拟机处于断电状态或死机状态,当业务链调整指令为Bypass恢复指令说明第一安全组件对应的虚拟机已经从处于断电状态或死机状态中恢复至正常状态,可以参与数据清洗操作。
步骤2:修改与第一目标安全组件对应的所有业务链中第一目标安全组件的输入输出端口状态,以便根据所有输入输出端口状态创建新的业务链;
Byapss是根据当前虚拟机的状态,来决定业务链是否经过该安全组件。本实施例在创建业务链的过程中,保存的是有效的(NFV的状态是UP状态)安全组件的输入输出端口信息。当NFV的状态变为Down时,我们只需要上层告知本输入输出端口对应的NFV状态为Down,更新一次业务链即可。同理,在ByPass恢复时,也是更改输入输出端口的状态来更新业务链。
例2、业务链高可用的实现方案
步骤1:当检测到第二目标安全组件存在故障时,执行主备切换操作将第二目标安全组件更换为备用安全组件;
步骤2:将第二目标安全组件的输入输出端口更换为备用安全组件的输入输出端口,并更新业务链。
其中,本实施例相当于主备切换操作,将存在故障的第二目标安全组件更换为备用安全组件,并将业务链中第二目标安全组件的输入输出端口更换为备用安全组件的输入输出端口。具体的,不同的安全组件可以具有相同的功能,用作主备切换时,当主安全组件出现异常情况下,可用备的安全组件自动进行切换。当主安全组件出现异常或者宕机情况下,上层下发RestApi或者CLI命令,下发该安全组件涉及的端口与备用的安全组件之间端口的映射,也即,形象用备用的安全组件端口替换安全组件主的端口,然后重新生成该安全组件涉及的业务链输入输出端口,更新业务链流表。
下面通过在实际应用中的实施例说明图4对应对应的实施例描述的流程,该实际应用中的实施例以上一安全组件、当前安全组件与下一安全组件三者之间的数据传输进行说明。
数据包经安全资源池从外网访问内网或者内网访问外网时,在安全资源池有vRouter(一种虚拟路由器)情况下,vRouter作为进出业务链的输入输出端口;在安全资源池没有vRouter没有vRouter时,以物理口作为安全资源池的输入输出口。下发业务链的配置时,确定租户表,保存所有有效的(NFV的状态都是UP状态)portPair信息,以及前一个的portPair的ingress端口和后一个portPair的egress端口。遍历保存的每一个portPair信息,判断前portPair的ingress端口以及后portPair端口,决定是否需要跨隧道加NSH头传输,或本地传输。
若上一安全组件与当前安全组件在同一设备,则当前安全组件的入口流表的匹配域为上一安全组件的输出端口加当前安全组件的输入端口的分类器,动作为输出到租户表,当前安全组建的租户表匹配域为上一安全组件的输出端口加当前安全组件的输入端口的分类器,动作为将数据包输出到当前安全组件的输入输出端口(portPair)的输入端口。
若上一安全组件与当前安全组件不在同一设备,则当前安全组件的入口流表的匹配域为当前安全组件的输出端口加当前安全组件的输出端口的分类器,动作为输出到租户表,将租户表的匹配域设置为当前安全组件的输出端口加当前安全组件的输出端口的分类器,动作为将数据包添加NSH并输出到隧道口。交换机利用自身存储的入口流表对接收到的数据包中的NSH进行匹配,确定与NSH对应的spi和si,输出到当前安全组件的输入端口。
若当前安全组件与下一安全组件在同一设备,则下一安全组件的入口流表的匹配域为当前安全组件的输出端口加下一安全组件的输入端口的分类器,动作为输出到租户表,下一安全组建的租户表匹配域为当前安全组件的输出端口加下一安全组件的输入端口的分类器,动作为将数据包输出到下一安全组件的输入输出端口中(portPair)的输入端口。
若当前安全组件与下一安全组件不在同一设备,则下一安全组件的入口流表的匹配域为下一安全组件的输出端口加下一安全组件的输出端口的分类器,动作为输出到租户表,将租户表的匹配域设置为下一安全组件的输出端口加下一安全组件的输出端口的分类器,动作为将数据包添加NSH并输出到隧道口。交换机利用自身存储的入口流表对接收到的数据包中的NSH进行匹配,确定与NSH对应的spi和si,输出到下一安全组件的输入端口。
请参见图5,图5为本申请实施例所提供的一种数据传输***的结构示意图;
该***可以包括:
判断模块100,用于下一安全组件对数据包清洗完成后,根据业务链的配置信息判断下一安全组件与下一安全组件是否为同一设备的安全组件;其中,数据包具体为剥离NSH后的数据包;
本地传输模块200,用于当下一安全组件与下一安全组件为同一设备的安全组件时,将数据包传输至下一安全组件;
远端传输模块300,用于当下一安全组件与下一安全组件不为同一设备的安全组件时,在数据包中添加目标NSH,并将添加目标NSH后的数据包传输至下一安全组件。
本实施例为了减少现有技术中反复添加、剥离NSH带来的性能损耗,首先判断清洗数据包的下一安全组件和下一安全组件是否为同一设备上的安全组件,来决定是否需要添加NSH。需要说明的是,NSH是业务链的数据包头部,里面包括业务链路径ID,路径上各安全组件的编号,元数据等信息。只有下一安全组件和下一安全组件不在同一设备上时,NSH上存储的地址、编号等信息才起到作用。若下一安全组件和下一安全组件在同一设备上,NSH并不起作用,反而需要反复执行类似现有技术中Proxy代理添加/剥离NSH的操作。故本实施例通过判断下一安全组件和下一安全组件是否为同一设备上的安全组件,来发送数据包前决定是否需要添加NSH。若下一安全组件和下一安全组件为同一设备上的安全组件,无需添加NSH直接传输即可。若下一安全组件和下一安全组件不为同一设备上的安全组件,添加NSH并进行跨隧道传输,由于跨隧道传输需要NSH内的相关信息,因此无需执行剥离NSH的操作。
进一步的,判断模块100包括:
端口确定单元,用于根据业务链的配置信息确定下一安全组件的第一输出端口和下一安全组件的第二输入端口;
端口判断单元,用于根据第一输出端口和第二输入端口判断下一安全组件与下一安全组件是否为同一设备的安全组件。
进一步的,本地传输模块200包括:
第一匹配域确定单元,用于当下一安全组件与下一安全组件为同一设备的安全组件时,将下一安全组件的第一输出端口加下一安全组件的分类器作为第二匹配域;
第一传输单元,用于根据入口流表确定与第一匹配域对应的本地租户流表,并执行本地租户流表中与第一匹配域对应的动作,以便将数据包发送至下一安全组件的第二输入端口;
其中,入口流表为描述匹配域与租户流表的对应关系的表,租户流表为描述匹配域与输入端口的对应关系的表。
进一步的,远端传输模块300包括:
第二匹配域确定单元,用于当下一安全组件与下一安全组件不为同一设备的安全组件时,将下一安全组件的第一输出端口加下一安全组件的分类器作为第二匹配域;
第二传输单元,用于根据入口流表确定与第二匹配域对应的远端租户流表,并执行远端租户流表中与第二匹配域对应的动作,以便将添加目标NSH后的数据包传输至下一安全组件。
进一步的,还包括:
组件确定模块,用于当接收到业务链调整指令时,确定业务链调整指令对应的第一目标安全组件;
业务链调整模块,用于修改与第一目标安全组件对应的所有业务链中第一目标安全组件的输入输出端口状态,以便根据所有输入输出端口状态创建新的业务链;其中,业务链调整指令为Bypass触发指令或Bypass恢复指令。
进一步的,还包括:
切换模块,用于当检测到第二目标安全组件存在故障时,执行主备切换操作将第二目标安全组件更换为备用安全组件;
业务链更新模块,用于将第二目标安全组件的输入输出端口更换为备用安全组件的输入输出端口,并更新业务链。
由于***部分的实施例与方法部分的实施例相互对应,因此***部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
本申请还提供了一种计算机可读存储介质,其上存有计算机程序,该计算机程序被执行时可以实现上述实施例所提供的步骤。该存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本申请还提供了一种电子设备,可以包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时,可以实现上述实施例所提供的步骤。当然所述电子设备还可以包括各种网络接口,电源等组件。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的***而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的状况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

Claims (12)

1.一种数据传输方法,其特征在于,应用于业务链,包括:
当前安全组件对数据包清洗完成后,根据所述业务链的配置信息判断所述当前安全组件与下一安全组件是否为同一设备的安全组件;其中,所述数据包具体为剥离NSH后的数据包;
若是,则将所述数据包传输至所述下一安全组件;
若否,则在所述数据包中添加目标NSH,并将添加所述目标NSH后的数据包传输至所述下一安全组件;
其中,根据所述业务链的配置信息判断所述当前安全组件与下一安全组件是否为同一设备的安全组件包括:
根据所述业务链的配置信息确定所述当前安全组件的第一输出端口和下一安全组件的第二输入端口;
根据所述第一输出端口和所述第二输入端口判断所述当前安全组件与所述下一安全组件是否为同一设备的安全组件。
2.根据权利要求1所述数据传输方法,其特征在于,将所述数据包传输至所述下一安全组件包括:
将所述当前安全组件的第一输出端口加所述当前安全组件的第一输入端口的分类器作为第一匹配域;
根据入口流表确定与所述第一匹配域对应的本地租户流表,并执行所述本地租户流表中与所述第一匹配域对应的动作,以便将所述数据包发送至所述下一安全组件的第二输入端口;
其中,所述入口流表为描述匹配域与租户流表的对应关系的表,所述租户流表为描述匹配域与输入端口的对应关系的表。
3.根据权利要求1所述数据传输方法,其特征在于,将添加所述目标NSH后的数据包传输至所述下一安全组件包括:
将所述下一安全组件的第二输出端口加所述下一安全组件的第二输出端口的分类器作为第二匹配域;
根据入口流表确定与所述第二匹配域对应的远端租户流表,并执行所述远端租户流表中与所述第二匹配域对应的动作,以便将添加所述目标NSH后的数据包传输至所述下一安全组件。
4.根据权利要求1所述数据传输方法,其特征在于,还包括:
当接收到业务链调整指令时,确定所述业务链调整指令对应的第一目标安全组件;
修改与所述第一目标安全组件对应的所有业务链中所述第一目标安全组件的输入输出端口状态,以便根据所有输入输出端口状态创建新的业务链;其中,所述业务链调整指令为Bypass触发指令或Bypass恢复指令。
5.根据权利要求1至4任一项所述数据传输方法,其特征在于,还包括:
当检测到第二目标安全组件存在故障时,执行主备切换操作将所述第二目标安全组件更换为备用安全组件;
将所述第二目标安全组件的输入输出端口更换为所述备用安全组件的输入输出端口,并更新业务链。
6.一种数据传输***,其特征在于,应用于业务链,包括:
判断模块,用于当前安全组件对数据包清洗完成后,根据所述业务链的配置信息判断所述当前安全组件与下一安全组件是否为同一设备的安全组件;其中,所述数据包具体为剥离NSH后的数据包;
本地传输模块,用于当所述当前安全组件与所述下一安全组件为同一设备的安全组件时,将所述数据包传输至所述下一安全组件;
远端传输模块,用于当所述当前安全组件与所述下一安全组件不为同一设备的安全组件时,在所述数据包中添加目标NSH,并将添加所述目标NSH后的数据包传输至所述下一安全组件;
其中,所述判断模块包括:
端口确定单元,用于根据所述业务链的配置信息确定所述当前安全组件的第一输出端口和下一安全组件的第二输入端口;
端口判断单元,用于根据所述第一输出端口和所述第二输入端口判断所述当前安全组件与所述下一安全组件是否为同一设备的安全组件。
7.根据权利要求6所述数据传输***,其特征在于,所述本地传输模块包括:
第一匹配域确定单元,用于当所述当前安全组件与所述下一安全组件为同一设备的安全组件时,将所述当前安全组件的第一输出端口加所述当前安全组件的第一输入端口的分类器作为第一匹配域;
第一传输单元,用于根据入口流表确定与所述第一匹配域对应的本地租户流表,并执行所述本地租户流表中与所述第一匹配域对应的动作,以便将所述数据包发送至所述下一安全组件的第二输入端口;
其中,所述入口流表为描述匹配域与租户流表的对应关系的表,所述租户流表为描述匹配域与输入端口的对应关系的表。
8.根据权利要求6所述数据传输***,其特征在于,所述远端传输模块包括:
第二匹配域确定单元,用于当所述当前安全组件与所述下一安全组件不为同一设备的安全组件时,将所述下一安全组件的第二输出端口加所述下一安全组件的第二输出端口的分类器作为第二匹配域;
第二传输单元,用于根据入口流表确定与所述第二匹配域对应的远端租户流表,并执行所述远端租户流表中与所述第二匹配域对应的动作,以便将添加所述目标NSH后的数据包传输至所述下一安全组件。
9.根据权利要求6所述数据传输***,其特征在于,还包括:
组件确定模块,用于当接收到业务链调整指令时,确定所述业务链调整指令对应的第一目标安全组件;
业务链调整模块,用于修改与所述第一目标安全组件对应的所有业务链中所述第一目标安全组件的输入输出端口状态,以便根据所有输入输出端口状态创建新的业务链;其中,所述业务链调整指令为Bypass触发指令或Bypass恢复指令。
10.根据权利要求6至9任一项所述数据传输***,其特征在于,还包括:
切换模块,用于当检测到第二目标安全组件存在故障时,执行主备切换操作将所述第二目标安全组件更换为备用安全组件;
业务链更新模块,用于将所述第二目标安全组件的输入输出端口更换为所述备用安全组件的输入输出端口,并更新业务链。
11.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至5任一项所述数据传输方法的步骤。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述数据传输方法的步骤。
CN201811296057.5A 2018-11-01 2018-11-01 数据传输方法、***、计算机可读存储介质及电子设备 Active CN111131135B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811296057.5A CN111131135B (zh) 2018-11-01 2018-11-01 数据传输方法、***、计算机可读存储介质及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811296057.5A CN111131135B (zh) 2018-11-01 2018-11-01 数据传输方法、***、计算机可读存储介质及电子设备

Publications (2)

Publication Number Publication Date
CN111131135A CN111131135A (zh) 2020-05-08
CN111131135B true CN111131135B (zh) 2022-04-29

Family

ID=70494850

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811296057.5A Active CN111131135B (zh) 2018-11-01 2018-11-01 数据传输方法、***、计算机可读存储介质及电子设备

Country Status (1)

Country Link
CN (1) CN111131135B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113055433A (zh) * 2021-02-02 2021-06-29 新华三信息技术有限公司 一种文件传输方法、装置、设备及机器可读存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101640895B (zh) * 2009-08-31 2012-03-21 北京邮电大学 一种保证流媒体服务质量的方法及***
US10116553B1 (en) * 2015-10-15 2018-10-30 Cisco Technology, Inc. Application identifier in service function chain metadata
CN107579838A (zh) * 2016-07-05 2018-01-12 中兴通讯股份有限公司 数据处理方法及装置
US10659283B2 (en) * 2016-07-08 2020-05-19 Cisco Technology, Inc. Reducing ARP/ND flooding in cloud environment
CN107920023B (zh) * 2017-12-29 2021-01-19 深信服科技股份有限公司 一种安全资源池的实现方法及***

Also Published As

Publication number Publication date
CN111131135A (zh) 2020-05-08

Similar Documents

Publication Publication Date Title
US20220174042A1 (en) Network Architecture for Cloud Computing Environments
CN110166356B (zh) 发送报文的方法和网络设备
US10191758B2 (en) Directing data traffic between intra-server virtual machines
US10911355B2 (en) Multi-site telemetry tracking for fabric traffic using in-band telemetry
US9959132B2 (en) Managing virtual computing nodes using isolation and migration techniques
US10445124B2 (en) Managing virtual computing nodes using isolation and migration techniques
CN107623663B (zh) 处理网络流量的方法及装置
US20170300352A1 (en) Method and Apparatus for Deploying Virtual Machine Instance, and Device
US8081640B2 (en) Network system, network management server, and access filter reconfiguration method
CN102291455B (zh) 分布式集群处理***及其报文处理方法
CN105791072A (zh) 以太虚拟网络的接入方法及装置
CN108833305B (zh) 主机的虚拟网络装置
CN106549780B (zh) 一种网络配置方法、装置及***
CN109639488A (zh) 一种多外网分流加速方法及***
US10778467B2 (en) Method for providing virtual CPE service by using single internet line and network function virtualization cloud
US20170228539A1 (en) Control device, control system, control method, and control program
CN106685695B (zh) 一种故障检测方法及其设备
CN111131135B (zh) 数据传输方法、***、计算机可读存储介质及电子设备
CN112953833B (zh) 基于网桥实现三层路由转发的方法、***及网关设备
CN112511439B (zh) 数据转发方法、装置、设备及计算机可读存储介质
US20180198708A1 (en) Data center linking system and method therefor
CN116545665A (zh) 一种安全引流方法、***、设备及介质
CN115904626A (zh) 一种部署云资源池架构的方法及***
CN112003748B (zh) 适用于虚拟网关的故障处理方法、***、装置和存储介质
US9912575B2 (en) Routing network traffic packets through a shared inline tool

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