SDN期末作业
实验场景
服务器h2 h3上各自有不同的服务,h1是客户端。实现一个负载均衡的北向程序,当h2和h3向h1传输数据时,北向应用根据链路的使用状况动态的调整路由规则。
例如:当h2向h1使用s1-s2链路达到满负荷状态下,h3向h1的传输路径应该动态的调整为s3所在路径,而当h2停止向h1传输数据时,h3应调整回s1-s2路径。
负载均衡程序
场景的要求是实现h2到h3的负载均衡,由于能力有限,给一台路由器所下发的流表只能实现根据IP地址匹配后从一个口输出,所以并不能实现一台主机上发出的数据包可以分流到一台路由器的两个端口同时出去,所以只能退一步,实现不完全的负载均衡。
因为上述原因,因为一个主机发出的包只能走一个端口,经我们小组研究决定,让h2发给h1的数据包固定走s2->s1的路径,而h3发到h1的数据包则根据s2的1端口(即输出端口s2直连s1的那条)的流量绑定该端口是否空闲,如果空闲,则和h2的包走一条路,即s2的1端口出;如果不空闲,则和h2的包分开走,从s2的2端口出。总体思想就是这样。
详情见GitHub链接:点我咩
视频链接:点我咩
小组分工
- 吴君毅(031502629)(我)
身为队长,主要负责分工和监督队内工作,对每个流程都有参与其中,包括流程设计,负载均衡脚本的编写等,基本啥都干 - 吕宇鹏(031502425)
负责实验项目环境的搭建,例如pip,httplib2等工具;查找负载均衡的流量监控模块以及python相关的调试,并编写建立拓补的脚本。(队长的好助理) - 吴松青(031502630)
负责制作项目视频并辅助设计流程 - 郑珍发(031502641)
负责设计各个路由器的流表 - 张建桩(031502638)
协助设计各个路由器的流表
总结
先说下这次的期末作业,可以说让我更加明白了负载均衡对网络链路的性能优化,相同的器件链路,经过负载均衡,速度从原先的200MB/S变为超过8GB/s(视频里有指出来),可见负载均衡意义之大。
SDN这门课让我学到了
- SDN是什么,以及对它的过去和未来的发展有了一定的认知
- mininet的使用
- 如何用python建拓扑
- 用ovs査流表
- 如何使用wireshark抓包以及获取有用的数据
- 借助Postman通过ODL的北向接口下发流表以及查看流表
- 用ODL查看拓扑,下发流表,获取流表,并用uri接口获取端口数据
- Linux终端的基本命令操作