一种介质访问控制地址分配方法、 装置和系统 技术领域 本发明涉及以太网接入技术, 尤其涉及一种介质访问控制 (Medium/Media Access Control, MAC) 地址分配方法、 装置和系统。
背景技术 目前, 互联网络为互联网络协议版本 6(Internet Protocol Version 6, IPv6) 网 络, 随着智慧城市、 电子地球、 物联网等网络技术的发展, 人们对随时随地接入 IPv6 网络的 需求不断扩大, 各种有线、 无线终端设备不断接入 IPv6 网络中。而且, 随着虚拟化技术的发 展, 虚拟终端设备也不断地加入到 IPv6 网络中。但是, 由于现有终端设备的 MAC 地址是在 出厂时即随机固化生成的 48 位地址, 是不可变更的。这样, 随着在二层交换网络中接入的 终端设备不断增多, 不同终端设备具有相同的 MAC 地址的可能性越来越大, 如此就会导致 出现 MAC 地址冲突的情况。
由于二层交换机的数据包转发是基于 MAC 地址来实现的, 因此, 当在二层交换网 络中存在 MAC 地址冲突时, 会引起 MAC 转发表的震荡, 导致二层交换机误发服务响应交互报 文、 服务访问报文等报文, 进而导致存在 MAC 地址冲突的终端设备不能正常访问网络, 不能 为用户正常提供网络服务。
此外, 由于网络交互的报文会被二层交换机导向存在冲突 MAC 的另外的设备, 不 仅导致网络机密信息存在泄漏的风险, 而且导致网络攻击被导向不期望的终端设备、 或虚 拟设备, 从而带来网络攻击的风险。
发明内容
有鉴于此, 本发明的主要目的在于提供一种 MAC 地址分配方法、 装置和系统, 能根 据接入网络中终端设备的请求自动分配 MAC 地址, 从而避免 MAC 地址冲突的情况出现, 进而 保证终端设备对网络的正常访问, 为用户提供正常的网络服务, 降低网络攻击的风险。
为达到上述目的, 本发明的技术方案是这样实现的 :
本发明公开了一种介质访问控制 MAC 地址分配方法, 该方法包括 :
客户端组件向服务器端组件发出获取 MAC 地址的请求消息 ;
所述服务器端组件根据收到的请求消息, 向 MAC 资源管理组件发出分配 MAC 地址 的申请 ;
MAC 资源管理组件根据收到的申请分配 MAC 地址, 并将所述 MAC 地址发送给服务器 端组件 ;
所述服务器端组件将接收到的 MAC 地址发送给客户端组件, 所述客户端组件接收 MAC 地址。
较佳的, 所述客户端组件向服务器端组件发出获取 MAC 地址的请求消息为 :
所述客户端组件通过 DHCPv6 协议向服务器端组件发出获取 MAC 地址的请求消息 SOLICIT ;所述服务器端组件根据收到的请求消息, 向 MAC 资源管理组件发出分配 MAC 地址 的申请为 :
所述服务器端组件根据收到的 SOLICIT, 向 MAC 资源管理组件发出分配 MAC 地址的 申请 ;
所述 MAC 资源管理组件根据收到的申请分配 MAC 地址, 并将所述 MAC 地址发送给 服务器端组件为 :
MAC 资源管理组件根据收到的申请分配 MAC 地址, 并将所述 MAC 地址置于通知响应 ADVERTISE 中通过 DHCPv6 协议发送给服务器端组件 ;
所述服务器端组件将收到的 MAC 地址发送给客户端组件, 所述客户端组件接收 MAC 地址为 :
所述服务器端组件通过 DHCPv6 协议将收到的 MAC 地址发送给客户端组件 ; 所述客 户端组件接收 ADVERTISE, 并从中提取 MAC 地址。
较佳的, 所述客户端组件接收 ADVERTISE, 并从中提取 MAC 地址之后, 该方法还包 括:
所述客户端组件选择带有 MAC 地址且符合设定要求的 ADVERTISE ; 向发送所述 ADVERTISE 的服务器端组件发出请求 REQUEST ; 所述服务器端组件根据收到的 REQUEST, 将收到的所述 MAC 地址置于回复响应 REPLY 中通过 DHCPv6 协议发送给客户端组件 ;
客户端组件接收 REPLY, 并从中提取 MAC 地址。
较佳的, 所述 MAC 资源管理组件根据收到的申请分配 MAC 地址, 并将所述 MAC 地址 发送给服务器端组件为 :
所述 MAC 资源管理组件根据收到的申请分配 MAC 地址, 确定所述 MAC 地址的有效 期, 并将所述 MAC 地址和所述 MAC 地址的有效期发送给服务器端组件。
相应的, 所述服务器端组件将收到的 MAC 地址发送给客户端组件为 :
所述服务器端组件将收到的 MAC 地址和所述 MAC 地址的有效期发送给客户端组 件。
较佳的, 所述客户端组件接收 MAC 地址之后, 该方法还包括 :
所述客户端组件在所述有效期超期前, 通过向服务器端组件发送延续有效期请求 RENEW/REBIND, 所述请求携带所述 MAC 地址 ;
服务器端组件根据收到的 RENEW/REBIND, 发送所述 MAC 地址的有效期发送给客户 端组件。
较佳的, 所述客户端组件接收 MAC 地址之后, 该方法还包括 :
当客户端组件下线时, 所述客户端组件向服务器端组件发送释放 MAC 地址请求 RELEASE, 所述请求携带所述 MAC 地址 ;
服务器端组件根据收到的 RELEASE, 标记所述 MAC 地址为可用, 并通知客户端组件 所述 MAC 地址失效。
较佳的, 所述服务器端组件将收到的 MAC 地址发送给客户端组件为 :
所述服务器端组件将收到的 MAC 地址通过任播 Anycast 或多播 Multicast 地址发 送给客户端组件。
本发明公开了一种客户端组件, 所述客户端组件包括 : 请求消息发送单元和 MAC 地址接收单元 ; 其中,
所述请求消息发送单元, 用于向服务器端组件发出获取 MAC 地址的请求消息 ;
所述 MAC 地址接收单元, 用于接收服务器端组件发来的 MAC 地址。
较佳的, 所述请求消息发送单元, 具体用于通过 DHCPv6 协议向服务器端组件发出 获取 MAC 地址的请求消息 SOLICIT ;
所述 MAC 地址接收单元, 具体用于接收服务器端组件发来的 ADVERTISE, 并从中提 取 MAC 地址。
本发明公开了一种服务器端组件, 所述服务器端组件包括 : 分配 MAC 地址请求发 送单元和 MAC 地址转发单元 ; 其中,
所述分配 MAC 地址请求发送单元, 用于根据客户端组件发来的请求消息, 向 MAC 资 源管理组件发出分配 MAC 地址的申请 ;
所述 MAC 地址转发单元, 用于将 MAC 资源管理组件发来的 MAC 地址发送给客户端 组件。
较 佳 的, 所 述分配 MAC 地址请求发 送单元, 具 体用 于根据 客 户端组 件 发来的 SOLICIT, 向 MAC 资源管理组件发出分配 MAC 地址的申请 ; 所述 MAC 地址转发单元, 具体用于通过 DHCPv6 协议将 MAC 资源管理组件发来的 MAC 地址发送给客户端组件。
本发明公开了一种 MAC 资源管理组件, 所述 MAC 资源管理组件包括 MAC 地址分配 单元和 MAC 地址发送单元 :
所述 MAC 地址分配单元, 用于根据服务器端组件发来的申请分配 MAC 地址 ;
所述 MAC 地址发送单元, 用于将 MAC 地址分配单元分配的 MAC 地址发送给服务器 端组件。
较 佳 的, 所 述 MAC 地 址 发 送 单 元, 具 体 用 于 将 所 述 MAC 地 址 置 于 通 知 响 应 ADVERTISE 中通过 DHCPv6 协议发送给服务器端组件。
本发明公开了一种 MAC 地址分配系统, 该系统包括 : 客户端组件、 服务器端组件和 MAC 资源管理组件 ; 其中,
所述客户端组件, 用于向服务器端组件发出获取 MAC 地址的请求消息 ; 接收服务 器端组件发来的 MAC 地址 ;
所述服务器端组件, 用于根据客户端组件发来的请求消息, 向 MAC 资源管理组件 发出分配 MAC 地址的申请 ; 将 MAC 资源管理组件发来的 MAC 地址发送给客户端组件 ;
所述 MAC 资源管理组件, 用于根据服务器端组件发来的申请分配 MAC 地址, 并将所 述 MAC 地址发送给服务器端组件。
较佳的, 所述客户端组件包括请求消息发送单元和 MAC 地址接收单元 ; 所述服务 器端组件包括分配 MAC 地址请求发送单元和 MAC 地址转发单元 ; 所述 MAC 资源管理组件包 括 MAC 地址分配单元和 MAC 地址发送单元 ; 其中,
所述请求消息发送单元, 用于向所述分配 MAC 地址请求发送单元发出获取 MAC 地 址的请求消息 ;
所述 MAC 地址接收单元, 用于接收所述 MAC 地址转发单元发来的 MAC 地址 ;
所述分配 MAC 地址请求发送单元, 用于根据收到的请求消息, 向所述 MAC 地址分配 单元发出分配 MAC 地址的申请 ;
所述 MAC 地址分配单元, 用于根据收到的申请分配 MAC 地址 ;
所述 MAC 地址发送单元, 用于将 MAC 地址分配单元分配的 MAC 地址发送给所述 MAC 地址转发单元 ;
所述 MAC 地址转发单元, 用于将收到的 MAC 地址发送给所述 MAC 地址接收单元。
较佳的, 所述 MAC 资源管理组件, 还用于根据收到的申请分配 MAC 地址, 确定所述 MAC 地址的有效期, 并将所述 MAC 地址和所述 MAC 地址的有效期发送给服务器端组件 ;
所述服务器端组件, 还用于将收到的 MAC 地址和所述 MAC 地址的有效期发送给客 户端组件。
较佳的, 所述客户端组件, 还用于当其下线时, 向服务器端组件发送释放 MAC 地址 请求 RELEASE, 所述请求携带所述 MAC 地址 ;
所述服务器端组件, 还用于根据收到的 RELEASE, 标记所述 MAC 地址为可用, 并通 知客户端组件所述 MAC 地址失效。
由上可知, 本发明提供的 MAC 地址分配方法、 装置和系统, 客户端组件向服务器端 组件发出获取 MAC 地址的请求消息 ; 服务器端组件根据接收到的请求消息, 向 MAC 资源管理 组件发出分配 MAC 地址的申请 ; MAC 资源管理组件根据接收到的申请分配 MAC 地址, 并将分 配的 MAC 地址经由服务器端组件发送给客户端组件。采用上述技术方案, 能够实现根据接 入网络中的终端设备的请求, 自动分配 MAC 地址, 避免 MAC 地址冲突的情况出现, 进而保证 终端设备对网络的正常访问, 为用户提供正常的网络服务, 降低网络攻击的风险。 附图说明
图 1 为本发明 MAC 地址分配方法的第一实施例的实现流程示意图 ; 图 2 为本发明 MAC 地址分配方法的第二实施例的实现流程示意图 ; 图 3 为本发明 MAC 地址分配系统的组成结构示意图 ; 图 4 为专线接入 IPv6 网络的应用场景结构示意图 ; 图 5 为宽带接入 IPv6 网络的应用场景结构示意图。具体实施方式
本发明提供了一种客户端组件, 包括 : 请求消息发送单元和 MAC 地址接收单元 ; 其 中,
所述请求消息发送单元, 用于向服务器端组件发出获取 MAC 地址的请求消息 ;
所述 MAC 地址接收单元, 用于接收服务器端组件发来的 MAC 地址。
较佳的, 所述请求消息发送单元, 具体用于通过 DHCPv6 协议向服务器端组件发出 获取 MAC 地址的请求消息 SOLICIT ;
所述 MAC 地址接收单元, 具体用于接收服务器端组件发来的 ADVERTISE, 并从中提 取 MAC 地址。
本发明提供了一种服务器端组件, 包括 : 分配 MAC 地址请求发送单元和 MAC 地址转 发单元 ; 其中,所述分配 MAC 地址请求发送单元, 用于根据客户端组件发来的请求消息, 向 MAC 资 源管理组件发出分配 MAC 地址的申请 ;
所述 MAC 地址转发单元, 用于将 MAC 资源管理组件发来的 MAC 地址发送给客户端 组件。
较 佳 的, 所 述分配 MAC 地址请求发 送单元, 具 体用 于根据 客 户端组 件 发来的 SOLICIT, 向 MAC 资源管理组件发出分配 MAC 地址的申请 ;
所述 MAC 地址转发单元, 具体用于通过 DHCPv6 协议将 MAC 资源管理组件发来的 MAC 地址发送给客户端组件。
本发明提供了一种 MAC 资源管理组件, 包括 : MAC 地址分配单元和 MAC 地址发送单 元; 其中,
所述 MAC 地址分配单元, 用于根据服务器端组件发来的申请分配 MAC 地址,
所述 MAC 地址发送单元, 用于将所述 MAC 地址发送给服务器端组件。
较 佳 的, 所 述 MAC 地 址 发 送 单 元, 具 体 用 于 将 所 述 MAC 地 址 置 于 通 知 响 应 ADVERTISE 中通过 DHCPv6 协议发送给服务器端组件。
本发明提供了一种 MAC 地址分配系统, 参见图 3 所示, 该系统包括 : 所述客户端组 件、 所述服务器端组件、 以及所述 MAC 资源管理组件 ; 其中,
所述客户端组件, 用于向服务器端组件发出获取 MAC 地址的请求消息 ; 接收服务 器端组件发来的 MAC 地址 ;
所述服务器端组件, 用于根据客户端组件发来的请求消息, 向 MAC 资源管理组件 发出分配 MAC 地址的申请 ; 将 MAC 资源管理组件发来的 MAC 地址发送给客户端组件 ;
所述 MAC 资源管理组件, 用于根据服务器端组件发来的申请分配 MAC 地址, 并将所 述 MAC 地址发送给服务器端组件。
进一步的, 所述客户端组件包括请求消息发送单元和 MAC 地址接收单元 ; 服务器 端组件包括分配 MAC 地址请求发送单元和 MAC 地址转发单元 ; MAC 资源管理组件包括 MAC 地 址分配单元和 MAC 地址发送单元 ;
所述客户端组件的请求消息发送单元, 用于向所述服务器端组件的分配 MAC 地址 请求发送单元发出获取 MAC 地址的请求消息 ;
所述分配 MAC 地址请求发送单元, 用于根据收到的请求消息, 向所述 MAC 资源管理 组件的 MAC 地址分配单元发出分配 MAC 地址的申请 ;
所述 MAC 地址分配单元, 用于根据收到的申请分配 MAC 地址 ;
所述 MAC 地址发送单元, 用于将 MAC 地址分配单元分配的 MAC 地址发送给服务器 端组件的 MAC 地址转发单元 ;
所述 MAC 地址转发单元, 用于收到的 MAC 地址发送给客户端组件的 MAC 地址接收 单元 ;
所述 MAC 地址接收单元, 用于接收所述 MAC 地址。
基于上面的设备和系统, 下面介绍本发明 MAC 地址分配方法的第一实施例, 如图 1 所示, 本实施例的方法包括 :
步骤 101、 客户端组件向服务器端组件发出获取 MAC 地址的请求消息 ;
具体的, 预先在客户端组件配置允许使用 IPv6 的动态主机配置协议 (DynamicHost Configuration Protocol for IPv6, DHCPv6) 获取 MAC 地址、 以及触发网络设备发起 DHCPv6 协议交互的功能 ; 所述客户端组件可以配置在准备接入网络的终端设备上。
所述客户端组件通过 DHCPv6 协议向服务器端组件发出获取 MAC 地址的请求消息 SOLICIT。
步骤 102、 服务器端组件根据接收到的请求消息, 向 MAC 资源管理组件发出分配 MAC 地址的申请 ;
具体的, 预先在服务器端组件上配置允许通过扩展的 DHCPv6 协议选项下发 MAC 的 功能, 服务器端组件根据接收到的 SOLICIT 之后, 向 MAC 资源管理组件发出分配 MAC 地址的 申请。
步骤 103、 MAC 资源管理组件根据接收到的申请分配 MAC 地址, 并将所述 MAC 地址 发送给服务器端组件。
具体的, 预先在 MAC 资源管理组件上配置允许分配的 MAC 地址资源, MAC 资源管理 组件根据接收到的申请分配 MAC 地址, 并将所述 MAC 地址置于通知响应 ADVERTISE 中通过 DHCPv6 议发送给服务器端组件。
步骤 104、 服务器端组件将接收到的 MAC 地址发送给客户端组件。 具体的, 服务器端组件通过 DHCPv6 协议将接收到的 MAC 地址发送给客户端组件。
可选的, 服务器端组件将接收到的 MAC 地址通过任播 Anycast 或多播 Multicast 地址发送给客户端组件, 以确保存在 MAC 地址冲突的接入设备能够正确接收到通过 DHCPv6 协议发送的数据。
步骤 105、 所述客户端组件接收 MAC 地址。
具体的, 所述客户端组件接收 ADVERTISE, 并从中提取 MAC 地址。
由上可知, 采用上述技术方案可以实现根据接入 IPv6 网络中的终端设备的请求, 自动分配 MAC 地址, 从而避免 MAC 地址冲突的情况出现。
本发明 MAC 地址分配方法的第二实施例参见图 2 所示, 本实施例中, 预先在 MAC 资源管理组件上配置允许分配的 MAC 地址资源, 在服务器端组件上配置允许通过扩展的 DHCPv6 协议选项下发 MAC 的功能, 在客户端组件配置允许使用 DHCPv6 协议获取 MAC 地址、 触发网络设备发起 DHCPv6 协议交互的功能。本实施例中, 客户端组件先后从 ADVERTISE 和 REPLY 中各提取一次 MAC 地址。
如图 2 所示, 本实施例的方法包括以下步骤 :
步骤 201、 客户端组件通过 DHCPv6 协议向服务器端组件发出获取 MAC 地址的请求 消息 SOLICIT。
步骤 202、 服务器端组件根据接收到的 SOLICIT, 向 MAC 资源管理组件发出分配 MAC 地址的申请。
步骤 203、 MAC 资源管理组件根据接收到的申请分配 MAC 地址, 并将所述 MAC 地址 置于通知响应 ADVERTISE 中通过 DHCPv6 协议发送给服务器端组件。
步骤 204、 服务器端组件通过 DHCPv6 协议将接收到的 MAC 地址发送给客户端组件。
步骤 205、 客户端组件接收 ADVERTISE, 并从中提取 MAC 地址。
步骤 206 ~ 207、 客户端组件选择带有 MAC 地址且符合设定要求的 ADVERTISE, 并 向发送所述 ADVERTISE 的服务器端组件发出请求 REQUEST ;
这里, 由于是多播发送, 会有多个服务端组件返回 ADVERTISE, 客户端组件从中选 择一个带有 MAC 地址且符合设定要求的 ADVERTISE。
步骤 208、 服务器端组件根据接收到的 REQUEST, 将接收到的 MAC 地址置于回复响 应 REPLY 中通过 DHCPv6 协议发送给客户端组件。
步骤 209、 客户端组件接收 REPLY, 并从中提取 MAC 地址。
由上可知, 采用上述技术方案可以实现根据接入 IPv6 网络中的终端设备的请求, 自动分配 MAC 地址, 避免 MAC 地址冲突的情况出现。而且, 客户端组件先后从 ADVERTISE 和 REPLY 中各提取一次 MAC 地址, 这样使得终端设备可以根据实际需要对客户端组件提取的 MAC 地址进行对比校验, 以保证获取的 MAC 地址的准确性。
本发明 MAC 地址分配方法的第三实施例中, 预先在 MAC 资源管理组件上配置允许 分配的 MAC 地址资源, 在服务器端组件上配置允许通过扩展的 DHCPv6 协议选项下发 MAC 的 功能, 在客户端组件配置允许使用 DHCPv6 协议获取 MAC 地址、 触发网络设备发起 DHCPv6 协 议交互的功能。本实施例中, MAC 资源管理组件根据接收到的申请分配 MAC 地址, 并确定所 述 MAC 地址的有效期。
本实施例的方法包括以下步骤 : 步骤 301、 客户端组件通过 DHCPv6 协议向服务器端组件发出获取 MAC 地址的请求 消息 SOLICIT。
步骤 302、 服务器端组件根据接收到的 SOLICIT, 向 MAC 资源管理组件发出分配 MAC 地址的申请。
步骤 303、 MAC 资源管理组件根据接收到的申请分配 MAC 地址, 确定所述 MAC 地址 的有效期, 并将 MAC 地址和 MAC 地址的有效期通过 DHCPv6 协议发送给服务器端组件。
步 骤 304、 服 务 器 端 组 件 将 接 收 到 的 MAC 地 址 和 所 述 MAC 地 址 的 有 效 期 通 过 DHCPv6 协议发送给客户端组件。
步骤 305、 客户端组件接收 ADVERTISE, 并从中提取 MAC 地址和所述 MAC 地址的有 效期 ;
其中, 如果所述 MAC 地址的使用时间超过有效期时, 所述 MAC 地址失效。
由上可知, 采用上述技术方案能根据接入 IPv6 网络中的终端设备的请求, 自动分 配 MAC 地址, 避免 MAC 地址冲突的情况出现。 而且, 客户端组件提取的 MAC 地址具有有效期, 如果所述 MAC 地址的使用时间超过有效期时, 所述 MAC 地址失效, 这样可以提高 MAC 地址的 循环利用效率。
如果需要在达到 MAC 地址的有效期后继续使用该 MAC 地址, 所述客户端组件在 所述有效期超期前, 通过向服务器端组件通过 DHCPv6 协议发送延续有效期请求 RENEW/ REBIND, 所述请求携带所述 MAC 地址。服务器端组件根据接收到的 RENEW/REBIND, 通过 DHCPv6 协议发送所述 MAC 地址的有效期发送给客户端组件。
采用上述技术方案能保证终端设备在接入 IPv6 网络时, 避免 MAC 地址失效, 使终 端设备正常连接网络。
进一步的, 当客户端组件下线时, 所述客户端组件通过 DHCPv6 协议向服务器端组 件发送释放 MAC 地址请求 RELEASE, 所述请求携带所述 MAC 地址 ; 服务器端组件根据接收到 的 RELEASE, 标记所述 MAC 地址为可用, 并通知客户端组件所述 MAC 地址失效。
由上可知, 采用上述技术方案能避免当终端设备断开 IPv6 网络时, MAC 地址依然 被占用, 这样可以进一步提高 MAC 地址的循环利用效率。
本发明可以应用于专线接入 IPv6 网络的场景中, 参见图 4 所示, 图 4 中子网 1 通 过二层交换机 1 直接连接路由器 ; 子网 2 和子网 3 连接二层交换机 2, 所述二层交换机 2 连 接作为 DHCPv6RELAY 的三层交换机, 所述三层交换机再连接路由器。 MAC 资源管理组件和服 务器端组件位于路由器上, 相互协作完成 MAC 地址的集中管理和分配、 以及下发 ; 客户端组 件位于接入网络的工作站设备上。
本发明可以应用于宽带接入 IPv6 网络的场景中, 参见图 5 所示, 图 5 中子网 1 通 过二层交换机 1 直接连接宽带接入服务器 ; 子网 2 和子网 3 连接二层交换机 2, 所述二层交 换机 2 连接汇聚交换机, 所述汇聚交换机再连接宽带接入服务器。在此场景下, MAC 资源管 理组件可与服务器端组件共同位于宽带接入服务器上, 也可根据需要将 MAC 资源管理组件 置于 RADIUS 服务器上 ; 如果 MAC 资源管理组件位于 RADIUS 服务器上, 则 MAC 地址的分配需 要先使用 RADIUS 协议将 MAC 地址下发到服务器端组件, 然后再由服务器端组件将 MAC 地址 下发给客户端组件。在实际的设施方案中, 可能会同时在宽带接入服务器和 RADIUS 服务器 上驻留 MAC 资源管理组件, 并按照预置的策略选择具体由哪个设备上的 MAC 资源管理组件 完成 MAC 地址的分配 ; 客户端组件位于接入网络的设备即工作站上。
以上所述, 仅为本发明的较佳实施例而已, 并非用于限定本发明的保护范围。