Changes between Version 12 and Version 13 of GENIExperimenter/Tutorials/NFV/Ryu/HandlingIntrusionwithRyu


Ignore:
Timestamp:
10/30/17 11:18:02 (7 years ago)
Author:
Nabeel Akhtar
Comment:

--

Legend:

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

    v12 v13  
    1313We use the same PI control for load balancing as in [wiki:GENIExperimenter/Tutorials/NFV/Ryu/LoadBalancePIwithRyu Experiment 2], and you can find details about the PI control there.
    1414
    15 == (1) RINA Distributed Application ==
    16 
    17 Same as Part (1) RINA Distributed Application in [wiki:GENIExperimenter/Tutorials/NFV/Ryu/LoadBalancePIwithRyu Experiment 2].
     15== (1) RINA Distributed Application == (Same as Part (1) RINA Distributed Application in [wiki:GENIExperimenter/Tutorials/NFV/Ryu/LoadBalancePIwithRyu Experiment 2]. )
     16
     17First we will run a RINA distributed application to collect the VNF load information on the controller node.
     18
     19{{{
     20#!html
     21<table id="Table_02" width = "1150" border="0" cellpadding="0" cellspacing="10" >
     22 <tr>
     23<td> <img src = "http://csr.bu.edu/rina/grw-bu2016/tutorial_files/image068.gif" > </td>
     24<td>  We need Java installed on the <i> VNF1, VNF2 </i> and <i> controller </i> nodes to run the RINA application. Check if Java is installed using: java -version. If not, install java on <i> VNF1, VNF2 </i> and <i> controller </i> nodes in new windows (Type Ctrl-C to exit netcat on the sources and destination). To install Java, execute: &nbsp;<span style="background:#c0c0c0; font-size: 10pt"><b>sudo apt-get install openjdk-7-jdk </b> </span> <br>
     25<b>(If the install fails, you may first run: sudo apt-get update. In some cases, you may need to first run: sudo add-apt-repository ppa:openjdk-r/ppa followed by: sudo apt-get update.)</b> 
     26 </td></tr></table>
     27}}} 
     28
     29
     30     1.  In the controller window, download the RINA controller code:
     31
     32      - ''' cd ~ '''
     33      - '''  wget !http://csr.bu.edu/rina/grw-bu2016/nfv_ryu/rina/Control.tar.gz '''
     34      - ''' tar -xvf Control.tar.gz '''
     35
     36
     37 2.     Type ''ifconfig'' to get the IP address of the controller. Save this address as we will need this address to direct the RINA processes on the VNFs to the RINA process on the controller.
     38
     39 3.     In a new VNF1 window, download the RINA VNF1 code:
     40
     41
     42      - ''' cd ~ '''
     43      - '''  wget !http://csr.bu.edu/rina/grw-bu2016/nfv_ryu/rina/VNF1.tar.gz '''
     44      - ''' tar -xvf VNF1.tar.gz '''
     45
     46 4.     In a new VNF2 window, download the RINA VNF2 code.
     47
     48
     49      - ''' cd ~ '''
     50      - '''  wget !http://csr.bu.edu/rina/grw-bu2016/nfv_ryu/rina/VNF2.tar.gz '''
     51      - ''' tar -xvf VNF2.tar.gz '''
     52
     53 5.     Now we will change the IP address in the RINA configuration files for VNF1, VNF2 and controller, so these RINA processes can talk to each other.
     54 In the VNF1 window, execute:
     55
     56      - ''' cd ~/VNF1'''
     57      - ''' nano ipcVNF1.properties '''
     58
     59 At the bottom of the file, change the '''''rina.dns.name''''' and '''''rina.idd.name''''' to the IP address of the controller. The following screenshot shows an example.
     60
     61{{{
     62#!html
     63<img src="http://csr.bu.edu/rina/grw-bu2016/nfv_ryu/pics/DNSIDDConfig.png" hspace=50>
     64 }}}
     65
     66 In the VNF2 window, execute:
     67
     68      - ''' cd ~/VNF2'''
     69      - ''' nano ipcVNF2.properties '''
     70 
     71 At the bottom of the file, again change the '''''rina.dns.name''''' and '''''rina.idd.name''''' to the IP address of the controller.
     72
     73 In the controller window, execute:
     74
     75     - '''cd ~/Control/RINA'''
     76     - '''nano ipcControl.properties'''
     77
     78 At the bottom of the file, again change the ''''rina.dns.name'''' and ''''rina.idd.name'''' to the IP address of the controller.
     79
     80
     81
     82 6.     To run the RINA application, follow these steps (make sure you installed Java as noted above):
     83
     84  o   In the controller window, execute the following commands:
     85
     86      - ''' cd ~/Control/RINA/'''
     87      - ''' ./run_controller.sh '''
     88
     89  o   In the VNF1 window, execute the following commands:
     90
     91      - '''cd ~/VNF1/'''
     92      - ''' ./run_VNF1.sh '''
     93
     94
     95  o   In the VNF2 window, execute the following commands:
     96
     97      - '''cd ~/VNF2/'''
     98      - ''' ./run_VNF2.sh '''
     99
     100
     101 
     102  You should see output on the controller window as shown below:
     103{{{
     104#!html
     105<img src="http://csr.bu.edu/rina/grw-bu2016/nfv_ryu/pics/subInfo.png" hspace=2>
     106 }}}
     107
     108{{{
     109#!html
     110<table id="Table_02" width = "1150" border="0" cellpadding="0" cellspacing="10" >
     111 <tr>
     112<td> <img src = "http://csr.bu.edu/rina/grw-bu2016/tutorial_files/image068.gif" > </td>
     113<td>  <i> The RINA application on VNF1 and VNF2 should be run as soon as possible after the RINA application on the controller  is started. If you wait for too long, you will get <b> null</b> values for CPU usage, as the controller's RINA app is not able to subscribe to the CPU load of the VNFs. </i> If this is the case, you should restart all RINA processes.   
     114 </td></tr></table>
     115}}} 
     116
     117
     118'''Note: the RINA distributed application also passes the intrusion detection results from the VNFs to the Ryu controller. This information is not used in this experiment, but will be used in [wiki:GENIExperimenter/Tutorials/NFV/Ryu/HandlingIntrusionwithRyu Experiment 3] when handling intrusion traffic.'''
     119
     120
     121
     122{{{
     123#!html
     124<table id="Table_02" width = "650" border="0" cellpadding="0" cellspacing="10" >
     125 <tr>
     126<td> <img src = "http://csr.bu.edu/rina/grw-bu2016/tutorial_files/image022.gif" > </td>
     127<td>  <i> To stop all RINA processes running on a VM, run <b> killall -v java </b> </i>
     128 </td></tr></table>
     129}}} 
     130
     131
    18132
    19133== (2) PI Controller ==