1、基于Floodlight负载均衡实现摘要:本文基于SDN网络架构构建了一种虚拟网络,使用Floodlight作为该虚拟网络控制器,通过调用Floodlight控制器restful API 实现了服务器之间负载均衡。前言:1 研究背景 SDN2 Floodlight功能分析3 实验过程及实验数据分析3.1 网络拓扑构造Floodlight Controller3.2 实验平台搭建本文通过采用mininet虚拟出主机设备,使用open vSwitch虚拟互换机作为OpenFlow互换机连接不同主机设备,使用FloodLight作为网络控制器。(1) mininet安装网站提供了mininet VM
2、,这是一种操作系统镜像文献,解压之后,可以直接在虚拟机中进行加载。本文采用了virtualBox作为虚拟机。(2) open vSwitch安装Mininet中自带有open vSwitch,可以使用mininet自带open vSwitch,也可以此外安装open vSwitch作为网络互连设备。安装过程如下:(3) FloodLight控制器安装运营终端系统,进行如下操作安装floodlight,sudo apt-get install build-essential default-jdk ant python-devgit clone git:/cd floodlightgit che
3、ckout stableantjava -jar target/floodlight.jar #运营Floodlight3.3 Floodlight 控制器RESTFUL API调用通过调用RESTFUL API,实现负载均衡。一方面调用quantum/v1.0/vips设立vipid和vip名称以及对外显示IP地址和端标语,传递参数有id值,name值,protocol值,address值,port值。另一方面调用quantum/v1.0/pools设立地址池名称以及该地址池所相应vipid值。再次通过调用quantum/v1.0/members/往地址池中添加详细服务器地址,即将ip地址为
4、10.0.0.1 和ip地址为10.0.0.2,端标语为80服务器添加到地址池中,形成一种服务器集群,这个服务器集群对外统一地址为10.0.0.100,端标语为80。当一种集群中某台服务器处在繁忙或奔溃状态,立即切换到集群中另一台服务器,对顾客而言是透明,从而实现负载均衡目。#!/bin/shcurl -X POST -d id:1,name:vip1,protocol:tcp,address:10.0.0.100,port:80 http:/localhost:8080/quantum/v1.0/vips/curl -X POST -d id:1,name:pool1,protocol:tc
5、p,vip_id:1 http:/localhost:8080/quantum/v1.0/pools/curl -X POST -d id:1,address:10.0.0.1,port:80,pool_id:1 http:/localhost:8080/quantum/v1.0/members/curl -X POST -d id:2,address:10.0.0.2,port:80,pool_id:1 http:/localhost:8080/quantum/v1.0/members/3.4 数据分析运营命令:sudo mn -controller= remote,ip=127.0.0.1
6、 -topo single,3 运营成果如图所示。其中h1、h2和h3为主机,s1为openflow互换机。h1、h2和h3连接在s1上。网络构造建设主机h1,h2,h3配备信息如图。H1配备信息H2配备信息H3配备信息H1和h2启动WEB服务H1启动web服务H2启动web服务负载均衡通过REST API实现服务器之间负载均衡,进行流表配备,当一台服务器过载,将祈求自动转到另一台服务器上。编写脚本如下图所示。调用rest API 实现负载均衡运营脚本程序运营脚本程序后来得到成果如下图所示执行脚本程序运营成果可见,vip地址为,服务器h1地址为,服务器h2地址为。H3 访问网站H3使用wget -O - 10.0.0.100命令不断地发送web祈求,使用,如图所示,可见服务器h1与h2之间在轮换解决祈求,H3多次访问网站,查看http:/localhost:8080/ui/index.html,成果如下图所示,从发flows(2)成果可见实现了负载均衡 。4 总结