为客户端动态选择 DHCP 服务器的方法和装置 技术领域 本发明涉及网络通信技术, 特别涉及为客户端动态选择动态主机配置协议 (DHCP : Dynamic Host Configuration Protocol) 服务器的方法和装置。
背景技术 DHCP, 用于为网络设备动态分配 IP 地址等网络配置参数, 其采用客户端 / 服务器 通信模式, 即由 DHCP 客户端 (Client) 向 DHCP 服务器 (Server) 提出配置请求, DHCP 服务 器返回 DHCP 客户端请求的配置信息比如 IP 地址等, 以实现配置信息的动态配置。
下面以 DHCP 客户端动态获取 IP 地址为例来描述 DHCP 客户端动态获取配置的流 程, 其他情况原理类似,
参见图 1, 图 1 示出了 DHCP 客户端动态获取 IP 地址的流程示意图。该流程主要通 过四个阶段实现 :
发现阶段 (DHCP-DISCOVER) : DHCP 客户端寻找 DHCP 服务器的阶段。客户端以广播 方式发送 DHCP-DISCOVER 报文寻找 DHCP 服务器。
提供阶段 (DHCP-OFFER), DHCP 服务器提供 IP 地址的阶段。DHCP 服务器接收到客 户端的 DHCP-DISCOVER 报文后, 根据 IP 地址分配的优先次序选出一个 IP 地址, 与其他参数 一起通过 DHCP-OFFER 报文发送给 DHCP 客户端。
选择阶段 (DHCP-REQUEST), DHCP 客户端选择 IP 地址的阶段。如果有多台 DHCP 服 务器向 DHCP 客户端发来 DHCP-OFFER 报文, 按照协议规定 DHCP 客户端只选择接受其中一个 比如第一个收到的 DHCP-OFFER 报文, 然后以广播方式发送 DHCP-REQUEST 报文, 该报文中包 含其选择的 DHCP-OFFER 报文中的 IP 地址。
确认阶段 (DHCP-ACK), DHCP 服务器确认 IP 地址的阶段。DHCP 服务器收到 DHCP 客 户端发来的 DHCP-REQUEST 报文后, 只有 DHCP 客户端选择的 DHCP 服务器会进行如下操作 : 如果确认将地址分配给该客户端, 则返回 DHCP-ACK 报文 ; 否则返回 DHCP-NAK 报文, 表明地 址不能分配给该客户端。
至此, 通过上述四个阶段实现了 DHCP 客户端动态获取 IP 地址的流程。
通过图 1 所示的流程可以看出, 在 DHCP 客户端动态获取 IP 地址过程中 DHCP 客户 端采用广播方式发送报文, 这限制了图 1 所示流程仅适用于 DHCP 客户端和 DHCP 服务器处 于同一个子网内的情况。如此, 为进行动态主机配置, 需要在所有网段上都设置一个 DHCP 服务器, 这显然是很不经济的。为了解决该问题, 引入了 DHCP 中继功能。
所谓 DHCP 中继功能, 其实质为 DHCP 客户端通过具有 DHCP 中继功能的网络设备 ( 简称 DHCP 中继设备 ) 与其他网段的 DHCP 服务器通信, 最终实现动态配置。这样, 多个网 络上的 DHCP 客户端可以使用同一个 DHCP 服务器, 如图 2 所示, 既节省了成本, 又便于进行 集中管理。通过 DHCP 中继设备完成 DHCP 客户端的动态配置比如动态获取 IP 地址的过程 中, DHCP 客户端与 DHCP 服务器的处理方式与不通过 DHCP 中继时的处理方式基本相同。下 面仅以 DHCP 客户端动态获取 IP 地址为例来描述, 其他情况原理类似。
参见图 3, 图 3 为采用 DHCP 中继的 IP 地址动态获取流程图。 如图 3 所示, 该流程可 以包括 : 针对 DHCP 中继设备上与 DHCP 客户端相连的用户侧接口建立一个对应的 DHCP 服务 器组, 当 DHCP 中继设备通过用户侧接口收到 DHCP 客户端以广播方式发送的 DHCP-DISCOVER 时, 将收到的报文中的 giaddr 字段填充为 DHCP 中继设备的 IP 地址, 并转发给该用户侧接 口对应的 DHCP 服务器组中的所有 DHCP 服务器。DHCP 服务器收到 DHCP 中继设备转发的报 文后, 根据 giaddr 字段为客户端分配 IP 地址, 并通过 DHCP 中继设备将分配的 IP 地址转发 给 DHCP 客户端。DHCP 客户端选择接收其中的一个 IP 地址比如将第一个收到的 IP 地址, 并 以广播方式发送 DHCP-REQUEST 报文, 该 DHCP-REQUEST 报文包括选择的 IP 地址。DHCP 中继 设备通过用户侧接口收到 DHCP 客户端以广播方式发送的 DHCP-REQUEST 时, 将收到的报文 中的 giaddr 字段填充为 DHCP 中继设备的 IP 地址, 并转发给该用户侧接口对应的 DHCP 服 务器组中的所有 DHCP 服务器, 以执行上述的确认阶段。至此, 完成对客户端的动态配置。
另外, DHCP 中继设备支持选项 (Option)82 功能, 而 Option 82 记录了 DHCP 客户 端的位置信息。基于此, 优选地, 可以利用该 Option 82 定位 DHCP 客户端, 实现对客户端的 安全和计费等控制。
通过图 3 所示的流程可以看出, 在针对 DHCP 中继设备上与 DHCP 客户端相连的用 户侧接口建立一个对应的 DHCP 服务器组后, DHCP 中继设备通过用户侧接口收到 DHCP 客户 端以广播方式发送的 DHCP-DISCOVER 报文时将该 DHCP-DISCOVER 报文转发给该用户侧接口 对应的 DHCP 服务器组中的所有 DHCP 服务器, 所有 DHCP 服务器针对 DHCP-DISCOVER 报文进 行应答, 而事实上, DHCP 客户端只选择接收其中一个应答, 比如第一个收到的应答, 这一方 面使多数 DHCP 服务器针对 DHCP 客户端分配的 IP 地址无用, 浪费服务器资源, 另一方面, 无 法保证 DHCP 客户端每次固定与同一个 DHCP 服务器动态获取配置, 导致配置频繁变化, 影响 网络通信。 发明内容 本发明提供了为客户端动态选择 DHCP 服务器的方法和装置, 实现 DHCP 客户端固 定与同一个 DHCP 服务器进行通信, 节省服务器资源。
本发明提供的技术方案包括 :
一种为客户端动态选择 DHCP 服务器的方法, 该方法应用于具有 DHCP 中继 relay 功能的网络设备, 包括 :
A, 所述网络设备接收 DHCP 客户端发送的用于请求 IP 地址的 DHCP 报文时, 触发认 证服务器对 DHCP 客户端用户进行认证 ;
B, 所述网络设备接收所述认证服务器在 DHCP 客户端用户通过认证时为该 DHCP 客 户端用户指定的 DHCP 服务器的标识, 并针对该 DHCP 客户端用户的信息、 以及该指定的 DHCP 服务器的标识建立表项 ;
C, 所述网络设备接收到 DHCP 客户端后续发送的报文时, 依据该报文携带的用户 信息匹配已建立的表项, 并利用匹配出的表项包含的 DHCP 服务器标识转发该报文。
一种应用于为客户端动态选择 DHCP 服务器的网络设备, 该网络设备具有 DHCP 中 继 relay 功能, 该网络设备包括 :
触发单元, 用于接收 DHCP 客户端发送的用于请求 IP 地址的 DHCP 报文时, 触发认
证服务器对 DHCP 客户端用户进行认证 ;
接收单元, 用于接收所述认证服务器在 DHCP 客户端用户通过认证时为该 DHCP 客 户端用户指定的 DHCP 服务器的标识, 并针对该 DHCP 客户端用户的信息、 以及该指定的 DHCP 服务器的标识建立表项 ;
匹配单元, 用于接收到 DHCP 客户端后续发送的报文时, 依据该报文携带的用户信 息匹配已建立的表项, 并利用匹配出的表项包含的 DHCP 服务器标识转发该报文。
一种认证服务器, 该认证服务器包括 :
认证单元, 用于在具有 DHCP 中继 relay 功能的网络设备的触发下, 对 DHCP 客户端 用户进行认证, 所述网络设备接收 DHCP 客户端发送的用于请求 IP 地址的 DHCP 报文时, 发 送所述触发至所述认证单元 ;
指定单元, 用于在 DHCP 客户端用户通过认证时为该 DHCP 客户端用户指定 DHCP 服 务器 ;
发送单元, 用于将指定 DHCP 服务器的标识通知给所述网络设备, 以使所述网络设 备针对该 DHCP 客户端用户的信息、 以及该指定的 DHCP 服务器的标识建立表项, 并在接收到 DHCP 客户端后续发送的报文时, 依据该报文携带的用户信息匹配已建立的表项, 并利用匹 配出的表项包含的 DHCP 服务器标识转发该报文。
由以上技术方案可以看出, 本发明中, 在 DHCP 客户端申请 IP 地址时, 由认证服务 器将为 DHCP 客户端用户指定 DHCP 服务器并告知给具有 DHCPrelay 功能的网络设备, 如此, 网络设备针对用户的信息、 以及为该用户指定的 DHCP 服务器的标识建立表项, 并在后续接 收到 DHCP 客户端发送的报文时, 依据该报文携带的用户信息匹配已建立的表项, 并利用 匹配出的表项包含的 DHCP 服务器标识转发所述报文, 这实现了 DHCP 客户端固定与同一个 DHCP 服务器进行通信, 节省服务器资源。 附图说明
图 1 示出了 DHCP 客户端动态获取 IP 地址的流程示意图 ;
图 2 示出了 DHCP 中继设备网络应用示意图 ;
图 3 为采用 DHCP 中继的 IP 地址动态获取流程图 ;
图 4 为本发明实施例提供的方法流程图 ;
图 5 示出了 option 221 封装指定 DHCP 服务器标识示意图 ;
图 6 为本发明实施例提供的网络设备结构图 ;
图 7 为本发明实施例提供的认证服务器结构图。 具体实施方式
为了使本发明的目的、 技术方案和优点更加清楚, 下面结合附图和具体实施例对 本发明进行详细描述。
本发明提供的方法是由认证服务器指导具有 DHCP 中继 (relay) 功能的网络设备 转发 DHCP 客户端发送的 DHCP 报文固定给同一个 DHCP 服务器。其中, 网络设备可为网关设 备或者其他网络设备, 本发明不限定。
下面通过图 4 对本发明实施例提供的方法进行描述 :参见图 4, 图 4 为本发明实施例提供的方法流程图。如图 4 所示, 该流程可包括以 下步骤 :
步骤 401, 网络设备接收 DHCP 客户端发送的用于请求 IP 地址的 DHCP 报文时, 触发 认证服务器对 DHCP 客户端用户进行认证。
本步骤 401 中, 所述 DHCP 报文可为 DHCP 客户端在申请 IP 地址时首次发送的报文 即 DHCP-DISCOVER 报文, 当然, 作为本发明实施例的扩展, 该 DHCP 报文也可为 DHCP-REQUEST 报文, 本发明并不具体限定。
步骤 402, 网络设备接收所述认证服务器在 DHCP 客户端用户通过认证时为该 DHCP 客户端用户指定的 DHCP 服务器的标识, 并针对该 DHCP 客户端用户的信息、 以及该指定的 DHCP 服务器的标识建立表项。
其中, DHCP 服务器的标识可为 DHCP 服务器的 IP 地址等, 本发明并不具体限定。
另外, 本步骤 402 中, 认证服务器为用户指定 DHCP 服务器, 具体实现时可包括 :
认证服务器识别所述用户的权限, 在预先设置的用户权限与 DHCP 服务器的对应 关系中查找到识别出的权限对应的 DHCP 服务器, 指定查找到的一个 DHCP 服务器为该 DHCP 客户端用户使用的 DHCP 服务器。其中, 指定查找到的一个 DHCP 服务器为该 DHCP 客户端 用户使用的 DHCP 服务器具体可为 : 如果查找到的 DHCP 服务器的个数大于 1, 则将其中一 个 DHCP 服务器指定为该用户使用的 DHCP 服务器, 或者将其中优先级最高的 DHCP 服务器指 定为该用户使用的 DHCP 服务器, 如果查找到的 DHCP 服务器的个数等于 1, 则将该查找到的 DHCP 服务器指定为该用户使用的 DHCP 服务器。 也就是说, 本发明中, 认证服务器根据用户的权限为用户指定 DHCP 服务器, 这能 保证 DHCP 客户端最终与合法的 DHCP 服务器进行通信。
需要说明的是, 上述的认证服务器可为支持远程认证拨号用户服务 (RADIUS) 的 服务器, 简称 RADIUS 服务器。基于此, 上述步骤 402 中, 认证服务器对用户进行认证可基于 现有 RADIUS 认证实现。并且, 相应地, 步骤 402 中, 认证服务器可通过涉及 RADIUS 的 RFC 中未被使用的选项 (option) 封装指定 DHCP 服务器的标识并发送给所述网络设备。其中, 涉及 RADIUS 的 RFC 中未被使用的 option 可为 option 221。以指定 DHCP 服务器标识为指 定 DHCP 服务器的 IP 地址为例, 图 5 示出了通过 option 221 封装指定 DHCP 服务器 IP 地址 的示意图。
步骤 403, 网络设备接收到 DHCP 客户端后续发送的报文时, 依据该报文携带的用 户信息匹配已建立的表项, 并利用匹配出的表项包含的 DHCP 服务器标识转发该报文。
比如, 网络设备接收到 DHCP 客户端后续发送的请求报文比如续约报文等后, 直接 依据该报文携带的用户信息匹配已建立的表项, 利用匹配出的表项包含的 DHCP 服务器标 识转发该接收的报文, 即向匹配出的表项包含的 DHCP 服务器标识对应的 DHCP 服务器转发 报文。
至此, 完成图 4 所示的流程。
基于图 4 所示的流程可以看出, 网络设备接收到来自 DHCP 客户端的报文时, 就 依据该报文携带的用户信息匹配已建立的表项, 如果能够匹配成功, 则直接利用匹配出的 表项包含的 DHCP 服务器标识转发报文, 即向匹配出的表项包含的 DHCP 服务器标识对应的 DHCP 服务器转发报文, 这能够保证同一客户端的报文通过同一 DHCP 服务器处理。
在上面描述中, 用户信息主要包括 : 用户的 MAC 地址、 和 / 或、 DHCP 客户端接入所 述网络设备的接口等。
以上对本发明提供的方法进行了描述, 下面对本发明提供的装置进行描述 :
首先, 本发明提供了一种应用于为客户端动态选择 DHCP 服务器的网络设备。该网 络设备具有 DHCP 中继 relay 功能, 具体如图 6 所示 :
参见图 6, 图 6 为本发明实施例提供的网络设备结构图。如图 6 所示, 该网络设备 包括 :
触发单元, 用于接收 DHCP 客户端发送的用于请求 IP 地址的 DHCP 报文时, 触发认 证服务器对 DHCP 客户端用户进行认证 ;
接收单元, 用于接收所述认证服务器在 DHCP 客户端用户通过认证时为该 DHCP 客 户端用户指定的 DHCP 服务器的标识, 并针对该 DHCP 客户端用户的信息、 以及该指定的 DHCP 服务器的标识建立表项 ;
匹配单元, 用于接收到 DHCP 客户端后续发送的报文时, 依据该报文携带的用户信 息匹配已建立的表项, 并利用匹配出的表项包含的 DHCP 服务器标识转发该报文。
另外, 本发明还提供了一种应用于为客户端动态选择 DHCP 服务器的认证服务器, 具体如图 7 所示 : 参见图 7, 图 7 为本发明实施例提供的认证服务器结构图。如图 7 所示, 该认证服 务器包括 :
认证单元, 用于在具有 DHCP 中继 relay 功能的网络设备的触发下, 对 DHCP 客户端 用户进行认证, 所述网络设备接收 DHCP 客户端发送的用于请求 IP 地址的 DHCP 报文时, 发 送所述触发至所述认证单元 ;
指定单元, 用于在 DHCP 客户端用户通过认证时为该 DHCP 客户端用户指定 DHCP 服 务器 ;
发送单元, 用于将指定 DHCP 服务器的标识通知给所述网络设备, 以使所述网络设 备针对该 DHCP 客户端用户的信息、 以及该指定的 DHCP 服务器的标识建立表项, 并在接收到 DHCP 客户端后续发送的报文时, 依据该报文携带的用户信息匹配已建立的表项, 并利用匹 配出的表项包含的 DHCP 服务器标识转发该报文。
其中, 所述 DHCP 报文为 DHCP-DISCOVER 报文。
优选地, 本发明中, 所述指定单元包括 :
识别子单元, 用于识别所述 DHCP 客户端用户的权限, 在预先设置的用户权限与 DHCP 服务器的对应关系中查找到该识别出的权限对应的 DHCP 服务器 ;
指定子单元, 用于指定查找到的一个 DHCP 服务器为该 DHCP 客户端用户使用的 DHCP 服务器。
本发明中, 所述认证服务器支持远程认证拨号用户服务 RADIUS, 所述发送单元通 过 RADIUS RFC 中未被使用的选项 option 封装指定 DHCP 服务器的标识并发送给所述网络 设备。
至此, 完成本发明提供的装置结构图。
由以上技术方案可以看出, 本发明中, 在 DHCP 客户端申请 IP 地址时, 由认证服务 器将为 DHCP 客户端用户指定 DHCP 服务器并告知给具有 DHCPrelay 功能的网络设备, 如此,
网络设备针对用户的信息、 以及为该用户指定的 DHCP 服务器的标识建立表项, 并在后续接 收到 DHCP 客户端发送的报文时, 依据该报文携带的用户信息匹配已建立的表项, 并利用 匹配出的表项包含的 DHCP 服务器标识转发所述报文, 这实现了 DHCP 客户端固定与同一个 DHCP 服务器进行通信, 节省服务器资源。
以上所述仅为本发明的较佳实施例而已, 并不用以限制本发明, 凡在本发明的精 神和原则之内, 所做的任何修改、 等同替换、 改进等, 均应包含在本发明保护的范围之内。