一种MAC地址分段管理方法及系统
技术领域
本发明涉及网络通信技术设备管理领域,具体来讲涉及一种MAC(Media AccessContro,媒体访问控制)地址分段管理方法及系统。
背景技术
现有的MAC地址管理方法通常包括以下几个步骤:
1、MAC地址服务器接收客户机发送的地址申请消息,地址申请消息包含客户机的建议地址;
2、MAC地址服务器根据建议地址在可用MAC地址库中搜索客户机可用的MAC地址;如果搜索到可用的MAC地址,则向客户机发送地址分配消息,地址分配消息包括搜索到的可用MAC地址,并将搜索到的可用MAC地址从可用MAC地址库中移除。
通常采用动态申请的方式对可用的MAC地址进行分配,更换业务盘等场景下,同一槽位同一物理端口分配到的MAC地址会发生变化,影响静态arp等业务配置。另外,在单主控盘的情况下,业务盘正常分配到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地址加1;所述MAC索引为不重复的数字,每个数字与客户端所在业务盘的槽位号一一对应,并按照槽位号的排列顺序依次增加。
优选的,所述服务器端按照MAC索引为客户端分配一段固定的物理MAC地址区间包括:每个MAC索引分配到的物理MAC地址区间的起始地址=起始物理MAC地址+(MAC索引-1)*物理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地址始终是同一个,不会发生改变。
附图说明
图1为实施例一种MAC地址分段管理方法流程图;
图2为服务器端启动后的MAC地址管理流程图;
图3为客户端申请逻辑MAC地址的流程图;
图4为客户端释放逻辑MAC地址的流程图;
图5为客户端申请物理逻辑地址的流程图。
具体实施方式
以下结合附图及实施例对本发明作进一步详细说明。
如图1所示,本实施例提供一种MAC地址分段管理方法,包括如下步骤:
S1,服务器端将物理MAC地址总数按照业务盘的数量进行均分,分成多段长度相同的物理MAC地址区间。
S2,客户端向服务器端申请物理MAC地址时携带MAC索引,MAC索引与客户端所在的业务盘一一对应,服务器端按照MAC索引为客户端分配一段固定的物理MAC地址区间,客户端按照物理端口顺序分配物理MAC地址。其中,MAC索引由客户端生成,具有唯一性,可以是不重复的数字,每个MAC索引与客户端所在业务盘的槽位号一一对应。
在上述步骤S1中,根据客户端的配置,服务器端将获取到的机框的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。
如图2所示,提供服务器端启动后的MAC地址管理流程的实施例,也就是初始化的过程,本实施例是在客户端申请逻辑MAC地址和物理MAC地址之前进行,具体包括如下步骤:
S101.主控盘提供设置逻辑MAC地址数量的钩子回调函数,用户可以通过此钩子回调函数自主设定逻辑MAC地址数量。其中,用户需要确定本机框需要的逻辑MAC地址数量,然后在主控盘设置,不同的设备可以根据实际需求设置不同的逻辑MAC地址数量。并且,逻辑MAC地址数量还要结合物理MAC地址总数需要大于等于最多端口数来设置。
相同设备形态下有多种类型的主控盘,逻辑MAC地址总数是基于设备的,不是基于主控盘的,必须保证相同机框形态下的主控盘用户设置的逻辑MAC地址总数是一致的。
S102.获取机框起始MAC地址和MAC地址总数,主控盘可以为此提供相关函数,假定MAC地址总数为N。
S103.通过步骤S101中设定的逻辑MAC地址数量,计算出所有逻辑MAC地址。设定的逻辑MAC地址数量为N1,从设备起始地址开始的N1个MAC地址划分为逻辑MAC地址,每个逻辑MAC地址都是由前一个MAC地址加1;然后将所有划分的逻辑MAC地址写入一个逻辑MAC地址池。
S104.计算起始物理MAC地址和物理MAC地址数量,并保存物理MAC地址数量N2。
起始物理MAC地址=结尾的逻辑MAC地址+1;
物理MAC地址数量=设备的MAC地址数量-逻辑MAC地址数量。
S105.由于机框多种逻辑端口需要使用相同的逻辑MAC地址,且一般共同使用的逻辑MAC地址都是系统MAC地址,因此将系统MAC地址广播发送,让需要使用此系统MAC地址的逻辑接口都可以接收到。其中服务器端广播发送的系统MAC地址,就是步骤S101中获取到设备的起始MAC地址。
在业务盘发生变更时,或者单主控盘的情况下,主控盘被更换时,都需要对逻辑MAC地址和物理MAC地址进行重新分配。基于上述实施例,如图3所示,提供一种客户端申请逻辑MAC地址的流程实施例,具体包括以下步骤:
a101.客户端向服务器端发送建链请求,请求与服务器端建立连接。
a102.服务器端收到客户端发送的建链请求后,向客户端发送建链应答消息。
a103.客户端收到建链应答消息,判断建链是否成功,若是,进入a104;若否,直接结束。
a104.客户端向服务器端发送逻辑MAC地址请求消息。
a105.服务器端收到逻辑MAC地址请求消息,从逻辑MAC地址池中分配一个逻辑MAC地址,并向客户端发送携带逻辑MAC地址应答消息,消息中携带分配的逻辑MAC地址。然后,将分配的逻辑MAC地址从逻辑MAC地址池中移除。
a106.客户端收到逻辑MAC地址应答消息后进行解析,获得分配的逻辑MAC地址,结束。
本实施例中,客户端通过逻辑MAC申请接口来申请逻辑端口的逻辑MAC地址,每次申请一个逻辑MAC地址,申请到的逻辑MAC地址是动态分配的,同一逻辑端口申请到的逻辑MAC地址不是固定的。
如图4所示,基于上述实施例,提供客户端释放逻辑MAC地址流程的实施例,具体包括步骤:
b101.客户端向服务器端发送建链请求,请求与服务器端建立连接。
b102.服务器端收到客户端发送的建链请求后,向客户端发送建链应答消息。
b103.客户端收到建链应答消息,判断建链是否成功,若是,进入b104;若否,直接结束。
b104.客户端向服务器端发送逻辑MAC地址释放消息。
b105.服务器端收到逻辑MAC地址释放消息(其中携带释放的逻辑MAC地址),在逻辑MAC地址池中添加释放的逻辑MAC地址,向客户端发送逻辑MAC释放消息的应答消息。
b106.客户端收到逻辑释放应答消息,结束。
在上述实施例基础上,如图5所示,是客户端申请物理MAC地址流程的实施例,包括步骤如下:
c101.客户端向服务器端发送建链请求,请求与服务器端建立连接。
c102.服务器端收到客户端发送的建链请求后,向客户端发送建链应答消息。
c103.客户端收到建链应答消息,判断建链是否成功,若是,进入c104;若否,直接结束。
c104.客户端向服务器端发送物理MAC地址请求消息,其中携带客户端生成的MAC索引。以客户端配置在业务盘为例,业务盘总数为M。MAC索引以数字形式表达,根据业务盘总数M设置,因此MAC索引的范围区间是1~M。业务盘对应的MAC索引按照槽位号的排列顺序依次增加,其确定方法为:本设备中槽位号最小的业务盘对应的MAC索引是1,业务盘所在的槽位号加1,则对应的MAC索引加1,本设备槽位号最大的业务盘对应的MAC索引是M。
c105.服务器端收到物理MAC地址请求消息,分配固定的物理MAC地址区间,并向客户端发送物理MAC地址应答消息,其中携带分配的物理MAC地址区间。
具体的,服务器端将物理MAC地址按照本机框的业务盘数量平均分为多段物理MAC地址区间,每段物理MAC地址区间中包含相同数量的物理MAC地址,设定P表示每段物理MAC地址区间中包含物理MAC地址数量,那么P=物理MAC地址总数N2/本机框的业务盘总数M。
MAC索引分配的一段物理MAC地址区间的起始地址=起始物理MAC地址+(MAC索引-1)*P。
c106.客户端收到物理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地址。
优选的,系统还可以包括一个设置于服务器端的逻辑MAC地址池,用于存储所有逻辑MAC地址,服务器端从逻辑MAC地址池中分配逻辑MAC地址给客户端,还用于将客户端释放的逻辑MAC地址加入逻辑MAC地址池中。
上述实施例可以在更换业务盘或者主控盘的情况下,保证分配到的物理MAC地址始终是同一个,不会发生改变。
本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。