基于SDN的动态防MAC地址欺骗方法
技术领域
本发明涉及一种基于SDN(自防御网络,Self-Defending Network)的动态防MAC地址欺骗方法。
背景技术
传统交换机依靠MAC地址表(维护MAC地址和VLAN与端口映射关系的二层转发表,是实现二层报文快速转发的基础)来转发数据报文。对于某个目的MAC地址明确的单址报文不会像Hub那样将该单址报文简单复制到其他端口上,而是只发到对应的学习端口上。而黑客利用伪造的MAC报文,让交换机学习到MAC地址和VLAN与端口错误的映射关系,导致数据报文无法转发到正确的目的地址。
传统交换机支持MAC地址与端口的绑定来解决这种潜在的安全隐患,如图1所示,在交换机S2上,配置了MAC地址绑定关系:01:01:01:01:01:01和Port 3绑定,当源MAC地址为01:01:01:01:01:01的报文从Port 1过来,此报文将会被丢弃,也不会学习到MAC表中去。这样,用户就无法通过更改MAC地址来进行某种恶意的攻击或者有效地防止某些环路导致的MAC地址重复。但是这种绑定关系如果是基于某台交换机而不是基于转发路径的,在某些特定场景下也无法解决MAC地址欺骗的问题,如图2所示,在交换机S3上,设置了MAC地址绑定(MAC地址A和S3的Port 1绑定),但由于S2上没有关于MAC地址A的绑定关系,导致报文转发到黑客hacker。
为了防止MAC地址欺骗,防止交换机中MAC地址映射表混乱,传统的办法就是实现MAC地址与交换机端口的绑定。原有的网络不是基于SDN架构,是分布式控制很难感知报文的转发路径。一旦网络发生变化,网络管理员需要静态修改绑定关系。实现手工静态绑定需要网络管理员手工将用户的MAC地址和端口号输入到网络里去,对于一个较大规模的网络,这项工作显然不够轻松,需要在转发路径的所有交换机上手动配置静态的绑定关系,因此非常容易出错。
发明内容
本发明提供一种基于SDN的动态防MAC地址欺骗方法,采用了SDN架构感知报文的转发路径和网络变化,实现MAC地址与交换机端口的动态绑定,从而实现全网防MAC地址欺骗,使得整个网络的管理和配置非常简单和智能,有效地管理整个SDN网络。
为了达到上述目的,本发明提供一种基于SDN的动态防MAC地址欺骗方法,包含以下步骤:
将整个网络中的交换机都连接到SDN控制器,建立基于SDN的动态网络;
SDN控制器根据交换机上报的MAC地址信息、交换机端口信息和网络拓扑信息实时计算报文的转发路径,获得转发路径上所有交换机上的MAC地址与交换机端口的对应关系;
SDN控制器通过流表指令集将绑定关系实时动态下发到转发路径上的交换机,更新交换机上的目的MAC地址和端口绑定关系表,绑定MAC地址与交换机端口;
当交换机接收到二层报文时,判断二层报文是否符合目的MAC地址和端口绑定关系表中限定的绑定关系,如果二层报文的MAC地址没有绑定过端口,则交换机学习该源MAC地址,如果二层报文符合绑定关系,则对该二层报文进行正常的二层转发,如果二层报文不符合绑定关系,则丢弃该二层报文。
所述的交换机上报的MAC地址信息包含:交换机学习的MAC地址信息,以及交换机老化的MAC地址信息。
交换机学习一条MAC地址,需立即上报给SDN控制器。
交换机老化一条MAC地址,需立即上报给SDN控制器。
所述的流表指令集是二级流表,该流表指令集包含零级流表和一级流表;
所述的零级流表包含:
匹配字段:目的MAC地址;
指令字段:转一级流表;
所述的一级流表包含:
匹配字段:端口;
指令字段:二层转发。
交换机接收到二层报文时判断二层报文是否符合目的MAC地址和端口绑定关系表中限定的绑定关系的步骤包含:当交换机接收到二层报文时,判断二层报文的源MAC地址是否与SDN控制器发送的零级流表中的目的MAC地址信息匹配,如果MAC地址不匹配,说明该源MAC地址没有绑定交换机端口,交换机学习该源MAC地址,并将源MAC地址信息和端口信息上报给SDN控制器,然后交换机对该二层报文进行正常的二层转发,如果MAC地址匹配,则交换机进一步判断二层报文的端口是否与一级流表中的端口信息匹配,如果端口匹配,说明该源MAC地址是合法的,符合目的MAC地址和端口绑定关系表中限定的绑定关系,则交换机对该二层报文进行正常的二层转发,如果端口不匹配,说明该源MAC地址不符合目的MAC地址和端口绑定关系表中限定的绑定关系,是欺骗的MAC地址,将该二层报文丢弃。
交换机老化MAC地址并上报SDN控制器的过程包含以下步骤:如果交换机在超过设定的老化时间还未收到过已经绑定的MAC地址发送的二层报文,则将老化MAC地址信息上报给SDN控制器。
SDN控制器对老化MAC地址进行处理的过程包含以下步骤:
步骤S2.1、SDN控制器接收到交换机上报的老化MAC地址信息后,判断是否继续保持绑定关系,如果是,则SDN控制器不做任何处理,如果否,则进行步骤S2.2;
步骤S2.2、SDN控制器判断该MAC地址是否在整条报文转发路径上都老化了,如果是,进行步骤S2.3,如果否,则SDN控制器不做任何处理;
步骤S2.3、SDN控制器判断是否解除MAC地址和交换机端口的绑定关系,如果是,SDN控制器对整条报文转发路径上的交换机下发流表指令集,更新交换机上的目的MAC地址和端口绑定关系表 ,解除MAC地址和交换机端口的绑定关系,如果否,SDN控制器保持MAC地址和交换机端口的绑定关系。
如果MAC地址在整条报文转发路径上都老化了,则缺省配置是解除MAC地址和交换机端口的绑定关系。
如果MAC地址在整条报文转发路径上都老化了,且SDN控制器决定保持MAC地址和交换机端口的绑定关系,但用户基于整个动态网络删除MAC地址和交换机端口的绑定关系或者基于整个动态网络解除所有MAC地址和端口的绑定关系,则此时不再保持MAC地址和交换机端口的绑定关系。
本发明采用了SDN架构感知报文的转发路径和网络变化,实现MAC地址与交换机端口的动态绑定,从而实现全网防MAC地址欺骗,使得整个网络的管理和配置非常简单和智能,有效地管理整个SDN网络。
附图说明
图1是背景技术中传统的MAC地址和端口的静态绑定示意图。
图2是背景技术中黑客攻击示意图。
图3是本发明的流程图。
图4是SDN控制器对老化MAC地址进行处理的流程图。
具体实施方式
以下根据图3~图4,具体说明本发明的较佳实施例。
如图3所示,本发明提供一种基于SDN的动态防MAC地址欺骗方法,包含以下步骤:
步骤S1、将整个网络中的交换机都连接到SDN控制器,建立基于SDN的动态网络。
步骤S2、SDN控制器根据交换机上报的MAC地址信息、交换机端口信息和网络拓扑信息(该网络拓扑信息包含交换机的链路连接结构以及信息交换速率,该网络拓扑信息根据LLDP报文计算获得)实时计算报文的转发路径,获得转发路径上所有交换机上的MAC地址与交换机端口的对应关系。
步骤S3、SDN控制器通过流表指令集将绑定关系实时动态下发到转发路径上的交换机,更新交换机上的目的MAC地址和端口绑定关系表,绑定MAC地址与交换机端口。
所述的流表指令集是二级流表,二级流表是指首先匹配MAC地址,然后再匹配端口。
所述的流表指令集包含零级流表和一级流表。
所述的零级流表包含:
匹配字段:目的MAC地址;
指令字段:转一级流表。
所述的一级流表包含:
匹配字段:端口;
指令字段:二层转发。步骤S4、当交换机接收到二层报文时,判断二层报文的源MAC地址是否与SDN控制器发送的零级流表中的目的MAC地址信息匹配,如果是,进行步骤S5,如果否,说明该源MAC地址没有绑定交换机端口,交换机学习该源MAC地址,并将源MAC地址信息和端口信息上报给SDN控制器,然后交换机对该二层报文进行正常的二层转发;
步骤S5、交换机判断二层报文的端口是否与一级流表中的端口信息匹配,如果是,说明该源MAC地址是合法的,符合目的MAC地址和端口绑定关系表中限定的绑定关系,则交换机对该二层报文进行正常的二层转发,如果否,说明该源MAC地址不符合目的MAC地址和端口绑定关系表中限定的绑定关系,是欺骗的MAC地址,将该二层报文丢弃。
所述的步骤S2中,交换机上报的MAC地址信息包含:交换机学习MAC地址信息,以及交换机老化MAC地址信息。
交换机学习一条MAC地址,需立即上报给SDN控制器,交换机老化一条MAC地址,也需立即上报给SDN控制器。
交换机老化MAC地址并上报SDN控制器的过程包含以下步骤:
如果交换机在超过设定的老化时间还未收到过已经绑定的MAC地址发送的二层报文,则将老化MAC地址信息上报给SDN控制器。
如图4所示,SDN控制器对老化MAC地址进行处理的过程包含以下步骤:
步骤S2.1、SDN控制器接收到交换机上报的老化MAC地址信息后,判断是否继续保持绑定关系,如果是,则SDN控制器不做任何处理,如果否,则进行步骤S2.2。
步骤S2.2、SDN控制器判断该MAC地址是否在整条报文转发路径上都老化了(即,整条报文转发路径上的交换机都上报了老化MAC地址信息),如果是,进行步骤S2.3,如果否,则SDN控制器不做任何处理。
步骤S2.3、SDN控制器判断是否解除MAC地址和交换机端口的绑定关系,如果是,SDN控制器对整条报文转发路径上的交换机下发流表指令集,更新交换机上的目的MAC地址和端口绑定关系表 ,解除MAC地址和交换机端口的绑定关系,如果否,SDN控制器保持MAC地址和交换机端口的绑定关系。
如果MAC地址在整条报文转发路径上都老化了,则缺省配置是解除MAC地址和交换机端口的绑定关系。
如果MAC地址在整条报文转发路径上都老化了,且SDN控制器决定保持MAC地址和交换机端口的绑定关系,但用户基于整个动态网络删除MAC地址和交换机端口的绑定关系或者基于整个动态网络解除所有MAC地址和端口的绑定关系,则此时不再保持MAC地址和交换机端口的绑定关系。
本发明采用了SDN架构感知报文的转发路径和网络变化,实现MAC地址与交换机端口的动态绑定,从而实现全网防MAC地址欺骗,使得整个网络的管理和配置非常简单和智能,一旦MAC地址老化,SDN控制器会根据老化的策略,解除绑定关系或维护原有绑定关系,从而释放流表资源,最大化地有效地管理整个SDN网络。
尽管本发明的内容已经通过上述优选实施例作了详细介绍,但应当认识到上述的描述不应被认为是对本发明的限制。在本领域技术人员阅读了上述内容后,对于本发明的多种修改和替代都将是显而易见的。因此,本发明的保护范围应由所附的权利要求来限定。