CN103428301B - 一种接口***及其对数据包进行处理的方法 - Google Patents

一种接口***及其对数据包进行处理的方法 Download PDF

Info

Publication number
CN103428301B
CN103428301B CN201310336623.1A CN201310336623A CN103428301B CN 103428301 B CN103428301 B CN 103428301B CN 201310336623 A CN201310336623 A CN 201310336623A CN 103428301 B CN103428301 B CN 103428301B
Authority
CN
China
Prior art keywords
packet
interface
logic interfacing
queue
thread
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
CN201310336623.1A
Other languages
English (en)
Other versions
CN103428301A (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.)
Nsfocus Technologies Inc
Nsfocus Technologies Group Co Ltd
Original Assignee
NSFOCUS Information Technology Co Ltd
Beijing NSFocus Information Security Technology 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 NSFOCUS Information Technology Co Ltd, Beijing NSFocus Information Security Technology Co Ltd filed Critical NSFOCUS Information Technology Co Ltd
Priority to CN201310336623.1A priority Critical patent/CN103428301B/zh
Publication of CN103428301A publication Critical patent/CN103428301A/zh
Application granted granted Critical
Publication of CN103428301B publication Critical patent/CN103428301B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种接口***及其对数据包进行处理的方法,将接口***部署为多层,并将现有技术中在物理接口上配置的转发属性从物理接口上剥离出来,通过在物理接口之上增加配置有转发属性的逻辑接口,来实现对数据包的收、发以及逻辑处理,由于逻辑接口的数量和配置的转发属性可根据实际需要动态调整,因此,本发明实施例的方案可以增加接口技术在物理层次部署的灵活性,并在一定程度上解除了接口数量的限制,提高接口部署的可扩充性。

Description

一种接口***及其对数据包进行处理的方法
技术领域
本发明涉及通信技术领域,尤其涉及一种接口***及其对数据包进行处理的方法。
背景技术
接口作为在线网络安全设备的基础构成部分,其组织形式和框架设计对在线网络安全设备有重要意义。目前,在线网络安全设备中接口的组织形式是在设备部署单一的接口处理层,直接在物理接口(如以太网接口)上配置转发属性,如IP地址、VLAN号等。当物理接口上接收到数据包时,将会根据自身配置的转发属性来对数据包进行转发。例如:某一物理接口上配置的转发属性是VLAN号,当该物理接口接收到数据包时,将接收到的数据包的VLAN号与本地配置的VLAN号进行匹配,若匹配成功,则对接收到的数据包进行转发;否则,丢弃接收到的所述数据包。
目前的接口组织形式实现起来比较简单,但是,物理接口的物理属性(即物理接口所具有的收、发数据包的能力以及协商能力)和转发属性是整合在一起的,物理接口只能根据配置的转发属性来对接收到的数据包进行转发处理。由于在线网络安全设备中部署的物理接口数量有限,目前的接口组织形式和框架设计已不能满足在线网络安全设备对于接口的拓展,接口部署的灵活性和可扩充性受到限制。
发明内容
本发明实施例提供一种接口***及其对数据包进行处理的方法,用以解决现有技术中存在的接口部署不灵活以及难以扩充的问题。
本发明实施例采用以下技术方案:
一种接口***,包括:收包线程、包处理线程、发包线程,以及包括至少一个物理接口的物理接口层、包括与所述物理接口具有映射关系的逻辑接口的逻辑接口层和包括与所述逻辑接口具有映射关系的虚拟接口的虚拟接口层,其中,每个所述逻辑接口配置有转发属性;
所述收包线程,用于将所述物理接口从硬件抽象层接收到的数据包存储在缓存队列中;
所述包处理线程,用于将所述缓存队列中的数据包发送至与该数据包所经过的物理接口具有映射关系的逻辑接口,以及将安全引擎处理后的数据包发送至逻辑接口,并将逻辑接口处理后的数据包发送至与该逻辑接口具有映射关系的物理接口;
所述发包线程,用于将物理接口上的数据包发送至硬件抽象层;
所述逻辑接口,用于根据配置的转发属性对包处理线程发送的数据包进行处理,其中,在处理的数据包是从物理接口处通过包处理线程发送至逻辑接口的数据包时,若处理的数据包是本地数据,则将所述数据包发送至具有映射关系的虚拟接口,否则,将所述数据包发送至安全引擎;
所述虚拟接口,用于将逻辑接口发送的数据包发送至本地操作***,以及将本地操作***发送的数据包发送至具有映射关系的逻辑接口
在本发明实施例中,采用多层次接口结构,并在不具有转发属性的物理接口之上增加配置有转发属性的逻辑接口,实现了对数据包的收发以及逻辑处理;而且在数据包的转发过程中增加了收、发包线程和包处理线程,使得转发过程更加透明,便于模块的设计和移植。由于逻辑接口的数量和配置的转发属性可根据实际需要动态调整,因此,本发明实施例的方案可以增加接口技术在物理层次部署的灵活性和网络的可靠性,并在一定程度上解除了接口数量的限制,提高接口部署的可扩充性。
优选地,每个所述物理接口分别配置有收包队列和发包队列;
其中:来自硬件抽象层的数据包缓存在物理接口的收包队列中,并依次经过所述物理接口后,由所述收包线程将所述数据包存储在缓存队列中;
逻辑接口处理后的数据包缓存在与所述逻辑接口具有映射关系的物理接口的发包队列中,并由所述发包线程将所述数据包经过物理接口发送至硬件抽象层。
在本实施例中,通过增加收包队列和发包队列,以及逻辑接口与物理接口之间的缓存区,使得数据包在传输过程中可以暂存在这些队列或者缓存区中,提高了各个接口转发数据包的并行性。
优选地,所述逻辑接口与物理接口之间的映射关系为:逻辑接口与物理接口之间具有一一映射关系,或一个逻辑接口与多个物理接口具有映射关系。
通过采用本发明实施例提供的接口***,以及构建的逻辑接口与物理接口之间的映射关系,使得单个逻辑接口具有多个转发属性,从而实现了逻辑接口的扩展。
所述逻辑接口层中存在对应至少一个逻辑子接口的逻辑接口;
优选地,对应有逻辑子接口的逻辑接口,还用于根据配置的转发属性对包处理线程发送的数据包进行处理后发送至对应的逻辑子接口,由该逻辑子接口根据自身的转发属性对逻辑接口处理后的数据包进行处理。
通过为某些逻辑接口配置对应的逻辑子接口,使得数据包的处理更加细化,并在不增加物理接口的情况下独立扩展了逻辑接口,从而实现了接口的并行性以及可扩展性。
优选地,所述包处理线程,具体用于在数据包缓存至共享队列中且在安全引擎对缓存队列中的数据包进行处理之前,为共享队列中的数据包设置用于传输的逻辑接口标识,以及,在安全引擎对共享队列中的数据包处理并再缓存在共享队列中后,根据共享队列中的数据包中设置的逻辑接口标识,将该数据包发送至对应的逻辑接口。
在逻辑接口与安全引擎之间增加共享队列,收包时通过包处理线程对数据包进行标识,然后发送至共享队列,发包时由包处理线程根据该标识进行发送处理;虽然各层之间相互独立各有分工,但又是相互依存的。因此,对于网络安全设备来说,该接口***的组织形式以及框架设计在一定程度上实现了接口部署的灵活性和可扩充性。
一种利用所述的接口***对数据包进行处理的方法,所述方法包括数据包的收包处理过程和发包处理过程,其中:
数据包的收包处理过程包括:
收包线程将物理接口从硬件抽象层接收到的数据包存储在缓存队列中;
包处理线程将所述缓存队列中的数据包发送至与该数据包所经过的物理接口具有映射关系的逻辑接口;
逻辑接口根据配置的转发属性对包处理线程发送的数据包进行处理,若处理的数据包是本地数据,则将所述数据包发送至具有映射关系的虚拟接口,否则,将所述数据包发送至安全引擎;
虚拟接口将逻辑接口发送的数据包发送至本地操作***;
数据包的发包处理过程包括:
虚拟接口将本地操作***发送的数据包发送至具有映射关系的逻辑接口,以及所述包处理线程将安全引擎处理后的数据包发送至逻辑接口;
逻辑接口根据配置的转发属性对包处理线程发送的数据包进行处理;
所述包处理线程将逻辑接口处理后的数据包发送至与该逻辑接口具有映射关系的物理接口;
发包线程将物理接口上的数据包发送至硬件抽象层。
在该接口***对数据包进行处理的方法中,采用多层次接口结构,并在不具有转发属性的物理接口之上增加配置有转发属性的逻辑接口,实现了对数据包的收发以及逻辑处理;而且在数据包的转发过程中增加了收、发包线程和包处理线程,使得转发过程更加透明,便于模块的设计和移植。由于逻辑接口的数量和配置的转发属性可根据实际需要动态调整,因此,本发明实施例的方案可以增加接口技术在物理层次部署的灵活性和网络的可靠性,并在一定程度上解除了接口数量的限制,提高接口部署的可扩充性。
优选地,每个所述物理接口分别配置有收包队列和发包队列;
数据包的收包处理过程具体包括:
来自硬件抽象层的数据包缓存在物理接口的收包队列中,并依次经过所述物理接口后,由所述收包线程将所述数据包存储在缓存队列中;
数据包的发包处理过程具体包括:
逻辑接口处理后的数据包缓存在与所述逻辑接口具有映射关系的物理接口的发包队列中,并由所述发包线程将所述数据包经过物理接口发送至硬件抽象层。
在本实施例中,通过增加收包队列和发包队列,以及逻辑接口与物理接口之间的缓存区,使得数据包在传输过程中可以暂存在这些队列或者缓存区中,提高了各个接口转发数据包的并行性。
优选地,逻辑接口与物理接口之间的映射关系为:逻辑接口与物理接口之间具有一一映射关系,或一个逻辑接口与多个物理接口具有映射关系。
通过采用本发明实施例提供的接口***,以及构建的逻辑接口与物理接口之间的映射关系,使得单个逻辑接口具有多个转发属性,从而实现了逻辑接口的扩展。
优选地,所述逻辑接口层中存在对应至少一个逻辑子接口的逻辑接口;
数据包的收包处理过程还包括:
对应有逻辑子接口的逻辑接口根据配置的转发属性对包处理线程发送的数据包进行处理后发送至对应的逻辑子接口,由该逻辑子接口根据自身的转发属性对逻辑接口处理后的数据包进行处理。
通过为某些逻辑接口配置对应的逻辑子接口,使得数据包的处理更加细化,并在不增加物理接口的情况下独立扩展了逻辑接口,从而实现了接口的并行性以及可扩展性。
优选地,数据包的收包处理过程还包括:
所述包处理线程在数据包缓存至共享队列中且在安全引擎对缓存队列中的数据包进行处理之前,为共享队列中的数据包设置用于传输的逻辑接口标识;
数据包的发包处理过程具体包括:
所述包处理线程在安全引擎对共享队列中的数据包处理并再缓存在共享队列中后,根据共享队列中的数据包中设置的逻辑接口标识,将该数据包发送至对应的逻辑接口。
在逻辑接口与安全引擎之间增加共享队列,并通过包处理线程对该共享队列中的数据包进行标识,进而由包处理线程根据该标识进行发送处理;可见,虽然各层之间相互独立各有分工,但又是相互依存的。因此,对于网络安全设备来说,该接口***的组织形式以及框架设计在一定程度上实现了接口部署的灵活性和可扩充性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一提供的接口***的结构示意图;
图2为本发明实施例二提供的接口***的层次结构示意图;
图3(a)为本发明实施例二提供的接口***对数据包收包处理的方法步骤流程图;
图3(b)为本发明实施例二提供的接口***对数据包发包处理的方法步骤流程图;
图4为本发明实施例二提供的安全引擎通过共享队列将数据包发送至逻辑接口的具体过程;
图5为数据包在接口***中的流向示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
为了提高接口部署的灵活性和可扩充性,本发明实施例提供了一种新的接口***及其对数据包的处理方法,在本发明实施例中,将接口部署为多层,将现有技术中在物理接口上配置的转发属性从物理接口上剥离出来,通过在物理接口之上增加配置有转发属性的逻辑接口,来实现对数据包的收、发以及逻辑处理,由于逻辑接口的数量和配置的转发属性可根据实际需要动态调整,因此,本发明实施例的方案可以增加接口技术在物理层次部署的灵活性,并在一定程度上解除了接口数量的限制,提高接口部署的可扩充性。
实施例一:
本发明实施例一描述了一种接口***,如图1所示,为该接口***的结构示意图,所述***具体包括:收包线程101、包处理线程102、发包线程103、物理接口104、逻辑接口105和虚拟接口106,其中:
所述物理接口104的数量为至少一个,接口***中的至少一个物理接口104构成物理接口层,物理接口层中的各物理接口是不具有转发属性的硬件接口;所述逻辑接口105的数量为至少一个,接口***中的至少一个逻辑接口105构成逻辑接口层,逻辑接口层中的逻辑接口数量可根据实际需求设定,即:预留用于生成逻辑接口的相关资源,在接口***运行之前,根据实际需求生成相应数量的逻辑接口,并为生成的逻辑接口配置特定的转发属性以及与物理接口之间的映射关系;实际运行中,接口***运行在不同场景时,生成的逻辑接口的数量可不同,且为逻辑接口配置的转发属性以及与物理接口的映射关系也可不同;所述虚拟接口106的数量为至少一个,接口***中的至少一个虚拟接口106构成虚拟接口层,虚拟接口层中的各虚拟接口是连接逻辑接口与本地操作***的中间接口,虚拟接口的数量可根据逻辑接口的数量来配置,即:预留用于生成虚拟接口的相关资源,在接口***运行之前,根据逻辑接口的数量生成相应数量的虚拟接口,并为生成的每个虚拟接口与逻辑接口建立一一映射关系。
所述逻辑接口105与物理接口104具有映射关系,所述映射关系为:逻辑接口与物理接口之间具有一一映射关系,或一个逻辑接口与多个物理接口具有映射关系。
所述逻辑接口105与虚拟接口106之间具有一一映射关系。
下面对本实施例一中的接口***中的各部分进行详细说明。
收包线程101用于将所述物理接口104从硬件抽象层接收到的数据包存储在缓存队列中,具体地,所述收包线程101可将通过各物理接口进入的数据包都存储在所述缓存队列中。
包处理线程102用于将所述缓存队列中的数据包发送至与该数据包所经过的物理接口具有映射关系的逻辑接口105,以及将安全引擎处理后的数据包发送至逻辑接口105,并将逻辑接口105处理后的数据包发送至与该逻辑接口105具有映射关系的物理接口104。
发包线程103用于将物理接口104上的数据包发送至硬件抽象层。
物理接口104用于从硬件抽象层接收数据包,以及将本地处理后的数据包发送至硬件抽象层。
逻辑接口105用于根据配置的转发属性对包处理线程发送的数据包进行处理,其中,在处理的数据包是从物理接口处通过包处理线程发送至逻辑接口的数据包(即收包状态)时,若接收到的所述数据包是本地数据,则将所述数据包发送至具有映射关系的虚拟接口106,否则,将所述数据包发送至安全引擎。
当处于收包状态(即数据包从硬件抽象层通过物理接口进入接口***)时,若逻辑接口105接收到的数据包是本地数据,则逻辑接口105会根据TAP句柄将该数据包发送至与逻辑接口105具有映射关系的虚拟接口106;若逻辑接口105接收到的数据包并非本地数据,则逻辑接口105将该数据包发送至安全引擎进行处理。当处于发包状态(即数据包通过物理接口发送至硬件抽象层)时,逻辑接口105根据配置的转发属性对接收到的数据包进行处理后,再由包处理线程102将该数据包取出并发送至对应的物理接口104。
虚拟接口106用于接收逻辑接口105发送的数据包,并将该数据包发送至本地操作***,以及将本地操作***处理的数据包发送至具有映射关系的逻辑接口105。
优选地,为了方便物理接口的收发包过程,可以分别为每个物理接口配置收包队列和发包队列。在收包时,来自硬件抽象层的数据包缓存在一个物理接口配置的收包队列中,数据包依次经过物理接口后,由所述收包线程101将所述数据包存储在缓存队列中;在发包时,逻辑接口105处理后的数据包缓存在与所述逻辑接口105具有映射关系的物理接口104的发包队列中,并由所述发包线程103将所述数据包经过物理接口104发送至硬件抽象层。
通过采用本发明实施例提供的接口***,可以将接口部署为多层,且各层之间各有分工,但又互相依存;该接口***将现有技术中的物理接口上配置的转发属性从物理接口上剥离出来,并基于硬件抽象层,在物理接口之上增加配置有转发属性的逻辑接口,实现了对数据包的收发以及逻辑处理;而且数据包的转发过程更透明,便于模块的设计和移植。由于逻辑接口的数量和配置的转发属性可根据实际需要动态调整,因此,本发明实施例的方案可以增加接口技术在物理层次部署的灵活性和网络的可靠性,并在一定程度上解除了接口数量的限制,提高接口部署的可扩充性。
下面通过具体的实例对本发明实施例一的接口***进行详细描述。
实施例二:
在本发明实施例二的方案中,如图2所示,假设物理接口层中有12个物理接口,分别为标号为G1/1、G1/2、G1/3、G1/4、G2/1、G2/2、G2/3、G2/4、G3/1、G3/2、G3/3、G3/4的以太网接口,其中标号为G1/1、G1/2、G1/3、G1/4、G2/1、G2/2、G2/3和G2/4的8个物理接口与逻辑接口建立映射关系,标号为G3/1、G3/2、G3/3和G3/4的4个物理接口处于空闲态,可根据实际需要为其配置具有映射关系的逻辑接口。
逻辑接口层有6个逻辑接口,分别为二层接口、三层接口、监听接口、虚拟线接口、设备互联接口和汇聚接口,所述汇聚接口可作为二层接口、三层接口、监听接口、虚拟线接口、设备互联接口等逻辑接口使用。
其中:二层接口、三层接口、监听接口、虚拟线接口和设备互联接口分别与标号为G1/1、G1/2、G1/3、G1/4和G2/1的物理接口具有一一映射关系,汇聚接口与标号为G2/2、G2/3和G2/4的物理接口具有映射关系。
优选地,所述二层接口对应一个逻辑子接口,三层接口可对应多个逻辑子接口,其中,所述二层接口对应的逻辑子接口是VLAN接口,所述三层接口对应的逻辑子接口是对应VLAN号的三层子接口。
所述逻辑接口层还可以有独立接口,如VPN接口、回环接口、IP隧道接口、GRE接口,所述独立接口也可视为逻辑接口层中的逻辑接口,根据数据包中包含的特定信息(如mac、ip)来具体判断数据包是由诸如二层接口、三层接口、监听接口、虚拟线接口、设备互联接口和汇聚接口等逻辑接口来处理,还是由独立接口来处理。
虚拟接口层有12个虚拟接口,其中6个虚拟接口与逻辑接口层中的6个逻辑接口具有一一映射关系,2个虚拟接口与逻辑接口层中的2种逻辑子接口具有映射关系,剩余4个虚拟接口与独立接口具有一一映射关系。
利用图2所示的接口***对数据包进行处理的方法步骤如图3(a)和图3(b)所示,数据包在接口***中的流向示意图如图5所示,详细描述如下:
接口***对数据包进行处理的过程包括两部分,一部分是利用所述接口***对数据包进行收包处理,另一部分是利用所述接口***对数据包进行发包处理,这两个过程的详细描述如下:
一、数据包的收包处理过程包括以下步骤:
步骤101:来自硬件抽象层的数据包缓存在物理接口的收包队列中。
每个物理接口配置有收包队列和发包队列,当来自硬件抽象层的数据包到达时,先将该数据包缓存至物理接口的对应的收包队列(数据包从某个网口进入线网络安全设备,则在本步骤101中就缓存至该网口对应的物理接口的收包队列上。如数据包从id为0的网口进入,则缓存至对应的物理接口的收包队列)。假设本实施例二中数据包A缓存至标号为G1/1的物理接口的收包队列中。
本步骤101是收包处理过程中的优选步骤,本实施例也不限于不执行本步骤101的方案,将来自硬件抽象层的数据包直接流经物理接口。
步骤102:数据包经过物理接口后,由所述收包线程将所述数据包存储在缓存队列中。
在步骤101中,数据包A缓存至标号为G1/1的物理接口的收包队列中,收包线程将轮询所有物理接口,将所述数据包A存储在缓存队列中。
在本实施例的方案中,为每个物理接口配置了收包队列,但流经各物理接口的数据包都统一缓存在缓存队列中。
步骤103:包处理线程从所述缓存队列中依次读取缓存的数据包。
在本步骤103中,包处理线程从所述缓存队列中读取出数据包A。
步骤104:包处理线程对读取出的数据包进行识别,判断该数据包是发送至逻辑接口还是发送至独立接口,若需发送至逻辑接口,则执行步骤105;否则,执行步骤107。
本步骤104的具体识别方式包括但不限于:
包处理线程根据数据包中携带的mac和ip等信息,来判断数据包是发送至逻辑接口还是发送至独立接口。例如,数据包中有回环接口的mac、ip地址时,确定数据包需发送至独立接口中的回环接口。
本步骤104是收包处理过程中的优选步骤,本实施例也不限于不在逻辑接口层中设置独立接口的方案,且缓存队列中的数据包都是流经物理接口的数据包。
步骤105:包处理线程将读取的数据包发送至与该数据包所经过的物理接口具有映射关系的逻辑接口。
若在步骤103中,包处理线程从所述缓存队列中读取出数据包是数据包A,则本步骤105中,包处理线程确定所述数据包A流经的物理接口是标号为G1/1的物理接口,其对应的逻辑接口是二层接口,则将数据包A发送至二层接口;
优选地,包处理线程可以将数据包A发送至对应二层接口的入口函数。
步骤106:逻辑接口根据配置的转发属性对包处理线程发送的数据包进行处理,并跳转至步骤108。
在本步骤106中,逻辑接口是二层接口,则二层接口需对接收到的数据包A进行处理,即:识别出数据包A中的mac地址,并将数据包A中的mac地址与二层接口对应的VLAN接口的mac地址进行匹配,判断是否要将数据包A发送至VALN接口。若二层接口对应的VALN接口中,存在mac地址与数据包A的mac地址匹配的VALN接口,则二层接口将数据包A发送至对应的VALN接口,由VALN接口对数据包A进行处理。
当然,若本步骤106中的逻辑接口是三层接口,则三层接口需对接收到的数据包A进行处理,即:三层接口对数据包A中的VLAN号与对应三层子接口的VLAN号进行匹配,若存在与数据包A的VLAN号匹配的三层子接口,则三层接口将所述数据包A发送至对应的三层子接口进行处理。
若本步骤106中的逻辑接口是汇聚接口,由于汇聚接口可作为以下任一接口使用:二层接口、三层接口、监听接口、虚拟线接口、设备互联接口,则汇聚接口接收数据包A后,利用配置的转发属性分别对数据包A进行处理。
需要说明的是,若本步骤106中,逻辑接口接收到数据包后,确定无法根据配置的转发属性对接收到的数据包进行处理,则丢弃接收到的数据包。
步骤107:包处理线程将数据包发送至独立接口,由独立接口对接收到的数据包进行处理。
步骤108:逻辑接口判断处理后的数据包是否是本地数据,若是,则执行步骤109;否则,执行步骤110。
在本步骤108的方案中,逻辑接口判断的数据包是步骤106处理后的数据包,优选地,在本步骤108中,还可以由独立接口判断自身处理后的数据包是否是本地数据,若是,则执行步骤109;否则,执行步骤110。
步骤109:逻辑接口将处理后的数据包发送至具有映射关系的虚拟接口,结束数据包的收包处理过程。
在本步骤109的方案中,还可以由独立接口将处理后的数据包发送至具有映射关系的虚拟接口。
在所述逻辑接口有对应的逻辑子接口,且将数据包发送至对应的逻辑子接口时,本步骤109中可以由逻辑子接口将处理后的数据包发送至与逻辑子接口具有一一映射关系的虚拟接口。
具体地,本步骤109的实现方式为:
在逻辑接口(逻辑子接口或独立接口)内部保存用于对虚拟接口进行读写的TAP句柄,利用所述读写TAP句柄将处理后的数据包发送至对应的虚拟接口。
步骤110:逻辑接口将处理后的数据包发送至安全引擎,结束数据包的收包处理过程。
具体地,逻辑接口可将处理后的数据包发送至安全引擎和逻辑接口的共享队列,包处理线程为共享队列中的数据包设置用于传输的逻辑接口标识,然后,再由安全引擎读取共享队列中的数据包并进行处理。
在本步骤110的方案中,还可以由独立接口或逻辑子接口将处理后的数据包发送至安全引擎。
通过采用实施例一提供的接口***,对数据包的收包处理过程进行了详细描述。在整个收包过程中,通过为每个物理接口配置收包队列,以及在物理接口与逻辑接口之间配置相应的缓存区,从而实现了每层接口与其它层接口之间的相互独立,提高了接口***的并行性;此外,将现有技术中的物理接口上配置的转发属性从物理接口上剥离出来,在物理接口上增加配置具有转发属性的逻辑接口,实现了逻辑接口对数据包的收发以及逻辑处理,使得数据包的转发过程透明化,便于模块的设计和移植。由于逻辑接口的数量和配置的转发属性可根据实际需要动态调整,因此,本发明实施例的方案可以增加接口技术在物理层次部署的灵活性和网络的可靠性,并在一定程度上解除了接口数量的限制,提高接口部署的可扩充性。
二、数据包的发包处理过程包括以下步骤:
步骤201:虚拟接口将本地操作***发送的数据包发送至具有映射关系的逻辑接口,以及所述包处理线程将安全引擎处理后的数据包发送至逻辑接口。
本步骤201的方案中,当本地操作***对接收到的数据包进行处理后,或是本地生成新的数据包,将该数据包发送至对应的虚拟接口,接口***会将各个虚拟接口中的数据包缓存至主动发包队列,由包处理线程读取主动发包队列中的数据包,并根据数据包所流经的虚拟接口,将数据包发送至对应的逻辑接口。
安全引擎读取共享队列中的数据包进行处理后,或安全引擎生成新的数据包后,将该数据包发送至与逻辑接口的共享队列,然后根据包处理线程设置的逻辑接口标识,由包处理线程将该数据包发送至对应的逻辑接口;
优选地,在包处理线程读取共享队列的数据包中的逻辑接口标识之后,可以将所述数据包发送至对应的逻辑接口的出口函数。
特殊地,本步骤201发送的数据包可能是广播包,所述广播包可以是经过收包处理过程处理后再发送的数据包,也可以是由安全引擎生成的新的数据包。
若本步骤201发送的数据包是经收包处理过程处理后再发送的数据包,则在收包处理过程的步骤110中,包处理线程会对数据包是否为广播包进行判定,在判定所述数据包不是广播包时,为该数据包设置逻辑接口标识;在判定所述数据包是广播包时,不为该数据包设置逻辑接口标识,使得数据包中写入的逻辑接口标识的字段为空。
若本步骤201发送的数据包是由安全引擎生成的新的数据包,则该数据包中写入的逻辑接口标识的字段也为空。
如图4所示,为安全引擎通过共享队列将数据包发送至逻辑接口的具体过程,属于步骤201的子步骤。
子步骤2011:包处理线程从共享队列中读取数据包。
子步骤2012:判断所述数据包中写入的逻辑接口标识的字段是否为空。在判断不为空时,执行子步骤2017;在判断为空时,执行子步骤2013。
子步骤2013:判断该数据包是否为广播包。在判断是广播包时,执行子步骤2014;否则,丢弃该数据包。
子步骤2014:判断逻辑接口层中是否有多个逻辑接口,在判断结果为是时,执行子步骤2015;否则,丢弃该数据包。
子步骤2015:判断多个逻辑接口中是否存在VLAN号相同的逻辑接口。若存在,则执行子步骤2016,否则,丢弃该数据包。
子步骤2016:则将该数据包分发至VLAN号相同的各个逻辑接口,并结束。
子步骤2017:通过对应的逻辑接口的出口函数将所述数据包发送至逻辑接口,并结束。
步骤202:逻辑接口根据配置的转发属性对包处理线程发送的数据包进行处理。
步骤203:所述包处理线程将逻辑接口处理后的数据包发送至与该逻辑接口具有映射关系的物理接口。
步骤204:发包线程将物理接口上的数据包发送至硬件抽象层。
具体地,逻辑接口处理后的数据包缓存在与所述逻辑接口具有映射关系的物理接口的发包队列中,并由所述发包线程将所述数据包经过物理接口发送至硬件抽象层。
以上数据包的发包处理过程中,采用了实施例一提供的接口***,在整个发包过程中,通过为每个物理接口配置发包队列、在逻辑接口与安全引擎之间配置的共享队列,以及在逻辑接口与虚拟接口之间配置的主动发包队列,从而实现了每层接口与其它层接口之间的相互独立,提高了接口***的并行性;此外,将现有技术中的物理接口上配置的转发属性从物理接口上剥离出来,在物理接口上增加配置具有转发属性的逻辑接口,实现了逻辑接口对数据包的收发以及逻辑处理,使得数据包的转发过程透明化,便于模块的设计和移植。由于逻辑接口的数量和配置的转发属性可根据实际需要动态调整,因此,本发明实施例的方案可以增加接口技术在物理层次部署的灵活性和网络的可靠性,并在一定程度上解除了接口数量的限制,提高接口部署的可扩充性。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (8)

1.一种接口***,其特征在于,包括:收包线程、包处理线程、发包线程,以及包括至少一个物理接口的物理接口层、包括与所述物理接口具有映射关系的逻辑接口的逻辑接口层和包括与所述逻辑接口具有映射关系的虚拟接口的虚拟接口层,其中,每个所述逻辑接口配置有转发属性;
所述收包线程,用于将所述物理接口从硬件抽象层接收到的数据包存储在缓存队列中;
所述包处理线程,用于将所述缓存队列中的数据包发送至与该数据包所经过的物理接口具有映射关系的逻辑接口,以及将安全引擎处理后的数据包发送至逻辑接口,并将逻辑接口处理后的数据包发送至与该逻辑接口具有映射关系的物理接口;
所述发包线程,用于将物理接口上的数据包发送至硬件抽象层;
所述逻辑接口,用于根据配置的转发属性对包处理线程发送的数据包进行处理,其中,在处理的数据包是从物理接口处通过包处理线程发送至逻辑接口的数据包时,若处理的数据包是本地数据,则将所述数据包发送至具有映射关系的虚拟接口,否则,将所述数据包发送至安全引擎;
所述虚拟接口,用于将逻辑接口发送的数据包发送至本地操作***,以及将本地操作***发送的数据包发送至具有映射关系的逻辑接口;
其中,逻辑接口与物理接口之间的映射关系为:逻辑接口与物理接口之间具有一一映射关系,或一个逻辑接口与多个物理接口具有映射关系,逻辑接口与虚拟接口之间具有一一映射关系。
2.如权利要求1所述的***,其特征在于,每个所述物理接口分别配置有收包队列和发包队列;
其中:来自硬件抽象层的数据包缓存在物理接口的收包队列中,并依次经过所述物理接口后,由所述收包线程将所述数据包存储在缓存队列中;
逻辑接口处理后的数据包缓存在与所述逻辑接口具有映射关系的物理接口的发包队列中,并由所述发包线程将所述数据包经过物理接口发送至硬件抽象层。
3.如权利要求1所述的***,其特征在于,所述逻辑接口层中存在对应至少一个逻辑子接口的逻辑接口;
对应有逻辑子接口的逻辑接口,还用于根据配置的转发属性对包处理线程发送的数据包进行处理后发送至对应的逻辑子接口,由该逻辑子接口根据自身的转发属性对逻辑接口处理后的数据包进行处理。
4.如权利要求1所述的***,其特征在于,
所述包处理线程,具体用于在数据包缓存至共享队列中且在安全引擎对缓存队列中的数据包进行处理之前,为共享队列中的数据包设置用于传输的逻辑接口标识,以及,在安全引擎对共享队列中的数据包处理并再缓存在共享队列中后,根据共享队列中的数据包中设置的逻辑接口标识,将该数据包发送至对应的逻辑接口。
5.一种利用权利要求1所述的接口***对数据包进行处理的方法,其特征在于,所述方法包括数据包的收包处理过程和发包处理过程,其中:
数据包的收包处理过程包括:
收包线程将物理接口从硬件抽象层接收到的数据包存储在缓存队列中;
包处理线程将所述缓存队列中的数据包发送至与该数据包所经过的物理接口具有映射关系的逻辑接口;
逻辑接口根据配置的转发属性对包处理线程发送的数据包进行处理,若处理的数据包是本地数据,则将所述数据包发送至具有映射关系的虚拟接口,否则,将所述数据包发送至安全引擎;
虚拟接口将逻辑接口发送的数据包发送至本地操作***;
数据包的发包处理过程包括:
虚拟接口将本地操作***发送的数据包发送至具有映射关系的逻辑接口,以及所述包处理线程将安全引擎处理后的数据包发送至逻辑接口;
逻辑接口根据配置的转发属性对包处理线程发送的数据包进行处理;
所述包处理线程将逻辑接口处理后的数据包发送至与该逻辑接口具有映射关系的物理接口;
发包线程将物理接口上的数据包发送至硬件抽象层;
其中,逻辑接口与物理接口之间的映射关系为:逻辑接口与物理接口之间具有一一映射关系,或一个逻辑接口与多个物理接口具有映射关系,逻辑接口与虚拟接口之间具有一一映射关系。
6.如权利要求5所述的方法,其特征在于,每个所述物理接口分别配置有收包队列和发包队列;
数据包的收包处理过程具体包括:
来自硬件抽象层的数据包缓存在物理接口的收包队列中,并依次经过所述物理接口后,由所述收包线程将所述数据包存储在缓存队列中;
数据包的发包处理过程具体包括:
逻辑接口处理后的数据包缓存在与所述逻辑接口具有映射关系的物理接口的发包队列中,并由所述发包线程将所述数据包经过物理接口发送至硬件抽象层。
7.如权利要求5所述的方法,其特征在于,所述逻辑接口层中存在对应至少一个逻辑子接口的逻辑接口;
数据包的收包处理过程还包括:
对应有逻辑子接口的逻辑接口根据配置的转发属性对包处理线程发送的数据包进行处理后发送至对应的逻辑子接口,由该逻辑子接口根据自身的转发属性对逻辑接口处理后的数据包进行处理。
8.如权利要求5所述的方法,其特征在于,数据包的收包处理过程还包括:
所述包处理线程在数据包缓存至共享队列中且在安全引擎对缓存队列中的数据包进行处理之前,为共享队列中的数据包设置用于传输的逻辑接口标识;
数据包的发包处理过程具体包括:
所述包处理线程在安全引擎对共享队列中的数据包处理并再缓存在共享队列中后,根据共享队列中的数据包中设置的逻辑接口标识,将该数据包发送至对应的逻辑接口。
CN201310336623.1A 2013-08-05 2013-08-05 一种接口***及其对数据包进行处理的方法 Active CN103428301B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310336623.1A CN103428301B (zh) 2013-08-05 2013-08-05 一种接口***及其对数据包进行处理的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310336623.1A CN103428301B (zh) 2013-08-05 2013-08-05 一种接口***及其对数据包进行处理的方法

Publications (2)

Publication Number Publication Date
CN103428301A CN103428301A (zh) 2013-12-04
CN103428301B true CN103428301B (zh) 2016-08-10

Family

ID=49652465

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310336623.1A Active CN103428301B (zh) 2013-08-05 2013-08-05 一种接口***及其对数据包进行处理的方法

Country Status (1)

Country Link
CN (1) CN103428301B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108536535A (zh) * 2018-01-24 2018-09-14 北京奇艺世纪科技有限公司 一种dns服务器及其线程控制方法和装置
EP3534594B1 (de) * 2018-02-28 2020-11-25 Kistler Holding AG Kommunikationssystem zur datenübermittlung zwischen datenerzeugereinheiten und datenauswerteeinheiten
CN108696437B (zh) * 2018-06-22 2021-05-28 新华三技术有限公司 一种流量转发方法及装置
CN110958165B (zh) * 2019-11-21 2021-09-10 深圳市共进电子股份有限公司 网络接口建立及管理方法和装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101193127A (zh) * 2007-11-28 2008-06-04 中兴通讯股份有限公司 一种间接获取数据包输入接口信息的方法及装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1503506B (zh) * 2002-11-20 2010-05-12 株式会社日立制作所 虚拟接入路由器
US8254285B2 (en) * 2005-02-25 2012-08-28 Ip Infusion, Inc. Hardware abstraction layer
US8234361B2 (en) * 2006-01-13 2012-07-31 Fortinet, Inc. Computerized system and method for handling network traffic

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101193127A (zh) * 2007-11-28 2008-06-04 中兴通讯股份有限公司 一种间接获取数据包输入接口信息的方法及装置

Also Published As

Publication number Publication date
CN103428301A (zh) 2013-12-04

Similar Documents

Publication Publication Date Title
CN104579695B (zh) 一种数据转发装置和方法
CN106664261B (zh) 一种配置流表项的方法、装置和***
CN103428301B (zh) 一种接口***及其对数据包进行处理的方法
CN103200128B (zh) 一种网络包处理的方法、装置和***
CN106254256B (zh) 基于三层vxlan网关的数据报文转发方法和设备
CN106936939A (zh) 一种报文处理方法、相关装置及nvo3网络***
CN106209648B (zh) 跨虚拟可扩展局域网的组播数据报文转发方法和设备
CN106209638B (zh) 从虚拟局域网至虚拟可扩展局域网的报文转发方法和设备
CN107517151B (zh) 用户接入方法、CPE、OLT、交换机、vBNG、SDN控制器和城域网
CN110912836B (zh) 使转发设备转发数据的方法、控制设备、存储介质和***
CN105591868A (zh) 一种虚拟专用网络vpn的接入方法和装置
CN104769912A (zh) 用于数据流处理的方法和装置
CN106878194A (zh) 一种报文处理方法和装置
CN109088820A (zh) 一种跨设备链路聚合方法、装置、计算装置和存储介质
CN104243536B (zh) 一种高速列车控制网络半实物仿真***
CN106685826A (zh) 交换机堆叠***、从设备、交换芯片及处理协议报文方法
CN110401558A (zh) 安全级多点通信网络设备、***及安全级网络通信方法
CN106209637B (zh) 从虚拟可扩展局域网至虚拟局域网的报文转发方法和设备
CN106878343A (zh) 一种云计算环境下提供网络安全即服务的***
CN110311860A (zh) Vxlan下多链路负载均衡方法及装置
CN107122324A (zh) 一种消息传输方法和装置
CN109039959A (zh) 一种sdn网络规则的一致性判断方法及相关装置
CN104009918B (zh) 一种业务报文处理方法、装置及***
CN106648851A (zh) 一种多控存储中io管理的方法和装置
CN106453091B (zh) 路由器转发平面的等价路由管理方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CP01 Change in the name or title of a patent holder

Address after: 100089 Beijing city Haidian District Road No. 4 North wa Yitai three storey building

Patentee after: NSFOCUS Technologies Group Co.,Ltd.

Patentee after: NSFOCUS TECHNOLOGIES Inc.

Address before: 100089 Beijing city Haidian District Road No. 4 North wa Yitai three storey building

Patentee before: NSFOCUS INFORMATION TECHNOLOGY Co.,Ltd.

Patentee before: NSFOCUS TECHNOLOGIES Inc.

CP01 Change in the name or title of a patent holder