---
tags: SK, w6
---
# Sieci komputerowe warsztaty 6
## KONFIGURACJA POCZĄTKOWA
## TUTORIAL 1
1. Poleceniem *dig* sprawdź, jakie adresy IP są przypisane do domeny www.debian.org. Wybierz jeden z nich; będziemy go nazywać *adres IP*.
* *130.89.148.77*
2. W jednej konsoli uruchom w polecenie
* ```(while true; do netstat -tan | grep adres IP ; done) | tee tcp log```
Zaś w drugiej pobierz stronę główną www.debian.org za pomocą polecenia
* ``` wget http://adres IP/ ```
Sprawdź, czy w pliku tcp log zostały zaobserwowane stany TCP gniazda SYN SENT,
ESTABLISHED i niektóre ze stanów zamykania połączenia.
3. W Wiresharku obejrzyj pakiety IP i zawarte w nich segmenty TCP związane z wykonanym powyżej zapytaniem i odpowiedzią HTTP. :memo:
* Jakie gniazda tworzone są do pobierania pliku przez HTTP?
* Jaki jest port źródłowy a jaki docelowy połączenia?
* Dla każdego przesyłanego segmentu TCP określ:
* Jakie z flag SYN / ACK / FIN są włączone dla danego segmentu?
* Które bajty (strumienia danych protokołu HTTP) są przesyłane w segmencie?
* Które bajty strumienia danych są potwierdzane danym segmentem?
* Na podstawie diagramu stanów TCP (https://en.wikipedia.org/wiki/File:Tcp_state_diagram.png), sprawdź jak zmienia się stan połączenia TCP (po stronie klienta i po stronie serwera) w momencie wysłania i odebrania danego segmentu.Które z tych stanów są widoczne w pliku tcp log?
* Która strona wykonuje otwarcie aktywne, a która zamknięcie aktywne?
## TUTORIAL 2
1. Odpytując iteracyjnie kolejne serwery DNS poleceniem dig, dowiedz się jaki jest adres IP związany z nazwą www.cs.uni.wroc.pl. W tym celu zacznij od jednego z serwerów głównych, np. od 198.41.0.4. Pierwszym poleceniem będzie zatem:
* ```dig www.cs.uni.wroc.pl @198.41.0.4```
Ten serwer powinien odpowiedzieć adresami serwerów DNS odpowiedzialnych za strefę pl.
Wykonaj powyższe zapytanie, tym razem kierując je do jednego z serwerów odpowiedzialnych za strefę pl. Kolejne polecenia kieruj do serwerów DNS, które są odpowiedzialne za
strefy *wroc.pl*, *uni.wroc.pl* i *cs.uni.wroc.pl*.
* to co znalazłem (chyba) : ```156.17.93.253```.
3. Pozwól teraz wykonać całą pracę z poprzedniego akapitu programowi dig, wykonując polecenie ```dig +trace www.cs.uni.wroc.pl @198.41.0.4 ```.
Porównaj wyjście programu z wynikami z poprzedniego punktu. Jakie serwery DNS są odpytywane w tym przypadku? Wykonaj jeszcze raz powyższe polecenie, obserwując przesyłane zapytania i odpowiedzi w Wiresharku.
```
uni.wroc.pl. 86400 IN NS skierka.adm.uni.wroc.pl.
uni.wroc.pl. 86400 IN NS szermierz.uni.wroc.pl.
uni.wroc.pl. 86400 IN NS hera.math.uni.wroc.pl.
;; Received 169 bytes from 156.17.8.1#53(ldhpux.immt.pwr.wroc.pl) in 16 ms
www.cs.uni.wroc.pl. 86400 IN CNAME ghs.google.com.
;; Received 75 bytes from 156.17.93.253#53(szermierz.uni.wroc.pl) in 28 ms
```
4. Jeśli nie podamy serwera DNS po znaku @, to zapytanie będzie wysyłane do domyślnego serwera (zdefiniowanego w pliku /etc/resolv.conf), który rozwiązuje dla nas nazwy domen w sposób rekurencyjny. Sprawdź teraz jaki jest adres IP, serwery nazw i serwer obsługujący pocztę dla domeny ii.uni.wroc.pl poleceniami:
* dig -t a ii.uni.wroc.pl
*
```
;; ANSWER SECTION:
ii.uni.wroc.pl. 1800 IN A 156.17.4.11
```
* dig -t ns ii.uni.wroc.pl
*
```
;; ANSWER SECTION:
ii.uni.wroc.pl. 1800 IN NS apollo.ii.uni.wroc.pl.
ii.uni.wroc.pl. 1800 IN NS hermes.ii.uni.wroc.pl.
```
* dig -t mx ii.uni.wroc.pl
*
```
;; ANSWER SECTION:
ii.uni.wroc.pl. 1800 IN MX 1 ASPMX.L.GOOGLE.COM.
ii.uni.wroc.pl. 1800 IN MX 5 ALT1.ASPMX.L.GOOGLE.COM.
ii.uni.wroc.pl. 1800 IN MX 5 ALT2.ASPMX.L.GOOGLE.COM.
ii.uni.wroc.pl. 1800 IN MX 10 ASPMX3.GOOGLEMAIL.COM.
ii.uni.wroc.pl. 1800 IN MX 10 ASPMX2.GOOGLEMAIL.COM.
```
5. Poleceniem ```dig -t ptr 11.4.17.156.in-addr.arpa``` sprawdź, jaka jest nazwa domeny związana z adresem 156.17.4.11.
* ``` ii.uni.wroc.pl.```
## TUTORIAL 3
1. Uruchom program nc w trybie serwera UDP nasłuchującego na porcie 10053 poleceniem
* nc -u -l -p 10053
W drugiej konsoli wykonaj polecenie:
* dig -p 10053 www.wikipedia.pl @127.0.0.1 +tries=1
## WYZWANIE
1. Uruchom usługę serwera WWW wyświetlającego prostą stronę służącą do dodawania wpisów uruchamiając polecenie:
* *systemctl start hydepark*
2. Wejdź przeglądarką na stronę http://virbian:8080/ i wykorzystując rozszerzenie przeglądarki **HTTP Header Live** sprawdź, co dzieje się, kiedy dodajesz jakiś wpis.
5. Na stronie http://virbian:8080/ wpisz jakąś treść w polu „Dodaj jakiś komunikat” i kliknij przycisk „Wyślij”. Dlaczego przeglądarka wyświetla w pasku stanu komunikat Waiting for virbian, a odpowiedni wpis nie został dodany? :memo:
* narazie nie wiem, pewnie z powodu zmiany ustawień sieciowych (zmiana proxy i portu).
6. Przerwij działanie programu nc. Co zapisał ten program do pliku http request? Wyłącz ustawienia serwera proxy w przeglądarce.
```
POST http://virbian:8080/add HTTP/1.1
Host: virbian:8080
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
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded
Content-Length: 14
Origin: http://virbian:8080
Connection: keep-alive
Referer: http://virbian:8080/
Upgrade-Insecure-Requests: 1
content=asfsaf
```
## PYTANIA