个人博客链接:http://www.yulate.com/2021/c6d5785a.html
一、前言
SDN(Software Defined Network)即软件定义网络,是一种网络设计理念,或者一种推倒重来的设计思想。只要网络硬件可以集中式软件管理,可编程化,控制转发层面分开,则可以认为这个网络是一个SDN网络。所以说,SDN并不是一个具体的技术,不是一个具体的协议,而是一个思想、一个框架。狭义的SDN是指的“软件定义网络”,广义的SDN的概念还延伸出了:软件定义安全、软件定义存储等等。可以说,SDN是一个浪潮,席卷整个IT产业。
在做了很长一段时间的传统网络之后终于开始来研究SDN
二、基础环境搭建
1、ubuntu16.04安装及配置
这一部分可以百度出很多文章了,我这里就不在造轮子了
2、mininet安装
安装git
apt-get install -y git
通过git从github克隆mininet到本地
cd /root
git clone git://github.com/mininet/mininet
cd mininet/util/
开始安装
./install.sh -n3v
验证mininet是否安装成功
root@yu:~/mininet/util# mn
创建topo的流程:
1.创建网络
2.创建控制器
3.创建两台主机
4.创建交换机
5.创建连接
6.启动设备
7.停止设备
如果要激活主机需要输入pingall
退出mininet界面
s1 ...
*** Starting CLI:
mininet>quit
root@wy:~/mininet/util#
3、安装opendaylight
3.1.配置java环境
安装jdk
root@yu:~/mininet/util# apt-get install openjdk-8-jdk
设置java环境
// 在/etc/environment文件最末尾增加一行JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64",如下所示:
root@yu:~/mininet/util# vim /etc/environment
添加完成后,如下所示:
验证是否安装成功
root@yu:~/mininet/util# java -version
openjdk version "1.8.0_292"
OpenJDK Runtime Environment (build 1.8.0_292-8u292-b10-0ubuntu1~16.04.1-b10)
OpenJDK 64-Bit Server VM (build 25.292-b10, mixed mode)
3.2.安装ODL
链接:https://pan.baidu.com/s/1sOa5HAsz8dJ_bzZoM-4REA
提取码:yult
复制distribution-karaf-0.6.1-Carbon.tar文件到ubuntu的/root下
root@yu:~/mininet/util#cd /root
root@yu:~# tar zxvf distribution-karaf-0.6.1-Carbon.tar.gz
修改文件
root@yu:~# cd distribution-karaf-0.6.1-Carbon/etc
root@yu:~/distribution-karaf-0.6.1-Carbon/etc# vim org.apache.karaf.management.cfg
把其中两行修改如下:
rmiRegistryHost = 127.0.0.1
rmiServerHost = 127.0.0.1
进入软件
root@yu:~/distribution-karaf-0.6.1-Carbon/etc# cd /root/distribution-karaf-0.6.1-Carbon/bin/
root@yu:~/distribution-karaf-0.6.1-Carbon/bin# ./karaf
安装功能组件
// 进入软件后,进行组件的安装,如下所示
// 安装过程中没有任何提示,等到安装完成,会直接到输入界面
opendaylight-user@root>feature:install odl-restconf odl-l2switch-switch-ui odl-openflowplugin-flow-services-ui odl-mdsal-apidocs odl-dluxapps-applications
验证
重新开一个终端
root@yu:~#/distribution-karaf-0.6.1-Carbon/etc# cd /root/distribution-karaf-0.6.1-Carbon/bin/
root@yu:~# root@wy:~# mn --controller remote --switch ovsk,protocols=OpenFlow13 #创建默认的拓扑图
mininet> pingall #激活网络
*** Ping: testing ping reachability
h1 -> h2
h2 -> h1
*** Results: 0% dropped (2/2 received)
三、网页验证
查看虚拟机的ip(测试环境为192.168.21.80),保证真实主机和虚拟机之间网络能够连通(vmnet8开启,且和虚拟机在同一个网段)桥接
在真实电脑上输入:http://192.168.21.80:8181/index.html,这里的ip为虚拟机的ip。
用户名和密码都是admin
找到拓扑图,可以看到拓扑图如下图所示: