一种ip地址分配的方法和装置制造方法

文档序号:7808574阅读:118来源:国知局
一种ip地址分配的方法和装置制造方法
【专利摘要】本发明提供IP地址分配的方法及装置,所述方法包括:接收来自SDN交换机转发的客户端DHCP报文;根据客户端发送的DHCP报文的不同类型,生成对应的不同响应报文。应用本发明实施例可以实现为不同IP子网中的客户端分配IP地址,解决了一台DHCP服务器只能为一个子网中的客户端分配IP地址的问题。
【专利说明】一种IP地址分配的方法和装置

【技术领域】
[0001] 本发明涉及通信【技术领域】,特别是涉及一种IP地址分配的方法和装置。

【背景技术】
[0002] 随着网络规模的扩大和网络复杂度的提高,网络配置越来越复杂,经常出现计算 机位置变化(如便携机或无线网络)和计算机数量超过可分配的IP地址的情况,这时需要 用到动态主机配置协议(Dynamic Host Configuration Protocol, DHCP)为客户端分配IP 地址。


【发明内容】

[0003] 本发明提供一种IP地址分配的方法及装置,将现有的依据DHCP协议为客户端分 配IP地址的过程在SDN(Software Defined Network,软件定义网络)网络中实现。
[0004] 根据本发明实施例的第一方面,提供一种IP地址分配的方法,所述方法应用在 SDN中的控制器上,所述方法包括:
[0005] 接收来自SDN交换机转发的客户端DHCP报文;
[0006] 根据客户端发送的DHCP报文的不同类型,生成对应的不同响应报文。
[0007] 根据本发明实施例的第二方面,提供一种IP地址分配的方法,所述方法应用在 SDN中的交换机上,所述方法包括:
[0008] 接收来自客户端的DHCP报文,若在预置的流表中匹配到所述DHCP报文的流表项, 则根据预设规则进行处理;若在预置的流表中未匹配到所述DHCP报文的流表项,则将所述 DHCP报文封装为输入数据包发送至SDN控制器;
[0009] 接收来自SDN控制器的报文,若所述控制器报文为客户端的DHCP报文对应的响应 报文,则将所述响应报文转发至对应的客户端。
[0010] 根据本发明实施例的第三方面,提供一种IP地址分配的装置,所述装置应用在 SDN中的控制器上,所述装置包括:
[0011] 报文接收模块,用于接收来自SDN交换机转发的客户端DHCP报文;
[0012] 报文响应模块,用于根据客户端发送的DHCP报文的不同类型,生成对应的不同响 应报文。
[0013] 根据本发明实施例的第四方面,提供一种IP地址分配的装置,所述装置应用在 SDN中的交换机上,所述装置包括:
[0014] 客户端报文处理模块,用于接收来自客户端的DHCP报文,若在预置的流表中匹配 到所述DHCP报文的流表项,则根据预设规则进行处理;若在预置的流表中未匹配到所述 DHCP报文的流表项,则将所述DHCP报文封装为输入数据包发送至SDN控制器;
[0015] 控制器报文处理模块,用于接收来自SDN控制器的报文,若所述控制器报文为客 户端的DHCP报文对应的响应报文,则将所述响应报文转发至对应的客户端。
[0016] 由本发明实施例可见,SDN控制器掌握着全局IP子网的配置信息,因此能够根据 DHCP报文转发的路径和端口得知客户端的位置,从而能够为不同IP子网中的客户端分配 正确的IP地址,解决了现有技术中一台DHCP服务器只能为一个子网中的客户端分配IP地 址的问题。

【专利附图】

【附图说明】
[0017] 图1示出了本发明IP地址分配方法的一个实施例流程图。
[0018] 图2示出了本发明IP地址分配方法的另一个实施例流程图。
[0019] 图3示出了本发明IP地址分配方法的另一个实施例流程图。
[0020] 图4示出了本发明IP地址分配装置所在设备的一种硬件结构图。
[0021] 图5示出了本发明IP地址分配装置的一个实施例框图。
[0022] 图6示出了本发明IP地址分配装置的另一个实施例框图。

【具体实施方式】
[0023] 这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及 附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例 中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附 权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。DHCP是一个局域 网的网络协议,用于给内部网络或网络服务供应商自动分配IP地址。具体实现DHCP客户 端向DHCP服务器请求分配IP地址的过程如下:
[0024] 1)发现阶段,DHCP客户端发送DHCP Discover发现报文在网络上寻找DHCP服务 器;
[0025] 2)提供阶段,DHCP服务器向DHCP客户端发送一个包含出租的IP地址和其他设置 的DHCP Offer提供报文;
[0026] 3)选择阶段,如果有多台DHCP服务器向DHCP客户端发来DHCP Offer提供报文, 则DHCP客户端只接受第一个接收到的DHCP Offer提供报文,然后它就以广播方式回答一 个DHCP Request确认报文,该信息中包含向它所选定的DHCP服务器请求IP地址的内容;
[0027] 4)确认阶段,当DHCP服务器收到DHCP客户端回答的DHCP Request确认报文之 后,它便向DHCP客户端发送一个包含它所提供的IP地址和其他设置的DHCP Ack确认响应 报文,告诉DHCP客户端可以使用它所提供的IP地址。DHCP客户端在收到DHCP Ack确认响 应报文后,发送ARP报文到网络上,用来确定DHCP服务器提供的IP地址是否已经被其它客 户端所占用。如果已被别的客户端占用,则发送给DHCP服务器一个DHCP Decline包,重新 开始DHCP过程;如果没有被占用,则DHCP过程结束,DHCP客户端正式使用该IP地址;
[0028] 5)重新登陆,以后DHCP客户端每次重新登录网络时,就不需要再发送DHCP Discover发现报文了,而是直接发送包含前一次所分配的IP地址的DHCP Request确认报 文;
[0029] 6)更新租约,DHCP服务器向DHCP客户端出租的IP地址一般都有一个租借期限, 期满后DHCP服务器便会收回出租的IP地址。如果DHCP客户端要延长其IP租约,则必须 更新其IP租约。
[0030] 由上述DHCP工作流程可以看出,DHCP协议基本上是一个单向驱动协议,DHCP服务 器完全是被动的,其动作基本由DHCP客户端的请求行为而触发。这会带来如下三个问题:
[0031] (1) DHCP服务器不能发现网络上非DHCP客户端已经在使用的IP地址,这将可能带 来二次及以上的DHCP过程。多次DHCP过程增加了网络上数据包的传送量,加重了网络的 负载。
[0032] (2) DHCP服务器不具备鉴别主机身份的能力,这会带来严重的安全隐患,若恶意主 机假冒DHCP服务器向网络主机提供虚假配置信息,或者恶意主机假冒客户端向DHCP服务 器请求大量IP地址使IP地址池枯竭,都将带来严重的后果。
[0033] (3)DHCP的实现方式只适用于DHCP客户端和服务器处于同一个子网内的情况。
[0034] 为了解决上述DHCP分配IP地址的缺点和不足,本发明利用SDN网络中控制平面 和转发平面分离的架构特点。利用SDN控制平面充当DHCP服务器,同时在SDN控制平面上 进一步部署经过优化的DHCP服务,使得所述SDN控制平面能够用来进行客户端IP地址分 配、主机身份鉴定等功能;SDN转发平面则进行DHCP报文的监听和转发等。在实现时,SDN 中的控制平面功能由控制器(Controller)实现,控制器主要通过流表项向交换机下发报 文转发策略;数据转发平面的功能由交换机(Switch)实现,主要用于按照控制器下发的流 表项对报文进行转发。在一种可选的实现方案中,其可以通过OpenFlow(开放流)技术将 网络设备的控制面与数据面进行分离,从而实现对网络流量的灵活控制。
[0035] 为了便于理解,下面首先对SDN网络中的基本概念加以说明:
[0036] SDN控制器:是SDN架构中的控制平面,通过对SDN交换机中的流表进行控制,从 而实现对整个SDN网络进行集中控制。
[0037] SDN交换机:接收SDN控制器设置的流表,并根据流表进行报文转发和处理;另一 方面,也会主动向SDN控制器上报本设备的状态和事件,如接口 UP (可用)/DOWN (可不用)。
[0038] 流表:由匹配规则(Rule)、动作(Action)和统计(Statistics)三部分组成。
[0039] 匹配规则包括:SDN交换机端口(switch port)、VLAN ID (标识)、源MAC地址、目 的MAC地址、以太网类型、源IP地址、目的IP地址、IP协议、TCP (Transmission Control Protocol,传输控制协议)源端口、TCP目标端口等。
[0040] 动作:每一个流表项关联一个如何处理匹配该流表项的报文的动作序列,该动作 序列可以由〇个或多个执行动作组成,在对报文进行转发处理时必须按照各个执行动作的 顺序来处理。如果流表项没有关联任何执行动作,则丢弃匹配该流表项的报文。SDN交换机 不需要支持所有的动作类型,但如果SDN交换机不支持某个动作,则必须向SDN控制器返回 错误。SDN交换机与SDN控制器建立连接之后,要协商双方支持的动作类型。动作具体可以 是:转发报文到一个或多个端口,封装报文并转发给SDN控制器,丢弃报文,修改报文内容 等。
[0041] 参见表1为流表结构的一个具体示例:
[0042]

【权利要求】
1. 一种IP地址分配的方法,其特征在于,所述方法应用在软件定义网络SDN中的控制 器上,所述方法包括: 接收来自SDN交换机转发的客户端DHCP报文; 根据客户端发送的DHCP报文的不同类型,生成对应的不同响应报文。
2. 如权利要求1所述的方法,其特征在于,所述根据所述DHCP报文的不同类型,生成对 应的响应报文,具体包括: 若所述DHCP报文的类型为DHCP Discover报文,则为所述客户端分配一个IP地址,并 生成包含该分配的IP地址的DHCP Offer响应报文; 若所述DHCP报文的类型为DHCP Request报文,则为所述客户端生成对应的DHCP Ack 或DHCP Nack报文;其中,当确定所述DHCP Request报文中包括的IP地址可以使用,则生 成DHCP Ack报文,若确定所述IP地址不可使用,则生成DHCP Nack报文。
3. 如权利要求2所述的方法,其特征在于,所述生成包含该分配的IP地址的DHCP Offer响应报文之前,还包括: 向网络中的所有客户端发送冲突检测报文询问当前分配的IP地址是否正在被使用; 判断在预设时间内是否接收到来自客户端对于所述冲突检测报文回复的冲突响应报 文,若收到,则为所述客户端重新分配IP地址并重新执行上述步骤。
4. 如权利要求2所述的方法,其特征在于,所述为所述客户端分配一个IP地址之前,还 包括: 若所述DHCP报文的类型为DHCP Offer、DHCP Ack、DHCP Nack报文时,则丢弃所述DHCP 报文。
5. 如权利要求2所述的方法,其特征在于,所述方法还包括: 设置流表,所述流表中设置有以下过滤规则:当接收到DHCP客户端报文的源端口号为 67、目的端口号为68时,则动作Action设置为丢弃当前匹配的报文; 将所述流表下发至对应的SDN交换机。
6. 如权利要求2所述的方法,其特征在于,所述生成DHCP Ack响应报文后,还包括: 生成DHCP客户端身份识别报文,其中所述身份识别报文包括目标客户端当前使用的 目标IP地址; 将所述身份识别报文封装成Packet out报文发送至对应的SDN交换机; 判断在预设时间范围内是否收到所述目标客户端对所述身份识别报文回复的身份响 应报文,若未收到,则确定所述目标客户端为非法DHCP客户端,回收所述目标客户端的目 标IP地址,并将所述目标客户端加入黑名单; 向SDN交换机下发流表,设置在预设的时间范围内,对来自黑名单中客户端发送的报 文进行丢弃。
7. -种IP地址分配的方法,其特征在于,所述方法应用在软件定义网络SDN中的交换 机上,所述方法包括: 接收来自客户端的DHCP报文,若在预置的流表中匹配到所述DHCP报文的流表项,则根 据预设规则进行处理;若在预置的流表中未匹配到所述DHCP报文的流表项,则将所述DHCP 报文封装为输入数据包发送至SDN控制器; 接收来自SDN控制器的报文,若所述控制器报文为客户端的DHCP报文对应的响应报 文,则将所述响应报文转发至对应的客户端。
8. 如权利要求7所述的方法,其特征在于,所述根据预设规则进行处理,具体包括: 若所述DHCP报文的源端口号为67、目的端口号为68,则丢弃所述DHCP报文。
9. 如权利要求7所述的方法,其特征在于,所述接收来自SDN控制器的报文之后,还包 括: 若所述控制器报文为预分配的IP地址的冲突检测报文,则将所述冲突检测报文转发 至对应的所有客户端; 若接收到客户端对所述冲突检测报文回复的冲突响应报文,则将所述冲突响应报文封 装为输入数据包发送至SDN控制器。
10. 如权利要求7所述的方法,其特征在于,所述接收来自SDN控制器的报文之后,还包 括: 接收控制器发送的身份识别报文,将所述身份识别报文发送至对应的客户端,并在判 断出所述客户端为非法DHCP客户端时,接收控制器下发的关于该客户端的DHCP报文过滤 流表,在预定时间内,对接收到该客户端发送的报文直接进行丢弃处理。
11. 一种IP地址分配的装置,其特征在于,所述装置应用在软件定义网络SDN中的控制 器上,所述装置包括: 报文接收模块,用于接收来自SDN交换机转发的客户端DHCP报文; 报文响应模块,用于根据客户端发送的DHCP报文的不同类型,生成对应的不同响应报 文。
12. 如权利要求11所述的装置,其特征在于,所述报文响应模块具体包括: 地址分配单元,用于判断所述DHCP报文的类型是否为DHCP Discover报文,若是,则为 所述客户端分配一个IP地址,并生成包含该分配的IP地址的DHCP Offer响应报文; 地址确认单元,用于判断所述DHCP报文的类型是否为DHCP Request报文,若是,则为 所述客户端生成对应的DHCP Ack或DHCP Nack报文;其中,当确定所述DHCP Request报 文中包括的IP地址可以使用,则生成DHCP Ack报文,若确定所述IP地址不可使用,则生成 DHCP Nack 报文。
13. 如权利要求11所述的装置,其特征在于,所述装置还包括: 冲突检测模块,用于向网络中的所有客户端发送冲突检测报文询问当前分配的IP地 址是否正在被使用;判断在预设时间内是否接收到来自客户端对于所述冲突检测报文回复 的冲突响应报文,若收到,则为所述客户端重新分配IP地址并重新执行上述步骤。
14. 如权利要求11所述的装置,其特征在于,所述装置还包括: 报文过滤模块,用于判断所述DHCP报文的类型是否为DHCP Offer、DHCP Ack、DHCP Nack报文,若是,则丢弃所述DHCP报文。
15. 如权利要求11所述的装置,其特征在于,所述装置还包括: 流表设置模块,用于设置流表,所述流表中设置有以下过滤规则:当接收到DHCP客户 端报文的源端口号为67、目的端口号为68时,则动作Action设置为丢弃当前匹配的报文; 将所述流表下发至对应的SDN交换机。
16. 如权利要求11所述的装置,其特征在于,所述装置还包括: 识别处理模块,用于生成DHCP客户端身份识别报文,其中所述身份识别报文包括目标 客户端当前使用的目标IP地址;将所述身份识别报文封装成Packet out报文发送至对应 的SDN交换机;判断在预设时间范围内是否收到所述目标客户端对所述身份识别报文回复 的身份响应报文,若未收到,则确定所述目标客户端为非法DHCP客户端,回收所述目标客 户端的目标IP地址,并将所述目标客户端加入黑名单;向SDN交换机下发流表,设置在预设 的时间范围内,对来自黑名单中客户端发送的报文进行丢弃。
17. -种IP地址分配的装置,其特征在于,所述装置应用在软件定义网络SDN中的交换 机上,所述装置包括: 客户端报文处理模块,用于接收来自客户端的DHCP报文,若在预置的流表中匹配到所 述DHCP报文的流表项,则根据预设规则进行处理;若在预置的流表中未匹配到所述DHCP报 文的流表项,则将所述DHCP报文封装为输入数据包发送至SDN控制器; 控制器报文处理模块,用于接收来自SDN控制器的报文,若所述控制器报文为客户端 的DHCP报文对应的响应报文,则将所述响应报文转发至对应的客户端。
18. 如权利要求17所述的装置,其特征在于,所述根据预设规则进行处理,具体为:若 所述DHCP报文的源端口号为67、目的端口号为68,则丢弃所述DHCP报文。
19. 如权利要求17所述的装置,其特征在于,所述装置还包括: 冲突检测模块,用于判断所述控制器报文是否为预分配的IP地址的冲突检测报文,若 是,则将所述冲突检测报文转发至对应的所有客户端;若接收到客户端对所述冲突检测报 文回复的冲突响应报文,则将所述冲突响应报文封装为输入数据包发送至SDN控制器。
20. 如权利要求17所述的方法,其特征在于,所述装置还包括: 识别处理模块,用于接收控制器发送的身份识别报文,将所述身份识别报文发送至对 应的客户端,并在判断出所述客户端为非法DHCP客户端时,接收控制器下发的关于该客户 端的DHCP报文过滤流表,在预定时间内,对接收到该客户端发送的报文直接进行丢弃处 理。
【文档编号】H04L12/28GK104104744SQ201410326287
【公开日】2014年10月15日 申请日期:2014年7月9日 优先权日:2014年7月9日
【发明者】江玉八 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1