基于SDN网络的负载均衡研究与实现 (3)

  本次方案是在SDNHub_tutorial_VM_64(当然你也可以在乌班图上进行)系统上实现的。控制器使用POX,虚拟拓扑的搭建使用Mininet,服务器使用python创建简易的HTTP服务器。进入系统后,通过”sudo mn –topo single,6 –controller=remote,port=6633”创建一个简单的拓扑图,其中6633指POX控制器的端口号。
step1.创建拓扑

基于SDN网络的负载均衡研究与实现


  实验拓扑如图所示,由六台主机地址为10.0.0.x(1-6)和交换机组成,POX控制器连接交换机。

基于SDN网络的负载均衡研究与实现


step2.打开服务器
  通过xterm[host]打开主机h1和h2,h1和h2作为服务器实验中对服务器的要求不是那么高,所以服务器选用python的server模块中的SimpleHTTPServer作为HTTP服务器来响应请求包,HTTP服务器端口设置为80。

基于SDN网络的负载均衡研究与实现


step3.控制器与负载均衡策略
  sudo ./pox.py log.level –DEBUG misc.ip_loadbalanced行POX控制器并同时打开了ip_loadbalancer,ip_loadbalancer主要负载均衡的策略实现,POX控制器用于处理流量。当出现“IP LOAD BALANCER READY”和“Server up”表示运行成功,负载均衡和HTTP服务器已开启。

基于SDN网络的负载均衡研究与实现


step4.发送请求
  打开其他的主机,作为发送请求的主机,通过curl指令,对服务器server1和server2发起METHOD为GET的请求,发送一个Request packet。请求成功,服务器会回送一个网页信息。

基于SDN网络的负载均衡研究与实现


  同时使用多台主机,重复请求控制器多次,观察POX的流量路径走向。分析流量,可以观察到多台主机请求控制器,最终请求到的服务器不一样,流量的走向也不一样。
在服务器端,h1和h2上可以对收到的包进行拆包处理,在GET请求的这些过程中,h1和h2并行工作,并且每次同样的请求不会在同一台服务器模拟上进行处理。

基于SDN网络的负载均衡研究与实现


step5.抓包测试
  为了确保实验结果的偶然性,我们重复进行多次测试,且使用wireshark进行抓包分析。.这次不进行大量重复发包实验,而是使用阶段性发包处理,第一次发送Request packet包后,间隔一段时间后再次发送一个包给控制器。如下为第一次和第二结果的抓包结果,可以看到第一次处理的服务器为h2,第二次处理的服务器为h1。
第一次:

基于SDN网络的负载均衡研究与实现


第二次:

基于SDN网络的负载均衡研究与实现

实验视频(英语好的朋友可以尝试跟着做一遍)>youtube

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyyxsy.html