一种软件定义网络系统及其报文转发控制方法与流程

文档序号:11930231阅读:299来源:国知局
一种软件定义网络系统及其报文转发控制方法与流程

本发明涉及网络技术领域,具体为一种软件定义网络系统及其报文转发控制方法。



背景技术:

软件定义网络(Software Defined Network, SDN )是一种新型网络架构,将网络控制与物理网络拓扑分离,从而创造一种从中央管理控制器向所有交换设备和路由器发送流量的环境。SDN是网络虚拟化的一种实现方式,其核心技术OpenFlow通过将网络设备控制面与数据面分离开来,从而实现了网络流量的灵活控制,使网络作为管道变得更加智能。完整的软件定义网络包括服务器、客户端、连接服务器与客户端的交换设备、连接至交换设备的控制器。

在软件定义网络中,将原来完全由交换设备/路由器控制的报文转发过程转化为由交换设备(优选OpenFlow Switch)和控制器(Controller)来共同完成,从而实现了数据转发和路由控制的分离。控制器可以通过事先规定好的接口操作来控制交换设备中的流表,从而达到控制数据转发的目的。

IP 源防护(IP Source Guard,简称 IPSG)是一种基于 IP/MAC 的端口流量过滤技术,可以防止局域网内的 IP 地址欺骗攻击,能够确保第 2 层网络中终端设备的 IP 地址不会被劫持。IP 源防护的原理是:交换设备内部有一个 IP 源绑定表(IP Source Binding Table)作为每个端口接受到的数据包的检测标准。只有在两种情况下,交换设备会转发数据:1、所接收到的 IP 包满足 IP 源绑定表中 Port/IP/MAC 的对应关系;2、所接收到的是 DHCP数据包;其余数据包将被交换设备做丢弃处理。

传统的IP Source Guard支持通过手工配置方式提供绑定的流表项(即配置IP 源绑定表), 交换设备的端口接收到报文后查找IP Source Guard绑定的流表项,如果报文中的特征项与绑定的流表项中记录的特征项匹配,则端口转发该报文,否则做丢弃处理。IP Source Guard支持的报文特征项包括源IP地址和/或源MAC地址。

现有技术的不足之处在于,传统的IP Source Guard是针对本地交换设备的端口的来绑定流表项的,交换设备的一个端口被绑定后,仅该端口被限制,其他端口不受该绑定影响,因此,无法实现全网络客户端源地址的检测,整个软件定义网络安全性较差。



技术实现要素:

本发明的一个目的在于,提供一种软件定义网络报文转发控制方法,解决现有技术的软件定义网络无法实现全网络客户端源地址的检测、整个软件定义网络安全性较差的技术问题。

为解决上述技术问题,本发明提供如下技术方案:一种软件定义网络报文转发控制方法,应用于软件定义网络系统中,所述软件定义网络系统包括控制器与交换设备。所述软件定义网络报文转发控制方法包括如下步骤:所述交换设备从一客户端接收DHCP请求报文,并将所述DHCP请求报文转发至所述控制器;所述控制器从一交换设备接收所述DHCP请求报文,获取所述DHCP请求报文的入端口信息;所述控制器将DHCP请求报文通过一交换设备转发至一DHCP服务器;所述控制器从一交换设备接收所述DHCP服务器发送的DHCP答复报文,并获取发送所述DHCP请求报文的客户端地址信息;将所述客户端地址信息和所述DHCP请求报文的入端口信息绑定,生成绑定表项;根据所述绑定表项生成流表,根据报文转发路径将所述流表下发至至少一交换设备;以及所述交换设备从一客户端接收报文,并根据所述流表转发非DHCP报文。

在本发明一实施例中,所述交换设备从一客户端接收报文,并根据所述流表转发非DHCP报文的步骤,具体包括如下步骤:将所述报文与所述流表相匹配;当匹配未成功时,所述报文转发单元将所述报文转发至所述控制器。

在本发明一实施例中,在所述交换设备从一客户端接收报文,并根据所述流表转发非DHCP报文的步骤之后,还包括如下步骤:所述控制器接收所述报文,并判断所述报文是否为DHCP报文;若为DHCP报文,判断是DHCP请求报文或是DHCP答复报文;若是DHCP请求报文,获取DHCP请求报文的入端口信息,将所述DHCP请求报文通过一交换设备转发至一DHCP服务器;若是DHCP答复报文,从DHCP答复报文中获取发送DHCP请求报文的客户端的地址信息。

在本发明一实施例中,所述DHCP请求报文的入端口信息包括接收所述DHCP请求报文的交换设备的交换机标识和端口标识。

在本发明一实施例中,所述客户端地址信息包括所述DHCP服务器为发出所述DHCP请求报文的客户端分配的IP地址或/和MAC地址。

本发明的另一个目的在于,提供一种软件定义网络系统,解决现有技术的软件定义网络无法实现全网络客户端源地址的检测、整个软件定义网络安全性较差的技术问题。

为解决上述技术问题,本发明提供如下技术方案:一种软件定义网络系统,包括控制器与交换设备。所述交换设备包括报文获取单元及报文转发单元,报文获取单元用于从一客户端或一DHCP服务器接收报文;所述报文包括DHCP报文或非DHCP报文,所述DHCP报文包括DHCP请求报文或DHCP答复报文;报文转发单元用于转发所述DHCP报文至所述控制器;并根据流表转发所述非DHCP报文。所述控制器包括DHCP报文收发单元、入端口信息获取单元、客户端地址获取单元、绑定表生成单元以及流表下发单元。DHCP报文收发单元用于从一交换设备接收所述客户端发送的DHCP请求报文或所述DHCP服务器发送的DHCP答复报文;或者,将所述DHCP请求报文通过一交换设备发送至一DHCP服务器;入端口信息获取单元用于从所述DHCP请求报文中获取所述DHCP请求报文的入端口信息;客户端地址获取单元用于从所述DHCP答复报文中获取发送所述DHCP请求报文的客户端的地址信息;绑定表生成单元用于将所述客户端地址信息和所述DHCP请求报文的入端口信息绑定,生成绑定表项;流表下发单元用于根据所述绑定表项生成流表,根据报文转发路径将所述流表下发至至少一交换设备。

在本发明一实施例中,所述交换设备还包括流表匹配单元,用于将所述报文与所述流表相匹配,当匹配未成功时,所述报文转发单元将所述报文转发至所述控制器。

在本发明一实施例中,所述控制器还包括DHCP报文判断单元,用于判断所述报文是否为DHCP报文;若为DHCP报文,判断是DHCP请求报文或是DHCP答复报文;若是DHCP请求报文,获取所述DHCP请求报文的入端口信息,将DHCP请求报文发送至DHCP服务器;若是DHCP答复报文,获取发送所述DHCP请求报文的客户端的地址信息。

在本发明一实施例中,所述DHCP请求报文的入端口信息包括接收所述DHCP请求报文的交换设备的交换机标识和端口标识。

在本发明一实施例中,所述客户端地址信息包括所述DHCP服务器为发出DHCP请求报文的客户端分配的IP地址或/和MAC地址。

本发明的优点在于,提供一种软件定义网络系统及其报文转发控制方法,基于软件定义网络架构,对全软件定义网络的所有交换设备提供一个绑定表,以对软件定义网络中任一交换设备端口进行绑定,可以接收软件定义网络中所有客户端的动态源地址,有效防止非法IP地址的客户端访问服务器。由于动态源地址检测配置任务序列都集中在控制器,所以配置工作非常集中并且修改方便,组网灵活、检测方便,防御效果好、成本低。

附图说明

图1是本发明实施例的软件定义网络系统架构示意图;

图2是本发明实施例的软件定义网络系统功能模块结构示意图;

图3是本发明实施例的Experimenter报文示意图;

图4是本发明实施例的软件定义网络系统的报文转发控制方法流程图;

图5是本发明实施例的交换设备从一客户端接收报文并根据所述流表转发非DHCP报文的方法流程图。

图中的部件名称和编号如下:

1控制器,2交换设备,3客户端,4服务器,5 DHCP服务器;

11DHCP报文收发单元,12入端口信息获取单元,13客户端地址获取单元,14绑定表生成单元,15流表下发单元,16 DHCP报文判断单元;

21报文获取单元,22报文转发单元,23流表匹配单元;

51 DHCP服务器报文收发单元,52 地址分配单元。

具体实施方式

以下实施例的说明是参考附加的图式,用以例示本发明可用以实施的特定实施例。

如图1所示,本实施例提供一种软件定义网络系统(SDN系统),包括一控制器1、至少一交换设备(交换机)2、至少一客户端3(可能包括非法客户端)、至少一服务器4以及一DHCP服务器5,客户端3通过交换设备2的端口连接至服务器4。控制器1连接至交换设备2;DHCP服务器5连接至交换设备2。

如图2所示,交换设备2包括报文获取单元21及报文转发单元22。

报文获取单元21用于从一客户端3或一DHCP服务器5接收报文;所述报文包括DHCP报文或非DHCP报文,所述DHCP报文包括DHCP请求报文或DHCP答复报文。客户端3接入一交换设备2,可以发出DHCP请求报文或非DHCP报文至交换设备2,DHCP服务器5接入一交换设备2,可以反馈DHCP答复报文至交换设备2。

报文转发单元22用于转发所述DHCP报文至所述控制器,并根据流表转发所述非DHCP报文至服务器4或其他交换设备。如图3所示,交换设备(SDN交换机)首先建立和控制器的通道,需要初始化OpenFlow通道。交换设备通过私有扩展Experimenter报文,上报自己的MAC地址和端口信息(交换机的MAC地址可以作为交换机的标识符)。Experimenter值为255需要向ONF组织申请。Experimenter type值为1表明是从SDN交换设备方向到控制器,上报的端口号最大支持128个。

交换设备2还可以包括流表匹配单元23,用于将所述报文与所述流表相匹配。当匹配成功时,所述报文为非DHCP报文,是合法数据,交换设备2将该报文传送给服务器或其他交换设备。当匹配未成功时,所述报文可能是DHCP报文,也可能是来自非法客户端的非法报文,报文转发单元22将该报文转发至所述控制器。

控制器1包括DHCP报文收发单元11、入端口信息获取单元12、客户端地址获取单元13、绑定表生成单元14以及流表下发单元15。

DHCP报文收发单元11用于从一交换设备2接收客户端3发送的DHCP请求报文或DHCP服务器5发送的DHCP答复报文;或者,将所述DHCP请求报文通过一交换设备2发送至一DHCP服务器5。

入端口信息获取单元12用于从所述DHCP请求报文中获取所述DHCP请求报文的入端口信息。所述DHCP请求报文的入端口信息包括接收所述DHCP请求报文的交换设备的交换机标识(ID信息)和端口标识(端口信息)。

客户端地址获取单元13用于从所述DHCP答复报文中获取发送所述DHCP请求报文的客户端3的地址信息。所述客户端地址信息包括所述DHCP服务器为发出DHCP请求报文的客户端分配的IP地址或/和MAC地址。控制器1应支持动态源地址检测配置任务序列,检测配置项包括配置动态源地址检测类型和基于SDN的动态源地址功能,配置动态源地址检测类型包括检测源IP,或者检测源MAC,或者同时检测源IP和源MAC,基于SDN的动态源地址功能包括打开或关闭源地址功能。

绑定表生成单元14用于将所述客户端地址信息和所述DHCP请求报文的入端口信息绑定,生成绑定表项.

流表下发单元15用于根据所述绑定表项生成流表,根据报文转发路径将所述流表下发至至少一交换设备2。

由于交换设备2在之前已经判断过所述报文是否与所述流表相匹配,因此,控制器1获得的报文只能是DHCP报文或来自非法客户端的非法报文,因此需要判断该报文是否为DHCP报文。控制器1还可以包括DHCP报文判断单元16,用于判断所述报文是否为DHCP报文。若为非法报文,控制器1直接将该报文(数据包)丢弃;若为DHCP报文,判断是DHCP请求报文或是DHCP答复报文。若是DHCP请求报文,控制器1获取所述DHCP请求报文的入端口信息,将DHCP请求报文发送至DHCP服务器5;若是DHCP答复报文,控制器1获取发送所述DHCP请求报文的客户端3的地址信息。

DHCP服务器5包括DHCP服务器报文收发单元51、地址分配单元52。该DHCP服务器报文收发单元51用以从一个交换设备接收包含客户端入端口信息的DHCP请求报文,从而获取客户端入端口信息,包括接收所述DHCP请求报文的交换设备的交换机标识(ID信息)和端口标识(端口信息)。地址分配单元52根据所述客户端入端口信息为接入该交换设备的客户端3分配IP地址和MAC地址。

本实施例的软件定义网络系统(SDN系统),将控制器1与交换设备2分离,通过控制器1统一控制各个交换设备2,并对交换设备2各个端口进行全网络的监控,可以防止局域网内的 IP 地址欺骗攻击,能够确保第 2 层网络中终端设备的 IP 地址不会被劫持。

下面结合软件定义网络(SDN)报文转发控制方法对上述实施例中的软件定义网络系统(SDN系统)进行具体说明。

如图4所示,本实施例还提供一种软件定义网络报文转发控制方法,应用于软件定义网络系统中,所述软件定义网络系统包括上述各个部件单元。所述软件定义网络报文转发控制方法包括如下步骤S1)- 步骤S7)。

步骤S1)一交换设备从一客户端接收DHCP请求报文(DHCP Request),并将所述DHCP请求报文转发至一控制器。某一客户端接入交换设备,并发送DHCP请求报文给交换设备,交换设备将该报文转发至控制器。

步骤S2)一控制器从一交换设备接收所述DHCP请求报文,获取所述DHCP请求报文的入端口信息。所述DHCP请求报文的入端口信息包括接收所述DHCP请求报文的交换设备的交换机标识(ID信息)和端口标识(端口信息)。

步骤S3)所述控制器将DHCP请求报文通过一交换设备转发至一DHCP服务器。控制器并非直接与DHCP服务器连接,而是通过一交换设备连接至一DHCP服务器。DHCP服务器接收到DHCP请求报文后,获取交换设备的入端口信息,包括交换设备的交换机标识(ID信息)和端口标识(端口信息),根据入端口信息为客户端分配IP地址和MAC地址,发送DHCP答复报文(DHCP Ack)给交换设备,DHCP答复报文中包括IP地址和MAC地址。

步骤S4) 控制器根据动态源地址检测配置开启DHCP-Snooping,对DHCP报文进行侦听。控制器从一交换设备接收所述DHCP服务器发送的DHCP答复报文,并获取发送所述DHCP请求报文的客户端地址信息。所述客户端地址信息包括所述DHCP服务器为发出所述DHCP请求报文的客户端分配的IP地址或/和MAC地址。

步骤S5)将所述客户端地址信息和所述DHCP请求报文的入端口信息绑定,生成绑定表项,绑定表项中包括交换机标识和端口标识,IP地址和/或MAC地址。

步骤S6)根据所述绑定表项生成OpenFlow流表,根据报文转发路径将所述流表下发至至少一交换设备。

步骤S7)所述交换设备从一客户端接收报文,并根据所述流表转发非DHCP报文。

进一步地,如图5所示,步骤S7)具体可以包括如下步骤S701)- 步骤S704)。

步骤S701) 从一客户端接收报文。

步骤S702)将所述报文与所述OpenFlow流表相匹配;当匹配未成功时,执行步骤S703);当匹配成功时,执行步骤S704)。如果连接到交换设备端口上的是合法客户端,其IP地址和/或MAC地址都是由DHCP服务器分配的,必然会符合OpenFlow流表;如果连接到交换设备端口上的是非法客户端(黑客),其IP地址和/或MAC地址必然不符合OpenFlow流表;因此可以根据OpenFlow流表判断出连接到交换设备端口上的客户端是否合法。

步骤S703)所述报文转发单元将所述报文转发至所述控制器。流表匹配不成功,所述报文可能是DHCP报文,也可以是非法报文(来自黑客的非法客户端),按照下述步骤S705)-步骤S708)来处理。

步骤S704)所述报文转发单元将所述报文转发至服务器或其他路由设备。流表匹配成功,说明是合法客户端,交换设备允许客户端连接至服务器,与服务器实现数据交换。

由于报文转发路径上的交换设备都具有OpenFlow流表,各交换设备的端口都被绑定,因此无论黑客接入哪一个交换设备端口,都要与OpenFlow流表对比判断一次,从而可以有效提高整个软件定义网络系统的安全性。

进一步地,步骤S7)中,在步骤S703)所述报文转发单元将所述报文转发至所述控制器之后,还可以包括如下步骤S705)-步骤S708)。

步骤S705)所述控制器接收所述报文,并判断所述报文是否为DHCP报文;若为DHCP报文,执行步骤S706);若非DHCP报文,判定为非法报文,将其丢弃。如果报文是来自非法客户端(黑客),交换设备就不会将该客户端的数据转发,而是直接丢弃。

步骤S706)判断是DHCP请求报文或是DHCP答复报文;若是DHCP请求报文,执行步骤S707);若是DHCP答复报文,执行步骤S708)。

步骤S707)获取DHCP请求报文的入端口信息,将所述DHCP请求报文通过一交换设备转发至一DHCP服务器,与步骤S2)相同。

步骤S708)从DHCP答复报文中获取发送DHCP请求报文的客户端的地址信息,与步骤S4)相同。

本发明的优点在于,提供一种软件定义网络系统及其报文转发控制方法,基于软件定义网络架构,对整个软件定义网络系统的交换设备提供绑定表,以对软件定义网络系统中的交换设备端口进行绑定,可以接收软件定义网络中所有客户端的动态源地址,有效防止非法IP地址的客户端访问服务器。由于动态源地址检测配置任务序列都集中在控制器,所以配置工作非常集中并且修改方便,组网灵活、检测方便,防御效果好、成本低。

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

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