一种流量备份方法和设备
技术领域
本发明涉及通信技术领域,尤其涉及一种流量备份方法和设备。
背景技术
PBB(Provider backbone bridge,运营商骨干桥)网络和SPB(Shortest PathBridging,最短路径桥)网络都定义了双层MAC(Media Access Control,介质访问控制)地址的帧结构,并采用传统的MAC交换。PBB网络基于运营商MAC地址转发用户侧流量,而不是基于用户MAC地址转发用户侧流量。SPB网络是生成树协议的进一步延伸,旨在构建大型扁平的无阻塞二层网络。
现有技术中,SPB网络和PBB网络均实现了用户侧流量的正常转发,但是尚未实现对用户侧流量的备份,即SPB网络和PBB网络中并没有提供对用户侧流量进行备份的相关技术,从而导致无法对用户侧流量进行有效的监控。
发明内容
本发明实施例提供一种流量备份方法和设备,以对用户侧流量进行备份,从而能够对用户侧流量进行有效的监控。
为了达到上述目的,本发明实施例提供一种流量备份方法,应用于包括监控用户网络边缘CE设备、被监控CE设备和骨干网边缘桥BEB设备的网络中,所述监控CE设备、所述被监控CE设备与所述BEB设备连接,该方法应用于所述BEB设备,所述方法包括以下步骤:
所述BEB设备配置代理Agent策略,并维护监控介质访问控制MAC表和普通MAC表;该Agent策略用于使BEB设备在收到被监控CE设备通过被监控接入链路AC发送的报文时,通过监控AC将报文转发给监控CE设备;该监控MAC表用于记录被监控主机的MAC地址与被监控AC之间的对应关系;该普通MAC表用于记录被监控主机的MAC地址与监控AC之间的对应关系;
所述BEB设备在收到被监控CE设备通过被监控AC发送的第一业务报文时,匹配到所述Agent策略,并通过监控AC将所述第一业务报文转发给监控CE设备;所述BEB设备在收到所述监控CE设备通过所述监控AC返回的所述第一业务报文时,将所述第一业务报文发送给目的端设备;
所述BEB设备在收到目的MAC地址为被监控主机的MAC地址的第二业务报文时,利用所述被监控主机的MAC地址查询所述普通MAC表,确定出端口为监控AC,并通过所述监控AC将第二业务报文转发给监控CE设备;所述BEB设备在收到所述监控CE设备通过监控AC返回的第二业务报文时,利用所述被监控主机的MAC地址查询所述监控MAC表,确定出端口为被监控AC,并通过所述被监控AC将第二业务报文转发给被监控CE设备,由所述被监控CE设备将所述第二业务报文转发给被监控主机;
其中,所述BEB设备在收到监控CE设备通过监控AC发送的报文时,禁止将所述报文中携带的源MAC地址学习到监控MAC表和普通MAC表。
本发明实施例提供一种流量备份方法,应用于包括监控用户网络边缘CE设备、被监控CE设备、第一骨干网边缘桥BEB设备和第二BEB设备的网络中,所述监控CE设备与第一BEB设备连接,所述被监控CE设备与第二BEB设备连接,该方法应用于所述第一BEB设备,所述方法包括以下步骤:
所述第一BEB设备配置代理Agent策略,并维护监控介质访问控制MAC表和普通MAC表;所述Agent策略用于使所述第一BEB设备在收到所述第二BEB设备通过监控伪线PW发送的报文时,通过监控接入链路AC将所述报文转发给所述监控CE设备;所述监控MAC表用于记录所述被监控主机的MAC地址与所述监控PW之间的对应关系;所述普通MAC表用于记录所述被监控主机的MAC地址与所述监控AC之间的对应关系;
所述第一BEB设备在收到所述第二BEB设备通过监控PW发送的第一业务报文时,匹配到所述Agent策略,并通过监控AC将所述第一业务报文转发给监控CE设备;所述第一BEB设备在收到所述监控CE设备通过所述监控AC返回的第一业务报文时,将所述第一业务报文发送给目的端设备;其中,所述第一业务报文是所述第二BEB设备在收到被监控CE设备通过被监控AC发送的第一业务报文后,通过监控PW转发给第一BEB设备的;
所述第一BEB设备在收到目的MAC地址为被监控主机的MAC地址的第二业务报文时,利用所述被监控主机的MAC地址查询所述普通MAC表,确定出端口为监控AC,并通过所述监控AC将所述第二业务报文转发给监控CE设备;所述第一BEB设备在收到所述监控CE设备通过监控AC返回的第二业务报文时,利用所述被监控主机的MAC地址查询所述监控MAC表,确定出端口为监控PW,并通过所述监控PW将所述第二业务报文转发给第二BEB设备;由所述第二BEB设备在收到第一BEB设备通过监控PW发送的第二业务报文时,通过被监控AC将所述第二业务报文转发给被监控CE设备,由被监控CE设备将所述第二业务报文转发给被监控主机;
其中,所述第一BEB设备在收到监控CE设备通过监控AC发送的报文时,禁止将报文中携带的源MAC地址学习到监控MAC表和普通MAC表。
本发明实施例提供一种流量备份方法,应用于包括监控用户网络边缘CE设备、被监控CE设备、第一骨干网边缘桥BEB设备和第二BEB设备的网络中,所述监控CE设备与第一BEB设备连接,所述被监控CE设备与第二BEB设备分别连接,该方法应用于所述第二BEB设备,所述方法包括以下步骤:
所述第二BEB设备配置代理Agent策略,并维护监控介质访问控制MAC表和普通MAC表;所述Agent策略用于使所述第二BEB设备在收到所述被监控CE设备通过被监控接入链路AC发送的报文时,通过监控伪线PW将报文转发给所述第一BEB设备;所述监控MAC表用于记录所述被监控主机的MAC地址与所述被监控AC之间的对应关系;所述普通MAC表用于记录所述被监控主机的MAC地址与所述监控PW之间的对应关系;
所述第二BEB设备在收到被监控CE设备通过被监控AC发送的第一业务报文时,匹配到所述Agent策略,并通过监控PW将所述第一业务报文转发给所述第一BEB设备;由所述第一BEB设备在通过监控PW收到第一业务报文时,通过监控AC将所述第一业务报文转发给监控CE设备;
所述第二BEB设备接收所述第一BEB设备通过监控PW发送的目的MAC地址为所述被监控主机的MAC地址的第二业务报文,利用所述被监控主机的MAC地址查询所述监控MAC表,确定出端口为被监控AC,并通过所述被监控AC将所述第二业务报文转发给所述被监控CE设备,并由所述被监控CE设备将所述第二业务报文转发给所述被监控主机;
其中,所述第二BEB设备在收到第一BEB设备通过监控PW发送的报文时,禁止将报文中携带的源MAC地址学习到监控MAC表和普通MAC表。
本发明实施例提供一种骨干网边缘桥BEB设备,应用于包括监控用户网络边缘CE设备、被监控CE设备和所述BEB设备的网络中,所述监控CE设备、所述被监控CE设备与所述BEB设备连接,所述BEB设备具体包括:
维护模块,用于配置代理Agent策略,维护监控介质访问控制MAC表和普通MAC表;Agent策略用于使BEB设备在收到被监控CE设备通过被监控接入链路AC发送的报文时,通过监控AC将报文转发给监控CE设备;该监控MAC表用于记录被监控主机的MAC地址与被监控AC之间的对应关系;该普通MAC表用于记录被监控主机的MAC地址与监控AC之间的对应关系;
接收模块,用于接收被监控CE设备通过被监控AC发送的第一业务报文;以及,接收所述监控CE设备通过所述监控AC返回的所述第一业务报文;以及,接收目的MAC地址为被监控主机的MAC地址的第二业务报文;以及,接收所述监控CE设备通过监控AC返回的第二业务报文;其中,所述接收模块在收到监控CE设备通过监控AC发送的报文时,禁止将所述报文中携带的源MAC地址学习到所述监控MAC表和所述普通MAC表;
发送模块,用于在收到被监控CE设备通过被监控AC发送的第一业务报文时,匹配到所述Agent策略,并通过监控AC将所述第一业务报文转发给监控CE设备;以及,在收到所述监控CE设备通过所述监控AC返回的所述第一业务报文时,将所述第一业务报文发送给目的端设备;
处理模块,用于在收到目的MAC地址为被监控主机的MAC地址的第二业务报文时,利用所述被监控主机的MAC地址查询所述普通MAC表,确定出端口为监控AC,并通过所述监控AC将所述第二业务报文转发给监控CE设备;以及,在收到所述监控CE设备通过监控AC返回的第二业务报文时,利用所述被监控主机的MAC地址查询所述监控MAC表,确定出端口为被监控AC,并通过所述被监控AC将第二业务报文转发给被监控CE设备,由所述被监控CE设备将所述第二业务报文转发给被监控主机。
本发明实施例提供一种骨干网边缘桥BEB设备,作为第一BEB设备应用于包括监控用户网络边缘CE设备、被监控CE设备、所述第一BEB设备和第二BEB设备的网络中,所述监控CE设备与第一BEB设备连接,所述被监控CE设备与第二BEB设备连接,所述第一BEB设备具体包括:
维护模块,用于配置代理Agent策略,并维护监控介质访问控制MAC表和普通MAC表;所述Agent策略用于使所述第一BEB设备在收到所述第二BEB设备通过监控伪线PW发送的报文时,通过监控接入链路AC将所述报文转发给所述监控CE设备;所述监控MAC表用于记录所述被监控主机的MAC地址与所述监控PW之间的对应关系;所述普通MAC表用于记录所述被监控主机的MAC地址与所述监控AC之间的对应关系;
接收模块,用于接收所述第二BEB设备通过监控PW发送的第一业务报文;以及,接收所述监控CE设备通过所述监控AC返回的所述第一业务报文;以及,接收目的MAC地址为被监控主机的MAC地址的第二业务报文;以及,接收所述监控CE设备通过监控AC返回的第二业务报文;其中,所述接收模块在收到监控CE设备通过监控AC发送的报文时,禁止将所述报文中携带的源MAC地址学习到所述监控MAC表和所述普通MAC表;
发送模块,用于在收到所述第二BEB设备通过监控PW发送的第一业务报文时,匹配到所述Agent策略,并通过监控AC将所述第一业务报文转发给监控CE设备;在收到所述监控CE设备通过所述监控AC返回的第一业务报文时,将所述第一业务报文发送给目的端设备;其中,所述第一业务报文是所述第二BEB设备在收到被监控CE设备通过被监控AC发送的第一业务报文后,通过监控PW转发给所述第一BEB设备的;
处理模块,用于在收到目的MAC地址为被监控主机的MAC地址的第二业务报文时,利用所述被监控主机的MAC地址查询所述普通MAC表,确定出端口为监控AC,并通过所述监控AC将所述第二业务报文转发给监控CE设备;在收到所述监控CE设备通过监控AC返回的第二业务报文时,利用所述被监控主机的MAC地址查询所述监控MAC表,确定出端口为监控PW,并通过所述监控PW将所述第二业务报文转发给第二BEB设备;
由所述第二BEB设备在收到第一BEB设备通过监控PW发送的第二业务报文时,通过被监控AC将所述第二业务报文转发给被监控CE设备,由被监控CE设备将所述第二业务报文转发给被监控主机。
本发明实施例提供一种骨干网边缘桥BEB设备,作为第二BEB设备应用于包括监控用户网络边缘CE设备、被监控CE设备、第一BEB设备和所述第二BEB设备的网络中,所述监控CE设备与第一BEB设备连接,所述被监控CE设备与第二BEB设备连接,所述第二BEB设备具体包括:
维护模块,用于配置代理Agent策略,并维护监控介质访问控制MAC表和普通MAC表;所述Agent策略用于使所述第二BEB设备在收到所述被监控CE设备通过被监控接入链路AC发送的报文时,通过监控伪线PW将报文转发给所述第一BEB设备;所述监控MAC表用于记录所述被监控主机的MAC地址与所述被监控AC之间的对应关系;所述普通MAC表用于记录所述被监控主机的MAC地址与所述监控PW之间的对应关系;
接收模块,用于接收所述被监控CE设备通过被监控AC发送的第一业务报文;以及,接收所述第一BEB设备通过监控PW发送的目的MAC地址为所述被监控主机的MAC地址的第二业务报文;其中,所述接收模块在收到所述第一BEB设备通过监控PW发送的报文时,禁止将所述报文中携带的源MAC地址学习到所述监控MAC表和所述普通MAC表;
发送模块,用于在收到被监控CE设备通过被监控AC发送的第一业务报文时,匹配到所述Agent策略,并通过监控PW将所述第一业务报文转发给所述第一BEB设备;由所述第一BEB设备在通过监控PW收到第一业务报文时,通过监控AC将所述第一业务报文转发给监控CE设备;
处理模块,用于在收到所述第一BEB设备通过监控PW发送的目的MAC地址为所述被监控主机的MAC地址的第二业务报文时,利用所述被监控主机的MAC地址查询所述监控MAC表,确定出端口为被监控AC,并通过所述被监控AC将所述第二业务报文转发给所述被监控CE设备,并由所述被监控CE设备将所述第二业务报文转发给所述被监控主机。
与现有技术相比,本发明实施例至少具有以下优点:本发明实施例中,通过在BEB设备上配置Agent策略,并维护监控MAC表和普通MAC表,使得BEB设备能够将来自被监控CE设备的报文转发到监控服务器上,由监控服务器对报文进行备份,从而在不影响原有组网架构和用户侧流量的情况下,实现用户侧流量的实时备份,并能够对用户侧流量进行有效的监控。
附图说明
图1是本发明实施例一的应用场景示意图;
图2是本发明实施例一提供的一种流量备份方法流程示意图;
图3是本发明实施例二的应用场景示意图;
图4是本发明实施例二提供的一种流量备份方法流程示意图;
图5是本发明实施例三提供的一种BEB设备的结构示意图;
图6是本发明实施例四提供的一种BEB设备的结构示意图;
图7是本发明实施例五提供的一种BEB设备的结构示意图。
具体实施方式
针对现有技术中存在的问题,本发明实施例提供一种流量备份方法,该方法应用于包括监控CE(Customer Edge,用户网络边缘)设备、被监控CE设备和多个BEB(Backbone Edge Bridge,骨干网边缘桥)设备的MAC-in-MAC网络(如SPB网络和PBB网络)中。其中,该监控CE设备和被监控CE设备为用户配置的,且该监控CE设备与监控服务器连接,该被监控CE设备与被监控主机连接,该监控服务器用于对被监控主机的流量进行备份和监控。
本发明实施例中,监控CE设备和被监控CE设备可以位于同一个数据中心内部,在此情况下,监控CE设备和被监控CE设备连接到同一个BEB设备上;监控CE设备和被监控CE设备还可以位于不同的数据中心,在此情况下,监控CE设备和被监控CE设备连接到不同的BEB设备上。
以下结合具体实施例对监控CE设备和被监控CE设备连接到同一个BEB设备,监控CE设备和被监控CE设备连接到不同的BEB设备分别进行说明。
实施例一
本发明实施例提供一种流量备份方法,针对监控CE设备和被监控CE设备连接到同一个BEB设备进行说明。本实施例中,监控CE设备与监控服务器和BEB设备分别连接,被监控CE设备与被监控主机和BEB设备分别连接。以图1为本发明实施例的应用场景示意图,Host11为监控服务器,Host10为被监控主机,配置CE11为监控CE设备,配置CE10为被监控CE设备。
进一步的,被监控CE设备与BEB设备之间的AC(Attachment Circuit,接入链路)分为被监控AC和其它AC两种类型,被监控AC用于传输被监控主机对应的报文,其它AC用于传输正常主机对应的报文;监控CE设备与BEB设备之间的AC分为监控AC和其它AC两种类型,监控AC用于传输与被监控主机相关的报文,其它AC用于传输正常主机对应的报文。其中,被监控AC和监控AC由用户静态配置,一般情况下以BEB设备上的端口和VLAN(Virtual Local Area Network,虚拟局域网)唯一标识被监控AC或者监控AC。
本发明实施例中,BEB设备上需要在VSI(Virtual Service Instance,虚拟服务实例)内维护监控MAC表和普通MAC表(Common MAC表)。该监控MAC表中保存了VSI实例内所有主机的MAC地址,各主机的MAC地址从被监控AC和其它AC上学习得到;对于从被监控AC上学习得到的MAC地址,普通MAC表中记录的出端口总是监控AC,对于从其它AC上学习得到的MAC地址,普通MAC表中记录的出端口为真实的AC。基于此,监控MAC表中记录有被监控主机的MAC地址与被监控AC之间的对应关系,普通MAC表中记录有被监控主机的MAC地址与监控AC之间的对应关系。
需要说明的是,BEB设备在收到监控CE设备通过监控AC发送的报文时,禁止将报文中携带的源MAC地址学习到监控MAC表和普通MAC表中。
本发明实施例中,BEB设备上还需要在VSI内配置Agent(代理)策略(Agent侧策略),该Agent策略用于使BEB设备在收到被监控CE设备通过被监控AC发送的报文时,通过监控AC将该报文转发给监控CE设备。
本发明实施例中,在未知被监控主机的MAC地址的情况下,BEB设备在收到被监控CE设备通过被监控AC发送的来自被监控主机的广播报文和/或单播报文时,需要学习广播报文和/或单播报文中携带的被监控主机的MAC地址,并在监控MAC表中记录被监控主机的MAC地址的出端口为被监控AC,并在普通MAC表中记录被监控主机的MAC地址的出端口为监控AC。此外,BEB设备在收到广播报文和/或单播报文后,将匹配到Agent策略,并通过监控AC将广播报文和/或单播报文转发给监控CE设备。
例如,源端主机(如BEB1下挂的Host10)为了访问目的端主机(BEB2下挂的Host20),源端主机需要学习目的端主机的MAC地址,目的端主机也需要学习源端主机的MAC地址,且源端主机与目的端主机之间经过的各设备需要学习源端主机和目的端主机的MAC地址。为了实现上述过程,需要由源端主机发送源MAC地址为本源端主机的MAC地址的广播报文,并由目的端主机在收到广播报文后,返回针对该广播报文的源MAC地址为本目的端主机的MAC地址的单播响应报文;或者,由目的端主机发送源MAC地址为本目的端主机的MAC地址的广播报文,并由源端主机在收到广播报文后,返回针对该广播报文的源MAC地址为本源端主机的MAC地址的单播响应报文。
基于上述陈述,为了方便描述,本发明实施例中,以广播报文为ARP请求报文,单播报文为ARP应答报文为例进行说明。
结合图1所示的应用场景,假设BEB1下挂的Host10访问BEB2下挂的Host20,且Host10和Host20上初始时均没有对方的ARP(Address ResolutionProtocol,地址解析协议)信息,以Host10请求Host20的ARP信息为例,则以下对BEB设备维护监控MAC表和普通MAC表的过程进行详细说明。
Host10向CE10发送ARP请求报文,该ARP请求报文的目的MAC地址为广播地址(如FFFF-FFFF-FFFF),该ARP请求报文的源MAC地址为Host10的MAC地址(如MAC1)。CE10在收到ARP请求报文后,通过被监控AC将该ARP请求报文转发给BEB1。BEB1接收CE10通过被监控AC发送的来自Host10的ARP请求报文,该ARP请求报文的目的MAC地址为广播地址,该ARP请求报文的源MAC地址为Host10的MAC地址(如MAC1)。
BEB1在收到ARP请求报文后,在VSI内进行报文转发,触发源MAC地址学习和目的MAC地址查找,即BEB1学习ARP请求报文中携带的Host10的MAC地址(如MAC1),其真实端口为被监控AC,因此BEB1在监控MAC表中记录Host10的MAC地址(如MAC1)的出端口为被监控AC,并在普通MAC表中记录Host10的MAC地址(如MAC1)的出端口为监控AC。
BEB1在收到ARP请求报文后,在执行目的MAC地址转发时,将匹配到Agent策略,因此BEB1通过监控AC将ARP请求报文转发给CE11;CE11在收到ARP请求报文后,将ARP请求报文转发给Host11;Host11在收到ARP请求报文后,对该ARP请求报文进行备份,以对该ARP请求报文进行监控;进一步的,CE11还需要将ARP请求报文返回给BEB1。
其中,在CE11将ARP请求报文返回给BEB1的过程中,CE11可以在将ARP请求报文转发给Host11后,直接通过监控AC将CE11上收到的来自BEB1的ARP请求报文返回给BEB1;或者,CE11在将ARP请求报文转发给Host11后,由Host11在对ARP请求报文备份完成后,将该ARP请求报文返回给CE11,之后由CE11在收到来自Host11的ARP请求报文后,通过监控AC将该ARP请求报文返回给BEB1。在Host11将该ARP请求报文返回给CE11之前,该Host11还可以对该ARP请求报文中的内容进行修改,该过程不再赘述。
需要注意的是,CE11在向BEB1返回报文时,可以采用上述两种方式的一种将报文返回给BEB1,为了方便描述,后续报文的返回方式以第二种为例进行说明,即CE11在收到Host11返回的报文后,将报文返回给BEB1。
其中,BEB1在收到ARP请求报文后,虽然ARP请求报文的目的MAC地址为广播地址,但是由于该ARP请求报文能够匹配到Agent策略,因此BEB1通过监控AC将ARP请求报文转发给CE11;BEB1在收到CE11通过监控AC返回的ARP请求报文时,才以广播方式发送ARP请求报文。
BEB1在收到CE11通过监控AC返回的ARP请求报文时,禁止源MAC地址学习,并在执行目的MAC地址查找时,由于ARP请求报文的目的MAC地址为广播地址,因此BEB1以广播方式发送ARP请求报文,以将ARP请求报文最终发送给目的端设备(如Host20)。具体的,BEB1以广播方式发送ARP请求报文时,ARP请求报文被广播到VSI内所有AC侧和PW(伪线)侧;因此BEB2能够收到ARP请求报文,且BEB1发送给BEB2的ARP请求报文是经过MAC-in-MAC封装后的ARP请求报文,即ARP请求报文之前封装有MAC-in-MAC头,该MAC-in-MAC头的源MAC地址为BEB1的MAC地址,目的MAC地址为BEB2的MAC地址。BEB1以广播方式发送ARP请求报文时,基于源MAC地址过滤功能,该ARP请求报文不会被发送到CE10和CE11。
BEB2在收到来自BEB1的MAC-in-MAC封装后的ARP请求报文后,解封装MAC-in-MAC头,得到解封装后的ARP请求报文,该ARP请求报文的目的MAC地址为广播地址,源MAC地址为Host10的MAC地址。之后,BEB2在VSI内进行报文转发,触发源MAC地址学习和目的MAC地址查找,即学习ARP请求报文中携带的Host10的MAC地址(MAC1),其出端口为BEB2与BEB1之间的PW(如PW21)。BEB2在执行目的MAC地址查找时,ARP请求报文的目的MAC地址为广播地址,因此以广播方式发送ARP请求报文,该ARP请求报文被广播到CE20;CE20将该ARP请求报文广播到Host20。
Host20在收到ARP请求报文后,学习Host10的MAC地址(MAC1),生成ARP应答报文,该ARP应答报文的目的MAC地址为Host10的MAC地址(MAC1),该ARP应答报文的源MAC地址为Host20的MAC地址(MAC2)。之后,Host20将该ARP应答报文发送给CE20。CE20在收到该ARP应答报文后,将该ARP应答报文发送给BEB2。BEB2在收到该ARP应答报文后,在VSI内进行报文转发,触发源MAC地址学习和目的MAC地址查找,即BEB2学习ARP应答报文中携带的Host20的MAC地址(如MAC2)。
BEB2在收到ARP应答报文后,在执行目的MAC地址转发时,由于目的MAC地址为MAC1,查找到MAC1对应的出端口为BEB2与BEB1之间的PW(PW21),因此BEB2通过PW21将ARP应答报文发送给BEB1。BEB2发送给BEB1的ARP应答报文是经过MAC-in-MAC封装后的ARP应答报文,即该ARP应答报文之前封装有MAC-in-MAC头,该MAC-in-MAC头的源MAC地址为BEB2的MAC地址,目的MAC地址为BEB1的MAC地址。
BEB1在收到来自BEB2的MAC-in-MAC封装后的ARP应答报文后,解封装MAC-in-MAC头,得到解封装后的ARP应答报文,该ARP应答报文的目的MAC地址为Host10的MAC地址(MAC1),该ARP应答报文的源MAC地址为Host20的MAC地址(MAC2)。之后,BEB1在VSI内进行报文转发,触发源MAC地址学习和目的MAC地址查找,即学习ARP应答报文中携带的Host20的MAC地址(MAC2),其出端口为BEB1与BEB2之间的PW(如PW12)。基于此,BEB1需要将ARP应答报文的源MAC地址(MAC2)以及接收端口(PW12)学习到普通MAC表,以使BEB1后续能够利用ARP应答报文的源MAC地址和接收端口将业务报文发送给目的端设备。此外,BEB1还可以将ARP应答报文的源MAC地址以及接收端口学习到监控MAC表。
BEB1在收到ARP应答报文后,BEB1在执行目的MAC地址查找时,由于ARP应答报文的目的MAC地址为Host10的MAC地址(MAC1),因此BEB1利用Host10的MAC地址(MAC1)查询普通MAC表,确定出端口为监控AC,并通过监控AC将ARP应答报文转发给CE11;CE11在收到ARP应答报文后,将ARP应答报文转发给Host11;Host11在收到ARP应答报文后,对该ARP应答报文进行备份,以对该ARP应答报文进行监控;Host11在对ARP应答报文备份完成后,将该ARP应答报文返回给CE11;CE11在收到ARP应答报文后,通过监控AC将该ARP应答报文返回给BEB1。
BEB1在收到CE11通过监控AC返回的ARP应答报文时,禁止源MAC地址学习,并在执行目的MAC地址查找时,由于ARP应答报文的目的MAC地址为Host10的MAC地址,因此BEB1利用Host10的MAC地址(MAC1)查询监控MAC表,确定出端口为被监控AC,并通过被监控AC将ARP应答报文转发给CE10;CE10在收到ARP应答报文后,将ARP应答报文转发给Host10;Host10在收到ARP应答报文后,学习Host20的MAC地址(MAC2)。
结合图1所示的应用场景,假设Host10和Host20上初始时均没有对方的ARP信息,以Host20请求Host10的ARP信息为例,则以下对BEB设备维护监控MAC表和普通MAC表的过程进行详细说明。
Host20向CE20发送ARP请求报文,该ARP请求报文的目的MAC地址为广播地址,该ARP请求报文的源MAC地址为Host20的MAC地址(如MAC2)。CE20在收到ARP请求报文后,将该ARP请求报文转发给BEB2。BEB2在收到ARP请求报文后,学习ARP请求报文的源MAC地址,在MAC表中记录Host20的MAC地址(如MAC2)的出端口为BEB2与CE20之间的AC。由于ARP请求报文的目的MAC地址为广播地址,因此BEB2以广播方式发送该ARP请求报文,即ARP请求报文会被发送给BEB1,且BEB2发送给BEB1的ARP请求报文是经过MAC-in-MAC封装后的ARP请求报文,该ARP请求报文之前封装有MAC-in-MAC头,该MAC-in-MAC头的源MAC地址为BEB2的MAC地址,目的MAC地址为BEB1的MAC地址。
BEB1在收到来自BEB2的MAC-in-MAC封装后的ARP请求报文后,解封装MAC-in-MAC头,得到解封装后的ARP请求报文,该ARP请求报文的目的MAC地址为广播地址,ARP请求报文的源MAC地址为Host20的MAC地址(如MAC2)。之后,BEB1在VSI内进行报文转发,触发源MAC地址学习和目的MAC地址查找,即学习ARP请求报文中携带的Host20的MAC地址(MAC2),其出端口为BEB1与BEB2之间的PW(如PW12)。基于此,BEB1需要将ARP请求报文的源MAC地址(MAC2)以及接收端口(PW12)学习到普通MAC表,以使BEB1后续能够利用ARP请求报文的源MAC地址和接收端口将业务报文发送给目的端设备。此外,BEB1还可以将ARP请求报文的源MAC地址以及接收端口学习到监控MAC表。
BEB1在收到ARP请求报文后,由于该ARP请求报文的目的MAC地址为广播地址,因此BEB1以广播方式发送该ARP请求报文,此时该ARP请求报文会在CE10和CE11上广播,以最终通过CE10将该ARP请求报文发送给被监控主机Host10。Host10在收到ARP请求报文后,学习Host20的MAC地址(MAC2),生成ARP应答报文,该ARP应答报文的目的MAC地址为Host20的MAC地址(MAC2),该ARP应答报文的源MAC地址为Host10的MAC地址(MAC1)。之后,Host10将该ARP应答报文发送给CE10。CE10在收到该ARP应答报文后,将该ARP应答报文发送给BEB1。
BEB1在收到ARP应答报文后,在VSI内进行报文转发,触发源MAC地址学习和目的MAC地址查找,即BEB1学习ARP应答报文中携带的Host10的MAC地址(如MAC1),其真实端口为被监控AC,因此BEB1在监控MAC表中记录Host10的MAC地址(如MAC1)的出端口为被监控AC,并在普通MAC表中记录Host10的MAC地址(如MAC1)的出端口为监控AC。
BEB1在收到ARP应答报文后,在执行目的MAC地址转发时,将匹配到Agent策略,因此BEB1通过监控AC将ARP应答报文转发给CE11;CE11在收到ARP应答报文后,将ARP应答报文转发给Host11;Host11在收到ARP应答报文后,对该ARP应答报文进行备份,以对该ARP应答报文进行监控;Host11在对ARP应答报文备份完成后,将该ARP应答报文返回给CE11,之后由CE11在收到来自Host11的ARP应答报文后,通过监控AC将该ARP应答报文返回给BEB1。在Host11将该ARP应答报文返回给CE11之前,该Host11还可以对该ARP应答报文中的内容进行修改,该过程不再赘述。
BEB1在收到CE11通过监控AC返回的ARP应答报文时,禁止源MAC地址学习,并在执行目的MAC地址查找时,通过ARP应答报文的目的MAC地址(MAC2)查询普通MAC表。由于之前的学习过程中,BEB1已经将ARP请求报文的源MAC地址(MAC2)以及接收端口(PW12)学习到普通MAC表,因此BEB1通过ARP应答报文的目的MAC地址(MAC2)查询普通MAC表时,对应的出端口为PW12,并通过PW12将ARP应答报文发送给BEB2。BEB1发送给BEB2的ARP应答报文是经过MAC-in-MAC封装后的ARP应答报文,即ARP应答报文之前封装有MAC-in-MAC头,MAC-in-MAC头的源MAC地址为BEB1的MAC地址,目的MAC地址为BEB2的MAC地址。
BEB2在收到来自BEB1的MAC-in-MAC封装后的ARP应答报文后,解封装MAC-in-MAC头,得到解封装后的ARP应答报文,该ARP应答报文的目的MAC地址为Host20的MAC地址,源MAC地址为Host10的MAC地址。之后,BEB2在VSI内进行报文转发,触发源MAC地址学习和目的MAC地址查找,即学习ARP应答报文中携带的Host10的MAC地址(MAC1),其出端口为BEB2与BEB1之间的PW(如PW21)。
BEB2在执行目的MAC地址查找时,由于ARP应答报文的目的MAC地址为Host20的MAC地址(如MAC2),且之前已经在MAC表中记录Host20的MAC地址(如MAC2)的出端口为BEB2与CE20之间的AC,因此BEB2将ARP应答报文发送给CE20,由CE20将该ARP应答报文发送给Host20,并由Host20学习ARP应答报文中携带的Host10的MAC地址(MAC1)。
基于BEB设备上配置的Agent策略,以及BEB设备上维护的监控MAC表和普通MAC表,如图2所示,业务报文的流量备份方法包括以下步骤:
步骤201,Host10向CE10发送第一业务报文(单播业务报文),CE10在收到第一业务报文后,通过被监控AC将该第一业务报文转发给BEB1,由BEB1接收CE10通过被监控AC发送的来自Host10的第一业务报文。其中,该第一业务报文的目的MAC地址为Host20的MAC地址(如MAC2),该第一业务报文的源MAC地址为Host10的MAC地址(如MAC1)。
步骤202,BEB1在收到CE10通过被监控AC发送的第一业务报文时,匹配到Agent策略,并通过监控AC将第一业务报文转发给CE11。
BEB1在收到CE10通过被监控AC发送的第一业务报文后,在VSI内进行报文转发,触发源MAC地址学习和目的MAC地址查找,由于BEB1已经学习过第一业务报文中携带的Host10的MAC地址,因此直接执行目的MAC地址转发,并匹配到Agent策略,通过监控AC将第一业务报文转发给CE11。
步骤203,CE11将第一业务报文转发给Host11,Host11对第一业务报文进行备份,以对第一业务报文进行监控,在对第一业务报文备份完成后,将第一业务报文返回给CE11,CE11通过监控AC将第一业务报文返回给BEB1。
步骤204,BEB1在收到CE11通过监控AC返回的第一业务报文时,禁止源MAC地址学习,并在执行目的MAC地址查找时,利用目的MAC地址(MAC2)对应的出端口(PW12)将第一业务报文发送给BEB2。其中,BEB1发送给BEB2的第一业务报文是经过MAC-in-MAC封装后的第一业务报文,即该第一业务报文之前封装有MAC-in-MAC头,该MAC-in-MAC头的源MAC地址为BEB1的MAC地址,目的MAC地址为BEB2的MAC地址。
BEB2在收到来自BEB1的MAC-in-MAC封装后的第一业务报文后,解封装MAC-in-MAC头,得到解封装后的第一业务报文,该第一业务报文的目的MAC地址为Host20的MAC地址(如MAC2),该第一业务报文的源MAC地址为Host10的MAC地址。之后,BEB2在VSI内进行报文转发时,利用第一业务报文的目的MAC地址(如MAC2)查找对应的出端口,并通过该出端口将第一业务报文转发给CE20,由CE20转发第一业务报文到主机Host20。
Host20在收到第一业务报文后,可以向Host10返回第二业务报文(即第一业务报文的响应报文),或者第二业务报文为Host20主动向Host10发送的业务报文,该第二业务报文的目的MAC地址为Host10的MAC地址(如MAC1),该第二业务报文的源MAC地址为Host20的MAC地址(如MAC2)。基于此,Host20将该第二业务报文发送给CE20。CE20在收到该第二业务报文后,将该第二业务报文发送给BEB2。BEB2在收到该第二业务报文后,在VSI内进行报文转发,触发源MAC地址学习和目的MAC地址查找。由于BEB2已经学习过第二业务报文中携带的Host20的MAC地址,因此直接执行目的MAC地址转发。在执行目的MAC地址转发时,由于目的MAC地址为MAC1,查找到MAC1对应的出端口为BEB2与BEB1之间的PW(PW21),因此BEB2通过PW21将第二业务报文发送给BEB1。BEB2发送给BEB1的第二业务报文是经过MAC-in-MAC封装后的第二业务报文,即该第二业务报文之前封装有MAC-in-MAC头,该MAC-in-MAC头的源MAC地址为BEB2的MAC地址,目的MAC地址为BEB1的MAC地址。
步骤205,BEB1在收到来自BEB2的第二业务报文之后,利用该第二业务报文的目的MAC地址(即Host10的MAC地址,MAC1)查询普通MAC表,确定出端口为监控AC,并通过监控AC将该第二业务报文转发给CE11。
具体的,BEB1在收到来自BEB2的MAC-in-MAC封装后的第二业务报文后,解封装MAC-in-MAC头,得到解封装后的第二业务报文,该第二业务报文的目的MAC地址为Host10的MAC地址(MAC1),该第二业务报文的源MAC地址为Host20的MAC地址(MAC2)。之后,BEB1在VSI内进行报文转发,触发源MAC地址学习和目的MAC地址查找,由于BEB1已经学习过第二业务报文中携带的Host20的MAC地址,因此直接执行目的MAC地址转发。在执行目的MAC地址转发时,由于第二业务报文的目的MAC地址为Host10的MAC地址(MAC1),因此在普通MAC表查找到MAC1对应的出端口为监控AC,并通过监控AC将该第二业务报文转发给CE11。
步骤206,CE11将第二业务报文转发给Host11,Host11对第二业务报文进行备份,以对第二业务报文进行监控,在对第二业务报文备份完成后,将第二业务报文返回给CE11,CE11通过监控AC将第二业务报文返回给BEB1。
步骤207,BEB1在收到CE11通过监控AC返回的第二业务报文时,禁止源MAC地址学习,并在执行目的MAC地址查找时,利用第二业务报文的目的MAC地址(即Host10的MAC地址,如MAC1)查询监控MAC表,确定出端口为被监控AC,并通过被监控AC将第二业务报文转发给CE10;CE10在收到第二业务报文后,将该第二业务报文转发给Host10。
综上所述,通过上述处理流程,针对所有被监控主机(Host10)的流量,BEB设备均需要先传输到监控服务器(Host11)上,由监控服务器对被监控主机的流量进行备份,从而对被监控主机的流量进行有效的监控。
实施例二
本发明实施例提供一种流量备份方法,针对监控CE设备和被监控CE设备连接到不同的BEB设备进行说明。本实施例中,监控CE设备与监控服务器和第一BEB设备分别连接,被监控CE设备与被监控主机和第二BEB设备分别连接。以图3为本发明实施例的应用场景示意图,Host11为监控服务器,Host20为被监控主机,配置CE11为监控CE设备,配置CE20为被监控CE设备;此外,BEB1为第一BEB设备,BEB2为第二BEB设备。
进一步的,被监控CE设备与第二BEB设备之间的AC分为被监控AC和其它AC两种类型,被监控AC用于传输被监控主机对应的报文,其它AC用于传输正常主机对应的报文;监控CE设备与第一BEB设备之间的AC分为监控AC和其它AC两种类型,该监控AC用于传输被监控主机对应的报文,其它AC用于传输正常主机对应的报文。其中,被监控AC和监控AC由用户静态配置,一般情况下以BEB设备上的端口和VLAN唯一标识被监控AC或者监控AC。
本发明实施例中,第一BEB设备与第二BEB设备之间除了有一个普通PW(伪线,即现有的PW)之外,还需要额外建立一个监控PW。在第二BEB设备上,该监控PW的属性为监控侧PW;在第一BEB设备上,该监控PW的属性为被监控侧PW。其中,监控PW的MAC-in-MAC隧道是一个特殊隧道,第一BEB设备和第二BEB设备之间的监控PW的源MAC地址和目的MAC地址与第一BEB设备和第二BEB设备之间的普通PW的源MAC地址和目的MAC地址相同,但是,监控PW的BVLAN ID(运营商虚拟局域网标识)与普通PW的BVLAN ID不同,监控PW需要使用特定BVLAN ID进行标识,该特定BVLAN ID是网络中预留的用于标识监控PW的BVLAN ID,且不同的VSI可以共用同一个特定BVLAN ID来标识监控PW。
本发明实施例中,第一BEB设备上需要在VSI内维护监控MAC表和普通MAC表。该监控MAC表中保存了VSI内所有主机的MAC地址,各主机的MAC地址从监控PW和其它AC上学习得到;对于从监控PW上学习得到的MAC地址,普通MAC表中记录的出端口总是监控AC,对于从其它AC上学习得到的MAC地址,普通MAC表中记录的出端口为真实AC。基于此,监控MAC表中记录有被监控主机的MAC地址与监控PW之间的对应关系,普通MAC表中记录有被监控主机的MAC地址与监控AC之间的对应关系。
本发明实施例中,第二BEB设备上需要在VSI内维护监控MAC表和普通MAC表。该监控MAC表中保存了VSI内所有主机的MAC地址,各主机的MAC地址从被监控AC和其它AC上学习得到;对于从被监控AC上学习得到的MAC地址,普通MAC表中记录的出端口总是监控PW,对于从其它AC上学习得到的MAC地址,普通MAC表中记录的出端口为真实AC。基于此,监控MAC表中记录被监控主机的MAC地址与被监控AC之间的对应关系;普通MAC表中记录被监控主机的MAC地址与监控PW之间的对应关系。
需要说明的是,第一BEB设备在收到监控CE设备通过监控AC发送的报文时,禁止将报文中携带的源MAC地址学习到监控MAC表和普通MAC表中。此外,第二BEB设备在收到第一BEB设备通过监控PW发送的报文时,禁止将报文中携带的源MAC地址学习到监控MAC表和普通MAC表。
本发明实施例中,第一BEB设备上还需要配置Agent策略,该Agent策略用于使第一BEB设备在收到第二BEB设备通过监控PW发送的报文时,通过监控AC将报文转发给监控CE设备。此外,第二BEB设备上还需要配置Agent策略,该Agent策略用于使第二BEB设备在收到被监控CE设备通过被监控AC发送的报文时,通过监控PW将报文转发给第一BEB设备。
本发明实施例中,在未知被监控主机的MAC地址的情况下,第一BEB设备在收到第二BEB设备通过监控PW发送的来自被监控主机的广播报文和/或单播报文时,学习广播报文和/或单播报文中携带的被监控主机的MAC地址,并在监控MAC表中记录被监控主机的MAC地址的出端口为监控PW,并在普通MAC表中记录被监控主机的MAC地址的出端口为监控AC。此外,第一BEB设备在通过监控PW收到广播报文和/或单播报文时,将匹配到Agent策略,并通过监控AC将广播报文和/或单播报文转发给监控CE设备。
在未知被监控主机的MAC地址的情况下,第二BEB设备在收到被监控CE设备通过被监控AC发送的来自被监控主机的广播报文和/或单播报文时,学习广播报文和/或单播报文中携带的被监控主机的MAC地址,并在监控MAC表中记录被监控主机的MAC地址的出端口为被监控AC,并在普通MAC表中记录被监控主机的MAC地址的出端口为监控PW;此外,第二BEB设备在通过被监控AC收到广播报文和/或单播报文时,将匹配到Agent策略,并通过监控PW将广播报文和/或单播报文转发给第一BEB设备。
本发明实施例中,源端主机(如BEB2下挂的Host20)为了访问目的端主机(BEB3下挂的Host30),源端主机需要学习目的端主机的MAC地址,目的端主机也要学习源端主机的MAC地址,源端主机与目的端主机之间经过的各设备需要学习源端主机和目的端主机的MAC地址。为实现上述过程,需要由源端主机发送源MAC地址为本源端主机的MAC地址的广播报文,并由目的端主机在收到广播报文后,返回针对广播报文的源MAC地址为本目的端主机的MAC地址的单播响应报文;或者,由目的端主机发送源MAC地址为本目的端主机的MAC地址的广播报文,并由源端主机在收到广播报文后,返回针对广播报文的源MAC地址为本源端主机的MAC地址的单播响应报文。
基于上述陈述,为了方便描述,本发明实施例中,以广播报文为ARP请求报文,单播报文为ARP应答报文为例进行说明。
结合图3所示的应用场景,假设BEB2下挂的Host20需要访问BEB3下挂的Host30,且Host20和Host30上初始时均没有对方的ARP信息,以Host20请求Host30的ARP信息为例,则:以下对第一BEB设备和第二BEB设备上分别维护监控MAC表和普通MAC表的过程进行详细说明。
Host20向CE20发送ARP请求报文,该ARP请求报文的目的MAC地址为广播地址(如FFFF-FFFF-FFFF),该ARP请求报文的源MAC地址为Host20的MAC地址(如MAC2)。CE20在收到ARP请求报文后,通过被监控AC将该ARP请求报文转发给BEB2。BEB2接收CE20通过被监控AC发送的来自Host20的ARP请求报文,该ARP请求报文的目的MAC地址为广播地址,该ARP请求报文的源MAC地址为Host20的MAC地址(如MAC2)。
BEB2在收到ARP请求报文后,在VSI内进行报文转发,触发源MAC地址学习和目的MAC地址查找,即BEB2学习ARP请求报文中携带的Host20的MAC地址(如MAC2),其真实端口为被监控AC,因此BEB2在监控MAC表中记录Host20的MAC地址(如MAC2)的出端口为被监控AC,并在普通MAC表中记录Host20的MAC地址(如MAC2)出端口为监控PW。
BEB2在收到ARP请求报文后,在执行目的MAC地址转发时,将匹配到Agent策略,因此BEB2通过监控PW将ARP请求报文转发给BEB1。其中,BEB2发送给BEB1的ARP请求报文是经过MAC-in-MAC封装后的ARP请求报文,即该ARP请求报文之前封装有MAC-in-MAC头,该MAC-in-MAC头的源MAC地址为BEB2的MAC地址,目的MAC地址为BEB1的MAC地址,且该MAC-in-MAC头中的BVLAN ID是特定BVLAN ID。
其中,BEB2在收到ARP请求报文后,虽然ARP请求报文的目的MAC地址为广播地址,但是由于该ARP请求报文能够匹配到Agent策略,因此BEB2通过监控PW将ARP请求报文转发给BEB1。
BEB1接收BEB2通过监控PW发送的MAC-in-MAC封装后的ARP请求报文,解封装MAC-in-MAC头(BVLAN ID是特定BVLAN ID),得到解封装后的ARP请求报文,该ARP请求报文的目的MAC地址为广播地址,该ARP请求报文的源MAC地址为Host20的MAC地址(如MAC2)。BEB1在收到BEB2通过监控PW发送的ARP请求报文之后,在VSI内进行报文转发,触发源MAC地址学习和目的MAC地址查找,即BEB1学习ARP请求报文中携带的Host20的MAC地址(如MAC2),其真实端口为监控PW,因此BEB1在监控MAC表中记录Host20的MAC地址(MAC2)的出端口为监控PW,并在普通MAC表中记录Host20的MAC地址(MAC2)的出端口为监控AC。
BEB1在通过监控PW收到ARP请求报文后,在执行目的MAC地址转发时,将匹配到Agent策略,因此BEB1通过监控AC将ARP请求报文转发给CE11;CE11在收到ARP请求报文后,将ARP请求报文转发给Host11;Host11在收到ARP请求报文后,对ARP请求报文进行备份,以对ARP请求报文进行监控;进一步的,CE11还需要将ARP请求报文返回给BEB1。
其中,在CE11将ARP请求报文返回给BEB1的过程中,CE11可以在将ARP请求报文转发给Host11后,直接通过监控AC将CE11上收到的来自BEB1的ARP请求报文返回给BEB1;或者,CE11在将ARP请求报文转发给Host11后,由Host11在对ARP请求报文备份完成后,将该ARP请求报文返回给CE11,之后由CE11在收到来自Host11的ARP请求报文后,通过监控AC将该ARP请求报文返回给BEB1。在Host11将该ARP请求报文返回给CE11之前,该Host11还可以对该ARP请求报文中的内容进行修改,该过程不再赘述。
需要注意的是,CE11在向BEB1返回报文时,可以采用上述两种方式的一种将报文返回给BEB1,为了方便描述,后续报文的返回方式以第二种为例进行说明,即CE11在收到Host11返回的报文后,将报文返回给BEB1。
其中,BEB1在收到ARP请求报文后,虽然ARP请求报文的目的MAC地址为广播地址,但是由于该ARP请求报文能够匹配到Agent策略,因此BEB1通过监控AC将ARP请求报文转发给CE11;BEB1在收到CE11通过监控AC返回的ARP请求报文时,才以广播方式发送ARP请求报文。
BEB1在收到CE11通过监控AC返回的ARP请求报文时,禁止源MAC地址学习,在执行目的MAC地址查找时,ARP请求报文的目的MAC地址为广播地址,BEB1以广播方式发送ARP请求报文,以将ARP请求报文最终发送给目的端设备(如Host30)。具体的,BEB1以广播方式发送ARP请求报文时,ARP请求报文被广播到VSI内所有AC侧和PW侧。因此BEB2能够收到ARP请求报文,BEB1发送给BEB2的ARP请求报文是MAC-in-MAC封装后的ARP请求报文,即ARP请求报文之前封装有MAC-in-MAC头,该MAC-in-MAC头的源MAC地址为BEB1的MAC地址,目的MAC地址为BEB2的MAC地址,且该ARP请求报文是通过监控PW发送的。BEB3能够收到ARP请求报文,BEB1发送给BEB3的ARP请求报文是MAC-in-MAC封装后的ARP请求报文,即该ARP请求报文之前封装有MAC-in-MAC头,该MAC-in-MAC头的源MAC地址为BEB1的MAC地址,目的MAC地址为BEB3的MAC地址,且该ARP请求报文是通过普通PW发送的。BEB1以广播方式发送ARP请求报文时,基于源MAC地址过滤功能,该ARP请求报文不会被发送到CE11上。
BEB2在收到来自BEB1的MAC-in-MAC封装后的ARP请求报文后,解封装MAC-in-MAC头,得到解封装后的ARP请求报文,该ARP请求报文的目的MAC地址为广播地址,源MAC地址为Host20的MAC地址。进一步的,BEB2在通过监控PW收到该ARP请求报文后,将禁止源MAC地址学习,并只需要在本地AC侧广播该ARP请求报文。基于源MAC地址过滤功能,该ARP请求报文不会被BEB2发送到CE20上。
BEB3在收到来自BEB1的MAC-in-MAC封装后的ARP请求报文后,解封装MAC-in-MAC头,得到解封装后的ARP请求报文,该ARP请求报文的目的MAC地址为广播地址,源MAC地址为Host20的MAC地址。之后,BEB3在VSI内进行报文转发,触发源MAC地址学习和目的MAC地址查找,即学习ARP请求报文中携带的Host20的MAC地址(MAC2),其出端口为BEB3与BEB1之间的PW(如PW31)。BEB3在执行目的MAC地址查找时,ARP请求报文的目的MAC地址为广播地址,因此以广播方式发送ARP请求报文,该ARP请求报文被广播到CE30;CE30将该ARP请求报文广播到Host30。
Host30在收到ARP请求报文后,学习Host20的MAC地址(MAC2),生成ARP应答报文,该ARP应答报文的目的MAC地址为Host20的MAC地址(MAC2),该ARP应答报文的源MAC地址为Host30的MAC地址(MAC3)。之后,Host30将该ARP应答报文发送给CE30。CE30在收到该ARP应答报文后,将该ARP应答报文发送给BEB3。BEB3在收到该ARP应答报文后,在VSI内进行报文转发,触发源MAC地址学习和目的MAC地址查找,即BEB3学习ARP应答报文中携带的Host30的MAC地址(如MAC3)。
BEB3在收到ARP应答报文后,在执行目的MAC地址转发时,由于目的MAC地址为MAC2,查找到MAC2对应的出端口为BEB3与BEB1之间的PW(PW31),因此BEB3通过PW31将ARP应答报文发送给BEB1。BEB3发送给BEB1的ARP应答报文是经过MAC-in-MAC封装后的ARP应答报文,即该ARP应答报文之前封装有MAC-in-MAC头,该MAC-in-MAC头的源MAC地址为BEB3的MAC地址,目的MAC地址为BEB1的MAC地址。
BEB1在收到来自BEB3的MAC-in-MAC封装后的ARP应答报文后,解封装MAC-in-MAC头,得到解封装后的ARP应答报文,该ARP应答报文的目的MAC地址为Host20的MAC地址(MAC2),该ARP应答报文的源MAC地址为Host30的MAC地址(MAC3)。之后,BEB1在VSI内进行报文转发,触发源MAC地址学习和目的MAC地址查找,即学习ARP应答报文中携带的Host30的MAC地址(MAC3),其出端口为BEB1与BEB3之间的PW(如PW13)。基于此,BEB1需要将ARP应答报文的源MAC地址(MAC3)以及接收端口(PW13)学习到普通MAC表,以使BEB1后续能够利用ARP应答报文的源MAC地址和接收端口将业务报文发送给目的端设备。此外,BEB1还可以将ARP应答报文的源MAC地址以及接收端口学习到监控MAC表。
BEB1在收到ARP应答报文之后,BEB1在执行目的MAC地址查找时,由于ARP应答报文的目的MAC地址为Host20的MAC地址(MAC2),因此BEB1利用Host20的MAC地址(MAC2)查询普通MAC表,确定出端口为监控AC,并通过监控AC将ARP应答报文转发给CE11;CE11在收到ARP应答报文后,将ARP应答报文转发给Host11;Host11在收到ARP应答报文后,对该ARP应答报文进行备份,以对该ARP应答报文进行监控;Host11在对ARP应答报文备份完成后,将该ARP应答报文返回给CE11;CE11在收到ARP应答报文后,通过监控AC将该ARP应答报文返回给BEB1。
BEB1在收到CE11通过监控AC返回的ARP应答报文时,禁止源MAC地址学习,并在执行目的MAC地址查找时,由于ARP应答报文的目的MAC地址为Host20的MAC地址,因此BEB1利用Host20的MAC地址(MAC2)查询监控MAC表,确定出端口为监控PW,并通过监控PW将ARP应答报文转发给BEB2。BEB1发送给BEB2的ARP应答报文是MAC-in-MAC封装后的ARP应答报文,即ARP应答报文之前封装有MAC-in-MAC头。其中,该MAC-in-MAC头的源MAC地址为BEB1的MAC地址,目的MAC地址为BEB2的MAC地址,且该MAC-in-MAC头中的BVLAN ID是特定BVLAN ID。
BEB2在收到BEB1通过监控PW发送的MAC-in-MAC封装后的ARP应答报文时,解封装MAC-in-MAC头,得到解封装后的ARP应答报文,该ARP应答报文的目的MAC地址为Host20的MAC地址(MAC2)。进一步的,BEB2在通过监控PW收到该ARP应答报文后,将禁止源MAC地址学习,并在VSI实例内查找目的MAC地址,即利用ARP应答报文的目的MAC地址(MAC2)查询监控MAC表,确定出端口为被监控AC,并通过被监控AC将ARP应答报文转发给CE20;CE20在收到ARP应答报文后,将ARP应答报文转发给Host20;Host20在收到ARP应答报文后,学习Host30的MAC地址(MAC3)。
结合图3所示的应用场景,假设Host20和Host30上初始时均没有对方的ARP信息,以Host30请求Host20的ARP信息为例,以下对第一BEB设备和第二BEB设备上分别维护监控MAC表和普通MAC表的过程进行详细说明。
Host30向CE30发送ARP请求报文,该ARP请求报文的目的MAC地址为广播地址,该ARP请求报文的源MAC地址为Host30的MAC地址(如MAC3)。CE30在收到ARP请求报文后,将该ARP请求报文转发给BEB3。BEB3在收到ARP请求报文后,学习ARP请求报文的源MAC地址,在MAC表中记录Host30的MAC地址(如MAC3)的出端口为BEB3与CE30之间的AC。由于ARP请求报文的目的MAC地址为广播地址,因此BEB3以广播方式发送该ARP请求报文,即ARP请求报文会被发送给BEB1和BEB2。
其中,BEB3发送给BEB1的ARP请求报文是经过MAC-in-MAC封装后的ARP请求报文,该ARP请求报文之前封装有MAC-in-MAC头,该MAC-in-MAC头的源MAC地址为BEB3的MAC地址,目的MAC地址为BEB1的MAC地址。此外,BEB3发送给BEB2的ARP请求报文是经过MAC-in-MAC封装后的ARP请求报文,该ARP请求报文之前封装有MAC-in-MAC头,该MAC-in-MAC头的源MAC地址为BEB3的MAC地址,目的MAC地址为BEB2的MAC地址。
BEB1在收到来自BEB3的MAC-in-MAC封装后的ARP请求报文后,解封装MAC-in-MAC头,得到解封装后的ARP请求报文,该ARP请求报文的目的MAC地址为广播地址,ARP请求报文的源MAC地址为Host30的MAC地址(如MAC3)。之后,BEB1在VSI内进行报文转发,触发源MAC地址学习和目的MAC地址查找,即学习ARP请求报文中携带的Host30的MAC地址(MAC3),其出端口为BEB1与BEB3之间的PW(如PW13)。基于此,BEB1需要将ARP请求报文的源MAC地址(MAC3)以及接收端口(PW13)学习到普通MAC表,以使BEB1后续能够利用ARP请求报文的源MAC地址和接收端口将业务报文发送给目的端设备。此外,BEB1还可以将ARP请求报文的源MAC地址以及接收端口学习到监控MAC表。
BEB1在收到ARP请求报文后,由于ARP请求报文的目的MAC地址为广播地址,因此BEB1以广播方式发送该ARP请求报文,此时ARP请求报文会在CE10、CE11上广播。需要注意的是,BEB1以广播方式发送ARP请求报文时,基于水平分割原理,BEB1不会再次将该ARP请求报文广播到BEB2。
BEB2在收到来自BEB3的MAC-in-MAC封装后的ARP请求报文后,解封装MAC-in-MAC头,得到解封装后的ARP请求报文,该ARP请求报文的目的MAC地址为广播地址,ARP请求报文的源MAC地址为Host30的MAC地址(如MAC3)。之后,BEB2在VSI内进行报文转发,触发源MAC地址学习和目的MAC地址查找,即学习ARP请求报文中携带的Host30的MAC地址(MAC3),其出端口为BEB2与BEB3之间的PW(如PW23)。基于此,BEB2需要将ARP请求报文的源MAC地址(MAC3)以及接收端口(PW23)学习到普通MAC表和监控MAC表。
BEB2在收到ARP请求报文后,由于ARP请求报文的目的MAC地址为广播地址,因此BEB2以广播方式发送该ARP请求报文,此时ARP请求报文会在CE20上广播,由CE20以广播方式将ARP请求报文转发给Host20,以最终通过BEB2将该ARP请求报文发送给被监控主机Host20。
Host20在收到该ARP请求报文之后,学习该Host30的MAC地址(MAC3),生成ARP应答报文,该ARP应答报文的目的MAC地址为Host30的MAC地址(MAC3),该ARP应答报文的源MAC地址为Host20的MAC地址(MAC2)。之后,Host20将该ARP应答报文发送给CE20。CE20在收到该ARP应答报文后,将该ARP应答报文发送给BEB2。
BEB2在收到CE20通过被监控AC发送的来自Host20的ARP应答报文后,在VSI内进行报文转发,触发源MAC地址学习和目的MAC地址查找,即BEB2学习该ARP应答报文中携带的Host20的MAC地址(如MAC2),其真实端口为被监控AC,因此BEB2需要在监控MAC表中记录Host20的MAC地址(如MAC2)的出端口为被监控AC,并需要在普通MAC表中记录Host20的MAC地址(如MAC2)出端口为监控PW。
BEB2在收到ARP应答报文后,在执行目的MAC地址转发时,将匹配到Agent策略,因此BEB2通过监控PW将ARP应答报文转发给BEB1。其中,BEB2发送给BEB1的ARP应答报文是经过MAC-in-MAC封装后的ARP应答报文,即该ARP应答报文之前封装有MAC-in-MAC头,该MAC-in-MAC头的源MAC地址为BEB2的MAC地址,目的MAC地址为BEB1的MAC地址,且该MAC-in-MAC头中的BVLAN ID是特定BVLAN ID。
BEB1接收BEB2通过监控PW发送的MAC-in-MAC封装后的ARP应答报文,解封装MAC-in-MAC头(BVLAN ID是特定BVLAN ID),并得到解封装后的ARP应答报文;其中,该ARP应答报文的目的MAC地址为Host30的MAC地址(MAC3),该ARP应答报文的源MAC地址为Host20的MAC地址(如MAC2)。BEB1在收到BEB2通过监控PW发送的ARP应答报文之后,在VSI内进行报文转发,触发源MAC地址学习和目的MAC地址查找,即BEB1学习该ARP应答报文中携带的Host20的MAC地址(如MAC2),其真实端口为监控PW,因此,BEB1需要在监控MAC表中记录Host20的MAC地址(MAC2)的出端口为监控PW,并需要在普通MAC表中记录Host20的MAC地址(MAC2)的出端口为监控AC。
BEB1在收到ARP应答报文后,在执行目的MAC地址转发时,将匹配到Agent策略,因此BEB1通过监控AC将ARP应答报文转发给CE11;CE11在收到ARP应答报文后,将ARP应答报文转发给Host11;Host11在收到ARP应答报文后,对该ARP应答报文进行备份,以对该ARP应答报文进行监控;Host11在对ARP应答报文备份完成后,将该ARP应答报文返回给CE11,之后由CE11在收到来自Host11的ARP应答报文后,通过监控AC将该ARP应答报文返回给BEB1。在Host11将该ARP应答报文返回给CE11之前,该Host11还可以对该ARP应答报文中的内容进行修改,该过程不再赘述。
BEB1在收到CE11通过监控AC返回的ARP应答报文时,禁止源MAC地址学习,并在执行目的MAC地址查找时,通过ARP应答报文的目的MAC地址(MAC3)查询普通MAC表。由于之前的学习过程中,BEB1已经将ARP请求报文的源MAC地址(MAC3)以及接收端口(PW13)学习到普通MAC表,因此BEB1通过ARP应答报文的目的MAC地址(MAC3)查询普通MAC表时,对应的出端口为PW13,并通过PW13将ARP应答报文发送给BEB3。BEB1发送给BEB3的ARP应答报文是经过MAC-in-MAC封装后的ARP应答报文,即ARP应答报文之前封装有MAC-in-MAC头,MAC-in-MAC头的源MAC地址为BEB1的MAC地址,目的MAC地址为BEB3的MAC地址。
BEB3在收到来自BEB1的MAC-in-MAC封装后的ARP应答报文后,解封装MAC-in-MAC头,得到解封装后的ARP应答报文,该ARP应答报文的目的MAC地址为Host30的MAC地址,源MAC地址为Host20的MAC地址。之后,BEB3在VSI内进行报文转发,触发源MAC地址学习和目的MAC地址查找,即学习ARP应答报文中携带的Host20的MAC地址(MAC2),其出端口为BEB3与BEB1之间的PW(如PW31)。
BEB3在执行目的MAC地址查找时,由于ARP应答报文的目的MAC地址为Host30的MAC地址(如MAC3),且之前已经在MAC表中记录Host30的MAC地址(如MAC3)的出端口为BEB3与CE30之间的AC,因此BEB3将ARP应答报文发送给CE30,由CE30将该ARP应答报文发送给Host30,并由Host30学习ARP应答报文中携带的Host30的MAC地址(MAC2)。
基于BEB设备上配置的Agent策略,以及BEB设备上维护的监控MAC表和普通MAC表,如图4所示,业务报文的流量备份方法包括以下步骤:
步骤401,Host20向CE20发送第一业务报文(单播业务报文),CE20在收到第一业务报文后,通过被监控AC将该第一业务报文转发给BEB2,由BEB2接收CE20通过被监控AC发送的来自Host20的第一业务报文。其中,该第一业务报文的目的MAC地址为Host30的MAC地址(如MAC3),该第一业务报文的源MAC地址为Host20的MAC地址(如MAC2)。
步骤402,BEB2在收到CE20通过被监控AC发送的第一业务报文时,匹配到Agent策略,并通过监控PW将第一业务报文转发给BEB1。
BEB2在收到CE20通过被监控AC发送的第一业务报文后,在VSI内进行报文转发,触发源MAC地址学习和目的MAC地址查找,由于BEB2已经学习过第一业务报文中携带的Host20的MAC地址,因此直接执行目的MAC地址转发,并匹配到Agent策略,通过监控PW将第一业务报文转发给BEB1。
BEB2发送给BEB1的第一业务报文是经过MAC-in-MAC封装后的第一业务报文,即该第一业务报文之前封装有MAC-in-MAC头,该MAC-in-MAC头的源MAC地址为BEB2的MAC地址,目的MAC地址为BEB1的MAC地址,且该MAC-in-MAC头中的BVLAN ID是特定BVLAN ID。
步骤403,BEB1在收到BEB2通过监控PW发送的第一业务报文时,匹配到Agent策略,并通过监控AC将该第一业务报文转发给CE11。
具体的,BEB1接收BEB2通过监控PW发送的MAC-in-MAC封装后的第一业务报文,解封装MAC-in-MAC头(BVLAN ID是特定BVLAN ID),得到解封装后的第一业务报文,并在VSI内进行报文转发,触发源MAC地址学习和目的MAC地址查找。由于BEB1已经学习过第一业务报文中携带的Host20的MAC地址,因此BEB1直接执行目的MAC地址转发,并匹配到Agent策略,因此BEB1通过监控AC将第一业务报文转发给CE11。
步骤404,CE11将第一业务报文转发给Host11,Host11对第一业务报文进行备份,以对第一业务报文进行监控,在对第一业务报文备份完成后,将第一业务报文返回给CE11,CE11通过监控AC将第一业务报文返回给BEB1。
步骤405,BEB1在收到CE11通过监控AC返回的第一业务报文时,禁止源MAC地址学习,并在执行目的MAC地址查找时,利用目的MAC地址(MAC3)对应的出端口(PW13)将第一业务报文发送给BEB3。其中,BEB1发送给BEB3的第一业务报文是经过MAC-in-MAC封装后的第一业务报文,即该第一业务报文之前封装有MAC-in-MAC头,该MAC-in-MAC头的源MAC地址为BEB1的MAC地址,目的MAC地址为BEB3的MAC地址。
BEB3在收到来自BEB1的MAC-in-MAC封装后的第一业务报文后,解封装MAC-in-MAC头,得到解封装后的第一业务报文,该第一业务报文的目的MAC地址为Host30的MAC地址(如MAC3),该第一业务报文的源MAC地址为Host20的MAC地址。之后,BEB3在VSI内进行报文转发时,利用第一业务报文的目的MAC地址(如MAC3)查找对应的出端口,并通过该出端口将第一业务报文转发给CE30,由CE30转发第一业务报文到主机Host30。
Host30在收到第一业务报文后,可以向Host20返回第二业务报文(即第一业务报文的响应报文),该第二业务报文的目的MAC地址为Host20的MAC地址(如MAC2),该第二业务报文的源MAC地址为Host30的MAC地址(如MAC3)。基于此,Host30将该第二业务报文发送给CE30。CE30在收到该第二业务报文后,将该第二业务报文发送给BEB3。BEB3在收到该第二业务报文后,在VSI内进行报文转发,触发源MAC地址学习和目的MAC地址查找。由于BEB3已经学习过第二业务报文中携带的Host30的MAC地址,因此直接执行目的MAC地址转发。在执行目的MAC地址转发时,由于目的MAC地址为MAC2,查找到MAC2对应的出端口为BEB3与BEB1之间的PW(PW31),因此BEB3通过PW31将第二业务报文发送给BEB1。BEB3发送给BEB1的第二业务报文是经过MAC-in-MAC封装后的第二业务报文,即该第二业务报文之前封装有MAC-in-MAC头,该MAC-in-MAC头的源MAC地址为BEB3的MAC地址,目的MAC地址为BEB1的MAC地址。
步骤406,BEB1在收到来自BEB3的第二业务报文之后,利用该第二业务报文的目的MAC地址(即Host20的MAC地址,MAC2)查询普通MAC表,确定出端口为监控AC,并通过监控AC将该第二业务报文转发给CE11。
具体的,BEB1在收到来自BEB3的MAC-in-MAC封装后的第二业务报文后,解封装MAC-in-MAC头,得到解封装后的第二业务报文,该第二业务报文的目的MAC地址为Host20的MAC地址(MAC2),该ARP应答报文的源MAC地址为Host30的MAC地址(MAC3)。之后,BEB1在VSI内进行报文转发,触发源MAC地址学习和目的MAC地址查找,由于BEB1已经学习过第二业务报文中携带的Host30的MAC地址,因此直接执行目的MAC地址转发。在执行目的MAC地址转发时,由于第二业务报文的目的MAC地址为Host20的MAC地址(MAC2),因此在普通MAC表查找到MAC2对应的出端口为监控AC,并通过监控AC将该第二业务报文转发给CE11。
步骤407,CE11将第二业务报文转发给Host11,Host11对第二业务报文进行备份,以对第二业务报文进行监控,在对第二业务报文备份完成后,将第二业务报文返回给CE11,CE11通过监控AC将第二业务报文返回给BEB1。
步骤408,BEB1在收到CE11通过监控AC返回的第二业务报文时,禁止源MAC地址学习,并在执行目的MAC地址查找时,利用第二业务报文的目的MAC地址(即Host20的MAC地址,如MAC2)查询监控MAC表,确定出端口为监控PW,并通过监控PW将第二业务报文转发给BEB2。
其中,BEB1发送给BEB2的第二业务报文是MAC-in-MAC封装后的第二业务报文,即第二业务报文之前封装有MAC-in-MAC头。该MAC-in-MAC头的源MAC地址为BEB1的MAC地址,目的MAC地址为BEB2的MAC地址,且该MAC-in-MAC头中的BVLAN ID是特定BVLAN ID。
步骤409,BEB2在收到BEB1通过监控PW发送的第二业务报文时,利用第二业务报文的目的MAC地址(即Host20的MAC地址,如MAC2)查询监控MAC表,确定出端口为被监控AC,并通过被监控AC将该第二业务报文转发给CE20,并由CE20将该第二业务报文转发给Host20。
具体的,BEB2在收到BEB1通过监控PW发送的MAC-in-MAC封装后的第二业务报文时,解封装MAC-in-MAC头,得到解封装后的第二业务报文,第二业务报文的目的MAC地址为Host20的MAC地址(MAC2)。进一步的,BEB2在通过监控PW收到第二业务报文后,将禁止源MAC地址学习,并在VSI实例内查找目的MAC地址,即利用第二业务报文的目的MAC地址查询监控MAC表,确定出端口为被监控AC,并通过被监控AC将第二业务报文转发给CE20;CE20在收到第二业务报文后,将第二业务报文转发给Host20。
综上所述,通过上述处理流程,针对所有被监控主机(Host20)的流量,BEB设备均需要先传输到监控服务器(Host11)上,由监控服务器对被监控主机的流量进行备份,从而对被监控主机的流量进行有效的监控。
实施例三
基于与上述方法同样的发明构思,本发明实施例中还提供了一种骨干网边缘桥BEB设备,应用于包括监控用户网络边缘CE设备、被监控CE设备和所述BEB设备的网络中,所述监控CE设备、所述被监控CE设备与所述BEB设备连接,如图5所示,所述BEB设备具体包括:
维护模块11,用于配置Agent策略,维护监控介质访问控制MAC表和普通MAC表;Agent策略用于使BEB设备在收到被监控CE设备通过被监控接入链路AC发送的报文时,通过监控AC将报文转发给监控CE设备;该监控MAC表用于记录被监控主机的MAC地址与被监控AC之间的对应关系;该普通MAC表用于记录被监控主机的MAC地址与监控AC之间的对应关系;
接收模块12,用于接收被监控CE设备通过被监控AC发送的第一业务报文;以及,接收所述监控CE设备通过所述监控AC返回的所述第一业务报文;以及,接收目的MAC地址为被监控主机的MAC地址的第二业务报文;以及,接收所述监控CE设备通过监控AC返回的第二业务报文;其中,所述接收模块在收到监控CE设备通过监控AC发送的报文时,禁止将所述报文中携带的源MAC地址学习到所述监控MAC表和所述普通MAC表;
发送模块13,用于在收到被监控CE设备通过被监控AC发送的第一业务报文时,匹配到所述Agent策略,并通过监控AC将所述第一业务报文转发给监控CE设备;以及,在收到所述监控CE设备通过所述监控AC返回的所述第一业务报文时,将所述第一业务报文发送给目的端设备;
处理模块14,用于在收到目的MAC地址为被监控主机的MAC地址的第二业务报文时,利用所述被监控主机的MAC地址查询所述普通MAC表,确定出端口为监控AC,并通过所述监控AC将所述第二业务报文转发给监控CE设备;以及,在收到所述监控CE设备通过监控AC返回的第二业务报文时,利用所述被监控主机的MAC地址查询所述监控MAC表,确定出端口为被监控AC,并通过所述被监控AC将第二业务报文转发给被监控CE设备,由所述被监控CE设备将所述第二业务报文转发给被监控主机。
所述接收模块12,还用于在未知被监控主机的MAC地址的情况下,接收被监控CE设备通过被监控AC发送的来自被监控主机的广播报文,所述广播报文的源MAC地址为被监控主机的MAC地址;
所述维护模块11,具体用于在收到所述广播报文后,学习所述广播报文中携带的所述被监控主机的MAC地址,并在所述监控MAC表中记录所述被监控主机的MAC地址的出端口为所述被监控AC,并在所述普通MAC表中记录所述被监控主机的MAC地址的出端口为所述监控AC;
所述发送模块13,还用于在收到所述广播报文后,匹配到所述Agent策略,并通过监控AC将所述广播报文转发给监控CE设备;在收到所述监控CE设备通过监控AC返回的广播报文后,以广播方式发送所述广播报文;
和/或
所述接收模块12,还用于在未知被监控主机的MAC地址的情况下,接收被监控CE设备通过被监控AC发送的来自被监控主机的单播报文,所述单播报文的源MAC地址为所述被监控主机的MAC地址;
所述维护模块11,具体用于在收到所述单播报文后,学习所述单播报文中携带的所述被监控主机的MAC地址,并在所述监控MAC表中记录所述被监控主机的MAC地址的出端口为所述被监控AC,并在所述普通MAC表中记录所述被监控主机的MAC地址的出端口为所述监控AC;
所述发送模块13,还用于在收到所述单播报文后,匹配到所述Agent策略,并通过监控AC将所述单播报文转发给监控CE设备;在收到所述监控CE设备通过监控AC返回的所述单播报文后,通过所述单播报文的目的MAC地址查询所述普通MAC表,以利用所述普通MAC表中记录的所述单播报文的目的MAC地址对应的出端口发送所述单播报文。
所述接收模块12,还用于接收来自非被监控AC的广播报文;
所述维护模块11,还用于在收到来自非被监控AC的广播报文后,在未知发送所述广播报文的设备的MAC地址的情况下,将所述广播报文的源MAC地址以及接收端口学习到所述普通MAC表和所述监控MAC表;
所述发送模块13,还用于在收到所述广播报文后,以广播方式发送所述广播报文;
和/或
所述接收模块12,还用于接收来自非被监控AC的单播报文,且所述单播报文的目的MAC地址为所述被监控主机的MAC地址;
所述维护模块11,还用于在收到来自非被监控AC的单播报文后,在未知发送所述单播报文的设备的MAC地址的情况下,将所述单播报文的源MAC地址以及接收端口学习到所述普通MAC表和所述监控MAC表;
所述发送模块13,还用于在收到所述单播报文后,利用所述被监控主机的MAC地址查询所述普通MAC表,确定出端口为监控AC,并通过监控AC将所述单播报文转发给监控CE设备;在收到所述监控CE设备通过监控AC返回的所述单播报文时,利用所述被监控主机的MAC地址查询所述监控MAC表,确定出端口为被监控AC,并通过被监控AC将所述单播报文转发给被监控CE设备,由被监控CE设备将所述单播报文转发给被监控主机。
其中,本发明装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。
实施例四
基于与上述方法同样的发明构思,本发明实施例中还提供了一种骨干网边缘桥BEB设备,作为第一BEB设备应用于包括监控用户网络边缘CE设备、被监控CE设备、所述第一BEB设备和第二BEB设备的网络中,所述监控CE设备与第一BEB设备连接,所述被监控CE设备与第二BEB设备连接,如图6所示,所述第一BEB设备具体包括:
维护模块21,用于配置代理Agent策略,并维护监控介质访问控制MAC表和普通MAC表;所述Agent策略用于使所述第一BEB设备在收到所述第二BEB设备通过监控伪线PW发送的报文时,通过监控接入链路AC将所述报文转发给所述监控CE设备;所述监控MAC表用于记录所述被监控主机的MAC地址与所述监控PW之间的对应关系;所述普通MAC表用于记录所述被监控主机的MAC地址与所述监控AC之间的对应关系;
接收模块22,用于接收所述第二BEB设备通过监控PW发送的第一业务报文;以及,接收所述监控CE设备通过所述监控AC返回的所述第一业务报文;以及,接收目的MAC地址为被监控主机的MAC地址的第二业务报文;以及,接收所述监控CE设备通过监控AC返回的第二业务报文;其中,所述接收模块在收到监控CE设备通过监控AC发送的报文时,禁止将所述报文中携带的源MAC地址学习到所述监控MAC表和所述普通MAC表;
发送模块23,用于在收到所述第二BEB设备通过监控PW发送的第一业务报文时,匹配到所述Agent策略,并通过监控AC将所述第一业务报文转发给监控CE设备;在收到所述监控CE设备通过所述监控AC返回的第一业务报文时,将所述第一业务报文发送给目的端设备;其中,所述第一业务报文是所述第二BEB设备在收到被监控CE设备通过被监控AC发送的第一业务报文后,通过监控PW转发给所述第一BEB设备的;
处理模块24,用于在收到目的MAC地址为被监控主机的MAC地址的第二业务报文时,利用所述被监控主机的MAC地址查询所述普通MAC表,确定出端口为监控AC,并通过所述监控AC将所述第二业务报文转发给监控CE设备;在收到所述监控CE设备通过监控AC返回的第二业务报文时,利用所述被监控主机的MAC地址查询所述监控MAC表,确定出端口为监控PW,并通过所述监控PW将所述第二业务报文转发给第二BEB设备;
由所述第二BEB设备在收到第一BEB设备通过监控PW发送的第二业务报文时,通过被监控AC将所述第二业务报文转发给被监控CE设备,由被监控CE设备将所述第二业务报文转发给被监控主机。
所述接收模块22,还用于在未知被监控主机的MAC地址的情况下,接收所述第二BEB设备通过监控PW发送的来自被监控主机的广播报文,所述广播报文的源MAC地址为所述被监控主机的MAC地址;
所述维护模块21,具体用于在通过监控PW收到所述广播报文后,学习所述广播报文中携带的所述被监控主机的MAC地址,并在所述监控MAC表中记录所述被监控主机的MAC地址的出端口为所述监控PW,并在所述普通MAC表中记录所述被监控主机的MAC地址的出端口为所述监控AC;
所述发送模块23,还用于在通过监控PW收到所述广播报文后,匹配到所述Agent策略,通过监控AC将所述广播报文转发给监控CE设备;在收到所述监控CE设备通过监控AC返回的广播报文后,以广播方式发送广播报文;
和/或
所述接收模块22,还用于在未知被监控主机的MAC地址的情况下,接收所述第二BEB设备通过监控PW发送的来自被监控主机的单播报文,所述单播报文的源MAC地址为所述被监控主机的MAC地址;
所述维护模块21,具体用于在通过监控PW收到所述单播报文后,学习所述单播报文中携带的所述被监控主机的MAC地址,并在所述监控MAC表中记录所述被监控主机的MAC地址的出端口为所述监控PW,并在所述普通MAC表中记录所述被监控主机的MAC地址的出端口为所述监控AC;
所述发送模块23,还用于在收到所述单播报文后,匹配到所述Agent策略,并通过监控AC将所述单播报文转发给监控CE设备;在收到所述监控CE设备通过监控AC返回的所述单播报文后,通过所述单播报文的目的MAC地址查询所述普通MAC表,以利用所述普通MAC表中记录的所述单播报文的目的MAC地址对应的出端口发送所述单播报文。
所述接收模块22,还用于接收来自非监控PW的广播报文;
所述维护模块21,还用于在收到来自非监控PW的广播报文后,在未知发送所述广播报文的设备的MAC地址的情况下,将所述广播报文的源MAC地址以及接收端口学习到所述普通MAC表和所述监控MAC表;
所述发送模块23,还用于在收到所述广播报文后,以广播方式发送所述广播报文;
和/或
所述接收模块22,还用于接收来自非监控PW的单播报文,且所述单播报文的目的MAC地址为所述被监控主机的MAC地址;
所述维护模块21,还用于在收到来自非监控PW的单播报文时,在未知发送所述单播报文的设备的MAC地址的情况下,将所述单播报文的源MAC地址以及接收端口学习到所述普通MAC表和所述监控MAC表;
所述发送模块23,还用于在收到所述单播报文后,利用所述被监控主机的MAC地址查询所述普通MAC表,确定出端口为监控AC,并通过监控AC将所述单播报文转发给监控CE设备;在收到监控CE设备通过监控AC返回的单播报文时,利用所述被监控主机的MAC地址查询所述监控MAC表,确定出端口为监控PW,并通过所述监控PW将所述单播报文转发给第二BEB设备;由第二BEB设备在收到第一BEB设备通过监控PW发送的单播报文时,通过被监控AC将所述单播报文转发给被监控CE设备,由所述被监控CE设备将所述单播报文转发给被监控主机。
其中,本发明装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。
实施例五
基于与上述方法同样的发明构思,本发明实施例中还提供了一种骨干网边缘桥BEB设备,作为第二BEB设备应用于包括监控用户网络边缘CE设备、被监控CE设备、第一BEB设备和所述第二BEB设备的网络中,所述监控CE设备与第一BEB设备连接,所述被监控CE设备与第二BEB设备连接,如图7所示,所述第二BEB设备具体包括:
维护模块31,用于配置代理Agent策略,并维护监控介质访问控制MAC表和普通MAC表;所述Agent策略用于使所述第二BEB设备在收到所述被监控CE设备通过被监控接入链路AC发送的报文时,通过监控伪线PW将报文转发给所述第一BEB设备;所述监控MAC表用于记录所述被监控主机的MAC地址与所述被监控AC之间的对应关系;所述普通MAC表用于记录所述被监控主机的MAC地址与所述监控PW之间的对应关系;
接收模块32,用于接收所述被监控CE设备通过被监控AC发送的第一业务报文;以及,接收所述第一BEB设备通过监控PW发送的目的MAC地址为所述被监控主机的MAC地址的第二业务报文;其中,所述接收模块在收到所述第一BEB设备通过监控PW发送的报文时,禁止将所述报文中携带的源MAC地址学习到所述监控MAC表和所述普通MAC表;
发送模块33,用于在收到被监控CE设备通过被监控AC发送的第一业务报文时,匹配到所述Agent策略,并通过监控PW将所述第一业务报文转发给所述第一BEB设备;由所述第一BEB设备在通过监控PW收到第一业务报文时,通过监控AC将所述第一业务报文转发给监控CE设备;
处理模块34,用于在收到所述第一BEB设备通过监控PW发送的目的MAC地址为所述被监控主机的MAC地址的第二业务报文时,利用所述被监控主机的MAC地址查询所述监控MAC表,确定出端口为被监控AC,并通过所述被监控AC将所述第二业务报文转发给所述被监控CE设备,并由所述被监控CE设备将所述第二业务报文转发给所述被监控主机。
所述接收模块32,还用于在未知被监控主机的MAC地址的情况下,接收被监控CE设备通过被监控AC发送的来自被监控主机的广播报文,所述广播报文的源MAC地址为所述被监控主机的MAC地址;
所述维护模块31,具体用于在收到所述广播报文后,学习所述广播报文中携带的所述被监控主机的MAC地址,并在所述监控MAC表中记录所述被监控主机的MAC地址的出端口为所述被监控AC,并在所述普通MAC表中记录所述被监控主机的MAC地址的出端口为所述监控PW;
所述发送模块33,还用于在收到所述广播报文后,匹配到所述Agent策略,并通过监控PW将所述广播报文转发给所述第一BEB设备;
和/或
所述接收模块32,还用于在未知被监控主机的MAC地址的情况下,接收被监控CE设备通过被监控AC发送的来自被监控主机的单播报文,所述单播报文的源MAC地址为所述被监控主机的MAC地址;
所述维护模块31,具体用于在收到所述单播报文后,学习所述单播报文中携带的所述被监控主机的MAC地址,并在所述监控MAC表中记录所述被监控主机的MAC地址的出端口为所述被监控AC,并在普通MAC表中记录所述被监控主机的MAC地址的出端口为所述监控PW;
所述发送模块33,还用于在收到所述单播报文后,匹配到所述Agent策略,并通过监控PW将所述单播报文转发给所述第一BEB设备。
所述接收模块32,还用于接收来自非被监控AC的广播报文;
所述维护模块31,还用于在收到来自非被监控AC的广播报文后,在未知发送所述广播报文的设备的MAC地址的情况下,将所述广播报文的源MAC地址以及接收端口学习到所述普通MAC表和所述监控MAC表;
所述发送模块33,还用于在收到所述广播报文后,以广播方式发送所述广播报文;
和/或
所述接收模块32,还用于接收来自非被监控AC的单播报文,且所述单播报文的目的MAC地址为所述被监控主机的MAC地址;
所述维护模块31,还用于在收到来自非被监控AC的单播报时,在未知发送所述单播报文的设备的MAC地址的情况下,将所述单播报文的源MAC地址以及接收端口学习到所述普通MAC表和所述监控MAC表;
所述发送模块33,还用于在收到所述单播报文后,利用所述被监控主机的MAC地址查询所述监控MAC表,确定出端口为被监控AC,并通过所述被监控AC将所述单播报文转发给所述被监控CE设备,并由所述被监控CE设备将所述单播报文转发给所述被监控主机。
其中,本发明装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。