RYU RESTAPI的使用

在使用RYU的过程中,有时需要使用web拓扑,有时也需要通过API去下发流表等操作。这些操作在RYU中都会使用到RESTAPI。在学习RYU的过程中多次涉及到REST相关的内容,总是不知道如何实现和使用。最近在做实验需要这方面的知识,才有机会去学习REST并总结成博文。希望能给其他学习者提供帮助。本篇博文将简要介绍两部分内容:

  • What is REST?
  • How to use REST API in RYU?

What is REST

REST:表征性状态传输(英文:Representational State Transfer,简称REST)是Roy Fielding博士在2000年他的博士论文中提出来的一种软件架构风格。更多REST的相关介绍可以查看视频介绍

REST架构风格中,资源是通过URI来描述的。对资源的操作采用了HTTP的GET,POST,PUT和DELETE方法相对应。资源的表现形式可以是json或xml。REST的架构是Client-Server架构,同时链接是无状态的。所以要求在传输的过程中需要包含状态信息。此外,可以使用cache机制增进性能。在上述视频中提到REST的6中限制为:

  • Uniform Interface
  • Stateless
  • Cacheable
  • Client-Server
  • Layered System
  • Code on Demand (optional)

满足以上的API才是符合REST风格的API。

How to use REST API in RYU

在SDN控制器RYU的源代码中,我们可以发现RYU已经完成了一些RESTAPI的定义,实验人员可以直接使用对应的RESTAPI来进行编程。

在ryu的app目录,可以发现许多rest相关的文件,比如ofctlrest.py,rest.py,和resttopology.py等。其中rest.py提供了基本的RESTAPI,ofctlrest.py提供了与OpenFlow相关的RESTAPI,如查看、添加、修改流表等API。以ofctlrest.py举例如何使用RYU中的RESTAPI。

启动RYU相关组件

在终端中输入如下命令,打开RYU运行ofctlrest.py以及其他需要的模块,本案列中打开了simpleswich_13.py模块。

运行RYU之后,可以查看到wsgi启动,监听端口为8080。

查看到wsgi启动,监听端口为8080

在ofctl_rest.py源码的前面部分,我们可以查看到写成注释形式的RESTAPI的使用方法,节选如下:

mininet连接控制器

打开mininet,运行任意拓扑,连接控制器RYU。并执行pingall,检测网络联通性。

执行pingall,检测网络联通性

使用RESTAPI

推荐使用chrome插件POSTMAN来操作RESTAPI,取代终端的curl命令。 在POSTMAN中输入正确的内容就可以下发请求信息。如请求dpid为1的交换机上的流表信息:

选择动作类型为GET,点击send,可以马上获得交换机1上的流表信息。

获得交换机1上的流表信息

详细流表内容如下。可见目前交换机上有三条流表项,其中第一条是默认的miss_table_entry.后两条是h1和h2通信的双向流表项。

后两条是h1和h2通信的双向流表项

尝试对流表进行修改,可以使用POST动作类型,下发一个flow_mod消息,对现有流表进行操作。输入资源URI如下:

message body 如下:

send之后,返回200状态码,提示成功。RYU返回消息内容为1。

RYU返回消息内容为1

此时重新获取交换机上的刘表,可以观察到流表修改已经成功。

观察到流表修改已经成功

在Mininet中重新pingall测试联通性,果然不通,修改流表结果正确。

修改流表结果正确

其他RESTAPI的示例不再赘述,读者可自行尝试。 由于篇幅限制,后续的源码分析部分将在另一个文章中详细介绍。

作者简介:

李呈,2014/09-至今,北京邮电大学信息与通信工程学院学院未来网络理论与应用实验室(FNL实验室)攻读硕士研究生。


  • 本站原创文章仅代表作者观点,不代表SDNLAB立场。所有原创内容版权均属SDNLAB,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用,转载须注明来自 SDNLAB并附上本文链接。 本站中所有编译类文章仅用于学习和交流目的,编译工作遵照 CC 协议,如果有侵犯到您权益的地方,请及时联系我们。
  • 本文链接https://www.sdnlab.com/11552.html
分享到:
相关文章
条评论

登录后才可以评论

李呈 发表于15-05-13
2