环境搭建(软件包可以去GitHub去拿):
一、 安装JAVA
apt –y install openjdk-8-* #要安装8版本的以上的java环境。
二、 安装karaf
tar xf ***karaf
cd **karaf
vim bin/setenv
export JAVA_HOME=”/usr/lib/jvm/java-8-openjdk-amd64” #添加环境变量
./bin/karaf #执行
进去后。
安装相关组件:
feature:install odl-restconf
feature:install odl-l2switch-switch-ui
feature:install odl-mdsal-apidocs
feature:install odl-dluxapps-applications
三、 安装mininet-master
cd mininet
./util/install.sh –a #完全安装。 这个有点久,可以换成 –nfv
关于mininet 源码编译会出现错误的时候,在进行编译时候回提示已存在openflow这个目录。应该去家目录中去删除这个目录。在进行重新编译。出现错误。我怀疑是安装东西时候出现了加锁。导致的。需要rm 掉锁目录
安装完后重启一下机子……
构建SDN网络:
启动opendaylight并安装组件:
使用mnninet搭建topo:
sudo mn --controller=remote,ip=127.0.0.1 --topo linear,n,m
sudo mn --controller=remote,ip=127.0.0.1 --topo single,n
sudo mn --controller=remote,ip=127.0.0.1 --topo tree,n,m
Single,n:一个交换机,n个host
linear, n,m: 线性拓扑,n个交换机,一个交换机上有m个host,共有n*m个host
tree,n,m 第一个参数为深度,第二个位扇出系数。可以写成--tree,depth=2,fanout=8
下面分别试一下single、linear、tree的使用。
sudo mn --topo single,3 --mac --controller remote,ip=127.0.0.1,port=6633 图如下:
输入下面的地址进入ODL去看一下mininet的图形化topo
http://127.0.0.1:8181/index.html#/login
账号:admin
密码:admin
sudo mn --topo linear,2 --controller remote,ip=127.0.0.1,port=6633 #topo如下图
sudo mn --topo tree,2,3 --controller remote,ip=127.0.0.1,port=6633
mininet常用命令总结
help默认列出所有命令文档,后面加命令名将介绍该命令用法
dump打印节点信息
gterm给定节点上开启gnome-terminal。注:可能导致mn崩溃
xterm给定节点上开启xterm
intfs列出所有的网络接口
iperf两个节点之间进行简单的iperfTCP测试
iperfudp两个节点之间用制定带宽udp进行测试
net显示网络链接情况
noecho运行交互式窗口,关闭回应(echoing)
pingpair在前两个主机之间互ping测试
source从外部文件中读入命令
dpctl在所有交换机上用dptcl执行相关命令,本地为tcp127.0.0.1:6634
link禁用或启用两个节点之间的链路
nodes列出所有的节点信息
pingall所有host节点之间互ping
py执行python表达式
sh运行外部shell命令
quit/exit退出