发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供SDN网络ARP报文处理方法、***、控制器及交换机,用于解决现有技术中需在每台交换机本地配置ARP绑定策略导致工作繁琐、效率低下的问题。
为实现上述目的及其他相关目的,本发明提供一种SDN网络的ARP报文处理方法,包括:SDN控制器获取网络中交换机的MAC信息和端口信息与预定IP信息加以绑定后放入ARP绑定关系表中作为匹配项,其中,所述ARP绑定关系表配置有需认证报文和无需认证报文的两种工作模式;SDN控制器接收来自交换机的未成功匹配流表的ARP报文,从所述ARP报文至少提取源MAC地址、源IP地址和源端口信息;判断所述ARP绑定关系表的工作模式;若为无需认证报文模式,则学习所述ARP报文的源MAC地址、源IP地址和源端口以更新所述ARP绑定关系表;若为需认证报文模式,将所述ARP报文的源MAC地址、源IP地址和源端口与ARP绑定关系表中的匹配项进行匹配,在匹配的情况下,学习所述ARP报文的源MAC地址、源IP地址和源端口以更新所述ARP绑定关系表;反之,则丢弃该ARP报文。
于本发明的一实施例中,所述的SDN网络的ARP报文处理方法,还包括:在所述ARP报文的源MAC地址、源IP地址和源端口与ARP绑定关系表中的匹配项相匹配的情况下,结合从所述ARP报文提取的目的MAC地址,生成对应处理所述ARP报文的流表下发至ARP报文转发路径上的各交换机。
于本发明的一实施例中,所述SDN控制器是从来自交换机的私有Experimenter报文中获取MAC信息和端口信息的,所述Experimenter报文扩展有MAC信息和端口信息的存储空间。
为实现上述目的及其他相关目的,本发明提供一种SDN网络的ARP报文处理***,应用于SDN控制器,所述***包括:绑定表管理模块,用于获取网络中交换机的MAC信息和端口信息与预定IP信息加以绑定后放入ARP绑定关系表中作为匹配项,其中,所述ARP绑定关系表配置有需认证报文和无需认证报文的两种工作模式;信息提取模块,用于接收来自交换机的未成功匹配流表的ARP报文,从所述ARP报文至少提取源MAC地址、源IP地址和源端口信息;所述绑定表管理模块,用于判断所述ARP绑定关系表的工作模式;若为无需认证报文模式,则学习所述ARP报文的源MAC地址、源IP地址和源端口以更新所述ARP绑定关系表;若为需认证报文模式,将所述ARP报文的源MAC地址、源IP地址和源端口与ARP绑定关系表中的匹配项进行匹配,在匹配的情况下,学习所述ARP报文的源MAC地址、源IP地址和源端口以更新所述ARP绑定关系表;反之,则通知SDN控制器丢弃该ARP报文。
于本发明的一实施例中,所述的SDN网络的ARP报文处理***,还包括:流表生成模块,用于在所述ARP报文的源MAC地址、源IP地址和源端口与ARP绑定关系表中的匹配项相匹配的情况下,结合从所述ARP报文提取的目的MAC地址,生成对应处理所述ARP报文的流表下发至ARP报文转发路径上的各交换机。
于本发明的一实施例中,所述SDN控制器是从来自交换机的私有Experimenter报文中获取MAC信息和端口信息的,所述Experimenter报文扩展有MAC信息和端口信息的存储空间。
为实现上述目的及其他相关目的,本发明提供一种SDN控制器,包括:通信单元,用于获取网络中交换机的MAC信息和端口信息与预定IP信息;并用于接收来自交换机的未成功匹配流表的ARP报文;处理单元,用于将所述获取的交换机的MAC信息和端口信息与预定IP信息加以绑定后放入ARP绑定关系表中作为匹配项,其中,所述ARP绑定关系表配置有需认证报文和无需认证报文的两种工作模式;还用于从所述ARP报文提取至少源MAC地址、源IP地址和源端口信息;还用于判断所述ARP绑定关系表的工作模式;若为无需认证报文模式,则学习所述ARP报文的源MAC地址、源IP地址和源端口以更新所述ARP绑定关系表;若为需认证报文模式,将所述ARP报文的源MAC地址、源IP地址和源端口与ARP绑定关系表中的匹配项进行匹配,在匹配的情况下,学习所述ARP报文的源MAC地址、源IP地址和源端口以更新所述ARP绑定关系表;反之,则通知SDN控制器丢弃该ARP报文。
于本发明的一实施例中,所述处理单元,还用于在所述ARP报文的源MAC地址、源IP地址和源端口与ARP绑定关系表中的匹配项相匹配的情况下,结合从所述ARP报文提取的目的MAC地址,生成对应处理所述ARP报文的流表并通过所述通信单元下发至ARP报文转发路径上的各交换机。
于本发明的一实施例中,所述SDN控制器是从来自交换机的私有Experimenter报文中获取MAC信息和端口信息的,所述Experimenter报文扩展有MAC信息和端口信息的存储空间。
为实现上述目的及其他相关目的,本发明提供一种SDN交换机,包括:通信单元,用于外发包含其MAC信息和端口信息的报文发送给SDN控制器,以供与预定IP信息绑定后放入ARP绑定关系表中作为匹配项;还用于将所接收的未成功匹配流表的ARP报文发送给SDN控制器;并用于接收经过所述ARP绑定关系表匹配认证的对应所述ARP报文的流表;处理单元,用于根据所述通信单元接收的流表处理所述ARP报文。
如上所述,本发明的SDN网络ARP报文处理方法、***、控制器及交换机,SDN控制器获取网络中交换机的MAC信息和端口信息与预定IP信息加以绑定后放入ARP绑定关系表中作为匹配项,其中,所述ARP绑定关系表配置有需认证报文和无需认证报文的两种工作模式;SDN控制器接收来自交换机的未成功匹配流表的ARP报文,从所述ARP报文至少提取源MAC地址、源IP地址和源端口信息;判断所述ARP绑定关系表的工作模式;若为无需认证报文模式,则学习所述ARP报文的源MAC地址、源IP地址和源端口以更新所述ARP绑定关系表;若为需认证报文模式,将所述ARP报文的源MAC地址、源IP地址和源端口与ARP绑定关系表中的匹配项进行匹配,在匹配的情况下,学习所述ARP报文的源MAC地址、源IP地址和源端口以更新所述ARP绑定关系表;反之,则丢弃该ARP报文。
本发明的技术方案是基于SDN架构的,整个ARP绑定策略集中在控制器上。只有正确的ARP报文才会生成流表,被SDN交换机转发,整个配置简单和有效。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
本发明应用于SDN网络,指的是软件定义网络(Software Defined Network,SDN),是Emulex网络一种新型网络创新架构,是网络虚拟化的一种实现方式,其核心技术OpenFlow通过将网络设备控制面与数据面分离开来,从而实现了网络流量的灵活控制,使网络作为管道变得更加智能。
本发明的设计思想之一即是利用SDN网络的控制面来实现ARP报文的安全防护。
请参阅图1,本发明提供一种SDN网络的ARP报文处理方法,包括:
步骤S101:SDN控制器获取网络中交换机的MAC信息和端口信息与预定IP信息加以绑定后放入ARP绑定关系表中作为匹配项,其中,所述ARP绑定关系表配置有需认证报文和无需认证报文的两种工作模式。
一方面来说,SDN交换机首先建立和控制器的通道,需要初始化OpenFlow通道,进而SDN交换机通过私有的Experimenter报文,上报自己的MAC地址和端口信息(端口id),所述Experimenter报文扩展有MAC信息和端口信息的存储空间,交换机的MAC地址可以作为其标识,从SDN交换机到控制器的私有扩展Experimenter报文的格式如图2所示,其中“OWNMAC Address”项存储所述MAC地址,“PORT id”项存储所述端口信息,Experimenter值为255需要向ONF组织申请;Experimenter type值为1表明是从SDN交换机方向到控制器;上报的端口号最大支持128个,其他Experimenter报文项可参考现有技术,不作赘述。
并且,SDN控制器还可根据LLDP协议和交换机上报的MAC地址和端口信息,计算网络拓扑,了解整个SDN网络的分布情况。
再一方面来说,所述ARP绑定关系表的相关配置例如下表所示:
根据该配置项目的要求即可实现控制利用ARP绑定关系表完成后续工作的方案。
所述需认证报文模式指的是需要对转发来的ARP报文进行认证,无需认证模式表示无需对ARP报文进行认证,直接学习即可。
步骤S102:SDN控制器接收来自交换机的未成功匹配流表的ARP报文,从所述ARP报文至少提取源MAC地址、源IP地址和源端口信息。
一方面来说,当ARP报文进入到SDN网络到达交换机,首先匹配交换机中的流表,如果不匹配,报文被送给SDN控制器,否则根据流表转发报文。
所述SDN控制器在接收到该ARP报文后,开始进行处理。
步骤S103:判断所述ARP绑定关系表的工作模式;即判断是需认证报文模式还是无需认证报文模式。
步骤S104:若为无需认证报文模式,则学习所述ARP报文的源MAC地址、源IP地址和源端口以更新所述ARP绑定关系表;
步骤S105:若为需认证报文模式,将所述ARP报文的源MAC地址、源IP地址和源端口与ARP绑定关系表中的匹配项进行匹配看是否相匹配;
步骤S106:若匹配,学习所述ARP报文的源MAC地址、源IP地址和源端口以更新所述ARP绑定关系表;
步骤S107:若不匹配,则丢弃该ARP报文。
于本发明的一实施例中,所述的SDN网络的ARP报文处理方法,所述步骤S106之后还包括:
步骤S108:在所述ARP报文的源MAC地址、源IP地址和源端口与ARP绑定关系表中的匹配项相匹配的情况下,结合从所述ARP报文提取的目的MAC地址,生成对应处理所述ARP报文的流表下发至ARP报文转发路径上的各交换机。
所述流表例如以下所示,包含了用于处理该ARP报文的流表项:
从而,各所述交换机根据该流表即可将ARP报文转发至其目的MAC地址对应的目的设备。
与上述方法实施例对应原理相同的是,本发明还可在以下提供SDN网络的ARP报文处理***,方法实施例中的技术特征可应用于所述***实施例,因此相同的技术特征不再重复赘述。
如图3所示,本发明提供一种SDN网络的ARP报文处理***1,应用于SDN控制器,所述***包括:绑定表管理模块11,用于获取网络中交换机的MAC信息和端口信息与预定IP信息加以绑定后放入ARP绑定关系表中作为匹配项,其中,所述ARP绑定关系表配置有需认证报文和无需认证报文的两种工作模式;信息提取模块12,用于接收来自交换机的未成功匹配流表的ARP报文,从所述ARP报文至少提取源MAC地址、源IP地址和源端口信息;所述绑定表管理模块11,用于判断所述ARP绑定关系表的工作模式;若为无需认证报文模式,则学习所述ARP报文的源MAC地址、源IP地址和源端口以更新所述ARP绑定关系表;若为需认证报文模式,将所述ARP报文的源MAC地址、源IP地址和源端口与ARP绑定关系表中的匹配项进行匹配,在匹配的情况下,学习所述ARP报文的源MAC地址、源IP地址和源端口以更新所述ARP绑定关系表;反之,则通知SDN控制器丢弃该ARP报文。
于本发明的一实施例中,所述的SDN网络的ARP报文处理***1,还包括:流表生成模块13,用于在所述ARP报文的源MAC地址、源IP地址和源端口与ARP绑定关系表中的匹配项相匹配的情况下,结合从所述ARP报文提取的目的MAC地址,生成对应处理所述ARP报文的流表下发至ARP报文转发路径上的各交换机。
于本发明的一实施例中,所述SDN控制器是从来自交换机的私有Experimenter报文中获取MAC信息和端口信息的,所述Experimenter报文扩展有MAC信息和端口信息的存储空间。
如图4所示,与上述实施例原理相同的是,本发明还可提供SDN控制器2及相配合的SDN交换机3的实施例。
所述SDN控制器2,包括:第一通信单元21,用于获取网络中交换机的MAC信息和端口信息与预定IP信息;并用于接收来自交换机的未成功匹配流表的ARP报文;第一处理单元22,用于将所述获取的交换机的MAC信息和端口信息与预定IP信息加以绑定后放入ARP绑定关系表中作为匹配项,其中,所述ARP绑定关系表配置有需认证报文和无需认证报文的两种工作模式;还用于从所述ARP报文提取至少源MAC地址、源IP地址和源端口信息;还用于判断所述ARP绑定关系表的工作模式;若为无需认证报文模式,则学习所述ARP报文的源MAC地址、源IP地址和源端口以更新所述ARP绑定关系表;若为需认证报文模式,将所述ARP报文的源MAC地址、源IP地址和源端口与ARP绑定关系表中的匹配项进行匹配,在匹配的情况下,学习所述ARP报文的源MAC地址、源IP地址和源端口以更新所述ARP绑定关系表;反之,则通知SDN控制器2丢弃该ARP报文。
于本发明的一实施例中,所述第一处理单元22,还用于在所述ARP报文的源MAC地址、源IP地址和源端口与ARP绑定关系表中的匹配项相匹配的情况下,结合从所述ARP报文提取的目的MAC地址,生成对应处理所述ARP报文的流表并通过所述第一通信单元21下发至ARP报文转发路径上的各交换机。
于本发明的一实施例中,所述SDN控制器2是从来自交换机的私有Experimenter报文中获取MAC信息和端口信息的,所述Experimenter报文扩展有MAC信息和端口信息的存储空间。
所述SDN交换机3,包括:第二通信单元31,用于外发包含其MAC信息和端口信息的报文发送给SDN控制器2,以供与预定IP信息绑定后放入ARP绑定关系表中作为匹配项;还用于将所接收的未成功匹配流表的ARP报文发送给SDN控制器2;并用于接收经过所述ARP绑定关系表匹配认证的对应所述ARP报文的流表;第二处理单元32,用于根据所述通信单元接收的流表处理所述ARP报文,例如通过所述第二通信单元31转发。
所述第一通信单元21及第二通信单元31例如为有线网卡或无线RF通信电路,可运行驱动软件实现功能;所述第一处理单元22及第二处理单元32例如为CPU、MCU、SoC等芯片,通过运行相应软件实现功能。
再如图5所示,提供一个实际的实施例来说明本发明技术方案的作用:
其中,SDN控制器配置的有效的ARP绑定关系表为(HOST A的MAC,HOST A的IP,S1PORT1);
2)只有HOST A发出的ARPREPLY才会被SDN网络转发至Host B,即图中4和5两步;
3)黑客发出的相同ARPREPLY会被SDN网络丢弃(入端口不匹配);
综上所述,本发明的SDN网络ARP报文处理方法、***、控制器及交换机,SDN控制器获取网络中交换机的MAC信息和端口信息与预定IP信息加以绑定后放入ARP绑定关系表中作为匹配项,其中,所述ARP绑定关系表配置有需认证报文和无需认证报文的两种工作模式;SDN控制器接收来自交换机的未成功匹配流表的ARP报文,从所述ARP报文至少提取源MAC地址、源IP地址和源端口信息;判断所述ARP绑定关系表的工作模式;若为无需认证报文模式,则学习所述ARP报文的源MAC地址、源IP地址和源端口以更新所述ARP绑定关系表;若为需认证报文模式,将所述ARP报文的源MAC地址、源IP地址和源端口与ARP绑定关系表中的匹配项进行匹配,在匹配的情况下,学习所述ARP报文的源MAC地址、源IP地址和源端口以更新所述ARP绑定关系表;反之,则丢弃该ARP报文。
本发明的技术方案是基于SDN架构的,整个ARP绑定策略集中在控制器上。只有正确的ARP报文才会生成流表,被SDN交换机转发,整个配置简单和有效,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。