一、安装Virtual Box步骤
至于VMware,当然也可以,二者都是虚拟机软件。但是VMware的安装文件很大,安装相对麻烦,而virtual box安装过程中,是中文的,安装较快且方便,比较适合新手学习使用。
安装过程:
- 下载virtual box安装程序,官网下载对应的版本,比如windows版本的。
- 安装过程基本就是fool式操作,按着提示直接默认安装就行,当然也可以修改安装的位置。
这里就不过多赘述virtual box的安装过程了。
二、在虚拟机中的Ubuntu安装步骤
1,点击新建,设置虚拟机的名字mininet,位置,以及版本等,由于我安装的是64位的Ubuntu系统,所有选择Linux和64bit,配置完成后点下一步。
2,分配运行内存,一般来说2G足够了,配置完成后点击下一步。
3,创建虚拟硬盘,选择VDI磁盘映像,然后选择动态分配,20G就可以,配置完成后点击创建。
4,这一步需要用到刚才下载的Ubuntu镜像,点击存储,选择第二IDE控制器主通道,然后选择刚才下载的Ubuntu镜像文件,配置完成后点击OK。
5,点击启动,开始启动安装过程,选择中文简体,如果其他语言对你来说so easy,那么完全没问题,然后选择安装Ubuntu,键盘模式选择美式键盘,配置完成后按提示继续。
6,根据个人习惯选择正常安装和最小安装都行,只不过最小窗口是在命令行模式下的,如果水平还可以,命令行模式充满了神秘感,我是一个小菜鸟所以我选择了正常安装,然后点击继续。
7,这一步需要配置系统的分区,选择其他选项,当然选择第一个也可以,根据个人配置需要,创建一个swap分区和一个/分区,如图的大小和选择进行,配置完成后点击下一步。
注意:在安装Linux系统的时候,由于虚拟机和本机的分辨率的不同可能造成界面显示不完全,看不见下一步等操作按钮,此时可以使用ctrl+鼠标左键拖动或win+鼠标左键拖动显示其余部分。
当出现键盘锁定在virtual box里面时,可以点右边的ctrl解除锁定。
8,时区选择,我们当然选择北京时间咯,也就是东8区,选择其他时间也许,比如美国时间。配置完成后,点击继续。
9,这一步,我们配置用户名,密码一类的,密码123456就行,不用过于复杂,带来一系列的麻烦,配置完成后,点击安装。
10,到这一步,恭喜你,接近成功啦,这时候休息一会吧,因为可能需要等上10分钟。安装成功后,会提醒重启,这时候重启就行,稍等片刻,linux系统安装成功,这时候一个虚拟机的Ubuntu就安装完成了。
三、Ubuntu环境下搭建SDN网络实验平台
1,首先根据步骤二,在虚拟机上安装两个Ubuntu操作系统,一个命名mininet用于安装mininet网络仿真器,一个命名FloodLight/openDaylight用于安装FloodLight/openDaylight控制器。
2,配置虚拟机网络,实现主机和虚拟机之间的网络通信,并做ping测试。首先,启动虚拟机后,我们进入命令行模式(ctrl+shift+t)输入ifconfig,我们可以看见配置网络之前的虚拟机网络。然后关闭虚拟机系统,在virtual box中进行配置,点击设置—>网络—>连接方式为NAT—>选择网卡2—>连接方式为仅主机(host-only)网络—>OK。
3,重启Ubuntu系统后,在Windows的命令行模式下输入ipconfig查看本机ip和虚拟机ip,可以看到本机的ip地址10.50.157.192,虚拟机的ip为192.168.56.1,要注意哟,我连的是无线网所以本机地址看无线局域网适配器,如果你用的网线就要看以太网适配器哟。
4,接下来,我们在命令行下看看是否可以和虚拟机通信,来ping一下吧。看图,有回复的,证明网络是正常的。
5,然后,在Ubuntu的命令行模式下,输入ifconfig可以查看虚拟机的IP网络配置,可以发现此时虚拟机有两个网卡,说明虚拟机的网卡2配置成功。注意,也许输入ifconfig命令,系统不能识别这个命令,那么就需要我们安装一下,在命令行使用sudo apt install net-tools。
6,接下来我们在虚拟机系统的命令行模式下,看看虚拟机系统是否可以和Windows主机连通,在命令行下ping一下。可以发现win主机有回复,到这一步,说明主机和虚拟机之间的虚拟网络配置成功。
四、在mininet虚拟机上本地安装mininet源码
1,首先,需要安装git,在GitHub上复制mininet,在Ubuntu的命令行模式下使用命令sudo spt-get install git。
2,在GitHub上获取源代码,命令git clone git://guthub.com/mininet/mininet。
3,获取源码成功后,在虚拟机上安装mininet,命令mininet/util/install.sh -nfv。
4, 安装成功之后,验证openvswitch-controller是否在运行,如果正在运行,应将其停止,以确保Mininet在启动时可以指定自己的控制器。
5,测试mininet是否安装成功,在Ubuntu命令行中输入命令sudo mn --test pingall。
五、在虚拟机上安装jdk和配置Java环境变量
(参考https://jingyan.baidu.com/article/25648fc1797a649191fd00ca.html)
1,由于floodlight或者openDaylight的使用需要提前配置jdk和Java环境变量,所以第一步我们需要在linux系统中配置好Java环境变量。首先,我们需要下载jdk,在命令行中输入sudo apt-get install openjdk-8-jdk。
2,配置环境变量JAVA_HOME 和PATH,使用命令sudo gedit /etc/environment在文本中配置环境,配置完成后保存。使用命令source /etc/environment使环境生效,然后可以查看环境,输入命令cat /etc/environment。
3,由于当虚拟机系统关闭后,可能再次打开会出现配置的环境变量无效,因此配置所有用户的环境变量,使用命令打开文本sudo gedit /etc/profile,在文本末尾添加截图所示代码。添加完成后保存,在命令行执行全局设置立刻生效命令source /etc/profile。
4,上述操作完成后,重启Ubuntu系统,并且在命令行输入命令java -version检查环境变量是否配置成功。
六、在虚拟机上安装floodlight控制器
1, 先安装 ant,命令行输入命令 sudo apt-get install ant。(Apache Ant,是一个将软件编译、测试 bai、部署等步骤联系在 一起加以自动化的一个工具,大多用于 daoJava 环境中的软件开发。)
2, 先安装 git,从中获取 floodlight,在命令行中输入命令 sudo apt-get install build-essentialpython-dev。执行完毕后,安装 git,在命令行输入命令 sudo apt-get install git。
3,安装curl,在命令行中执行命令sudo apt-get install curl。
4,从github克隆floodlight,输入命令git clone git://github.com/floodlight/floodlight.git,下载安装完成之后,进入floodlight,输入命令cd floodlight,最后验证ant。可能发现出现一系列的报错,然后根据提示下载安装thrift包。
5,运行floodlight,安装成功后(前提是装好了jdk并且成功配置了Java环境变量),执行命令java -jar target/floodlight.jar,此时可以看到一系列的输出,说明运行成功。
七、在虚拟机上安装openDaylight控制器
1,下载openDaylight,下载地址https://nexus.opendaylight.org/content/groups/public/org/opendaylight/integration/distribution-karaf/0.6.4-Carbon/distribution-karaf-0.6.4-Carbon.tar.gz。
2,下载完成后将压缩包移动到/usr/local/openDaylight目录下,当然移动需要权限,首先我们输入命令sudo nautilus,此时看见系统进入一个有权限的文件管理上,这时候就可以在里面创建文件夹和移动文件。
3,需要对下载的openDaylight安装包进行解压,我们可以先确认文件夹内是否存在安装包,输入命令cd /usr/local/openDaylight,此时我们就进入了这个文件夹下,在命令行上输入命令ls,就可以查看此目录下的全部文件。由于我们的压缩包后缀为tar,所以输入命令sudo tar -xvf distribution-karaf-*.tar.gz进行解压。
4,解压完成后,我们进入解压的目录下,输入命令cd distribution-karaf-0.6.4-Carbon。然后输入命令sudo gedit etc/org.apache.karaf.management.cfg修改文件中的ip为127.0.0.1,方便本机测试使用。
5,接下来需要执行openDaylight,但是执行需要root权限,不然会提示权限不够,这时我们需要进入root,但是如果之前没有设置root密码,是无法进入,输入命令sudo passwd root,设置密码,注意Linux系统输入密码不会在屏幕显示。密码修改完成后,我们就可以进入root用户了,输入命令su root(注意:su就是用来切换用户,也可以su 用户名,切换已有的如何用户),再输入密码进入root用户,注意root用户和普通用户之间有明显的标志区别$和#。
6,执行openDaylight,先cd到安装openDaylight的目录下,然后输入命令./bin/karaf执行openDaylight。如下图表示执行成功。
7,安装各种openDaylight使用到的插件。
八、启动mininet,设置远程控制器,在openDaylight中查看拓扑图
1,启动在openDaylight虚拟机中启动openDaylight,具体操作先进入root用户,然后cd到openDaylight目录下,如第七节启动步骤。
2,打开mininet虚拟机,并启动mininet,由于设置topo需要root权限,所以首先我们进入root,然后构建自定义拓扑,输入命令mn - -topo single,3 - -controller=remote,ip=192.168.56.105,port=6633 - -switch ovsk,protocols=OpenFlow13。然后输入命令pingall,查看连接情况。
3,进入openDaylight虚拟机中,通过OpenDayLight控制器,查看网络拓扑;正在运行opendaylight虚拟机的IP是192.168.56.105,opendaylight的端口是8181,通过浏览器访问:http://192.168.56.105:8181/index.html,用户名和密码均为admin。