--- tags: SK, w1 --- # Sieci komputerowe warsztaty 1 ## PRZED ZAJĘCIAMI: * Przeczytać dokument *Opis maszyny Virbian* ## TUTORIAL 1 1. ```V0$> ip addr```: Wyświetlić dostępne interfejsy sieciowe 2. ```V0#> dhclient -v enp0s3``` : Uzyskaj konfigurację sieciową dla maszyny wirtualnej 3. Uruchom przeglądarkę Firefox. Po lewej stronie powinien być widoczny pasek z rozszerzeniem HTTP Header Live wyświetlającym wysyłane i odbierane nagłówki HTTP. Wejdź przeglądarką na stronę http://example.org/ i obejrzyj przesyłane nagłówki protokołu HTTP. * Ile żądań HTTP jest wysyłanych? * 3 * GET <- czasownik (odpowiedź: HTTP/1.1 200 OK) * GET <- czasownik (odpowiedź: HTTP/1.1 404 NOT FOUND) x2 * Do jakich serwerów są one skierowane? * ECS (bsa/EB11) * ECS (bsa/EB21) x2 TO DO: czym jest żądanie http? czym jest serwer? * ŻĄDANIE skłąda się : * linia określająca czasownik HTTP (np. GET), zasób i wersję protokołu * linie zawierające nagłówki * pustą linie określającą koniec nagłówków * ciało wiadomości (jeśli istnieje) 4. Sprawdź jaki jest adres IP związany z adresem example.org poleceniem: * example.org has address 93.184.216.34 5. Odśwież oglądaną stronę w przeglądarce naciskając Shift + Ctrl + R. W Wiresharku wśród wysyłanych pakietów znajdź ten zawierający żądanie HTTP pobierające stronę HTML. Obejrzyj w tym pakiecie **nagłówki** **warstwy sieciowej (IP)** i **transportowej (TCP)**. Klikając poszczególne pola opisu, podświetlasz w widoku szesnastkowym pakietu (na dole okna) odpowiadające im bajty. * Jaki jest źródłowy i docelowy adres IP tego pakietu? * source: 10.0.2.15 dest: 93.184.216.34, protocol: HTTP, info: GRT /HTTP/1.1 * Jaki jest jego źródłowy i docelowy port? W których nagłówkach znajdują się te informacje? * Transmission Control Protocol: * Source port: 58924 * Destination Port: 80 6. Powtórz powyższe operacje dla pakietu zawierającego odpowiedź HTTP (powinien zawierać kod odpowiedzi 200 OK wraz ze stroną w HTML lub kod odpowiedzi 304 NotModified). * Czy dane identyfikujące połączenie (źródłowy/docelowy adres/port) zmieniły się czy są takie same? Dlaczego? * Source port/addr: 80 /93.184.216.34 * Destination ort/addr: 58924 /10.0.2.15 * Komunikacja w 2 stronę ?? 7. plik : ``` GET / HTTP/1.1 Host: example.org User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Firefox/91.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 Accept-Language: en-US,en;q=0.5 Connection: keep-alive Upgrade-Insecure-Requests: 1 ``` 8. Sprawdź, czy uzyskasz odpowiedź, jeśli w pliku HTTPHeaderLive.txt pozostawisz jedynie dwa pierwsze wiersze (zaczynające się od GET i Host:) i następujący po nich pusty wiersz. Ponownie obejrzyj pakiety w Wiresharku. * Tak, dostanę odpowiedź: *HTTP/1.1 200 OK* * Co stanie się, jeśli zostawisz tylko pierwszy wiersz i wiersz odstępu? * *HTTP/1.1 400 Bad Request* 9. Poleceniem *telnet example.org 80*. ## TUTORIAL 2 Zmień konfigurację maszyn Virbian0 i Virbian1, tak żeby ich pierwsze (i jedyna) karty sieciowe były podłączone do wirtualnej sieci local0. Następnie uruchom obie maszyny. 1. Na obu maszynach wyświetl dostępne interfejsy sieciowe poleceniami * Vi $> ip link * Vi $> ip addr 2. Poleceniem ***ethtool enp0s3*** sprawdź status warstwy fizycznej karty enp0s3. Zwróć uwagę na pola Speed i Duplex. 3. Aktywuj interfejsy enp0s3 i nadaj im odpowiednie adresy IP poleceniami: * V0#> ip link set up dev enp0s3 * V0#> ip addr add 192.168.0.1/24 dev enp0s3 * V1#> ip link set up dev enp0s3 * V1#> ip addr add 192.168.0.2/24 dev enp0s3 Sprawdź, jak zmieniła się informacja wyświetlana przez polecenia ip link i ip addr. * *state* zmieniony na **UP** 4. Wykonaj polecenie *ping 192.168.0.2* * Jaki jest wyświetlany RTT (round trip time)? Uruchom program Wireshark (na dowolnej z maszyn) i włącz w nim obserwację wszystkich interfejsów (wybierając sztuczny interfejs any). Obejrzyj pakiety wysyłane i odbierane przez program ping. * Czy znaczniki czasowe(pole timestamp) w wysyłanym zapytaniu i odpowiedzi różnią się, czy są takie same? * w jednym z pakietów: * icmp.data_time == "Feb 28, 2023 19:44:33.000000000" * a chyba w jakimś innym: * icmp.data_time == "Feb 28, 2023 19:44:33.000000000" 5. Na maszynie Virbian0 zmodyfikuj plik /etc/hosts, tak aby zawierał następujący wiersz *192.168.0.2 jakaś nazwa*. Sprawdź, że polecenie ping działa też z wpisaną tutaj nazwą. * DZIAŁA :+1: 6. Na maszynie Virbian1 uruchom polecenie *iperf3 -s* zaś na maszynie Virbian0 polecenie *iperf3 -c 192.168.0.2* * Jaką prędkość przesyłania udaje Ci się uzyskać? * tylko jakiś błąd: iperf3: error - unable to send control message: Bad file descriptor ## CZYM JEST: * **karta sieciowa** i jej warstwa fizyczna ?? ## WYZWANIE 1. Utwórz dodatkową maszynę wirtualną Virbian2. Podłącz karty sieciowe Adapter1 maszyn Virbian1 i Virbian2 do wirtualnej sieci local1 i następnie uruchom obie maszyny. 3. Aktywuj karty sieciowe w obu urządzeniach poleceniem ip i sprawdź stan warstwy fizycznej kart poleceniem ethtool. * służą do tego polecenia: * ip link set up dev enp0s3 * ip addr add 192.168.0.1/24 dev enp0s3 * ethtool enp0s3 3. Karcie sieciowej maszyny Virbian1 przypisz adres IP równy 192.168.100.1, zaś karcie maszyny Virbian2 adres 192.168.100.2. Pamiętaj o masce podsieci /24. * już zrobione w dwójce 4. Poleceniem ping sprawdź, czy jedna maszyna jest osiągalna z drugiej. J * Jaki jest RTT? * 99 packets transmitted, 99 received, 0% packet loss, time 98364ms * rtt min/avg/max/mdev = 0.325/**1.254**/2.342/0.320 ms Obejrzyj przesyłane pakiety Wiresharkiem. Wskaż w pakiecie miejsce w którym przechowywany jest źródłowy i docelowy adres IP. * Internet Protocol Version 4, Src: 192.168.0.1, Dst: 192.168.0.2 5. Wykorzystaj program iperf3, żeby zbadać przepustowość połączenia między maszynami. * [https://www.tecmint.com/test-network-throughput-in-linux/] * 3.02 Gbits/sec 6. Z maszyny Virbian1 połącz się z serwerem echa maszyny Virbian2. Zaobserwuj przesyłane pakiety w Wiresharkach uruchomionych jednocześnie na obu maszynach. * telnet 192.168.0.2 7 7. Zdekonfiguruj karty sieciowe obu maszyn i wyłącz wirtualne maszyny. * ip addr flush dev enp0s3 * ip link set down dev enp0s3