CN114338509A - 一种基于带内网络遥测技术的数据包转发环路实时检测系统及检测方法 - Google Patents
一种基于带内网络遥测技术的数据包转发环路实时检测系统及检测方法 Download PDFInfo
- Publication number
- CN114338509A CN114338509A CN202210017402.7A CN202210017402A CN114338509A CN 114338509 A CN114338509 A CN 114338509A CN 202210017402 A CN202210017402 A CN 202210017402A CN 114338509 A CN114338509 A CN 114338509A
- Authority
- CN
- China
- Prior art keywords
- switch
- data packet
- forwarding
- controller
- packet
- 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.)
- Granted
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于带内网络遥测技术的数据包转发环路实时检测系统,包括边缘交换机、中间交换机、控制器三个部分。所述边缘交换机用于向传入的数据包头部插入带内网络遥测INT指令,使该数据包能够在其转发过程中收集遥测信息,并将遥测信息发送给控制器;所述中间交换机通过记录比较信息,完成环路的检测并根据检测结果设置数据包的转发端口号;所述控制器负责分析产生环路时导致环路产生的故障交换机位置,或者未产生环路时,检查数据包的实际转发路径与控制器预期的转发路径是否一致。本发明提供了一种转发环路实时检测方法并可以对交换机进行重新配置。本发明根据数据包转发过程的时序图完成设计,兼顾了数据包转发过程的各个处理阶段。
Description
技术领域
本发明属于INT(In-band Network Telemetry,带内网络遥测)、软件定义网络(Software Defined Network,SDN)技术领域,涉及一种基于带内网络遥测技术的数据包转发环路实时检测系统及检测方法。
背景技术
互联网技术的快速发展,导致网络规模越来越大,随之而来的是不断增加的网络故障。路由环路是由数据包在若干台转发设备中不断循环转发导致的网络故障,这将导致数据包长时间滞留在转发环路中,长时间占用网络链路,影响网络性能,并且增加了这些数据包的延迟、抖动以及丢包率。
在传统网络中,使用TraceRoute分析端到端之间的环路问题,或使用扩散计算解决路由环路。但这些方法的执行效率并不高而且容易出错。随着软件定义网络(SDN)出现,转发策略的集中控制使得转发策略不会再像传统网络中的分布式控制一样产生路由环路。但是由于数据平面转发设备的不可靠性依然存在路由环路问题。基于TTL(Time To Live)统计的路由环路检测算法,使用sFlow统计流信息,判断是否存在周期性特征而达到被动检测路由环路的目的。当网络规模变得庞大时,数据流将是复杂的多样的,使用这种方式进行环路的检测将变得困难。
可编程交换机的出现使得在交换机中处理环路问题成为可能,例如P4(Programmable Protocol-Independent Packets Processor)作为一种特定于定义可编程交换机对于数据包的处理过程的编程语言,它允许程序员自定义数据包在转发设备中的处理方式。FlowRadar使用BloomFilter编码流量计数器,通过监测流量实现瞬时环路的检测。虽然其通过编码的方式降低了内存和带宽的成本,但该方法误报率较高,将影响网络性能。Unroller记录数据包经过路径上交换机的子集来检测路由环路,此方法用到了概率性的算法,将产生一定的误报率,并且其无法在产生转发环路的第一时间发现环路。
随着P4可编程数据平面的发展,INT技术被广泛应用于数据包转发过程中的各种参数监测,例如负载均衡网络监控、故障定位等。INT同样适用于采样数据包转发路径,P4CONSIST在数据平面中利用带内网络遥测实时采集数据包转发路径上的各交换机信息,将遥测数据加入到数据包报头堆栈中转发至接收端,最终将端系统得到的遥测数据发送至分析器分析数据平面实际转发行为与控制器预期转发行为的一致性。
发明内容
为了解决现有技术存在的不足,本发明的目的是提供一种基于带内网络遥测技术的数据包转发环路实时检测系统及检测方法。
本发明探索INT(In-band Network Telemetry,带内网络遥测)技术在数据包转发环路检测方面的应用,设计了一种基于带内网络遥测技术的数据包转发环路实时检测系统及检测方法。该系统能够在数据包转发过程中实时检测是否存在转发环路,在出现环路的第一时间上报错误的出现,并分析导致环路产生的问题所在,快速重新配置出现问题的转发设备。如图1所示,数据包自发送端主机发出后,由边缘交换机接收该数据包,边缘交换机将数据包头部中IPOption字段值设置为31,以表明该数据包在转发过程中要收集转发路径上经过的交换机信息。之后边缘交换机执行与中间交换机相同的步骤。中间交换机接收到数据包后首先提取数据包头部信息,判断数据包头部堆栈中是否包含当前交换机ID,根据检查结果设置元数据中的check字段。若check为true,即当前交换机ID已存在于数据包头部堆栈中,设置数据包转发端口号为CPU_PORT,将数据包转发至控制器;若check为false,则根据目的IP地址来设置数据包转发端口号。交换机在根据设置的转发端口号转发数据包之前,先将遥测数据写入数据包头部堆栈。当下一跳仍然为中间交换机时,执行与上述中间交换机相同的操作;若下一跳为出口边缘交换机,则出口边缘交换机首先执行与中间交换机相同的操作,然后将遥测数据提取并上报至控制器。控制器收到遥测数据或带有遥测数据的数据包后,根据遥测数据内容,查询数据库中存储的数据平面预期转发行为配置,若查询结果遥测数据中实际转发行为不一致,则确认当前出现不一致的交换机为故障交换机,使用预期配置文件重新配置该交换机以消除数据包转发环路。
本发明提供了一种数据包转发环路实时检测系统,如图1所示,src表示发送端,S1、S4表示边缘交换机,S2、S3表示中间交换机,controller表示控制器;
具体包括:
边缘交换机,用于向传入的数据包头部插入带内网络遥测INT指令,使该数据包能够在其转发过程中收集遥测信息(包括交换机ID以及数据包的出入端口号);数据包经过的最后一跳交换机负责从数据包头部堆栈中提取收集到的遥测信息,并将其发送给控制器。
所述边缘交换机将数据包头部的IPOption字段类型值设置为31,以满足中间交换机收集遥测数据的要求。
中间交换机,用于在数据包头部堆栈内记录当前交换机ID以及数据包在当前交换机的出入端口号。通过比较当前交换机ID与数据包头部堆栈中已记录的信息,完成环路的检测并根据检测结果设置数据包的转发端口号。
为了实现转发一致性的验证以及环路的检测,需要在MRI(Multi-Hop RouteInspection,多跳路由检查)报头内收集数据包经过的交换机ID以及数据包在此交换机中的入端口和出端口,格式如下所示:
[swid,inport,outport]
其中,swid表示交换机标识ID,inport表示数据包传入交换机的端口号,outport表示数据包传出交换机的端口号。
数据包处理过程中,当前交换机在转发数据包之前获取表示当前交换机ID的参数,并在数据包头部堆栈中插入当前交换机信息,包括交换机ID,出入端口号。使用元数据中的两个字段count和check分别标识数据包头部堆栈中交换机记录的个数以及是否出现了环路,并且check字段被初始化为false,即初始状态为未出现转发环路。
所述中间交换机在根据数据包的目的IP地址设置转发端口号之前,要先检查数据包头部堆栈中的数据包经过的交换机轨迹,根据当前交换机ID是否在数据包头部堆栈中出现过设置check字段,若当前交换机ID已经存在于数据包头部堆栈,则check字段设置为true,否则仍为默认值false;当check字段为true时,数据包转发端口号设置为CPU_PORT将数据包转发至控制器。
数据包进入交换机后交换机首先解析数据包头部,提取如Ethernet、ipv4等头部字段,随后根据数据包头部堆栈中交换机跟踪信息,判断当前交换机ID是否在数据包头部堆栈的跟踪信息中出现过,若出现过当前交换机ID,则将元数据中的check字段设置为true,表明此时出现数据包转发环路,并将数据包转发至控制器。否则,check字段仍为默认值false,即未出现转发环路,此时根据目的IP地址设置转发端口号,如图3所示即为环路检测流程图。
控制器,负责解析控制器预期转发策略配置文件,并以字典结构存储至数据库。负责分析产生环路时导致环路产生的故障交换机位置,或者未产生环路时,检查数据包的实际转发路径与控制器预期的转发路径是否一致,若不一致则定位发生故障的交换机;此外,在存在故障交换机的情况下,控制器使用预期的JSON配置文件重新配置故障交换机。
边缘交换机和中间交换机均可直接上报环路信息给控制器。
其工作流程如图4所示,控制器接收实际转发路径信息(路径信息为交换机信息集合),若路径信息中存在交换机信息,则将集合中的第一个交换机信息提取出并分割为交换机ID switch ID、目的IP地址dst_ip、入端口号inport以及出端口号outport,随后根据交换机信息查询Redis数据库,若查询结果不为空,则检查查询结果与交换机信息是否匹配,若匹配则继续提取路径中的交换机信息直至路径集合中没有交换机信息。若查询结果不匹配或查询结果为空,说明当前交换机不在控制器预期的转发行为中,出现转发不一致,此时控制器根据预期配置文件重新配置故障交换机。
控制器通过JSON配置文件对软件交换机中的MAT(Match-Action Table)表进行配置。详细的,JSON文件对每个表table配置了匹配match字段以及对应的匹配方式(例如最长前缀匹配),配置了表条目要调用的动作action以及需要传入动作action中的参数值。本发明对JSON配置文件进行解析,并使用字典将数据存入数据库。其中字典的key值对应交换机ID,value值同样使用key-value对存储目的IP地址与入端口inport、出端口outport的一一对应关系。目的IP地址与inport对应了交换机中流表项规则的匹配字段,outport对应了要执行的action的参数。规则字典的存储格式如下所示:
{swid:{ip_mask+inport:outport}}
其中,ip_mask表示在最长前缀匹配方式下的目的IP地址的最长前缀,例如match字段中的"hdr.ipv4.dstAddr":["10.0.4.0",24],将其存储为ip_mask="000010100000000000000100",即"10.0.4.0"对应二进制串的前24位。
当控制器接收到边缘交换机或中间交换机传来的遥测数据时,将从遥测数据中迭代提取交换机ID,目的IP地址,入端口号以及实际的出端口号。然后将IP地址转化为二进制串,从全部的32位开始依次递减与缓存中的预期配置进行匹配查询,将查询到的结果与实际遥测到的转发数据进行比较,直到得到出现不一致的交换机行为为止。
本发明还提出了一种利用上述系统的检测方法,其步骤如下:
S1.边缘交换机接收数据包并执行如下步骤:
步骤S101.入口边缘交换机为数据包添加INT指令,即将IPOption字段值设置为31,如图2所示数据包结构,此结构包括Ethernet头部、IP头部、UDP头部以及数据包负载,同时在IP头部中的options字段包括option字段值位的MRI头部,MRI头部中的swtrace字段即为保存数据包经过的交换机跟踪路径信息的堆栈;
步骤S102.入口边缘交换机判断当前交换机ID是否出现在数据包头部堆栈。若没有,入口边缘交换机则根据目的IP地址设置数据包转发端口号;若已存在,则出现环路,入口边缘交换机将数据包转发端口设置为CPU_PORT将信息上报控制器;
步骤S103.入口边缘交换机根据步骤S102中所设置的数据包转发端口号转发数据包至后续中间交换机或控制器,并在转发数据包前将所需遥测信息压入数据包头部堆栈;
步骤S104.若前述步骤中均未出现在数据包头部堆栈,则最后的出口边缘交换机提取遥测信息并上报控制器。
S2.中间交换机的执行步骤如下:
步骤S201.中间交换机判断当前交换机ID是否出现在数据包头部堆栈。若没有,中间交换机则根据目的IP地址设置数据包转发端口号;若已存在,则出现环路,中间交换机将数据包转发端口设置为CPU_PORT将信息上报控制器。
步骤S202.中间交换机根据步骤S201中所设置的数据包转发端口号转发数据包至后续中间交换机或控制器,并在转发数据包前将所需遥测信息压入数据包头部堆栈。
S3.控制器的执行步骤如下:
步骤S301.控制器从接受到的遥测信息中提取实际转发路径信息;
步骤S302.控制器迭代提取路径中的每跳交换机的信息,包括交换机ID、目的IP地址以及出入端口号;
步骤S303.控制器根据交换机ID及目的IP地址查询数据库中保存的控制器预期转发行为,判断其与实际转发路径是否匹配;
步骤S304.若不匹配,控制器重新下发预期配置文件至发生环路的故障交换机。
本发明提供了一套完整的数据包转发环路实时检测解决方案,该方案具有以下优势:
本发明是一套完整的数据包转发环路的实时发现与快速恢复方案,实现成本较低,具备完整性与可移植性的特征。在实现成本方面,本方法在通信网络中未添加新的转发设备,目前在可编程网络中使用的可编程转发设备,使用本发明实现的P4程序即可实现在数据包转发过程中转发环路的实时检测。这些可编程转发设备可以用于本方法,大大节省本方法的部署成本。本方法根据数据包转发过程的时序图进行设计,兼顾了边缘交换机、中间交换机以及控制器,涵盖了数据包转发过程中的各个处理阶段。本方法通过对P4程序进行设计,实现了能够完成数据包转发环路实时检测的数据包处理器。通过将P4程序中的检测逻辑加入到实现其他协议的P4程序中,可以实现在其他网络环境中的数据包转发环路实时检测,可移植性较好。
附图说明
图1为本发明数据包转发环路实时检测时序图。
图2为本发明数据包结构图。
图3为本发明Ingress Pipeline中的路由环路检测流程图。
图4为本发明控制器的故障交换机检测流程图。
图5为本发明应用场景示例。
具体实施方式
结合以下具体实施例和附图,对本发明作进一步的详细说明。实施本发明的过程、条件、实验方法等,除以下专门提及的内容之外,均为本领域的普遍知识和公知常识,本发明没有特别限制内容。
请参阅图1,边缘交换机S1接收来自发送端的用户数据包,并对接收到的数据包进行修改并完成环路检测及遥测数据收集动作,最终将数据包发送至下一跳的中间交换机S2,中间交换机完成相同操作,最终由边缘交换机S4将遥测数据提取并发送至控制器controller。本实施例提供一种基于带内网络遥测技术的数据包转发环路实时检测系统,其特征在于,包括:
边缘交换机S1、S4,用于向传入的数据包头部插入INT(In-band NetworkTelemetry,带内网络遥测)指令,使该数据包能够在其转发过程中收集遥测信息(包括交换机ID以及数据包的出入端口号);数据包经过的最后一跳交换机负责从数据包头部堆栈中提取收集到的遥测信息,并将其发送给控制器;
中间交换机S2、S3,用于在数据包头部堆栈内记录当前交换机ID以及数据包在当前交换机的出入端口号。通过比较当前交换机ID与数据包头部堆栈中已记录的信息,完成环路的检测并根据检测结果设置数据包的转发端口号。
控制器controller,负责分析产生环路时导致环路产生的故障交换机位置,或者未产生环路时,检查数据包的实际转发路径与控制器预期的转发路径是否一致,若不一致则定位发生故障的交换机;此外,在存在故障交换机的情况下,控制器使用预期的JSON配置文件重新配置故障交换机。
请参阅图1、图2、图3、图4,本发明公开了一种基于INT技术的数据包转发环路实时检测方法,该方法利用带内网络遥测技术以及可编程数据平面能够通过自定义方式处理数据包的特点。该方法通过在数据包转发过程中向数据包头部堆栈写入当前交换机信息并检查当前交换机ID是否在数据包头部堆栈中出现过,实时判定有无转发环路的存在,能够及时发现转发环路并上报给控制器。此外,本发明还设计了一种快速定位造成转发环路的故障交换机位置并重新配置故障交换机的方法以消除网络内的转发环路。本发明通过将控制器预期转发行为与数据包的实际转发行为进行比较,找到数据包实际转发路径中与预期转发行为不一致的交换机,并重新配置该交换机。包括:
S1.边缘交换机S1接收数据包并执行如下步骤:
步骤S101.S1为数据包添加INT指令,即将IPOption字段值设置为31,形成如图2所示的数据包结构。
步骤S102.S1判断当前交换机ID是否出现在数据包头部堆栈。若没有,则根据目的IP地址设置数据包转发端口号;若已存在,则出现环路,边缘交换机将数据包转发端口设置为CPU_PORT将信息上报控制器。
步骤S103.S1根据步骤S102所设置的数据包转发端口号转发数据包至后续中间交换机或控制器,并在转发前向数据包头部堆栈压入遥测数据。
S2.中间交换机S2、S3处理数据包执行步骤如下:
步骤S201.中间交换机判断当前交换机ID是否出现在数据包头部堆栈。若没有,中间交换机则根据目的IP地址设置数据包转发端口号;若已存在,则出现环路,中间交换机将数据包转发端口设置为CPU_PORT将信息上报控制器,转发环路检测流程如图3所示。
步骤S202.根据步骤S201所设置的数据包转发端口号转发数据包至中间交换机或控制器。当mri(Multi-Hop Route Inspection,多跳路由检查)头部字段有效时,即数据包头部插入了INT指令,表明该数据包应当收集遥测数据,中间交换机在转发数据包前完成向数据包头部堆栈中写入遥测数据的操作。
S3.控制器执行如图4所示的流程,控制器对JSON配置文件进行解析,并使用字典将数据存入Redis数据库。其中字典的key值对应交换机ID,value值同样使用key-value对存储目的IP地址与入端口inport、出端口outport的一一对应关系。目的IP地址与inport对应了交换机中流表项规则的匹配字段,outport对应了要执行的动作action的参数。ip_to_bits函数实现了IP地址向二进制字符串的转换。规则字典的存储格式如下所示:
{swid:{ip_mask+inport:outport}}
其中,ip_mask表示在最长前缀匹配方式下的目的IP地址的最长前缀,例如match字段中的"hdr.ipv4.dstAddr":["10.0.4.0",24],将其存储为ip_mask="000010100000000000000100",即"10.0.4.0"对应二进制串的前24位。
当控制器接收到边缘交换机或中间交换机传来的遥测数据时,将从遥测数据中迭代提取交换机ID,目的IP地址,入端口号以及实际的出端口号。然后将IP地址转化为二进制串,从全部的32位开始依次递减与缓存中的预期配置进行匹配查询,将查询到的结果与实际遥测到的转发数据进行比较,直到得到出现不一致的交换机行为为止。执行步骤如下:
步骤S301.控制器从接受到的遥测信息中提取实际转发路径信息;
步骤S302.控制器迭代提取路径中的每跳交换机的信息,包括交换机ID、目的IP地址以及出入端口号;
步骤S303.控制器根据交换机ID及目的IP地址查询数据库中保存的控制器预期转发行为,判断其与实际转发路径是否匹配;
步骤S304.若不匹配,控制器重新下发预期配置文件至故障交换机。
S4.边缘交换机S4接收数据包并执行以下步骤:
步骤S401.边缘交换机S4首先执行与中间交换机相同的操作;
步骤S402.边缘交换机S4提取遥测数据并上报控制器。
结合附图,本发明的使用方法如下:首先边缘交换机S1需要对接收到的数据包进行修改,即插入INT指令,形成如图2所示的数据包结构,该数据包需要能够在其头部堆叠遥测数据。随后数据包进入中间交换机S2、S3,根据已经配置在可编程交换机中的P4程序所定义的流程开始处理数据包,包括Parser解析数据包头部,入口Ingress与出口Egress控制流程等,在此过程中P4程序会根据是否出现环路设置数据包的转发端口,以达到对处在环路中的数据包的处理目的。对于不存在环路的情况,数据包将会正常转发至最终的边缘交换机S4,无论实际转发行为是否与控制器预期的转发策略一致。边缘交换机S4将接收到的携带遥测数据的数据包发送到控制器controller。最终将由控制器controller根据遥测数据中的实际转发行为与控制器预期策略进行对比,完成数据-控制平面的转发一致性验证,如图4所示流程。若在数据包转发过程中检测到环路的存在,中间交换机S2或S3将会上报控制器controller,以进行下一步的处理。控制器controller同样接收到携带有遥测数据的数据包,尽管在转发过程中出现了转发环路,控制器controller将根据数据包头中的遥测数据定位导致环路产生的故障交换机,重新下发转发策略到此故障交换机。
本发明实现了INT技术在数据包转发环路检测方面的应用,设计一种基于INT技术的数据包转发环路实时检测系统。该系统能够在数据包转发过程中实时检测是否存在转发环路,在出现环路的第一时间上报错误的出现,并分析导致环路产生的问题所在,快速重新配置出现问题的转发设备。解决了数据包在若干台转发设备中不断循环转发导致的路由环路问题,保障了网络的可靠运行,保证了通信的效率与网络性能。
在如图5所示的网络拓扑下,控制器预期的转发为:由发送端主机src发往目的主机dst的数据包将经由交换机S1,S2,S4转发至目的主机dst。但由于S4遭受攻击或被错误配置使得数据包在S3与S4之间无限循环形成数据包转发环路。利用本发明设计的基于INT技术的数据包转发环路实时检测系统,数据包经过边缘交换机S1时,S1在数据包头部插入带内网络遥测INT指令,并将S1记录在数据包头部堆栈。在数据包第一次经过交换机S4时数据包头部堆栈中的路径为[S1,S2],数据包第一次经过S3时数据包头部堆栈中的路径为[S1,S2,S4]。当数据包再次转发至S4,此时数据包头部堆栈中的路径为[S1,S2,S4,S3],交换机S4应用check表处理数据包时,会及时发现当前交换机ID已经出现在数据包头部堆栈中,即此时出现数据包转发环路,从而数据包被转发至控制器并由控制器重新配置故障交换机,即本实施场景中的S4,以消除数据包转发环路。
本发明的保护内容不局限于以上实施例。在不背离本发明构思的精神和范围下,本领域技术人员能够想到的变化和优点都被包括在本发明中,并且以所附的权利要求书为保护范围。
Claims (9)
1.一种基于带内网络遥测技术的数据包转发环路实时检测系统,其特征在于,包括:
边缘交换机,用于向传入的数据包头部插入带内网络遥测INT指令,使该数据包能够在其转发过程中收集包括交换机ID以及数据包的出入端口号的遥测信息;数据包经过的最后一跳交换机负责从数据包头部堆栈中提取收集到的遥测信息,并将其发送给控制器;
中间交换机,用于在数据包头部堆栈内记录当前交换机ID以及数据包在当前交换机的出入端口号;通过比较当前交换机ID与数据包头部堆栈中已记录的信息,完成环路的检测并根据检测结果设置数据包的转发端口号;
控制器,负责分析产生环路时导致环路产生的故障交换机位置,或者未产生环路时,检查数据包的实际转发路径与控制器预期的转发路径是否一致,若不一致则定位发生故障的交换机;此外,在存在故障交换机的情况下,控制器使用预期的JSON配置文件重新配置故障交换机。
2.根据权利要求1所述的基于带内网络遥测技术的数据包转发环路实时检测系统,其特征在于,所述边缘交换机将数据包头部的IPOption字段类型值设置为31,以满足中间交换机收集遥测数据的要求。
3.根据权利要求1所述的基于带内网络遥测技术的数据包转发环路实时检测系统,其特征在于,所述中间交换机在数据包头部堆栈中记录的信息格式如下:
[swid,inport,outport],
其中,swid表示交换机标识ID,inport表示数据包进入交换机的端口号,outport表示数据包转发出交换机的端口号。
4.根据权利要求1所述的基于带内网络遥测技术的数据包转发环路实时检测系统,其特征在于,数据包处理过程中,当前交换机在转发数据包之前获取表示当前交换机ID的参数,并在数据包头部堆栈中插入当前交换机信息,包括交换机ID,出入端口号。
5.根据权利要求1所述的基于带内网络遥测技术的数据包转发环路实时检测系统,其特征在于,所述中间交换机在数据包处理过程中的元数据中加入count和check字段,分别用于标识数据包头部堆栈中交换机记录的个数以及数据包经过此交换机时是否出现转发环路,并且所述check字段被初始化为false,即初始状态为未出现转发环路。
6.根据权利要求5所述的基于带内网络遥测技术的数据包转发环路实时检测系统,其特征在于,所述中间交换机在根据数据包的目的IP地址设置转发端口号之前,要先检查数据包经过的交换机轨迹,根据当前交换机ID是否在数据包头部堆栈中出现过设置check字段,若当前交换机ID已经存在于数据包头部堆栈,则check字段设置为true,否则仍为默认值false;当check字段为true时,数据包转发端口号设置为CPU_PORT将数据包转发至控制器。
7.根据权利要求1或6所述的基于带内网络遥测技术的数据包转发环路实时检测系统,其特征在于,所述控制器从遥测数据中迭代提取交换机ID、目的IP地址、入端口号以及实际的出端口号;然后将IP地址转化为二进制串,从全部的32位开始依次递减与缓存中的预期配置进行匹配查询,将查询到的结果与实际遥测到的转发数据进行比较,直到得到出现不一致的交换机行为为止。
8.一种利用如权利要求1-7之任一项所述实时检测系统的检测方法,其特征在于,所述方法包括以下步骤:
S1.边缘交换机接收数据包并执行如下步骤:
步骤S101.入口边缘交换机为数据包添加INT指令,即将IPOption字段值设置为31;
步骤S102.入口边缘交换机判断当前交换机ID是否出现在数据包头部堆栈;若没有,入口边缘交换机则根据目的IP地址设置数据包转发端口号;若已存在,则出现环路,入口边缘交换机将数据包转发端口设置为CPU_PORT将信息上报控制器;
步骤S103.入口边缘交换机根据步骤S102所设置的数据包转发端口号转发数据包至后续中间交换机或控制器,并在转发数据包前将所需遥测信息压入数据包头部堆栈;
步骤S104.若前述步骤中均未出现在数据包头部堆栈,则最后的出口边缘交换机提取遥测信息并上报控制器;
S2.中间交换机的执行步骤如下:
步骤S201.中间交换机判断当前交换机ID是否出现在数据包头部堆栈;若没有,中间交换机则根据目的IP地址设置数据包转发端口号;若已存在,则出现环路,中间交换机将数据包转发端口设置为CPU_PORT将信息上报控制器;
步骤S202.中间交换机根据步骤S201所设置的数据包转发端口号转发数据包至后续中间交换机或控制器,并在转发数据包前将所需遥测信息压入数据包头部堆栈;
S3.控制器的执行步骤如下:
步骤S301.控制器从接受到的遥测信息中提取实际转发路径信息;
步骤S302.控制器迭代提取路径中的每跳交换机的信息,包括交换机ID、目的IP地址以及出入端口号;
步骤S303.控制器根据交换机ID及目的IP地址查询数据库中保存的控制器预期转发行为,判断其与实际转发路径是否匹配;
步骤S304.若不匹配,控制器重新下发预期配置文件至故障交换机。
9.根据权利要求8所述的检测方法,其特征在于,步骤S303中,所述控制器中的数据库中存储的为控制器下发至可编程交换机的JSON配置文件,在控制器中将JSON配置文件解析并以如下形式存储在数据库:
{swid:{ip_mask+inport:outport}},
其中,swid表示交换机标识ID,ip_mask表示带有掩码位数的IP地址,inport表示数据包传入端口号,outport表示数据包传出端口号。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210017402.7A CN114338509B (zh) | 2022-01-07 | 2022-01-07 | 一种基于带内网络遥测技术的数据包转发环路实时检测系统及检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210017402.7A CN114338509B (zh) | 2022-01-07 | 2022-01-07 | 一种基于带内网络遥测技术的数据包转发环路实时检测系统及检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114338509A true CN114338509A (zh) | 2022-04-12 |
CN114338509B CN114338509B (zh) | 2023-07-14 |
Family
ID=81024696
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210017402.7A Active CN114338509B (zh) | 2022-01-07 | 2022-01-07 | 一种基于带内网络遥测技术的数据包转发环路实时检测系统及检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114338509B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115442275A (zh) * | 2022-07-27 | 2022-12-06 | 北京邮电大学 | 基于分级可信流的混合遥测方法和系统 |
CN116095024A (zh) * | 2023-01-19 | 2023-05-09 | 海光信息技术股份有限公司 | 验证方法、装置、电子设备和计算机可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040085972A1 (en) * | 2002-07-02 | 2004-05-06 | Vixel Corporation | Methods and apparatus for trunking in fibre channel arbitrated loop systems |
US20060053139A1 (en) * | 2004-09-03 | 2006-03-09 | Red Hat, Inc. | Methods, systems, and computer program products for implementing single-node and cluster snapshots |
CN109672591A (zh) * | 2019-01-21 | 2019-04-23 | 中国科学技术大学 | 实时可编程的抽样带内网络遥测的方法 |
CN112422498A (zh) * | 2020-09-04 | 2021-02-26 | 网络通信与安全紫金山实验室 | 一种带内网络遥测方法、系统及计算机可读存储介质 |
US20210226879A1 (en) * | 2020-01-16 | 2021-07-22 | Cisco Technology, Inc. | Diagnosing and resolving issues in a network using probe packets |
-
2022
- 2022-01-07 CN CN202210017402.7A patent/CN114338509B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040085972A1 (en) * | 2002-07-02 | 2004-05-06 | Vixel Corporation | Methods and apparatus for trunking in fibre channel arbitrated loop systems |
US20060053139A1 (en) * | 2004-09-03 | 2006-03-09 | Red Hat, Inc. | Methods, systems, and computer program products for implementing single-node and cluster snapshots |
CN109672591A (zh) * | 2019-01-21 | 2019-04-23 | 中国科学技术大学 | 实时可编程的抽样带内网络遥测的方法 |
US20210226879A1 (en) * | 2020-01-16 | 2021-07-22 | Cisco Technology, Inc. | Diagnosing and resolving issues in a network using probe packets |
CN112422498A (zh) * | 2020-09-04 | 2021-02-26 | 网络通信与安全紫金山实验室 | 一种带内网络遥测方法、系统及计算机可读存储介质 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115442275A (zh) * | 2022-07-27 | 2022-12-06 | 北京邮电大学 | 基于分级可信流的混合遥测方法和系统 |
CN115442275B (zh) * | 2022-07-27 | 2024-02-27 | 北京邮电大学 | 基于分级可信流的混合遥测方法和系统 |
CN116095024A (zh) * | 2023-01-19 | 2023-05-09 | 海光信息技术股份有限公司 | 验证方法、装置、电子设备和计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114338509B (zh) | 2023-07-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11038744B2 (en) | Triggered in-band operations, administration, and maintenance in a network environment | |
Tan et al. | In-band network telemetry: A survey | |
Ghasemi et al. | Dapper: Data plane performance diagnosis of tcp | |
KR101098744B1 (ko) | 장애의 탐지 및 진단 | |
JP6419967B2 (ja) | ネットワーク管理のためのシステムおよび方法 | |
Yu et al. | {dShark}: A general, easy to program and scalable framework for analyzing in-network packet traces | |
CN114338509B (zh) | 一种基于带内网络遥测技术的数据包转发环路实时检测系统及检测方法 | |
Alimi et al. | Shadow configuration as a network management primitive | |
EP3497886B1 (en) | Localizing network faults through differential analysis of tcp telemetry | |
CN102884768A (zh) | 通信系统、控制装置、分组捕获方法和分组捕获程序 | |
CN115118663B (zh) | 结合带内网络遥测获取网络拥塞信息的方法 | |
Qiu et al. | Global Flow Table: A convincing mechanism for security operations in SDN | |
US7391739B1 (en) | System and method for creating a frame relay port mirror | |
Guo et al. | FullSight: A feasible intelligent and collaborative framework for service function chains failure detection | |
US10338544B2 (en) | Communication configuration analysis in process control systems | |
Zhi et al. | Med: The monitor-emulator-debugger for software-defined networks | |
Polverini et al. | Investigating on black holes in segment routing networks: Identification and detection | |
Handigol | Using packet histories to troubleshoot networks | |
CN116996392B (zh) | 一种基于加权有向图算法的流量路径重构方法及系统 | |
Belkhiri et al. | Diagnostic and troubleshooting of OpenFlow‐enabled switches using kernel and userspace traces | |
JP2017216613A (ja) | 転送装置および転送方法 | |
Cajas et al. | On programming an MP-TCP analyzer plugin using OpenDayLight Beryllium as the SDN controller | |
EP3474489B1 (en) | A method and a system to enable a (re-)configuration of a telecommunications network | |
Guo et al. | FullSight: A deep learning based collaborated failure detection framework of service function chain | |
CN111865814B (zh) | 一种软件定义网络中异常转发流量的自动化过滤方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |