Specialization Software-defined Networking (Winter 2014/2015): Difference between revisions

 
(31 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{Announcement|Note: Please register in FlexNow by today}}
{{Announcement|Note: The final report is due on April 30th.}}


== Details ==
== Details ==
{{CourseDetails
{{CourseDetails
|credits=150h, 5 ECTS
|credits=150h, 5 ECTS
|module=M.Inf.1230: Specialization Software-defined Networks (SDN)
|module=M.Inf.1230: Specialization Software-defined Networks (SDN)); ITIS: 3.32
|lecturer=[https://www.net.informatik.uni-goettingen.de/people/mayutan_arumaithurai?lang=de Dr. Mayutan Arumaithurai]
|lecturer=[https://www.net.informatik.uni-goettingen.de/people/mayutan_arumaithurai?lang=de Dr. Mayutan Arumaithurai]
|ta=tba
|ta=tba
Line 13: Line 13:


==Course Overview==
==Course Overview==
{{Announcement|Note: See the Last section titled "Due date for Reports" to know the final requirements for this course and what needs to be submitted.}}


Software-defined networking (SDN) has recently attracted both researchers in academia and big players in communication technologies, and is currently probably the 'hottest' topic in computer networking. This course is a continuation of the "Introduction to SDN" course and we will focus on gaining an advanced knowledge of SDN.  
Software-defined networking (SDN) has recently attracted both researchers in academia and big players in communication technologies, and is currently probably the 'hottest' topic in computer networking. This course is a continuation of the "Introduction to SDN" course and we will focus on gaining an advanced knowledge of SDN.  
Line 20: Line 23:


==Schedule==
==Schedule==
{{Announcement|Note: The exercises were changed from the originally planned ones based on the student's experience and difficulty level. See the "Exercises" section for the final exercises that one needs to submit.}}
{{Announcement|Note: The exercises were changed from the originally planned ones based on the student's experience while doing each excercise and difficulty level. See the "Exercises" section for the final exercises that one needs to submit.}}


{| {{Prettytable|width=}}
{| {{Prettytable|width=}}
Line 62: Line 65:
|-
|-
| align="right" | 27.03.2015
| align="right" | 27.03.2015
| Group Discussion V
| Group Discussion V (Changed to "Preparation for final presentation")
| Exercise IX: Service Chaining II
| Exercise IX: Service Chaining II  
| Final presentations I
| Final presentations I
| Final presentation II
| Final presentation II
Line 77: Line 80:
** Short report on the group discussion papers
** Short report on the group discussion papers
** Report on the paper presented by team-X for the final presentation  
** Report on the paper presented by team-X for the final presentation  
== Papers for final presentations ==


== Lecture Slides ==
== Lecture Slides ==
Line 96: Line 92:
=== 23 March ===
=== 23 March ===
* Exercise I: Data Centers [https://dl.dropboxusercontent.com/u/1652374/SDN_Course/1.Data_centers.zip] (exempt: all)
* Exercise I: Data Centers [https://dl.dropboxusercontent.com/u/1652374/SDN_Course/1.Data_centers.zip] (exempt: all)
* Exercise II: Fattree and Generic [https://dl.dropboxusercontent.com/u/1652374/SDN_Course/2.Datacenter_fattree_and_loadbalancing.zip] (exempt: Guryash)
* Exercise II: Fattree and Generic [https://dl.dropboxusercontent.com/u/1652374/SDN_Course/2.Datacenter_fattree_and_loadbalancing.zip] (exempt: Guryash, Sameer)


=== 24 March ===
=== 24 March ===
* Exercise III: Load balancers (contd. exercise II) [https://dl.dropboxusercontent.com/u/1652374/SDN_Course/2.Datacenter_fattree_and_loadbalancing.zip] (Exempt: All except Thomas)
* Exercise III: Load balancers (contd. exercise II) [https://dl.dropboxusercontent.com/u/1652374/SDN_Course/2.Datacenter_fattree_and_loadbalancing.zip] (Exempt: All except Thomas)
* Exercise IV: Firewall [https://dl.dropboxusercontent.com/u/1652374/SDN_Course/3.Firewall.zip] (Exempt: Khawar, Omar, Martin, Guryash, Siddhartha, Sameer, Eeran)
* Exercise IV: Firewall [https://dl.dropboxusercontent.com/u/1652374/SDN_Course/3.Firewall.zip] (Exempt: All except Thomas, Gurjinder)


=== 25 March ===
=== 25 March ===
* Exercise V: Firewall (contd. ) [https://dl.dropboxusercontent.com/u/1652374/SDN_Course/3.Firewall.zip] (Exempt: Khawar, Omar, Martin, Thomas, Sameer, Eeran, Guryash, Siddhartha)
* Exercise V: Firewall (contd. ) [https://dl.dropboxusercontent.com/u/1652374/SDN_Course/3.Firewall.zip] (Exempt: ALL)
* Exercise VI: Pyretic firewall [https://dl.dropboxusercontent.com/u/1652374/SDN_Course/4.pyretic_firewall.zip] (Exempt: Khawar, Sameer, Eeran, Thomas, Martin)
* Exercise VI: Pyretic firewall [https://dl.dropboxusercontent.com/u/1652374/SDN_Course/4.pyretic_firewall.zip] (Exempt: Khawar, Omar, Martin, Thomas, Sameer, Eeran)


=== 26 March ===
=== 26 March ===
* Exercise VII: Kinetic Firewall [https://dl.dropboxusercontent.com/u/1652374/SDN_Course/Exercises/kinetic.pdf Instructions], [https://dl.dropboxusercontent.com/u/1652374/SDN_Course/Exercises/kinetic_gardenwall.py Starting_Code]
* Exercise VII: Kinetic Firewall [https://dl.dropboxusercontent.com/u/1652374/SDN_Course/Exercises/kinetic.pdf Instructions], [https://dl.dropboxusercontent.com/u/1652374/SDN_Course/Exercises/kinetic_gardenwall.py Starting_Code]
(Exempt: Khawar, Omar, Martin, Thomas, Sameer, Eeran)
* Exercise VIII: Kinetic like firewall using pox [https://dl.dropboxusercontent.com/u/1652374/SDN_Course/Exercises/pox_gardenwall.pdf instructions] [https://dl.dropboxusercontent.com/u/1652374/SDN_Course/Exercises/pox_gardenwall.py Starting_Code][https://openflow.stanford.edu/display/ONL/POX+Wiki#POXWiki-ofp_flow_mod-Flowtablemodification Tutorial]
* Exercise VIII: Kinetic like firewall using pox [https://dl.dropboxusercontent.com/u/1652374/SDN_Course/Exercises/pox_gardenwall.pdf instructions] [https://dl.dropboxusercontent.com/u/1652374/SDN_Course/Exercises/pox_gardenwall.py Starting_Code][https://openflow.stanford.edu/display/ONL/POX+Wiki#POXWiki-ofp_flow_mod-Flowtablemodification Tutorial]
(Exempt: Khawar, Omar, Martin, Thomas, Sameer, Eeran)


=== 27 March ===
=== 27 March ===
* Exercise IX: Pyretic Debugging
* Exercise IX: Pyretic Debugging (Exempt: Omar, Martin, Thomas, Sameer, Eeran)
'''HINT:''' You might have to use the "$ dpctl dump-flows tcp:127.0.0.1:6634" or "mininet> dpctl dump-flows" command frequently. 
** In this debugging exercise, we take solutions available in the Internet for the gardenwall problem and try to fix bugs in it.
** We have done kinetic firewall in exercise VII and imitated the same firewall using pox in exercise VIII. Now, we will imitate the same firewall using pyretic.  
** We have done kinetic firewall in exercise VII and imitated the same firewall using pox in exercise VIII. Now, we will imitate the same firewall using pyretic.  
** The basic solution is taken from the Internet [https://dl.dropboxusercontent.com/u/1652374/SDN_Course/Exercises/pyretic_gardenwall_internetsolution.py], test if it is able to block h1 when "infected". Note that we will only use the "infected == True" for this exercise.
** The basic solution is taken from the Internet [https://dl.dropboxusercontent.com/u/1652374/SDN_Course/Exercises/pyretic_gardenwall_internetsolution1.py], test if it is able to block h1 when "infected". Note that we will only use the "infected == True" for this exercise.
*** start controller (in /home/mininet/pyretic folder): pyretic.py pyretic.examples.gardenwall_internetcode
*** Copy the above code into /home/mininet/pyretic/pyretic/examples as gardenwall_internetsolution.py
*** start controller (in /home/mininet/pyretic folder): pyretic.py pyretic.examples.gardenwall_internetsolution
*** start mininet: sudo mn --controller=remote --topo=single,3 --mac --arp
*** start mininet: sudo mn --controller=remote --topo=single,3 --mac --arp
*** check h1 ping h2
*** check h1 ping h2
*** Now infect h1: python json_sender.py -n infected -l True --flow="{srcmac=00:00:00:00:00:01}" -a 127.0.0.1 -p 50001
*** Now infect h1 (in /home/mininet/pyretic/pyretic/kinetic folder): python json_sender.py -n infected -l True --flow="{srcmac=00:00:00:00:00:01}" -a 127.0.0.1 -p 50001
*** check h1 ping h2. We should be able to observe that this traffic is blocked.
*** check h1 ping h2. We should be able to observe that this traffic is blocked.
** Now, we move on to the debugging part
*** Now, we move on to the debugging part
*** check h2 ping h3, what happens?  
**** check h2 ping h3, what happens?  
*** Now, modify the given code to allow h2 traffic to pass through to h3
**** Now, modify the given code to allow h2 traffic to pass through to h3, when h1 is "infected".
** Now, check if the "exempt" case is working fine too
** if time permits, check and improve code to allow h1 to ping h2
** If time permits, try fixing [https://dl.dropboxusercontent.com/u/1652374/SDN_Course/Exercises/pyretic_gardenwall_internetsolution.py this] code for the "infected" case.


== Group Discussion Papers ==
== Group Discussion Papers ==
(The names of those who HAVE to submit a report have been mentioned for each group discussion)
* GD I: [https://dl.dropboxusercontent.com/u/1652374/SDN_Course/Flowguard_robust_firewalls.pdf paper1][https://dl.dropboxusercontent.com/u/1652374/SDN_Course/app_aware_dataplane_processing.pdf paper2]
* GD I: [https://dl.dropboxusercontent.com/u/1652374/SDN_Course/Flowguard_robust_firewalls.pdf paper1][https://dl.dropboxusercontent.com/u/1652374/SDN_Course/app_aware_dataplane_processing.pdf paper2]
** Those who have to submit report: Thomas, Guryash, Siddhartha, Pranay, Gurjinder


* GD II: [https://dl.dropboxusercontent.com/u/1652374/SDN_Course/SDN-traceroute.pdf paper1][https://dl.dropboxusercontent.com/u/1652374/SDN_Course/Conext-2015-best-short-paper-Controller-agnostic-SDN-Debugging.pdf paper2]
* GD II: [https://dl.dropboxusercontent.com/u/1652374/SDN_Course/SDN-traceroute.pdf paper1][https://dl.dropboxusercontent.com/u/1652374/SDN_Course/Conext-2015-best-short-paper-Controller-agnostic-SDN-Debugging.pdf paper2]
** Those who have to submit report: Thomas, Hari, Guryash, Siddhartha, Pranay, Sameer, Eeran


* GD III: Discussed the 6 papers that were allocated for the final presentations
* GD III: Discussed the 6 papers that were allocated for the final presentations
** Those who have to submit report: NONE


* GD IV: Discussion of 5 short papers
* GD IV: Discussion of 5 short papers
**[https://dl.dropboxusercontent.com/u/1652374/SDN_Course/March-26-papers/cab.pdf CAB]
** Those who have to submit report: NONE
**[https://dl.dropboxusercontent.com/u/1652374/SDN_Course/March-26-papers/Open-Transport-Switch.pdf Open Transport Switch]
***[https://dl.dropboxusercontent.com/u/1652374/SDN_Course/March-26-papers/cab.pdf CAB]
**[https://dl.dropboxusercontent.com/u/1652374/SDN_Course/March-26-papers/pathlet.pdf pathlet]
***[https://dl.dropboxusercontent.com/u/1652374/SDN_Course/March-26-papers/Open-Transport-Switch.pdf Open Transport Switch]
**[https://dl.dropboxusercontent.com/u/1652374/SDN_Course/March-26-papers/rulebricks.pdf rulebricks]
***[https://dl.dropboxusercontent.com/u/1652374/SDN_Course/March-26-papers/pathlet.pdf pathlet]
**[https://dl.dropboxusercontent.com/u/1652374/SDN_Course/March-26-papers/Using%20Mac%20Address.pdf Using Mac Address]
***[https://dl.dropboxusercontent.com/u/1652374/SDN_Course/March-26-papers/rulebricks.pdf rulebricks]
***[https://dl.dropboxusercontent.com/u/1652374/SDN_Course/March-26-papers/Using%20Mac%20Address.pdf Using Mac Address]
 
== Papers for final presentation (Will be presented in the following order) ==
 
* Democratic Resolution of Resource Conflicts Between SDN Control Programs, CoNext 2014 [https://dl.dropboxusercontent.com/u/1652374/SDN_Course/Finally-selected-papers/conext-democratic.pdf]
Presenters: Khawar, Omar
 
* ClickOS and the Art of Network Function Virtualization, NSDI 2014 [https://dl.dropboxusercontent.com/u/1652374/SDN_Course/Finally-selected-papers/nsdi14-paper-Felipe.pdf]
Presenters: Eeran


== Papers for final presentation ==
* Forwarding Metamorphosis: Fast Programmable Match-Action Processing in Hardware for SDN, Sigcomm 2013 [https://dl.dropboxusercontent.com/u/1652374/SDN_Course/Finally-selected-papers/metamorph.pdf]
Presenters: Martin, Thomas


* A Network-State Management Service, Sigcomm 2014 [https://dl.dropboxusercontent.com/u/1652374/SDN_Course/Finally-selected-papers/network-state-mgmt-sigcomm2014.pdf]
* A Network-State Management Service, Sigcomm 2014 [https://dl.dropboxusercontent.com/u/1652374/SDN_Course/Finally-selected-papers/network-state-mgmt-sigcomm2014.pdf]
* Forwarding Metamorphosis: Fast Programmable Match-Action Processing in Hardware for SDN, Sigcomm 2013 [https://dl.dropboxusercontent.com/u/1652374/SDN_Course/Finally-selected-papers/metamorph.pdf]
Presenters: Sameer, Hari
* ClickOS and the Art of Network Function Virtualization, NSDI 2014 [https://dl.dropboxusercontent.com/u/1652374/SDN_Course/Finally-selected-papers/nsdi14-paper-Felipe.pdf]
 
* Dynamic Scheduling of Network Updates, Sigcomm 2014 [https://dl.dropboxusercontent.com/u/1652374/SDN_Course/Finally-selected-papers/dynamic-scheduling-sigcomm2014.pdf]
* Dynamic Scheduling of Network Updates, Sigcomm 2014 [https://dl.dropboxusercontent.com/u/1652374/SDN_Course/Finally-selected-papers/dynamic-scheduling-sigcomm2014.pdf]
Presenters: Guryash, Siddhartha
* I Know What Your Packet Did Last Hop: Using Packet Histories to Troubleshoot Networks, NSDI 2014 [https://dl.dropboxusercontent.com/u/1652374/SDN_Course/Finally-selected-papers/nsdi14-IKnowWhatYourPacketDidLastHop.pdf]
* I Know What Your Packet Did Last Hop: Using Packet Histories to Troubleshoot Networks, NSDI 2014 [https://dl.dropboxusercontent.com/u/1652374/SDN_Course/Finally-selected-papers/nsdi14-IKnowWhatYourPacketDidLastHop.pdf]
* Democratic Resolution of Resource Conflicts Between SDN Control Programs, CoNext 2014 [https://dl.dropboxusercontent.com/u/1652374/SDN_Course/Finally-selected-papers/conext-democratic.pdf]
Presenters: Pranay, Gurjinder


=== Extra ===
=== Extra ===
* A Distributed and Robust SDN Control Plane for Transactional Network Updates, Infocom 2015 [https://dl.dropboxusercontent.com/u/1652374/SDN_Course/Finally-selected-papers/infocom15-distributed-sdn-control-plane.pdf]
* A Distributed and Robust SDN Control Plane for Transactional Network Updates, Infocom 2015 [https://dl.dropboxusercontent.com/u/1652374/SDN_Course/Finally-selected-papers/infocom15-distributed-sdn-control-plane.pdf]
==Requirement and Due Date for Final Report (E-Mail to Mayutan)==
{{Announcement|Note: The final report is due on April 30th.}}
* Submit your final report (in .pdf format) as well as code (in .py format) as one zipped file with your name.
 
subject line of email: Submission of work for Specialization in SDN
Name of attachment: name.zip, e.g., if when I submit the final work, the file will be named: Mayutan.zip
'''NOTE:''' Your final report ([ftp://ftp.springer.de/pub/tex/latex/llncs/latex2e/llncs2e.zip LaTeX Template]) should include:
* Title sheet showing your name and matriculation number
* Papers discussed during GD-I, GD-II, GD-III (see Group-Discussion section to see the list of those who need to submit a report)
Papers of each GD should be summarized in 1-2 pages using the [http://user.informatik.uni-goettingen.de/~dkoll/files/sdn/review.docx review form].
* One review form for the paper you were assigned during the course for the final presentation (Use this [http://user.informatik.uni-goettingen.de/~dkoll/files/sdn/review.docx review form]). 
One review per participant is mandatory to pass.
Those who need to write the extra three pages (Guryash, Siddhartha, Pranay, Gurjinder) will preferable have to submit review of another paper presented during the final presentation.
Make sure that you write your own review. Copy/Paste reviews from other participants of the course will not be accepted. The reviews are individual work.
* screenshots to prove that the code is working for those who didn't show it to me during the lecture. Please refer to the Exercise Section above.
* The slides (if any) you used for presenting your papers in class.
No need to improve the slides after presenting.




783

edits