Changes between Initial Version and Version 1 of GENIExperimenter/Tutorials/NFV/Ryu/LoadBalanceRRwithRyu


Ignore:
Timestamp:
10/19/16 16:49:45 (8 years ago)
Author:
wyf@bu.edu
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • GENIExperimenter/Tutorials/NFV/Ryu/LoadBalanceRRwithRyu

    v1 v1  
     1= Experiment 1: Load Balancing using Round Robin Control with Ryu Controller =
     2
     3== Overview ==
     4In this experiment, we will look at a Round Robin load balancer for a VNF Snort application. Snort will be running as IDS on VNF1 and VNF2 and we will try to balance the load across the two VNF instances by directing each new flow request to one of the two VNF instances in a round robin fashion.
     5 
     6
     7We will use the ''Netcat'' application to generate traffic between a source and destination. Netcat is a useful application for network debugging and investigation. It is used for reading from and writing to network connections using TCP or UDP. In other words, it is like talking on the phone. One node talks,  and another one, on the other side, listens and talks back. Using netcat, you can see the communication between a source and destination.
     8
     9
     10'''Note: another version of this experiment using POX controller can be found at [wiki:GENIExperimenter/Tutorials/NFV/Execute/LoadBalanceRR here].
     11
     12== Instructions ==
     13=== 1.     Open the ''controller'' window and execute the following: ===
     14
     15         - '''nano ~/ryu/ryu/app/nfv.conifg''' [[BR]]
     16and change the controller_type to '''RR'''.
     17
     18
     19 === 2.     Run the NFV_controller in the ''controller'' window: ===
     20           - '''~/ryu/bin/ryu-manager --verbose ~/ryu/ryu/app/nfv_controller.py'''
     21
     22 
     23 === 3.    Open the ''VNF1'' and ''VNF2'' windows and run Snort IDS on each of the VNFs as shown below: ===
     24
     25           - ''' sudo /usr/local/bin/snort -A full -dev -i eth1 '''
     26
     27 You should see the window shown below on the ''VNF1'' and ''VNF2'' windows.
     28{{{
     29#!html
     30<img src="http://csr.bu.edu/rina/grw-bu2016/nfv_ryu/pics/snortPic.png" hspace=5>
     31 }}}
     32
     33 === 4.     In the destination window, run the netcat server: ===
     34
     35        - ''' nc -u -l 5000 '''
     36
     37 
     38 === 5.     In the ''s1'' window, run the netcat client to send traffic to the ''destination'' node: ===
     39       
     40       - '''nc -u destination 5000'''
     41
     42
     43 === 6.     Type something on the ''s1'' window and you should see it on the ''destination'' window.  ===
     44
     45Now if you look at the ''VNF1'' and ''VNF2'' windows running Snort IDS, you could see packets arriving at the VNF1 and VNF2 nodes in a Round Robin fashion. An example of such an output is shown below on the VNF window running Snort IDS.
     46
     47{{{
     48#!html
     49<img src="http://csr.bu.edu/rina/grw-bu2016/nfv_ryu/pics/nfvPic.png" hspace=50>
     50 }}}
     51
     52In the ''controller'' window, you can see that the controller chooses VNF1 and VNF2 in a Round Robin fashion as shown below:
     53
     54{{{
     55#!html
     56<img src="http://csr.bu.edu/rina/grw-bu2016/nfv_ryu/pics/RRPic.png" hspace=50>
     57 }}}
     58
     59
     60{{{
     61#!html
     62<table id="Table_02" width = "700" border="0" cellpadding="0" cellspacing="10" >
     63 <tr>
     64<td> <img src = "http://csr.bu.edu/rina/grw-bu2016/tutorial_files/image022.gif"> </td>
     65<td> <b>OPTIONAL: Review the RR Controller Code</b> </td> </tr></table>
     66}}}
     67 The Round Robin code is based on the following algorithm:
     68
     69{{{
     70#!html
     71<img src="http://csr.bu.edu/rina/grw-bu2016/tutorial_files/image054.gif" hspace=50>
     72 }}}
     73
     74== Next Experiment ==
     75'''[wiki:GENIExperimenter/Tutorials/NFV/Ryu/LoadBalancePIwithRyu Experiment 2:  Load Balancing using Proportional Integral (PI) Control with Ryu Controller]'''[[BR]]
     76