一种基于SDN的防止DHCP欺骗的方法与流程

文档序号:11180645阅读:902来源:国知局
一种基于SDN的防止DHCP欺骗的方法与流程

本发明属于计算机数据通信的技术领域,具体涉及一种基于sdn的防止dhcp欺骗的方法。



背景技术:

sdn最早起源于斯坦福大学的一个叫做cleanslate的校园项目。它是一种创新型的网络体系架构,其核心思想是把转发平面和控制平面进行分离,通过集中式的控制器controller使用标准的接口来对各种不同的网络设备进行配置和管理,使得对网络的管理更加集中化、精细化。

dhcp是用于向网络中的计算机分配ip地址及一些tcp/ip配置信息,dhcp提供了安全、可靠且简单的tcp/ip网络设置,避免了tcp/ip网络地址的冲突,同时大大降低了工作负担。dhcp工作原理是客户机从服务器获取ip的四个租约过程,客户机请求ip,服务器相应请求,客户机选择ip,服务器确定租约。

从dhcp工作原理可以看出,如果客户端是第一次、重新登录或租期已满不能更新租约,客户端都是以广播的方式来寻找服务器,并且只接收第一个到达的服务器提供的网络配置参数,如果在网络中存在多台dhcp服务器(有一台或更多台是非授权的),谁先应答,客户端就采用其提供的网络配置参数。假如非授权的dhcp服务器先应答,这样客户端最后获得的网络参数即是非授权的,客户端即被欺骗了。而在实际应用dhcp的网络中,基本上都会采用dhcp中继,这样的话,本网络的非授权dhcp服务器一般都会先于其余网络的授权dhcp服务器的应答(由于网络传输的延迟),在这样的应用中,dhcp欺骗更容易实现。



技术实现要素:

本发明的目的在于针对现有技术中的上述不足,提供一种基于sdn的防止dhcp欺骗的方法,以解决现有的dhcp部署允许存在多个dhcp服务器和容易植入恶意dhcp服务器问题。

为达到上述目的,本发明采取的技术方案是:

一种基于sdn的防止dhcp欺骗的方法,包括

步骤s1,sdn控制器接收dhcp数据报文的二层数据帧;

步骤s2,比较二层数据帧的源mac与dhcp数据报中的chaddr字段中的源mac;

步骤s3,当两者相等时,提取二层数据帧的源mac,并与mac-port映射表中的mac做匹配;

步骤s4,当不匹配时,将dhcp数据报文做drop处理;

步骤s5,根据流表统计信息,统计每个端口接收到的dhcp请求报文的流量,建立物理机黑名单,并将黑名单内的物理机端口发出的dhcp报文直接下发drop;

步骤s6,将sdn控制器记录的dhcp服务器所在的物理端口和mac地址,建立为白名单,将非白名单发出的dhcp请求报文回复全部丢弃。

优选地,当dhcp数据报文由udp端口67发出并传输到sdn交换机的接口时,sdn交换机检测到该dhcp数据报匹配流表项不成功,sdn交换机将该dhcp数据报发送至sdn控制器,并做步骤s1处理。

优选地,根据步骤s2中比较结果显示两个mac的地址不同,丢弃该dhcp数据报文,若相同,进入步骤s3中处理。

优选地,mac-port映射表为根据当前拓扑网络,存入的对应物理机的mac地址和port端口。

优选地,物理机黑名单用于记录当前物理机所在端口和其mac地址。

优选地,白名单为sdn控制器记录的当前网络中所有dhcp服务器所在的物理端口及mac地址。

本发明提供的基于sdn的防止dhcp欺骗的方法,具有以下有益效果:

本发明配置sdn网络,在sdn网络中,利用dhcp服务器的配置信息,将dhcp服务器部署在sdn网络中,首先通过dhcp数据报二层帧的源mac与该dhcp数据报中的chaddr字段中的源mac比较,首次判断出伪造的dhcp数据报;进而继续通过提取dhcp数据报文中二层帧的源mac,并与mac-port映射表中的mac做匹配,若匹配不上,则将对此报文下发做drop处理;除此,建立物理机黑名单和白名单,防止恶意的攻击,有效的解决了现有的dhcp部署允许存在多个dhcp服务器和容易植入恶意dhcp服务器的问题。

附图说明

图1为基于sdn的防止dhcp欺骗的方法的流程图。

图2为基于sdn的防止dhcp欺骗的方法的原理框图。

具体实施方式

下面对本发明的具体实施方式进行描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。

根据本申请的一个实施例,如图1-2所示,本方案的基于sdn的防止dhcp欺骗的方法。

配置sdn网络,在sdn网络中,利用dhcp服务器的配置信息,将dhcp服务器部署在sdn网络中,其具体操作步骤如下。

步骤s1,当dhcp数据报由udp端口67发出并传输到sdn交换机的接口时,sdn交换机检测到该dhcp数据报匹配流表项不成功,sdn交换机将该dhcp数据报发送至sdn控制器,sdn控制器接收dhcp数据报的二层数据帧。

步骤s2,sdn控制器对步骤s1中接收到的dhcp数据报的二层数据帧进行检查判断,将二层帧的源mac与dhcp数据报中的chaddr字段中的源mac比较,如果两者不相等,则断定该dhcp数据报是一个伪造的数据报;如果两个mac地址相同,转到步骤s3中继续判断。

步骤s3,根据步骤s2中比较的结果,当结果相等时,查看当前拓扑网络,将物理机的mac地址和port端口存入mac-port映射表中,sdn控制器提取dhcp数据报文中二层帧的源mac,并与mac-port映射表中的mac做匹配。

步骤s4,根据步骤s3中匹配的结果,当结果不匹配时,将该dhcp数据报文做drop处理。

步骤s5,根据流表统计信息统计从每个端口接收到的dhcp请求报文的流量情况,建立物理机黑名单,并将黑名单内的物理机端口发出的dhcp报文直接下发drop。

步骤s6,将控制器中记录的当前网络中所有dhcp服务器所在的物理端口及mac地址设置为白名单,只允许dhcpoffer和dhcpack消息由白名单里的信任端口发出回复报文,从其他非信任端口发出的这些dhcp回复请求报文全部丢弃,避免非授权dhcp服务器欺骗攻击。

本发明通过配置sdn网络,在sdn网络中利用dhcp服务器的配置信息,将dhcp服务器部署在sdn网络中。客户在请求访问dhcp服务器时,对源udp端口68大于一定请求次数的主机mac地址,便将此次mac地址列为黑名单,防止恶意攻击。其次,访问请求到达sdn时,sdn控制器会先对此请求进行认证,sdn控制器也会生成对dhcp服务器的白名单。dhcp服务器收到sdn认证后的请求并作出响应,sdn控制器对源udp端口67的响应报文进行比对,如果本次响应的服务器不在dhcp服务器的白名单中,则丢弃该报文,防止dhcp欺骗的发生。

虽然结合附图对发明的具体实施方式进行了详细地描述,但不应理解为对本专利的保护范围的限定。在权利要求书所描述的范围内,本领域技术人员不经创造性劳动即可做出的各种修改和变形仍属本专利的保护范围。

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