专栏首页SDNLABSDN开发笔记(二):SDN控制器的使用

SDN开发笔记(二):SDN控制器的使用

鉴于网上对于sdn开发相关的资料较少又乱的现状,从这篇文章开始,我将陆续分享我在sdn开发过程中的经验,我的sdn项目开发是基于opendaylight的release-lithium-sr3版本,该版本相对稳定。

继上篇文章《sdn开发环境的搭建(win7环境)- SDN开发笔记(一)》之后,我在Linux下使用odl控制器,在使用之前,先将使用环境搭建好,我使用的Linux是ubuntu 14.04桌面版,采用vmware虚拟机方式,具体为:

Vmware版本:VMware-workstation-full-11.1.0

Linux版本:ubuntu-14.04-desktop-amd64.iso

一、基本环境搭建

1、安装Vmware并注册key

2、安装ubuntu-14.04-desktop,具体安装过程请自行google下

3、启用linux的root账号、ssh-service允许远程连接等,此步骤可忽略,目的只是方便odl控制器文件传输等。

二、ODL运行环境搭建

1、JDK环境搭建

JDK版本使用jdk-8u73-linux-i586.gz,新建目录/usr/lib/jvm,并将jdk解压至该目录,修改目录名称为java。

mkdir /usr/lib/jvm

tar -zxvf jdk-8u73-linux-i586.gz -C /usr/lib/jvm

mv jdk_8u_73 java

2、Maven环境搭建,选择apche-maven-3.3.9-bin.tar.gz,解压到/usr/jvm/maven。

tar -zxvf apche-maven-3.3.9-bin.tar.gz -C /usr/lib/jvm

3、设置环境变量

vi ~/.bashrc

最末尾添加如下:

export JAVA_HOME=/usr/lib/jvm/java

export JRE_HOME=${JAVA_HOME}/jre

export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:${CLASSPATH}

export M2_HOME=/usr/lib/maven/maven

export MAVEN_OPTS="-Xmx1024M -XX:MaxPermSize=512m"

export PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin:${M2_HOME}/bin:$PATH

保存退出,使之生效

source ~/.bashrc

4、验证环境是否ok,在终端输入 mvn -v

5、从官网下载发行版二进制odl控制器文件,传入ubuntu中,解压,找到distribution-karaf-0.3.3-Lithium-SR3/bin/karaf文件。

解释下,karaf.bat文件是在windows环境的启动文件,而karaf是Linux环境下的启动文件,Odl控制器是支持在windows和Linux环境两种环境运行的,因为ODL控制器是运行在JVM之上的。

6、运行karaf,启动odl控制器。

./karaf

可以看到运行界面如下

二、mininet的使用

1、mininet的安装

我选择的是直接git下载,执行以下步骤将mininet安装

#git clone git://github.com/mininet/mininet

#cd mininet

#git tag

#git checkout -b 版本号

#cd util

#./install.sh -a

安装ovs

#apt-get update

#apt-cache search openvswitch

#apt-get install openvswitch-switch

2、测试是否成功

测试是否成功

sudo mn --test pingall

查看mininet版本

#mn --version

查看OVS版本

#ovs-ofctl –version

出现以下则表示安装mininet等ok

3、mininet的使用

启动好odl之后,就可以运行mininet连接odl控制器了,但是前提是odl需要安装几个feature,比如odl-dlux-all用于web浏览器访问odl,odl-l2switch-all用于发现主机节点,odl-restconfig-all用于访问北向接口。在odl控制台中执行

feature:install odl-dlux-all

feature:install odl-l2switch-all

feature:install odl-restconf-all

可以通过feature:list -i已安装feature,通过http:list | grep dlux 查看dlux的load情况

4、通过web浏览器访问http://192.168.65.129:8181/index.html

注意192.168.65.129是我运行odl控制器的ip,输入admin/admin登录可以看到web页面如下:

目前由于没有连接mininet,因此没有任何设备在页面。

5、运行mininet连接odl,在终端输入

mn --controller=remote,ip=192.168.65.129,port=6653

注意最新的mininet已经改用6653端口而非6633端口连接odl控制器

6、刷下web页面,可以看到一台交换机,此时在mininet中输入pingall,web页面就可看到两台主机与一台交换机。

7、重要的地方

http://192.168.65.129:8181/restconf/operational/opendaylight-inventory:nodes/node/openflow:1

这个链接用于查看在odl上的交换机与主机节点信息。

mininet控制台除了上述的pingall、dump还有其他有用的命令,比如net、ovs-ofctl、link等命令,在mininet上使用”?”就可以显示所有命令,命令详情请自行google一下。

本文分享自微信公众号 - SDNLAB(SDNLAB),作者:陈明莉

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2016-07-12

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 【双语频道】ONOS架构原理

    The purpose of this ONOS talk is to convey the rationale behind our approach to ...

    SDNLAB
  • 定义MANO:开源 VS 标准化

    随着服务提供商热衷于部署基于NFV的服务,他们发现管理和编排(MANO)是业务部署中的痛点。关于MANO最大的问题是如何从高级架构图转变成为实现可互操作性。我们...

    SDNLAB
  • Open vSwith模拟网关实现不同子网的互通

    一.实验目的 本实验通过Mininet构建子网,并使得OVS作为网关,来模拟子网间的互通。在实验的过程中,我们来学习一下内容: OVS构建子网过程。 OVS设置...

    SDNLAB
  • 解决SSH登录缓慢

    --------------------- Author: Frytea Title: 解决SSH登录缓慢 Link: https://blog.fr...

    宋天伦
  • Python自动化开发学习10

    上次讲了由于GIL锁的存在,Python的多线程是假的,用的还是CPU的单核。Python的多线程只是利用了CPU的上下文切换,上下分切换也是占用CPU的。那么...

    py3study
  • 动态最优化经典面试题

    最近看到了一条史前的算法面试题,觉得挺有意思的,虽然网上已经有了很多完善的答案,但是我还是想自己整理一遍,强化印象,同时也和大家分享一下这道12年的Google...

    sladesal
  • 0629-6.2-如何使用CM API接口获取集群所有节点内存和磁盘使用情况

    大家也知道Cloudera Manager提供了丰富的监控指标,部分客户也有自己统一的监控平台,需要将CM上的监控指标集成到统一的监控平台上,因此可以通过提供的...

    Fayson
  • 谷歌为何32亿美金收购Nest?

    大数据文摘
  • MongoDB 进程控制系列一:查看当前正在执行的进程

    "opid" : 6222,#进程号 "active" : true,#是否活动状态 "secs_running" : 3,#操作运行了多少秒 "micr...

    拓荒者
  • 一个一直“朝九晚五”的程序员

    要成为一个伟大的工程师,你不需要写博客,也不需要致力开源,更没必要进行技术演讲或者做任何其他事情。

    java架构师

扫码关注云+社区

领取腾讯云代金券