SDN分组实验作业——负载均衡
一、作业描述
分组实验分工:
作业属于哪个班级、分组 | 软件定义网络SDN2019 (福州大学) | Wireshark分组 | |
---|---|---|---|
学号 | 姓名 | 工作分配 | 分工占比 |
031702115 | 连振升 | 代码编写、构建拓扑等 | 27% |
031702117 | 童圣滔 | 视频制作、程序调试 | 27% |
031702118 | 范文辉 | 代码编写、构建拓扑等 | 26% |
031702143 | 蔡智伟(组长) | 资料收集、设计、博客撰写 | 20% |
分组报告分工:
作业属于哪个班级、分组 | 软件定义网络SDN2019 (福州大学) | Wireshark分组 | |
---|---|---|---|
学号 | 姓名 | 工作分配 | 分工占比 |
031702115 | 连振升 | 资料收集、PPT撰写 | 23% |
031702117 | 童圣滔 | 资料收集、PPT撰写 | 22% |
031702118 | 范文辉 | 资料收集、PPT撰写 | 24% |
031702143 | 蔡智伟(组长) | 报告汇报演讲、PPT改写 | 31% |
作业目标:利用学期课程所学知识,选择一个实验选题,完成课程设计和实验目标,设计拓扑、研究课题内容、完成实验——我们小组选择了负载均衡实验课题,并选择一个并不特别复杂的实验拓扑图,来验证实验。
实验内容主要如下:
1.验证拓扑是否搭建正确、ip分配、端口连接、主机交换机的匹配连通等情况。
2.流表、报文的验证与分析等。
3.北向接口开发、负载均衡的实现等、
代码GitHub链接:
https://github.com/fwh-g/sdn
视频链接:
https://www.bilibili.com/video/av82354068/
参考资料:
(具体在课程中有引用)
1.OVS常用命令与使用总结
2.OpenFlow 交换机与控制器交互步骤
3.利用Wireshark抓取并分析OpenFlow协议报文
4.RYU开发入门教程
二、实验分析
原理:
负载均衡是一种将任务分派到多个服务端进程的方法。
网站访问量已经越来越大,响应速度也将越来越慢。负载均衡正是一种将任务分派到多个服务端进程的方法,是多台服务器以对称的方式组成一个服务器集合,每台服务器都具有等价的地位,都可以单独对外提供服务而无须其他服务器的辅助技术。通过某种负载分担技术,采用某种负载均衡实现策略、和实现的方法,具体的实现。将外部发送来的请求均匀分配到对称结构中的某一台服务器上,而接收到请求的服务器独立地回应客户的请求。
基本原理图:
目的:
负载均衡能够平均分配客户请求到服务器列阵,籍此提供快速获取重要数据,解决大量并发访问服务问题。这种群集技术可以用最少的投资获得接近于大型主机的性能。
可以减少进程的负载、提高容错能力、提高线路的数据处理能力、提高网络的可用性已经灵活性。
实验拓扑:
(通过Ubuntu虚拟机实现)
分析:
如上图,h2,h3,h4三台为服务器,运行着各种服务进程,h1为客户机。本次实验通过这样一个拓扑,来设计一个实现负载均衡的北向程序,并且可以通过各种命令来完成许多要求、查看配置,如下发流表、数据传输。
例如,当三台服务器h2,h3,h4向客户端h1传输数据时,链路可能存在各种各样的情况,可能”空闲”、可能“拥挤”,这时便通过北向程序,根据链路的使用情况,动态地调整路由规则,实现负载均衡,来实现目的——提高网络连通性、数据处理能力等等。比如说,链路带宽若足够,则默认通过s4-s1的传输路径进行数据传送;而当剩余带宽不足的情况下,则应动态调整路由,使链路负载达到平衡。所以在现实应用时,我们应当选择适当、合理的负载均衡算法和实现方法。
方法:
实现SDN的负载均衡的常见方法有好几种,如:HTTP重定向、DNS域名解析、反向代理等......详细的介绍可以参考博客介绍
https://blog.csdn.net/ran_max/article/details/81350955、
https://blog.51cto.com/shhlamp/2054076 等
而本次我们的分组选择了应用均匀派发的方法,均匀派发是实现负载均衡最简单的策略,均衡派发的意思是指任务将均匀地派发到所有的服务器进程。在实现时,可以使用随机派发或者轮流派发。
均匀派发策略假设集群内所有进程具有相同的处理能力,且任务处理用时相同。
但实际上,由于进程部署环境的不同,其处理能力一般不同,任务处理时间也不尽相同。
三、实验演示
演示视频链接:
B站审核中
四、工作历程
2019年12月20日 在分组报告后,组员对课题进行了各自的了解。之后进行了进行了小组讨论,对小组的分组实验要完成什么样的任务,如何进行任务分配、大致通过什么样的方法进行实验设计与研究等交流了意见并讨论。在第一次讨论中确认了各人分工、实验方法等。每人去了解网络上的课例,大致理解如何实现。并尝试、开始进行实现。
2019年12月24日 设计开始后,遇到的困难和问题主要是对一些工作不太熟练,如报文分析、一时想不起来某些指令...成员因人而异。并且,分组继续对工作任务的分析、查询知识进行了解。
经历数天,通过网络资源对设计思路的推敲了解与打代码的上手,之后的工作更为顺利,期间陆陆续续地完成内容。,由于前几天的挺多门的考试,所有前面几天的时间并没有很多、很好的花在实验上,所以进度较为慢。
2020年1月1日,大致完成了实验项目,经过团队合作核实之后,开始演示视频的录制。
2020年1月6日,完成实验并检查,并将实验代码上传至GitHub、将视频上传。