Exercises pyretic firewall: Difference between revisions
Created page with "= Exercise: Pyretic Firewall = * Aim: Pyretic based firewall * Topology [https://dl.dropboxusercontent.com/u/1652374/SDN_course_WS2015-2016/Exercises/ex3/1.firewall-fig.pdf] * Pu..." |
|||
| (2 intermediate revisions by the same user not shown) | |||
| Line 3: | Line 3: | ||
* Topology [https://dl.dropboxusercontent.com/u/1652374/SDN_course_WS2015-2016/Exercises/ex3/1.firewall-fig.pdf] | * Topology [https://dl.dropboxusercontent.com/u/1652374/SDN_course_WS2015-2016/Exercises/ex3/1.firewall-fig.pdf] | ||
* Put the following files([https://dl.dropboxusercontent.com/u/1652374/SDN_course_WS2015-2016/Exercises/ex4/pyretic_firewall_students.zip]) in folder: pyretic/pyretic/examples | * Put the following files([https://dl.dropboxusercontent.com/u/1652374/SDN_course_WS2015-2016/Exercises/ex4/pyretic_firewall_students.zip]) in folder: pyretic/pyretic/examples | ||
== (20P) Run the pyretic hub example == | |||
$ sudo mn --controller remote --topo=single,3 --mac --arp | |||
$ cd pyretic | |||
$ pyretic.py –v high pyretic.examples.pyretic_hub | |||
** Verify that the hosts can ping each other | ** Verify that the hosts can ping each other | ||
** | $ h1 ping h2 | ||
$ h1 ping h3 | |||
** then | |||
$ mininet> xterm h1 h2 h3 | |||
h2$ tcpdump -xx -n -i h2-eth0 | |||
h3$ tcpdump -xx -n -i h3-eth0 | |||
h1$ ping -c1 10.0.0.2 | |||
** Observe what happens when you do | ** Observe what happens when you do | ||
h1$ ping -c1 10.0.0.5 | |||
** Look into the hub code: pyretic/pyretic/examples/pyretic_hub | ** Look into the hub code: pyretic/pyretic/examples/pyretic_hub | ||
== (20P) Run the pyretic switch example == | |||
$ pyretic.py –v high pyretic.examples.pyretic_switch1 | |||
** restart mininet | |||
$ sudo mn --controller remote --topo=single,3 --mac --arp | |||
** Verify that the hosts can ping each other | ** Verify that the hosts can ping each other | ||
mininet> xterm h1 h2 h3 | |||
h2$ tcpdump -xx -n -i h2-eth0 | |||
h3$ tcpdump -xx -n -i h3-eth0 | |||
h1$ ping -c1 10.0.0.2 | |||
** Observe what happens when you do | ** Observe what happens when you do | ||
h1$ ping -c1 10.0.0.5 | |||
** Look into the switch code: pyretic/pyretic/examples/pyretic_switch1.py | ** Look into the switch code: pyretic/pyretic/examples/pyretic_switch1.py | ||
== (60P) Implement a layer 2 firewall that runs alongside the MAC learning module on the pyretic OpenFlow Controller == | |||
** Your firewall should be agnostic to the underlying topology | ** Your firewall should be agnostic to the underlying topology | ||
** Write code to block h1 to h2 and h2 to h1 (Mac IDs: 00:00:00:00:00:01, 00:00:00:00:00:02) | ** Write code to block h1 to h2 and h2 to h1 (Mac IDs: 00:00:00:00:00:01, 00:00:00:00:00:02) | ||
| Line 33: | Line 40: | ||
** See in pyretic_firewall.py for instructions on how to test the code as well as how to write the code | ** See in pyretic_firewall.py for instructions on how to test the code as well as how to write the code | ||
** To Test run: | ** To Test run: | ||
$ sudo mn --controller remote --topo=single,3 --mac --arp | |||
$ pyretic.py –v high pyretic.examples.pyretic_firewall | |||