发明内容
有鉴于此,本发明的主要目的在于提供两种实现数据镜像的方法,以实现多个端口之间的数据镜像。
为达到上述目的,本发明的技术方案是这样实现的:
第一种实现数据镜像的方法,该方法包括:
A、被监测设备接收数据帧或即将发送数据帧,并确定该数据帧为镜像数据帧,之后被监测设备确定该镜像数据帧的镜像口;
B、被监测设备将该镜像数据帧的来源信息与该镜像数据帧一起发送到查找到的镜像口,之后镜像口所在监测设备保存该镜像数据帧与镜像数据帧来源信息的对应关系。
所述被监测设备与监测设备为同一设备,
步骤B所述镜像数据帧的来源信息为被监测设备上接收或即将发送该镜像数据帧的端口的端口号。
步骤B所述镜像数据帧来源信息进一步包括:被监测设备接收或发送该镜像数据帧的时刻,和/或该镜像数据帧的接收或发送指示,和/或该镜像数据帧的业务流标识。
所述监测设备与被监测设备不为同一设备,
步骤B所述镜像数据帧的来源信息为被监测设备的设备号。
步骤B所述镜像数据帧的来源信息进一步包括:被监测设备上接收或即将发送该镜像数据帧的端口的端口号,和/或被监测设备接收或发送该镜像数据帧的时刻,和/或该镜像数据帧的接收或发送指示,和/或该镜像数据帧的业务流标识。
所述被监测设备接收或发送该镜像数据帧的时刻为:被监测设备自身的时间寄存器中保存的当前网络时刻。
所述镜像数据帧的来源信息进一步包括被监测设备上接收或即将发送该镜像数据帧的端口的端口号;
所述方法进一步包括:监测设备保存被监测设备的位置信息与被监测设备的设备号的对应关系,同时保存被监测设备的端口位置信息与被监测设备的端口号的对应关系;
所述步骤B之后进一步包括:监测设备根据自身保存的镜像数据帧与设备号和端口号的对应关系,查找到镜像数据帧对应的设备号和端口号,然后根据自身保存的被监测设备的位置信息与设备号的对应关系、被监测设备的端口位置信息与被监测设备的端口号的对应关系,查找到该镜像数据帧对应的被监测设备及被监测设备端口的位置信息。
所述被监测设备和监测设备位于二层网络中;
所述被监测设备的设备号为被监测设备上接收或发送该镜像数据帧的端口的MAC地址。
所述被监测设备和监测设备位于三层网络中;
所述被监测设备的设备号为被监测设备上接收或发送该镜像数据帧的端口的IP地址。
所述方法进一步包括:监测设备保存被监测设备的位置信息与被监测设备的设备号的对应关系;
所述步骤B之后进一步包括:监测设备根据自身保存的镜像数据帧与设备号的对应关系,查找到镜像数据帧对应的设备号,然后根据自身保存的被监测设备的位置信息与设备号的对应关系,查找到该镜像数据帧对应的被监测设备的位置信息。
第二种实现数据镜像的方法,该方法包括:
A1、被监测设备接收或即将发送数据帧,判断该数据帧是否满足自身保存的镜像数据帧的判定条件,若是,判定该数据帧为镜像数据帧,执行步骤B1;否则,本流程结束;
B1、被监测设备根据该镜像数据帧携带的业务属性,在自身保存的数据帧的业务属性与镜像口的对应关系中查找该镜像数据帧对应的镜像口;
C1、被监测设备将该镜像数据帧的来源信息与该镜像数据帧一起发送到查找到的镜像口,之后镜像口所在监测设备保存该镜像数据帧与镜像数据帧来源信息的对应关系。
所述被监测设备与监测设备为同一设备,
步骤C1所述镜像数据帧的来源信息至少包括被监测设备上接收或即将发送该镜像数据帧的端口的端口号;
进一步包括:被监测设备接收或发送该镜像数据帧的时刻,和/或该镜像数据帧的接收或发送指示,和/或该镜像数据帧的业务流标识。
所述被监测设备与监测设备不为同一设备,
步骤C1所述镜像数据帧的来源信息至少包括被监测设备的设备号;
进一步包括:被监测设备上接收或即将发送该镜像数据帧的端口的端口号,和/或被监测设备接收或发送该镜像数据帧的时刻,和/或该镜像数据帧的接收或发送指示,和/或该镜像数据帧的业务流标识。
与现有技术相比,本发明所提供的方法在被监测设备收到数据帧或即将发送数据帧,且检测到该数据帧为镜像数据帧后,将该镜像数据帧的来源信息与该镜像数据帧一起发送给镜像口,之后镜像口所在监测设备保存镜像数据帧与镜像数据帧的来源信息的对应关系。具体地,在监测设备与被监测设备为同一设备时,镜像数据帧的来源信息至少包括:接收或发送镜像数据帧的端口的端口号,在监测设备与被监测设备不为同一设备时,镜像数据帧的来源信息至少包括:被监测设备的设备号,进一步地,镜像数据帧的来源信息包括:镜像数据帧的接收或发送指示、接收或发送时刻、业务流标识等,本发明实现了一台设备的一个端口对自身设备上或其它设备上的一个以上端口上所传输的数据帧的监测,进一步实现了一台设备的一个端口在同一时刻对自身设备或其它设备的多个端口上所传输的不同方向、不同业务流的数据帧的监测,扩大了监测设备的监测范围。
具体实施方式
本发明中,将镜像口所在设备称为监测设备,将源端口所在设备称为被监测设备。在监测设备与被监测设备为同一设备,且一个镜像口对应多个源端口时,或者在监测设备与被监测设备不为同一设备、尤其在一台监测设备同时监测多台被监测设备时,镜像口为了实现对镜像数据的监测,必须得知镜像数据帧的来源,具体地,包括:镜像数据帧来自于哪台被监测设备、来自于被监测设备的哪个端口、以及该镜像数据帧来自被监测设备的接收方向还是发送方向、该镜像数据帧接收或发送时刻、该镜像数据帧的业务流标识等。因此,本发明的核心思想是:被监测设备在发送镜像数据帧时,将该镜像数据帧的来源信息与该镜像数据帧一起发送到镜像口,镜像口收到镜像数据帧的来源信息和镜像数据帧后,保存镜像数据帧与镜像数据帧来源信息的对应关系。
下面结合附图及具体实施例对本发明再作进一步详细的说明。
图1是本发明提供的实现数据镜像的流程图,如图1所示,其具体步骤如下:
步骤101:被监测设备接收数据帧或即将发送数据帧,并检测到该数据帧为镜像数据帧。
被监测设备保存有镜像数据帧的判定条件,被监测设备接收到数据帧或即将发送数据帧时,判断该数据帧是否满足镜像数据帧判定条件,若满足,判定该数据帧为镜像数据帧。该判定条件可根据ACL技术得到,可为:数据帧支持的VLAN、数据帧的源MAC地址、数据帧的目的MAC地址、数据帧的优先级、数据帧的源IP地址、数据帧的目的IP地址、数据帧的DSCP优先级、数据帧的源TCP/UDP端口号、数据帧的目的TCP/UDP端口号、数据帧的MPLS标签值、数据帧的入物理端口号等中的一种或任意组合。
步骤102:被监测设备查找该镜像数据帧对应的镜像口。
被监测设备可通过ACL技术建立镜像数据帧的业务属性与镜像口的对应关系,被监测设备根据封装在镜像数据帧中的业务属性,在上述对应关系中,查找到该镜像数据帧对应的镜像口。业务属性可为:数据帧支持的VLAN、数据帧的源MAC地址、数据帧的目的MAC地址、数据帧的优先级、数据帧的源IP地址、数据帧的目的IP地址、数据帧的DSCP优先级、数据帧的源TCP/UDP端口号、数据帧的目的TCP/UDP端口号、数据帧的MPLS标签值、数据帧的入物理端口号等中的一种或任意组合。
步骤103:被监测设备将镜像数据帧的来源信息与镜像数据帧一起发送到镜像口。
步骤104:镜像口接收到镜像数据帧的来源信息与镜像数据帧后,镜像口所在的监测设备保存该镜像数据帧与该镜像数据帧来源信息的对应关系。
此后,监测设备就可根据自身保存的镜像数据帧与镜像数据帧来源信息的对应关系,得知镜像数据帧的来源。
图2是本发明提供的实现数据镜像的具体实施例一的流程图,在本实施例中,监测设备与被监测设备为同一设备,且一个镜像口可对应一个以上源端口,如图2所示,其具体步骤如下:
步骤201:对被监测设备的端口号进行编码,且监测设备保存被监测设备的端口位置信息与端口号的对应关系。
端口位置信息指示了端口的具体地理位置,如:端口的位置信息可为:05号房间1号主机等。
这里需注意被监测设备与监测设备为同一设备。
步骤202:被监测设备的源端口接收数据帧或即将发送数据帧,并检测到该数据帧为镜像数据帧。
步骤203:被监测设备查找该镜像数据帧的镜像口。
步骤204:被监测设备将接收或发送该镜像数据帧的源端口的端口号和镜像数据帧一起发送到镜像口。
进一步地,可将该镜像数据帧的接收或发送指示、和/或该镜像数据帧的接收或发送时刻即时间戳、和/或该镜像数据帧的业务流标识等同镜像数据帧一起发送到镜像口。
镜像数据帧的时间戳可以网络时刻表示。被监测设备可在自身增加一个专门用于记录当前网络时刻的时间寄存器,当被监测设备接收到或即将发送数据帧,且判定该数据帧为镜像数据帧时,被监测设备从该时间寄存器或从自身的CPU中获取当前网络时刻,并将该网络时刻作为该镜像数据帧的时间戳封装到该镜像数据帧中。
镜像数据帧的时间戳可以64比特来表示,与网络时间协议(NTP)中使用的时间戳格式相同。
步骤205:镜像口收到端口号和镜像数据帧后,监测设备保存该镜像数据帧与端口号的对应关系。
进一步地,若镜像口收到镜像数据帧的同时,收到该镜像数据帧的接收或发送指示、和/或时间戳、和/或业务流标识等,则监测设备进一步保存该镜像数据帧与该镜像数据帧的接收或发送指示、和/或时间戳、和/或业务流标识等的对应关系。
此后,当监测设备要查询镜像数据帧的具体信息时,就可根据自身保存的镜像数据帧与端口号、和接收或发送指示、和/或时间戳、和/或业务流标识等的对应关系,以及端口位置信息与端口号的对应关系,查找到该镜像数据帧来自于哪个端口、该镜像数据帧来自于接收方向还是发送方向、接收或发送该镜像数据帧的时刻、该镜像数据帧的业务流标识。
图3是本发明提供的实现数据镜像的具体实施例二的流程图,在本实施例中,监测设备与被监测设备不为同一设备,如图3所示,其具体步骤如下:
步骤301:对被监测设备的设备号进行编码,各被监测设备保存自身的设备号,监测设备保存各被监测设备的位置信息与设备号的对应关系。
被监测设备的位置信息指示了被监测设备的具体地理位置,如:监测设备的位置信息可以是:海淀区知春路知春大厦15层等。
步骤302:被监测设备接收数据帧或即将发送数据帧,并检测到该数据帧为镜像数据帧。
步骤303:被监测设备查找该镜像数据帧对应的镜像口。
步骤304:被监测设备将自身的设备号和镜像数据帧一起发送到镜像口。
步骤305:镜像口接收到被监测设备的设备号和镜像数据帧后,镜像口所在的监测设备保存该镜像数据帧与被监测设备的设备号的对应关系。
此后,当监测设备要查询镜像数据帧来自于哪台设备时,就可根据自身保存的镜像数据帧与被监测设备的设备号的对应关系,首先查找到镜像数据帧对应的设备号,然后根据自身保存的被监测设备的位置信息与设备号的对应关系,查找到该被监测设备的具体位置信息,从而查找到该被监测设备。如:公安人员在监测设备上发现了一条非法信息,则可根据上述过程查找到散播该非法信息的被监测设备。
进一步地,本发明中,在一台监测设备同时监测一台以上被监测设备时,可将接收或发送该镜像数据帧的被监测设备的端口号、和/或该镜像数据帧的接收或发送指示、和/或被监测设备接收或发送该镜像数据帧的时刻即时间戳、和/或该镜像数据帧的业务流标识等同镜像数据帧和被监测设备的设备号一起发送到镜像口。图4是本发明提供的实现数据镜像的具体实施例三的流程图,如图4所示,其具体步骤如下:
步骤401:对被监测设备的设备号进行编码,各被监测设备保存自身的设备号,监测设备保存各被监测设备的位置信息与设备号的对应关系;对被监测设备的端口号进行编码,且被监测设备保存各端口的位置信息与端口号的对应关系,监测设备保存该被监测设备的设备号与端口号的对应关系,同时保存各端口的位置信息与端口号的对应关系。
步骤402:被监测设备接收数据帧或即将发送数据帧,并检测到该数据帧为镜像数据帧。
步骤403:被监测设备查找该镜像数据帧的镜像口。
步骤404:被监测设备将自身的设备号、和接收或发送该镜像数据帧的端口号、和/或该镜像数据帧的接收或发送指示、和/或该镜像数据帧的时间戳、和/或该镜像数据帧的业务流标识与镜像数据帧一起发送到镜像口。
步骤405:镜像口接收到被监测设备的设备号、和接收或发送该镜像数据帧的端口的端口号、和/或该镜像数据帧的接收或发送指示、和/或该镜像数据帧的时间戳、和/或该镜像数据帧的业务流标识与镜像数据帧后,镜像口所在的监测设备保存该镜像数据帧与设备号、和端口号、和/或接收或发送指示、和/或时间戳、和/或业务流标识的对应关系。
此后,当监测设备要查询镜像数据帧的具体信息时,就可根据自身保存的镜像数据帧与设备号、和端口号、和/或接收或发送指示、和/或时间戳、和/或业务流标识的对应关系,以及设备位置信息与设备号的对应关系、端口位置信息与端口号的对应关系,查找到该镜像数据帧来自于哪台设备的哪个端口、和/或该镜像数据帧来自于接收方向还是发送方向、和/或接收或发送该镜像数据帧的时刻、和/或该镜像数据帧的业务流标识。
以下给出应用本发明的具体例子:
例子一:在二层网络中实现数据镜像。
步骤01:被监测设备接收到数据帧,且检测到该数据帧为镜像数据帧。
以MAC-in-MAC隧道封装为例,该数据帧的封装格式如图5-1所示,具体包括:
以太网封装头:目的MAC地址、源MAC地址、固定类型/长度值:8100、VLAN标识(VLAN ID)的优先级、以太网类型;
这里的目的MAC地址为MAC-in-MAC隧道的隧道终点MAC地址,源MAC地址为MAC-in-MAC隧道的隧道起点MAC地址。
原以太网封装头:目的MAC地址、源MAC地址、固定类型/长度值:8100、VLAN ID的优先级、以太网类型;
这里的目的MAC地址、源MAC地址为该数据帧的初始发送地址和最终接收地址。
静负荷;
封装隧道的以太网数据帧校验码。
步骤02:被监测设备以以太网封装头中的源MAC地址作为自身的设备号,并将接收或发送该镜像数据帧的自身端口号、该镜像数据帧的接收或发送指示、该镜像数据帧的时间戳、该镜像数据帧的业务流标识封装到该镜像数据帧中,同时以预先设定的值替换以太网封装头中的以太网类型的当前值。
由于以太网封装头中的源MAC地址为被监测设备上的端口的MAC地址,因此,本例子中,将以太网封装头中的源MAC地址作为被监测设备的设备号,将端口号、接收或发送指示、时间戳、业务流标识作为被监测设备封装头封装在以太网封装头和原以太网封装头之间,经重新封装后的数据帧封装格式如图5-2所示,具体包括:
以太网封装头:目的MAC地址、源MAC地址、固定类型/长度值:8100、VLAN ID的优先级、以太网类型;
这里的源MAC地址用来表示被监测设备的设备号,以太网类型的值为预先设定的值,与步骤01中的以太网类型值不同,以表示以太网封装头之后为被监测设备封装头。
被监测设备封装头:端口号、接收或发送指示、时间戳、业务流标识。
端口号可以15个比特表示,接收或发送指示可以1个比特表示,时间戳可以64个比特表示,业务流标识可以16个比特表示。
原以太网封装头:目的MAC地址、源MAC地址、固定类型/长度值:8100、VLAN ID的优先级、以太网类型;
静负荷;
封装隧道的以太网数据帧校验码。
步骤03:被监测设备将封装后的镜像数据帧发送到镜像口。
步骤04:镜像口接收镜像数据帧后,根据以太网封装头中的以太网类型得知:以太网封装头与原以太网封装头之间为被监测设备封装头,保存该镜像数据帧与该镜像数据帧的以太网封装头中的源MAC地址、以及被监测设备封装头中的端口号、接收或发送指示、时间戳、业务流标识的对应关系。
例子二:在三层网络中实现数据镜像。
步骤01:被监测设备即将发送数据帧,且检测到该数据帧为镜像数据帧。
以通用路由封装(GRE)隧道封装为例,该数据帧的封装格式如图6-1所示,具体包括:
以太网封装头:目的MAC地址、源MAC地址、固定类型/长度值:8100、VLAN ID的优先级、以太网类型;
这里的目的MAC地址、源MAC地址分别为接收该数据帧的网关设备的端口的MAC地址、发送该数据帧的网关设备的端口的MAC地址。
IP封装头:版本号、IP包头长度、服务类型、IP包总长度、IP包标志、IP分段标志、IP分段偏移、生存时间(TTL)、IP协议域、源IP地址、目的IP地址;
这里的源IP地址、目的IP地址为被监测设备接收该数据帧的端口的IP地址、被监测设备发送该数据帧的端口的IP地址。
GRE封装头:头校验码,GRE版本号、保留字段、协议类型、可选校验码、可选保留字段;
原以太网封装头:目的MAC地址、源MAC地址、固定类型/长度值:8100、VLAN ID的优先级、以太网类型;
静负荷;
封装隧道的IP包校验码;
封装隧道的以太网数据帧校验。
步骤02;被监测设备以IP封装头中的源IP地址作为自身的设备号,并将发送或接收该镜像数据帧的端口的端口号、该镜像数据帧的接收或发送指示、该镜像数据帧的时间戳、该镜像数据帧的业务流标识封装到该镜像数据帧中,同时以预先设定的值替换GRE封装头中的协议类型的当前值。
本例子中,将IP封装头中的源IP地址作为被监测设备的设备号,将端口号、接收或发送指示、时间戳、业务流标识作为被监测设备封装头封装在GRE封装头和原以太网封装头之间,经重新封装后的数据帧封装格式如图6-2所示,具体包括:
以太网封装头:目的MAC地址、源MAC地址、固定类型/长度值:8100、VLAN ID的优先级、以太网类型;
IP封装头:版本号、IP包头长度、服务类型、IP包总长度、IP包标志、IP分段标志、IP分段偏移、TTL、IP协议域、源IP地址、目的IP地址;
这里的源IP地址为被监测设备的设备号。
GRE封装头:头校验码,GRE版本号、保留字段、协议类型、可选校验码、可选保留字段;
这里的协议类型为预先设定的值,与步骤01中的协议类型的值不同,以表示GRE封装头之后为被监测设备封装头。
被监测设备封装头:端口号、接收或发送指示、时间戳、业务流标识。
原以太网封装头:目的MAC地址、源MAC地址、固定类型/长度值:8100、VLAN ID的优先级、以太网类型;
静负荷;
封装隧道的IP包校验码;
封装隧道的以太网数据帧校验。
步骤03:被监测设备将封装后的镜像数据帧发送到镜像口。
步骤04:镜像口接收镜像数据帧后,根据GRE封装头中的协议类型得知:GRE封装头与原以太网封装头之间为被监测设备封装头,保存该镜像数据帧与该镜像数据帧的IP封装头中的源IP地址、以及被监测设备封装头中的端口号、接收或发送指示、时间戳、业务流标识的对应关系。
以上所述仅为本发明的过程及方法实施例,并不用以限制本发明,凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。