---
tags: SK, w2
---
# Sieci komputerowe warsztaty 2
## PRZED ZAJĘCIAMI:
* Przeczytać dokument *Opis maszyny Virbian*
## TUTORIAL 1
1. :rocket:Na maszynie Virbian1 ustal interfejs enpx sy połączony z siecią remote oraz interfejs enpwsz połączony połączony z siecią local1.
* identyfikuję karty sieciowe połączone z sieciami remote i local1
* enp0s3 - remote, enp0s8 - local1
* enp0s3 - remote, enp0s8 - local2
Dla wygody zmienimy nazwy tych interfejsów poleceniami:
* ```ip link set enpxsy name enp-rem```
* ```ip link set enpwsz name enp-loc```
Wykonaj analogiczne polecenia na maszynie Virbian2.
2. :rocket:Poleceniem ip link aktywuj karty enp-rem a poleceniem ip addr przypisz im adresy IP. Na maszynie Virbian1 przypisz tej karcie adres IP równy 172.16.0.1/16, zaś na maszynie Virbian2 adres 172.16.0.2/16.
4. :rocket:Wyświetl tablicę routingu poleceniem:
* ```ip route``` i ```route -n```
* jak czytać wynik ***ip route*** ?
5. :rocket:Za pomocą programu ping sprawdź, czy połączone ze sobą siecią remote maszyny wirtualne Virbian1 i Virbian2 „widzą się” wzajemnie.
6. :rocket:Pingnij adres interfejsu pętli lokalnej lo o adresie 127.0.0.1. Zauważ, że komunikaty dochodzą pomimo tego, że odpowiedni wpis nie jest wyświetlany poleceniem ip route. Te dodatkowe wpisy w tablicy można wyświetlić poleceniem:
* ```ip route list table local```
* broadcast 127.0.0.0 dev lo proto kernel scope link src 127.0.0.1
local 127.0.0.0/8 dev lo proto kernel scope host src 127.0.0.1
local 127.0.0.1 dev lo proto kernel scope host src 127.0.0.1
broadcast 127.255.255.255 dev lo proto kernel scope link src 127.0.0.1
broadcast 172.16.0.0 dev enp-rem proto kernel scope link src 172.16.0.1
local 172.16.0.1 dev enp-rem proto kernel scope host src 172.16.0.1
broadcast 172.16.255.255 dev enp-rem proto kernel scope link src 172.16.0.
Zwróć uwagę na adresy rozgłoszeniowe i różnice w polach scope.
6. :rocket:Na maszynach Virbian1 i Virbian2 włącz Wiresharka i rozpocznij nasłuchiwanie na wszystkich interfejsach. Zaobserwuj, co jest wypisywane w konsoli oraz jakie pakiety są wysyłane i odbierane jeśli pingasz z maszyny Virbian1:
* adres 127.0.0.1
* pakiety przychodzą tylko na VIRBIAN1
* 127.0.0.1 127.0.0.1 ICMP 100 Echo (ping) request id=0x50f0, seq=1/256, ttl=64 (reply in 3)
* 127.0.0.1 127.0.0.1 ICMP 100 Echo (ping) reply id=0x50f0, seq=1/256, ttl=64 (request in 2)
* swój własny adres IP przypisany do interfejsu enp-rem;
* pakiety przychodzą tylko na VIRBIAN1
* 172.16.0.1 172.16.0.1 ICMP 100 Echo (ping) request id=0x9735, seq=11/2816, ttl=64 (reply in 2)
* 2 0.000031105 172.16.0.1 172.16.0.1 ICMP 100 Echo (ping) reply id=0x9735, seq=11/2816, ttl=64 (request in 1)
* adres IP maszyny Virbian2 przypisany do interfejsu enp-rem;
* pakiety przychodza na VIRBIAN1 i na VIRBIAN2
* 172.16.0.1 172.16.0.2 ICMP 100 Echo (ping) request id=0x8b06, seq=2/512, ttl=64 (reply in 4) [NA VIRBIAN 2]
* 172.16.0.2 172.16.0.1 ICMP 100 Echo (ping) reply id=0x8b06, seq=1/256, ttl=64 (request in 1) [NA VIRBIAN 2]
* adres rozgłoszeniowy sieci podłączonej do interfejsu enp-rem (poleceniem ping -b 172.16.255.255)
* 172.16.0.1 172.16.255.255 ICMP 100 Echo (ping) request id=0xf76e, seq=10/2560, ttl=64 (no response found!)
* 172.16.0.2 172.16.0.1 ICMP 100 Echo (ping) reply id=0xf76e, seq=10/2560, ttl=64
* 172.16.0.1 172.16.0.1 ICMP 100 Echo (ping) reply id=0xf76e, seq=11/2816, ttl=64
* adres IP należący do sieci 172.16.0.0/16 nieprzypisany do żadnego interfejsu sieciowego
* ping: Do you want to ping broadcast? Then -b. If not, check your local firewall rules
* adres IP z sieci, do której maszyna nie jest podłączona, np. 10.10.10.10.
* ping: connect: Network is unreachable
**PYTANIA**:
* nie dokońca rozumiem dlaczego tak się dzieje w ostatnich 3 podpunkatch zad 6.
## TUTORIAL 2
1. :rocket: Na wszystkich maszynach sprawdź wynik polecenia *sysctl -w net.ipv4.ip forward* i jeśli zwracaną wartością jest 0, wykonaj polecenie *sysctl -w net.ipv4.ip_forward=1*. Polecenie to włączy przekazywanie pakietów IP pomiędzy interfejsami (maszyna wirtualna będzie mogła pełnić funkcję routera).
3. :rocket:
* Aktywuj interfejsy enp-loc na maszynach Virbian1 i Virbian3 i przypisz im adresy IP równe odpowiednio 192.168.11.1/24 i 192.168.11.2/24.
* Aktywuj interfejsy enp-loc na maszynach Virbian2 i Virbian4 i przypisz im adresy IP równe odpowiednio 192.168.12.1/24 i 192.168.12.2/24
4. :rocket: Na każdej maszynie poleceniem ping sprawdź osiągalność najbliższych interfejsów najbliżej położonych maszyn.
5. :rocket: Z maszyny Virbian1 sprawdź osiągalność interfejsu enp-loc maszyny Virbian2.
6. :rocket: Spróbujmy to naprawić dodając na maszynach Virbian1 i Virbian2 odpowiednie wpisy w ich tablicach routingu. W tym celu wydaj polecenia:
* ip route add 192.168.12.0/24 via 172.16.0.2
* ip route add 192.168.11.0/24 via 172.16.0.1
7. :memo: Z maszyny Virbian1 sprawdź osiągalność interfejsu enp-loc maszyny Virbian4 wydają na niej polecenie
* ping 192.168.12.2
* CO jest przyczyną niepowodzenia? Jaki komunikat otrzymujesz?
* pakiet request jest wysyłany z V1
* pakiet request trafia do V2
* pakiet request trafia do V4
* otrzymuję komunikat "No response"
8. :rocket:Spróbujmy naprawić sytuację dodając na maszynie Virbian4 informację pozwalającą trafić do pozostałych dwóch sieci. Zamiast dodawać dwa wpisy do tablicy routingu, określimy, że pakiety mogą dotrzeć w dowolne miejsce, jeśli dostarczymy je do interfejsu enp-loc podłączonej bezpośrednio maszyny Virbian2. W tym celu wydaj polecenia
* *sudo ip route add default via 192.168.12.1* [dla V4]
* *sudo ip route add default via 192.168.11.1* [dla V3]
9. :rocket:Wyświetl bieżącą tablicę routingu na maszynach Virbian3 i Virbian4 poleceniem *ip route*. Sprawdź, że z każdej maszyny możesz teraz pingnąć adres dowolnego innego interfejsu. W razie kłopotów zaobserwuj przesyłane pakiety Wiresharkiem.
10. :rocket:Wyświetl trasę z maszyny Virbian3 do maszyny Virbian4 poleceniem *traceroute*. Analogicznie wyświetl trasę z maszyny Virbian4 do maszyny Virbian3.
* traceroute to 192.168.11.2 (192.168.11.2), 30 hops max, 60 byte packets
* 1. 192.168.12.1 (192.168.12.1) 1.181 ms 1.014 ms 0.924 ms
* 2. 172.16.0.1 (172.16.0.1) 2.686 ms 2.585 ms 2.512 ms
* 3. 192.168.11.2 (192.168.11.2) 3.295 ms 3.591 ms 3.452 ms
* traceroute to 192.168.12.2 (192.168.12.2), 30 hops max, 60 byte packets
* 1. 192.168.11.1 (192.168.11.1) 1.114 ms 1.485 ms 1.001 ms
* 2. 172.16.0.2 (172.16.0.2) 1.898 ms 1.719 ms 1.618 ms
* 3. 192.168.12.2 (192.168.12.2) 2.549 ms 3.552 ms 3.440 ms
**PYTANIA**
* Jak czytac i rozumieć tablice routingu (wyświtlaną poleceniem *route -n* lub *ip route*)?
## WYZWANIE

1. DONE :rocket:
3. DONE :rocket: Uruchom maszyny i nazwij ich interfejsy tak jak na rysunku powyżej.
* *ip link set enp0s3 enp-ext* [#V0]
* *ip link set enp0s8 enp-loc0* [#V0]
* *ip link set enp0s3 enp-loc0* [#V1]
* *ip link set enp0s8 enp-loc1* [#V1]
* *ip link set enp0s3 enp-loc1* [#V2]
Uzyskaj konfigurację sieciową dla interfejsu enp-ext maszyny Virbian0 poleceniem
* *dhclient -v enp-ext*
3. DONE :rocket:. Przypisz obu interfejsom enp-loc0 i obu interfejsom enp-loc1 adresy IP z sieci 192.168.0.0/24 i 192.168.1.0/24 jak na rysunku. Sprawdź osiągalność interfejsów bezpośrednio połączonych maszyn poleceniem ping.
* *ip link set up dev enp-nazwa*
* *ip addr add numer dev nazwa*
5. DONE :rocket:. Skonfiguruj routing:
* na Virbian0 określ, że do sieci 192.168.1.0/24 można dostać się wysyłając pakiety do 192.168.0.2;
* *ip route add 192.168.1.0/24 via 192.168.0.2* [#V0]
* na Virbian1 ustaw bramę domyślną równą 192.168.0.1.
* *ip route add default via 192.168.0.1* [#V1]
* na Virbian2 ustaw bramę domyślną równą 192.168.1.1;
* *ip route add default via 192.168.1.1* [#V2]
6. DONE :rocket: Z każdej maszyny wirtualnej powinny być teraz osiągalne wszystkie interfejsy enp-loci. Sprawdź to poleceniem ping. Wyświetl trasę z maszyny Virbian2 do maszyny Virbian0 poleceniem traceroute.
* traceroute to 192.168.0.1 (192.168.0.1), 30 hops max, 60 byte packets
* 1. 192.168.1.1 (192.168.1.1) 1.051 ms 0.884 ms 0.804 ms
* 2. 192.168.0.1 (192.168.0.1) 1.961 ms 1.860 ms 1.790 ms
8. :memo: TO DO. Z maszyny Virbian0 pingnij adres 8.8.8.8; zaobserwuj, że otrzymywana jest odpowiedź. Pingnij ten sam adres z maszyny Virbian2. Czy zapytanie dochodzi do maszyny Virbian0 ? Czy otrzymywana jest odpowiedź? Dlaczego? Zastanów się, kogo należałoby powiadomić o konfiguracji naszej sieci, żeby odpowiedź z komputera 8.8.8.8 wracała do maszyny Virbian2.
* zapytanie idzie do *V1* potem do *V0* a dalej nie wiem.
* KOMU CZEGO BRAKUJE??
## PYTANIA
* CZYM JEST BRAMA DOMYŚLNA/JAK JĄ USTAWIĆ?
* (przykładowe polecenie route add default gw 95.110.153.1 domyślna brama została ustawiona z adresem IP "95.110.153.1").
* Jakie zmiany wprowadzam tymi poleceniami **ip route add ...** na kartce to rozpisać!!.