Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pc:laboratoare:04 [2022/03/22 00:15]
vlad_andrei.badoiu [Implementare data plane router]
pc:laboratoare:04 [2022/03/27 23:32] (current)
vlad_andrei.badoiu [Resurse Utile]
Line 13: Line 13:
   * [[https://​www.youtube.com/​watch?​v=_y36fG2Oba0|The Day The Routers Died...]]   * [[https://​www.youtube.com/​watch?​v=_y36fG2Oba0|The Day The Routers Died...]]
 ==== Inainte de laborator ==== ==== Inainte de laborator ====
- 
- 
- 
  
 Pentru a simula o retea virtuala vom folosi [[http://​mininet.org/​ | Mininet]]. Vom avea nevoie de pachetele **mininet** si **openvswitch-testcontroller** pentru a simula reteaua si **python-click** si **python-scapy** pentru checker. Pentru a simula o retea virtuala vom folosi [[http://​mininet.org/​ | Mininet]]. Vom avea nevoie de pachetele **mininet** si **openvswitch-testcontroller** pentru a simula reteaua si **python-click** si **python-scapy** pentru checker.
  
- <code bash>+<code bash>
  sudo apt update  sudo apt update
- sudo apt install mininet openvswitch-testcontroller tshark ​python-click ​python-scapy xterm+ sudo apt install mininet openvswitch-testcontroller tshark ​python3-click ​python3-scapy xterm 
 + sudo pip3 install mininet
 </​code> ​ </​code> ​
  
 +<note warning>
 +Pe unele versiuni mai vechi de ubuntu este posibil sa fie nevoie sa instalati ''​python-click''​ si ''​python-scapy''​ fiind folosit Python 2.
 +</​note>​
 <note warning> Din incercarile noastre, Mininet nu functioneaza pe Windows Subsystem for Linux. Este recomandat sa folositi Linux nativ sau intr-un mediu virtualizat. La adresa https://​ocw.cs.pub.ro/​courses/​pc/​res/​mv puteti gasi o masina virtuala cu Ubuntu 18.04. <note warning> Din incercarile noastre, Mininet nu functioneaza pe Windows Subsystem for Linux. Este recomandat sa folositi Linux nativ sau intr-un mediu virtualizat. La adresa https://​ocw.cs.pub.ro/​courses/​pc/​res/​mv puteti gasi o masina virtuala cu Ubuntu 18.04.
 </​note>​ </​note>​
Line 268: Line 269:
 1. Scheletul laboratorului se regaseste [[https://​gitlab.cs.pub.ro/​protocoale-de-comunicatie/​pcom-laboratoare-public/​-/​tree/​master/​lab4|aici]]. Comanda de mai jos va creea topologia retelei, va lansa routerul, va rula testele pentru verificarea conectivitatii si va prezenta un prompt prin care se poate interactiona cu topologia si hostii. 1. Scheletul laboratorului se regaseste [[https://​gitlab.cs.pub.ro/​protocoale-de-comunicatie/​pcom-laboratoare-public/​-/​tree/​master/​lab4|aici]]. Comanda de mai jos va creea topologia retelei, va lansa routerul, va rula testele pentru verificarea conectivitatii si va prezenta un prompt prin care se poate interactiona cu topologia si hostii.
  
-<code bash> sudo python topo.py </​code> ​+<code bash> ​ 
 +sudo pkill ovs-test 
 +sudo python topo.py 
 +</​code> ​
  
 Se poate interactiona cu hostii prin intermediul promptului mininet. Unde se pot rula comenzi precum **ping**, **wget**, **nc** etc. Comenzile trebuie prefixate cu numele hostului. De exemplu, pentru a lansa comanda **ping 192.168.3.2** pe **host1** vom folosi **host1 ping 192.168.3.2**. Mai multe detalii gasiti in sectiunea ''​Testare''​. Se poate interactiona cu hostii prin intermediul promptului mininet. Unde se pot rula comenzi precum **ping**, **wget**, **nc** etc. Comenzile trebuie prefixate cu numele hostului. De exemplu, pentru a lansa comanda **ping 192.168.3.2** pe **host1** vom folosi **host1 ping 192.168.3.2**. Mai multe detalii gasiti in sectiunea ''​Testare''​.
Line 403: Line 407:
   * Ce face daca se trimit multe pachete duplicate? **make distclean** din Linux si  **make distclean && make** din cadrul terminalului deschis pentru router.   * Ce face daca se trimit multe pachete duplicate? **make distclean** din Linux si  **make distclean && make** din cadrul terminalului deschis pentru router.
   * Cum folosesc ip_checksum?​ <code C> ip_checksum(ip_hdr,​ sizeof(struct iphdr)); /* initial header checksum = 0 */</​code>​   * Cum folosesc ip_checksum?​ <code C> ip_checksum(ip_hdr,​ sizeof(struct iphdr)); /* initial header checksum = 0 */</​code>​
-==== Resurse ​Utile ====+==== Resurse ​Extra ====
    * [[https://​github.com/​mininet/​mininet/​wiki/​Introduction-to-Mininet | Introducere in Mininet]]    * [[https://​github.com/​mininet/​mininet/​wiki/​Introduction-to-Mininet | Introducere in Mininet]]
    * [[https://​lagunita.stanford.edu/​c4x/​Engineering/​Networking-SP/​asset/​ps_switching.pdf | Packet Switching]]    * [[https://​lagunita.stanford.edu/​c4x/​Engineering/​Networking-SP/​asset/​ps_switching.pdf | Packet Switching]]
    * [[https://​people.eecs.berkeley.edu/​~istoica/​classes/​cs268/​05/​notes/​Lecture10.pdf | Router Design and Packet Lookup]]    * [[https://​people.eecs.berkeley.edu/​~istoica/​classes/​cs268/​05/​notes/​Lecture10.pdf | Router Design and Packet Lookup]]
    * [[https://​tools.ietf.org/​html/​rfc791 | RFC 791 - Internet Protocol]]    * [[https://​tools.ietf.org/​html/​rfc791 | RFC 791 - Internet Protocol]]
 +
 +
 +<​note>​
 +O posibila solutie a laboratorului se gaseste [[https://​ocw.cs.pub.ro/​courses/​_media/​pc/​laboratoare/​lab4-rezolvare.zip|aici]]
 +</​note>​
pc/laboratoare/04.txt · Last modified: 2022/03/27 23:32 by vlad_andrei.badoiu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0