This shows you the differences between two versions of the page.
rl:teme:tema1_sw [2024/10/24 22:05] vlad_andrei.badoiu [VLAN] |
rl:teme:tema1_sw [2024/11/02 13:52] (current) vlad_andrei.badoiu |
||
---|---|---|---|
Line 3: | Line 3: | ||
=== Lectura recomandata === | === Lectura recomandata === | ||
- | * **Cursul si laboratorul de VLAN & STP** | + | * Tema ar trebui facuta doar dupa ce ati parcurs **Cursul si laboratorul de VLAN & STP** |
* [[https://beta.computer-networking.info/syllabus/default/protocols/lan.html?highlight=spanning%20tree%20protocol#ethernet-switches|Ethernet Switches]] | * [[https://beta.computer-networking.info/syllabus/default/protocols/lan.html?highlight=spanning%20tree%20protocol#ethernet-switches|Ethernet Switches]] | ||
Line 303: | Line 303: | ||
Pentru rezolvarea temei, trebuie să implementați funcționalitatea unui switch. Va recomandăm să folosiți cel puțin ping pentru a testa implementarea și **Wireshark** pentru depanare și analiză corectitudinii. Punctajul este împărțit în mai multe componente, după cum urmează: | Pentru rezolvarea temei, trebuie să implementați funcționalitatea unui switch. Va recomandăm să folosiți cel puțin ping pentru a testa implementarea și **Wireshark** pentru depanare și analiză corectitudinii. Punctajul este împărțit în mai multe componente, după cum urmează: | ||
- | * **Procesul de comutare (30p)**. Va trebui sa implementați funcționalitatea descrisă in secțiunea **Procesul de Comutare**. Pentru acest exercițiu nu este nevoie sa implementați funcționalitatea referitoare la VLAN sau STP. Pentru a evita buclele, vom porni doar switch-urile 0 si 1. | + | * **Procesul de comutare (30p)**. Va trebui să implementați funcționalitatea descrisă în secțiunea **Procesul de Comutare**. Pentru acest exercițiu nu este nevoie să implementați funcționalitatea referitoare la VLAN sau STP. Pentru a evita buclele, vom porni doar switch-urile 0 și 1. |
- | * **VLAN (30p)**. Vom implementa funcționalitatea de Virtual Local Area Networks (VLANs). Fișierele de configurație ale switch-urilor se găsesc in directorul **configs**. Pentru a evita buclele, vom porni doar switch-urile 0 si 1. | + | * **VLAN (30p)**. Vom implementa funcționalitatea de Virtual Local Area Networks (VLANs). Fișierele de configurație ale switch-urilor se găsesc în directorul **configs**. Pentru a evita buclele, vom porni doar switch-urile 0 si 1. |
* ** STP (40p)**. In acest exercițiu vom introduce si switch-ul 2, care va determina apariția unei bucle. Se cere implementarea protocolului STP simplificat, descris in enunț, pentru a evita trimiterea pachetelor la infinit. | * ** STP (40p)**. In acest exercițiu vom introduce si switch-ul 2, care va determina apariția unei bucle. Se cere implementarea protocolului STP simplificat, descris in enunț, pentru a evita trimiterea pachetelor la infinit. | ||
Line 312: | Line 312: | ||
</note> | </note> | ||
+ | <note> | ||
Puteți scrie implementarea în Python sau C/C++. Daca lucrati in C/C++ va trebui sa schimbati regula de rulare a switch-ului din **Makefile**. | Puteți scrie implementarea în Python sau C/C++. Daca lucrati in C/C++ va trebui sa schimbati regula de rulare a switch-ului din **Makefile**. | ||
</note> | </note> | ||
Line 374: | Line 375: | ||
</note> | </note> | ||
==== FAQ ==== | ==== FAQ ==== | ||
+ | |||
+ | **Q:** Ce versiune de python ruleaza checker-ul de pe Moodle? | ||
+ | |||
+ | **A:** | ||
+ | Python 3.8.10 (Atentie la ce functionalitati folositi) | ||
+ | |||
+ | **Q:** Pe Moodle primesc punctaj 0, pe local 100. | ||
+ | **A:** Cele mai intalnite probleme sunt faptul ca arhiva trimita nu contine in root-ul ei fisierul switch.py (acesta e intr-un subdirector) sau de la versiune de python rulata pe checker | ||
+ | |||
+ | **Q:** Cum știu ce fișier de config sa citesc? | ||
+ | |||
+ | **A:** Primul argument pe care îl primește switch-ul la rulare este identificatorul (switch_id = sys.argv[1]) | ||
+ | |||
+ | **A:** Nu se aplica depunctări pentru coding style | ||
**Q:** Pe local am mai multe puncte decât pe checkerul online | **Q:** Pe local am mai multe puncte decât pe checkerul online | ||
Line 417: | Line 432: | ||
**A:** Atentie la conceptul de stare. De exemplu, testul `ICMP_0_3_NOT_ARRIVES_2` este rulat in contextul in care si celelalte teste au fost rulate, astfel au fost trimise mai multe ping-uri pana la rularea acestui test. | **A:** Atentie la conceptul de stare. De exemplu, testul `ICMP_0_3_NOT_ARRIVES_2` este rulat in contextul in care si celelalte teste au fost rulate, astfel au fost trimise mai multe ping-uri pana la rularea acestui test. | ||
+ | |||
+ | In fisierul Dockerfile gasiti imaginea docker folosita pe vmchecker. | ||
+ | |||
+ | <code Bash> | ||
+ | docker build -f Dockerfile -t tema1 . | ||
+ | |||
+ | docker run --privileged -v .:/data/ -it tema1 /bin/bash | ||
+ | |||
+ | # Din bash-ul deschis in container rulati vom rula asa: | ||
+ | |||
+ | cd /data/ | ||
+ | ulimit -c 1024 | ||
+ | /bin/bash -c "ulimit -c 1024 ; python3 checker/topo.py tests" | ||
+ | |||
+ | # inspectati switch_0_err dupa ce a picat testul cu probleme | ||
+ | </code> |