发明内容
本发明的目的在于提供一种基于TRILL网络的远程镜像实现方法和设备,以实现对TRILL网络中流量的监管,为此,本发明采用如下技术方案:
一种基于多链接透明互联TRILL网络的远程镜像实现方法,该方法包括:
当路由桥RB设备确定接收到的报文需要镜像时,所述RB设备将所述报文镜像到本设备的外部环回口;
针对所述外部环回口上环回的镜像报文,所述RB设备在所述镜像报文中增加外层的镜像虚拟局域网VLAN标签Tag,并依据镜像VLAN所对应的TRILL分发树,对所述镜像报文进行TRILL封装得到TRILL报文;
所述RB设备将所述TRILL报文,通过镜像VLAN所对应的TRILL分发树发送至远程镜像目的端口,以使得所述远程镜像目的端口在剥离所述TRILL报文中的TRILL封装和镜像VLAN Tag后,得到原始的镜像报文;
其中,所述外部环回口和远程镜像目的端口均预先配置为所述镜像VLAN的成员端口,且所述TRLL网络中禁止基于所述镜像VLAN的媒体访问控制MAC学习。
其中,所述依据镜像VLAN所对应的TRILL分发树,对所述镜像报文进行TRILL封装,包括:
为所述镜像报文打上TRILL头,其中所述TRILL头中的出节点Egress RBNickname为镜像VLAN所对应的TRILL分发树的树根设备的Nickname,入节点Ingress RB Nickname为所述RB设备的Nickname。
其中,若所述外部环回口上环回的镜像报文为非TRILL封装报文,所述RB设备为所述镜像报文打上镜像VLAN Tag后,将所述镜像报文发送至本设备的内部环回口,在所述内部环回口处为该镜像报文打上所述TRILL头,封装为TRILL报文,并通过TRILL网络将所述TRILL报文发送到远程镜像目的端口;
若所述外部环回口上环回的镜像报文为TRILL封装报文,所述RB设备禁止对所述外部环回口上环回的镜像报文的转发邻接表检查,直接为所述镜像报文打上镜像VLAN Tag后,将镜像报文重定向至内部环回口,在所述内部环回口处为所述镜像报文打上所述TRILL头进行二次TRILL封装得到新的TRILL报文,并通过所述TRILL网络将所述新的TRILL报文发送到远程镜像目的端口。
其中,所述RB设备确定接收到的报文需要镜像,具体为:
所述RB设备确定从特定端口接收到的报文需要镜像;所述特定端口为预先设定的待监控端口,或,所述特定端口为流经该端口的报文的转发发生异常的端口。
其中,当所述需要镜像的报文为TRILL报文时,所述外部环回口和远程镜像目的端口为混杂Hybrid类型的端口。
一种网络设备,作为路由桥RB设备应用于TRILL网络中,该网络设备包括:
镜像模块,用于当所述网络设备确定接收到的报文需要镜像时,将所述报文镜像到本设备的外部环回口;
封装模块,用于针对所述外部环回口上环回的镜像报文,在所述镜像报文中增加外层的镜像虚拟局域网VLAN标签Tag,并依据镜像VLAN所对应的TRILL分发树,对所述镜像报文进行TRILL封装得到TRILL报文;
发送模块,用于将所述TRILL报文,通过镜像VLAN所对应的TRILL分发树发送至远程镜像目的端口,以使得目的端口在剥离所述TRILL报文中的TRILL封装和镜像VLAN Tag后,得到原始的镜像报文;
其中,所述外部环回口和远程镜像目的端口均预先配置为所述镜像VLAN的成员端口,且所述TRLL网络中禁止基于所述镜像VLAN的媒体访问控制MAC学习。
其中,所述封装模块具体用于,通过以下方式实现依据镜像VLAN所对应的TRILL分发树,对所述镜像报文进行TRILL封装:
为所述镜像报文打上TRILL头,其中所述TRILL头中的出节点Egress RBNickname为镜像VLAN所对应的TRILL分发树的树根设备的Nickname,入节点Ingress RB Nickname为所述RB设备的Nickname。
其中,所述封装模块具体用于:
若所述外部环回口上环回的镜像报文为非TRILL封装报文,为所述镜像报文打上镜像VLAN Tag后,将所述镜像报文发送至本设备的内部环回口,在所述内部环回口处为该镜像报文打上所述TRILL头,封装为TRILL报文;
若所述外部环回口上环回的镜像报文为TRILL封装报文,禁止对所述外部环回口上环回的镜像报文的转发邻接表检查,直接为所述镜像报文打上镜像VLAN Tag后,将镜像报文重定向至内部环回口,在所述内部环回口处为所述镜像报文打上所述TRILL头进行二次TRILL封装得到新的TRILL报文。
其中,所述需要镜像的报文为所述RB设备从特定端口接收到的报文需要镜像;所述特定端口为预先设定的待监控端口,或,所述特定端口为流经该端口的报文的转发发生异常的端口。
其中,当所述需要镜像的报文为TRILL报文时,所述外部环回口和远程镜像目的端口为混杂Hybrid类型的端口。
本发明上述实施例中,当RB设备确定接收到的报文需要镜像时,RB设备将该报文镜像到本设备的外部环回口;针对外部环回口上环回的镜像报文,RB设备在该镜像报文中增加外层的镜像VLAN Tag,并依据镜像VLAN所对应的TRILL分发树,对该镜像报文进行TRILL封装得到TRILL报文;RB设备将该TRILL报文,通过镜像VLAN所对应的TRILL分发树发送至远程镜像目的端口,以使得目的端口在剥离TRILL报文中的TRILL封装和镜像VLANTag后,得到原始的镜像报文,实现了TRILL网络中的远程镜像,从而能够对TRILL网络的流量进行监管和分析,进而定位TRILL网络中出现的问题,解决TRILL网络中可能出现的转发异常等问题。
具体实施方式
针对现有技术存在的上述问题,本发明实施例提供了一种基于TRILL网络的远程镜像实现的技术方案。在该技术方案中,当RB设备确定接收到的报文需要镜像时,RB设备将该报文镜像到本设备的外部环回口;
针对外部环回口上环回的镜像报文,RB设备在该镜像报文中增加外层的镜像VLAN Tag,并依据镜像VLAN所对应的TRILL分发树,对该镜像报文进行TRILL封装得到TRILL报文;
RB设备将该TRILL报文,通过镜像VLAN所对应的TRILL分发树发送至远程镜像目的端口,以使得目的端口在剥离TRILL报文中的TRILL封装和镜像VLAN Tag后,得到原始的镜像报文,实现了TRILL网络中的远程镜像,从而能够对TRILL网络的流量进行监管和分析,进而定位TRILL网络中出现的问题,解决TRILL网络中可能出现的转发异常等问题。
其中,上述外部环回口和远程镜像目的端口均为上述镜像VLAN的成员端口;TRILL网络中禁止基于镜像VLAN的MAC学习。
下面将结合本发明的实施例中的附图,对本发明的实施例中的技术方案进行清楚、完整的描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明的实施例保护的范围。
如图2所示,为本发明实施例提供的一种基于TRILL网络的远程镜像实现方法的流程示意图,可以包括以下步骤:
步骤201、当RB设备确定接收到的报文需要镜像时,RB设备将该报文镜像到本设备的外部环回口。
具体的,在本发明实施例中,TRILL网络中的RB设备可以对流经特定端口的报文进行镜像,并通过TRILL网络将镜像后的报文发送到远程镜像目的端口,从而根据从远程镜像目的端口得到的报文对TRILL网络的流量进行监管和分析。其中,该特定端口可以是流经该端口的报文的转发发生异常的端口,或预先设定的待监控端口;环回口和远程镜像目的端口可以根据具体应用场景设置,其均为TRILL端口,且均为镜像VLAN的成员端口。
步骤202、RB设备在外部环回口环回的镜像报文中增加外层的镜像VLANTag,并依据镜像VLAN对应的TRILL分发树,对该镜像报文进行TRLL封装得到TRILL报文。
具体的,针对外部环回口上环回的镜像报文,RB设备在为该镜像报文中打上外层的镜像VLAN Tag后,为了使该报文能够根据镜像VLAN对应的TRILL分发树转发到目的端口,RB设备还需要依据镜像VLAN所对应的TRILL分发树对该镜像报文进行TRILL封装,其中,TRILL封装后的镜像报文,其TRILL头中的出节点(Egress RB)Nickname为镜像VLAN所对应的TRILL分发树的树根设备的Nickname,入节点(Ingress RB)Nickname为所述RB设备的Nickname。
在本发明实施例中,RB设备依据镜像VLAN所对应的TRILL分发树对该镜像报文进行TRILL封装具体可以包括以下两种情况:
当外部环回口上环回的镜像报文为非TRILL封装报文时,为了使该报文能在TRILL网络中正常传输,RB设备为该镜像报文打上镜像VLAN Tag后,将该镜像报文发送至本设备的内部环回口,在内部环回口处为该镜像报文打上TRILL头,封装为TRILL报文;
当外部环回口上环回的镜像报文为TRILL封装报文时,为了防止外部环回口因为转发邻接表的检查而将接收到的TRILL报文丢弃,RB设备事先配置禁止对所述外部环回口的TRILL报文的转发邻接表检查,从而不再对该镜像报文执行转发邻接表的检查,而是直接为该镜像报文打上镜像VLAN Tag后,将镜像报文重定向至内部环回口,在内部环回口处为该镜像报文打上TRILL头进行二次TRILL封装得到新的TRILL报文。
其中,RB设备的内部环回口为镜像报文打上的TRILL头中的Egress(出节点)RB Nickname为镜像VLAN所对应的TRILL分发树的树根设备的Nickname,Ingress(入节点)RB Nickname为该RB设备的Nickname。
步骤203、RB设备将TRILL报文通过镜像VLAN所对应的TRILL分发树发送至远程镜像目的端口。
具体的,在RB设备将本设备的外部环回口上环回的镜像报文封装为TRILL报文后,可以通过镜像VLAN所对应的TRILL分发树发送至远程镜像目的端口,以使得该远程镜像目的端口在剥离所述TRILL报文中的TRILL封装和镜像VLAN Tag后,得到原始的镜像报文。
其中,RB设备通过TRILL网络将封装后的TRILL报文发送到远程镜像目的端口的转发路径由RB设备根据外部环回口和远程镜像目的端口,对应VLAN Tag进行路由计算生成,其具体生成方式在此不再赘述。此外,内部环回口对报文的TRILL封装与现有TIRLL转发逻辑中内部环回口的相应处理相似,在此也不再赘述。
需要注意的是,在本发明实施例中,当需要镜像的报文为TRILL报文时,所设置的外部环回口和远程镜像目的端口优选地配置为Hybrid类型的端口;此外,在本发明实施例中,对应镜像VLAN的TRILL转发路径上的各设备需要禁止该镜像VLAN的MAC地址学习。
为了更好地理解本发明实施例提供的技术方案,以下结合具体的应用场景对本发明实施例提供的技术方案进行更加详细地描述。
参见图3,为本发明实施例提供的一种应用场景的结构示意图。在该实施例中,报文从端口A进入TRILL网络,在TRILL网络中的正常转发路径为A->B->C->D,若需要使报文从端口A进入TRILL网络后,跨越该TRILL网络,远程镜像到端口H,需要进行如下设置:
(1)、设置镜像组,将端口A接收到的报文镜像到外部环回口E;
(2)、设置镜像VLAN(如VLAN4094);
(3)、设置外部环回口E,在外部环回口E下发VFP(VLAN Fast Processer,VLAN快速处理器)策略,以对外部环回口E环回的报文打上VLAN Tag为4094的外层VLAN Tag;其中,外部环回口E为VLAN4094的成员端口;
(4)设置远程镜像目的端口H,该端口为VLAN4094的成员端口,PVID(Private VLAN ID,私有VLAN标识)为4094。
其中,端口E和端口H均为TRILL端口;对应VLAN4094的TRILL转发路径上的各设备需要禁止基于VLAN4094的MAC学习,以防止镜像流量对转发的影响。
假设从端口A进入具有源MAC=0-0-1的报文,携带的VLAN Tag为1000,正常情况下端口A会学习到如表1所示的表项:
表1
Entry |
端口A |
MAC=0-0-1 |
VLAN=1000 |
若报文从外部环回口E环回,且不禁止VLAN4094的MAC学习,在端口E会学习到如表2所示的表项:表2
Entry |
端口A |
MAC=0-0-1 |
VLAN=4094 |
根据上述表项,在进行报文转发时,可能会影响某些报文的正常转发。
基于图3所示的应用场景,本发明实施例提供的基于TRILL网络的远程镜像实现方法的流程示意图可以如图4所示,可以包括以下步骤:
步骤401、当RB1从端口A接收到报文时,RB1将该报文镜像到外部环回口E。
具体的,在该实施例中,端口A为需要进行报文镜像的端口,当RB1从端口A接收到报文时,RB1将该报文镜像到外部环回口E。其中,RB1从端口A接收到的报文为非TRILL报文。
步骤402、RB1为该报文打上镜像VLAN Tag,并将该报文封装为TRILL报文。
具体的,在该实施例中,由于镜像到外部环回口E的报文为非TRILL报文,无法直接通过TRILL网络转发到远程镜像目的端口H,因此,RB1在报文镜像到外部环回口E后,为该报文打上镜像VLAN Tag(4094),并通过内部环回口将该报文封装为TRILL报文,以使该报文能跨越TRILL网络,远程镜像到端口H。
步骤403、RB1通过对应VLAN4094的转发路径将该TRILL报文发送到远程镜像目的端口H。
具体的,在该实施例中,外部环回口E和远程镜像目的端口H均为VLAN4094的成员端口,RB1设备可以通过路由计算确定从端口E到端口H的对应VLAN4094的TRILL转发路径(如E->F->G->H),并将封装为TRILL格式的镜像报文通过该TRILL转发路径发送到端口H。
参见图5,为本发明实施例提供的另一种应用场景的结构示意图。在该实施例中,报文从端口A进入TRILL网络,在TRILL网络中的正常转发路径为A->B->X->Y->C->D,若需要使报文经过端口X后,跨越TRILL网络,远程镜像到端口H,需要进行如下设置:
(1)、设置镜像组,将端口X接收到的报文镜像到外部环回口E;
(2)、设置镜像VLAN(如VLAN4094);
(3)、设置外部环回口E,在外部环回口E下发VFP策略,以对外部环回口E环回的报文打上VLAN Tag为4094的外层VLAN Tag;在外部环回口E下发IFP(Ingress Fast Processer,入节点快速处理器)策略,将增加了一层VLANTag的TRILL报文重定向至内部环回口,进行二次TRILL封装;其中,外部环回口E为VLAN4094的成员端口;
(4)设置远程镜像目的端口H,该端口为VLAN4094的成员端口,PVID为4094。
其中,端口E和端口H均为Hybrid端口;对应VLAN4094的TRILL转发路径上的各设备需要禁止基于VLAN4094的MAC学习,以防止镜像流量对转发的影响。
在该实施例中,经过X口的TRILL报文会被镜像到外部环回口E,然后经FP(VFP、IFP)规则处理后重定向至外部环回口E进行二次TRILL封装,接着根据二次封装的TRILL头进行转发,从而实现基于镜像VLAN的TRILL转发。
基于图5所示的应用场景,本发明实施例提供的基于TRILL网络的远程镜像实现方法的流程示意图可以如图6所示,可以包括以下步骤:
步骤601、当RB2从端口X接收到报文时,RB2将该报文镜像到外部环回口E。
具体的,在该实施例中,端口X为需要进行报文镜像的端口,当RB2从端口X接收到报文时,RB2将报文镜像到外部环回口E。其中,RB2从端口X接收到的报文为TRILL报文。
步骤602、RB2为该报文打上VLAN Tag,将该报文重定向至内部环回口,对该报文进行二次TRILL封装。
具体的,在该实施例中,镜像到外部环回口E的报文为TRILL报文为TRILL报文,而由于端口B与外部环回口E为非邻接端口,因此,为了避免外部环回口E对接收到的TRILL报文进行转发邻接表检查时将报文丢弃,在外部环回口E除了下发VFP策略,对外部环回的报文增加一个外层VLAN Tag之外,还需要下发IFP策略,将增加了一层VLAN Tag的TRILL报文重定向至内部环回口,进行二次封装和基于镜像VLAN Tag进行转发的处理。
步骤603、RB2通过对应VLAN4094的转发路径将该TRILL报文发送到远程镜像目的端口H。
具体的,在该实施例中,外部环回口E和远程镜像目的端口H均为VLAN4094的成员端口,RB1设备可以通过路由计算确定从端口E到端口H的对应VLAN4094的TRILL转发路径(如E->F->G->H),并将封装为TRILL格式的镜像报文通过该TRILL转发路径发送到端口H。
通过以上描述可以看出,在本发明实施例提供的技术方案中,当RB设备确定接收到的报文需要镜像时,RB设备将该报文镜像到本设备的外部环回口;针对外部环回口上环回的镜像报文,RB设备在该镜像报文中增加外层的镜像VLAN Tag,并依据镜像VLAN所对应的TRILL分发树,对该镜像报文进行TRILL封装得到TRILL报文;RB设备将该TRILL报文,通过镜像VLAN所对应的TRILL分发树发送至远程镜像目的端口,以使得目的端口在剥离TRILL报文中的TRILL封装和镜像VLAN Tag后,得到原始的镜像报文,实现了TRILL网络中的远程镜像,从而能够对TRILL网络的流量进行监管和分析,进而定位TRILL网络中出现的问题,解决TRILL网络中可能出现的转发异常等问题。
基于上述方法实施例系统的发明构思,本发明实施例还提供了一种网络设备,可以作为RB设备应用于上述方法实施例。
如图7所示,为本发明实施例提供的一种网络设备的结构示意图,该网络设备可以作为RB设备应用于TRILL网络,该网络设备可以包括:
镜像模块71,用于当所述网络设备确定接收到的报文需要镜像时,将所述报文镜像到本设备的外部环回口;
封装模块72,用于针对所述外部环回口上环回的镜像报文,在所述镜像报文中增加外层的镜像虚拟局域网VLAN标签Tag,并依据镜像VLAN所对应的TRILL分发树,对所述镜像报文进行TRILL封装得到TRILL报文;
发送模块73,用于将所述TRILL报文,通过镜像VLAN所对应的TRILL分发树发送至远程镜像目的端口,以使得目的端口在剥离所述TRILL报文中的TRILL封装和镜像VLAN Tag后,得到原始的镜像报文;
其中,所述外部环回口和远程镜像目的端口均预先配置为所述镜像VLAN的成员端口,且所述TRLL网络中禁止基于所述镜像VLAN的媒体访问控制MAC学习。
其中,所述封装模块72具体用于,通过以下方式实现依据镜像VLAN所对应的TRILL分发树,对所述镜像报文进行TRILL封装:
为所述镜像报文打上TRILL头,其中所述TRILL头中的出节点Egress RBNickname为镜像VLAN所对应的TRILL分发树的树根设备的Nickname,入节点Ingress RB Nickname为所述RB设备的Nickname。
其中,所述封装模块72具体用于:
若所述外部环回口上环回的镜像报文为非TRILL封装报文,为所述镜像报文打上镜像VLAN Tag后,将所述镜像报文发送至本设备的内部环回口,在所述内部环回口处为该镜像报文打上所述TRILL头,封装为TRILL报文;
若所述外部环回口上环回的镜像报文为TRILL封装报文,禁止对所述外部环回口上环回的镜像报文的转发邻接表检查,直接为所述镜像报文打上镜像VLAN Tag后,将镜像报文重定向至内部环回口,在所述内部环回口处为所述镜像报文打上所述TRILL头进行二次TRILL封装得到新的TRILL报文。
其中,所述需要镜像的报文为所述RB设备从特定端口接收到的报文需要镜像;所述特定端口为预先设定的待监控端口,或,所述特定端口为流经该端口的报文的转发发生异常的端口。
其中,当所述需要镜像的报文为TRILL报文时,所述外部环回口和远程镜像目的端口为混杂Hybrid类型的端口。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台终端设备(可以是手机,个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。