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

nox实现nat功能

2014-05-04 by muzi

前言

nat功能是一个非常简单,但却非常重要的功能。保留10,127,192三个网段作为公网地址,通过nat实现地址复用,可以解决现网IPV4地址不够用的尴尬局面。本篇主要讲如何使用nox实现nat的demo.

环境

  • nox 安装比较困难,请参看其他教程
  • mininet 网络环境搭建神器

控制器

首先在nox/src/coreapps/switch中找到switch.cc。 在class switch中添加成员变量uint32_t src_ip,nat_ip;由于只是一个简单的demo,就不做映射列表了。

handle_packet_in中将if(setup_flows && out_port!=-1)的逻辑修改如下:

if (setup_flows && out_port != -1)
{
    auto fm = v1::ofp_flow_mod().match(flow).buffer_id(pi.buffer_id())
               .cookie(0).command(v1::ofp_flow_mod ...
read more

SDN实现HTTP网络加速实验

2014-03-13 by muzi

由于篇幅太长,且这个实验室是很久以前,我和我的小伙伴们一起做的课设,没有时间进行排版书写。

附上链接:

http://user.qzone.qq.com/350959853/blog/1394681174

北邮学弟学妹做这个课设的可以联系628中某学长。

read more

【原】基于mininet的OpenFlow拓展性拓扑搭建

2014-03-11 by muzi

前言

我们普遍情况下,都是单一控制器去控制一个网络。但是如果多控制器呢?我们如何实现多控制情况下的通信要求呢?

这有点难度!需要一些东西向的协议来实现控制器之间的数据共享与交换。不是我一个人一两天能搞定的事情。且不同控制器对拓扑信息等存储方式不一样,需要一个统一的标准就显得比较困难。我们先不去想太多。首先,我们需要完成的第一项工作就是数据平面上,不同控制器之间的网络可以相互通信。

最简单的通信莫过于ping了!

实验目的

使用mininet搭建两个独立的网络,分别属于不同的控制器。同时,底层数据平面可以相互ping通。这就是我们这个实验的目的。

拓扑搭建

底层拓扑搭建我们使用mininet2.0,因为mininet1.0版本好像没有link文件,也没有intf类。也许是我没有找到吧。

以下的代码的作用在于创建一个OVS的网络,并使虚拟机的某个(无ip)网卡连接到这个网中。

直接上代码:

\#!/usr/bin/python
"""
    This is a topu of our test. It shows that how to add an ...
read more

SDN的初步认识

2013-12-24 by muzi

前言

(习惯性乱扯两句,可跳过)一年之前第一次接触SDN的时候,我甚至连pox的发音都发不对。第一次看OF1.0spec的时候,更是不懂secure channel到底是什么概念,Datapath一样是云里雾里。我不知道流是一个什么概念,不知道SDN如何DN,我只是觉得,我可能会比较喜欢IP这一方面的东西,具体哪一方面我也不知道。但是无所谓啊,我还年轻,我有选择的机会。抱着试一试的态度,去学习了SDN的一些知识,慢慢地就喜欢上了。不仅仅是因为知识本身,更是因为当我获得成功时刻的成就感与自豪感,让我觉得我愿意去做这件事情!一年之后,我写过Openflow协议通信流程的教程,画过所有Openflow协议的数据结构,写完自己的一个控制器,还写了一边关于如何编写控制器的教程,懂得怎么使用mininet搭建自定义的拓扑,懂得使用spirent testcenter去打流测试,懂得pox是如何运作的,等等。我甚至可以去教一些新手一些关于SDN的技术,但是,当我想要写点东西的时候,我却突然发现,我不知道什么是SDN!我并不清楚SDN是从何而来,不知道SDN发展历程,不知道SDN目前面临的问题,不明白SDN的现状到底什么状态,不知道SDN的未来有什么前景。我只知道一些具体的技术细节,也许对于一个本科生已经不错了。但是这也正是我们本科生的弱点所在吧。缺少大局观,目光不够长远,对知识的掌握更倾向于操作而非原理 ...

read more