783
edits
(22 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
{{Announcement|Note: | {{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 96: | Line 99: | ||
=== 25 March === | === 25 March === | ||
* Exercise V: Firewall (contd. ) [https://dl.dropboxusercontent.com/u/1652374/SDN_Course/3.Firewall.zip] (Exempt: ALL | * 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, Omar, Martin, Thomas, Sameer, Eeran) | * Exercise VI: Pyretic firewall [https://dl.dropboxusercontent.com/u/1652374/SDN_Course/4.pyretic_firewall.zip] (Exempt: Khawar, Omar, Martin, Thomas, Sameer, Eeran) | ||
Line 105: | Line 108: | ||
* 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) | (Exempt: Khawar, Omar, Martin, Thomas, Sameer, Eeran) | ||
=== 27 March === | === 27 March === | ||
* Exercise IX: Pyretic Debugging (Exempt: | * 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. | ** 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_internetsolution1.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. | *** 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, when h1 is "infected". | **** 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. | ** If time permits, try fixing [https://dl.dropboxusercontent.com/u/1652374/SDN_Course/Exercises/pyretic_gardenwall_internetsolution.py this] code for the "infected" case. | ||
Line 143: | Line 148: | ||
***[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/Using%20Mac%20Address.pdf Using Mac Address] | ||
== Papers for final presentation == | == 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 | |||
* 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] | ||
Presenters: Sameer, Hari | |||
* 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] | ||
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. | |||
edits