本发明是关于电子通信领域,特别是关于一种基于asic芯片实现vmac的方法及应用。
背景技术:
1、在现行网络中,终端用户的mac地址由设备厂商出厂时设置。目前存在部分厂商出厂设置的mac可能相同的情况,或者一些用户修改自身mac导致网络中出现mac冲突的情况。这些情况会导致网络异常,服务中断。
2、网络中存在各种各样的攻击,黑客构造使用网络内部且通过安全认证的mac地址,形成mac地址欺骗,从而导致网络泄密。而虚拟mac地址(vmac,virtualmac)是接入设备根据一定规则生成的全网唯一的mac地址。它是接入节点自己产生的,因此可被信任。
3、当前用户源mac地址替换为vmac地址,一般通过acl匹配具体源mac地址,再通过nexthop出编辑替换源mac地址为新的vmac地址。该现有方法存在以下缺点:1)占用acl和nexthop资源。2)当需要进行其他编辑行为时,无法支持该编辑行为,或者需要loop回来再做该编辑行为。
4、公开于该背景技术部分的信息仅仅旨在增加对本发明的总体背景的理解,而不应当被视为承认或以任何形式暗示该信息构成已为本领域一般技术人员所公知的现有技术。
技术实现思路
1、本发明的目的在于提供一种基于asic芯片实现vmac的方法及应用,其能够通过芯片内部源mac地址查找直接得出对应的新源mac地址,隐藏用户内部真实的源mac地址。
2、为实现上述目的,本发明的实施例提供了一种基于asic芯片实现vmac的方法。
3、在本发明的一个或多个实施方式中,所述方法包括:报文首次从源端口进入asic芯片时,通过解析模块解析得到所述报文的信息,其中所述信息包括源mac地址、目的mac地址、vlanid和所述源端口;学习模块查找所述源mac地址,查看是否存在对应转发表项;若无,则进行源mac地址学习,将所述报文的源mac地址替换为新源mac地址,以广播报文形式转发所述报文到所述vlanid对应的vlan,其中所述新源mac地址为vmac地址。
4、在本发明的一个或多个实施方式中,所述方法还包括:若存在对应转发表项,则将所述报文发送到所述对应转发表项中的端口。
5、在本发明的一个或多个实施方式中,所述进行源mac地址学习,将所述报文的源mac地址替换为新源mac地址,包括:下发一条包含新源mac地址且出接口为所述源端口的第一转发表项,其中新源mac地址为源mac地址进行mac地址学习获得;以及同时下发一条包含新目的mac地址且出接口为所述源端口的第二转发表项,其中新目的mac地址为源mac地址。
6、在本发明的一个或多个实施方式中,所述方法还包括:所述报文进入调整模块,替换所述报文的源mac地址为新源mac地址,并根据所述信息中的目的mac地址查询mac转发表,找到对应的出接口并转发所述报文。
7、在本发明的一个或多个实施方式中,所述方法还包括:当所述报文再次从所述源端口进入芯片时,通过源mac地址查找到第一转发表项,获得新源mac地址。
8、在本发明的一个或多个实施方式中,所述方法还包括:根据所述报文生成转发表项后,通过目的mac地址查找到第二转发表项,获得新目的mac地址。
9、在本发明的一个或多个实施方式中,所述通过目的mac地址查找转发表项,查找到新目的mac地址,包括:源mac地址为所述目的mac地址且目的mac地址为所述新源mac地址且的新报文从另一端口进入,其中另一端口与所述源端口不同;所述新报文通过解析模块进入桥接模块,查找到所述第二转发表项且出口为所述源mac地址;以及所述新报文转换成和所述报文源mac地址、目的mac地址相反的报文并从所述源端口发送出去。
10、在本发明的另一个方面当中,提供了一种基于asic芯片实现vmac的装置,其包括解析模块、学习模块和转换模块。
11、解析模块,用于报文首次从源端口进入asic芯片时,通过解析模块解析得到所述报文的信息,其中所述信息包括源mac地址、目的mac地址、vlan id和所述源端口。
12、学习模块,用于学习模块查找所述源mac地址,查看是否存在对应转发表项。
13、转换模块,用于若不存在对应转发表项,则进行源mac地址学习,将所述报文的源mac地址替换为新源mac地址,以广播报文形式转发所述报文到所述vlanid对应的vlan,其中所述新源mac地址为vmac地址。
14、在本发明的一个或多个实施方式中,所述学习模块还用于:若存在对应转发表项,则将所述报文发送到所述对应转发表项中的端口。
15、在本发明的一个或多个实施方式中,所述学习模块还用于:当所述报文再次从所述源端口进入芯片时,通过源mac地址查找到第一转发表项,获得新源mac地址。
16、在本发明的一个或多个实施方式中,所述学习模块还用于:根据所述报文生成转发表项后,通过目的mac地址查找到第二转发表项,获得新目的mac地址。
17、在本发明的一个或多个实施方式中,所述转换模块还用于:下发一条包含新源mac地址且出接口为所述源端口的第一转发表项,其中新源mac地址为源mac地址进行mac地址学习获得;以及同时下发一条包含新目的mac地址且出接口为所述源端口的第二转发表项,其中新目的mac地址为源mac地址。
18、在本发明的一个或多个实施方式中,所述转换模块还用于:所述报文进入调整模块,替换所述报文的源mac地址为新源mac地址,并根据所述信息中的目的mac地址查询mac转发表,找到对应的出接口并转发所述报文。
19、在本发明的一个或多个实施方式中,所述转换模块还用于:源mac地址为所述目的mac地址且目的mac地址为所述新源mac地址且的新报文从另一端口进入,其中另一端口与所述源端口不同;所述新报文通过解析模块进入桥接模块,查找到所述第二转发表项且出口为所述源mac地址;以及所述新报文转换成和所述报文源mac地址、目的mac地址相反的报文并从所述源端口发送出去。
20、在本发明的另一个方面当中,提供了一种电子设备,包括:至少一个处理器;以及存储器,所述存储器存储指令,当所述指令被所述至少一个处理器执行时,使得所述至少一个处理器执行如上所述的基于asic芯片实现vmac的方法。
21、在本发明的另一个方面当中,提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如所述的基于asic芯片实现vmac的方法的步骤。
22、与现有技术相比,根据本发明实施方式的基于asic芯片实现vmac的方法及应用,为了避免mac地址欺骗,其能够通过芯片内部源mac地址查找直接得到对应的新源mac地址,隐藏用户内部真实的源mac地址,从而减少网络mac地址冲突,提升网络安全性;基于反方向的报文转发,通过目的mac地址查找直接得到用户侧目的mac地址,从而实现vmac功能。