CN102843440B - 一种防止媒体访问控制地址漂移的方法及网络处理设备 - Google Patents
一种防止媒体访问控制地址漂移的方法及网络处理设备 Download PDFInfo
- Publication number
- CN102843440B CN102843440B CN201110173473.8A CN201110173473A CN102843440B CN 102843440 B CN102843440 B CN 102843440B CN 201110173473 A CN201110173473 A CN 201110173473A CN 102843440 B CN102843440 B CN 102843440B
- Authority
- CN
- China
- Prior art keywords
- message
- mac address
- port
- acl rule
- vlan information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Small-Scale Networks (AREA)
Abstract
本发明提供了一种防止媒体访问控制地址漂移的方法及网络处理设备。其中,所述方法包括:网络接入设备在自身第一端口上接收到第一报文;所述网络接入设备根据当前存在的ACL规则,判断是否丢弃所述第一报文;在判断出不丢弃所述第一报文时,根据目的MAC地址转发所述第一报文,并判断自身的MAC地址表中是否存在与所述第一报文的第一源MAC地址和第一VLAN信息对应的第一表项;在判断出不存在所述第一表项时,根据所述第一报文在所述MAC地址表中建立对应的表项,以及建立一用以指示丢弃在所述第一端口外的其它端口上接收到的源MAC地址为第一MAC地址、VLAN信息为第一VLAN信息的报文的第一ACL规则。本发明能够简便地实现防止MAC地址漂移的功能。
Description
技术领域
本发明涉及网络通信技术领域,具体涉及一种防止媒体访问控制(MAC,MediaAccess Control)地址漂移的方法及网络处理设备。
背景技术
随着网络技术的发展和普及,网络规模日益扩大,网络架构逐渐繁琐,网络配置越来越复杂。经常会出现设备位置发生变化(如通过无线网络接入的便携式设备位置经常发生移动)的情况,但有时候也会因网络故障(比如环路),导致出现异常MAC地址漂移,影响网络数据安全和用户正常使用网络。因此必须采取措施提供安全保障,防止因MAC地址非正常漂移造成用户无法使用网络和其它安全问题。
现有技术通常采用静态MAC地址表的方式来防止MAC地址漂移。其做法是在设备应用之初,针对其每个端口配置相关的MAC地址绑定规则,对于每个端口只允许来自特定MAC地址的流通过。这种方法存在以下不足:初期配置量大且可操作性差。对于每台设备的每个端口都需要配置静态MAC地址表,并且还需要清楚的知道哪些MAC地址是合法的,因此设备部署前需要获取大量信息,且配置工作量很大。
发明内容
本发明所要解决的技术问题是提供一种防止MAC地址漂移的方法及网络处理设备,用以简便地实现防止MAC地址漂移的功能。
为解决上述技术问题,本发明提供方案如下:
一种防止MAC地址漂移的方法,应用于一网络接入设备,所述网络接入设备包括有与外部设备连接的多个端口,所述方法包括:
所述网络接入设备在自身第一端口上接收到第一报文,其中,所述网络接入设备的端口的属性都被预先配置为禁止学习报文的源MAC地址,所述第一报文的源MAC地址为第一MAC地址、VLAN信息为第一VLAN信息;
所述网络接入设备根据当前存在的ACL规则,判断是否丢弃所述第一报文;
在判断出不丢弃所述第一报文时,所述网络接入设备根据目的MAC地址转发所述第一报文,并判断自身的MAC地址表中是否存在与所述第一源MAC地址和第一VLAN信息对应的第一表项;
在判断出不存在所述第一表项时,所述网络接入设备根据所述第一报文在所述MAC地址表中建立对应的表项,以及建立一用以指示丢弃在所述第一端口外的其它端口上接收到的源MAC地址为第一MAC地址、VLAN信息为第一VLAN信息的报文的第一ACL规则。
优选地,上述方法中,
在所述MAC地址表中的表项发生老化时,所述方法还包括:
所述网络接入设备针对当前存在的每一ACL规则,如果所述MAC地址表中不存在与该ACL规则所针对报文的源MAC地址和VLAN信息对应的表项,则删除该ACL规则。
优选地,上述方法中,
所述网络接入设备进一步在所述MAC地址表中针对第一端口配置静态MAC地址的表项,以允许第一端口上接收到的源MAC地址为所述静态MAC地址的报文得以通过。
优选地,上述方法中,
在判断出不存在所述第一表项时,所述网络接入设备进一步判断所述MAC地址表中对应于所述第一端口的表项是否已达到预设的第一上限值:
若是,则上报第一端口对应的表项已达到所述第一上限值的告警,并结束本流程;
否则,进入所述根据所述第一报文在所述MAC地址表中建立对应的表项,以及建立一用以指示丢弃在所述第一端口外的其它端口上接收到的源MAC地址为第一MAC地址、VLAN信息为第一VLAN信息的报文的ACL规则的步骤。
优选地,上述方法中,所述建立一用以指示丢弃在所述第一端口外的其它端口上接收到的源MAC地址为第一MAC地址、VLAN信息为第一VLAN信息的报文的第一ACL规则,包括:
判断当前存在的ACL规则中是否存在针对源MAC地址为第一MAC地址、VLAN信息为第一VLAN信息的报文的第二ACL规则:
在存在所述第二ACL规则时,将所述第二ACL规则中的端口更新为所述第一端口;
在不存在所述第二ACL规则时,建立所述第一ACL规则。
优选地,上述方法中,
在不存在所述第二ACL规则时,进一步判断当前存在的对应于所述第一端口的ACL规则是否已达到预设的第二上限值:
若达到,则上报第一端口对应的ACL规则已达到所述第二上限值的告警,并结束本流程;
否则,建立包括有所述第一端口、第一MAC地址、第一VLAN信息的第一ACL规则,所述第一ACL规则用以指示丢弃在所述第一端口外的其它端口上接收到的源MAC地址为第一MAC地址、VLAN信息为第一VLAN信息的报文。
本发明还提供了一种网络接入设备,包括有与外部设备连接的多个端口,所述网络接入设备还包括:
接收单元,用于在所述网络接入设备的第一端口上接收到第一报文,其中,所述网络接入设备的端口的属性都被预先配置为禁止学习报文的源MAC地址,所述第一报文的源MAC地址为第一MAC地址、VLAN信息为第一VLAN信息;
ACL单元,用于根据所述网络接入设备中当前存在的ACL规则,判断是否丢弃所述第一报文;
交换处理单元,用于在所述ACL单元判断出不丢弃所述第一报文时,根据目的MAC地址转发所述第一报文,并判断自身的MAC地址表中是否存在与所述第一源MAC地址和第一VLAN信息对应的第一表项;
CPU处理单元,用于在所述交换处理单元判断出不存在所述第一表项时,根据所述第一报文在所述MAC地址表中建立对应的表项,以及建立一用以指示丢弃在所述第一端口外的其它端口上接收到的源MAC地址为第一MAC地址、VLAN信息为第一VLAN信息的报文的第一ACL规则。
优选地,上述网络接入设备中,还包括:
所述ACL单元,还用于在所述MAC地址表中的表项发生老化时,针对当前存在的每一ACL规则,如果所述MAC地址表中不存在与该ACL规则所针对报文的源MAC地址和VLAN信息对应的表项,则删除该ACL规则。
优选地,上述网络接入设备中,还包括:
配置单元,用于预先将所述网络接入设备的端口的属性都配置根据目的MAC地址转发报文并禁止学习报文的源MAC地址,以及将接收到的新报文同时发送给所述CPU处理单元,所述新报文是源MAC地址和VLAN信息在所述MAC地址表中不存在对应表项的报文。
优选地,上述网络接入设备中,
所述配置单元,还用于在所述MAC地址表中针对第一端口配置静态MAC地址的表项,以允许第一端口上接收到的源MAC地址为所述静态MAC地址的报文得以通过。
优选地,上述网络接入设备中,
所述CPU处理单元包括:
第一判断单元,用于判断所述MAC地址表中对应于所述第一端口的表项是否已达到预设的第一上限值:
第一处理单元,用于在所述MAC地址表中对应于所述第一端口的表项已达到预设的第一上限值时,上报第一端口对应的表项已达到所述第一上限值的告警;
第二处理单元,用于在所述MAC地址表中对应于所述第一端口的表项未达到预设的第一上限值时,根据所述第一报文在所述MAC地址表中建立对应的表项,以及建立一用以指示丢弃在所述第一端口外的其它端口上接收到的源MAC地址为第一MAC地址、VLAN信息为第一VLAN信息的报文的ACL规则。
优选地,上述网络接入设备中,
所述第二处理单元包括:
第二判断单元,用于判断当前存在的ACL规则中是否存在针对源MAC地址为第一MAC地址、VLAN信息为第一VLAN信息的报文的第二ACL规则;
第三处理单元,用于在存在所述第二ACL规则时,将所述第二ACL规则的端口更新为所述第一端口;
第四处理单元,用于在不存在所述第二ACL规则时,建立包括有所述第一端口、第一MAC地址、第一VLAN信息的第一ACL规则,所述第一ACL规则用以指示丢弃在所述第一端口外的其它端口上接收到的源MAC地址为第一MAC地址、VLAN信息为第一VLAN信息的报文。
优选地,上述网络接入设备中,
所述第四处理单元包括:
第三判断单元,用于判断当前存在的对应于所述第一端口的ACL规则是否已达到预设的第二上限值;
第五处理单元,用于在当前存在的对应于所述第一端口的ACL规则已达到预设的第二上限值时,上报第一端口对应的ACL规则已达到所述第二上限值的告警;
第五处理单元,用于在当前存在的对应于所述第一端口的ACL规则未达到预设的第二上限值时,建立所述第一ACL规则。
从以上所述可以看出,本发明提供的防止MAC地址漂移的方法及网络处理设备,无需预先获知针对网络接入设备的端口哪些源MAC地址是合法的,也无需配置大量的静态MAC地址表,就可以实现MAC地址防漂移功能,相比于现有技术,本实施例能够大大简化MAC地址防漂移功能的实现。并且,本发明还能够通过自动根据MAC地址表的老化,对ACL规则进行更新,以避免在某个终端设备的MAC地址正常漂移后,来自该终端设备的报文被始终丢弃,而导致该终端设备无法正常通信的问题。
附图说明
图1为本发明实施例所述防止MAC地址漂移的方法的流程示意图;
图2为本发明实施例所述网络接入设备的结构示意图;
图3为本发明另一实施例防止MAC地址漂移的方法的整体处理流程图;
图4为本实施例中CPU的收包进程对报文的详细处理流程图;
图5为本实施例中ACL记录表更新流程图。
具体实施方式
本发明提供的防止MAC地址漂移的方法及网络处理设备,根据报文的解析信息建立动态的MAC地址表项,并建立相应的ACL规则,用以在非法(未记录)端口上丢弃具有相同源MAC和VLAN信息的报文,以达到防止MAC地址漂移的目的。
以下将结合附图,通过具体实施例对本发明作进一步的说明。
本发明实施例所述的防止MAC地址漂移的方法,应用于一网络接入设备,所述网络接入设备包括有与外部设备连接的多个端口。具体的,该网络接入设备可以是各种无源光网络(PON)系统中的光网络单元(ONU)、连接多个终端的交换机等等。
请参照图1,本实施例所述防止MAC地址漂移的方法包括以下步骤:
步骤11,所述网络接入设备在自身第一端口上接收到第一报文,其中,所述网络接入设备的端口的属性都被预先配置为禁止学习报文的源MAC地址,所述第一报文的源MAC地址为第一MAC地址、VLAN信息为第一VLAN信息。
这里,由于网络接入设备的端口都被配置为禁止从端口接收到的报文中学习源MAC地址,这样可以避免同一MAC地址出现在网络接入设备的(L2二层)MAC地址表的不同表项中。
步骤12,所述网络接入设备根据当前存在的访问控制列表(ACL)规则,判断是否丢弃所述第一报文。
步骤13,在判断出不丢弃所述第一报文时,所述网络接入设备根据目的MAC地址转发所述第一报文,并判断自身的MAC地址表中是否存在与所述第一源MAC地址和第一VLAN信息对应的第一表项。
这里,网络接入设备根据所述第一报文的目的MAC地址,查找自身的MAC地址表,确定所述第一报文的出端口,然后将第一报文通过该出端口转发出去。
步骤14,在判断出不存在所述第一表项时,所述网络接入设备根据所述第一报文在所述MAC地址表中建立对应的表项,以及建立一用以指示丢弃在所述第一端口外的其它端口上接收到的源MAC地址为第一MAC地址、VLAN信息为第一VLAN信息的报文的第一ACL规则。
这里,由于禁止了端口的MAC地址自动学习功能,本实施例通过上述步骤14建立MAC地址表项,以生成用于报文转发的MAC地址表。
以上步骤中,为了能够生成合适的MAC地址表项,在建立MAC地址表项前先判断是否已存在类似的第一表项,只有在不存在第一表项时,才去根据所述第一报文在所述MAC地址表中建立对应的表项,即建立一个包括有所述第一端口、所述第一报文的第一源MAC地址和第一VLAN信息的MAC地址表项。由于MAC地址表项中已记录了第一源MAC地址是来自于第一端口的,因此为了防止MAC地址非正常漂移造成用户无法使用网络和其它安全问题,此时还要建立第一ACL规则,该第一ACL规则应用在所述网络接入设备的所有端口上,以使得网络接入设备丢弃在所述第一端口外的其它端口上接收到的源MAC地址为第一MAC地址、VLAN信息为第一VLAN信息的报文。
可以看出,本实施例的上述方法,无需预先获知针对网络接入设备的端口哪些源MAC地址是合法的,也无需配置大量的静态MAC地址表,就可以实现MAC地址防漂移功能,相比于现有技术,本实施例能够大大简化MAC地址防漂移功能的实现。
本实施例在上述步骤13中,当判断出存在所述第一表项时,则进入以下步骤:
步骤15,在判断出所述网络接入设备的MAC地址表中存在所述第一表项时,结束流程。此时不需要执行任何动作,直接结束流程。
本实施例中所述网络接入设备的MAC地址表仍然可以按照现有技术的老化方式进行老化,本实施例所述方法在所述MAC地址表中的表项发生老化时,则对当前存在的ACL规则逐一进行轮询,以判断在所述MAC地址表中是否存在与该ACL规则所针对的报文的源MAC地址和VLAN信息对应的MAC地址表项:如果不存在,则删除该ACL规则;如果存在,则无需执行任何动作。
这样,本实施例能够自动根据MAC地址表的老化,对ACL规则进行更新,以避免在某个终端设备的MAC地址正常漂移后,来自该终端设备的报文被始终丢弃,而导致该终端设备无法正常通信的问题。例如,现有技术的采用静态MAC地址表的方式来防止MAC地址漂移的方式,在终端设备发生位置变动,比如便携式电脑从A处移动到B处,为了保证其能够正常通信,就必须重新配置静态MAC绑定规则;然而这种移动是不可知,无法预测的,配置及查询起来极其繁琐。采用了本实施例的上述方案则不存在上述问题。
考虑到有部分终端设备通常是固定不变地接入到网络接入设备的某个端口,因此,本实施例中所述网络接入设备可以在所述MAC地址表中针对第一端口配置预定数量的允许接入的静态MAC地址所对应的表项,以允许第一端口上接收到的源MAC地址为所述静态MAC地址的报文得以通过。例如,在所配置的静态MAC地址的表项中,将静态MAC地址、对应的VLAN信息和接口绑定。这里,静态MAC地址的表项不会老化。这样,本实施例能够建立动态和静态MAC相结合的防漂移机制,能在保证设备安全性的同时保留设备应用的灵活性。
本实施例在具体应用中,可以预先针对网络接入设备的端口,设置每个端口对应的MAC地址表项的第一上限值,以及设置每个端口对应的ACL规则的第二上限值。
作为一种优选的实施方式,在上述的步骤14中,在判断出不存在所述第一表项时,所述网络接入设备进一步判断所述MAC地址表中对应于所述第一端口的表项是否已达到预设的第一上限值:
若是,则上报第一端口对应的表项已达到所述第一上限值的告警,并结束本流程;
否则,根据所述第一报文在所述MAC地址表中建立对应的表项,以及建立一用以指示丢弃在所述第一端口外的其它端口上接收到的源MAC地址为第一MAC地址、VLAN信息为第一VLAN信息的报文的ACL规则。
作为一种优选的实施方式,在上述的步骤14中,所述建立一用以指示丢弃在所述第一端口外的其它端口上接收到的源MAC地址为第一MAC地址、VLAN信息为第一VLAN信息的报文的第一ACL规则,具体包括:
判断当前存在的ACL规则中是否存在针对源MAC地址为第一MAC地址、VLAN信息为第一VLAN信息的报文的第二ACL规则:
在存在所述第二ACL规则时,将所述第二ACL规则的端口更新为所述第一端口;
在不存在所述第二ACL规则时,建立所述第一ACL规则。
其中,在不存在所述第二ACL规则时,所述网络接入设备进一步判断当前存在的对应于所述第一端口的ACL规则是否已达到预设的第二上限值:
若达到,则上报第一端口对应的ACL规则已达到所述第二上限值的告警,并结束本流程;
否则,建立所述第一ACL规则。
这里,第一ACL规则包括有第一端口、第一源MAC地址和第一VLAN信息,用以指示将在所述第一端口外的其它端口上接收到的源MAC地址为第一MAC地址、VLAN信息为第一VLAN信息的报文丢弃,而接收所述第一端口上接收到的源MAC地址为第一MAC地址、VLAN信息为第一VLAN信息的报文。第一ACL规则建立后,所述网络接入设备的每个端口在接收到报文后,首先与当前存在的ACL规则进行匹配,判断该报文是否能够被允许接收或者是丢弃,从而能够防止MAC地址的非法漂移所造成的通信故障或安全问题。
如果需要关闭本实施例所提供的防止MAC地址漂移的功能,则需要清空ACL规则和MAC地址表,并重新设置网络接入设备的端口CML(CPU-managed learning)属性为正常转发且学习报文的源MAC,但报文不再送至CPU。
基于以上所述的防止MAC地址漂移的方法,本发明实施例还提供了一种网络接入设备。所述网络接入设备包括有与外部设备连接的多个端口。请参照图2所示,网络接入设备还包括:
接收单元,用于在所述网络接入设备的第一端口上接收到第一报文,其中,所述网络接入设备的端口的属性都被预先配置为禁止学习报文的源MAC地址,所述第一报文的源MAC地址为第一MAC地址、VLAN信息为第一VLAN信息;
ACL单元,用于根据所述网络接入设备中当前存在的ACL规则,判断是否丢弃所述第一报文;
交换处理单元,用于在所述ACL单元判断出不丢弃所述第一报文时,根据目的MAC地址转发所述第一报文,并判断自身的MAC地址表中是否存在与所述第一源MAC地址和第一VLAN信息对应的第一表项;
CPU处理单元,用于在所述交换处理单元判断出不存在所述第一表项时,根据所述第一报文在所述MAC地址表中建立对应的表项,以及建立一用以指示丢弃在所述第一端口外的其它端口上接收到的源MAC地址为第一MAC地址、VLAN信息为第一VLAN信息的报文的第一ACL规则。
为避免在某个终端设备的MAC地址正常漂移后,来自该终端设备的报文被始终丢弃,而导致该终端设备无法正常通信的问题,本实施例的网络接入设备还包括:
所述ACL单元,还用于在所述MAC地址表中的表项发生老化时,针对当前存在的每一ACL规则,如果所述MAC地址表中不存在与该ACL规则所针对的报文的源MAC地址和VLAN信息对应的表项,则删除该ACL规则。
优选的,本实施例的网络接入设备,还包括:
配置单元,用于预先将所述网络接入设备的端口的属性都配置根据目的MAC地址转发报文并禁止学习报文的源MAC地址,以及将接收到的新报文同时发送给所述CPU处理单元,所述新报文是源MAC地址和VLAN信息在所述MAC地址表中不存在对应表项的报文。
所述配置单元,还用于在所述MAC地址表中针对第一端口配置静态MAC地址的表项,以允许第一端口上接收到的源MAC地址为所述静态MAC地址的报文得以通过。
优选地,所述CPU处理单元包括:
第一判断单元,用于判断所述MAC地址表中对应于所述第一端口的表项是否已达到预设的第一上限值:
第一处理单元,用于在所述MAC地址表中对应于所述第一端口的表项已达到预设的第一上限值时,上报第一端口对应的表项已达到所述第一上限值的告警;
第二处理单元,用于在所述MAC地址表中对应于所述第一端口的表项未达到预设的第一上限值时,根据所述第一报文在所述MAC地址表中建立对应的表项,以及建立一用以指示丢弃在所述第一端口外的其它端口上接收到的源MAC地址为第一MAC地址、VLAN信息为第一VLAN信息的报文的ACL规则。
其中,所述第二处理单元包括:
第二判断单元,用于判断当前存在的ACL规则中是否存在针对源MAC地址为第一MAC地址、VLAN信息为第一VLAN信息的报文的第二ACL规则;
第三处理单元,用于在存在所述第二ACL规则时,将所述第二ACL规则的端口更新为所述第一端口;
第四处理单元,用于在不存在所述第二ACL规则时,建立包括有所述第一端口、第一MAC地址、第一VLAN信息的第一ACL规则,所述第一ACL规则用以指示丢弃在所述第一端口外的其它端口上接收到的源MAC地址为第一MAC地址、VLAN信息为第一VLAN信息的报文。
其中,所述第四处理单元包括:
第三判断单元,用于判断当前存在的对应于所述第一端口的ACL规则是否已达到预设的第二上限值;
第五处理单元,用于在当前存在的对应于所述第一端口的ACL规则已达到预设的第二上限值时,上报第一端口对应的ACL规则已达到所述第二上限值的告警;
第五处理单元,用于在当前存在的对应于所述第一端口的ACL规则未达到预设的第二上限值时,建立所述第一ACL规则。
最后,再通过本发明在设备上的具体应用,进一步说明本发明。
图3是本发明一实施例所述防止MAC地址漂移的方法的整体处理流程图,其包括:
S101,设置设备每个端口的CML(CPU-managed learning)属性为根据目的MAC地址查表转发并且不学习报文的源MAC地址,同时将源MAC地址和VLAN信息在MAC地址表中没有对应的匹配表项的报文送至CPU;设置每个端口对应的MAC地址表项的第一上限值,删除设备端口上的已学习到的MAC地址的表项;
S102,在CPU的收包进程中检测经由设备端口送至CPU的报文,分析报文中的操作码(opcode)字段,若该字段为SLF tag(source MAC lookup failed,具体到本装置为0x2)时,表明该报文是设置端口CML属性后因源MAC地址查找失败而送至CPU的报文,则进入步骤S103;否则,结束该流程。
S103,若是SLF原因送至CPU的报文,获取接收到该报文的端口号,并解析出报文中的VLAN信息和MAC地址;
S104,根据S103中获得的信息建立软件ACL记录表,并将该VLAN信息和MAC地址灯写入交换芯片的MAC地址表(硬件L2地址表)中,生成一个对应的MAC地址表项,使后续报文得以正常转发;同时建立以MAC地址、VLAN信息和端口号为关键字(key)的ACL规则,以对于该端口之外的其他端口则禁止相同的MAC地址+VLAN信息的流进入。
图4是本实施例中CPU的收包进程对报文的详细处理流程图,其包括:
S201,以报文中解析出来的源MAC地址、VLAN信息为key,查找硬件L2地址表:若找到,无须任何动作,流程结束;否则进入S202;
S202,若S201中没有找到相应条目,则先去判断该报文的收端口号对应的MAC地址表项是否已达所设第一上限值:若已达到,则上报告警信息,流程结束;否则进入S203;
S203,由软件将S201中的MAC地址、VLAN信息写进交换芯片的硬件L2地址表中去;
S204,查找ACL记录表条目,看是否存在以前述的MAC地址和VLAN信息为key的ACL条目:若存在,进入S205;否则进入S206;
S205,若存在以前述的MAC地址和VLAN信息为key的旧ACL条目,再比较前述的收端口号与找到的旧ACL条目中的旧端口号,如果不同,则需要将旧端口加入到阻止端口列表中,将前述端口号从阻止端口列表中剔除。具体可以通过修改旧ACL条目中的端口号,将其由旧端口号修改为收端口号,并重新安装(install)该ACL规则;
S206,先判断收端口对应的ACL条目是否已经达到预设的第二上限值;
S207,若没有达到第二上限值,则新建以MAC地址、VLAN信息和收端口号为key的ACL规则,以对收端口之外的其他端口则禁止相同MAC地址+VLAN信息的流进入;
S208,若已达到第二上限值,则上报告警信息,流程结束。
图5是本实施例中ACL记录表更新流程图,由于ACL条目数量有限,例如,共0~255个ACL条目。因此,在建立ACL条目时,需要查找各个ACL条目,判断其是否已用,以找到空ACL条目,在该空ACL条目中添加相应信息生成ACL规则。图5具体包括:
S301,从ACL记录表的第一条开始查找,判断该条目是否已被使用;
S302,若条目被标记为未用,则设置找到空条目的标志量find_empty_entry=1;
S303,若条目被标记为已用,则判断MAC地址表中是否存在对应于该条目中的MAC地址和VLAN信息的MAC地址表项;
S304,若不存在,则删除条目中所记录的ACL规则,并且清空该ACL记录条目,标记此条目为未用,同时设置找到空条目的标志量find_empty_entry=1;
S305,判断是否已是软件ACL记录表的最后一个条目,若是结束返回,流程结束;
S306,若S305未达ACL记录表的最后一个条目,则将条目数加1,回到S301重新开始;
S307,若有空条目,则建立新的ACL规则,并将相关信息记录到该空条目中,并标记其为已用;
S308,若最终没有找到空的条目,则上报告警信息,结束流程。
以上所述仅是本发明的实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (13)
1.一种防止MAC地址漂移的方法,应用于一网络接入设备,所述网络接入设备包括有与外部设备连接的多个端口,其特征在于,所述方法包括:
所述网络接入设备在自身第一端口上接收到第一报文,其中,所述网络接入设备的端口的属性都被预先配置为禁止学习报文的源MAC地址,所述第一报文的源MAC地址为第一MAC地址、VLAN信息为第一VLAN信息;
所述网络接入设备根据当前存在的ACL规则,判断是否丢弃所述第一报文;
在判断出不丢弃所述第一报文时,所述网络接入设备根据目的MAC地址转发所述第一报文,并判断自身的MAC地址表中是否存在与所述第一MAC地址和第一VLAN信息对应的第一表项;
在判断出不存在所述第一表项时,所述网络接入设备根据所述第一报文在所述MAC地址表中建立对应的表项,以及建立一用以指示丢弃在所述第一端口外的其它端口上接收到的源MAC地址为第一MAC地址、VLAN信息为第一VLAN信息的报文的第一ACL规则。
2.如权利要求1所述的方法,其特征在于,
在所述MAC地址表中的表项发生老化时,所述方法还包括:
所述网络接入设备针对当前存在的每一ACL规则,如果所述MAC地址表中不存在与该ACL规则所针对报文的源MAC地址和VLAN信息对应的表项,则删除该ACL规则。
3.如权利要求1所述的方法,其特征在于,
所述网络接入设备进一步在所述MAC地址表中针对第一端口配置静态MAC地址的表项,以允许第一端口上接收到的源MAC地址为所述静态MAC地址的报文得以通过。
4.如权利要求1所述的方法,其特征在于,
在判断出不存在所述第一表项时,所述网络接入设备进一步判断所述MAC地址表中对应于所述第一端口的表项是否已达到预设的第一上限值:
若是,则上报第一端口对应的表项已达到所述第一上限值的告警,并结束本流程;
否则,进入所述根据所述第一报文在所述MAC地址表中建立对应的表项,以及建立一用以指示丢弃在所述第一端口外的其它端口上接收到的源MAC地址为第一MAC地址、VLAN信息为第一VLAN信息的报文的ACL规则的步骤。
5.如权利要求1所述的方法,其特征在于,所述建立一用以指示丢弃在所述第一端口外的其它端口上接收到的源MAC地址为第一MAC地址、VLAN信息为第一VLAN信息的报文的第一ACL规则,包括:
判断当前存在的ACL规则中是否存在针对源MAC地址为第一MAC地址、VLAN信息为第一VLAN信息的报文的第二ACL规则:
在存在所述第二ACL规则时,将所述第二ACL规则中的端口更新为所述第一端口;
在不存在所述第二ACL规则时,建立所述第一ACL规则。
6.如权利要求5所述的方法,其特征在于,
在不存在所述第二ACL规则时,进一步判断当前存在的对应于所述第一端口的ACL规则是否已达到预设的第二上限值:
若达到,则上报第一端口对应的ACL规则已达到所述第二上限值的告警,并结束本流程;
否则,建立包括有所述第一端口、第一MAC地址、第一VLAN信息的第一ACL规则,所述第一ACL规则用以指示丢弃在所述第一端口外的其它端口上接收到的源MAC地址为第一MAC地址、VLAN信息为第一VLAN信息的报文。
7.一种网络接入设备,包括有与外部设备连接的多个端口,其特征在于,所述网络接入设备还包括:
接收单元,用于在所述网络接入设备的第一端口上接收到第一报文,其中,所述网络接入设备的端口的属性都被预先配置为禁止学习报文的源MAC地址,所述第一报文的源MAC地址为第一MAC地址、VLAN信息为第一VLAN信息;
ACL单元,用于根据所述网络接入设备中当前存在的ACL规则,判断是否丢弃所述第一报文;
交换处理单元,用于在所述ACL单元判断出不丢弃所述第一报文时,根据目的MAC地址转发所述第一报文,并判断自身的MAC地址表中是否存在与所述第一MAC地址和第一VLAN信息对应的第一表项;
CPU处理单元,用于在所述交换处理单元判断出不存在所述第一表项时,根据所述第一报文在所述MAC地址表中建立对应的表项,以及建立一用以指示丢弃在所述第一端口外的其它端口上接收到的源MAC地址为第一MAC地址、VLAN信息为第一VLAN信息的报文的第一ACL规则。
8.如权利要求7所述的网络接入设备,其特征在于,还包括:
所述ACL单元,还用于在所述MAC地址表中的表项发生老化时,针对当前存在的每一ACL规则,如果所述MAC地址表中不存在与该ACL规则所针对报文的源MAC地址和VLAN信息对应的表项,则删除该ACL规则。
9.如权利要求7所述的网络接入设备,其特征在于,还包括:
配置单元,用于预先将所述网络接入设备的端口的属性都配置根据目的MAC地址转发报文并禁止学习报文的源MAC地址,以及将接收到的新报文同时发送给所述CPU处理单元,所述新报文是源MAC地址和VLAN信息在所述MAC地址表中不存在对应表项的报文。
10.如权利要求9所述的网络接入设备,其特征在于,
所述配置单元,还用于在所述MAC地址表中针对第一端口配置静态MAC地址的表项,以允许第一端口上接收到的源MAC地址为所述静态MAC地址的报文得以通过。
11.如权利要求7所述的网络接入设备,其特征在于,
所述CPU处理单元包括:
第一判断单元,用于判断所述MAC地址表中对应于所述第一端口的表项是否已达到预设的第一上限值:
第一处理单元,用于在所述MAC地址表中对应于所述第一端口的表项已达到预设的第一上限值时,上报第一端口对应的表项已达到所述第一上限值的告警;
第二处理单元,用于在所述MAC地址表中对应于所述第一端口的表项未达到预设的第一上限值时,根据所述第一报文在所述MAC地址表中建立对应的表项,以及建立一用以指示丢弃在所述第一端口外的其它端口上接收到的源MAC地址为第一MAC地址、VLAN信息为第一VLAN信息的报文的ACL规则。
12.如权利要求11所述的网络接入设备,其特征在于,
所述第二处理单元包括:
第二判断单元,用于判断当前存在的ACL规则中是否存在针对源MAC地址为第一MAC地址、VLAN信息为第一VLAN信息的报文的第二ACL规则;
第三处理单元,用于在存在所述第二ACL规则时,将所述第二ACL规则的端口更新为所述第一端口;
第四处理单元,用于在不存在所述第二ACL规则时,建立包括有所述第一端口、第一MAC地址、第一VLAN信息的第一ACL规则,所述第一ACL规则用以指示丢弃在所述第一端口外的其它端口上接收到的源MAC地址为第一MAC地址、VLAN信息为第一VLAN信息的报文。
13.如权利要求12所述的网络接入设备,其特征在于,
所述第四处理单元包括:
第三判断单元,用于判断当前存在的对应于所述第一端口的ACL规则是否已达到预设的第二上限值;
第五处理单元,用于在当前存在的对应于所述第一端口的ACL规则已达到预设的第二上限值时,上报第一端口对应的ACL规则已达到所述第二上限值的告警;
第五处理单元,用于在当前存在的对应于所述第一端口的ACL规则未达到预设的第二上限值时,建立所述第一ACL规则。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110173473.8A CN102843440B (zh) | 2011-06-24 | 2011-06-24 | 一种防止媒体访问控制地址漂移的方法及网络处理设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110173473.8A CN102843440B (zh) | 2011-06-24 | 2011-06-24 | 一种防止媒体访问控制地址漂移的方法及网络处理设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102843440A CN102843440A (zh) | 2012-12-26 |
CN102843440B true CN102843440B (zh) | 2017-04-26 |
Family
ID=47370493
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110173473.8A Active CN102843440B (zh) | 2011-06-24 | 2011-06-24 | 一种防止媒体访问控制地址漂移的方法及网络处理设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102843440B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108429823A (zh) * | 2018-02-28 | 2018-08-21 | 迈普通信技术股份有限公司 | Dhcp网络中防止mac地址漂移的方法及交换设备 |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103532850B (zh) * | 2013-09-29 | 2017-05-24 | 福建星网锐捷网络有限公司 | 一种上行报文转发方法、装置及接入点ap设备 |
CN104980526A (zh) * | 2014-04-04 | 2015-10-14 | 中兴通讯股份有限公司 | Mac地址漂移的控制方法、装置及网络设备 |
WO2016070316A1 (zh) * | 2014-11-04 | 2016-05-12 | 华为技术有限公司 | 控制mac地址漂移的方法、装置和系统 |
CN107205058B (zh) * | 2016-03-16 | 2021-06-04 | 中兴通讯股份有限公司 | 一种媒体介入控制mac地址处理方法及装置 |
CN107493234B (zh) * | 2016-06-12 | 2021-01-29 | 阿里巴巴集团控股有限公司 | 一种基于虚拟网桥的报文处理方法以及装置 |
CN106231007B (zh) * | 2016-09-14 | 2019-04-12 | 浙江宇视科技有限公司 | 一种防止mac地址漂移的方法及装置 |
CN106453409B (zh) * | 2016-11-28 | 2019-12-10 | 迈普通信技术股份有限公司 | 一种报文处理方法及接入设备 |
CN108259420B (zh) * | 2016-12-28 | 2021-10-08 | 迈普通信技术股份有限公司 | 一种报文处理方法及装置 |
CN108429687B (zh) * | 2018-05-31 | 2021-04-27 | 新华三技术有限公司 | 报文转发方法和装置 |
CN111343089B (zh) * | 2020-02-17 | 2022-03-25 | 烽火通信科技股份有限公司 | 解决mac地址hash冲突导致洪泛问题的方法及系统 |
CN114257891A (zh) * | 2021-12-22 | 2022-03-29 | 苏州盛科通信股份有限公司 | 无源光纤网络中控制mac漂移的方法及应用 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1571349A (zh) * | 2003-07-25 | 2005-01-26 | 华为技术有限公司 | 基于媒体接入控制地址的网络接入控制方法 |
CN101127717A (zh) * | 2007-09-30 | 2008-02-20 | 中控科技集团有限公司 | 一种报文转发的方法和交换机 |
CN101272289A (zh) * | 2008-05-09 | 2008-09-24 | 中兴通讯股份有限公司 | 端口线速发送测试数据帧的方法及以太网交换机 |
CN102014062A (zh) * | 2010-12-01 | 2011-04-13 | 中兴通讯股份有限公司 | Mac地址漂移的控制方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9088669B2 (en) * | 2005-04-28 | 2015-07-21 | Cisco Technology, Inc. | Scalable system and method for DSL subscriber traffic over an Ethernet network |
-
2011
- 2011-06-24 CN CN201110173473.8A patent/CN102843440B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1571349A (zh) * | 2003-07-25 | 2005-01-26 | 华为技术有限公司 | 基于媒体接入控制地址的网络接入控制方法 |
CN101127717A (zh) * | 2007-09-30 | 2008-02-20 | 中控科技集团有限公司 | 一种报文转发的方法和交换机 |
CN101272289A (zh) * | 2008-05-09 | 2008-09-24 | 中兴通讯股份有限公司 | 端口线速发送测试数据帧的方法及以太网交换机 |
CN102014062A (zh) * | 2010-12-01 | 2011-04-13 | 中兴通讯股份有限公司 | Mac地址漂移的控制方法和装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108429823A (zh) * | 2018-02-28 | 2018-08-21 | 迈普通信技术股份有限公司 | Dhcp网络中防止mac地址漂移的方法及交换设备 |
CN108429823B (zh) * | 2018-02-28 | 2021-06-29 | 迈普通信技术股份有限公司 | Dhcp网络中防止mac地址漂移的方法及交换设备 |
Also Published As
Publication number | Publication date |
---|---|
CN102843440A (zh) | 2012-12-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102843440B (zh) | 一种防止媒体访问控制地址漂移的方法及网络处理设备 | |
US8134936B2 (en) | Methods, systems and computer-readable media for dynamically recognizing and processing service order types in a network management system | |
US5303302A (en) | Network packet receiver with buffer logic for reassembling interleaved data packets | |
EP2742649B1 (en) | Intelligent phy with security detection for ethernet networks | |
US7590126B2 (en) | Frame transfer processing method and device | |
EP2767064B1 (en) | Intelligent connectors integrating magnetic modular jacks and intelligent physical layer devices | |
US8817792B2 (en) | Data forwarding method, data processing method, system and relevant devices | |
CN103209141A (zh) | 一种交换芯片处理数据报文的方法及交换芯片 | |
US8902731B2 (en) | Method, network card, and communication system for binding physical network ports | |
US20070230469A1 (en) | Transmission apparatus | |
CN102014062A (zh) | Mac地址漂移的控制方法和装置 | |
CN101291276A (zh) | 一种基于业务的隧道保护方法和系统 | |
CN102035738A (zh) | 一种获取路由信息的方法及装置 | |
CN103152724A (zh) | 一种硬件锁sim卡的方法及系统 | |
CN101729413B (zh) | 基于atca的多业务处理系统及方法 | |
CN103227733B (zh) | 一种拓扑发现方法及系统 | |
CN101534301B (zh) | 表项的安装方法和装置以及网络设备 | |
CN103825846B (zh) | 一种端口安全的实现方法及装置 | |
CN107124316B (zh) | 一种数据通信设备中基于硬件的快速倒换动作实现方法 | |
CN108965093A (zh) | 一种vlan分配方法及装置 | |
US20150106493A1 (en) | Communication Device, Communication-Purpose Identification Information Management Server, Communication-Purpose Identification Information Acquisition Method, Communication-Purpose Identification Information Providing Method, and Recording Medium | |
CN100508445C (zh) | 一种实现跨板倒换标签交换路径的方法及系统 | |
CN103501279A (zh) | 一种航电全双工实时以太网数据包重组方法及系统 | |
US20090175288A1 (en) | System for setting router identifier in network supporting at least one protocol and method of controlling the same | |
EP2487988B1 (en) | Device and method for breaking download channel of hand-held terminal |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |