一种同步媒体访问控制地址的方法和设备
技术领域
本申请涉及通信技术领域,特别涉及一种同步媒体访问控制地址的方法和设备。
背景技术
常用的网络中,一般具有汇聚设备和接入设备,且接入设备可能有多级部署。在传统的组网中,这种分级组网具有如下不足:
分级组网中各个设备独立配置管理,管理复杂度高;且由于接入设备相对汇聚设备在性能和表项规格上都小很多,所以接入设备只是划分到部分虚拟局域网(VirtualLocalAreaNetwork,VLAN)中。不同的接入设备可能划分到不同的VLAN,这种情况下接入设备之间二层不能互通,只能通过汇聚设备或者更上级设备三层互通。当前较多的应用对大二层提出了需求,显然这种传统的分级组网满足不了大二层要求。
使用多级设备按照层级组合,统一管理,业务转发上相互配合就能较好解决这些不足。组网中各级设备都存在上行多归属连接。如果各设备纵向之间数据通信使用标准的以太网封装报文,当数据报文从用户设备通过接入设备的用户网络接口(UserNetworkInterface,UNI)到达上级设备后,上级设备只能知道数据到达本设备的端口,而不能知道数据是从那个接入设备的哪个UNI进入的,媒体访问控制(MediaAccessControl,MAC)地址也只能学习到数据进入本设备的端口上,其中UNI为除汇聚设备和接入设备之间连接的端口以及接入设备和接入设备之间相连的端口之外的端口,如接入设备或汇聚设备与用户网络中的用户设备相连的端口,用户设备如主机设备、路由器或交换机等。这样基于数据报文进行的源MAC地址学习就会出现端口迁移,导致下行流量不均,也会使某些单播报文会广播转发的问题。
发明内容
有鉴于此,本申请提供一种同步MAC地址的方法和设备,该组网中任一设备能够同步到存在UNI的下游接入设备学习到UNI上的用户设备的MAC地址,进而不会使已知单播进行广播发送。
为解决上述技术问题,本发明的技术方案是这样实现的:
一种同步媒体访问控制MAC地址的方法,应用于包括接入设备和汇聚设备的组网中的接入设备或汇聚设备上,该组网中的同级接入设备横向无连接,该组网的拓扑为从上向下的交叉树形结构;所述方法包括:
所述设备若存在用户网络接口UNI,则在通过该UNI学习到用户设备的MAC地址时,向上游设备发送通告报文,通告学习到该UNI上的用户设备的MAC地址;若所述设备为汇聚设备,不向上游设备发送通告报文;
当所述设备收到下游设备发送的通告报文时,将接收到的通告报文中的用户设备的MAC地址学习到本设备上可达该下游设备的各端口上;
当所述设备为接入设备时,还需将接收到的通告报文转发给该设备的上游设备。
一种设备,可应用为包括接入设备和汇聚设备的组网中的接入设备或汇聚设备,该组网中的同级接入设备横向无连接,该组网的拓扑为从上向下的交叉树形结构;该设备包括:学习单元和收发单元;
所述学习单元,用于本设备若存在用户网络接口UNI,通过该UNI学习用户设备的MAC地址;当所述收发单元接收到下游设备发送的通告报文时,将接收到的通告报文中的用户设备的MAC地址学习到本设备上可达该下游设备的各端口上;
所述收发单元,用于当所述学习单元UNI学习到用户设备的MAC地址时,向上游设备发送通告报文,通告学习到该UNI上的用户设备的MAC地址;若所述设备为汇聚设备,不向上游设备发送通告报文;接收下游设备发送的通告报文;当本设备为接入设备时,还需将接收到的通告报文转发给该设备的上游设备。
综上所述,本申请通过组网中任一设备若存在UNI,向上游设备发送通告报文,通告本接入设备学习到UNI上的用户设备的MAC地址;当接收到下游设备发送的通告报文时,将接收到的通告报文中的用户设备的MAC地址学习到本设备上可达该下游设备的各端口上。通过该方法,该组网中任一设备能够同步到存在UNI的下游接入设备学习到UNI上的用户设备的MAC地址,进而不会使已知单播进行广播发送。
附图说明
图1为本发明实施例一中MAC地址同步流程示意图;
图2为本发明实施例二中同步MAC地址流程示意图;
图3为本发明实施例四中纵向组合组网示意图;
图4为本发明具体实施例中应用于上述技术的组网结构示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明所述方案作进一步地详细说明。
本发明实施例中提出一种同步MAC地址的方法,应用于包括接入设备和汇聚设备的纵向组合组网中的接入设备或汇聚设备上,该设备若存在UNI,向上游设备发送通告报文,通告本接入设备学习到UNI上的用户设备的MAC地址;当接收到下游设备发送的通告报文时,将接收到的通告报文中的用户设备的MAC地址学习到本设备上可达该下游设备的各端口上。通过该方法,该组网中任一设备能够同步到存在UNI的下游接入设备学习到UNI上的用户设备的MAC地址,进而不会使已知单播进行广播发送。
本发明具体实施例中纵向组合组网包含接入设备和汇聚设备,其中,汇聚设备可以为单一的一个汇聚设备,也可以为一个堆叠设备。堆叠设备中的主成员设备(或称为主成员设备、master设备)和非主成员设备(或称为从成员设备、slave设备)之间通过堆叠链路相连。该堆叠设备下接的各同级接入设备之间横向无连接。
该堆叠设备直连的接入设备,可能只接入堆叠设备中主成员设备,或非主成员设备;也可能通过聚合口多归属到不同的成员设备,这些不同成员设备中可能包括主成员设备,也可能不包括。
该组网的拓扑为从上向下的交叉树形结构。该组网中的多级设备纵向连接,同级接入设备无横向连接,即树形结构;各级接入设备可多归属连接到多个上一级设备,即树的分支可交叉。当然,该组网中也包含一些直接连接到一个上一级设备的接入设备,因此,本发明具体实施例中的纵向组合组网中至少存在一个接入设备多归属连接到多个上一级接入设备,即跨设备聚合到多个接入设备。
该组网中除汇聚设备为堆叠设备,其成员设备之间为堆叠链路的情况之外,其他设备之间的连接链路上,即接入设备和接入设备之间,汇聚设备与接入设备之间都使用普通的以太网封装报文进行通信,不增加额外的封装头,既避免了对设备硬件的要求,又避免了额外封装头带来的带宽浪费。
该汇聚设备确定本汇聚设备的级数为最高级,并根据获得的各直连的设备的设备信息向各直连的设备通告本汇聚设备的级数,使组网中各接入设备确定各自的级数。组网中任一接入设备接收到直连的设备通告的各直连的设备的级数时,将通告的最高级数再减一级作为本接入设备的级数,并将本接入设备的级数通告给各直连的设备。
该多级设备纵向组合组网中,各级接入设备都可能存在上行多归属连接。由于该组网中纵向连接使用了标准的以太网封装头,当数据报文从接入设备到达上游设备后,上游设备只能知道该数据报文到达本设备的端口,而不能知道数据是从哪个接入设备进入的。用户设备的MAC地址只能学习到进入本设备的端口。
这种只通过数据报文进行MAC地址学习的方法,会发生端口迁移,对于一些未接收过该数据报文的设备,会将向该用户设备发送的单播报文进行广播发送。
本发明具体实施例中为了避免上述问题,根据纵向组合组网的特点和业务数据的转发特点,接入设备将学习到UNI上的用户设备的MAC地址同步给上游设备,使上游设备都能够学习到该用户设备的MAC地址。这里的上游设备可能是接入设备,也可能是汇聚设备。
实施例一
参见图1,图1为本发明实施例一中MAC地址同步流程示意图。具体步骤为:
步骤101,组网中任一设备若存在UNI,则在通过该UNI学习到用户设备的MAC地址时,向上游设备发送通告报文,通告学习到该UNI上的用户设备的MAC地址。
该设备可以为接入设备,也可以为汇聚设备,在通过UNI接收到用户设备发送的数据报文时,对接收的数据报文的源MAC地址进行学习。如果该设备为汇聚设备,该汇聚设备为该纵向组合组网中最高级数设备,不向上游设备发送通告报文。
本步骤中接入设备首先需要配置一个组播MAC地址,并将本接入设备的上行端口配置为该组播MAC地址的成员端口。这里所有的上行端口都要配置为组播MAC地址的成员端口,不管某些上行端口之间是否是聚合关系。
该接入设备向上游设备发送的通告报文的目的MAC地址为配置的组播MAC地址,源MAC地址为本接入设备的MAC地址。在发送该通告报文时,通过该组播MAC地址的对应的所有成员端口发送,保证各上游设备都能接收到对应的通告报文,并且由于该通告报文的源MAC地址为该接入设备的MAC地址,也可以使上游设备获知该用户设备的MAC地址是由哪个接入设备学习到并同步的。
本发明实施例中,接入设备可以采用周期上报的方式向上游设备发送的通告报文,具体方法包括:当学习到UNI上的用户设备的MAC地址变化,且预设周期到时,发送携带序列号递增的通告报文,向所述上游设备通告本接入设备学习到UNI上的用户设备的MAC地址的变化;当学习到UNI上的用户设备的MAC地址未变化,在预设周期到时发送携带与上一周期通告报文携带的序列号相同的通告报文,向所述上游设备通告本接入设备学习到UNI上的用户设备的MAC地址未变化。
为了节省存储资源,接入设备可以对通过源MAC地址学习到的用户设备的MAC地址进行老化。接入设备对本地学习到UNI上的用户设备的MAC地址进行老化,当老化时间到时,未接收到所述用户设备发送的数据报文时,老化学习到所述UNI上的用户设备的MAC地址,并当发送通告报文的周期到时,发送携带序列号递增的通告报文,向上游设备通告本接入设备UNI上学习到的用户设备的MAC地址的变化。
在具体实现时,携带序列号递增的通告本接入设备上学习到UNI上的用户设备的MAC地址变化的报文,可以通过更新(UPD)报文、删除(DEL)报文、增加(ADD)报文来实现。发送通告报文的方式和周期可以根据具体应用进行配置。
其中,UPD报文,用于该接入设备向上游设备通告本接入设备在UNI上已学习到的所有用户设备的MAC地址,通常,第一周期发送通告报文使用UPD报文。DEL报文,用于该接入设备向上游设备通告本接入设备该周期内删除的学习到UNI上的MAC地址。ADD报文,用于该接入设备向上游设备通告本接入设备该周期内在UNI上新学习到的MAC地址。
该接入设备发送上述这些报文时需要携带序列号,并且携带的序列号递增,以防止该接入设备发送了通告学习到的用户设备的MAC地址有变化的报文,而上游设备没有接收到,而未能及时同步。当发现某个序列号的通告报文未接收到时,向发送该通告报文的接入设备发送地址请求报文,获得该接入设备当前学习到的所有MAC地址。
该接入设备发送携带与上一周期通告报文携带的序列号相同的通告报文,具体实现时,可以通过hello报文实现,并且在hello报文中不携带用户设备的MAC地址的相关信息,通告本接入设备上学习到的用户设备的MAC地址未发生变化,使上游设备可以根据报文中携带的序列号与上一次接收到的通告报文携带的序列号的差值,确定本设备是否漏接下游设备发送的通告报文。
步骤102,当所述设备收到下游设备发送的通告报文时,将接收到的通告报文中的用户设备的MAC地址学习到本设备上可达该下游设备的各端口上。
该设备接收到其下游接入设备发送的通告报文时,将该通告报文中通告的所述用户设备的MAC地址学习到本设备,可达该接入设备的各端口上,即有几个可达该接入设备的端口,都需要学习所述用户设备的MAC地址,也可以将这几个端口加入到一个组中,将所述用户设备的MAC地址学习到这个组中,即该用户设备的MAC地址在该设备上对应该组中的所有端口。至于该接入设备的上游设备接收到目的MAC地址为所述用户设备的MAC地址时,通过该组中哪个端口转发,可以根据具体配置实现,如指定端口,或者根据哈希算法选择端口等。
该设备若接收到的通告报文为携带序列号递增的通告报文,根据该报文更新本地学习的所述用户设备的MAC地址;若接收到携带的序列号同上一次接收到的通告报文携带的序列号相同的hello报文,维持本地学习的所述用户设备的MAC地址。
各设备接收到下级接入设备发送的通告报文时,进行源MAC地址学习,如果该设备为接入设备,即存在上级设备,同时还需通过本地配置的组播MAC地址对应的成员端口,将接收到的通告报文继续向上级设备转发,即透传给该接入设备的上游设备,使该接入设备的所有上游设备都能够学习到该用户设备的MAC地址,并获知该用户设备的MAC地址原始是由谁学习到并同步的。
实施例二
任一接入设备发送给上游设备的通告报文以配置的组播MAC地址为目的MAC地址,保证了所有上游设备都能够接收到该通告报文,但是所述上游设备如果有多个可到达该接入设备的端口,就会接收到多个该通告报文。因此,本发明具体实施例中在上游设备上进行配置,以实现只对接收到的一个通告报文进行处理,其他通告报文直接丢弃。这里的上游设备包括汇聚设备和接入设备,本发明的具体实施例中以接入设备为例。
组网中任一设备若存在多个与存在UNI的任一下游接入设备可达的端口,在该多个端口中选择一个端口处理该存在UNI的下游接入设备发送的通告报文,其他端口丢弃该通告报文。
具体实现时,可以在选择的端口上配置所述存在UNI的下游接入设备的MAC地址,即通过配置该下游接入设备的MAC地址的端口,接收到所述下游设备发送的通告报文时,处理接收到的通告报文。通过其他可达所述下游设备的端口,即未配置该下游接入设备的MAC地址的端口接收到该通告报文时,丢弃该通告报文。
参见图2,图2为本发明实施例二中同步MAC地址流程示意图。具体步骤为:
步骤201,组网中任一设备接收到下游设备发送的通告报文时,若接收该通告报文的端口配置了该通告报文源MAC地址,则处理该通告报文。
根据通告报文的内容处理接收到的通告报文,具体如下:
当该接入设备接收到下游接入设备发送的通告报文,且携带的序列号同上一周期接收到的通告报文携带的序列号相同时,维持本地学习到的该通告报文的源MAC地址对应的所述用户设备的MAC地址不变。
当该接入设备接收到所述下游接入设备发送的通告报文,且携带的序列号同上一周期接收到的通告报文携带的序列号的差值为1时,根据接收到的通告报文更新本地学习到的该通告报文的源MAC地址对应的用户设备的MAC地址;
当该接入设备接收到的所述下游接入设备发送的通告报文,且携带的序列号与上一周期接收到的通告报文,携带的序列号的差值大于1时,向所述下游接入设备发送地址请求报文。具体实现时,地址请求报文可以通过UPD-REQ报文实现。
该接入设备接收到所述下游接入设备发送的地址请求应答报文时,根据该地址请求应答报文中的用户设备的MAC地址更新本地学习到的该地址请求应答报文的源MAC地址对应的所述用户设备的MAC地址。
发送通告报文的接入设备接收到该地址请求报文时,将当前学习到UNI上的所有用户设备的MAC地址通过地址请求应答报文发送给该接入设备。地址请求应答报文也通过单播报文形式发送。
该接入设备接收到所述下游接入设备发送的地址请求应答报文时,根据该地址请求应答报文中的用户设备的MAC地址更新本地学习到的该地址请求应答报文的源MAC地址对应的所述用户设备的MAC地址。
步骤202,该设备若接收该通告报文的端口未配置该通告报文源MAC地址,则丢弃该通告报文。
该实施例中在通过通告报文学习用户设备的MAC地址时,同时记录发送该通告报文的设备的MAC地址,以使通过通告报文学习到该用户设备的MAC地址的设备,获知所述用户设备的MAC地址通过那个设备同步学习到的,并且在后续维护,如更新学习到的用户设备的MAC地址时,确定哪个下游设备的MAC地址对应学习到的用户设备的MAC地址。
该实施例中采用了多余路径接收端阻断,而不是在发送端阻断,避免了增加额外的拓扑计算,给MAC地址同步带来的实现复杂度。
实施例三
组网中的任一接入设备的上游设备的MAC地址学习有两种途径,一种是根据接收的数据报文进行源MAC地址学习;另外一种是通过本发明具体实施例中提出的通告报文进行MAC地址学习。但是本发明在具体实现时,通过通告报文进行的MAC地址学习优先级高于通过数据报文进行的MAC地址学习。具体实现如下:
该接入设备接收到用户设备发送的数据报文时,本地若已通过接收通告报文进行源MAC地址学习时,不再对该数据报文进行源MAC地址学习;若本地未通过接收通告报文进行源MAC地址学习,对该数据报文进行源MAC地址学习。
因此,如果先接收到数据报文,要进行源MAC地址学习,如果已对某MAC通过通告报文进行学习,接收到源MAC地址为该MAC地址的数据报文,不再进行源MAC地址学习。
实施例四
结合附图,以具体实施例详细说明本发明如何实现向上游设备同步MAC地址的。
参见图3,图3为本发明实施例四中纵向组合组网示意图为例。图3中的汇聚设备为堆叠设备,堆叠设备包括成员设备A和成员设备B进行堆叠,其中,成员设备A和成员设备B之间通过堆叠链路通信。堆叠设备确定本级设备为最高级,如配置为0级。并通知下游邻居,L1接入设备A、L1接入设备B和L1接入设备C。这三个接入设备确定级数低于最高级的汇聚设备为次高级,如配置为1级。同样实现,L2接入设备A、L2接入设备B和L2接入设备C确定为最低级设备,如配置为2级。该堆叠设备中执行动作的主体为堆叠设备中选为主成员设备的成员设备。
图3中同级的接入设备之间横向无连接,部分接入设备多归属连接到多个上一级设备,且多归属链路为聚合链路。
用户设备1的MAC地址为MAC1,用户设备2的MAC地址为MAC2。L2接入设备A的MAC地址为MACL2A。L2接入设备A为存在UNI的设备,在该设备上配置组播MAC地址,并将端口L2-1-1和端口L2-1-2配置为配置的组播MAC地址的成员端口。由图3中可见,端口L2-1-1和端口L2-1-2为聚合端口,仍然需要都配置为组播MAC地址的成员端口,即本发明具体实施例中发送通告报文不受聚合的影响,所有上行端口均发送。
L2接入设备A如果接收到用户设备1发送的数据报文,将用户设备的MAC地址学习到UNI1上。
L2接入设备A周期地向上游设备发送通告报文,该通告报文的目的MAC地址为配置的组播MAC地址,源MAC地址为L2接入设备A的MAC地址。该通告报文当前通告的内容为学习到的用户设备的MAC地址MAC1。由于端口L2-1-1和端口L2-1-2都为该组播MAC地址的成员端口,因此,该通告报文从这两个端口都会发出。
在向上游设备周期通告过程中,如果学习到的用户设备的MAC地址有变化,在所述周期到时,则发送携带序列号递增的通告报文;如果学习到的用户设备的MAC地址无变化,在所述周期到时,发送携带序列号同上一周期发送的通告报文携带的序列号相同的通告报文。
L1接入设备A和L2接入设备B都会接收到L2接入设备A发送的通告报文,以L1接入设备A为例描述处理过程。
L1接入设备A到达L2接入设备A的端口只有端口L1-11-1,在该端口上配置L2接入设备A的MAC地址MACL2A,表示通过该端口接收到源MAC地址为MACL2A的通告报文时,进行处理。
如果L1接入设备A到达L2接入设备A的端口存在多个,则在该多个端口中选择一个端口,并在该选择的端口上配置L2接入设备A的MAC地址MACL2A,表示通过该选择的端口接收到源MAC地址为MACL2A的通告报文时,进行处理,通过其他端口接收到时,丢弃接收到的通告报文。
L1接入设备A通过端口L1-11-1接收到L2接入设备A发送的通告报文时,确定该通告报文的源MAC地址为该端口上配置的MAC地址,则将该通告报文中的用户设备的MAC地址学习到端口L1-11-1上。
L1接入设备A有两个上行端口,分别为端口L1-1-1和端口L1-1-2,将这两个端口也配置为L2接入设备A上配置的组播MAC地址的成员端口。L1接入设备A接收到L2接入设备A发送的通告报文时,分别通过端口L1-1-1和端口L1-1-2转发给上游设备。
成员设备A上有到达存在UNI的L2接入设备A两个端口,分别为端口A-1和端口A-2。选择一个端口,如端口A-1上配置L2接入设备A的MAC地址MACL2A,另外一个端口A-2不配置L2接入设备A的MAC地址,不配置L2接入设备A的MAC地址的端口,在接收到源MAC地址为MACL2A的通告报文时,不对该通告报文中通告的用户设备的MAC地址进行学习,丢弃接收到的通告报文。
汇聚设备端口A-3不可达存在UNI的接入设备,因此不进行本发明具体实施例中的处理。
成员设备A通过端口A-1接收到L1接入设备A转发的L2接入设备A发送的通告报文时,确定该通告报文的源MAC地址为端口A-1上配置的端口,将该通告报文中的用户设备的MAC地址学习到端口A-1和端口A-2上。
由于用户设备1的MAC地址学习到了可达L2接入设备A的两个端口上,在成员设备A接收到目的MAC地址为MAC1的数据报文时,可以通过如哈希算法,选择端口发送,可以使下行单播流量更均匀。
成员设备A通过端口A-2接收到L1接入设备转发的L2接入设备A发送的通告报文时,确定该通告报文的源MAC地址未在端口A-2上配置,不学习该通告报文通告的用户设备的MAC地址,将该通告报文丢弃。
L2接入设备A在发送通告报文时,本地学习到UNI上的用户设备的MAC地址变化,且在所述周期到时,则发送携带序列号递增的通告报文;如果学习到的用户设备的MAC地址无变化,在所述周期到时,发送携带序列号同上一周期发送的通告报文携带的序列号相同的通告报文。
这样,上游设备,如L1接入设备A和成员设备A在接收到携带递增序列号的通告报文时,根据当前接收到的通告报文携带的序列号,与前一次接收到的通告报文携带的序列号相比,如果差值大于1,说明有通告报文未被正常接收到,因此,会向L2接入设备A发送地址请求报文。
L2接入设备A接收到该地址请求报文时,将当前学习到UNI上的用户设备的MAC地址携带在地址请求应答报文中,通过单播的形式发送给发送地址请求报文的设备。
本发明具体实施例中基于同样的发明构思,还提出一种设备,可应用为包括接入设备和汇聚设备的组网中的接入设备或汇聚设备。参见图4,图4为本发明具体实施例中应用于上述技术的组网结构示意图。该组网中的同级接入设备横向无连接,该组网的拓扑为从上向下的交叉树形结构;该设备包括:学习单元401和收发单元402。
学习单元401,用于本设备若存在用户网络接口UNI,通过该UNI学习用户设备的MAC地址;当收发单元402接收到下游设备发送的通告报文时,将接收到的通告报文中的用户设备的MAC地址学习到本设备上可达该下游设备的各端口上。
收发单元402,用于当所述学习单元401通过UNI学习到用户设备的MAC地址时,向上游设备发送通告报文,通告学习到该UNI上的用户设备的MAC地址;若所述设备为汇聚设备,不向上游设备发送通告报文;接收下游设备发送的通告报文;当本设备为接入设备时,还需将接收到的通告报文转发给该设备的上游设备。
较佳地,该设备进一步包括:配置单元403。
配置单元403,当本设备为接入设备时,用于配置组播MAC地址,并将本设备的上行端口配置为该组播MAC地址的成员端口。
收发单元402,用于通过所述组播MAC地址对应的所有成员端口发送所述通告报文;所述通告报文的目的MAC地址为配置的组播MAC地址,源MAC地址为本接入设备的MAC地址。
较佳地,
配置单元403,进一步用于配置预设周期。
收发单元402,用于配置单元403配置的预设周期,当学习到UNI上的用户设备的MAC地址变化,且所述预设周期到时,发送携带序列号递增的通告报文,向所述上游设备通告本接入设备学习到UNI上的用户设备的MAC地址的变化;当学习到UNI上的用户设备的MAC地址未变化,且所述预设周期到时,发送携带与上一周期通告报文携带的序列号相同的通告报文,向所述上游设备通告本接入设备学习到UNI上的用户设备的MAC地址未变化。
较佳地,
学习单元401,进一步用于对学习到UNI上的用户设备的MAC地址进行老化,当老化时间到时,未接收到所述用户设备发送的数据报文时,老化学习到所述UNI上的用户设备的MAC地址。
收发单元402,进一步用于当学习单元401上学习到UNI上的用户设备的MAC地址老化,且配置单元403配置的所述预设周期到时,发送携带序列号递增的通告报文,通告所述上游设备删除学习到所述用户设备的MAC地址。
较佳地,
收发单元402,进一步用于接收下游设备发送的通告报文;接收所述下游设备发送的地址请求应答报文;
学习单元401,进一步用于当收发单元402接收到所述下游接入设备发送的通告报文,且携带的序列号同上一周期接收到的通告报文携带的序列号相同时,维持本地学习到的该通告报文的源MAC地址对应的所述用户设备的MAC地址;当收发单元402接收到所述下游接入设备发送的通告报文,且携带的序列号同上一周期接收到的通告报文携带的序列号的差值为1时,更新本地学习到的该通告报文的源MAC地址对应的所述用户设备的MAC地址;当收发单元402接收到的所述下游接入设备发送的通告报文,且携带的序列号与上一周期接收到的通告报文,携带的序列号的差值大于1时,向所述下游接入设备发送地址请求报文;当收发单元402接收到所述下游接入设备发送的地址请求应答报文时,根据该地址请求应答报文中的用户设备的MAC地址更新本地学习到的该应答报文的源MAC地址对应的所述用户设备的MAC地址。
配置单元403,进一步用于若本设备存在多个与存在UNI的下游接入设备可达的端口,选择一个端口并在该端口上配置所述下游接入设备的MAC地址。
学习单元401,进一步用于当收发单元402通过配置单元403配置的所述下游接入设备的MAC地址的端口,接收到所述下游设备发送的通告报文时,将该通告报文中通告的用户设备的MAC地址,学习到本设备可达所述下游接入设备的端口上;通过未配置所述下游接入设备的MAC地址的端口,接收到所述下游设备发送的通告报文时,丢弃该通告报文。
较佳地,
收发单元402,进一步用于接收用户设备发送的数据报文。
学习单元401,进一步用于当收发单元402接收到用户设备发送的数据报文时,本地若已通过通告报文对该数据报文的源MAC地址进行学习,不再对该数据报文进行源MAC地址学习;若本地未通过通告报文对该数据报文的源MAC地址进行学习,对该数据报文进行源MAC地址学习。
上述实施例的单元可以集成于一体,也可以分离部署;可以合并为一个单元,也可以进一步拆分成多个子单元。
综上所述,本发明具体实施例中通过组网中任一设备若存在UNI,向上游设备发送通告报文,通告本接入设备学习到UNI上的用户设备的MAC地址;当接收到下游设备发送的通告报文时,将接收到的通告报文中的用户设备的MAC地址学习到本设备上可达该下游设备的各端口上。通过该方法,该组网中任一设备能够同步到存在UNI的下游接入设备学习到UNI上的用户设备的MAC地址,进而不会使已知单播进行广播发送。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。