RYU入门教程

2014-09-20 by muzi

前言

辗转了POX,NOX,OpenDaylight等多个控制器之后,我终于意识到我只喜欢python语言的控制器。但是我依然记得OpenDaylight的Nullpointer的Exception,还记得YANG文件的深奥,但是OpenDaylight让我对控制器开发的兴趣减少了,这不是我想要的事情。最后,我下决定转向RYU。我突然发现,生活突然变得很美好。我用着我熟悉的,喜欢的,优美的python,写着充满美感的语句,犹如写诗一般的惬意。

本篇主要介绍如何安装RYU,和如何在RYU上开发APP。

RYU的安装

安装RYU,需要安装一些python的套件,具体的安装方法可以谷歌,但推荐通过pip install安装,详情查看源码安装部分。

  • python-eventlet
  • python-routes
  • python-webob
  • python-paramiko

安装RYU主要有两种方式:

  • pip安装

    pip install ryu
    
  • 下载源文件安装

    git clone git://github.com/osrg/ryu.git
    cd ryu
    sudo pip ...
read more

QEMU+virt-manager+phoronix-test-suite服务器测试

2014-09-17 by muzi

前言

这是研究生开学的第一个任务,学习测试服务器性能。首先我们需要在一台新服务器上面安装ubuntu12.04,这个步骤很简单。安装完之后,可以使用top命令查看系统的cpu,mem等性能指标。然后我们就需要安装phoronix-test-suite,用于测试服务器的某些性能。接下来,使用qemu安装虚拟机,在虚拟机有负载的情况下,继续测量服务器的性能。

PHORONIX-TEST-SUITE

这是一个相当牛逼的服务器测试工具:[phoronix-test-suite]:http://www.phoronix-test-suite.com/

下载安装:http://get.ubuntusoft.com/app/phoronix-test-suite

先将安装包下载到本地,然后解压。进入phoronix-test-suite目录,运行install_sh进行安装。

安装之后可以通过

phoronix-test-suite  list-available

查看可使用的测试列表。

选择某一个测试项进行测试

phoronix-test-suite  benchmark <test name>

如:

phoronix-test ...
read more

OpenDayLight中MD-SAL学习笔记

2014-08-13 by muzi

前言

在学习opendaylight的过程中,总是遇到AD-SAL( API-Driven SAL)和MD-SAL(Model-Driven SAL)等概念。在努力查找资料学习之后,有了一点学习笔记,写出来加深印象。同时也给同样迷惑的同学一点帮助。

转载请声明:北邮-李呈:www.muzixing.com

About MD-SAL

MD-SAL使得在SDN控制器那些丰富的服务和模块可以使用统一的数据结构和南向和北向的API。

sal-comparison

上图引用地址:https://wiki.opendaylight.org/images/4/4d/SAL-Comparison.png

MD-SAL提供请求路由(request routing)和基础设施去支持服务的适配,但它不提供服务的适应本身;业务适配是由插件提供。MD-SAL认为适配插件是一个普通的插件:它向SAL提供数据,并通过模型生产的API来读取消费数据。

Request outing

为SAL中,request routing可用于消费者的请求路由,从而寻找到对应的生产者。当一个plugin注册之后,就会在routing table中有对应记录,consumer向SAL发起RPC应用申请的时候 ...

read more

OpenFlow1.3学习笔记

2014-08-10 by muzi

前言

OpenFlow1.3比1.0版本复杂太多了。由于交换机和控制器没有太多支持,所以关于OpenFlow的应用大多是基于1.0版本的,但是1.3版本相当经典,其中许多内容都是值得学习的。今天翻看了一下1.3版本的OF协议,觉得收获颇多,将学习笔记写下来加深印象,也给后人学习提供一点帮助吧。笔记不是协议翻译,只总结一些疑难点。

OpenFlow端口

OF端口是OF处理流程和网络其他部分进行转发数据包的网络接口。 OF交换机通过OF接口和其他交换机建立逻辑连接。OF交换机必须支持的端口类型为

  • 物理端口
  • 逻辑端口
  • 保留端口

逻辑端口和物理端口的不同在于,逻辑端口比物理端口更高一级,是对物理端口的虚拟化,提高可复用性,逻辑端口的数据包需要有tunnel_id,而物理端口没有。

保留端口中又分为:

  • ALL
  • CONTROLLER
  • TABLE
  • IN_PORT
  • ANY
  • LOCAL
  • NORMAL
  • FLOOD

其中所有OF交换机都要支持ALL,CONTROLLER,TABLE,IN_PORT,ANY类型端口,OF_ONLY不要求支持LOCAL,NORMAL,FLOOD端口。

OpenFlow Table

OpenFlow ...

read more

Opendaylight中开发模块Ping

2014-08-06 by muzi

前言

在安装和运行opendaylight之后,我们需要了解opendaylight各个目录的作用,运行机制。在此基础之上,我们需要动手进行第一个ODL模块的开发,在开发中找到ODL的重要所在。接下来的教程是在完成官网的一篇教程的基础上的总结和介绍,希望读者能有所收获。

摘要

本篇教程主要介绍如何在ODL上使用MD-SAL开发一个简单的TCP ping插件。这个插件实现了向指定地址发送ICMP,探测IP地址可达性的功能。首先我们需要使用YANG定义一个ping model,然后我们需要实现一个ping plugin,实现ping功能,再然后创建ping service 用于提供ping服务,最后我们通过REST API来实现北向接口使用ping service。

其中每一个功能,我们将其创建为maven工程,并作为osgi的bundle。所以我们总共需要创建4个OSGI 的bundle:

  • Northbound API / Implementation [ping-northbound]

    The northbound API defines the interface for interacting with the given service. For example, a REST ...

read more