当前位置: 首页 > 专利查询>清华大学专利>正文

可编程路由交换设备在线调试装置及方法制造方法及图纸

技术编号:17709580 阅读:63 留言:0更新日期:2018-04-14 21:12
本发明专利技术涉及互联网技术领域,公开了一种可编程路由交换设备在线调试装置,调试接口管理器、检测点管理器、可编程设备管理器和调试消息管理器;调试接口管理器负责接收来上层调试应用的指令;检测点管理器用于监听来自调试接口管理器的命令,若有检测点的相关指令,则执行相关的指令;可编程设备管理器用于接收来自调试接口管理器的设备管理相关的指令,以管理被调试的网络设备;调试消息管理器用于接收来自数据平面检测点的调试消息,并将调试消息通过调试接口管理器汇报给应用层的高级调试应用,还公开了一种调试方法。本发明专利技术可以使程序员通过详细的内部状态快速地定位P4程序中存在的漏洞。

【技术实现步骤摘要】
可编程路由交换设备在线调试装置及方法
本专利技术涉及互联网
,特别涉及一种可编程路由交换设备在线调试装置及方法。
技术介绍
协议无关的数据包处理器(Protocol-independentPacketProcessor,P4)语言是一种专门用于编写可编程路由交换设备程序的领域特定语言,使程序员能够灵活地定义可编程网络设备的数据包处理行为,并根据策略需求在高性能硬件转发设备快速地实现指定的功能。目前,学术界和工业界的实践已证明,多种网络功能,包括负载均衡、网络地址转换,网络攻击检测防御等,都可以用P4语言在高性能可编程设备上实现。而在传统网络中,这些网络功能往往是由专用硬件平台或软件平台所实现。而利用P4在可编程网络设备上实现这些网络功能,一方面提供了较高的灵活性和可编程性,使程序员能够像软件平台一样定制满足特定场景需求的网络功能;另一方面,可编程网络设备拥有能与专用网络功能设备相媲美的性能优势。因此,利用可编程路由交换设备实现网络功能兼顾了灵活性和性能,已经成为了一种重要发展趋势,具备不可忽视的社会经济效益。P4语言为程序员提供了多种可编程元素:(1)数据包解析器(Parser)使程序员能够定制任意的数据包的协议格式和解析逻辑;(2)匹配动作表(Match-actionTable,MAT)使程序员可以灵活地设置匹配动作表的匹配域和每个匹配域对应的匹配类型,以及利用P4语言提供的动作原语构造复合动作;(3)可编程控制流(ControlFlow)使编程者通过简单的控制逻辑在可编程网络设备的流水线(Pipeline)中定义各个匹配动作表执行关系。除此之外,P4语言也提供了寄存器(Register),计数器(Counter)等元素实现更复杂的数据包处理逻辑。通过P4语言提供的上述可编程元素,程序员可以根据网络的特定需求灵活地定制可编程网络设备的数据包处理行为,提升网络的安全性和整体性能。随着由P4所实现的网络功能越来复杂,P4程序不可避免地存在漏洞。但是由于可编程路由交换设备的封闭性,很多内部状态对程序员是不可见的,造成了运行在可编程路由交换设备的P4程序难以调试的问题;其次相比于C/C++等通用编程语言,领域特定语言P4抽象层次较高,不能给程序员提供有效的调试手段和工具,进一步增加了P4程序的调试难度;并且随着越来越多的网络功能由P4语言实现,P4程序的规模和复杂性逐渐增长,这进一步增加了P4程序在实际网络环境的调试难度。目前尚未有可应用于P4语言以及可编程网络设备的完善的调试工具,程序员只能手工寻找P4程序中存在的漏洞,但这需要程序员投入大量的精力和时间。
技术实现思路
(一)要解决的技术问题本专利技术要解决的技术问题是:如何方便地调试P4程序。(二)技术方案为解决上述技术问题,本专利技术提供了一种可编程路由交换设备在线调试装置,包括:调试接口管理器、检测点管理器、可编程设备管理器和调试消息管理器;调试接口管理器负责接收来上层调试应用的指令;检测点管理器用于监听来自调试接口管理器的命令,若有检测点的相关指令,则执行相关的指令;可编程设备管理器用于接收来自调试接口管理器的设备管理相关的指令,以管理被调试的网络设备;调试消息管理器用于接收来自数据平面检测点的调试消息,并将调试消息通过调试接口管理器汇报给应用层的高级调试应用,所述数据平面检测点用于将可编程元素运行时的状态作为所述调试消息上传。其中,所述数据平面检测点包括:Watch检测点,用于上传MAT的数据表项和该检测点的标识符;Break检测点,用于在指定流程触发时,向调试平台展示数据平面的状态;Predication检测点,用于展示在预测表达式中引用的可编程元件,若原始的MAT没有任何预测表达式,则预测步骤将不会执行任何操作,只将流程传递给匹配步骤;Match检测点,用于展示匹配步骤中指定流的匹配字段和值;Action检测点,用于展示在执行步骤中已采取的动作和参数。还公开了一种利用上述可编程路由交换设备在线调试装置的调试方法,包括步骤:S1:所述检测点管理器将P4程序源代码加载到可编程路由交换设备上进行调试,并返回调试实例;S2:所述检测点管理器在调试实例中利用watch原语向异常流量路径插入watch检测点,以显示指定流的在整个网络级视图中的转发路径;S3:所述检测点管理器根据指定流中数据包在网络级视图中的转发路径找到异常转发设备;S4:所述检测点管理器在所述异常转发设备中利用watch检测点找到异常行为的匹配动作表MAT;S5:所述检测点管理器利用Break检测点对该MAT进行细粒度观察,以定位错误的可编程元素。其中,所述步骤S5中细粒度观察包括:在所述匹配动作表MAT插入Predication检测点、Match检测点以及Action检测点,并利用Next原语分步观察MAT的Predication步骤,Match步骤以及Action步骤直到定位错误的可编程元素。其中,所述步骤S1中,通过Bind原语以P4程序ID和设备ID为参数在可编程路由交换设备上加载P4程序源代码。其中,所述步骤S2中,所述watch原语以调试实例ID和指定流的流定义为参数,根据流定义在指定调试实例内部插入Watch检测点。(三)有益效果本专利技术的装置和方法中通过数据平面检测点实时地为程序员提供各种可编程元素的运行状态,程序员可以通过详细的内部状态快速地定位P4程序中存在的漏洞。附图说明图1为本专利技术的可编程路由交换设备在线调试装置整体架构图;图2为匹配动作表分解示意图;图3为利用本专利技术方法调试的一种调试实施图。具体实施方式下面结合附图和实施例,对本专利技术的具体实施方式作进一步详细描述。以下实施例用于说明本专利技术,但不用来限制本专利技术的范围。本专利技术提出数据平面检测点来实时获取P4程序可编程元素的运行时状态。此外,本专利技术使用指令检测点的不同组合来实现用户友好的调试原语,程序员使用高级调试原语将数据平面检测点嵌入到P4程序中,并在运行时调试P4程序。本专利技术的整体架构图1所示,提供面向P4的高级调试接口,程序员可以基于该接口开发自动化调试工具以及交互式调试工具等调试应用。同时,在控制平面中,本专利技术在集中式控制器的基础上实现P4Debugger调试平台。P4Debugger调试平台对上提供高级调试原语,对下提供处理来自检测点消息的能力。最后,在数据平面,P4Debugger提供了匹配动作表分解技术,实现了更细粒度的数据包处理行为监控,并且提供了数据平面检测点来实时收集可编程路由交换设备的状态。具体地,P4Debugger调试平台包括:调试接口管理器、检测点管理器、可编程设备管理器和调试消息管理器,调试接口管理器负责接收来上层调试应用的指令(上层调试应用由网络管理员实现)。检测点管理器则负责监听来自调试接口管理器的命令,如果有检测点的相关指令(例如:插入和删除检测点),则执行相关的指令。可编程设备管理器用于接收来自调试接口管理器的设备管理相关的指令,负责管理被调试的网络设备,例如:设置可编程设备的转发策略。调试消息管理器则是接受来自数据平面检测点的调试消息,并将调试消息通过调试接口管理器汇报给应用层的高级调试应用。所述数据平面检测点包括:Watch检测点,用于上传MAT的数据表项和该检测点的标识本文档来自技高网
...
可编程路由交换设备在线调试装置及方法

【技术保护点】
一种可编程路由交换设备在线调试装置,其特征在于,包括:调试接口管理器、检测点管理器、可编程设备管理器和调试消息管理器;调试接口管理器负责接收来上层调试应用的指令;检测点管理器用于监听来自调试接口管理器的命令,若有检测点的相关指令,则执行相关的指令;可编程设备管理器用于接收来自调试接口管理器的设备管理相关的指令,以管理被调试的网络设备;调试消息管理器用于接收来自数据平面检测点的调试消息,并将调试消息通过调试接口管理器汇报给应用层的高级调试应用,所述数据平面检测点用于将可编程元素运行时的状态作为所述调试消息上传。

【技术特征摘要】
1.一种可编程路由交换设备在线调试装置,其特征在于,包括:调试接口管理器、检测点管理器、可编程设备管理器和调试消息管理器;调试接口管理器负责接收来上层调试应用的指令;检测点管理器用于监听来自调试接口管理器的命令,若有检测点的相关指令,则执行相关的指令;可编程设备管理器用于接收来自调试接口管理器的设备管理相关的指令,以管理被调试的网络设备;调试消息管理器用于接收来自数据平面检测点的调试消息,并将调试消息通过调试接口管理器汇报给应用层的高级调试应用,所述数据平面检测点用于将可编程元素运行时的状态作为所述调试消息上传。2.根据权利要求1所述的可编程路由交换设备在线调试装置,其特征在于,所述数据平面检测点包括:Watch检测点,用于上传MAT的数据表项和该检测点的标识符;Break检测点,用于在指定流程触发时,向调试平台展示数据平面的状态;Predication检测点,用于展示在预测表达式中引用的可编程元件,若原始的MAT没有任何预测表达式,则预测步骤将不会执行任何操作,只将流程传递给匹配步骤;Match检测点,用于展示匹配步骤中指定流的匹配字段和值;Action检测点,用于展示在执行步骤中已采取的动作和参数。3.一种利用权利要求2所述的可编程路由交换设备在线调试装置的调试方法,其特征在于,...

【专利技术属性】
技术研发人员:毕军周禹张程喻明理
申请(专利权)人:清华大学
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1