一种基于SDN的数据处理方法及装置与流程

文档序号:12134297阅读:212来源:国知局
一种基于SDN的数据处理方法及装置与流程

本发明涉及数据报文网络功能实现技术领域,特别是涉及一种基于SDN的数据处理方法及装置。



背景技术:

传统网络环境中,交换机等网络设备所能实现的功能由生产厂商在出厂前设置完成,用户无法为这些网络设备增加自定义的网络功能,这导致特定的网络设备只能实现特定的网络功能。若要向该网络设备添加新的网络功能,必须由生产厂商生产新版硬件并安装才能实现。

在基于Open vSwitch软件(简称OvS软件)的软件自定义(Software Defined Network,SDN)网络环境中,交换机等网络设备所能实现的功能也由生产厂商在出厂前设置完成,如果想要添加新的网络功能,除了设置新的网络功能对应的功能模块外,还需要对OvS软件进行一些自定义设置,例如,添加新的接口,定义新参数,引入新的调用过程等,以使OvS软件能够调用新增的网络功能。

自定义设置OvS软件虽然不需要更换硬件,但是这些自定义必须由生产厂商的专业人员进行,不能由用户自行完成,这不仅增加了添加网络功能的成本,而且延长了添加网络功能的时间。应用这些网络设备进行数据报文处理时,无法快速、便捷地调用相应的网络功能处理用户主机发送的数据报文,不能满足用户的需求。



技术实现要素:

本发明实施例的目的在于提供一种基于SDN的数据处理方法及装置,以实现不对OvS软件本身进行任何额外的设置,就能添加并调用新增的网络功能。

为了实现上述目的,本发明实施例提供了一种基于SDN的数据处理方法,应用于SDN网络设备,所述SDN网络设备中设置有至少一个虚拟网卡,每一虚拟网卡预先与一种网络功能绑定,所述方法包括:

接收第一数据报文;

根据与所述第一数据报文匹配的第一流表,修改所述第一数据报文的目的地址;所述第一流表由与所述SDN网络设备连接的SDN控制器下发,其中包含:与所述第一数据报文对应的第一虚拟网卡的地址,或与所述第一数据报文对应的第一物理网卡的地址;其中,所述第一虚拟网卡的地址是由所述SDN控制器,根据预先存储的网络功能与虚拟网卡的地址之间的对应关系确定的;

若所述第一数据报文修改后的目的地址为所述第一虚拟网卡的地址,将所述第一数据报文发送至所述第一虚拟网卡,调用与所述第一虚拟网卡绑定的第一网络功能,对所述第一数据报文进行所述第一网络功能处理,获得第二数据报文;

根据与所述第二数据报文匹配的第二流表,修改所述第二数据报文的目的地址,按照修改后的目的地址进行转发;

若所述第一数据报文修改后的目的地址为所述第一物理网卡的地址,则将所述第一数据报文转发至所述第一物理网卡。

可选地,在所述根据与所述第一数据报文匹配的第一流表,修改所述第一数据报文的目的地址的步骤前,所述方法还包括:

判断所述SDN网络设备中是否存在与所述第一数据报文匹配的第一流表,获得第一判断结果;

若所述第一判断结果为是,再执行所述根据与所述第一数据报文匹配的第一流表,修改所述第一数据报文的目的地址的步骤;

若所述第一判断结果为否,将所述第一数据报文发送给与所述SDN网络设备连接的SDN控制器,并接收所述SDN控制器下发的与所述第一数据报文匹配的第一流表,然后执行所述根据与所述第一数据报文匹配的第一流表,修改所述第一数据报文的目的地址的步骤。

可选地,在所述根据与所述第二数据报文匹配的第二流表,修改所述第二数据报文的目的地址的步骤前,所述方法还包括:

判断所述SDN网络设备中是否存在与所述第二数据报文匹配的第二流表,获得第二判断结果;

若所述第二判断结果为是,再执行所述根据与所述第二数据报文匹配的第二流表,修改所述第二数据报文的目的地址的步骤;

若所述第二判断结果为否,将所述第二数据报文发送给与所述SDN网络设备连接的SDN控制器,并接收所述SDN控制器下发的与所述第二数据报文匹配的第二流表,然后执行所述根据与所述第二数据报文匹配的第二流表,修改所述第二数据报文的目的地址的步骤。

可选地,所述所述根据与所述第二数据报文匹配的第二流表,修改所述第二数据报文的目的地址,按照修改后的目的地址进行转发的步骤包括:

根据与所述第二数据报文匹配的第二流表,修改所述第二数据报文的目的地址;

若所述第二数据报文修改后的目的地址为第二虚拟网卡的地址,将所述第二数据报文发送至所述第二虚拟网卡;

若所述第二数据报文修改后的目的地址为第二物理网卡的地址,将所述第二数据报文发送至所述第二物理网卡。

可选地,对设置在所述SDN网络设备中的每一虚拟网卡与一种网络功能进行预先绑定的过程包括:

利用一种网络功能对应监听一个虚拟网卡;

或者,建立包含网络功能与虚拟网卡的地址之间的对应关系的路由表或网络驱动。

可选地,所述第一网络功能包括:网络地址转换、数据报文封装、数据报文解封装、数据报文加密、数据报文解密、数据报文压缩、数据报文解压缩、网络层协议转换、传输层端口转换和应用层协议修改。

可选地,所述SDN网络设备为Open vSwitch软件宿主机。

为了实现上述目的,本发明实施例还提供了一种基于SDN的数据处理装置,应用于SDN网络设备,所述网络设备中设置有至少一个虚拟网卡,每一虚拟网卡预先与一种网络功能绑定,所述装置包括:

数据报文接收模块,用于接收第一数据报文;

第一地址修改模块,用于根据与所述第一数据报文匹配的第一流表,修改所述第一数据报文的目的地址;所述第一流表由与所述SDN网络设备连接的SDN控制器下发,其中包含:与所述第一数据报文对应的第一虚拟网卡的地址,或与所述第一数据报文对应的第一物理网卡的地址;其中,所述第一虚拟网卡的地址是由所述SDN控制器,根据预先存储的网络功能与虚拟网卡的地址之间的对应关系确定的;

第一处理模块,用于在所述第一数据报文修改后的目的地址为所述第一虚拟网卡的地址的情况下,将所述第一数据报文发送至所述第一虚拟网卡,调用与所述第一虚拟网卡绑定的第一网络功能,对所述第一数据报文进行所述第一网络功能处理,获得第二数据报文;

第二处理模块,用于根据与所述第二数据报文匹配的第二流表,修改所述第二数据报文的目的地址,按照修改后的目的地址进行转发;

第一转发模块,用于在所述第一数据报文修改后的目的地址为所述第一物理网卡的地址的情况下,则将所述第一数据报文转发至所述第一物理网卡。

可选地,所述装置还包括:

第一判断模块,用于判断所述SDN网络设备中是否存在与所述第一数据报文匹配的第一流表,获得第一判断结果;

第一触发模块,用于在所述第一判断结果为是的情况下,触发所述第一地址修改模块;

第二触发模块,用于在所述第一判断结果为否的情况下,将所述第一数据报文发送给与所述SDN网络设备连接的SDN控制器,并接收所述SDN控制器下发的与所述第一数据报文匹配的第一流表,然后触发所述第一地址修改模块。

可选地,所述装置还包括:

第二判断模块,用于判断所述SDN网络设备中是否存在与所述第二数据报文匹配的第二流表,获得第二判断结果;

第三触发模块,用于在所述第二判断结果为是的情况下,触发所述第二处理模块;

第四触发模块,用于在所述第二判断结果为否的情况下,将所述第二数据报文发送给与所述SDN网络设备连接的SDN控制器,并接收所述SDN控制器下发的与所述第二数据报文匹配的第二流表,然后触发所述第二处理模块。

本发明实施例提供的方法及装置,当要对第一数据报文进行第一网络功能处理时,可以根据SDN控制器下发的第一流表将第一数据报文的目的地址修改为第一虚拟网卡的地址,OvS软件只需要将该数据报文发送至第一虚拟网卡,通过第一虚拟网卡调用与之绑定的第一网络功能,就能实现对第一数据报文进行第一网络功能处理,OvS软件所执行的功能仍是根据控制器下发的流表进行数据报文的转发,OvS软件本身的功能并未发生改变。因此,本发明实施例提供的方法及装置,不需要对OvS软件本身进行任何额外的设置,就能添加并调用新增的网络功能,简化了新增网络功能的添加及调用过程,进而降低了添加网络功能的成本,缩短了添加网络功能的时间。

由于每种网络功能都具有与其对应的特定虚拟网卡,因此,应用该方法及装置处理数据报文时,对于同时接收的不同种类的数据报文,可以同时选择不同的网络功能进行处理;对于需要不同网络功能处理的同一数据报文,可以随时切换不同的网络功能进行处理,这均提高了数据报文的处理效率,更符合用户的需求。当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为SDN网络架构示意图;

图2为本发明实施例提供的基于SDN的数据处理方法的一种流程图;

图3为本发明实施例提供的基于SDN的数据处理方法的另一种流程图;

图4为本发明实施例提供的基于SDN的数据处理方法的另一种流程图;

图5为本发明实施例提供的一种基于SDN的数据处理方法的实际应用场景示意图;

图6为本发明实施例提供的基于SDN的数据处理装置的一种结构框图;

图7为本发明实施例提供的基于SDN的数据处理装置的另一种结构框图;

图8为本发明实施例提供的基于SDN的数据处理装置的另一种结构框图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

为了解决现有技术存在的问题,本发明实施例提供了一种基于SDN的数据处理方法及装置,应用于SDN网络设备,所述SDN网络设备中设置有至少一个虚拟网卡,每一虚拟网卡预先与一种网络功能绑定。

首先需要说明的是,本发明实施例提供的一种基于SDN的数据处理方法及装置,主要应用于支持OpenFlow协议的SDN网络中,在该网络中通过SDN控制器来对其他SDN网络设备(例如SDN交换机)进行控制,由于该SDN网络设备中安装有Open vSwitch软件(简称OvS软件),因此,该SDN网络设备也被称为Open vSwitch软件宿主机,简称OvS宿主机。具体的,所述SDN网络设备可以为安装有OvS软件的SDN交换机。

OvS软件主要用于执行数据报文与流表匹配及数据报文的转发。OvS宿主机运行的操作系统是任何可以支持OvS软件的操作系统。在本发明实施例中,所有新增的网络功能也是在运行在OvS宿主机中的操作系统上开发的应用软件。

请参考图1,图1示出了SDN网络的网络架构示意图。如图1所示,SDN网络中包括控制器、OvS宿主机和至少一个用户主机,其中,用户主机与OvS宿主机相连,OvS宿主机又与控制器相连,同时SDN网络还通过OvS宿主机连接至其他网络。

再有,由于本发明实施例提供的一种基于SDN的数据处理方法及装置,主要是应用于支持OpenFlow协议的SDN网络设备中,因此,有必要对实施本发明实施例提供的一种基于SDN的数据处理方法及装置的SDN网络设备的预先配置过程进行说明,具体如下:

1)确定用户新增至SDN网络设备中的网络功能,为每一种新增的网络功能添加一个虚拟网卡,并为每一虚拟网卡配置网络地址(MAC及IP地址);

其中,用户新增至SDN网络设备中的网络功能为用户设置在SDN网络设备中的功能模块,具体的,可以为用户安装在SDN网络设备中的应用软件,也可以是用户设置的一些内核模块。

虚拟网卡是由SDN网络设备的操作系统创建,可以在网络设备间建立网络连接的软件驱动,它没有物理组件,但可以像物理网卡一样拥有自己的网络地址(MAC及IP地址)。对于SDN网络设备的操作系统而言,虚拟网卡与物理网卡的功能相同,同时虚拟网卡还具有配置灵活,不受物理设备限制的优点。

2)启动新增至SDN网络设备中的网络功能,将设置在所述SDN网络设备中的每一虚拟网卡与一种网络功能进行绑定,建立虚拟网卡与新增网络功能的一一对应关系。

具体绑定过程为:利用一种网络功能对应监听一个虚拟网卡;或者,建立包含网络功能与虚拟网卡的地址之间的对应关系的路由表或网络驱动。

3)建立每一虚拟网卡与SDN网络设备中安装的OvS软件中的虚拟端口的映射关系。

4)在SDN网络设备的操作系统(Operating System,OS)协议栈中添加包含网络功能与虚拟网卡的地址之间的对应关系的路由表,使经过相应网络功能处理后的数据报文,通过OS协议栈中的路由转发,能够返回该网络功能对应的虚拟网卡,进而返回至OvS软件中。

5)启动SDN网络设备上已配置完成的虚拟网卡,并为SDN网络设备中的物理网卡配置网络地址(MAC及IP地址),然后建立每一物理网卡与OvS软件中的虚拟端口的映射关系。

6)指定SDN网络设备中一个物理网卡作为SDN网络设备与SDN控制器通信的专用网卡,使得SDN网络设备与SDN控制器进行连接。

另外,由于在SDN网络中,SDN网络设备中的所有流表均由SDN控制器下发,SDN网络设备本身并不具备生成流表的能力。因此,当SDN网络设备中新增了网络功能及网络功能与虚拟网卡的地址的对应关系,并且需要对接收到的数据报文进行相应的网络功能处理时,需要对SDN控制器的控制逻辑也进行更新,使得SDN控制器能够向SDN网络设备下发可以对数据报文进行相应网络功能处理的新的流表。

也就是说,在实施本发明实施例提供的基于SDN的数据处理方法及装置前,还需要对与SDN网络设备连接的SDN控制器的控制逻辑进行更新。具体更新方式可以有以下两种:

方式一:由SDN控制器管理人员将包含网络功能与虚拟网卡的地址的对应关系的控制逻辑添加至SDN控制器中。

方式二:由SDN网络设备将包含网络功能与虚拟网卡的地址的对应关系的控制逻辑上报至SDN控制器中,以使SDN控制器进行更新。

下面对本发明实施例提供的一种基于SDN的数据处理方法进行说明。

如图2所示,本发明实施例提供的一种基于SDN的数据处理方法,应用于SDN网络设备,所述SDN网络设备中设置有至少一个虚拟网卡,每一虚拟网卡预先与一种网络功能绑定,所述方法包括步骤S201至S205。

S201、接收第一数据报文;

其中,第一数据报文可以是与SDN网络设备连接的任一用户主机发送的数据报文。

S202、根据与所述第一数据报文匹配的第一流表,修改所述第一数据报文的目的地址;

其中,第一流表由与所述SDN网络设备连接的SDN控制器下发,第一流表中包含:与所述第一数据报文对应的第一虚拟网卡的地址,或与所述第一数据报文对应的第一物理网卡的地址;

根据前文所述的内容可知,其中,第一虚拟网卡的地址是由SDN控制器,根据预先存储的网络功能与虚拟网卡的地址之间的对应关系确定的。

S203、若所述第一数据报文修改后的目的地址为所述第一虚拟网卡的地址,将所述第一数据报文发送至所述第一虚拟网卡,调用与所述第一虚拟网卡绑定的第一网络功能,对所述第一数据报文进行所述第一网络功能处理,获得第二数据报文;

由于预先对设置在SDN网络设备中的每一虚拟网卡与一种网络功能进行了绑定,因此,当第一数据报文修改后的目的地址为第一虚拟网卡的地址时,可以直接调用与第一虚拟网卡对应的第一网络功能对第一数据报文进行处理,获得第二数据报文。

其中,第一网络功能包括:网络地址转换、数据报文封装、数据报文解封装、数据报文加密、数据报文解密、数据报文压缩、数据报文解压缩、网络层协议转换、传输层端口转换和应用层协议修改等。

可以理解的是,第一网络功能并不局限于上文中所列举的网络功能,现有技术中存在的其他网络功能均适用于本发明。

在实际应用中,获得第二数据报文后,第一网络功能会根据OS协议栈中的路由表将第二数据报文仍转发至第一虚拟网卡,进而根据OvS软件中与第一虚拟网卡对应的虚拟端口返回至OvS软件中,由OvS软件对第二数据报文进行下一步的转发。

S204、根据与所述第二数据报文匹配的第二流表,修改所述第二数据报文的目的地址,按照修改后的目的地址进行转发;

S205、若所述第一数据报文修改后的目的地址为所述第一物理网卡的地址,则将所述第一数据报文转发至所述第一物理网卡。

本发明实施例提供的一种基于SDN的数据处理方法,当要对第一数据报文进行第一网络功能处理时,可以根据SDN控制器下发的第一流表将第一数据报文的目的地址修改为第一虚拟网卡的地址,OvS软件只需要将该数据报文发送至第一虚拟网卡,通过第一虚拟网卡调用与之绑定的第一网络功能,就能实现对第一数据报文进行第一网络功能处理,OvS软件所执行的功能仍是根据控制器下发的流表进行数据报文的转发,OvS软件本身的功能并未发生改变。因此,本发明实施例提供的方法,不需要对OvS软件本身进行任何额外的设置,就能添加并调用新增的网络功能,简化了新增网络功能的添加及调用过程,进而降低了添加网络功能的成本,缩短了添加网络功能的时间。

另外,由于每种网络功能都具有与其对应的特定虚拟网卡,因此,应用该方法处理数据报文时,对于同时接收的不同种类的数据报文,可以同时选择不同的网络功能进行处理;对于需要不同网络功能处理的同一数据报文,可以随时切换不同的网络功能进行处理,这均提高了数据报文的处理效率,更符合用户的需求。

如图3所示,本发明实施例提供了一种基于SDN的数据处理方法,应用于SDN网络设备,所述SDN网络设备中设置有至少一个虚拟网卡,每一虚拟网卡预先与一种网络功能绑定,该方法包括步骤S301至S307。

S301、接收第一数据报文;

其中,第一数据报文可以是与SDN网络设备连接的任一用户主机发送的数据报文。

S302、判断所述SDN网络设备中是否存在与所述第一数据报文匹配的第一流表,获得第一判断结果;若所述第一判断结果为是,执行步骤S303;若所述第一判断结果为否,在执行完步骤S304后,再执行步骤S303;

可以理解的是,当第一数据报文是报文流中的首个报文时,SDN网络设备中并不存在与该报文匹配的流表,因此,可选地,在根据与所述第一数据报文匹配的第一流表,修改所述第一数据报文的目的地址前,有必要判断所述SDN网络设备中是否存在与所述第一数据报文匹配的第一流表。

S303、根据与所述第一数据报文匹配的第一流表,修改所述第一数据报文的目的地址;

其中,所述第一流表由与所述SDN网络设备连接的SDN控制器下发,其中包含:与所述第一数据报文对应的第一虚拟网卡的地址,或与所述第一数据报文对应的第一物理网卡的地址;其中,所述第一虚拟网卡的地址是由所述SDN控制器,根据预先存储的网络功能与虚拟网卡的地址之间的对应关系确定的。

S304、将所述第一数据报文发送给与所述SDN网络设备连接的SDN控制器,并接收所述SDN控制器下发的与所述第一数据报文匹配的第一流表;

S305、若所述第一数据报文修改后的目的地址为所述第一虚拟网卡的地址,将所述第一数据报文发送至所述第一虚拟网卡,调用与所述第一虚拟网卡绑定的第一网络功能,对所述第一数据报文进行所述第一网络功能处理,获得第二数据报文;

S306、根据与所述第二数据报文匹配的第二流表,修改所述第二数据报文的目的地址,按照修改后的目的地址进行转发;

S307、若所述第一数据报文修改后的目的地址为所述第一物理网卡的地址,则将所述第一数据报文转发至所述第一物理网卡。

需要说明的是,本实施例中的步骤S301、S303、S305~S307,可以与图2所示的实施例中的步骤S201~S205对应相同。

不难看出,本发明图3所示的实施例提供的一种基于SDN的数据处理方法,当要对第一数据报文进行第一网络功能处理时,可以根据SDN控制器下发的第一流表将第一数据报文的目的地址修改为第一虚拟网卡的地址,OvS软件只需要将该数据报文发送至第一虚拟网卡,通过第一虚拟网卡调用与之绑定的第一网络功能,就能实现对第一数据报文进行第一网络功能处理,OvS软件所执行的功能仍是根据控制器下发的流表进行数据报文的转发,OvS软件本身的功能并未发生改变。因此,本发明实施例提供的方法,不需要对OvS软件本身进行任何额外的设置,就能添加并调用新增的网络功能,简化了新增网络功能的添加及调用过程,进而降低了添加网络功能的成本,缩短了添加网络功能的时间。

另外,由于每种网络功能都具有与其对应的特定虚拟网卡,因此,应用该方法处理数据报文时,对于同时接收的不同种类的数据报文,可以同时选择不同的网络功能进行处理;对于需要不同网络功能处理的同一数据报文,可以随时切换不同的网络功能进行处理,这均提高了数据报文的处理效率,更符合用户的需求。

如图4所示,本发明实施例提供了一种基于SDN的数据处理方法,应用于SDN网络设备,所述SDN网络设备中设置有至少一个虚拟网卡,每一虚拟网卡预先与一种网络功能绑定,该方法包括步骤S401至S407。

S401、接收第一数据报文;

其中,第一数据报文可以是与SDN网络设备连接的任一用户主机发送的数据报文。

S402、根据与所述第一数据报文匹配的第一流表,修改所述第一数据报文的目的地址;

其中,所述第一流表由与所述SDN网络设备连接的SDN控制器下发,其中包含:与所述第一数据报文对应的第一虚拟网卡的地址,或与所述第一数据报文对应的第一物理网卡的地址;其中,所述第一虚拟网卡的地址是由所述SDN控制器,根据预先存储的网络功能与虚拟网卡的地址之间的对应关系确定的;

S403、若所述第一数据报文修改后的目的地址为所述第一虚拟网卡的地址,将所述第一数据报文发送至所述第一虚拟网卡,调用与所述第一虚拟网卡绑定的第一网络功能,对所述第一数据报文进行所述第一网络功能处理,获得第二数据报文;

S404、判断所述SDN网络设备中是否存在与所述第二数据报文匹配的第二流表,获得第二判断结果;若所述第二判断结果为是,执行步骤S405;若所述第二判断结果为否,在执行完步骤S406后,再执行步骤S405;

可以理解的是,当第二数据报文是报文流中的首个报文时,SDN网络设备中并不存在与该报文匹配的流表,因此,可选地,在根据与所述第二数据报文匹配的第二流表,修改所述第二数据报文的目的地址前,有必要判断所述SDN网络设备中是否存在与所述第二数据报文匹配的第二流表。

S405、根据与所述第二数据报文匹配的第二流表,修改所述第二数据报文的目的地址,按照修改后的目的地址进行转发;

S406、将所述第二数据报文发送给与所述SDN网络设备连接的SDN控制器,并接收所述SDN控制器下发的与所述第二数据报文匹配的第二流表;

S407、若所述第一数据报文修改后的目的地址为所述第一物理网卡的地址,则将所述第一数据报文转发至所述第一物理网卡。

需要说明的是,本实施例中的步骤S401至S403、S405和S407,可以与图2所示的实施例中的步骤S201至S205对应相同。

不难看出,本发明图4所示的实施例提供的一种基于SDN的数据处理方法,当要对第一数据报文进行第一网络功能处理时,可以根据SDN控制器下发的第一流表将第一数据报文的目的地址修改为第一虚拟网卡的地址,OvS软件只需要将该数据报文发送至第一虚拟网卡,通过第一虚拟网卡调用与之绑定的第一网络功能,就能实现对第一数据报文进行第一网络功能处理,OvS软件所执行的功能仍是根据控制器下发的流表进行数据报文的转发,OvS软件本身的功能并未发生改变。因此,本发明实施例提供的方法,不需要对OvS软件本身进行任何额外的设置,就能添加并调用新增的网络功能,简化了新增网络功能的添加及调用过程,进而降低了添加网络功能的成本,缩短了添加网络功能的时间。

另外,由于每种网络功能都具有与其对应的特定虚拟网卡,因此,应用该方法处理数据报文时,对于同时接收的不同种类的数据报文,可以同时选择不同的网络功能进行处理;对于需要不同网络功能处理的同一数据报文,可以随时切换不同的网络功能进行处理,这均提高了数据报文的处理效率,更符合用户的需求。

需要说明的是,图3和图4所示的实施例重点在于说明各自的不同之处,在实际应中,这两个实施例提供的技术方案可组合应用。

可选地,在本发明实施例提供的一种具体实施方式中,在图2至图4所示的任一实施例中,步骤S204、S306或S405,也即所述根据与所述第二数据报文匹配的第二流表,修改所述第二数据报文的目的地址,按照修改后的目的地址进行转发的步骤可以包括:

步骤1、根据与所述第二数据报文匹配的第二流表,修改所述第二数据报文的目的地址;

步骤2、若所述第二数据报文修改后的目的地址为第二虚拟网卡的地址,将所述第二数据报文发送至所述第二虚拟网卡;

步骤3、若所述第二数据报文修改后的目的地址为第二物理网卡的地址,将所述第二数据报文发送至所述第二物理网卡。

可以理解的是,将所述第二数据报文发送至所述第二虚拟网卡后,第二虚拟网卡会调用与其绑定的第二网络功能,对所述第二数据报文进行第二网络功能处理,获得第三数据报文;

之后,SDN网络设备会根据与第三数据报文匹配的第三流表,修改所述第三数据报文的目的地址,并判断第三数据报文的目的地址是虚拟网卡对应的地址还是物理网卡对应的地址;如果是虚拟网卡对应的地址,继续调用相应的网络功能对第三数据报文进行处理,如此往复循环,直至数据报文的目的地址为物理网卡对应的地址时,终止循环,并将数据报文转发至相应的物理网卡。

可以看出,本发明实施例提供的基于SDN的数据处理方法,可以调用不同的网络功能对接收到数据报文进行多次处理,更符合用户的需求。

请参考图5,图5示出了本发明实施例提供的一种基于SDN的数据处理方法的实际应用场景示意图,在该实际应用场景中,实施此方法的SDN网络设备为OvS宿主机。如图5所示,该实际应用场景的数据处理过程如下:

步骤1、用户主机将第一数据报文发送至OvS宿主机的物理网卡1,并通过与物理网卡1对应映射端口vport1进入OvS软件;

步骤2、假设该数据报文是需要进行新增网络功能A处理的首个数据报文,所以OvS中不存在该报文流的流表,OvS宿主机将该第一数据报文报文封装至Packet-in报文中;OvS宿主机将此Packet-in报文通过Socket接口产生用户数据协议(User Datagram Protocol,UDP)包转发到OS协议栈,OS协议栈再将Packet-in报文转发到物理网卡3;

步骤3、OvS宿主机通过物理网卡3将Packet-in报文上送到SDN控制器;

步骤4、SDN控制器收到Packet-in报文后,根据第一数据报文的源和目的IP地址判断用户身份,然后根据预设的用户身份与网络功能的对应关系,确定第一数据报文需要通过新增网络功能A处理,再根据预先保存的网络功能与虚拟网卡的地址的对应关系,确定与新增网络功能A对应的虚拟网卡是虚拟网卡1,根据虚拟网卡1的地址生成第一流表下发给OvS宿主机。其中,第一流表中包括虚拟网卡1的MAC及IP地址。

步骤5、第一流表经过物理网卡3进入OvS宿主机的OS协议栈,然后由OS协议栈转发到OvS软件;

步骤6、OvS软件收到第一流表后,根据第一流表对第一数据报文进行修改,将其目的MAC及IP地址修改为虚拟网卡1的MAC及IP地址,然后将第一数据报文转发到虚拟网卡1在OvS软件中的映射端口vport3;

步骤7、第一数据报文经过vport3到达虚拟网卡1后,调用新增网络功能A;

步骤8、新增网络功能A对第一数据报文进行处理,获得第二数据报文,并将第二数据报文发送至OvS宿主机的OS协议栈;

步骤9、OS协议栈将根据事先添加好的包含网络功能与虚拟网卡的地址的对应关系的路由表将第二数据报文转发到虚拟网卡1;

步骤10、虚拟网卡1接收到第二数据报文,通过vport3发送至OvS软件,OvS软件判断是否已存在能够处理第二数据报文的第二流表。由于第二数据报文也是第一次进入OvS软件的数据报文,因此OvS软件不存在第二流表;此时,OvS宿主机再次将第二数据报文封装至Packet-in报文中,通过Socket接口产生UDP包转发到OS协议栈,OS协议栈再将Packet-in报文转发到物理网卡3;

步骤11、物理网卡3接收到Packet-in报文后按照与步骤3相同的流程对此报文进行处理;

步骤12、SDN控制器收到Packet-in报文后,根据第二数据报文的源和目的IP地址判断用户身份,然后根据预设的用户身份与网络功能的对应关系,确定第二数据报文需要通过新增网络功能B处理,再根据预先保存的网络功能与虚拟网卡的地址的对应关系,确定与新增网络功能B对应的虚拟网卡是虚拟网卡2,根据虚拟网卡2的地址生成第二流表下发给OvS宿主机。其中,第二流表中包括虚拟网卡2的MAC及IP地址。

步骤13、第二流表经过物理网卡3进入OvS宿主机的OS协议栈,然后由OS协议栈转发到OvS软件;

步骤14、OvS软件收到第二流表后,根据第二流表对第二数据报文进行修改,将其目的MAC及IP地址修改为虚拟网卡2的MAC及IP地址,然后将第二数据报文转发到虚拟网卡2在OvS软件中的映射端口vport4;

步骤15、第二数据报文经过vport4到达虚拟网卡2后,调用新增网络功能B;

步骤16、新增网络功能B对第二数据报文进行处理,获得第三数据报文,并将第三数据报文发送至OvS宿主机的OS协议栈;

步骤17、OS协议栈将根据事先添加好的包含网络功能与虚拟网卡的地址的对应关系的路由表将第三数据报文转发到虚拟网卡2;

步骤18、虚拟网卡2接收到第三数据报文,通过vport4发送至OvS软件,OvS软件判断是否已存在能够处理第三数据报文的第三流表。由于第三数据报文也是第一次进入OvS软件的数据报文,因此OvS软件不存在第三流表;此时,OvS宿主机再次将第三数据报文封装至Packet-in报文中,通过Socket接口产生UDP包转发到OS协议栈,OS协议栈再将Packet-in报文转发到物理网卡3;

步骤19、物理网卡3接收到Packet-in报文后,按照与步骤3相同的流程对此报文进行处理;

步骤20、SDN控制器收到Packet-in报文后,根据第三数据报文的源和目的IP地址判断用户身份,确定第三数据报文目前需要转发到其他网络,向OvS宿主机下发可以继续转发第三数据报文到其他网络的第三流表;

步骤21、第三流表经过物理网卡3进入OvS宿主机的OS协议栈,由OS协议栈转发到OvS软件;

步骤22、OvS软件根据第三流表修改第三数据报文的目的MAC及IP地址,将第三数据报文转发到OvS软件的映射端口vport2;

步骤23、第三数据报文经过映射端口vport2到达物理网卡2后,OvS宿主机通过物理网卡2将第三数据报文转发到其他网络。

可以看出,在图5所示的具体实施例中,将数据报文经过两次网络功能处理后,最终通过物理网卡2转发至其他网络。

下面对本发明实施例提供的一种基于SDN的数据处理装置进行说明。

如图6所示,本发明实施例提供的一种基于SDN的数据处理装置,应用于SDN网络设备,所述SDN网络设备中设置有至少一个虚拟网卡,每一虚拟网卡预先与一种网络功能绑定,所述装置包括:数据报文接收模块601、第一地址修改模块602、第一处理模块603、第二处理模块604和第一转发模块605。

其中,所述SDN网络设备为安装有OvS软件的SDN网络设备(简称OvS宿主机),具体的,所述SDN网络设备可以为安装有OvS软件的SDN交换机。

数据报文接收模块601,用于接收第一数据报文;

其中,第一数据报文可以是与SDN网络设备连接的任一用户主机发送的数据报文。

第一地址修改模块602,用于根据与所述第一数据报文匹配的第一流表,修改所述第一数据报文的目的地址;

其中,所述第一流表由与所述SDN网络设备连接的SDN控制器下发,其中包含:与所述第一数据报文对应的第一虚拟网卡的地址,或与所述第一数据报文对应的第一物理网卡的地址;其中,所述第一虚拟网卡的地址是由所述SDN控制器,根据预先存储的网络功能与虚拟网卡的地址之间的对应关系确定的。

第一处理模块603,用于在所述第一数据报文修改后的目的地址为所述第一虚拟网卡的地址的情况下,将所述第一数据报文发送至所述第一虚拟网卡,调用与所述第一虚拟网卡绑定的第一网络功能,对所述第一数据报文进行所述第一网络功能处理,获得第二数据报文;

由于预先对设置在SDN网络设备中每一虚拟网卡与一种网络功能进行了绑定,因此,当第一数据报文修改后的目的地址为第一虚拟网卡的地址时,可以直接调用与第一虚拟网卡对应的第一网络功能对第一数据报文进行处理,获得第二数据报文。

其中,第一网络功能包括:网络地址转换、数据报文封装、数据报文解封装、数据报文加密、数据报文解密、数据报文压缩、数据报文解压缩、网络层协议转换、传输层端口转换和应用层协议修改等。

可以理解的是,第一网络功能并不局限于上文中所列举的网络功能,现有技术中存在的其他网络功能均适用于本发明。

在实际应用中,获得第二数据报文后,第一网络功能会根据OS协议栈中的路由将第二数据报文仍转发至第一虚拟网卡,进而根据OvS软件中与第一虚拟网卡对应的虚拟端口返回至OvS软件中,由OvS软件对第二数据报文进行下一步的转发。

第二处理模块604,用于根据与所述第二数据报文匹配的第二流表,修改所述第二数据报文的目的地址,按照修改后的目的地址进行转发;

第一转发模块605,用于在所述第一数据报文修改后的目的地址为所述第一物理网卡的地址的情况下,则将所述第一数据报文转发至所述第一物理网卡。

本发明实施例提供的一种基于SDN的数据处理装置,当要对第一数据报文进行第一网络功能处理时,可以根据SDN控制器下发的第一流表将第一数据报文的目的地址修改为第一虚拟网卡的地址,OvS软件只需要将该数据报文发送至第一虚拟网卡,通过第一虚拟网卡调用与之绑定的第一网络功能,就能实现对第一数据报文进行第一网络功能处理,OvS软件所执行的功能仍是根据控制器下发的流表进行数据报文的转发,OvS软件本身的功能并未发生改变。因此,本发明实施例提供的装置,不需要对OvS软件本身进行任何额外的设置,就能添加并调用新增的网络功能,简化了新增网络功能的添加及调用过程,进而降低了添加网络功能的成本,缩短了添加网络功能的时间。

另外,由于每种网络功能都具有与其对应的特定虚拟网卡,因此,应用该装置处理数据报文时,对于同时接收的不同种类的数据报文,可以同时选择不同的网络功能进行处理;对于需要不同网络功能处理的同一数据报文,可以随时切换不同的网络功能进行处理,这均提高了数据报文的处理效率,更符合用户的需求。

如图7所示,本发明实施例提供的一种基于SDN的数据处理装置,应用于SDN网络设备,所述SDN网络设备中设置有至少一个虚拟网卡,每一虚拟网卡预先与一种网络功能绑定,所述装置包括:数据报文接收模块701、第一判断模块702、第一触发模块703、、第二触发模块704、第一地址修改模块705、第一处理模块706和第一转发模块708。

数据报文接收模块701,用于接收第一数据报文;

其中,第一数据报文可以是与SDN网络设备连接的任一用户主机发送的数据报文。

第一判断模块702,用于判断所述SDN网络设备中是否存在与所述第一数据报文匹配的第一流表,获得第一判断结果;

可以理解的是,当第一数据报文是报文流中的首个报文时,SDN网络设备中并不存在与该报文匹配的流表,因此,可选地,在根据与所述第一数据报文匹配的第一流表,修改所述第一数据报文的目的地址前,有必要判断所述SDN网络设备中是否存在与所述第一数据报文匹配的第一流表。

第一触发模块703,用于在所述第一判断结果为是的情况下,触发所述第一地址修改模块;

第二触发模块704,用于在所述第一判断结果为否的情况下,将所述第一数据报文发送给与所述SDN网络设备连接的SDN控制器,并接收所述SDN控制器下发的与所述第一数据报文匹配的第一流表,然后触发第一地址修改模块;

第一地址修改模块705,用于根据与所述第一数据报文匹配的第一流表,修改所述第一数据报文的目的地址;

其中,所述第一流表由与所述SDN网络设备连接的SDN控制器下发,其中包含:与所述第一数据报文对应的第一虚拟网卡的地址,或与所述第一数据报文对应的第一物理网卡的地址;其中,所述第一虚拟网卡的地址是由所述SDN控制器,根据预先存储的网络功能与虚拟网卡的地址之间的对应关系确定的;

第一处理模块706,用于在所述第一数据报文修改后的目的地址为所述第一虚拟网卡的地址的情况下,将所述第一数据报文发送至所述第一虚拟网卡,调用与所述第一虚拟网卡绑定的第一网络功能,对所述第一数据报文进行所述第一网络功能处理,获得第二数据报文;

第二处理模块707,用于根据与所述第二数据报文匹配的第二流表,修改所述第二数据报文的目的地址,按照修改后的目的地址进行转发;

第一转发模块708,用于在所述第一数据报文修改后的目的地址为所述第一物理网卡的地址的情况下,则将所述第一数据报文转发至所述第一物理网卡。

需要说明的是,在本实施例中模块701、705至708,可以与图6所示的实施例中的模块601至605对应相同。

不难看出,本发明图7所示的实施例提供的一种基于SDN的数据处理装置,当要对第一数据报文进行第一网络功能处理时,可以根据SDN控制器下发的第一流表将第一数据报文的目的地址修改为第一虚拟网卡的地址,OvS软件只需要将该数据报文发送至第一虚拟网卡,通过第一虚拟网卡调用与之绑定的第一网络功能,就能实现对第一数据报文进行第一网络功能处理,OvS软件所执行的功能仍是根据控制器下发的流表进行数据报文的转发,OvS软件本身的功能并未发生改变。因此,本发明实施例提供的装置,不需要对OvS软件本身进行任何额外的设置,就能添加并调用新增的网络功能,简化了新增网络功能的添加及调用过程,进而降低了添加网络功能的成本,缩短了添加网络功能的时间。

另外,由于每种网络功能都具有与其对应的特定虚拟网卡,因此,应用该装置处理数据报文时,对于同时接收的不同种类的数据报文,可以同时选择不同的网络功能进行处理;对于需要不同网络功能处理的同一数据报文,可以随时切换不同的网络功能进行处理,这均提高了数据报文的处理效率,更符合用户的需求。

如图8所示,本发明实施例提供的一种基于SDN的数据处理装置,应用于SDN网络设备,所述SDN网络设备中设置有至少一个虚拟网卡,每一虚拟网卡预先与一种网络功能绑定,所述装置包括:

数据报文接收模块801,用于接收第一数据报文;

其中,第一数据报文可以是与SDN网络设备连接的任一用户主机发送的数据报文。

第一地址修改模块802,用于根据与所述第一数据报文匹配的第一流表,修改所述第一数据报文的目的地址;

其中,所述第一流表由与所述SDN网络设备连接的SDN控制器下发,其中包含:与所述第一数据报文对应的第一虚拟网卡的地址,或与所述第一数据报文对应的第一物理网卡的地址;其中,所述第一虚拟网卡的地址是由所述SDN控制器,根据预先存储的网络功能与虚拟网卡的地址之间的对应关系确定的;

第一处理模块803,用于在所述第一数据报文修改后的目的地址为所述第一虚拟网卡的地址的情况下,将所述第一数据报文发送至所述第一虚拟网卡,调用与所述第一虚拟网卡绑定的第一网络功能,对所述第一数据报文进行所述第一网络功能处理,获得第二数据报文;

第二判断模块804,用于判断所述SDN网络设备中是否存在与所述第二数据报文匹配的第二流表,获得第二判断结果;

可以理解的是,当第二数据报文是报文流中的首个报文时,SDN网络设备中并不存在与该报文匹配的流表,因此,可选地,在根据与所述第二数据报文匹配的第二流表,修改所述第二数据报文的目的地址前,有必要判断所述SDN网络设备中是否存在与所述第二数据报文匹配的第二流表。

第三触发模块805,用于在所述第二判断结果为是的情况下,触发所述第二处理模块;

第四触发模块806,用于在所述第二判断结果为否的情况下,将所述第二数据报文发送给与所述SDN网络设备连接的SDN控制器,并接收所述SDN控制器下发的与所述第二数据报文匹配的第二流表,然后触发所述第二处理模块;

第二处理模块807,用于根据与所述第二数据报文匹配的第二流表,修改所述第二数据报文的目的地址,按照修改后的目的地址进行转发;

第一转发模块808,用于在所述第一数据报文修改后的目的地址为所述第一物理网卡的地址的情况下,则将所述第一数据报文转发至所述第一物理网卡。

需要说明的是,在本实施例中模块801至803、807和808,可以与图6所示的实施例中的模块601至605对应相同。

不难看出,本发明图8所示的实施例提供的一种基于SDN的数据处理装置,当要对第一数据报文进行第一网络功能处理时,可以根据SDN控制器下发的第一流表将第一数据报文的目的地址修改为第一虚拟网卡的地址,OvS软件只需要将该数据报文发送至第一虚拟网卡,通过第一虚拟网卡调用与之绑定的第一网络功能,就能实现对第一数据报文进行第一网络功能处理,OvS软件所执行的功能仍是根据控制器下发的流表进行数据报文的转发,OvS软件本身的功能并未发生改变。因此,本发明实施例提供的装置,不需要对OvS软件本身进行任何额外的设置,就能添加并调用新增的网络功能,简化了新增网络功能的添加及调用过程,进而降低了添加网络功能的成本,缩短了添加网络功能的时间。

另外,由于每种网络功能都具有与其对应的特定虚拟网卡,因此,应用该装置处理数据报文时,对于同时接收的不同种类的数据报文,可以同时选择不同的网络功能进行处理;对于需要不同网络功能处理的同一数据报文,可以随时切换不同的网络功能进行处理,这均提高了数据报文的处理效率,更符合用户的需求。

需要说明的是,图7和图8所示的实施例重点在于说明各自的不同之处,在实际应中,这两个实施例提供的技术方案可组合应用。

可选地,在本发明实施例提供的一种具体实施方式中,在图6至图8所示的任一实施例中,第二处理模块607、第二处理模块707或第二处理模块807,可以包括:

第二地址修改子模块,用于根据与所述第二数据报文匹配的第二流表,修改所述第二数据报文的目的地址;

第一转发子模块,用于在所述第二数据报文修改后的目的地址为第二虚拟网卡的地址的情况下,将所述第二数据报文发送至所述第二虚拟网卡;

第二转发子模块,用于在所述第二数据报文修改后的目的地址为第二物理网卡的地址的情况下,将所述第二数据报文发送至所述第二物理网卡。

可以理解的是,将所述第二数据报文发送至所述第二虚拟网卡后,第二虚拟网卡会调用与其绑定的第二网络功能,对所述第二数据报文进行第二网络功能处理,获得第三数据报文;

之后,SDN网络设备会根据与第三数据报文匹配的第三流表,修改所述第三数据报文的目的地址,并判断第三数据报文的目的地址是虚拟网卡对应的地址还是物理网卡对应的地址;如果是虚拟网卡对应的地址,继续调用相应的网络功能对第三数据报文进行处理,如此往复循环,直至数据报文的目的地址为物理网卡对应的地址时,终止循环,并将数据报文转发至相应的物理网卡。

可以看出,本发明实施例提供的基于SDN的数据处理装置,可以调用不同的网络功能对接收到数据报文进行多次处理,更符合用户的需求。

对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1