一、项目描述
A P4-based Network Load Balancing Application
基于P4的网络负载均衡项目
二、个人分工
The Controller :
- Acquire the counter value of switches per second
- Calculate the processing rate of switch
- Runtime traffic scheduling
三、代码演示及过程描述
if __name__ == '__main__':
time_interval = args.interval
try:
while True:
main()
sleep(time_interval)
except KeyboardInterrupt:
print 'User Interrupted'
try:
sys.exit(0)
except SystemExit:
os._exit(0)
- 每隔一段时间获取并计算底层交换机负载情况
- 动态进行路径调整
- 重复上述过程直至用户中断
例如:
(1) Inspect paths
path1: 1-2-3-h5
path2: 1-2-3-h4
path3: 1-2-4-h3
path4: 1-2-4-h2
path5: 1-5-3-h5
path6: 1-5-3-h4
path7: 1-5-4-h3
path8: 1-5-4-h2
(2) Read Counter per sec
cnt1: 20
cnt2: 50 —> warning!
cnt3: 20
cnt4: 0
…
(3) Calculate new path
path1: 1-2-3-h5 —> path5: 1-5-3-h5
四、课程感想
计算机的各个领域是相互贯通的,要联系学习,增强自主学习能力和查阅资料能力、动手能力。
-
了解了
什么是 SDN ,SDN 的基本思想、特点
有哪些控制器,控制层和数据层的通信标准协议
分布式控制器的几种扩展方式
ODL设计的三个层次
SDN 的应用领域
openflow多级流表机制的优点
ryu控制器
onos控制器
opendaylight控制器 -
接触了
SDNLAB 等几个优质的学习网站
网络相关知识 -
学会了
安装mininet
用字符命令生成拓扑并测试连通性
用可视化界面生成拓扑并测试连通性
用Python脚本生成Fat-tree型的拓扑
安装floodlight
生成拓扑并连接控制器floodlight,利用控制器floodlight查看图形拓扑
利用字符界面下发流表,通过测试联通性,来验证openflow的hardtime机制
利用OVS命令下发流表,实现VLAN功能
利用OVS命令查看流表
Wireshark抓包验证
借助Postman通过ODL的北向接口下发流表,再利用ODL北向接口查看已下发的流表
利用ODL下发组表、流表,实现建议负载均衡
利用Wireshark验证负载均衡的实现