Ubuntu系统

ubuntu18.04是一个Linux内核的系统,如果你是Windows用户,不习惯是正常现象。在这里,应用更多是要通过命令行或者说终端去运行,而不是双击快捷方式,也许你不熟悉常用命令(cd、ls、sudo等),没关系,这种帖子网上很容易就能搜到,是时候自学点东西了。

另外虚拟机中还需要有RYU控制器和mininet这两个应用。


RYU控制器

RYU 是一个基于组件的完全用python 实现的开源框架,组件包括OpenFlow 协议支持、时间管理、消息机制、内存状态管理、应用程序管理、基础设施服务和一系列可用的库,此外,还提供一些应用程序和服务,例如侦测(Snort)、二层交换机、GRE 隧道抽象、VRRP、拓扑和统计服务等。

打开终端输入ryu-manager(区分大小写)按下回车,如下显示则说明ryu控制器可以正常运行。

开启ryu控制器示意图

此外还可以尝试运行ryu自带的一些应用,进入到ryu的app目录下,输入:ryu-manager 空格 应用名(即python脚本文件名称,需要加后缀,见截图),若运行不报错则说明控制器工作正常。Mininet的测试类似,相关命令大家百度,这里不多说。

运行ryu应用示意图


mininet

Mininet 是一个网络模拟器,可以在Linux 内核上模拟出多个主机、交换机、路由器和链路,所有的组件都通过虚拟以太网进行连接,并配置了net-10 私有IP 地址,支持非常复杂的拓扑结构,可以近乎任意大小和顺序,基于它的网络的性能常常非常接近真实网络的性能。

Mininet 创建topo 的方式有很多:命令行创建网络拓扑、自定义拓扑脚本、可视
化界面创建拓扑。

我们同样可以建立mininet自带的一些拓扑,如下图所示。

建立拓扑示意图


需要学的东西

Ryu的应用和mininet的拓扑脚本都是使用Python编写,也许你没有学过Python,但相信我,Python代码至少在编写的时候要比C语言人性化得多。

Mininet这边,需要掌握的东西相对较少,熟悉拓扑脚本文件的编写差不多就足够了,

Ryu控制器方面,对初学者来说,先看些视频、学习官方文档才是王道,全凭感觉是肯定不行的,那样你可能连前面的应用都跑不起来。这些视频已经是我目前找到的讲得最最清楚的教程了(画质烂,但能凑合看),可以看看,之后再参考下Ryubook(群文件里的参考书文件夹中Ryubook-en)和在线的官方文档,就差不多了。

要做完后续几个实验,至少需要:

  1. 熟悉Python的基础语法
  2. 会用Linux的常用命令
  3. 了解Mininet的拓扑创建逻辑
  4. 清楚Ryu的事件处理流程
  5. 掌握实验所需的算法理论