SDN小组大作业
1.分组情况
组名:无名之组
学号 | 姓名 | 分工 | 贡献 |
---|---|---|---|
031702103 | 朱雅珊 | 代码实现,场景搭建 | 20% |
031702108 | 叶心言 | 代码实现,视频录制 | 20% |
031702142 | 林德辉(组长) | 思路设计,视频录制,视频处理 | 20% |
031702510 | 徐美佳 | 代码实现,思路设计 | 20% |
071703323 | 卢昱妃 | 思路设计,场景搭建 | 20% |
2.选题内容
采用负载均衡参考场景一
服务器h2 h3上各自有不同的服务,h1是客户端。实现一个负载均衡的北向程序,当h2和h3向h1传输数据时,北向应用根据链路的使用状况动态的调整路由规则。
例如:当h2向h1使用s1-s2链路达到满负荷状态下,h3向h1的传输路径应该动态的调整为s3所在路径,而当h2停止向h1传输数据时,h3应调整回s1-s2路径。
3.实验代码及视频
4.操作步骤
- 打开opendaylight控制器
- 建立拓扑
- 测试连通性
- 构建好的拓扑图
- 调用负载均衡程序sdn.py,使用sudo python sdn.py命令执行
- 用iperf命令测试流量
5.心得体会
- 林德辉
这门课起初是抱着水水的心里,后来发现还挺有趣的,把硬件上的转化到软件上,接触的都是以往从未接触过的。
在这过程中,了解到了SDN的思想及发展历程、ryu控制器,opendaylight控制器的使用、负载均衡的思想等知识,收获满满。 - 卢昱妃
这次实验中,通过对基于三个路由器的简单案例的动手实践,让我对负载均衡有了大致的了解。整个过程比较艰难,利用Python代码建立拓扑,使用了mininet、ODL控制器等工具和流量监控等手段,基本每做一步都会遇到不同的问题,有建立好拓扑ping不通的,有打不开opendaylight的,多亏有组内其他成员的帮助,项目才得以进展,让我在学习新知的同时,也认识到团队协作的重要性。这次实验综合使用了之前所学的内容,加上从网上获取的一些新知识,最终才实现负载均衡,也算是对整个学期所学的知识进行汇总并综合实践。动手实践负载均衡,让我体会到了负载均衡的巨大作用,负载均衡可以解决并发压力,提高应用处理性能(增加吞吐量,加强网络处理能力)。 - 朱雅珊
一开始对SDN课程一无所知,只是为了修满2学分创新创业才选的。通过半学期的学习后,我对于SDN究竟是什么以及它的前景和应用有了进一步的认识。不仅学会了mininet的使用方法,掌握了用Python建立拓扑,了解到P4、边缘计算、ryu控制器,opendaylight控制器、postman的使用以及Wireshark的抓包、负载均衡思想等,还对虚拟机的使用更加熟悉了一些。由于本次大作业与许多课程的期末考试时间相近,完成的时间比较紧,没能完成更复杂的负载均衡场景。但是通过本次实验,我对SDN理论知识的理解也更深入了一些,在实验过程中查阅资料以及和队友一起合作共同解决问题,我进一步体会到团队合作的重要性,收获还是非常多的。 - 叶心言
一开始的时候我对sdn真的一无所知,选修这门课也是想着拿到学分。第一堂课后心态有点崩,感觉自己完全不理解这方面的知识。可是第一次实践课自己得出来一些结果后,还是挺有成就感的,虽然还是挺懵的,只是跟着操作不太明白原因。这门课对我来说,好像打开了新世界的大门,展现在眼前的是一个深奥难懂也奇妙的新世界。通过这门课,让我对软件定义网络有了一个大体的认识,了解到了SDN思想和发展过程、ryu控制器、opendaylight控制器、负载均衡思想等知识。实践时,也曾屡次碰壁抓耳挠腮,但这个不断碰壁不断尝试的过程让我受益匪浅。 - 徐美佳
负载均衡(Load Balance)其意思就是分摊到多个操作单元上进行执行,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。
回顾这门课程,我学习了:
用python脚本搭建拓扑
Open vSwitch下发流表,实现连通性要求
直接在Open vSwitch查看流表
利用Wireshark抓包,分析验证特定报文
使用OpenDayLight控制器,在控制器提供的WEB UI中下发流表
借助Postman通过OpenDayLight的北向接口下发流表,再利用OpenDayLight北向接口查看已下发的流表。
进行RYU控制器相关实践,了解RYU控制器开发方法,使用Ryu的REST API下发流表