基于RYU控制器(controller)上的simple-switch 的APP做的測试-SDN/OpenFlow

时间:2022-01-07 17:16:20

近期一直在学习RYU控制器,在使用的过程中,发现有下面几方面的长处:RYU控制器全然使用Python语言编写,在理解起来和上手速度上是挺快的;RYU控制器的总体架构清晰明了,在日后有时间我会整理一个关于RYU控制器的架构性的文章供大家參考;RYU控制器本身是一个功能强大的网络实验平台,能够和openstack非常好的兼容,对于openstack我不是非常熟悉,就知道通过openstack能够实现的数据中心云计算方面的功能;RYU控制器本身自带非常多编写好的APP,通过对这些APP的熟悉,能够非常好的掌握通过RYU这个框架自己编写APP的能力,这在其它的SDN/OpenFlow控制器是无法比拟的;同一时候,由于RYU控制器本身已经编写的功能已经非常全面了,网络开发人员基本能够利用这个框架来编写自己的APP,降低二次开发的工作,这也是一个长处。

以下说一下在simple-switch.py的APP的測试过程,通过这个APP实现流表的自己主动下发。

在mininet上模拟一台交换机(s1)三台主机(h1,h2,h3),然后远端连接RYU控制器,使用127.0.0.1,和6633port建立连接

打开两个终端terminal,一个用于mininet建立网络拓扑模拟环境,一个用于模拟远程RYU控制器。

第一,在RYU控制器开启simple-switch.py的APP,输入命令:ryu-manager simple-switch.py,开启后如图:

基于RYU控制器(controller)上的simple-switch 的APP做的測试-SDN/OpenFlow

第二,在另外一个终端上建立mininet模拟拓扑,输入命令:mn --topo single,3 --mac --switch ovsk --controller remote

然后在RYU的那个终端就会显示连接的建立,同一时候,也会同步一些交换机和控制器建立连接的信息,如图:

基于RYU控制器(controller)上的simple-switch 的APP做的測试-SDN/OpenFlow

此时,在交换机的转发流表是空的,因此此时主机之间是不能够通信的,在使用h1去ping h2的时候,就会自己主动建立流表

基于RYU控制器(controller)上的simple-switch 的APP做的測试-SDN/OpenFlow

注意是先进行广播,然后建立反方向的流表,然后建立正方向的流表。流表如图:

基于RYU控制器(controller)上的simple-switch 的APP做的測试-SDN/OpenFlow