一种地址分配方法及装置与流程

文档序号:13763552阅读:110来源:国知局
本发明涉及网络通信
技术领域
,尤其涉及一种地址分配方法及装置。
背景技术
:SDN(SoftwareDefinedNetwork,软件定义网络)是一种新型的网络创新架构,通过将控制平面和数据平面分离,实现网络流量的灵活控制。SDN网络由控制器和交换设备组成。用户终端发送的DHCP(DynamicHostConfigurationProtocol,动态主机配置协议)报文由交换设备转发给控制器集中应答,即由控制器为用户终端分配IP(InternetProtocol,网际协议)地址。当控制器故障或者交换设备与控制器之间的通信链路故障时,用户终端无法获取IP地址。技术实现要素:本发明的目的在于提供一种地址分配方法及装置,用以在交换设备与控制器断连时,由网关设备对用户终端的DHCP请求进行应答。为实现上述发明目的,本发明提供了技术方案:本发明提供一种地址分配方法,应用于交换设备上,该方法包括:接收用户终端发送的动态主机配置协议DHCP请求报文;当检测与控制器的连接断开时,将所述DHCP请求报文上送网关设备;向所述用户终端转发所述网关设备根据所述DHCP请求报文回应的DHCP响应报文,所述DHCP响应报文中携带分配给所述用户终端的网际协议IP地址。本发明还提供一种地址分配方法,应用于网关设备上,该方法包括:接收控制器同步的地址分配信息,所述地址分配信息包括虚拟交换实例与地址段以及地址段内地址表项的对应关系,所述地址表项用于记录已分配IP地址与MAC地址的对应关系;接收交换设备转发的DHCP请求报文,所述DHCP请求报文中携带用户终端的MAC地址;判断是否存在包含所述用户终端的MAC地址的地址表项;当存在包含所述用户终端的MAC地址的地址表项时,将该地址表项中的IP地址分配并发送给所述用户终端;当不存在包含所述用户终端的MAC地址的地址表项时,根据所述DHCP请求报文所属的虚拟交换实例确定用户终端所属地址段,从所述用户终端所属地址段选择未分配的IP地址分配并发送给所述用户终端。本发明还提供一种地址分配装置,应用于交换设备上,该装置包括:报文接收单元,用于接收用户终端发送的动态主机配置协议DHCP请求报文;报文上送单元,用于当检测与控制器的连接断开时,将所述DHCP请求报文上送网关设备;报文回应单元,用于向所述用户终端转发所述网关设备根据所述DHCP请求报文回应的DHCP响应报文,所述DHCP响应报文中携带分配给所述用户终端的网际协议IP地址。本发明还提供一种地址分配装置,应用于网关设备上,该装置包括:地址同步单元,用于接收控制器同步的地址分配信息,所述地址分配信息包括虚拟交换实例与地址段以及地址段内地址表项的对应关系,所述地址表项用于记录已分配IP地址与MAC地址的对应关系;报文接收单元,用于接收交换设备转发的DHCP请求报文,所述DHCP请求报文中携带用户终端的MAC地址;表项判断单元,用于判断是否存在包含所述用户终端的MAC地址的地址表项;第一分配单元,用于当存在包含所述用户终端的MAC地址的地址表项时,将该地址表项中的IP地址分配并发送给所述用户终端;第二分配单元,用于当不存在包含所述用户终端的MAC地址的地址表项时,根据所述DHCP请求报文所属的虚拟交换实例确定用户终端所属地址段,从所述用户终端所属地址段选择未分配的IP地址分配并发送给所述用户终端。由以上描述可以看出,本发明通过网关设备对用户终端DHCP请求进行应答,使用户终端在交换设备与控制器断连时仍可获取到IP地址,提高了SDN网络的可靠性。附图说明图1是本发明实施例示出的SDN网络的示意图;图2是本发明一个实施例示出的地址分配方法流程图;图3是本发明另一个实施例示出的地址分配方法流程图;图4是本发明实施例示出的地址分配装置所在设备的结构示意图;图5是本发明一个地址分配装置的结构示意图;图6是本发明另一个地址分配装置的结构示意图。具体实施方式这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。在本发明使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。应当理解,尽管在本发明可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本发明范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。本发明实施例提出一种地址分配方法,该方法在交换设备与控制器断连时,由网关设备对用户终端的DHCP请求进行应答,从而使用户终端正常获取IP地址。参见图1,为本发明实施例示出的SDN网络示意图。该SDN网络包括控制器Controller、网关GW、虚拟机VM1~VM6(本实施例中,也将虚拟机称为终端设备)以及交换设备SW和OVS,其中,SW为物理交换设备,OVS为虚拟交换设备。参见图2,为本发明地址分配方法的一个实施例流程图,该实施例从交换设备侧对地址分配过程进行描述。步骤201,接收用户终端发送的DHCP请求报文。用户终端发送的DHCP请求报文(例如,DHCPDiscover报文)首先到达与用户终端直连的交换设备。该交换设备在对DHCP请求报文进行处理之前,需要预先接受控制器的配置。其中,交换设备的类型不同,其配置方式也不同。具体为,当交换设备为虚拟交换设备时,接收控制器下发的第一上送流表项,该第一上送流表项用于指示将DHCP请求报文上送网关设备,参见表1,为第一上送流表项示例,匹配该第一上送流表项的DHCP请求报文会上送网关设备处理。匹配项动作项DHCP请求报文的报文特征上送网关设备表1此外,交换设备中还存在第二上送流表项,该第二上送流表项用于指示将DHCP请求报文上送控制器。在正常工作情况(交换设备与控制器的连接未断开)下,DHCP请求报文匹配第二上送流表项上送控制器处理。为了使DHCP请求报文优先匹配第二上送流表项,本发明实施例设置第一流表项的优先级低于第二流表项的优先级,即正常情况下由控制器对用户终端的DHCP请求报文进行应答。当交换设备为物理交换设备时,接收控制器下发的模式配置,例如,在openflow(交换设备与控制器之间通过openflow连接)实例里面下发如下配置:openflowinstance1//openflow实例1fail-openmodestandalone//在检测openflow连接断开时,变成标准模式上述模式配置用于使物理交换设备在检测与控制器之间的连接断开时,从流表转发模式变成标准模式。其中,流表转发模式是指报文基于流表项转发,由于物理交换设备中有DHCP请求报文上送控制器的流表项,因此,在流表转发模式下,DHCP请求报文会匹配对应流表项上送控制器处理;标准模式是指报文基于MAC地址/IP地址转发(即通常所说的二层转发/三层转发),此时交换设备内的所有流表项(包括DHCP请求报文上送控制器的流表项)失效。步骤202,当检测与控制器的连接断开时,将DHCP请求报文上送网关设备。对于虚拟交换设备,当检测与控制器的连接断开时,可删除高优先级的第二上送流表项,使低优先级的第一上送流表项生效,此时,接收到DHCP请求报文将匹配第一上送流表项上送网关设备处理。对于物理交换设备,当检测与控制器的连接断开时,物理交换设备会进入标准模式,此时,DHCP请求报文会在网络内广播,因此,网关设备可接收到该DHCP请求报文。步骤203,向用户终端转发网关设备根据DHCP请求报文回应的DHCP响应报文。本发明实施例中,网关设备会启动DHCPServer(DHCP服务)功能,对用户终端的DHCP请求进行应答,即发送DHCP响应报文,该DHCP响应报文为基于MAC地址的二层转发报文,目的MAC地址为用户终端的MAC地址。网关设备在该DHCP响应报文中携带分配给用户终端的IP地址,具体参见下述网关设备侧的描述。参见图3,为本发明地址分配方法的一个实施例流程图,该实施例从网关设备侧对地址分配过程进行描述。步骤301,接收控制器同步的地址分配信息。在正常工作情况下,由控制器为用户终端分配IP地址,并记录IP地址的分配情况,参见表2。表2表2为控制器记录的地址分配信息示例。该地址分配信息包括虚拟交换实例与地址段以及地址段内地址表项的对应关系,其中,地址表项记录已分配IP地址与MAC地址的对应关系。控制器定时将上述地址分配信息同步给网关设备,例如,每10秒钟同步一次。网关设备接收控制器的地址分配信息,感知控制器的地址分配情况,为后续断连后的地址分配做准备。步骤302,接收交换设备转发的DHCP请求报文。参见前述交换设备侧的描述,交换设备与控制器断连后,将DHCP请求报文上送网关设备处理,该DHCP请求报文中携带用户终端的MAC地址。步骤303,判断是否存在包含所述用户终端的MAC地址的地址表项。网关设备查询本地记录的地址表项,该地址表项包括步骤301中控制器同步的地址表项,即控制器的地址分配情况,以及网关设备已分配出去的IP地址的地址表项。步骤304,当存在包含所述用户终端的MAC地址的地址表项时,将该地址表项中的IP地址分配并发送给所述用户终端;当不存在包含所述用户终端的MAC地址的地址表项时,根据所述DHCP请求报文所属的虚拟交换实例确定用户终端所属地址段,从所述用户终端所属地址段选择未分配的IP地址分配并发送给所述用户终端。当存在包含用户终端的MAC地址的地址表项时,可能是当前用户终端续租或者重新申请IP地址,则将地址表项中已记录的IP地址分配并发送给用户终端。当不存在包含用户终端的MAC地址的地址表项时,说明当前用户终端为新接入用户终端,则根据DHCP请求报文所属的虚拟交换实例查询本地保存的地址分配信息,确定用户终端所属地址段,从该用户终端所属地址段选择一个未分配的IP地址分配并发送给该用户终端。需要补充的是,控制器可能还与其它交换设备保持连接,也就是说,控制器仍为正常连接的其它交换设备下的用户终端分配IP地址,因此,为了避免地址分配冲突,网关设备在为用户终端进行地址分配时,可按照IP地址大小采用与控制器分配IP地址反序的方式为用户终端分配IP地址。例如,控制器通常按照IP地址从小到大的顺序为用户终端分配地址,此时,网关设备可按照IP地址从大到小的顺序分配地址,即最大程度的避免地址冲突。此外,控制器还可主动同步网关设备的地址分配信息,以免将当前网关设备分配出去的IP地址再分配给其它用户终端。当交换设备与控制器恢复连接后,虚拟交换设备可重新接收控制器下发的第二上送流表项(DHCP请求报文上送控制器的流表项),使后续DHCP请求报文上送控制器处理。物理交换设备可自动变成流表转发模式,流表项再次生效,DHCP请求报文基于流表项转发上送控制器处理。从上述描述可以看出,在交换设备与控制器断开连接后,由网关设备对用户终端的DHCP请求进行代答,从而提高SDN网络的可靠性。现仍以图1为例,介绍地址分配过程。假设,VM1~VM3的MAC地址分别为MAC1~MAC3,IP地址属于同一地址段10.0.0.1~10.0.0.200,VM4~VM6的MAC地址分别为MAC4~MAC6,IP地址属于同一地址段20.0.0.1~20.0.0.253。Controller向OVS下发表1所示流表项,向SW下发模式配置(断连后,转入标准模式)。当前Controller记录的地址分配信息如表2所示。Controller将地址分配信息同步给OVS和SW。假设,OVS与Controller之间的连接断开,OVS删除DHCP请求报文上送控制器的流表项,DHCP请求报文上送网关设备GW的流表项(表1)生效。此时,VM4上线,发送DHCP请求报文,该DHCP请求报文携带MAC4。OVS接收该DHCP请求报文,匹配表1,上送GW处理。GW接收DHCP请求报文,获取携带的MAC4,查询本地记录的地址表项,参见表2,未找到包含MAC4的地址表项,则根据DHCP请求报文所属的虚拟交换实例(假设为VSI2),查询表2中与VSI2对应的地址段20.0.0.1~20.0.0.253,从该地址段中选择地址20.0.0.253分配并发送给VM4。同时,记录20.0.0.253与MAC4的地址表项,参见表3。表3假设,OVS与Controller的连接恢复,Controller重新下发DHCP请求报文上送Controller的流表项,该DHCP请求报文上送Controller的流表项的优先级高于DHCP请求报文上送GW的流表项的优先级。同时,Controller同步GW上表3所示地址分配信息。假设,SW与Controller的连接断开,SW进入标准模式,SW中流表失效。此时,VM3上线,发送DHCP请求报文,该DHCP请求报文携带MAC3。SW接收该DHCP请求报文,在10.0.0.0/24网段内广播。GW接收DHCP请求报文,获取携带的MAC3,查询本地记录的地址表项,参见表3,未找到包含MAC3的地址表项,则根据DHCP请求报文的虚拟交换实例(假设为VSI1),查询表3中与VSI1对应的地址段10.0.0.1~10.0.0.200,从该地址段中选择地址10.0.0.200分配并发送给VM3。同时,记录10.0.0.200与MAC3的地址表项,参见表4。表4当SW与Controller的连接恢复时,SW恢复流表转发模式。DHCP请求报文上送Controller处理。Controller同步GW上表4所示地址分配信息。与前述地址分配方法的实施例相对应,本发明还提供了地址分配装置的实施例。其中,图2所示的方法对应的地址分配装置可以应用在交换设备,图3所示的方法对应的地址分配装置可以应用在网关设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的处理器运行存储器中对应的计算机程序指令形成的。从硬件层面而言,如图4所示,为本发明地址分配装置所在设备的一种硬件结构图,除了图4所示的处理器以及非易失性存储器之外,实施例中装置所在的设备通常根据该设备的实际功能,还可以包括其他硬件,对此不再赘述。请参考图5,为本发明一个实施例中的地址分配装置的结构示意图。该地址分配装置包括报文接收单元501、报文上送单元502以及报文回应单元503,其中:报文接收单元501,用于接收用户终端发送的动态主机配置协议DHCP请求报文;报文上送单元502,用于当检测与控制器的连接断开时,将所述DHCP请求报文上送网关设备;报文回应单元503,用于向所述用户终端转发所述网关设备根据所述DHCP请求报文回应的DHCP响应报文,所述DHCP响应报文中携带分配给所述用户终端的网际协议IP地址。进一步地,所述装置还包括:表项接收单元,用于当所述交换设备为虚拟交换设备时,在所述报文上送单元502将所述DHCP请求报文上送网关设备之前,接收所述控制器下发的第一上送流表项,所述第一上送流表项用于指示将DHCP请求报文上送网关设备;表项生效单元,用于当检测与控制器的连接断开时,生效所述第一上送流表项;所述报文上送单元502,具体用于根据所述第一上送流表项将所述DHCP请求报文上送所述网关设备。进一步地,所述表项生效单元,具体用于删除第二上送流表项,所述第二上送流表项用于指示将DHCP请求报文上送控制器,其中,所述第一上送流表项的优先级低于所述第二上送流表项的优先级。进一步地,所述装置还包括:模式配置单元,用于当所述交换设备为物理交换设备时,在所述报文上送单元502将所述DHCP请求报文上送网关设备之前,接收所述控制器下发的模式配置,所述模式配置用于使物理交换设备在检测到与控制器之间的连接断开时,从流表转发模式变成标准模式;所述报文上送单元502,具体用于在所述标准模式下,通过广播方式将所述DHCP请求报文上送所述网关设备。请参考图6,为本发明另一个实施例中的地址分配装置的结构示意图。该地址分配装置包括地址同步单元601、报文接收单元602、表项判断单元603、第一分配单元604以及第二分配单元605,其中:地址同步单元601,用于接收控制器同步的地址分配信息,所述地址分配信息包括虚拟交换实例与地址段以及地址段内地址表项的对应关系,所述地址表项用于记录已分配IP地址与MAC地址的对应关系;报文接收单元602,用于接收交换设备转发的DHCP请求报文,所述DHCP请求报文中携带用户终端的MAC地址;表项判断单元603,用于判断是否存在包含所述用户终端的MAC地址的地址表项;第一分配单元604,用于当存在包含所述用户终端的MAC地址的地址表项时,将该地址表项中的IP地址分配并发送给所述用户终端;第二分配单元605,用于当不存在包含所述用户终端的MAC地址的地址表项时,根据所述DHCP请求报文所属的虚拟交换实例确定用户终端所属地址段,从所述用户终端所属地址段选择未分配的IP地址分配并发送给所述用户终端。进一步地,所述第二分配单元605,具体用于按照IP地址大小采用与所述控制器分配IP地址反序的方式为所述用户终端分配并发送IP地址。上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1