CN118740603A - 设备接入位置的获取方法及装置 - Google Patents
设备接入位置的获取方法及装置 Download PDFInfo
- Publication number
- CN118740603A CN118740603A CN202310371599.9A CN202310371599A CN118740603A CN 118740603 A CN118740603 A CN 118740603A CN 202310371599 A CN202310371599 A CN 202310371599A CN 118740603 A CN118740603 A CN 118740603A
- Authority
- CN
- China
- Prior art keywords
- port
- message
- identifier
- network device
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 135
- 230000004044 response Effects 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 9
- 238000004891 communication Methods 0.000 abstract description 37
- 230000005540 biological transmission Effects 0.000 description 49
- 230000008569 process Effects 0.000 description 41
- 238000010586 diagram Methods 0.000 description 40
- 238000012545 processing Methods 0.000 description 25
- 230000006870 function Effects 0.000 description 24
- 238000007726 management method Methods 0.000 description 19
- 238000001914 filtration Methods 0.000 description 12
- 230000003993 interaction Effects 0.000 description 7
- 238000012423 maintenance Methods 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 238000012216 screening Methods 0.000 description 5
- 238000005538 encapsulation Methods 0.000 description 4
- 230000000737 periodic effect Effects 0.000 description 4
- 208000036829 Device dislocation Diseases 0.000 description 3
- 101001121408 Homo sapiens L-amino-acid oxidase Proteins 0.000 description 3
- 102100026388 L-amino-acid oxidase Human genes 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000013508 migration Methods 0.000 description 3
- 230000005012 migration Effects 0.000 description 3
- 101000827703 Homo sapiens Polyphosphoinositide phosphatase Proteins 0.000 description 2
- 102100023591 Polyphosphoinositide phosphatase Human genes 0.000 description 2
- 101100233916 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) KAR5 gene Proteins 0.000 description 2
- 101150112309 Spin1 gene Proteins 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 238000013024 troubleshooting Methods 0.000 description 2
- 101100534085 Mus musculus Spin2c gene Proteins 0.000 description 1
- 101100012902 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) FIG2 gene Proteins 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000004148 unit process Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0677—Localisation of faults
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/20—Support for services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/20—Support for services
- H04L49/208—Port mirroring
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供了一种设备接入位置的获取方法及装置,涉及通信领域,该方法包括:接收网络设备发送的镜像报文,基于镜像报文判断数据报文的发送端是否为用户设备,并且在判定数据报文的发送端为用户设备的情况下,获取该用户设备在网络中的接入位置信息。其中,镜像报文是基于网络设备接收到的数据报文生成的,数据报文中携带数据报文的发送端的标识,镜像报文中携带数据报文或者数据报文的部分内容,以及,网络设备的标识和接收端口标识,接入位置信息包括发送端的标识、网络设备的标识和接收端口标识。本申请基于镜像报文对网络中的用户设备进行准确定位,以获取到用户设备的接入位置。
Description
技术领域
本申请涉及通信领域,尤其涉及一种设备接入位置的获取方法及装置。
背景技术
在大型的通信系统中,若系统中的应用数据传输出现异常,则可能是由于网络原因引起的。因此,管理人员需对故障点进行定位,并排除故障。在故障定位过程中,管理人员需获取到各用户设备在网络中的接入位置,并进一步基于网络拓扑和接入位置确定应用数据流的传输路径。管理人员可在应用数据流的传输路径上的关键位置实施流量监控,以获取一些指定参数,并进一步基于获取到的指定参数进行故障定位。因此,如何准确的获取到用户设备在网络中的接入位置为关键点之一。
发明内容
本申请提供一种设备接入位置的获取方法及装置,可对网络中的用户设备进行准确定位,以获取到用户设备的接入位置。
第一方面,本申请提供一种设备接入位置的获取方法。该方法包括:装置接收网络设备发送的镜像报文。其中,网络设备所发送的镜像报文是该网络设备基于接收到的数据报文生成的。并且,网络设备所发送的镜像报文中包括所述数据报文或者所述数据报文的部分内容,以及,该网络设备的标识和接收端口标识。其中,镜像报文中携带的接收端口标识用于指示网络设备接收数据报文的接收端口,所述镜像报文中的数据报文或者所述镜像报文中的数据报文的部分内容中包括所述数据报文的发送端的标识。接着,装置基于接收到的镜像报文,判断数据报文的发送端是否为用户设备。若判定发送端为用户设备,则装置获取用户设备在网络中的接入位置信息。其中,接入位置信息包括发送端的标识、网络设备的标识和接收端口标识。
这样,本申请基于镜像报文以获取用户设备的接入位置的方式,可使得系统在用户设备与系统中的设备有数据交互时,即可实时的获取到用户设备的接入位置,可提高用户设备的接入位置获取的实时性。并且,本申请提供一种通用性强的接入位置获取方法,可应用于各种组网场景,满足不同组网场景对接入位置获取的实时性和准确性的需求。例如,在终端设备迁移场景等中,本申请可及时更新设备的接入位置,以保证获取到的用户设备的接入位置的实时性。并且,本申请仅依赖于网络设备传输镜像报文,即可获取到用户设备的接入位置,无需传输大量的接口数据等,可有效降低系统内的通信开销,减少带宽占用。
示例性的,网络设备与数据报文的发送端之间基于有线连接进行数据交互。
示例性的,数据报文的接收端口也可以理解为是与数据报文的发送端之间的连接端口。
在一种可能的实现方式中,基于镜像报文,判断数据报文的发送端是否为用户设备,包括:装置基于镜像报文中的接收端口标识,判断数据报文的发送端是否为用户设备。这样,本申请通过扩展镜像报文,可使得镜像报文携带接收端口标识。相应的,装置通过镜像报文携带的接收端口标识,可判定对应的接收端口所连接的发送端是否为用户设备,从而提供一种适用于二层和三层数据报文转发的场景的接入位置获取方案,可实现对用户设备的接入设备的准确定位,进而得到用户设备的接入位置。
在一种可能的实现方式中,基于镜像报文,判断数据报文的发送端是否为用户设备,包括:装置基于镜像报文中的发送端的标识,判断数据报文的发送端是否为用户设备。这样,本申请利用镜像报文的特性,可基于镜像报文中携带的发送端的标识以判断发送端的设备类型(即用户设备或非用户设备),以在确定发送端为用户设备的情况下,进一步获取到用户设备的接入点。
在一种可能的实现方式中,接收端口的端口类型为用户侧端口类型。这样,本申请中具备用户侧端口类型的端口的网络设备,在基于用户侧端口类型的接收端口接收到数据报文的情况下,才触发镜像报文发送流程。其余不具备用户侧端口类型的端口的网络设备,以及具备用户侧端口类型的端口的网络设备但是基于非用户侧端口类型的接收端口接收到数据报文的情况下,不会触发镜像报文的发送,从而可有效降低镜像报文的交互次数,降低网络设备的压力的同时,进一步降低通信开销。
在一种可能的实现方式中,基于镜像报文,判断数据报文的发送端是否为用户设备,包括:装置响应于接收到的镜像报文,判定数据报文的发送端为用户设备。这样,本申请中具备用户侧端口类型的端口的网络设备,在基于用户侧端口类型的接收端口接收到数据报文的情况下,才触发镜像报文发送流程的场景中,装置接收到镜像报文,即可确定镜像报文的发送端即为用户设备的接入点,从而有效提高接入点的定位效率,
在一种可能的实现方式中,接收网络设备发送的镜像报文之前,方法还包括:装置基于第一信息,确定网络中的至少一个网络设备。其中,第一信息中包括网络中各网络设备的端口的端口标识和对应的端口类型,端口类型包括用户侧端口类型和网络设备侧端口类型,至少一个网络设备中的每个网络设备包括用户侧端口类型的端口。接着,装置向至少一个网络设备发送指示信息,其中,该指示信息用于指示至少一个网络设备中的每个网络设备基于每个网络设备的用户侧接口类型的端口接收到的数据报文生成镜像报文。这样,本申请可预先确定网络中的一些用户侧端口类型的端口,并指示这些端口所属的网络设备作为镜像报文的发送端,使得这些网络设备基于用户侧端口类型的端口接收到数据报文,才触发镜像报文的发送流程。从而有效降低镜像报文的交互次数,降低网络设备的压力的同时,进一步降低通信开销。
在一种可能的实现方式中,基于镜像报文中的接收端口标识,判断数据报文的发送端是否为用户设备,包括:装置基于第一信息和接收端口标识,确定接收端口的端口类型,第一信息包括网络中各网络设备的端口的端口标识和对应的端口类型,端口类型包括用户侧端口类型和网络设备侧端口类型。若接收端口的端口类型为用户侧端口类型,装置判定发送端为用户设备。若接收端口的端口类型为网络设备侧端口类型,装置判定发送端为非用户设备。这样,本申请通过对端口预先进行分类,以在网络设备接收到数据报文时,判断接收数据报文的端口所对应的端口类型。其中,预先分类可以理解为是初步筛选。在初步筛选阶段,网络设备侧端口类型的端口是可以确定的,而用户侧端口类型的端口所连接的设备可能是用户设备,也可能是非用户设备(例如非观测范围内的网络设备),或者,用户侧端口类型的端口还可能是空端口。相应的,装置可基于接收到的镜像报文,进一步判断用户侧端口中具体哪个端口连接的邻居设备为用户设备,从而实现对用户设备的准确定位,进一步获取到对应的接入位置。
在一种可能的实现方式中,接收网络设备发送的镜像报文之前,方法还包括:装置获取第二信息,第二信息包括网络中多个网络设备的标识。接着,装置获取多个网络设备中的每个网络设备的邻居信息,每个邻居信息包括源网络设备的标识、源网络设备端口标识和邻居设备的标识,源网络设备为发送邻居信息的设备,邻居设备为与源网络设备物理连接的设备,源网络设备端口标识用于指示源网络设备连接邻居设备的端口。随后,装置基于第二信息和邻居信息,确定每个网络设备的端口的端口类型,端口类型为网络设备侧端口类型的端口连接的邻居设备的标识包含于第二信息中,端口类型为用户侧端口类型的端口连接的邻居设备的标识未包含于第二信息中。这样,本申请基于预设的网络设备标识,可判断出网络设备所连接的邻居设备的设备类型为网络设备类型或非网络设备类型。其中,非网络设备中可能包括用户设备也可能是其它设备(例如非观测范围内的网络设备)。装置可基于接收到的镜像报文,进一步判断用户侧端口中具体哪个端口连接的邻居设备为用户设备,从而实现对用户设备的准确定位,进一步获取到对应的接入位置。
在一种可能的实现方式中,接收网络设备发送的镜像报文,包括:装置接收多个镜像报文;多个镜像报文来自一个或多个网络设备。发送端的标识包括发送端的IP地址和发送端的MAC地址,基于镜像报文中的发送端的标识,判断数据报文的发送端是否为用户设备,包括:若多个镜像报文中的N个镜像报文携带的发送端的IP地址相同,并且,N个镜像报文携带的发送端的MAC地址未包含于第二信息中,以及N个镜像报文携带的网络设备的标识指示的是同一个网络设备,判定发送端为用户设备,第二信息包括网络中多个网络设备的标识。这样,本申请在三层转发场景中,如果多个报文的发送端是非网络设备,且对应的镜像报文来自同一个网络设备,则可确定对应的发送端是用户设备。本申请通过结合发送端的标识以及镜像报文的分布,可准确定位出网络中的用户设备的接入点,进而获取到用户设备所对应的接入位置信息。
示例性的,多个镜像报文可能是同一个网络设备发送的。多个镜像报文可能是基于与该网络设备连接的一个用户设备发送的多个数据报文生成,多个镜像报文也可能是基于与该网络设备连接的多个用户设备发送的多个报文生成的。
在一种可能的实现方式中,基于镜像报文中的发送端的标识,判断数据报文的发送端是否为用户设备,还包括:若多个镜像报文中的M个镜像报文携带的发送端的IP地址相同,并且,M个镜像报文携带的发送端的MAC地址未包含于第二信息中,以及,M个镜像报文携带的网络设备的标识指示的是两个或两个以上网络设备,基于镜像报文中的接收端口标识,判断数据报文的发送端是否为用户设备。这样,本申请通过将两种不同的判断方式结合,可有效提高用户设备的定位的准确性,以避免误判所造成的故障定位不准确的问题发生。
在一种可能的实现方式中,方法还包括:装置基于发送端的标识,查询用户设备接入信息,用户设备接入信息中包括至少一个用户设备的接入位置信息。若用户设备接入信息中已包含发送端的标识对应的用户设备的接入位置信息,且已保存的接入位置信息与当前获取到的接入位置信息不一致,装置更新用户设备接入信息中发送端的标识对应的用户设备的接入位置信息。这样,本申请可记录用户设备的接入位置的更新状态,从而在故障定位时,使得运维人员获取到更多的故障信息,以提高故障定位的准确性。
示例性的,装置保存用户设备的接入位置信息时,还可以对应保存接入位置获取时间。其中,获取时间可以是获取到接入位置的时间,也可以是保存接入位置的时间。
在一种可能的实现方式中,基于镜像报文,判断数据报文的发送端是否为用户设备,包括:装置基于镜像报文中的接收端口标识和发送端的标识,判断数据报文的发送端是否为用户设备。若基于接收端口标识的判断结果指示发送端为用户设备,而基于发送端的标识的判断结果指示发送端为非用户设备,判定发送端为非用户设备。这样,本申请通过将两种不同的判断方式结合,可有效提高用户设备的定位的准确性,以避免误判所造成的故障定位不准确的问题发生。
在一种可能的实现方式中,数据报文携带传输层控制信息或应用层控制信息。这样,本申请中的网络设备基于特殊(或指定的)数据报文触发镜像报文的发送流程,从而可有效降低镜像报文的发送次数,以降低网络开销。并且,用户设备迁移或新接入场景下,均会发送相应的控制信息,网络设备对应触发镜像报文的发送流程,装置即可获取到用户设备的接入位置,从而在减少网络开销的同时,保证用户设备接入位置获取的实时性。
在一种可能的实现方式中,数据报文为隧道报文,且发送端的标识承载于隧道报文的内层报文。这样,本申请可应用于隧道数据报文的传输场景,即,对应于虚拟机等通过隧道协议接入系统的用户设备,同样可对其进行准确定位。
在一种可能的实现方式中,用户设备为服务器、终端设备或虚拟机。
在一种可能的实现方式中,镜像报文为封装远程端口镜像ERPAN报文。
第二方面,本申请提供一种设备接入位置的获取装置。该装置包括:接收单元和接入位置获取单元。接收单元,用于接收网络设备发送的镜像报文。其中,镜像报文为网络设备基于接收到的数据报文生成的,镜像报文中包括数据报文或者数据报文的部分内容,以及,网络设备的标识和接收端口标识,镜像报文中的数据报文或者镜像报文中的数据报文的部分内容中包括数据报文的发送端的标识,接收端口标识用于指示网络设备接收数据报文的接收端口。接入位置获取单元,用于基于镜像报文,判断数据报文的发送端是否为用户设备。接入位置获取单元,用于若判定发送端为用户设备,获取用户设备的接入位置信息,接入位置信息包括发送端的标识、网络设备的标识和接收端口标识。
在一种可能的实现方式中,接入位置获取单元,具体用于基于镜像报文中的接收端口标识,判断数据报文的发送端是否为用户设备。
在一种可能的实现方式中,接入位置获取单元,具体用于基于镜像报文中的发送端的标识,判断数据报文的发送端是否为用户设备。
在一种可能的实现方式中,接收端口的端口类型为用户侧端口类型。
在一种可能的实现方式中,接入位置获取单元,具体用于响应于接收到的镜像报文,判定数据报文的发送端为用户设备。
在一种可能的实现方式中,装置还包括分析单元,用于:基于第一信息,确定网络中的至少一个网络设备,第一信息中包括网络中各网络设备的端口的端口标识和对应的端口类型,端口类型包括用户侧端口类型和网络设备侧端口类型,至少一个网络设备中的每个网络设备包括用户侧端口类型的端口;向至少一个网络设备发送指示信息,指示信息用于指示至少一个网络设备中的每个网络设备基于每个网络设备的用户侧接口类型的端口接收到的数据报文生成镜像报文。
在一种可能的实现方式中,接入位置获取单元,具体用于:基于第一信息和接收端口标识,确定接收端口的端口类型,第一信息包括网络中各网络设备的端口的端口标识和对应的端口类型,端口类型包括用户侧端口类型和网络设备侧端口类型;若接收端口的端口类型为用户侧端口类型,判定发送端为用户设备;若接收端口的端口类型为网络设备侧端口类型,判定发送端为非用户设备。
在一种可能的实现方式中,装置还包括分析单元,具体用于:获取第二信息,第二信息包括网络中多个网络设备的标识;获取多个网络设备中的每个网络设备的邻居信息,每个邻居信息包括源网络设备的标识、源网络设备端口标识和邻居设备的标识,源网络设备为发送邻居信息的设备,邻居设备为与源网络设备物理连接的设备,源网络设备端口标识用于指示源网络设备连接邻居设备的端口;基于第二信息和邻居信息,确定每个网络设备的端口的端口类型,端口类型为网络设备侧端口类型的端口连接的邻居设备的标识包含于第二信息中,端口类型为用户侧端口类型的端口连接的邻居设备的标识未包含于第二信息中。
在一种可能的实现方式中,接收单元,具体用于:接收多个镜像报文;多个镜像报文来自一个或多个网络设备;发送端的标识包括发送端的IP地址和发送端的MAC地址,分析单元,具体用于:若多个镜像报文中的N个镜像报文携带的发送端的IP地址相同,并且,N个镜像报文携带的发送端的MAC地址未包含于第二信息中,以及N个镜像报文携带的网络设备的标识指示的是同一个网络设备,判定发送端为用户设备,第二信息包括网络中多个网络设备的标识。
在一种可能的实现方式中,接入位置获取单元,具体用于:若多个镜像报文中的M个镜像报文携带的发送端的IP地址相同,并且,M个镜像报文携带的发送端的MAC地址未包含于第二信息中,以及,M个镜像报文携带的网络设备的标识指示的是两个或两个以上网络设备,基于镜像报文中的接收端口标识,判断数据报文的发送端是否为用户设备。
在一种可能的实现方式中,接入位置获取单元具体用于:基于镜像报文中的接收端口标识和发送端的标识,判断数据报文的发送端是否为用户设备;若基于接收端口标识的判断结果指示发送端为用户设备,而基于发送端的标识的判断结果指示发送端为非用户设备,判定发送端为非用户设备。
在一种可能的实现方式中,装置还包括:接入位置存储单元,用于基于发送端的标识,查询用户设备接入信息,用户设备接入信息中包括至少一个用户设备的接入位置信息;接入位置存储单元,还用于若用户设备接入信息中已包含发送端的标识对应的用户设备的接入位置信息,且已保存的接入位置信息与当前获取到的接入位置信息不一致,更新用户设备接入信息中发送端的标识对应的用户设备的接入位置信息。
在一种可能的实现方式中,数据报文携带传输层控制信息或应用层控制信息。
在一种可能的实现方式中,数据报文为隧道报文,且发送端的标识承载于隧道报文的内层报文。
在一种可能的实现方式中,用户设备为服务器、终端设备或虚拟机。
在一种可能的实现方式中,镜像报文为封装远程端口镜像ERPAN报文。
第二方面以及第二方面的任意一种实现方式分别与第一方面以及第一方面的任意一种实现方式相对应。第二方面以及第二方面的任意一种实现方式所对应的技术效果可参见上述第一方面以及第一方面的任意一种实现方式所对应的技术效果,此处不再赘述。
第三方面,本申请提供了一种计算机可读介质,用于存储计算机程序,该计算机程序包括用于执行第一方面或第一方面的任意可能的实现方式中的方法的指令。
第四方面,本申请提供了一种计算机程序,该计算机程序包括用于执行第一方面或第一方面的任意可能的实现方式中的方法的指令。
第五方面,本申请提供了一种芯片,该芯片包括处理电路、收发管脚。其中,该收发管脚、和该处理电路通过内部连接通路互相通信,该处理电路执行第一方面或第一方面的任一种可能的实现方式中的方法,以控制接收管脚接收信号,以控制发送管脚发送信号。
附图说明
图1为示例性示出的通信系统的结构示意图;
图2为示例性示出的虚拟环境报文传输示意图;
图3为示例性示出的设备接入位置的获取方法的流程示意图;
图4为示例性示出的通信系统的结构示意图;
图5a为示例性示出的数据报文的结构示意图;
图5b为示例性示出的镜像报文的结构示意图;
图6a为示例性示出的数据报文的结构示意图;
图6b为示例性示出的镜像报文的结构示意图;
图7为示例性示出的应用场景示意图;
图8为示例性示出的设备接入位置的获取方法流程示意图;
图9a为示例性示出的报文处理示意图;
图9b为示例性示出的报文处理示意图;
图9c为示例性示出的报文处理示意图;
图10为示例性示出的报文处理示意图;
图11为示例性示出的设备接入位置的获取方法流程示意图;
图12为示例性示出的镜像报文传输流程示意图;
图13为示例性示出的报文处理示意图;
图14为示例性示出的镜像报文的结构示意图;
图15为示例性示出的应用场景示意图;
图16为示例性示出的应用场景示意图;
图17为示例性示出的装置的结构示意图;
图18为示例性示出的装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
首先,在说明本申请实施例的技术方案之间,结合图1所示的通信系统(也可以称为通信网络等,本申请不做限定)的结构示意图,对本申请实施例的通信系统进行示例性的说明。请参照图1,通信系统包括但不限于:Spine1(脊)、Spine2、Leaf1(叶子)、Leaf2、Leaf3以及多个用户设备。
其中,Spine(包括Spine1和Spine2)可以为交换机、路由器等网络设备。Leaf(包括Leaf1、Leaf2和Leaf3)可以为交换机、路由器等网络设备。
在本申请实施例中,各网络设备(包括Spine和Leaf)可提供一个或多个接口(也可以称为端口或收发接口等,本申请不做限定)。网络设备的接口可用于连接(指物理连接,即通过物理链路连接,本申请实施例中所述的连接关系如无特殊说明,均是指物理的直接连接,下文中不再重复说明)其它设备。
示例性的,系统中互相连接(指直接连接)的设备可以称为邻居设备。例如,在图1所示的通信系统中,各设备的连接关系包括但不限于:Spine1连接Leaf1、Leaf2和Leaf3。Spine2连接Leaf1、Leaf2和Lea3。Leaf1连接服务器11~服务器1n,Leaf2连接服务器21~服务器2n,Leaf3连接服务器31~服务器3n。相应的,Leaf1的邻居设备包括但不限于:服务器11~服务器1n以及Spine1。在该场景中,Spine1的邻居设备包括但不限于:Leaf1、Leaf2和Leaf3。Leaf1的邻居设备包括但不限于:Spine1、Spin2以及服务器11~服务器1n。其他设备的邻居设备可参照上文描述,此处不再逐一举例说明。
在图1中,虽然服务器11与Spine1之间存在通信连接(即,服务器11与Spine1之间存在通信链路可以用于数据交互),并可通过该通信连接进行数据交互。但由于服务器11与Spine1之间非物理直连,所以两个设备之间非邻居设备。
在本申请实施例中,图1所示的通信系统可以位于数据中心。在其他实施例中,图1所示的通信系统还可以位于园区、商超、大型企业、运营商等应用场景中,本申请不做限定。
需要说明的是,本申请实施例中以图1中的叶脊网络架构(也可以表示为Spine-Leaf)为例进行说明。在其他实施例中,本申请实施例中的方案还可以应用于传统网络架构等任意网络架构中,本申请不做限定。
进一步需要说明的是,图1中所示的系统中的设备数量仅为示意性举例,在实际应用中可以包括更少或更多的设备,本申请不做限定。
进一步需要说明的是,图1中所示的各设备之间的连接关系同样为示意性举例,在实际应用中,可根据场景需求设置连接关系,本申请不做限定。
在本申请实施例中,通信系统中的设备类型可以包括但不限于:网络设备(也可以称为网络设备类型)和用户设备(也可以称为用户设备类型)。可选地,网络设备可以理解为是网络侧所有设备的统称,网络设备可用于提供数据转发等网络功能。例如图1中的Spine1、Spine2、Leaf1、Leaf2和Leaf3等设备即为网络设备。用户设备可以理解为是用户侧所有设备的统称,用户设备可为用户提供应用服务等功能,例如图1中的服务器11~服务器1n、服务器21~服务器2n等。
本申请实施例中以用户设备为服务器为例进行说明,在其他实施例中,用户设备还可以是终端设备(例如电脑、平板、手机、可穿戴设备、智能家居设备、车载设备等)、虚拟终端(例如虚拟机)等可通过有线连接接入系统的设备,本申请不做限定。
在本申请实施例中,用于连接用户设备的网络设备也可以称为边界设备,或者是称为用户设备的接入点。示例性的,用户设备通过接入点接入网络,以与网络中的其它设备进行数据交互。本申请实施例中,用户设备的接入点可以理解为是系统中已知的网络设备中,与用户设备距离(可以理解为是物理连接路径的距离、也可以理解为是通信距离或传输路径距离等)最近的网络设备。例如,仍参照图1,Leaf1即为服务器11的接入点。相应的,服务器11通过接入Leaf1,以接入通信系统,从而与通信系统中的其它设备进行数据交互。
其中,上文所述的“已知的网络设备”也可以称为观测范围内的网络设备,即网络中预先配置的网络设备,也可以理解为管理人员已知上述设备均为网络设备,还可以理解为是可以管理的网络设备,下文中不再重复说明。与之对应的,本申请实施例中还存在一些“未知的网络设备”,该类网络设备可以理解为非系统配置的网络设备,也可以理解为是不可管理的网络设备。具体场景将在下文中详细说明。
示例性的,用户设备中可部署操作系统,在操作系统上可部署一个或多个应用或模块。用户设备中的应用可响应于用户操作(也可以是本地存储的指令),生成数据报文(也可以称为数据包)。其中,应用数据承载于数据报文中。用户设备(在本申请实施例中也可以称为初始发送端)将数据报文发送到作为其接入点的网络设备(以下简称接入点)。接入点可对数据报文进行转发,以将数据报文传输到目标设备(在本申请实施例中也可以称为末尾接收端)。其中,数据报文的传输路径上还可以包括其它一个或多个网络设备。
在已有技术中,以园区场景为例,通信系统中通常会应用终端接入网认证机制,接入点识别用户设备的身份信息,并将身份信息发送给认证服务器进行身份认证。在身份认证成功的情况下,用户设备才能接入网络。在该示例中,用户设备的接入信息均可从各接入点获取到。但是,在相对封闭的网络,例如数据中心网络中,通常不会部署认证系统。因此,在未部署认证系统的应用场景中,则无法通过上述方式获取到用户设备的接入位置。为准确获取到用户设备的接入位置,已有技术还提出一种接入位置的获取方法。在网际协议版本4(Internet Protocol version 4,IPv4)中,当任一用户设备需要与其它用户设备进行通信时,必须先通过地址解析协议(Address Resolution Protocol,ARP)获取到目的设备的链路层地址。在网际协议版本6(Internet Protocol version 6,Ipv6)中,则需要通过邻居发现协议(Neighbor Discovery Protocol,NDP)获取链路层地址。相应的,在该示例中,系统可在边缘交换机上定时(或周期性地)地采集ARP表项或ND(Neighbor Discovery)表项,以获取到用户设备的接入位置。以ARP表项为例,示例性的,ARP表项中包括但不限于:本设备接口的互联网协议(Internet Protocol,IP)地址、接入的用户设备的IP地址、本设备接口的介质访问地址(Medium Access Control,MAC)地址、以及接入的用户设备的MAC地址等。
然而,上述方式的应用场景受限。举例说明,如图2所示,在该场景中,用户设备(例如服务器)中部署有虚拟机(Virtual Machine,VM),VM生成数据报文,并将数据报文发送给开放虚拟交换机(Open virtural Switch,OVS)。OVS将VM发送的数据报文进行封装,生成隧道报文。其中,隧道报文可遵循虚拟扩展局域网(Virtual eXtensible Local AreaNetwork,VXLAN)协议(也可以是其他隧道协议,本申请不做限定)。OVS将隧道报文发送给Leaf。对于Leaf,其只能获取到与服务器之间的隧道的IP地址和MAC地址,而由于其未直接与VM进行协议交互,则无法获取到与VM相关的ARP表项或ND表项,进而无法准确获取到VM的接入位置。
此外,基于ARP表项或ND表项获取用户设备的接入位置的方式,在获取接入位置时,其获取到的ARP表项或ND表项的数量与系统中所包括的用户设备的数量是相等的。若采用周期性获取ARP表项或ND表项以确定接入位置的方式,其采集周期时长如果设置的较小,则会增加各设备的通信负担和处理负担(例如处理器负担)。若将周期时长设置的较大,则可能对系统中的用户设备迁移等变化场景响应不及时,导致获取到错误的接入位置。
对于存在VM的应用场景,已有技术还提供一种接入位置的获取方式,可通过云平台获取VM与物理机(例如图2中的服务器)的附着关系,以在Leaf上获取到服务器的接入位置的情况下,可基于以获取到的附着关系,进一步获取到VM在通信系统中的接入位置。然而,该方法依赖于云平台调用获取附着关系的接口以获取附着关系,然而VM有多种实现方式,例如,有的VM基于openstack架构,有的VM基于cloudstack架构,这导致云平台需要针对每种VM实现方式进行定制化开发以支持不同的用于获取附着关系的接口,其实施成本较高。
鉴于此,本申请实施例提供一种设备接入位置的获取方法。在该方法中,系统通过镜像报文,对用户设备进行定位,以获取到用户设备的接入位置。从而实现一种实现简单,且实时性强的接入位置获取方法。
在本申请实施例中,通信系统中部署有分析单元、接入位置获取单元以及接入位置存储单元。其中,分析单元、接入位置获取单元以及接入位置存储单元可以部署在同一个设备(例如服务器)上,也可以部署在不同的设备上,本申请不做限定。其中,分析单元、接入位置获取单元以及接入位置存储单元部署在不同的设备上,则部署有上述单元的服务器之间可相同通信(可以是直连的,也可以是非直连的,本申请不做限定),以实现各单元之间的接入位置相关信息的交互。可选地,分析单元、接入位置获取单元以及接入位置存储单元所属的设备(例如服务器)也可以部署在通信系统(例如图1所示的通信系统)之外,在该场景中,部署有分析单元、接入位置获取单元以及接入位置存储单元的一个或多个设备之间的相互通信,且与通信系统内的各设备可相互通信。
本申请实施例中以分析单元、接入位置获取单元以及接入位置存储单元部署在同一个服务器上(例如服务器22)为例进行说明。
在一种可能的实现方式中,部署分析单元、接入位置获取单元以及接入位置存储单元的一个或多个服务器连接Leaf,以接入通信系统,从而与其它设备进行数据交互。可选地,部署分析单元、接入位置获取单元以及接入位置存储单元的一个或多个服务器连接的Leaf可以是系统中的任意Leaf。可选地,部署分析单元、接入位置获取单元以及接入位置存储单元的一个或多个服务器连接的Leaf也可以为该类服务器的专属Leaf,可以理解为,该专属Leaf用于转发分析分析单元、接入位置获取单元以及接入位置存储单元的报文,而无需传输其它应用报文,从而提升接入位置获取过程中的各信息(或参数)的交互速率,以进一步提升接入位置获取与存储的效率。
示例性的,分析单元可用于获取通信系统中的设备信息,也可以理解为是用于获取分析用户设备的接入位置所需的相关参数。例如包括但不限于:网络设备的标识,网络设备的接口标识等。可选地,网络设备的标识包括但不限于以下之一:网络设备的ID、网络设备的MAC地址、网络设备的IP地址等。
一个示例中,分析单元基于获取到的设备信息进行分析处理,以确定系统中的设备的设备类型,其中,设备类型包括网络设备类型以及非网络设备类型(也可以称为用户设备类型)。分析单元将分析结果传输至接入位置获取单元,相应的,接入位置获取单元可进一步基于分析单元的分析结果,对接收到的镜像报文进行解析,以对分析结果中指示的非网络设备中的用户设备进行定位,并进一步获取用户设备的接入位置,以及,将用户设备的接入位置保存至接入位置存储单元。可以理解为,在该示例中,分析单元可基于设备信息进行初步筛选,以排除网络设备,即筛选出非网络设备(具体是指非观测范围内的网络设备)的设备。在该示例中,非网络设备可能包括用户设备,也可能包括一些未知设备,即初步筛选暂不确定设备的准确类型。接入位置获取单元则可基于分析单元的分析结果进行进一步的精细筛选,以得到用户设备的精准定位结果。
另一个示例中,分析单元将获取到的设备信息输出至接入位置获取单元。接入位置获取单元可基于接收到的镜像报文以及获取到的设备信息,获取用户设备的接入位置。以及,将用户设备的接入位置保存至接入位置存储单元。
示例性的,接入位置保存单元用于保存接入位置获取单元输入的各用户设备的接入位置。可选地,接入位置保存单元以列表形式保存各用户设备的接入位置。例如,接入位置保存单元接收到的接入位置信息包括但不限于:用户设备的标识和用户设备的接入位置。其中,用户设备的标识可选地为用户设备的IP地址,用户设备的接入位置包括但不限于以下至少之一:该用户设备接入的网络设备的标识,和该用户设备接入的网络设备的端口的端口标识等。
在本申请实施例中,用户设备与接入点之间可以是物理直连的。在一些示例中,用户设备与接入点之间也可能存在其它设备,例如,VM与其接入的网络设备(例如Leaf)之间为非直连的,VM所属的服务器与接入点之间是直连的。再例如,用户设备也可能通过一些私有路由器(在本申请实施例中可称为未知网络设备或非观测范围内的网络设备)等设备连接系统中的已知网络设备。也就是说,虽然未知网络设备的设备类型同样为网络设备,但其在本申请实施例的系统中非观测范围内的网络设备,本申请实施例中的接入点均为观测范围内的网络设备,即,接入点可以进一步理解为是距离用户设备最近的观测范围内的网络设备。
下面结合附图对本申请实施例中的设备接入位置的获取方法进行详细说明。图3为本申请实施例提供的一种设备接入位置的获取方法的流程示意图。请参照图3,具体步骤包括但不限于步骤S301至S303。
S301,接收网络设备发送的镜像报文。其中,镜像报文为网络设备基于接收到的数据报文生成的。
在本申请实施例中,系统中的至少一个网络设备可进行镜像报文配置,以使得至少一个网络设备在接收到数据报文后,基于数据报文生成镜像报文,并将生成的镜像报文发送给分析单元所属设备。上述用于发送镜像报文的至少一个网络设备在本申请实施例中可以称为镜像报文发送端。
在一种可能的实现方式中,作为镜像报文发送端的至少一个网络设备可以是系统中已知的所有具有报文镜像功能的网络设备。在本申请实施例中,已知的网络设备也可以称为观测范围内的网络设备。并且,具有报文镜像功能的网络设备是指可以基于镜像报文协议对数据报文进行封装的网络设备。举例说明,以图1为例,图1中的Spine1、Spine2、Leaf1、Leaf2和Leaf3均为预先配置的网络设备。在该场景中,管理人员可通过管理设备(例如电脑、平板等终端设备)连接各网络设备提供的管理接口,以对各网络设备实施报文镜像功能配置,使得上述网络设备作为镜像报文发送端。再举例说明,如上文所述,至少一个网络设备是系统中已知的所有网络设备,而系统中还可能包括一些私有的,也可以理解为是非观测范围内的网络设备。以图4所示的系统的结构示意图为例,在图4中,Leaf4连接Spine1、Spine2和防火墙(防火墙另一侧可连接其他网络设备),路由器X连接Leaf3,且路由器X连接多个服务器(例如服务器41~服务器4n)(其它设备的描述可参照图1,此处不再赘述)。在该示例中,防火墙和路由器X均为非观测范围内的网络设备,可以理解为,运维人员无法对路由器X和防火墙进行管理和配置。可选地,路由器X也可以称为是用户侧的网络设备。由于路由器X是未知网络设备(即非观测范围内的网络设备),管理人员未对其进行报文镜像功能配置,相应的,路由器X在接收到数据报文后,不会生成镜像报文。
需要说明的是,本申请实施例中所述的镜像报文是指具有本申请实施例中所描述的指定特性的镜像报文。在其他实施例中,路由器X可能也执行了镜像报文配置,但其发送的镜像报文是满足其它场景需求的镜像报文,非本申请实施例中所述的镜像报文(也可以理解为是可用于对用户设备进行定位的镜像报文)。
进一步需要说明的是,如上文所述,由于网络中可能存在一些未知的网络设备,本申请实施例中所述的“非网络设备”可以理解为是非观测范围内的网络设备。例如,设备可能是用户设备,也可能是未知网络设备。
在另一种可能的实现方式中,作为镜像报文发送端的至少一个网络设备可以是系统中的指定网络设备。可选地,指定网络设备可以是具有用户侧端口类型的端口的网络设备。在本申请实施例中,网络设备的端口可分为用户侧端口类型和网络侧端口类型。其中,网络侧端口类型的端口连接的邻居设备为上文所述的观测范围内的网络设备。用户侧端口类型的端口连接的邻居设备则为非观测范围内的设备。其中,非观测范围内的设备可能是用户设备,还可能是非观测范围内的网络设备,例如图4中的防火墙和路由器X,即为非观测范围内的网络设备,也可以简称为未知网络设备。也就是说,在该示例中,具有用户侧端口类型的端口的网络设备被配置为镜像报文发送端。
具体的,在本申请实施例中,分析单元可获取到系统的观测范围内的各网络设备的标识。网络设备的标识包括但不限于以下至少之一:网络设备的ID,网络设备的MAC地址,网络设备的IP地址,网络设备的管理地址等,本申请不做限定。分析单元所获取到的各网络设备的标识可以是管理人员预先配置的。例如,以图1为例,分析单元预先保存有网络设备标识列表(在本申请实施例中以列表方式为例,在其他实施例中也可以是其它形式,本申请不做限定),列表中包括系统中所有已知的网络设备的标识,例如网络设备标识列表中包括但不限于:Spine1的标识、Spine2的标识、Leaf1的标识、Leaf2的标识和Leaf3的标识。即,Spine1、Spine2、Leaf1、Leaf2和Leaf3均已确认其设备类型为网络设备,即为观测范围内的网络设备。
示例性的,分析单元可从各观测范围内的网络设备端采集邻居信息。具体的,各网络设备基于链路层发现协议(Link Layer Discovery Protocol,LLDP),获取各自的LLDP信息。LLDP信息中包括但不限于:本端端口标识(即本网络设备用于连接邻居设备的端口的端口标识)、对端设备标识(即本网络设备连接的邻居设备的标识)和对端设备端口标识(即邻居设备连接本网络设备的接口标识)等。
可选地,各网络设备可周期性地向邻居设备发送LLDP报文。LLDP报文中包括但不限于:本设备的标识,端口标识(即发送LLDP报文的端口的标识)以及报文类型等。各网络设备可基于接收到的LLDP报文,更新本端保存的LLDP信息。
可选地,在网络设备的本地配置(例如端口连接的设备断开,或者端口接入新的设备等)发生变化的情况下,同样会触发发送LLDP报文,以将本地配置的变化情况的通知给邻居设备。
举例说明,以图4中的Leaf1为例,Leaf1可接收到各邻居设备(包括但不限于图4中的服务器11~服务器1n,Spine1和Spine2)发送的LLDP报文。其中,各邻居设备发送的LLDP报文中包括但不限于:源地址、目的地址、报文类型等信息。其中,源地址包括但不限于源设备(即LLDP报文发送端)的MAC地址和源端口(即发送LLDP报文的端口)的MAC地址。
假设Leaf1从端口13接收到Spine1发送的LLDP报文。该LLDP报文中包括但不限于:源MAC地址(即Spine1的MAC地址和Spine1与Leaf1连接的端口(例如为端口31)的MAC地址)、目的地址(即组播地址)等。Leaf1对LLDP报文进行解析,获取到邻居设备标识(即Spine1的MAC地址)和邻居设备接口标识(例如为Spine1的端口31的MAC地址)等信息。需要说明的是,对于Leaf1而言,其通过LLDP报文仅获取到邻居设备的相关标识(包括设备标识和接口标识等),其并不能确认这些标识在通信系统中所对应的具体对象。
示例性的,Leaf1保存对应于端口13的LLDP信息,该LLDP信息包括但不限于:Spine1的MAC地址(即邻居设备的标识)、Leaf1的端口13的MAC地址(即网络设备的端口标识)以及Spine1的端口31的MAC地址(即邻居设备的端口标识)等,该LLDP信息用于指示Leaf1的端口13连接的邻居设备为Spine1的端口31。本申请实施例中以端口的标识为MAC地址为例进行说明,在其他实施例中,端口的标识还可以是端口标识(Identifier,ID)等,本申请不做限定,下文中不再重复说明。例如,在一些示例中,网络设备的端口可能不具备MAC地址,而对应有端口ID。相应的,该网络设备发送的LLDP报文中携带的端口标识即为端口ID。
示例性的,分析单元在初始化阶段(例如设备上电之后)向观测范围内的各网络设备发送邻居信息请求,用于请求邻居信息。可选地,分析单元基于简单网络管理协议(Simple Network Management Protocol,SNMP)或者电信网络协议(TelecommunicationNetwork Protocol,Telnet)与系统中的其他设备进行通信,以获取邻居信息。各观测范围内的网络设备响应于接收到的邻居信息请求,向分析单元发送响应消息以反馈邻居信息。响应消息中包括但不限于:本网络设备(即邻居信息响应的发送端)的标识和本网络设备最新获取到的LLDP信息。其中,LLDP信息包括但不限于:本网络设备的端口标识、邻居设备的标识、邻居设备的端口标识等。
分析单元响应于接收到的各网络设备发送的邻居信息响应消息,更新本地保存的各网络设备的邻居信息。邻居信息包括但不限于:网络设备的标识、网络设备的端口标识、邻居设备的标识以及邻居设备的端口标识等。
可选地,各网络设备所保存的LLDP信息中,可以包括所有端口(包括空端口,即未连接邻居设备)所对应的LLDP信息。可选地,各网络设备所保存的LLDP信息中也可以只包括连接有邻居设备的端口所对应的LLDP信息,即不包括空端口的MAC地址等LLDP信息。相应的,分析单元所获取到的邻居信息,可以包括网络设备的所有端口的邻居信息,也可以是仅包括连接有邻居设备的端口对应的邻居信息,本申请不做限定。
可选地,分析单元可周期性地(周期时长可根据实际需求设置,本申请不做限定)向各网络设备发送邻居请求,以获取到各网络设备的邻居信息。可选地,如上文所述,各网络设备可在本地配置发生变化的情况下,触发LLDP报文的发送。相应的,在网络设备检测到本地LLDP信息变化的情况下,可向分析单元发送邻居信息更新指示。该指示中可包括本网络设备的标识、本网络设备的端口标识、邻居设备的标识、邻居设备的端口标识等。分析单元可基于接收到的邻居信息更新指示,更新对应的网络设备的邻居信息。
可选地,设备(包括网络设备和用户设备)在检测到LLDP信息变化的情况下,发送的邻居信息更新指示中可以只包括变化的端口和/或邻居设备所对应的邻居信息。举例说明,若Leaf1检测到端口13的邻居设备断开,Leaf1更新本地LLDP信息,其中,LLDP信息中的端口13为空端口,即未连接任何邻居设备。Leaf1向分析单元发送邻居信息更新指示,更新指示中包括Leaf1的标识(即Leaf1的MAC地址)以及端口13的标识(例如端口13的MAC地址),用于指示Leaf1的端口13为空端口,即未连接任何邻居设备。分析单元可基于Leaf1的MAC地址查找到Leaf1对应的邻居信息,并基于端口13的MAC地址在Leaf1对应的邻居信息中进行匹配。分析单元1更新匹配成功的端口13的MAC地址所对应的邻居信息。例如,将原端口13的MAC地址所对应的邻居设备的标识(例如为Spine1的MAC地址)删除,以表示端口13当前为空端口,未连接任何邻居设备。
可选地,邻居信息更新指示中也可以包括所有端口或连接有邻居设备的端口当前的邻居信息。
在一种可能的实现方式中,系统中的用户设备可以具备发送LLDP报文以及维护LLDP信息的功能,也可以不具备发送LLDP报文和维护LLDP信息的功能,本申请不做限定。
在本申请实施例中,如上文所述,分析单元维护有网络设备标识列表。网络设备标识列表(在本申请实施例中以列表方式为例,在其他实施例中也可以是其它形式,本申请不做限定)中保存有观测范围内的所有网络设备的标识,网络设备的标识包括但不限于:网络设备的IP地址、网络设备的MAC地址、网络设备的管理地址等。分析单元基于获取到的各网络设备的邻居信息以及网络设备标识列表,确定各网络设备的端口的端口类型。其中,端口类型包括用户侧端口类型和网络设备侧端口类型。
一个示例中,若网络设备的端口所连接的邻居设备的标识在网络设备标识列表中的,即,该端口所连接的邻居设备的类型为网络设备(也可以称为网络设备类型),也可以理解为该端口所连接的邻居设备为观测范围内的网络设备,相应的,该端口的端口类型为网络设备侧端口类型。
另一个示例中,若网络设备的端口所连接的邻居设备的标识未包含于网络设备标识列表中的,即,该端口所连接的邻居设备的类型为非网络设备,例如可以是用户设备,也可以是未知网络设备(即非观测范围内的网络设备)。相应的,该端口的端口类型为用户侧端口类型。可选地,未连接任何设备的端口(可以简称为空端口)的类型也可以划分为用户侧端口类型。也就是说,如果邻居信息中还包括未连接邻居设备的端口的标识,则分析单元将其确定为用户侧端口。可选地,如上文所述,一些用户设备不具备发送LLDP报文的功能,相应的,网络设备将不会接收到该类用户设备发送的LLDP报文,相应的,网络设备所维护的LLDP信息中不包括该端口对应的相关信息,与上文中的空端口类似,该类端口同样划分为用户侧端口类型。也就是说,在本申请实施例中,端口所连接的邻居设备的标识包含于网络设备标识列表中,其对应的端口类型为网络设备,其它情况(包括空端口,邻居设备不在观测范围内,或未能获取到LLDP报文)下的端口类型均为用户侧端口。
示例性的,分析单元可基于各网络设备的端口类型,进一步确定包含用户侧端口类型的端口的网络设备。分析单元可指定该类网络设备作为镜像报文发送端。相应的,该类网络设备可以在接收到数据报文的情况下,生成镜像报文,并将镜像报文传输至接入位置获取单元所属设备,从而减少系统中的镜像报文交互数量,以降低系统内的通信开销。另一个示例中,该类网络设备也可以在通过用户侧端口类型的端口接收到数据报文的情况下,生成镜像报文,并将镜像报文传输至接入位置获取单元所属设备,从而进一步减少系统中的镜像报文的交互数量,以降低系统内的通信开销。
在本申请实施例中,作为镜像报文发送端的至少一个网络设备接收到数据报文后,将数据报文进行复制,并将复制后的数据报文封装为镜像报文,将镜像报文发送给接入位置获取单元。该网络设备对数据报文进行转发,以将数据报文发送到传输路径上的下一个设备。一个示例中,在二层转发场景中,传输路径上的网络设备对数据报文的转发仅做透传(即不更改数据报文)。另一个示例中,在三层转发场景中,传输路径上的部分网络设备对数据报文进行解封装以及重新封装等处理后,再进行转发(例如,更改数据报文中的MAC地址)。
在一种可能的实现方式中,镜像报文所携带的数据报文的内容可以仅包括原始数据报文的部分内容,例如可以是原始数据报文的前64个字节,或前128个字节等,可根据实际需求设置,本申请不做限定。也就是说,网络设备接收到数据报文之后,可对数据报文的部分内容进行复制,并将复制后的部分数据报文封装为镜像报文。
在一种可能的实现方式中,作为镜像报文发送端的至少一个网络设备的报文镜像功能配置中可以包括数据报文类型配置,该数据报文类型配置用于指示网络设备在接收到指定类型的数据报文的情况下,生成镜像报文,从而可以有效降低镜像报文的传输频率,减少通信开销。可选地,指定类型的数据报文可以是携带传输层控制信息或应用层控制信息的数据报文。举例说明,传输层控制信息可以包括但不限于:传输控制协议(TransmissionControl Protocol,TCP)中的紧急(urgent,URG)、确认(acknowledgement,ACK)、传送(push,PSH)、同步(synchronous,SYN)、结束(finish,FIN)、重置(reset,RST)等标识位。应用层控制信息包括但不限于:快速UDP互联网连接(Quick UDP Internet Connections,QUIC)中的Packet报文等,本申请不做限定。上文所述的指定类型的数据报文仅为示意性举例,可根据实际需求设置,本申请不做限定。
图5a为示例性示出的数据报文的结构示意图。请参照图5a,数据报文包括但不限于:以太网头部(Ethernet Header)字段、IP头部(IP Header)字段、数据字段等字段。
其中,Ethernet Header字段中包括但不限于:目的地址字段和源地址字段。目的地址字段用于承载目的设备(即数据报文的接收端)的MAC地址(简称为目的MAC地址),源地址字段用于承载源设备(即数据报文的发送端)的MAC地址(简称为源MAC地址)。
IP Header字段包括但不限于:目的地址字段和源地址字段。其中,目的地址字段用于承载目的设备的IP地址(简称为目的IP地址),源地址字段用于承载源设备的IP地址(简称为源IP地址)。
数据字段,用于承载数据,例如为应用数据或其它控制信息。
在本申请实施例中,对于各网络设备而言,数据报文的发送端可选地为数据报文的传输路径上的上一个设备。举例说明,设备A(例如为用户设备)生成数据报文,并将数据报文发送给设备B,设备B将数据报文转发给设备C。对于设备B而言,设备A即为数据报文的发送端。对于设备C而言,设备B即为数据报文的发送端。如无特殊说明,下文实施例中所述的数据报文的发送端均是指传输路径上的各发送端(包括初始发送端,即数据报文中的源IP地址指示的设备)。相应的,数据报文的接收端可选地为数据报文的传输路径上的下一个设备。举例说明,设备A(例如为用户设备)生成数据报文,并将数据报文发送给设备B,设备B将数据报文转发给设备C。对于设备A而言,设备B即为数据报文的接收端。对于设备B而言,设备C即为数据报文的接收端。如图特殊说明,下文实施例中所述的数据报文的接收端均是指传输路径上的各接收端(包括末尾接收端,即数据报文中的目的IP地址指示的设备)。
在一种可能的实现方式中,在二层转发场景中,Ethernet Header字段中的目的MAC地址始终为数据报文的末尾接收端的MAC地址,源MAC地址始终为生成数据报文的初始发送端的MAC地址。同样的,IP Header字段中的目的IP始终为末尾接收端的IP地址,源IP地址始终为初始发送端的IP地址。举例说明,设备A(例如为用户设备)生成数据报文通过设备B发送给设备C。在数据报文转发的过程中,各设备发送或者接收到的数据报文的EthernetHeader字段与IP Header字段中的地址(包括IP地址和MAC地址)始终不变,目的地址均为设备C的MAC地址和IP地址,源地址均为设备A的MAC地址和IP地址。
在另一种可能的实现方式中,在三层转发场景中,传输路径上的网络设备对数据报文进行解封装以及重新封装,例如,重新进行二层封装,相应的,二层帧头(即EthernetHeader字段)中的源MAC地址和目的MAC地址对应更新。也就是说,重新封装后的数据报文的Ethernet Header字段中的源MAC地址指示当前对数据报文进行转发的网络设备,目的MAC地址指示传输路径上的下一个接收该数据报文的三层设备。而数据报文中的IP Header字段中的目的IP地址始终为末尾接收端的IP地址,源IP地址始终为初始发送端的IP地址。
也就是说,在本申请实施例中,数据报文的发送端和接收端分为两个层面,一个层面为实际传输路径层面,即,在实际传输路径上,本申请实施例中所述的数据报文的发送端即为数据报文传输路径上的上一个设备,数据报文的接收端即为数据报文传输路径上的下一个设备。另一个层面为基于数据报文中的MAC地址指示的层面。可选地,在二层转发场景中,数据报文中的MAC地址(包括源MAC地址和目的MAC地址)指示的设备与IP地址所指示的设备是相同的,即其所指示的发送端即为初始发送端,接收端即为末尾接收端。而三层转发场景中,数据报文中的MAC地址指示的设备与IP地址指示的设备是不相同的,MAC地址所指示的设备是与实际传输路径上的发送端和接收端相同的。
在本申请实施例中,以镜像报文为三层远程镜像(Encapsulated RemoteSwitched Port Analyzer,ERSPAN)报文为例进行说明。在其他实施例中,镜像报文也可以是其它可实现本申请实施例中的镜像报文功能的其它协议报文,本申请不做限定。示例性的,ERSPAN报文的封装可选地为通用路由封装(General Routing Encapsulation,GRE),其原理为将源端口报文复制一份,并通过GRE封装发送到目的设备。图5b为示例性示出的镜像报文的结构示意图。请参照图5b,镜像报文包括但不限于:IP Header字段、GRE Header字段、ERSPAN Header字段以及数据字段。
其中,IP Header字段用于承载镜像报文的发送端的标识和接收端的标识。其中,发送端的标识可选地为发送镜像报文的网络设备的IP地址。接收端的标识可选地为接入位置获取单元所属设备的IP地址。
GRE Header字段,用于承载版本号、标志位等信息。
ERSPAN Header字段,包括但不限于:Header字段和SubHeader(子头部)字段。其中,Header字段的长度为12字节,包括但不限于:Session ID字段、VLAN字段等。SubHeader字段的长度可选地为8字节,包括但不限于:Platf ID(平台标识)字段和PlatformSpecific Info(平台特殊信息)字段等。在本申请实施例中,当Plaft ID字段中的数值为预设数值时,Platform Specific Info字段用于携带接收端口标识。其中,接收端口标识为发送镜像报文的网络设备接收到数据报文的端口的标识。举例说明,Leaf1通过端口11接收到服务器11发送的数据报文,则Leaf1所发送的镜像报文中的接收端口标识即为端口11的端口标识,例如为端口11的MAC地址。在其他实施例中,接收端口标识也可能是端口号等,本申请不做限定。在本申请实施例中,以Platform Specific Info字段中携带的接收端口标识为端口的MAC地址为例。在其他实施例中,由于Platform Specific Info字段的长度有限,接收端口标识可能是端口所对应的INDEX(索引)信息,在该示例中,接入位置获取单元和分析单元均可维护有INDEX信息与端口的MAC地址之间的对应关系,从而可通过INDEX信息查询到对应的端口的MAC地址。
数据字段,用于承载数据报文。也就是说,原数据报文封装于该字段中。
在本申请实施例中,封装后的镜像报文包括外层报文和内层报文。其中,外层报文即为遵循镜像报文的隧道协议封装上的包头,包括但不限于:IP Header字段、GRE Header字段以及ERSPAN Hearder字段等。内层报文包括数据字段,也就是说,内层报文即为原数据报文。
图6a为示例性示出的另一种数据报文的结构示意图。请参照图6a,该数据报文可以称为隧道报文。本申请实施例中,隧道报文可遵循VXLAN协议,在其他实施例中,隧道报文可遵循其它隧道协议,本申请不做限定。示例性的,隧道报文可包括隧道外层报文(也可以称为隧道报文包头)和隧道内层报文(也可以称为原始数据报文)。
示例性的,隧道内层报文为用户设备(例如VM)发送的承载应用数据(或其它控制信息)的原始数据报文,包括但不限于:Ethernet Header字段、IP Header字段、数据字段等字段。
其中,隧道内层报文的Ethernet Header字段中包括但不限于:目的地址字段和源地址字段。目的地址字段用于承载目的设备(即数据报文的接收端)的MAC地址(简称为目的MAC地址),源地址字段用于承载源设备(即数据报文的发送端)的MAC地址(简称为源MAC地址)。
隧道内层报文的IP Header字段包括但不限于:目的地址字段和源地址字段。其中,目的地址字段用于承载目的设备的IP地址(简称为目的IP地址),源地址字段用于承载源设备的IP地址(简称为源IP地址)。
数据字段,用于承载数据,例如为应用数据或其它控制信息。
仍参照图6a,示例性的,隧道外层报文是遵循VXLAN隧道协议封装的,其包括但不限于:Ethernet Header字段、IP Header字段和隧道头字段等。
其中,隧道外层报文的Ethernet Header字段包括:隧道的源MAC地址和隧道的目的MAC地址。具体地,在隧道报文转发过程中,网络设备对隧道报文进行重新封装,更新隧道外层报文的Ethernet Header字段。
隧道外层报文的IP Header字段包括但不限于:隧道的源IP地址和隧道的目的IP地址。
隧道头字段包括但不限于一些隧道信息,例如隧道标识等。
图6b为示例性示出的镜像报文的结构示意图。请参照图6b,镜像报文包括但不限于:IP Header字段、GRE Header字段、ERSPAN Header字段以及数据字段。其中,数据报文承载于镜像报文的数据字段中。镜像报文的其它字段描述可参照图5b,此处不再赘述。
在本申请实施例中,以镜像报文为ERSPAN TypeⅢ报文为例进行说明。在其他实施例中,镜像报文也可以是其它可实现本申请实施例中的镜像报文功能的其它协议报文,即,可实现对原始数据报文进行封装,并携带接口信息的报文类型。本申请不做限定。
示例性的,接入位置获取单元接收到至少一个网络设备发送的镜像报文。接入位置获取单元所属设备基于镜像报文中的IP Header字段中的目的地址字段,确定镜像报文的接收端为本设备。设备获取镜像报文,并将镜像报文传输给接入位置获取单元进行进一步处理。接入位置获取单元基于镜像报文,获取到报文中的IP Header字段、GRE Header字段以及ERSPAN Header字段所携带的信息。
一个示例中,若ERSPAN Header中的SubHeader字段中的Platf ID字段所携带的信息为预设数值(例如0x7,或0x0,可根据实际需求设置,本申请不做限定),接入位置获取单元可确定Platform Specific info字段中携带的是接口信息,即镜像报文发送端接收到数据报文的端口所对应的端口标识。接入位置获取单元获取接口信息,并执行S302。
另一个示例中,若ERSPAN Header中的SubHeader字段中的Platf ID字段所携带的信息为非预设数值(例如0x7,或0x0,可根据实际需求设置,本申请不做限定),则该镜像报文可能是其它场景所需的镜像报文,可作其它处理,本申请不做限定。
S302,基于镜像报文,判断数据报文的发送端是否为用户设备。
一个示例中,接入位置获取单元接收到一个或网络设备发送的镜像报文,并从镜像报文中获取到接口信息之后,接入位置单元可基于镜像报文中的接收端口标识(即接口信息),判断数据报文的发送端是否为用户设备。
另一个示例中,接入位置获取单元接收到至少一个网络设备发送的镜像报文,并从镜像报文中获取到接口信息之后,接入位置单元可基于镜像报文中的发送端的标识(即数据报文中的源MAC地址),判断数据报文的发送端是否为用户设备。
下面对上述两种判断方式进行详细说明。
1.基于接收端口标识,判断发送端是否为用户设备。
方式一:
接入位置获取单元基于预先获取到的端口标识与端口类型的对应关系,确定镜像报文中携带的接收端口标识所指示的接收端口的端口类型。示例性的,若接入位置获取单元确定接收端口的端口类型为用户侧端口类型,则可确定基于该接收端口接收到的数据报文所对应的发送端为用户设备(也可以理解为是用户设备类型)。
具体的,在该示例中,分析单元可获取到各网络设备的邻居信息。分析单元可基于邻居信息,确定各网络设备中的端口的端口类型。示例性的,端口类型包括:用户侧端口类型和网络设备侧端口类型。其中,端口连接的邻居设备的类型为网络设备(也可以称为网络设备类型),也可以理解为该端口所连接的邻居设备为观测范围内的网络设备,相应的,该端口的端口类型为网络设备侧端口类型。端口所连接的邻居设备为非观测范围内的网络设备,则该端口的端口类型为用户侧端口类型。可选地,未连接任何设备的端口(可以简称为空端口)的类型也可以划分为用户侧端口类型。分析单元确定端口类型的方式可参照S301中的相关描述,此处不再赘述。
分析单元可将分析结果,发送给接入位置获取单元。一个示例中,分析结果包括但不限于:用户侧端口类型的端口的标识和对应的网络设备的标识。其中,网络设备的标识可选地为网络设备的IP地址,端口标识可选地为端口的MAC地址(也可以是端口ID,本申请不做限定)。相应的,接入位置获取单元维护有网络设备端口与端口类型对应关系表(在本申请实施例中以列表方式为例,在其他实施例中也可以是其它形式,本申请不做限定),接入位置获取单元可将获取到的网络设备的标识以及对应的端口的端口标识对应写入到列表中,也就是说,在该示例中,列表中标识的各网络设备均是具有用户侧端口类型的端口的网络设备,且列表中的各端口的类型均为用户侧端口类型的端口。举例说明,表1为网络设备端口与端口类型对应关系表的一种形式之一:
表1
序号 | 网络设备标识 | 端口标识 |
1 | 网络设备1 | 端口1 |
2 | 网络设备1 | 端口2 |
3 | 网络设备2 | 端口3 |
4 | 网络设备2 | 端口4 |
5 | 网络设备3 | 端口9 |
6 | 网络设备3 | 端口10 |
7 | 网络设备3 | 端口11 |
…… | …… | …… |
参照表1,在该表中,网络设备标识均为各网络设备的IP地址,端口标识为端口对应的MAC地址。在该示例中,网络设备1、网络设备2和网络设备3均为具有用户侧端口类型的端口的网络设备。其中,网络设备1的用户侧端口类型的端口包括端口1和端口2,网络设备2的用户侧端口类型的端口包括端口3和端口4,网络设备3的用户侧端口类型的端口包括端口9~端口11。上述对应关系仅为示意性举例,本申请不做限定。
另一个示例中,分析结果包括但不限于:系统中观测范围内的所有网络设备的标识、各网络设备的端口的端口标识以及每个端口对应的端口类型。接入位置获取单元可将接收到的网络设备的标识以及对应的端口标识和端口类型对应写入到网络设备端口与端口类型对应关系表中。举例说明,表2为网络设备端口与端口类型对应关系表的一种形式之一:
表2
序号 | 网络设备标识 | 端口标识 | 端口类型 |
1 | 网络设备1 | 端口1 | 用户侧端口类型 |
2 | 网络设备1 | 端口2 | 用户侧端口类型 |
3 | 网络设备1 | 端口3 | 网络设备侧端口类型 |
4 | 网络设备1 | 端口4 | 网络设备侧端口类型 |
5 | 网络设备2 | 端口1 | 用户侧端口类型 |
6 | 网络设备2 | 端口2 | 用户侧端口类型 |
7 | 网络设备2 | 端口3 | 网络设备侧端口类型 |
…… | …… | …… | …… |
参照表2,在该表中,网络设备标识均为各网络设备的IP地址,端口标识为端口对应的MAC地址。在该示例中,网络设备1的端口1和端口2均为用户侧端口类型的端口。网络设备1的端口3和端口4均为网络设备侧端口类型的端口。网络设备2的端口1和端口2均为用户侧端口类型的端口。网络设备2的端口3为网络设备侧端口类型的端口。上述对应关系仅为示意性举例,本申请不做限定。
在一种可能的实现方式中,运维人员可通过终端(例如电脑、平板或手机等终端设备)连接分析单元提供的接口,并通过终端为分析单元配置网络设备端口与端口类型对应关系表,分析单元可获取到运维人员配置的网络设备端口与端口类型对应关系表。
示例性的,接入位置获取单元接收到镜像报文,对镜像报文进行解封装,以获取到镜像报文的外层报文所携带的信息(或参数)。具体的,接入位置获取单元读取IP Header字段中的镜像报文发送端的标识,以及ERSPAN Header中携带的接口信息(即接收端口标识),该接收端口标识用于指示作为镜像报文发送端的网络设备接收到数据报文的端口。GREHeader字段中的信息使用可参照已有技术实施例,本申请不做赘述。
接入位置获取单元基于镜像报文中的镜像报文发送端的标识和接收端口标识,查询网络设备端口与端口类型对应关系表,以确定接收端口所对应的端口类型。
在一种可能的实现方式中,若网络设备端口与端口类型对应关系表如表1所示的形式,即仅包括用户侧端口类型的端口的相关信息(包括端口标识和对应的网络设备的标识)。一个示例中,接入位置获取单元基于镜像报文发送端的标识和接收端口标识,检测到镜像报文所携带的接收端口标识未包含于网络设备端口与端口类型对应关系表,可确定该接收端口标识所指示的端口为网络设备侧端口类型的端口,即为非用户侧端口类型的端口。另一个示例中,接入位置获取单元基于镜像报文发送端的标识和接收端口标识,检测到镜像报文所携带的接收端口标识包含于网络设备端口与端口类型对应关系表,可确定该接收端口标识所指示的端口为用户侧端口类型的端口,即为网络设备侧端口类型的端口。
在另一种可能的实现方式中,网络设备端口与端口类型对应关系表如表2所示的形式,即包括用户侧端口类型的端口的相关信息和网络设备侧端口类型的端口的相关信息。示例性的,接入位置获取单元基于镜像报文发送端的标识和接收端口标识,对网络设备端口与端口类型对应关系表中的各表项(包括网络设备的标识和端口的标识)进行匹配,并获取匹配成功的接收端口标识所对应的端口类型,以确定接收端口标识所指示的端口所对应的端口类型。
示例性的,接入位置单元基于接收端口的端口类型,可进一步判定基于该接收端口接收到的数据报文所对应的发送端是否为用户设备。
一个示例中,接入位置获取单元确定接收端口标识所指示的端口为用户侧端口类型的端口,则可进一步确定接收端口标识所指示的端口接收到的数据报文所对应的发送端为用户设备,也可以理解为设备的类型为用户设备类型,或者是非网络设备类型
另一个示例中,接入位置获取单元确定接收端口标识所指示的端口为网络设备侧端口类型的端口,则可进一步确定接收端口标识所指示的端口接收到的数据报文所对应的发送端为网络设备,也可以理解为设备的类型为网络设备类型,或者是非用户设备类型。
方式二:
在本申请实施例中,如上文所述,作为镜像报文发送端的至少一个网络设备为系统内的指定网络设备,即,分析单元可指定具有用户侧端口类型的端口的至少一个网络设备作为镜像报文的发送端。也就是说,在该示例中,只有具备用户侧端口类型的端口的网络设备,通过用户侧端口类型的端口接收到数据报文后,才会向接入位置获取单元发送镜像报文。相应的,接入位置获取单元在接收到镜像报文之后,即可确定镜像报文中的数据报文所对应的发送端为用户设备,即设备的类型为用户设备类型。
可选地,作为镜像报文发送端的至少一个网络设备也可以被配置为通过任意端口接收到数据报文,则在该示例中,可按照方式一中的执行。即,仍然需要先判断接收数据报文的接收端口的类型,再进一步识别是否为用户设备。
在一种可能的实现方式中,接入位置获取单元周期性地执行图3所示流程,例如周期时长为1s,可根据实际需求设置,本申请不做限定。即,接入位置获取单元在1s内接收到一个或多个镜像报文,可对接收到的镜像报文执行S302和S303。
这样,本申请实施例中通过扩展镜像报文,可使得镜像报文携带接收端口标识,装置通过接收端口,可判定接收端口所连接的发送端是否为用户设备。提供一种适用于二层、三层数据报文转发的场景的识别方案,可实现对用户设备的接入设备的准确定位,进而得到用户设备的接入位置。
2.基于数据报文的发送端的标识,判断发送端是否为用户设备。
示例性的,接入位置获取单元接收到多个镜像报文。镜像报文可能是来自一个或多个网络设备。例如,多个镜像报文可能是网络设备A发送的,其中,每个镜像报文中的数据报文所对应的发送端可以相同或不同,即,网络设备A可能是基于一个或多个设备发送的数据报文生成的多个镜像报文。网络设备A也可能是基于一个设备发送的多个数据报文生成的多个镜像报文。再例如,多个镜像报文分别来自网络设备A和网络设备B,同样的,网络设备A所发送的镜像报文可能是基于一个或多个设备发送的数据报文生成的,网络设备B类似,此处不再赘述。
示例性的,接入位置获取单元可周期性地对接收到的多个镜像报文进行处理。例如,周期时长可以是1s,可根据实际需求设置,本申请不做限定。
接入位置获取单元基于各镜像报文中携带的发送端标识,对多个镜像报文进行分组。其中,发送端标识相同的镜像报文划分为同一个组。具体的,接入位置获取单元读取每个镜像报文中的内层报文(即数据报文)中的IP Header字段的源IP地址,并将源IP地址相同的镜像报文划分到同一个组。可以理解为是每个组中的镜像报文的内层报文(即数据报文)均是来自同一个初始发送端(即源IP地址所标识的设备)。
接着,接入位置获取单元基于镜像报文的内层报文的发送端标识,对每个组的镜像报文进行过滤。具体地,接入位置获取单元读取组内的各镜像报文的数据报文中的Ethernet Header字段中的源MAC地址,接入位置获取单元将每个镜像报文中的源MAC地址与网络设备标识列表(该列表中包括观测范围内的所有网络设备的标识)进行匹配。接入位置获取单元过滤掉匹配成功的镜像报文。也就是说,若镜像报文中的源MAC地址位于网络设备标识列表中,即,这些镜像报文中的内层报文(即数据报文)的发送端是观测范围内的网络设备,则接入位置获取单元过滤掉该类镜像报文。接入位置获取单元对组内的源MAC地址不属于网络设备标识列表的镜像报文,即内层报文的发送端为非观测范围内的网络设备的镜像报文进行下一步处理。
示例性的,接入位置获取单元读取过滤后的每个镜像报文的网络设备标识,判断各镜像报文是否来自同一个网络设备。具体地,接入位置获取单元读取过滤后的每个镜像报文的外层报文的IP Header字段中的源IP地址。如上文所述,该源IP地址用于指示镜像报文的发送端(该发送端为观测范围内的网络设备)。接入位置获取单元检测各镜像报文的外层报文中的源IP地址是否相同。
示例性的,如果外层报文中的源IP地址相同,接入位置获取单元可确定这些镜像报文(即过滤后的一个或多个镜像报文)是来自同一个发送端(即同一个网络设备)。相应的,接入位置获取单元判定过滤后的镜像报文的数据报文所对应的发送端即为用户设备,这些镜像报文的发送端即为该用户设备的接入点。这样,本申请实施例中利用镜像报文的特性,可获取到数据报文的实际发送端,并进一步基于发送端的标识以判断发送端的类型。
在本申请实施例中,两种判断方式即“基于接收端口标识,判断发送端是否为用户设备”和“基于数据报文的发送端的标识,判断发送端是否为用户设备”可选取任一种方式独立执行,以确定数据报文的发送端的角色类型(即用户设备或网络设备)。
在一种可能的实现方式中,上文所述的两种判断方式,即“基于接收端口标识,判断发送端是否为用户设备”和“基于数据报文的发送端的标识,判断发送端是否为用户设备”可以异步执行,即可以理解为并行执行,从而提升接入位置定位的准确性。例如,接入位置获取单元可在每个周期(例如1s)触发时刻,对本周期内获取到的多个镜像报文并行执行上述两种判断方式。一个示例中,如果“基于接收端口标识,判断发送端是否为用户设备”的方式判断为数据报文的发送端为用户设备,而“基于数据报文的发送端的标识,判断发送端是否为用户设备”的方式判断数据报文的发送端为网络设备(即非用户设备),则接入位置获取单元可确定数据报文的发送端为网络设备。具体示例将在下文实施例中说明。另一个示例中,如果“基于数据报文的发送端的标识,判断发送端是否为用户设备”的方式判断出接入位置为多个的场景下,则接入位置获取单元可进一步结合“基于数据报文的发送端的标识,判断发送端是否为用户设备”的方式的判断结果,以确定用户设备的接入位置。
S303,若发送端为用户设备,获取用户设备的接入位置。
示例性的,接入位置获取单元判定数据报文的发送端为用户设备之后,可确定该数据报文所属的镜像报文的发送端即为用户设备的接入点,并且,该接入点与用户设备的连接接口即为用户设备的接入口。
示例性的,接入位置获取单元判定出接入点之后,读取来自该接入点的镜像报文(具体为参与S302判断步骤的镜像报文),以获取用户设备的接入位置信息。接入位置信息包括但不限于:用户设备的标识、接入点标识以及接入口标识(即接入点与用户设备的连接接口)等。
具体地,接入位置获取单元读取镜像报文(来自接入点的镜像报文)的外层报文的IP Header字段中的源IP地址,该IP地址为用户设备接入的网络设备的标识,也可以理解为是用户设备的接入点的标识。接入位置获取单元读取镜像报文的内层报文的IP Header字段中的源IP地址,该IP地址为用户设备的标识。以及,接入位置获取单元读取镜像报文的外层报文的ERSPAN Header字段中的接口信息(即接收端口标识),即为接入口标识。
示例性的,接入位置获取单元将用户设备的接入位置信息保存至接入位置存储单元。具体地,接入位置存储单元可维护接入位置信息列表(也可以是其它存储形式,本申请不做限定),列表中包括一个或多个表项,每个表项中用于存储用户设备的接入位置信息,表项中包括但不限于:用户设备的标识、接入点标识和接入口标识等。
接入位置获取单元基于用户设备的标识,查询接入位置信息列表。一种可能的实现方式中,接入位置获取单元检测到接入位置信息列表中存在该用户设备的标识,则接入位置获取单元进一步检测已保存的该用户设备的接入位置信息(包括接入点标识和接入口标识等)与当前获取到的该用户设备的接入位置信息是否一致。一个示例中,如果两者一致,则无需将当前获取到的该用户设备的接入位置信息写入到列表中。另一个示例中,如果两者不一致,则接入位置获取单元将当前获取到的该用户设备的接入位置信息写入到接入位置信息列表中,以更新用户设备的接入位置信息。另一种可能的实现方式中,接入位置获取单元检测到接入位置信息列表中不存在该用户设备的标识,则接入位置获取单元将当前获取到的该用户设备的接入位置信息写入到接入位置信息列表中。
可选地,接入位置获取单元还可以在表项中对应写入当前获取到的该用户设备的接入位置的获取时间,其中,获取时间可以是获取到接入位置的时间,也可以是保存该接入位置信息的时间,本申请不做限定。这样,在后续进行故障定位的过程中,运维人员(或管理人员)可基于同一个用户设备的接入位置的变化情况(包括位置的变化和时间点)以进行故障定位和故障排除等操作。需要说明的是,用户设备的接入位置的改变可能是用户设备的接入位置迁移,例如用户设备之前接入网络设备A,之后迁移到网络设备B(即断开与网络设备A的连接之后,接入网络设备B)。
下面结合附图,对本申请实施例中的接入位置获取方法在不同应用场景中的应用进行详细说明。需要说明的是,下文实施例中所示的场景(包括设备连接关系、设备数量、数据报文传输路径等)仅为示意性举例,本申请不做限定。
图7为示例性示出的应用场景示意图。请参照图7,系统中包括但不限于:Spine1、Leaf1、Leaf2以及多个用户设备。其中,用户设备包括但不限于:服务器11、服务器12、服务器21和服务器22。在该示例中,Leaf1的端口11连接服务器11的端口A,Leaf1的端口12连接服务器12的端口B,Leaf1的端口13连接Spine1的端口31。Leaf2的端口21连接服务器21的端口C,Leaf2的端口22连接服务器22的端口D,Leaf2的端口23连接Spine1的端口32。示例性的,服务器12上部署有VM1和VM2等虚拟机。在本实例中,服务器22上部署有分析单元、接入位置获取单元和接入位置存储单元。
场景一
在该场景中,分析单元维护有网络设备标识列表,网络设备标识列表(在本申请实施例中以列表方式为例,在其他实施例中也可以是其它形式,本申请不做限定)中保存有观测范围内的所有网络设备的标识(例如为网络设备的MAC地址)。
结合图7,分析单元维护的网络设备标识列表如表3所示:
表3
序号 | 网络设备标识 |
1 | 设备标识A |
2 | 设备标识B |
3 | 设备标识C |
4 | …… |
其中,设备标识A为Spine1的MAC地址和IP地址,设备标识B为Leaf1的MAC地址和IP地址,设备标识C为Leaf2的MAC地址和IP地址。本申请实施例中仅以设备的标识包括MAC地址和IP地址为例进行说明,在其他实施例中还可以包括管理地址、设备名称等其它标识,本申请不做限定。
图8为示例性示出的设备接入位置的获取方法流程示意图。请参照图8,具体包括但不限于如下步骤:
S801,分析单元获取网络设备的邻居信息。
示例性的,请参照图7,Leaf1、Leaf2和Spine1周期性地获取LLDP信息。例如,Leaf1的LLDP信息包括但不限于:
端口11的标识-设备标识11-端口A的标识
端口12的标识-设备标识12-端口B的标识
端口13的标识-设备标识A-端口31的标识
示例性的,端口11的标识为Leaf1的端口11的MAC地址,设备标识11为服务器11的MAC地址,端口A的标识为服务器11的端口A的MAC地址。对应的LLDP信息指示Leaf1的端口11连接的邻居设备为设备标识11所指示的设备,且连接的端口为该邻居设备的端口A。
示例性的,端口12的标识为Leaf1的端口12的MAC地址,设备标识12为服务器12的MAC地址,端口B的标识为服务器12的端口B的MAC地址。对应的LLDP信息指示Leaf1的端口12连接的邻居设备为设备标识12所指示的设备,且连接的端口为该邻居设备的端口B。
示例性的,端口13的标识为Leaf1的端口13的MAC地址,设备标识A为Spine1的MAC地址,端口31的标识为Spine1的端口31的MAC地址。对应的LLDP信息指示Leaf1的端口13连接的邻居设备为设备标识A所指示的设备,且连接的端口为该邻居设备的端口31。
Leaf2的LLDP信息包括但不限于:
端口21的标识-设备标识21-端口A的标识
端口22的标识-设备标识22-端口B的标识
端口23的标识-设备标识A-端口32的标识
Leaf2的LLDP信息的描述可参照Leaf1此处不再赘述。
Spine1的LLDP信息包括但不限于:
端口31的标识-设备标识B-端口13的标识
端口32的标识-设备标识C-端口23的标识
示例性的,端口31的标识为Spine1的端口31的MAC地址,设备标识B为Leaf1的MAC地址,端口13的标识为Leaf1的端口13的MAC地址。对应的LLDP信息指示Spine1的端口31连接的邻居设备为设备标识B所指示的设备,且连接的端口为该邻居设备的端口13。
示例性的,端口32的标识为Spine1的端口32的MAC地址,设备标识C为Leaf2的MAC地址,端口23的标识为Leaf2的端口23的MAC地址。对应的LLDP信息指示Spine1的端口32连接的邻居设备为设备标识C所指示的设备,且连接的端口为该邻居设备的端口23。
示例性的,分析单元向系统内的各网络设备发送邻居信息请求消息,用于指示反馈邻居信息。分析单元可接收到Leaf1反馈的邻居信息1、Leaf2反馈的邻居信息2和Spine1反馈的邻居信息3。
其中,邻居信息1包括但不限于:Leaf1的标识(即Leaf1的MAC地址)和Leaf1的LLDP信息。邻居信息2包括但不限于:Leaf2的标识(即Leaf2的MAC地址)和Leaf2的LLDP信息。邻居信息3包括但不限于:Spin1的标识(即Spin1的MAC地址)和Spine1的LLDP信息。
S802,分析单元基于邻居信息,确定接口角色。
示例性的,分析单元基于网络设备标识列表和接收到的邻居信息,识别网络设备的各端口的端口类型(即接口角色)。
举例说明,以Leaf1为例,分析单元基于Leaf1对应的邻居信息,查询网络设备标识列表(例如表3所示)。分析单元检测到Leaf1的端口11连接的邻居设备的标识(即设备标识11)与Leaf1的端口12连接的邻居设备的标识(即设备标识12)均未包含于网络设备标识列表。分析单元判定Leaf1的端口11与端口12所连接的设备为非观测范围内的网络设备,相应的,分析单元确定Leaf1的端口11与端口12的端口类型为用户侧类型端口。分析单元检测到Leaf1的端口13连接的邻居设备的标识(即设备标识A)包含于网络设备标识列表。分析单元判定Leaf1的端口13连接的设备为观测范围内的网络设备,进一步确定Leaf1的端口13为网络设备侧类型端口。
与Leaf1的处理类似,分析单元分别获取到Leaf2和Spine1的端口的接口角色。例如包括但不限于:Leaf2的端口21和端口22为用户侧端口类型的端口,Leaf2的端口23为网络设备侧端口类型的端口。Spine1的端口31和端口32为网络设备侧端口类型的端口。具体识别方法可参照Leaf1的处理,此处不再赘述。
分析单元将用户侧端口类型的端口的标识以及对应的网络设备的标识发送给接入位置获取单元。接入位置获取单元维护有网络设备端口与端口类型对应关系表,接入位置获取单元将接收到的网络设备的标识和端口标识更新到网络设备端口与端口类型对应关系表。
具体的,如上文所述,分析单元维护的网络设备的标识可以包括但不限于网络设备的IP地址、网络设备的MAC地址以及网络设备的管理地址等。在本申请实施例中,分析单元可将接入位置获取单元所需的标识发送给接入位置单元。举例说明,在本实例中,分析单元向接入位置获取单元发送的设备标识为网络设备的IP地址,则分析单元确定网络设备具有用户侧端口类型的端口之后,可在网络设备标识列表中查找与该网络设备对应的IP地址,并将查找到的网络设备的IP地址以及对应的用户侧端口类型的端口的标识(例如为端口的MAC地址)发送给接入位置获取单元。可选地,如上文所述,镜像报文携带的接口信息可能是接收端口的INDEX信息。在该示例中,分析单元也可以获取各端口对应的INDEX信息,并将端口的INDEX信息和MAC地址对应发送给接入位置获取单元。可选地,INDEX信息可以是分析单元向网络设备请求的,也可以是管理人员配置的,本申请不做限定。可选地,INDEX信息也可以是接入位置获取单元在接收到镜像报文并读取到接口信息中的INDEX信息后,向镜像报文的外层报文的源IP地址所指示的网络设备发送请求消息,并基于网络设备反馈的响应消息(响应消息中携带与INDEX信息对应的端口的MAC地址)获取到的,本申请不做限定。
相应的,接入位置获取单元将获取到的网络设备的标识和端口标识写入到网络设备端口与端口类型对应关系表,例如表4所示:
表4
其中,表4中的设备标识B为Leaf1的IP地址,设备标识C为Leaf2的IP地址。该关系表中的表项1(即序号1)用于指示设备标识B所指示的网络设备的端口11为用户侧端口类型。表项2用于指示设备标识B所指示的网络设备的端口12为用户侧端口类型。表项3用于指示设备标识C所指示的网络设备的端口21为用户侧端口类型。表项4用于指示设备标识C所指示的网络设备的端口22为用户侧端口类型。可选地,网络设备端口与端口类型对应关系表也可以如表2中的形式,本申请不做限定。
S803,接入位置获取单元获取镜像报文。
下面以具体的传输场景为例对镜像报文的传输方式进行说明,图9a为示例性示出的镜像报文传输流程示意图,请参照图9a,在该场景中,以数据报文的三层转发场景为例进行说明。具体的,服务器11通过端口A将数据报文发送给Leaf1,Leaf1通过端口11接收到数据报文,并将数据报文通过端口13转发给Spine1。Spine1通过端口31接收到数据报文,并通过端口32将数据报文转发至Leaf2。Leaf2通过端口23接收到数据报文,并通过端口21将数据报文发送给服务器21。服务器21通过端口C接收到数据报文。
图9b为示例性示出的镜像报文传输示意图。请参照图9b,在该示例中,观测范围内的所有网络设备(包括Leaf1、Spine1和Leaf2)已完成报文镜像功能配置。相应的,在数据报文的传输过程中,Leaf1、Spine1和Leaf2接收到数据报文后,基于数据报文生成镜像报文,并将镜像报文发送给接入位置获取单元。在本实例中,镜像报文为ERSPAN报文。以Leaf1为例,Leaf1的镜像报文的传输路径可选地为:Leaf1的端口13-Spine1的端口31-Spine1的端口32-Leaf2的端口23-Leaf2的端口22-服务器22的端口D。其它设备的路径不再逐一赘述。
结合图9a和图9b,图9c为示例性示出的报文处理示意图。请参照图9c,服务器11发送的数据报文中的Ethernet Header字段携带目的MAC地址(即服务器12的MAC地址)和源MAC地址(即服务器11的MAC地址),IP Header字段携带目的IP地址(即服务器21的IP地址)和源IP地址(即服务器11的IP地址),数据字段承载数据。示例性的,服务器11即为数据报文的初始发送端。
Leaf1通过端口11接收数据报文。Leaf1对数据报文进行重新封装,并将重新封装后的数据报文通过端口13转发给Spine1,以及,Leaf1基于数据报文生成镜像报文。示例性的,重新封装后的数据报文的Ethernet Header字段携带目的MAC地址(即Spine1的MAC地址)和源MAC地址(即Leaf1的MAC地址)。IP Header字段携带目的IP地址(即服务器21的IP地址)和源IP地址(即服务器11的IP地址)。示例性的,对于Leaf1,服务器11即为数据报文的发送端。
示例性的,Leaf1的镜像报文包括外层报文和内层报文。其中,外层报文包括但不限于:IP Header字段、GRE Header字段和ERSPAN Header字段。外层报文的IP Header字段包括目的IP地址(即服务器22的IP地址)和源IP地址(即Leaf1的IP地址)。ERSPAN Header包括但不限于:Header字段和Subheader字段。其中,Subheader字段中的Platf ID字段携带指定信息(即0x7或0x0),Platform Specific Info字段携带端口11的标识(即Leaf1的端口11的MAC地址,也可以是端口ID等,本申请不做限定),用于指示该镜像报文是Leaf1基于端口11接收到的数据报文生成的。内层报文即为数据字段,数据字段中承载Leaf1接收到的数据报文。
Spine1通过端口31接收数据报文。Spine1对数据报文进行重新封装,并将重新封装后的数据报文通过端口32转发给Leaf2,以及,Spine1基于数据报文生成镜像报文。示例性的,重新封装后的数据报文的Ethernet Header字段携带目的MAC地址(即Leaf2的MAC地址)和源MAC地址(即Spine1的MAC地址)。IP Header字段携带目的IP地址(即服务器21的IP地址)和源IP地址(即服务器11的IP地址)。示例性的,对于Spine1,Leaf1即为数据报文的发送端。
示例性的,Spine1的镜像报文包括外层报文和内层报文。其中,外层报文包括但不限于:IP Header字段、GRE Header字段和ERSPAN Header字段。外层报文的IP Header字段包括目的IP地址(即服务器22的IP地址)和源IP地址(即Spine1的IP地址)。ERSPAN Header包括但不限于:Header字段和Subheader字段。其中,Subheader字段中的Platf ID字段携带指定信息(即0x7或0x0),Platform Specific Info字段携带端口31的标识(即Spine1的端口31的MAC地址,也可以是端口ID等,本申请不做限定),用于指示该镜像报文是Spine1基于端口31接收到的数据报文生成的。内层报文即为数据字段,数据字段中承载Spine1接收到的数据报文。
Leaf2通过端口23接收数据报文。Leaf2对数据报文进行重新封装,并将重新封装后的数据报文通过端口21转发给服务器21,以及,Leaf2基于数据报文生成镜像报文。示例性的,重新封装后的数据报文的Ethernet Header字段携带目的MAC地址(即服务器21的MAC地址)和源MAC地址(即Leaf2的MAC地址)。IP Header字段携带目的IP地址(即服务器21的IP地址)和源IP地址(即服务器11的IP地址)。示例性的,对于Leaf2,Spine1即为数据报文的发送端。
示例性的,Leaf2的镜像报文包括外层报文和内层报文。其中,外层报文包括但不限于:IP Header字段、GRE Header字段和ERSPAN Header字段。外层报文的IP Header字段包括目的IP地址(即服务器22的IP地址)和源IP地址(即Leaf2的IP地址)。ERSPAN Header包括但不限于:Header字段和Subheader字段。其中,Subheader字段中的Platf ID字段携带指定信息(即0x7或0x0),Platform Specific Info字段携带端口23的标识(即Leaf2的端口23的MAC地址,也可以是端口ID等,本申请不做限定),用于指示该镜像报文是Leaf2基于端口23接收到的数据报文生成的。内层报文即为数据字段,数据字段中承载Leaf2接收到的数据报文。
示例性的,接入位置获取单元接收到多个网络设备发送的镜像报文,包括Leaf1的镜像报文、Spine1的镜像报文以及Leaf2的镜像报文。
S804,接入位置获取单元基于镜像报文和接口角色,获取用户设备的接入位置。
示例性的,如上文所述,接入位置获取单元维护有网络设备端口与端口类型对应关系表,其中,对应关系表中记录有用户侧端口类型的端口的端口标识以及对应的网络设备的标识。接入位置获取单元基于镜像报文中的网络设备标识和接口信息,查询网络设备端口与端口类型对应关系表,以检测接口信息中的接收端口标识是否包含于网络设备端口与端口类型对应关系表中,以确定单一镜像报文的数据报文所对应的发送端是否为用户设备。
仍参照图9c,示例性的,接入位置获取单元获取Leaf1的镜像报文的IP Header字段中的源IP地址(即Leaf1的IP地址),以及Platform Specific Info字段中的接口信息(即端口11的MAC地址)。接入位置获取单元基于Leaf1的IP地址与端口11的MAC地址,对网络设备端口与端口类型对应关系表中的各表项进行匹配。在该示例中,Leaf1的IP地址与端口11的MAC地址匹配成功,接入位置获取单元确定Leaf1的端口11为用户侧端口类型的端口。进一步的,接入位置获取单元可确定Leaf1的端口11连接的邻居设备(即端口11所连接的设备)为用户设备,即,Leaf1从端口11接收到的数据报文所对应的发送端即为用户设备。接入位置获取单元确定Leaf1为该用户设备的接入点。接入位置获取单元获取Leaf1的镜像报文的内层报文中的IP Header字段中的源IP地址(即服务器11的IP地址),也就是Leaf1接收到的数据报文对应的发送端的标识。接入位置获取服务器11所对应的接入位置信息,包括但不限于:服务器11的IP地址、接入点的标识(即Leaf1的IP地址)和接收端口标识(即端口11的MAC地址),该接入位置信息用于指示作为用户设备的服务器11接入到Leaf1的端口11。
请继续参照图9c,示例性的,接入位置获取单元获取Spine1的镜像报文的IPHeader字段中的源IP地址(即Spine1的IP地址),以及Platform Specific Info字段中的接口信息(即端口31的MAC地址)。接入位置获取单元基于Spine1的IP地址与端口31的MAC地址,对网络设备端口与端口类型对应关系表中的各表项进行匹配。在该示例中,Spine1的IP地址与端口31的MAC地址匹配失败,接入位置获取单元确定Spine1的端口31为网络设备侧端口类型的端口。进一步的,接入位置获取单元可确定Spine1从端口31接收到的数据报文所对应的发送端(即端口31所连接的设备)为网络设备。
请继续参照图9c,示例性的,接入位置获取单元获取Leaf2的镜像报文的IPHeader字段中的源IP地址(即Leaf2的IP地址),以及Platform Specific Info字段中的接口信息(即端口23的MAC地址)。接入位置获取单元基于Leaf2的IP地址与端口23的MAC地址,对网络设备端口与端口类型对应关系表中的各表项进行匹配。在该示例中,Leaf2的IP地址与端口23的MAC地址匹配失败,接入位置获取单元确定Leaf2的端口23为网络设备侧端口类型的端口。进一步的,接入位置获取单元可确定Leaf2从端口23接收到的数据报文所对应的发送端(即端口23所连接的设备)为网络设备。
在一种可能的实现方式中,接入位置获取单元也可以先基于接收到的镜像报文识别出接入点。在确定接入点之后,再读取来自接入点的镜像报文(指携带的接口信息指示的端口为用户侧端口类型的镜像报文)的相关字段,以获取接入位置。
S805,接入位置存储单元保存用户设备的接入位置信息。
示例性的,接入位置获取单元将服务器11的接入位置信息保存到接入位置存储单元。接入位置存储单元维护有接入位置信息列表(也可以是其它存储形式,本申请不做限定),列表中包括一个或多个表项,每个表项中用于存储用户设备的接入位置信息,表项中包括但不限于:用户设备的标识、接入点标识和接收端口标识(即接入口标识)等。
接入位置获取单元(执行主体也可以是接入位置存储单元,本申请不做限定)基于服务器11的标识(即服务器11的IP地址),查询接入位置信息列表。一个示例中,如果接入位置信息列表中不包括服务器11的标识,即,未保存服务器11对应的接入位置信息。则,接入位置获取单元将服务器11的接入位置信息(包括但不限于:服务器11的IP地址、接入点的标识(即Leaf1的IP地址)和接收端口标识(即端口11的MAC地址))保存到接入位置信息列表。另一个示例中,如果接入位置信息列表中包括服务器11的标识,即,已保存服务器11对应的接入位置信息。接入位置获取单元检测已保存的接入位置信息与当前获取到的接入位置信息是否一致。如果一致,则不做更新。如果不一致,则,接入位置获取单元将服务器11的接入位置信息(包括但不限于:服务器11的IP地址、接入点的标识(即Leaf1的IP地址)和接收端口标识(即端口11的MAC地址))保存到接入位置信息列表。可选地,接入位置获取单元将接入位置信息的获取时间(例如保存到接入位置信息列表的时间)对应写入到接入位置信息中。
场景二
仍以图7所示的应用场景为例。在该场景中,以二层转发场景为例进行说明。分析单元以及接入位置获取单元执行S801~S802,具体细节可参照上文,此处不再赘述。
在S803中,数据报文的传输路径以及镜像报文的传输方式可参照图9a和图9b,此处不再赘述。
图10为示例性示出的报文处理示意图。请参照图10,服务器11发送的数据报文中的Ethernet Header字段携带目的MAC地址(即服务器12的MAC地址)和源MAC地址(即服务器11的MAC地址),IP Header字段携带目的IP地址(即服务器21的IP地址)和源IP地址(即服务器11的IP地址),数据字段承载数据。示例性的,服务器11即为数据报文的初始发送端。
Leaf1通过端口11接收数据报文。Leaf1将数据报文通过端口13转发给Spine1(也可以称为透传),以及,Leaf1基于数据报文生成镜像报文。示例性的,Leaf1转发的数据报文与接收到的数据报文(即服务器11发送的数据报文)是相同的,具体描述可参照上文相关描述,此处不再赘述。
示例性的,Leaf1的镜像报文包括外层报文和内层报文。其中,外层报文包括但不限于:IP Header字段、GRE Header字段和ERSPAN Header字段。外层报文的IP Header字段包括目的IP地址(即服务器22的IP地址)和源IP地址(即Leaf1的IP地址)。ERSPAN Header包括但不限于:Header字段和Subheader字段。其中,Subheader字段中的Platf ID字段携带指定信息(即0x7或0x0),Platform Specific Info字段携带端口11的标识(即Leaf1的端口11的MAC地址,也可以是端口ID等,本申请不做限定),用于指示该镜像报文是Leaf1基于端口11接收到的数据报文生成的。内层报文即为数据字段,数据字段中承载Leaf1接收到的数据报文。示例性的,对于Leaf1,服务器11即为数据报文的发送端。
Spine1通过端口31接收数据报文。Spine1将数据报文通过端口32转发给Leaf2(也可以称为透传),以及,Spine1基于数据报文生成镜像报文。示例性的,Spine1转发的数据报文与接收到的数据报文(即Leaf1发送的数据报文)是相同的,具体描述可参照上文相关描述,此处不再赘述。
示例性的,Spine1的镜像报文包括外层报文和内层报文。其中,外层报文包括但不限于:IP Header字段、GRE Header字段和ERSPAN Header字段。外层报文的IP Header字段包括目的IP地址(即服务器22的IP地址)和源IP地址(即Spine1的IP地址)。ERSPAN Header包括但不限于:Header字段和Subheader字段。其中,Subheader字段中的Platf ID字段携带指定信息(即0x7或0x0),Platform Specific Info字段携带端口31的标识(即Spine1的端口31的MAC地址,也可以是端口ID等,本申请不做限定),用于指示该镜像报文是Spine1基于端口31接收到的数据报文生成的。内层报文即为数据字段,数据字段中承载Spine1接收到的数据报文。示例性的,对于Spine1,Leaf1即为数据报文的发送端。
Leaf2通过端口23接收数据报文。Leaf1将数据报文通过端口21转发给服务器21(也可以称为透传),以及,Leaf2基于数据报文生成镜像报文。示例性的,Leaf2转发的数据报文与接收到的数据报文(即Spine1发送的数据报文)是相同的,具体描述可参照上文相关描述,此处不再赘述。
示例性的,Leaf2的镜像报文包括外层报文和内层报文。其中,外层报文包括但不限于:IP Header字段、GRE Header字段和ERSPAN Header字段。外层报文的IP Header字段包括目的IP地址(即服务器22的IP地址)和源IP地址(即Leaf2的IP地址)。ERSPAN Header包括但不限于:Header字段和Subheader字段。其中,Subheader字段中的Platf ID字段携带指定信息(即0x7或0x0),Platform Specific Info字段携带端口23的标识(即Leaf2的端口23的MAC地址,也可以是端口ID等,本申请不做限定),用于指示该镜像报文是Leaf2基于端口23接收到的数据报文生成的。内层报文即为数据字段,数据字段中承载Leaf2接收到的数据报文。示例性的,对于Leaf2,Spine1即为数据报文的发送端。
示例性的,接入位置获取单元接收到多个网络设备发送的镜像报文。Leaf1的镜像报文、Spine1的镜像报文以及Leaf2的镜像报文。
在该场景中,接入位置获取单元接收到的Leaf1的镜像报文、Spine1的镜像报文以及Leaf2的镜像报文执行S803~S804的处理,具体细节与场景一相同,此处不再赘述。
场景三
仍以图7所示的应用场景为例。在该场景中,分析单元执行S801和S802。S801的具体细节可参照场景一中的相关内容,此处不再赘述。
示例性的,在S802执行过程中,分析单元基于邻居信息,确定接口角色之后,可向具有用户侧端口类型的端口的网络设备(例如Leaf1和Leaf2)发送指示信息,用于指示Leaf1在通过用户侧端口类型的端口(即端口11和端口)接收到数据报文后,生成镜像报文,并将镜像报文发送给接入位置获取单元,以及,指示Leaf2通过用户侧端口类型的端口(即端口21和端口22)接收到数据报文后,生成镜像报文,并将镜像报文发送给接入位置获取单元。
在S803中,若Leaf1和Leaf2通过用户侧端口类型的端口接收到数据报文,则生成对应的镜像报文。例如,以图9c为例,在本实例中,与图9c所示的场景不同,Leaf1向接入位置获取单元发送镜像报文,而Spine1和Leaf2均是通过网络设备侧端口类型的端口接收到的数据报文,则无需生成镜像报文。
在S804中,接入位置获取单元接收到Leaf1发送的镜像报文,即可确定Leaf1发送的镜像报文的内层报文(即数据报文)的发送端(即服务器11)为用户设备,相应的,Leaf1即为该用户设备的接入点。进一步的,接入位置获取单元读取Leaf1的镜像报文,以获取服务器11的接入位置信息,并保存到接入位置存储单元。未描述细节可参照上文相关内容,此处不再赘述。
场景四
图11为示例性示出的设备接入位置的获取方法流程示意图。请参照图11,具体包括但不限于如下步骤:
S1101,分析单元获取网络设备的MAC地址。
示例性的,分析单元可获取系统中的各网络设备的标识,例如可以是各网络设备的MAC地址和IP地址等。下文中仅以MAC地址为例进行说明。
可选地,分析单元可周期性地自动采集系统中的各网络设备的MAC地址,和/或,管理人员(或运维人员)可通过分析单元提供的用户接口,为分析单元配置系统内的各网络设备的MAC地址。
需要说明的是,在本示例中,分析单元获取到的网络设备的MAC地址包括观测范围内的网络设备的MAC地址,还包括非观测范围内的网络设备的MAC地址。例如,以图4中的防火墙为例,防火墙为非观测范围内的网络设备,但是,分析单元可与该网络设备进行通信,即可获取到防火墙对应的MAC地址。当然,防火墙的MAC地址也可以是管理人员配置的,本申请不做限定。
仍结合图7所示的应用场景,在本申请实施例中,分析单元可维护有网络设备标识列表,列表可参照表3,相关描述可参照上文相关内容,此处不再赘述。
示例性的,分析单元将获取到的网络设备的MAC地址发送给接入位置获取单元。其中,如上文所述,网络设备标识列表中的网络设备标识可以包括但不限于:网络设备的MAC地址、网络设备的IP地址和网络设备的管理地址(其中,列表中可能不包括防火墙等非观测范围内的网络设备的管理地址)等,在本示例中,分析单元可以只向接入位置获取单元发送MAC地址,当然也可以发送其它类型的标识,本申请不做限定。
S1102,接入位置获取单元获取镜像报文。
下面以具体的传输场景为例对镜像报文的传输方式进行说明,图12为示例性示出的镜像报文传输流程示意图,请参照图12,在该场景中,以数据报文的三层转发场景为例进行说明。具体的,服务器11通过端口A将数据报文1发送给Leaf1,Leaf1通过端口11接收到数据报文1,并将数据报文1通过端口13转发给Spine1。Spine1通过端口31接收到数据报文1,并通过端口32将数据报文1转发至Leaf2。Leaf2通过端口23接收到数据报文1,并通过端口21将数据报文1发送给服务器21。服务器21通过端口C接收到数据报文1。
仍参照图12,服务器12通过端口A将数据报文2发送给Leaf1,Leaf1通过端口12接收到数据报文2,并将数据报文2通过端口13转发给Spine1。Spine1通过端口31接收到数据报文2,并通过端口32将数据报文2转发至Leaf2。Leaf2通过端口23接收到数据报文2,并通过端口21将数据报文2发送给服务器21。服务器21通过端口C接收到数据报文2。
结合图12,图13为示例性示出的报文处理示意图。请参照图13,服务器11发送的数据报文1中的Ethernet Hear字段携带目的MAC地址(即Leaf1的MAC地址)和源MAC地址(即服务器11的MAC地址),IP Header字段携带目的IP地址(即服务器21的IP地址)和源IP地址(即服务器11的IP地址),数据字段承载数据。示例性的,服务器11即为数据报文1的初始发送端。需要说明的是,图12中示意出部分字段携带的信息,其它字段可参照图9c中的相关描述,此处不再赘述,下文中不再重复说明。
Leaf1通过端口11接收数据报文1。Leaf1对数据报文1进行重新封装,并将重新封装后的数据报文1通过端口13转发给Spine1,以及,Leaf1基于数据报文1生成镜像报文1。示例性的,重新封装后的数据报文1的Ethernet Header字段携带目的MAC地址(即Spine1的MAC地址)和源MAC地址(即Leaf1的MAC地址)。IP Header字段携带目的IP地址(即服务器21的IP地址)和源IP地址(即服务器11的IP地址)。
示例性的,Leaf1的镜像报文1包括外层报文和内层报文。其中,外层报文包括但不限于:IP Header字段、GRE Header字段和ERSPAN Header字段。外层报文的IP Header字段包括目的IP地址(即服务器22的IP地址)和源IP地址(即Leaf1的IP地址)。ERSPAN Header包括但不限于:Header字段和Subheader字段。其中,Subheader字段中的Platf ID字段携带指定信息(即0x7或0x0),Platform Specific Info字段携带端口11的标识(即Leaf1的端口11的MAC地址,也可以是端口ID等,本申请不做限定),用于指示该镜像报文是Leaf1基于端口11接收到的数据报文生成的。内层报文即为数据字段,数据字段中承载Leaf1接收到的数据报文1。示例性的,对于Leaf1,服务器11即为数据报文1的发送端。
Spine1通过端口31接收数据报文1。Spine1对数据报文1进行重新封装,并将重新封装后的数据报文1通过端口32转发给Leaf2,以及,Spine1基于数据报文1生成镜像报文3。示例性的,重新封装后的数据报文1的Ethernet Header字段携带目的MAC地址(即Leaf2的MAC地址)和源MAC地址(即Spine1的MAC地址)。IP Header字段携带目的IP地址(即服务器21的IP地址)和源IP地址(即服务器11的IP地址)。
示例性的,Spine1的镜像报文3包括外层报文和内层报文。其中,外层报文包括但不限于:IP Header字段、GRE Header字段和ERSPAN Header字段。外层报文的IP Header字段包括目的IP地址(即服务器22的IP地址)和源IP地址(即Spine1的IP地址)。ERSPANHeader包括但不限于:Header字段和Subheader字段。其中,Subheader字段中的Platf ID字段携带指定信息(即0x7或0x0),Platform Specific Info字段携带端口31的标识(即Spine1的端口31的MAC地址,也可以是端口ID等,本申请不做限定),用于指示该镜像报文是Spine1基于端口31接收到的数据报文生成的。内层报文即为数据字段,数据字段中承载Spine1接收到的数据报文1。示例性的,对于Spine1,Leaf1即为数据报文1的发送端。
Leaf2通过端口23接收数据报文1。Leaf2对数据报文1进行重新封装,并将重新封装后的数据报文1通过端口21转发给服务器21,以及,Leaf2基于数据报文1生成镜像报文5。示例性的,重新封装后的数据报文1的Ethernet Header字段携带目的MAC地址(即服务器21的MAC地址)和源MAC地址(即Leaf2的MAC地址)。IP Header字段携带目的IP地址(即服务器21的IP地址)和源IP地址(即服务器11的IP地址)。示例性的,对于Leaf2,Spine1即为数据报文1的发送端。
示例性的,Leaf2的镜像报文5包括外层报文和内层报文。其中,外层报文包括但不限于:IP Header字段、GRE Header字段和ERSPAN Header字段。外层报文的IP Header字段包括目的IP地址(即服务器22的IP地址)和源IP地址(即Leaf2的IP地址)。ERSPAN Header包括但不限于:Header字段和Subheader字段。其中,Subheader字段中的Platf ID字段携带指定信息(即0x7或0x0),Platform Specific Info字段携带端口23的标识(即Leaf2的端口23的MAC地址,也可以是端口ID等,本申请不做限定),用于指示该镜像报文是Leaf2基于端口23接收到的数据报文1生成的。内层报文即为数据字段,数据字段中承载Leaf2接收到的数据报文1。
仍参照图13,服务器12发送的数据报文2中的Ethernet Hear字段携带目的MAC地址(即服务器Leaf1的MAC地址)和源MAC地址(即服务器12的MAC地址),IP Header字段携带目的IP地址(即服务器21的IP地址)和源IP地址(即服务器12的IP地址),数据字段承载数据。示例性的,服务器12即为数据报文2的初始发送端。需要说明的是,图12中示意出部分字段携带的信息,其它字段可参照图9c中的相关描述,此处不再赘述,下文中不再重复说明。
Leaf1通过端口12接收数据报文2。Leaf1对数据报文2进行重新封装,并将重新封装后的数据报文2通过端口13转发给Spine1,以及,Leaf1基于数据报文2生成镜像报文2。示例性的,重新封装后的数据报文2的Ethernet Header字段携带目的MAC地址(即Spine1的MAC地址)和源MAC地址(即Leaf1的MAC地址)。IP Header字段携带目的IP地址(即服务器21的IP地址)和源IP地址(即服务器11的IP地址)。示例性的,对于Leaf1,服务器12即为数据报文2的发送端。
示例性的,Leaf1的镜像报文2包括外层报文和内层报文。其中,外层报文包括但不限于:IP Header字段、GRE Header字段和ERSPAN Header字段。外层报文的IP Header字段包括目的IP地址(即服务器22的IP地址)和源IP地址(即Leaf1的IP地址)。ERSPAN Header包括但不限于:Header字段和Subheader字段。其中,Subheader字段中的Platf ID字段携带指定信息(即0x7或0x0),Platform Specific Info字段携带端口11的标识(即Leaf1的端口12的MAC地址,也可以是端口ID等,本申请不做限定),用于指示该镜像报文是Leaf1基于端口12接收到的数据报文2生成的。内层报文即为数据字段,数据字段中承载Leaf1接收到的数据报文2。
Spine1通过端口31接收数据报文2。Spine1对数据报文2进行重新封装,并将重新封装后的数据报文2通过端口32转发给Leaf2,以及,Spine1基于数据报文2生成镜像报文4。示例性的,重新封装后的数据报文2的Ethernet Header字段携带目的MAC地址(即Leaf2的MAC地址)和源MAC地址(即Spine1的MAC地址)。IP Header字段携带目的IP地址(即服务器21的IP地址)和源IP地址(即服务器12的IP地址)。
示例性的,Spine1的镜像报文4包括外层报文和内层报文。其中,外层报文包括但不限于:IP Header字段、GRE Header字段和ERSPAN Header字段。外层报文的IP Header字段包括目的IP地址(即服务器22的IP地址)和源IP地址(即Spine1的IP地址)。ERSPANHeader包括但不限于:Header字段和Subheader字段。其中,Subheader字段中的Platf ID字段携带指定信息(即0x7或0x0),Platform Specific Info字段携带端口31的标识(即Spine1的端口31的MAC地址,也可以是端口ID等,本申请不做限定),用于指示该镜像报文是Spine1基于端口31接收到的数据报文2生成的。内层报文即为数据字段,数据字段中承载Spine1接收到的数据报文2。示例性的,对于Spine1,Leaf1即为数据报文2的发送端。
Leaf2通过端口23接收数据报文2。Leaf2对数据报文2进行重新封装,并将重新封装后的数据报文2通过端口21转发给服务器21,以及,Leaf2基于数据报文2生成镜像报文6。示例性的,重新封装后的数据报文2的Ethernet Header字段携带目的MAC地址(即服务器21的MAC地址)和源MAC地址(即Leaf2的MAC地址)。IP Header字段携带目的IP地址(即服务器21的IP地址)和源IP地址(即服务器12的IP地址)。
示例性的,Leaf2的镜像报文6包括外层报文和内层报文。其中,外层报文包括但不限于:IP Header字段、GRE Header字段和ERSPAN Header字段。外层报文的IP Header字段包括目的IP地址(即服务器22的IP地址)和源IP地址(即Leaf2的IP地址)。ERSPAN Header包括但不限于:Header字段和Subheader字段。其中,Subheader字段中的Platf ID字段携带指定信息(即0x7或0x0),Platform Specific Info字段携带端口23的标识(即Leaf2的端口23的MAC地址,也可以是端口ID等,本申请不做限定),用于指示该镜像报文是Leaf2基于端口23接收到的数据报文2生成的。内层报文即为数据字段,数据字段中承载Leaf2接收到的数据报文2。示例性的,对于Leaf2,Spine1即为数据报文2的发送端。
示例性的,接入位置获取单元接收到多个网络设备发送的镜像报文,包括Leaf1的镜像报文1和镜像报文2、Spine1的镜像报文3和镜像报文4以及Leaf2的镜像报文5和镜像报文5。在该示例中,假设上述多个镜像报文均是在同一个周期内接收到的,相应的,在周期触发时刻,接入位置获取单元可基于上述多个镜像报文,确定各数据报文的发送端是否为用户设备。
S1103,接入位置获取单元基于内层报文的IP地址,对镜像报文进行分组。
示例性的,请参照图14所示的镜像报文的示意图,接入位置获取单元在周期触发时刻,读取本周期内获取到的每个镜像报文的内层报文的IP地址字段中的源IP地址,即数据报文的初始发送端的标识。
接入位置获取单元基于各镜像报文的的内层报文的源IP地址,对镜像报文进行分组。其中,源IP地址相同的镜像报文分为一组。
举例说明,仍参照图13,在该示例中,镜像报文1、镜像报文3和镜像报文5均是基于同一个数据报文(即数据报文1)生成的,相应的,镜像报文1、镜像报文3和镜像报文5的内层报文的源IP地址相同,即均为服务器11的IP地址。接入位置获取单元将镜像报文1、镜像报文3和镜像报文5划分为同一个组(例如镜像报文组1)。
以及,镜像报文2、镜像报文4和镜像报文5均是基于同一个数据报文(即数据报文2)生成的,相应的,镜像报文2、镜像报文4和镜像报文6的内层报文的源IP地址相同,即均为服务器12的IP地址。接入位置获取单元将镜像报文2、镜像报文4和镜像报文6划分为同一个组(例如镜像报文组2)。
S1104,接入位置获取单元基于组内的镜像报文和网络设备的MAC地址,确定用户设备的接入位置。
示例性的,仍参照图14,接入位置获取单元读取同一个组内的镜像报文的Ethernet Header字段中的源MAC地址(即数据报文的发送端的标识),并将读取的源MAC地址与接入位置获取单元预先获取到的系统内的网络设备的MAC地址进行匹配。接入位置获取单元过滤掉匹配成功的源MAC地址所对应的镜像报文。也就是说,过滤掉的镜像报文的数据报文所对应的发送端均为网络设备。仍以图13中的场景为例,示例性的,接入位置获取单元对镜像报文组1(包括镜像报文1、镜像报文3和镜像报文5)进行处理,接入位置获取单元读取到镜像报文1的Ethernet Header字段中的源MAC地址(即服务器11的MAC地址)、镜像报文3的Ethernet Header字段中的源MAC地址(即Leaf1的MAC地址)、以及镜像报文5的Ethernet Header字段中的源MAC地址(即Spine1的MAC地址)。接入位置获取单元将读取到的源MAC地址分别与预先获取到的系统内的网络设备的MAC地址(如表3所示)进行匹配,以过滤掉源MAC地址为网络设备的MAC地址(包括观测范围内的网络设备和非观测范围内的网络设备)的镜像报文。其中,镜像报文3的Ethernet Header字段中的源MAC地址和镜像报文5的Ethernet Header字段中的源MAC地址匹配成功,接入位置获取单元过滤掉镜像报文3和镜像报文5。镜像报文1的Ethernet Header字段中的源MAC地址匹配失败,则镜像报文组1过滤后的镜像报文剩余镜像报文1。
接着,请参照图14,接入位置获取单元读取组内的过滤后的各镜像报文(即组内剩余的镜像报文)的发送端标识,即,镜像报文的外层报文的IP Header字段中的源IP地址。接入位置获取单元检测组内过滤后的各镜像报文的源IP地址是否相同,即,检测过滤后的镜像报文是否均为同一个网络设备(即发送端)发送的。
示例性的,如果组内过滤后的各镜像报文的源IP地址相同,即镜像报文来自同一个网络设备,则接入位置获取单元读取镜像报文的相关字段,以获取用户设备的接入位置信息。具体地,接入位置获取单元读取过滤后的任一镜像报文的内层报文的源IP地址(即数据报文的发送端(即用户设备)的IP地址)、该镜像报文的外层报文的ERSPAN Header字段中的接口信息(即接入点的接收端口标识)以及该镜像报文的外层报文的IP Header字段的源IP地址(即接入点的标识),上述信息即为用户设备的接入位置信息。举例说明,仍参照图13,在该场景中,镜像报文组1过滤后的镜像报文为镜像报文1。接入位置获取单元读取镜像报文1的外层报文的源IP地址,并确定来自同一个网络设备(即Leaf1)。相应的,接入位置获取单元读取镜像报文1的内层报文的源IP地址(即服务器11的IP地址),以获取用户设备的标识,并且,读取镜像报文1的外层报文的ERSPAN Header字段中的接口信息(即Leaf11的端口11的MAC地址),以获取接入点的接收端口标识(也可以称为接入口标识),以及读取镜像报文1的外层报文的IP Header字段的源IP地址(即Leaf1的IP地址),以获取接入点标识。
其中,组内过滤后的各镜像报文的源IP地址不相同的示例将在下面的场景中说明。
一种可能的实现方式中,如果过滤后的镜像报文数量为1,则可直接确定该镜像报文的数据报文的发送端即为用户设备,并且镜像报文的发送端为该用户设备的接入点。举例说明,仍参照图13,在该场景中,镜像报文组1过滤后的镜像报文剩余镜像报文1,则接入位置获取单元即可确定镜像报文1的发送端即为接入点,镜像报文1的数据报文的发送端即为用户设备。相应的,接入位置获取单元读取镜像报文1的相关字段,以获取用户设备(即服务器11)的接入位置信息,具体细节可参照上文,此处不再赘述。
示例性的,在该场景中,接入位置获取单元对镜像报文组2作相同的处理,具体处理流程可参照对镜像报文组1的处理,接入位置获取单元可获取到Leaf1接收到的数据报文的发送端(即服务器12)为用户设备,接入位置获取单元通过读取Leaf1的镜像报文2,获取服务器12的接入位置信息,包括但不限于:服务器12的MAC地址(即用户设备标识)、Leaf1的IP地址(即接入点标识)和Leaf1的端口12的MAC地址(即接入口标识)。
在另一种可能的实现方式中,如果周期内接收到的镜像报文的数量为1,仍需要对其执行图8和/或图11中的流程,以判定镜像报文的数据报文的发送端是否为用户设备。
S1105,接入位置保存单元保存用户设备的接入位置。
在图13所示的场景中,接入位置保存单元可保存服务器11的接入位置信息和服务器12的接入位置信息。具体细节可参照上文实施例的相关步骤,此处不再赘述。
场景五
结合图10(即二层转发场景),在该场景中,使用图11所示的接入位置获取方法,在执行S1104时,接入位置获取单元将具有相同内层报文的源IP地址的镜像报文划分为一组,例如将携带服务器11的IP地址的镜像报文均划分为同一组。接着,接入位置获取单元检测到组内的各镜像报文的数据报文的发送端的标识,即内层报文的Ethernet Header字段中的源MAC地址不属于系统内的任一网络设备,可判定数据报文的发送端均为非网络设备。进一步地,接入位置获取单元读取组内的各镜像报文的外层报文的源IP地址,并检测到各镜像报文的源IP地址不同,即指向多个网络设备(包括Leaf1、Spine1和Leaf2)。则接入位置获取单元无法判断出哪个网络设备为接入点,也无法判断出具体哪个数据报文的发送端为用户设备。
在该示例中,分析单元和接入位置获取单元可异步执行图8中的接入位置获取流程(例如场景二中所描述的流程)。相应的,接入位置可识别出图10所示的二层转发场景中的用户设备和对应的接入位置。
需要说明的是,图8所示的流程与图11所示的流程在异步执行时,其周期触发时刻可以相同或不同,本申请不做限定。
场景六
在本申请实施例中,同一个用户设备还可能接入两个或两个以上网络设备。举例说明,请参照图15所示的应用场景,在该场景中,服务器12接入Leaf1的端口12以及Leaf2的端口24。其它连接关系可参照图12,此处不再赘述。
在该示例中,服务器11发送数据报文1,其传输方式可参照图14中的描述,此处不再赘述。服务器12发送数据报文2,其传输方式可参照图14中的描述,此处不再赘述。以及,服务器12发送数据报文3。具体地,服务器12通过端口E将数据报文3发送给Leaf2,Leaf2通过端口24接收到数据报文3,并将数据报文3通过端口21将数据报文2发送给服务器21。服务器21通过端口C接收到数据报文3。
示例性的,服务器12发送的数据报文3中的Ethernet Hear字段携带目的MAC地址(即Leaf2的MAC地址)和源MAC地址(即服务器12的MAC地址),IP Header字段携带目的IP地址(即服务器21的IP地址)和源IP地址(即服务器12的IP地址),数据字段承载数据。示例性的,服务器12即为数据报文3的初始发送端。
Leaf2通过端口24接收数据报文3。Leaf2对数据报文3进行重新封装,并将重新封装后的数据报文3通过端口21转发给服务器21,以及,Leaf2基于数据报文3生成镜像报文7。示例性的,重新封装后的数据报文3的Ethernet Header字段携带目的MAC地址(即服务器21的MAC地址)和源MAC地址(即Leaf2的MAC地址)。IP Header字段携带目的IP地址(即服务器21的IP地址)和源IP地址(即服务器12的IP地址)。
示例性的,Leaf2的镜像报文7(图中未示出)包括外层报文和内层报文。其中,外层报文包括但不限于:IP Header字段、GRE Header字段和ERSPAN Header字段。外层报文的IPHeader字段包括目的IP地址(即服务器22的IP地址)和源IP地址(即Leaf2的IP地址)。ERSPAN Header包括但不限于:Header字段和Subheader字段。其中,Subheader字段中的Platf ID字段携带指定信息(即0x7或0x0),Platform Specific Info字段携带端口24的标识(即Leaf2的端口24的MAC地址,也可以是端口ID等,本申请不做限定),用于指示该镜像报文是Leaf2基于端口24接收到的数据报文3生成的。内层报文即为数据字段,数据字段中承载Leaf2接收到的数据报文3。示例性的,对于Leaf2,服务器12即为数据报文3的发送端。
在该场景中,接入位置获取单元可单独执行图8或图11所示的接入位置获取流程,也可以异步执行图8或图11所示的接入位置获取流程。本示例中以异步执行两个流程为例进行说明。
示例性的,接入位置获取单元执行图8所示的流程,可识别到服务器11为用户设备,其接入位置为Leaf1的端口11,具体细节可参照上文,此处不再赘述。接入位置获取单元基于Leaf1的镜像报文携带的接口信息,可确定Leaf1从用户侧类型的端口(即端口12)接收到数据报文,相应的,可判定数据报文2的发送端(即服务器12)为用户设备,对应的接入位置为Leaf1的端口12。示例性的,接入位置获取单元基于Leaf2的镜像报文携带的接口信息,可确定Leaf2从用户侧类型的端口(即端口24)接收到数据报文。相应的,可判定数据报文3的发送端(即服务器12)为用户设备,对应的接入位置为Leaf2的端口24。也就是说,接入位置获取获取单元可识别出服务器12在系统中的2个接入位置。
示例性的,接入位置获取单元执行图11所示的流程。接入位置获取单元可获取到服务器11的接入位置信息,获取方式可参照上文,此处不再赘述。示例性的,接入位置获取单元识别到镜像报文2、镜像报文4、镜像报文6以及镜像报文7的内层报文的源IP地址相同,即均为服务器12的IP地址。接入位置获取单元将镜像报文2、镜像报文4、镜像报文6以及镜像报文7划分为同一组。接入位置获取单元基于内层报文的MAC地址,对镜像报文进行过滤。其中,镜像报文2(具体描述可参照图13的相关内容)和镜像报文7的内层报文的源MAC地址均为服务器12的MAC地址,也就是说,镜像报文2(具体描述可参照图13的相关内容)和镜像报文7的内层报文的源MAC地址均指示为非网络设备。接着,接入位置获取单元识别过滤后的各镜像报文(即镜像报文2和镜像报文7)的外层报文的源IP地址。接入位置获取单元检测到镜像报文2的源IP地址指向Leaf1(即为Leaf1的IP地址),镜像报文7的源IP地址指向Leaf2(即为Leaf2的IP地址),即镜像报文2和镜像报文7的源IP地址指向不同的网络设备,也就是说,镜像报文2和镜像报文7来自不同的发送端,接入位置获取单元确定对应于服务器12存在多个接入点。可选地,接入位置获取单元可基于图8流程所获取到的结果,进一步确定服务器12的具体接入位置。
在一种可能的实现方式中,在图11和图8的流程异步执行时,接入位置获取单元可将图8获取到的结果与图11获取到的结果进行比较。例如在图15所示的场景中,接入位置获取单元通过图11和图8所示的流程,均可以获取到服务器11的接入位置,且获取到的结果是相同的,则接入位置获取单元可确定服务器11的接入位置即为Leaf1的接口11。而对于服务器12的接入位置,图8所得到的结果与图11所得到的结果不一致,在本申请实施例中,图8和图11的流程所得到的结果不一致的情况可以包括图15中的情况,即,图11所示的流程获取到用户设备的存在多个接入位置的情况下,可结合图8所示的流程进一步获取用户设备的接入位置。在其他实施例中,图8和图11的流程所得到的结果不一致的情况还可以包括图8判断出数据报文的发送端为用户设备,而图11判断出数据报文的发送端为非用户设备(即网络设备)的情况。具体可参照场景七。
场景七
图16为示例性示出的应用场景示意图。请参照图16,结合图13所示的场景,在图16所示的场景中,Spine1与Leaf2之间设置有防火墙。服务器11发送的数据报文通过Spine 1发送给防火墙,防火墙对数据报文执行安全验证等处理,再将数据报文发送给Leaf2。在本申请实施例中,以防火墙对数据报文的转发为透传方式,即不改变数据报文中的MAC地址为例进行说明,在其他实施例中,防火墙也可以对数据报文进行重新封装,本申请不做限定。
在该场景中,分析单元和接入位置获取单元可执行图8和/或图11中的接入位置获取方法。
在一种可能的实现方式中,在分析单元和接入位置获取单元执行图8所示的接入位置获取方法的过程中,在S801中,由于防火墙在本示例中不发送LLDP信息,相应的,Spine1无法获取到接口32所对应的LLDP信息,则在该示例中,分析单元获取到的Spine1的邻居信息包括但不限于:
端口31的标识-设备标识B-端口13的标识
相应的,在S802中,分析单元基于Spine1的邻居信息,确定端口32为空口,或者是确定端口32所连接的邻居设备为非观测范围内的网络设备。如上文所述,端口连接的邻居设备的标识不属于观测范围内的网络设备的端口,其端口类型为用户侧端口类型。相应的,分析单元确定Spine1的端口32为用户侧端口类型的端口。同理,Leaf2的端口23同样判定为是用户侧端口类型的端口。S801~S802的其它未描述细节可参照上文,此处不再赘述。
请继续参照图16,在S803中,接入位置获取单元可接收到Leaf1、Spine1以及Leaf2发送的镜像报文。具体描述可参照场景一,此处不再赘述。
需要说明的是,在图16中,对于Leaf2,防火墙为其接收到的数据报文的发送端。
在S804中,接入位置获取单元可判断出Leaf1为服务器11的接入点,并获取到服务器11的接入位置信息。具体细节可参照上文,此处不再赘述。示例性的,接入位置获取单元基于Leaf2的镜像报文所携带的接口信息,确定端口23为用户侧端口类型的端口。相应的,接入位置获取单元可确定端口23所连接的邻居设备为用户设备,即,Leaf2通过端口23接收到的数据报文所对应的发送端为用户设备。
示例性的,接入位置获取单元读取Leaf2的镜像报文,获取用户设备的标识(镜像报文的内层报文携带的源IP地址,即为服务器11的IP地址)、接入点标识(即镜像报文的外层报文携带的源IP地址,即Leaf2的IP地址)以及接收端口标识(即镜像报文的外层报文携带的接口信息,即端口23的MAC地址)。即,服务器11的接入位置为Leaf2的端口23。也就是说,在图16所示的场景中,接入位置获取单元通过执行图8所示的流程,检测到Leaf1从端口11接收到的数据报文所对应的发送端为用户设备,并且,Leaf2从端口23接收到的数据报文所对应的发送端同样为用户设备。
在另一种可能的实现方式中,分析单元和接入位置获取单元执行图11所示的流程。接入位置获取单元执行分组操作(具体细节可参照上文,此处不再赘述)之后,基于Leaf2的镜像报文中的内层报文所携带的源MAC地址(即Spine1的MAC地址),确定Leaf2接收到的数据报文的发送端为观测范围内的网络设备,即,Leaf2的镜像报文中的内层报文所携带的源MAC地址包含于接入位置获取单元预先获取到的系统内的网络设备的MAC地址中。相应的,接入位置获取单元基于图11所示的流程的执行结果,可确定Leaf2从端口23接收到的数据报文所对应的发送端为非用户设备,该结果与图8执行后的结果不一致,则,接入位置获取单元以图11执行的结果为准,即确定Leaf2从端口23接收到的数据报文所对应的发送端(即防火墙)为非用户设备。
场景八
本申请实施例中的接入位置获取方法还可以用于用户设备的迁移场景中。仍以图7所示的场景为例,示例性的,假设服务器11从Leaf1的端口11迁移到Leaf2的端口25,即服务器11通过Leaf2的端口25接入系统,以与系统中的其它设备进行通信。
在该示例中,服务器11与Leaf1断开之后,Leaf1向系统内的各网络设备发送LLDP信息,LLDP信息用于指示Leaf1的端口11为空端口。服务器11接入Leaf2的端口25之后,Leaf2可向系统内的各网络设备发送LLDP信息,LLDP信息用于指示Leaf2的端口25连接服务器11。
一种可能的实现方式中,分析单元执行图8中的流程。一个示例中,Leaf1与Leaf2检测到LLDP信息更新,可向分析单元发送邻居信息更新信息。其中,Leaf1的邻居信息更新信息用于指示端口11为空端口。Leaf2的邻居信息更新信息包括但不限于:端口25的标识(即端口25的MAC地址)、邻居设备标识(即服务器11的MAC地址)以及邻居设备的端口标识(即服务器11的端口A),Leaf2的邻居信息更新信息用于指示Leaf2的端口25连接的服务器11的端口A。分析单元可更新本地保存的邻居信息。另一个示例中,分析单元也可以在周期触发时刻,向系统内的各网络设备请求邻居信息。分析单元可基于Leaf1和Leaf2反馈的邻居信息,更新本地保存的邻居信息。
示例性的,分析单元可基于新的邻居信息,执行S802~S805。在该示例中,服务器11的数据报文将发送至Leaf2。Leaf2通过端口25接收到服务器11发送的数据报文,对数据报文进行转发同时,基于该数据报文,生成并发送对应的镜像报文。相应的,接入位置获取单元执行S804时,即可获取到服务器11的接入位置为Leaf2的端口25。接入位置获取单元可基于服务器11的标识,检测接入位置信息列表中已存在服务器11的标识,且已保存的服务器11对应的接入位置信息与当前获取到的接入位置信息不相同。相应的,接入位置获取单元可将新获取到的服务器11的接入位置信息写入到接入位置信息列表中,并对应写入当前时刻(即接入位置信息的写入时间)。这样,在故障排查场景中,管理人员即可获取到服务器11的迁移情况(包括迁移的接入点以及对应时间)。
在另一种可能的实现方式中,分析单元和接入位置单元执行图11中的流程。在执行该流程的过程中,分析单元所维护的观测范围内的网络设备的MAC地址保持不变。接入位置获取单元在执行S1104时,可基于服务器11所发送的数据报文所对应的多个镜像报文,确定服务器11的接入位置,具体实现细节可参照图11中的描述,此处不再赘述。
场景九
本申请实施例中的接入位置获取方法还可以应用于用户设备为虚拟机的场景中。仍以图7中的场景为例,在该示例中,服务器12中的VM1发送原始数据报文,原始数据报文的格式可参照图6a中的隧道内层报文。服务器12中的OVS对VM1的原始数据报文进行重新封装,重新封装后的数据报文(也可以称为隧道报文)的格式可参照图6a。在服务器12的数据报文(即隧道报文)的传输过程中,传输路径上的观测范围内的网络设备向接入位置获取单元发送镜像报文,镜像报文的格式可参照图6b。
一种可能的实现方式中,接入位置获取单元响应于接收到的镜像报文,执行图8中的S804(S801~S803可参照上文,此处不再赘述)。接入位置获取单元基于镜像报文的接口信息,判定数据报文的发送端是否为用户设备,具体细节与S804相同,此处不再赘述。示例性的,接入位置获取单元确定Leaf1接收到的数据报文所对应的发送端为用户设备,可获取用户设备对应的接入位置信息。具体地,接入位置获取单元读取Leaf1的镜像报文的内层报文(即隧道报文)中的隧道内层报文携带的源IP地址(即为用户设备标识),和镜像报文的外层报文携带的源IP地址(即Leaf1的标识)以及接口信息(即接收端口标识),以获取到对应服务器11对应的接入位置信息。
另一种可能的实现方式中,接入位置获取单元响应于接收到的镜像报文,执行图11中的S1104(S1101~S1103与图11中相同,此处不再赘述)。在该步骤中,接入位置获取单元基于各镜像报文的内层报文(即隧道报文或数据报文)的隧道报文内层报文所携带的源IP地址,对镜像报文进行分组,即将源IP地址为VM1的IP地址的镜像报文划分到同一组。在隧道报文传输过程中,各网络设备更新隧道外层报文中的Ehternet Header。相应的,接入位置获取单元可基于镜像报文中的内层报文中的隧道外层报文携带的源MAC地址(即为数据报文的发送端标识),对镜像报文进行过滤,具体过滤方式可参照上文,此处不再赘述。接着,接入位置获取单元基于过滤后的镜像报文的外层报文的源IP地址(即镜像报文的发送端的IP地址),确定用户设备的接入位置。具体细节可参照图11中的描述,此处不再赘述。
这样,本申请实施例中的接入位置获取方法可应用于隧道数据报文的传输场景中,即,对应于虚拟机等通过隧道协议接入系统的用户设备,同样可对其进行准确定位。
场景十
在本申请实施例中,系统中还存在一些非观测范围内的网络设备,例如部署在用户侧的网络设备。以图4中所示的场景为例,路由器X即为非观测范围内的网络设备,即部署在用户侧的路由器。
一种可能的实现方式中,在执行图8所示的流程的过程中,分析单元获取到Leaf3的邻居信息,并检测到路由器X的标识不属于观测范围内的网络设备,则可确定Leaf3连接路由器X的端口为用户侧端口类型。在该示例中,假设服务器41发送数据报文至路由器X,路由器X将数据报文转发是Leaf3。Leaf3对接收到的数据报文进行转发,同时生成并发送镜像报文。接入位置获取单元即可基于Leaf3的镜像报文,判断出Leaf3所接收到的数据报文的发送端(这里是指路由器X)为用户设备。即,Leaf3的镜像报文的数据报文所对应的接收端口为用户侧端口类型,相应的,该接收端口所连接的邻居设备,即数据报文的发送端即为用户设备。
接入位置读取Leaf3的镜像报文的内层报文携带的源IP地址,其中,该源IP地址为服务器41的IP地址。相应的,接入位置读取镜像报文的相关字段(具体细节可参照上文)所获取到的用户设备的接入位置即为服务器41的接入位置。服务器41的接入位置信息包括但不限于:服务器41的标识、Leaf3的标识(即接入点标识)以及接收端口标识(即Leaf3与路由器X的连接端口的标识)。也就是说,在该场景中,服务器41~服务器4n的接入位置是相同的,接入点均为Leaf3对应的接入端口均为Leaf3与路由器X的连接端口。在该示例中可以理解为路由器X对于网络侧而言,其属于用户侧设备,相应的,服务器41~服务器4n的接入位置也可以理解为是路由器X在系统中的接入位置。
另一种可能的实现方式中,在执行图11所示的流程的过程中,仍以服务器41发送的数据报文为例。接入位置获取单元将镜像报文中携带服务器41的IP地址的镜像报文划分为同一组。接着,接入位置获取单元基于该组内的镜像报文的内层报文携带的源MAC地址,对镜像报文进行过滤。其中,Leaf3的镜像报文的内层报文携带的源MAC地址为路由器X的MAC地址,该MAC地址不属于网络侧的网络设备,接入位置获取单元可对携带路由器X的MAC地址所对应的镜像报文执行后续步骤。同样的,接入位置获取单元可确定Leaf3即为用户设备的接入点,并通过读取Leaf3的镜像报文的相关字段,以获取到用户设备的接入位置信息。同样的,接入位置获取到的用户设备的接入位置信息是指服务器41对应的接入位置信息(具体细节可参照上文,此处不再赘述)。
上述主要从各个网元之间交互的角度对本申请实施例提供的方案进行了介绍。可以理解的是,装置为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请实施例能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对装置进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在采用对应各个功能划分各个功能模块的情况下,在采用对应各个功能划分各个功能模块的情况下,图17示出了上述实施例中所涉及的装置1700的一种可能的结构示意图,如图17所示,装置1700包括但不限于:接收单元1701和接入位置获取单元1702。其中,接收单元1701,用于接收网络设备发送的镜像报文。其中,镜像报文为网络设备基于接收到的数据报文生成的,镜像报文中包括网络设备的标识、接收端口标识和数据报文,数据报文中包括数据报文的发送端的标识,接收端口标识用于指示网络设备接收数据报文的接收端口。接入位置获取单元1702,用于基于镜像报文,判断数据报文的发送端是否为用户设备。接入位置获取单元1702,还用于若判定发送端为用户设备,获取用户设备的接入位置信息,接入位置信息包括发送端的标识、网络设备的标识和接收端口标识。
在一种可能的实现方式中,接入位置获取单元1702,具体用于基于镜像报文中的接收端口标识,判断数据报文的发送端是否为用户设备。
在一种可能的实现方式中,接入位置获取单元1702,具体用于基于镜像报文中的发送端的标识,判断数据报文的发送端是否为用户设备。
在一种可能的实现方式中,接收端口的端口类型为用户侧端口类型。
在一种可能的实现方式中,接入位置获取单元1702,具体用于响应于接收到的镜像报文,判定数据报文的发送端为用户设备。
在一种可能的实现方式中,装置还包括分析单元1703,用于:基于第一信息,确定网络中的至少一个网络设备,第一信息中包括网络中各网络设备的端口的端口标识和对应的端口类型,端口类型包括用户侧端口类型和网络设备侧端口类型,至少一个网络设备中的每个网络设备包括用户侧端口类型的端口;向至少一个网络设备发送指示信息,指示信息用于指示至少一个网络设备中的每个网络设备基于每个网络设备的用户侧接口类型的端口接收到的数据报文生成镜像报文。
在一种可能的实现方式中,接入位置获取单元1702,具体用于:基于第一信息和接收端口标识,确定接收端口的端口类型,第一信息包括网络中各网络设备的端口的端口标识和对应的端口类型,端口类型包括用户侧端口类型和网络设备侧端口类型;若接收端口的端口类型为用户侧端口类型,判定发送端为用户设备;若接收端口的端口类型为网络设备侧端口类型,判定发送端为非用户设备。
在一种可能的实现方式中,装置还包括分析单元1703,具体用于:获取第二信息,第二信息包括网络中多个网络设备的标识;获取多个网络设备中的每个网络设备的邻居信息,每个邻居信息包括源网络设备的标识、源网络设备端口标识和邻居设备的标识,源网络设备为发送邻居信息的设备,邻居设备为与源网络设备物理连接的设备,源网络设备端口标识用于指示源网络设备连接邻居设备的端口;基于第二信息和邻居信息,确定每个网络设备的端口的端口类型,端口类型为网络设备侧端口类型的端口连接的邻居设备的标识包含于第二信息中,端口类型为用户侧端口类型的端口连接的邻居设备的标识未包含于第二信息中。
在一种可能的实现方式中,接收单元1701,具体用于:接收多个镜像报文;多个镜像报文来自一个或多个网络设备;发送端的标识包括发送端的IP地址和发送端的MAC地址,接入位置获取单元1702,具体用于:若多个镜像报文中的N个镜像报文携带的发送端的IP地址相同,并且,N个镜像报文携带的发送端的MAC地址未包含于第二信息中,以及N个镜像报文携带的网络设备的标识指示的是同一个网络设备,判定发送端为用户设备,第二信息包括网络中多个网络设备的标识。
在一种可能的实现方式中,接入位置获取单元1702,具体用于:若多个镜像报文中的M个镜像报文携带的发送端的IP地址相同,并且,M个镜像报文携带的发送端的MAC地址未包含于第二信息中,以及,M个镜像报文携带的网络设备的标识指示的是两个或两个以上网络设备,基于镜像报文中的接收端口标识,判断数据报文的发送端是否为用户设备。
在一种可能的实现方式中,接入位置获取单元1702具体用于:基于镜像报文中的接收端口标识和发送端的标识,判断数据报文的发送端是否为用户设备;若基于接收端口标识的判断结果指示发送端为用户设备,而基于发送端的标识的判断结果指示发送端为非用户设备,判定发送端为非用户设备。
在一种可能的实现方式中,装置还包括:接入位置存储单元1704,用于基于发送端的标识,查询用户设备接入信息,用户设备接入信息中包括至少一个用户设备的接入位置信息;接入位置存储单元1704,还用于若用户设备接入信息中已包含发送端的标识对应的用户设备的接入位置信息,且已保存的接入位置信息与当前获取到的接入位置信息不一致,更新用户设备接入信息中发送端的标识对应的用户设备的接入位置信息。
在另一个示例中,图18示出了本申请实施例的一种装置1800的示意性框图。装置1800可以包括:处理器1801和收发器/收发管脚1802,可选地,还包括存储器1803。该处理器1801可用于执行前述的实施例的各方法中的分析单元、接入位置获取单元以及接入位置存储单元所执行的步骤,并控制接收管脚接收信号,以及控制发送管脚发送信号。
装置1800的各个组件通过总线1804耦合在一起,其中总线系统1804除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图中将各种总线都标为总线系统1804。
可选地,存储器1803可以用于前述方法实施例中的存储指令。
应理解,根据本申请实施例的装置1800可对应于前述的实施例的各方法中的分析单元、接入位置获取单元以及接入位置存储单元及所属服务器,并且装置1800中的各个元件的上述和其它管理操作和/或功能分别为了实现前述各个方法的相应步骤,为了简洁,在此不再赘述。
其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
基于相同的技术构思,本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序包含至少一段代码,该至少一段代码可由计算机执行,以控制计算机用以实现上述方法实施例。
基于相同的技术构思,本申请实施例还提供一种计算机程序,当该计算机程序被计算机执行时,用以实现上述方法实施例。
所述程序可以全部或者部分存储在与处理器封装在一起的存储介质上,也可以部分或者全部存储在不与处理器封装在一起的存储器上。
基于相同的技术构思,本申请实施例还提供一种处理器,该处理器用以实现上述方法实施例。上述处理器可以为芯片。
结合本申请实施例公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(Random Access Memory,RAM)、闪存、只读存储器(Read Only Memory,ROM)、可擦除可编程只读存储器(Erasable Programmable ROM,EPROM)、电可擦可编程只读存储器(Electrically EPROM,EEPROM)、寄存器、硬盘、移动硬盘、只读光盘(CD-ROM)或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本申请实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
本申请实施例的说明书和权利要求书中的术语“第一”和“第二”等是用于区别不同的对象,而不是用于描述对象的特定顺序。例如,第一目标对象和第二目标对象等是用于区别不同的目标对象,而不是用于描述目标对象的特定顺序。
在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
在本申请实施例的描述中,除非另有说明,“多个”的含义是指两个或两个以上。例如,多个处理单元是指两个或两个以上的处理单元;多个系统是指两个或两个以上的系统。
上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本申请的保护之内。
Claims (30)
1.一种设备接入位置的获取方法,其特征在于,包括:
接收网络设备发送的镜像报文;其中,所述镜像报文为所述网络设备基于接收到的数据报文生成的,所述镜像报文中包括所述数据报文或者所述数据报文的部分内容,以及,所述网络设备的标识和接收端口标识,所述镜像报文中的数据报文或者所述镜像报文中的数据报文的部分内容中包括所述数据报文的发送端的标识,所述接收端口标识用于指示所述网络设备接收所述数据报文的接收端口;
基于所述镜像报文,判断所述数据报文的发送端是否为用户设备;
若判定所述发送端为所述用户设备,获取所述用户设备的接入位置信息,所述接入位置信息包括所述发送端的标识、所述网络设备的标识和所述接收端口标识。
2.根据权利要求1所述的方法,其特征在于,所述基于所述镜像报文,判断所述数据报文的发送端是否为用户设备,包括:
基于所述镜像报文中的所述接收端口标识,判断所述数据报文的发送端是否为用户设备。
3.根据权利要求1所述的方法,其特征在于,所述基于所述镜像报文,判断所述数据报文的发送端是否为用户设备,包括:
基于所述镜像报文中的所述发送端的标识,判断所述数据报文的发送端是否为用户设备。
4.根据权利要求1所述的方法,其特征在于,所述接收端口的端口类型为用户侧端口类型。
5.根据权利要求4所述的方法,其特征在于,所述基于所述镜像报文,判断所述数据报文的发送端是否为用户设备,包括:
响应于接收到的所述镜像报文,判定所述数据报文的发送端为用户设备。
6.根据权利要求4所述的方法,其特征在于,所述接收网络设备发送的镜像报文之前,所述方法还包括:
基于第一信息,确定网络中的至少一个网络设备,所述第一信息中包括所述网络中各网络设备的端口的端口标识和对应的端口类型,所述端口类型包括用户侧端口类型和网络设备侧端口类型,所述至少一个网络设备中的每个网络设备包括用户侧端口类型的端口;
向所述至少一个网络设备发送指示信息,所述指示信息用于指示所述至少一个网络设备中的每个网络设备基于所述每个网络设备的所述用户侧接口类型的端口接收到的数据报文生成镜像报文。
7.根据权利要求2所述的方法,其特征在于,所述基于所述镜像报文中的接收端口标识,判断所述数据报文的发送端是否为用户设备,包括:
基于第一信息和所述接收端口标识,确定所述接收端口的端口类型,所述第一信息包括网络中各网络设备的端口的端口标识和对应的端口类型,所述端口类型包括用户侧端口类型和网络设备侧端口类型;
若所述接收端口的端口类型为所述用户侧端口类型,判定所述发送端为用户设备;
若所述接收端口的端口类型为网络设备侧端口类型,判定所述发送端为非用户设备。
8.根据权利要求6或7所述的方法,其特征在于,所述接收网络设备发送的镜像报文之前,所述方法还包括:
获取第二信息,所述第二信息包括所述网络中多个网络设备的标识;
获取所述多个网络设备中的每个网络设备的邻居信息,每个邻居信息包括源网络设备的标识、源网络设备端口标识和邻居设备的标识,所述源网络设备为发送所述邻居信息的设备,所述邻居设备为与所述源网络设备物理连接的设备,所述源网络设备端口标识用于指示所述源网络设备连接所述邻居设备的端口;
基于所述第二信息和所述邻居信息,确定每个网络设备的端口的端口类型,端口类型为所述网络设备侧端口类型的端口连接的邻居设备的标识包含于所述第二信息中,端口类型为所述用户侧端口类型的端口连接的邻居设备的标识未包含于所述第二信息中。
9.根据权利要求3所述的方法,其特征在于,所述接收网络设备发送的镜像报文,包括:
接收多个镜像报文;所述多个镜像报文来自一个或多个网络设备;
所述发送端的标识包括所述发送端的IP地址和所述发送端的MAC地址,所述基于所述镜像报文中的所述发送端的标识,判断所述数据报文的发送端是否为用户设备,包括:
若所述多个镜像报文中的N个镜像报文携带的发送端的IP地址相同,并且,所述N个镜像报文携带的发送端的MAC地址未包含于第二信息中,以及所述N个镜像报文携带的网络设备的标识指示的是同一个网络设备,判定所述发送端为用户设备,所述第二信息包括网络中多个网络设备的标识。
10.根据权利要求9所述的方法,其特征在于,所述基于所述镜像报文中的所述发送端的标识,判断所述数据报文的发送端是否为用户设备,还包括:
若所述多个镜像报文中的M个镜像报文携带的发送端的IP地址相同,并且,所述M个镜像报文携带的发送端的MAC地址未包含于所述第二信息中,以及,所述M个镜像报文携带的网络设备的标识指示的是两个或两个以上网络设备,基于所述镜像报文中的所述接收端口标识,判断所述数据报文的发送端是否为用户设备。
11.根据权利要求1所述的方法,其特征在于,所述方法还包括:
基于所述发送端的标识,查询用户设备接入信息,所述用户设备接入信息中包括至少一个用户设备的接入位置信息;
若所述用户设备接入信息中已包含所述发送端的标识对应的用户设备的接入位置信息,且已保存的接入位置信息与当前获取到的接入位置信息不一致,更新所述用户设备接入信息中所述发送端的标识对应的用户设备的接入位置信息。
12.根据权利要求1至11任一项所述的方法,其特征在于,所述数据报文携带传输层控制信息或应用层控制信息。
13.根据权利要求1至12任一项所述的方法,其特征在于,所述数据报文为隧道报文,且所述发送端的标识承载于所述隧道报文的内层报文。
14.根据权利要求1至13任一项所述的方法,其特征在于,所述用户设备为服务器、终端设备或虚拟机。
15.一种设备接入位置的获取装置,其特征在于,包括:
接收单元,用于接收网络设备发送的镜像报文;其中,所述镜像报文为所述网络设备基于接收到的数据报文生成的,所述镜像报文中包括所述数据报文或者所述数据报文的部分内容,以及,所述网络设备的标识和接收端口标识,所述镜像报文中的数据报文或者所述镜像报文中的数据报文的部分内容中包括所述数据报文的发送端的标识,所述接收端口标识用于指示所述网络设备接收所述数据报文的接收端口;
接入位置获取单元,用于基于所述镜像报文,判断所述数据报文的发送端是否为用户设备;
所述接入位置获取单元,还用于若判定所述发送端为所述用户设备,获取所述用户设备的接入位置信息,所述接入位置信息包括所述发送端的标识、所述网络设备的标识和所述接收端口标识。
16.根据权利要求15所述的装置,其特征在于,所述接入位置获取单元,具体用于基于所述镜像报文中的所述接收端口标识,判断所述数据报文的发送端是否为用户设备。
17.根据权利要求15所述的装置,其特征在于,所述接入位置获取单元,具体用于基于所述镜像报文中的所述发送端的标识,判断所述数据报文的发送端是否为用户设备。
18.根据权利要求15所述的装置,其特征在于,所述接收端口的端口类型为用户侧端口类型。
19.根据权利要求18所述的装置,其特征在于,所述接入位置获取单元,具体用于响应于接收到的所述镜像报文,判定所述数据报文的发送端为用户设备。
20.根据权利要求18所述的装置,其特征在于,所述装置还包括分析单元,用于:
基于第一信息,确定网络中的至少一个网络设备,所述第一信息中包括所述网络中各网络设备的端口的端口标识和对应的端口类型,所述端口类型包括用户侧端口类型和网络设备侧端口类型,所述至少一个网络设备中的每个网络设备包括用户侧端口类型的端口;
向所述至少一个网络设备发送指示信息,所述指示信息用于指示所述至少一个网络设备中的每个网络设备基于所述每个网络设备的所述用户侧接口类型的端口接收到的数据报文生成镜像报文。
21.根据权利要求16所述的装置,其特征在于,所述接入位置获取单元,具体用于:
基于第一信息和所述接收端口标识,确定所述接收端口的端口类型,所述第一信息包括网络中各网络设备的端口的端口标识和对应的端口类型,所述端口类型包括用户侧端口类型和网络设备侧端口类型;
若所述接收端口的端口类型为所述用户侧端口类型,判定所述发送端为用户设备;
若所述接收端口的端口类型为网络设备侧端口类型,判定所述发送端为非用户设备。
22.根据权利要求20或21所述的装置,其特征在于,所述装置还包括分析单元,具体用于:
获取第二信息,所述第二信息包括所述网络中多个网络设备的标识;
获取所述多个网络设备中的每个网络设备的邻居信息,每个邻居信息包括源网络设备的标识、源网络设备端口标识和邻居设备的标识,所述源网络设备为发送所述邻居信息的设备,所述邻居设备为与所述源网络设备物理连接的设备,所述源网络设备端口标识用于指示所述源网络设备连接所述邻居设备的端口;
基于所述第二信息和所述邻居信息,确定每个网络设备的端口的端口类型,端口类型为所述网络设备侧端口类型的端口连接的邻居设备的标识包含于所述第二信息中,端口类型为所述用户侧端口类型的端口连接的邻居设备的标识未包含于所述第二信息中。
23.根据权利要求17所述的装置,其特征在于,所述接收单元,具体用于:
接收多个镜像报文;所述多个镜像报文来自一个或多个网络设备;
所述发送端的标识包括所述发送端的IP地址和所述发送端的MAC地址,所述接入位置获取单元,具体用于:
若所述多个镜像报文中的N个镜像报文携带的发送端的IP地址相同,并且,所述N个镜像报文携带的发送端的MAC地址未包含于第二信息中,以及所述N个镜像报文携带的网络设备的标识指示的是同一个网络设备,判定所述发送端为用户设备,所述第二信息包括网络中多个网络设备的标识。
24.根据权利要求23所述的装置,其特征在于,所述接入位置获取单元,具体用于:
若所述多个镜像报文中的M个镜像报文携带的发送端的IP地址相同,并且,所述M个镜像报文携带的发送端的MAC地址未包含于所述第二信息中,以及,所述M个镜像报文携带的网络设备的标识指示的是两个或两个以上网络设备,基于所述镜像报文中的所述接收端口标识,判断所述数据报文的发送端是否为用户设备。
25.根据权利要求15所述的装置,其特征在于,所述装置还包括:
接入位置存储单元,用于基于所述发送端的标识,查询用户设备接入信息,所述用户设备接入信息中包括至少一个用户设备的接入位置信息;
所述接入位置存储单元,还用于若所述用户设备接入信息中已包含所述发送端的标识对应的用户设备的接入位置信息,且已保存的接入位置信息与当前获取到的接入位置信息不一致,更新所述用户设备接入信息中所述发送端的标识对应的用户设备的接入位置信息。
26.根据权利要求15至25任一项所述的装置,其特征在于,所述数据报文携带传输层控制信息或应用层控制信息。
27.根据权利要求15至26任一项所述的装置,其特征在于,所述数据报文为隧道报文,且所述发送端的标识承载于所述隧道报文的内层报文。
28.根据权利要求15至27任一项所述的装置,其特征在于,所述用户设备为服务器、终端设备或虚拟机。
29.一种计算机存储介质,其特征在于,包括计算机指令,当所述计算机指令在计算机上运行时,使得所述计算机执行如权利要求1-14任一项所述的方法。
30.一种计算机程序产品,其特征在于,当所述计算机程序产品在计算机上运行时,使得所述计算机执行如权利要求1-14任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310371599.9A CN118740603A (zh) | 2023-03-30 | 2023-03-30 | 设备接入位置的获取方法及装置 |
PCT/CN2024/083830 WO2024199223A1 (zh) | 2023-03-30 | 2024-03-26 | 设备接入位置的获取方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310371599.9A CN118740603A (zh) | 2023-03-30 | 2023-03-30 | 设备接入位置的获取方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118740603A true CN118740603A (zh) | 2024-10-01 |
Family
ID=92851699
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310371599.9A Pending CN118740603A (zh) | 2023-03-30 | 2023-03-30 | 设备接入位置的获取方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN118740603A (zh) |
WO (1) | WO2024199223A1 (zh) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102883265B (zh) * | 2012-09-20 | 2015-11-25 | 中国联合网络通信集团有限公司 | 接入用户的位置信息发送和接收方法、设备及系统 |
CN107181759B (zh) * | 2017-07-05 | 2020-07-07 | 杭州迪普科技股份有限公司 | 一种用户设备的认证方法及装置 |
WO2023281661A1 (ja) * | 2021-07-07 | 2023-01-12 | 日本電気株式会社 | 情報処理装置、情報処理システム、情報処理方法、及びコンピュータ可読媒体 |
-
2023
- 2023-03-30 CN CN202310371599.9A patent/CN118740603A/zh active Pending
-
2024
- 2024-03-26 WO PCT/CN2024/083830 patent/WO2024199223A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2024199223A1 (zh) | 2024-10-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11979322B2 (en) | Method and apparatus for providing service for traffic flow | |
US10237177B2 (en) | Transfer device and transfer system | |
CN109218178B (zh) | 一种报文处理方法及网络设备 | |
US11184842B2 (en) | Conveying non-access stratum messages over ethernet | |
US9755959B2 (en) | Dynamic service path creation | |
US10284461B2 (en) | Method and related apparatus for probing packet forwarding path | |
US10193707B2 (en) | Packet transmission method and apparatus | |
US8498295B1 (en) | Modular lightweight tunneling mechanisms for transitioning between network layer protocols | |
CN104954245B (zh) | 业务功能链处理方法及装置 | |
CN112787931A (zh) | 报文传输方法、代理节点及存储介质 | |
WO2014176740A1 (zh) | 流分类器、业务路由触发器、报文处理的方法和系统 | |
CN107306215B (zh) | 一种数据处理方法、系统及节点 | |
CN107659484B (zh) | 从vlan网络接入vxlan网络的方法、装置及系统 | |
WO2018171529A1 (zh) | 一种实现双控制平面的方法、装置、计算机存储介质 | |
CN113938405B (zh) | 一种数据处理的方法、装置 | |
CN115426305B (zh) | 报文处理方法、装置、系统及存储介质 | |
US11611506B2 (en) | Processing a flow at the egress node in segment routing | |
CN108075991B (zh) | 报文转发方法及装置 | |
US20230261963A1 (en) | Underlay path discovery for a wide area network | |
CN110022263B (zh) | 一种数据传输的方法及相关装置 | |
CN111404797A (zh) | 控制方法、sdn控制器、sdn接入点、sdn网关及ce | |
WO2024001701A1 (zh) | 数据处理方法、装置及系统 | |
US20220247598A1 (en) | Packet Detection Method, Connectivity Negotiation Relationship Establishment Method, and Related Device | |
CN118740603A (zh) | 设备接入位置的获取方法及装置 | |
CN111770049B (zh) | 全局缓存变量及报文信息存储方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |