---
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