1.一种IP地址分配方法,其特征在于,其步骤包括:
步骤1):DHCP服务器按MAC-IP的静态地址分配策略为待部署设备分配IP地址;配置DHCP中继并存储配置信息,DHCP中继配置信息包括:机房及机架号、用于连接待部署设备的入端口列表、为连接到该DHCP中继的待部署设备分配IP地址的范围;
步骤2):周期性扫描DHCP中继,并向DHCP中继发起查看待部署设备的MAC地址的请求,将DHCP中继扫描到的MAC地址与已存储的MAC地址表项比较,将未存储的MAC地址进行存储;
步骤3):待部署设备上电并周期性发送DHCP请求,DHCP服务器收到DHCP请求,根据待部署设备的MAC地址查找是否有匹配的IP地址;若存在,DHCP服务器根据请求的待部署设备MAC地址分配指定的IP地址;若不存在,DHCP服务器不响应地址请求;
步骤4):由于步骤2周期性扫描DHCP中继,步骤3中待部署设备上电后就会发现新的待部署设备MAC地址到达DHCP中继,根据该MAC地址,结合步骤1)的机房及机架号,及该MAC地址接入的DHCP中继入端口并结合IP范围分配一个与机房及机架位置关联的IP地址,生成一个MAC-IP预分配项后存储,并写入DHCP服务器;
步骤5):由于步骤3待部署设备的周期性DHCP请求,及步骤4中已经写入DHCP服务器的MAC-IP预分配项,在步骤3某个待部署设备发送DHCP请求时,DHCP服务器把预分配好的MAC-IP项通过DHCP协议交互过程分配给待部署设备,待部署设备获得IP地址。
2.根据权利要求1所述的IP地址分配方法,其特征在于:所述步骤4)的预分配项={L:
机房及机架号,A:接入的DHCP中继,P:接入DHCP中继的入端口,M:待部署设备的MAC地址,I:预分配的IP地址,S:预分配状态,T:预分配生成时间戳},其中,预分配状态S包括[分配中]、[已分配]、[忽略]、[候选]和[分配失败]。
3.根据权利要求2所述的IP地址分配方法,其特征在于:所述步骤2)具体为:轮询接入到DHCP中继入端口上来的新待部署设备的MAC地址,查看该MAC地址的入端口是否在DHCP中继的入端口列表中;如果不在,则直接放弃该待部署设备的分配处理;如果在,则进行如下分支处理:分支一,轮询检查发现,不存在该待部署设备的预分配项,则新建一个预分配项,预分配状态S=[分配中],进行分配处理;
分支二,轮询检查发现,存在该待部署设备的预分配项,且状态记录为[分配中],则新建一个预分配项,预分配状态S=[候选];
分支三,轮询检查发现,存在该待部署设备的预分配项,且状态记录为[已分配],则新建一个预分配项,预分配状态S=[忽略];
分支四,轮询检查发现,存在该待部署设备的预分配项,但状态记录为[分配失败],则新建一个预分配项,预分配状态S=[分配中],继续为待部署设备,提供一次预分配过程。
4.根据权利要求3所述的IP地址分配方法,其特征在于:所述分配方法还包括:
步骤6):读取预分配状态S=[分配中]的预分配项,通过与待部署设备检查校对,确认分配是否已经完成及分配的正确性;对于分配完成且正确的预分配项,修改预分配状态为已分配;对于分配超时的或校验失败的,修改预分配状态为分配失败。
5.一种IP地址分配系统,应用于动态主机配置协议DHCP服务器,其特征在于:所述分配系统包括注册模块、存储模块、轮询模块和分配模块;
注册模块,用于配置DHCP中继;
存储模块,用于存储IP地址分配过程中的数据,所述数据包括:注册模块的DHCP中继配置信息、分配模块的预分配项;所述DHCP中继配置信息包括:机房及机架号、用于连接待部署设备的入端口列表、为连接到该DHCP中继的待部署设备分配IP地址的范围;
轮询模块,用于周期性从存储模块获取DHCP中继信息,并向DHCP中继发起查看待部署设备的MAC地址的请求,将DHCP中继扫描到的MAC地址与已存储的MAC地址表项比对,识别出该MAC地址的状态;
分配模块,用于根据待部署设备的MAC地址,结合DHCP中继的机房及机架号,及该MAC地址接入的DHCP中继入端口并结合IP范围分配一个与机房及机架位置关联的IP地址,生成一个MAC-IP预分配项后存储至存储模块,并写入DHCP服务器。
6.根据权利要求5所述的IP地址分配系统,其特征在于:所述分配模块产生的预分配项={L:机房及机架号,A:接入的DHCP中继,P:接入DHCP中继的入端口,M:待部署设备的MAC地址,I:预分配的IP地址,S:预分配状态,T:预分配生成时间戳},其中,预分配状态S包括[分配中]、[已分配]、[忽略]、[候选]和[分配失败]。
7.根据权利要求6所述的IP地址分配系统,其特征在于:所述分配系统还包括检查模块,所述检查模块用于从存储模块读取预分配状态S=[分配中]的预分配项,通过与待部署设备检查校对,确认分配是否已经完成及分配的正确性;对于分配完成且正确的预分配项,修改预分配状态为已分配;对于分配超时的或校验失败的,修改预分配状态为分配失败。