## Warsztaty 1
Instalowanie Virtual Boxa
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
wejdzze na https://www.virtualbox.org/wiki/Linux_Downloads
i to pobierz https://www.virtualbox.org/download/oracle_vbox_2016.asc
cat /etc/os-release
jak wykonasz to bedzie pisalo version_codename= cos
to cos wstawiamy do
echo deb [arch=amd64 signed-by=/usr/share/keyrings/oracle-virtualbox-2016.gpg] https://download.virtualbox.org/virtualbox/debian <mydist> contrib | sudo tee -a /etc/apt/sources.list
zamiast <mydist>
sudo gpg --yes --output /usr/share/keyrings/oracle-virtualbox-2016.gpg --dearmor oracle_vbox_2016.asc
wget -O- https://www.virtualbox.org/download/oracle_vbox_2016.asc | sudo gpg --yes --output /usr/share/keyrings/oracle-virtualbox-2016.gpg --dearmor
sudo apt-get update
sudo apt-get install virtualbox-6.1
## Warsztaty 2
karta1 to 03, karta2 08
jesli to co ma nie dawac 0 nie istnieje
sudo sysctl -w net.ipv4.ip_forward=1
wyswietlenie interfejsow
ip link
zmiana nazwy interfejsu
sudo ip link set enp0s3 name enp-loc0
aktywacja interfejsow
sudo ip link set up dev enp-loc0
dla NAT
dhclient -v enp-ext
nadanie adresu
sudo ip addr add 192.168.11.1/24 dev enp-loc
odpalanie funkcji routera
sudo sysctl -w net.ipv4.ip_forward=1
dodawanie wpisow w tabeli routingu
sudo ip route add 192.168.12.0/24 via 172.16.0.2
zamiast pierwszego adresu mozna napisac default
sprawdzanie routingu
ip route
czyszczenie
sudo ip addr flush dev enp-rem
sudo ip link set enp-loc down
Jak sie stworzy nowa maszyne to automatycznie ma NAT na pierwszej karcie
## Ćwiczenia 1
### Zadanie 1
**Dla każdego z podanych poniżej adresów IP w notacji CIDR określ, czy jest to adres sieci, adres rozgłoszeniowy czy też adres komputera. W każdym przypadku wyznacz odpowiadający mu adres sieci, rozgłoszeniowy i jakiś adres IP innego komputera w tej samej sieci.**
| adres | 10.1.2.3/8 |156.17.0.0/16 | 99.99.99.99/27 | 156.17.64.4/30 | 123.123.123.123/32
| -------- | -------- | -------- | -------- | -------- | -------- |
| sieci (pierwszy) | 10.0.0.0 | ten | 99.99.99.96 | ten | 123.123.123.123 |
| rozgłoszeniowy (ostatni) | 10.255.255.255 | 156.17.255.255 | 99.99.99.127| 156.17.64.7 |123.123.123.123 |
| inny komputer | 10.0.0.1 | 156.17.0.1 | 99.99.99.98 | 156.17.64.6 | ni ma |
### Zadanie 2
**Podziel sieć 10.10.0.0/16 na 5 rozłącznych podsieci, tak aby każdy z adresów IP z sieci 10.10.0.0/16 był w jednej z tych 5 podsieci.**
- 10.10.128.0/17 (1xxxxx..x),
- 10.10.64.0/18 (01xxxx..x),
- 10.10.32.0/19 (001xxx..x),
- 10.10.16.0/20 (0001xx..x),
- 10.10.0.0/20 (0000xx..x).
**Jak zmieniła się liczba adresów IP możliwych do użycia przy adresowaniu komputerów?**
straciliśmy 2 adresy na kazdej z 5 podsieci (mamy o 8 mniej).
**Jaki jest minimalny rozmiar podsieci, który możesz uzyskać w ten sposób?**
$2^{12} - 2 = 4094$
### Zadanie 3
**Tablica routingu zawiera następujące wpisy (podsieć → dokąd wysłać):**
▶ 0.0.0.0/0 → do routera A
▶ 10.0.0.0/23 → do routera B (10.0.0 v 1. wszystko)
▶ 10.0.2.0/24 → do routera B (10.0.2. wszystko)
▶ 10.0.3.0/24 → do routera B (10.0.3. wszystko)
te trzy mozna zredukowac do 10.0.0.0/22 → do routera B
▶ 10.0.1.0/24 → do routera C
▶ 10.0.0.128/25 → do routera B *to nic nie robi*
▶ 10.0.1.8/29 → do routera B (00001000)
▶ 10.0.1.16/29 → do routera B (00010000)
▶ 10.0.1.24/29 → do routera B (00011000)
te dwie mozna zastąpić 10.0.1.16/28
**Napisz równoważną tablicę routingu zawierającą jak najmniej wpisów.**
▶ 0.0.0.0/0 → do routera A
▶ 10.0.0.0/22 → do routera B
▶ 10.0.1.0/24 → do routera C
▶ 10.0.1.16/28 → do routera B
▶ 10.0.1.8/29 → do routera B
### Zadanie 4
**Wykonaj powyższe zadanie dla tablicy**
▶ 0.0.0.0/0 → do routera A
▶ 10.0.0.0/8 → do routera B
▶ 10.3.0.0/24 → do routera C
▶ 10.3.0.32/27 → do routera B (001x..x)
▶ 10.3.0.64/27 → do routera B (010x..x)
▶ 10.3.0.96/27 → do routera B (011x..x)
zamiast tych dwoch 10.3.0.64/26
### Zadanie 5
**Jak uporządkować wpisy w tablicy routingu, żeby zasada najlepszego dopasowania odpowiadała wyborowi „pierwszy pasujący” (tj. przeglądaniu tablicy od początku do końca aż do momentu napotkania dowolnej pasującej reguły)? Odpowiedź uzasadnij formalnie.**
*Reguła najdłuższego pasującego prefiksu*
❖ *Jeśli więcej niż jedna reguła pasuje, wybierana jest ta, która jest najdłuższym prefiksem (najbardziej „konkretna reguła“).*
Tablicę porządkujemy malejąco po długości prefiksu.
(Załóżmy, że pierwsze dopasowanie x do adresu y nie jest najlepsze, jakiś wpis z dalej był lepszy. z ma krótszy prefiks od x i oba pasują do y, więc x jest bardziej konkretny.)
### Zadanie 6
**W podanej niżej sieci tablice routingu budowane są za pomocą algorytmu wektora odległości. Pokaż (krok po kroku), jak będzie się to odbywać. **

Krok 0
| | A | B | C | D | E |
|-|-|-|-|-|-|
|SU| 1 | 1 | | | |
|SW| | 1 | | 1 | |
|SX| | 1 | 1 | | |
|SY| | | | 1 | 1 |
|SZ| | | 1 | 1 | |
Krok 1
| | A | B | C | D | E |
|-|-|-|-|-|-|
|SU| 1 | 1 | 2B| 2B| |
|SW| 2B| 1 | 2B| 1 | 2D|
|SX| 2B| 1 | 1 | 2C| |
|SY| | 2D| 2D| 1 | 1 |
|SZ| | 2C| 1 | 1 | 2D|
Krok 2
| | A | B | C | D | E |
|-|-|-|-|-|-|
|SU| 1 | 1 | 2B| 2B| 3D|
|SW| 2B| 1 | 2B| 1 | 2D|
|SX| 2B| 1 | 1 | 2C| 3D|
|SY| 3B| 2D| 2D| 1 | 1 |
|SZ| 3B| 2C| 1 | 1 | 2D|
**W ilu krokach zostanie osiągnięty stan stabilny?**
w 2 krokach
### Zadanie 7
Krok 0
| | A | B | C | D | E |
|-|-|-|-|-|-|
|SU| 1 | 1 | 2B| 2B| 3D|
|SW| 2B| 1 | 2B| 1 | 2D|
|SX| 2B| 1 | 1 | 2C| 3D|
|SY| 3B| 2D| 2D| 1 | 1 |
|SZ| 3B| 2C| 1 | 1 | 2D|
|SQ| 1 | | | | 1 |
Krok 1
| | A | B | C | D | E |
|-|-|-|-|-|-|
|SU| 1 | 1 | 2B| 2B| 3D|
|SW| 2B| 1 | 2B| 1 | 2D|
|SX| 2B| 1 | 1 | 2C| 3D|
|SY| 3B| 2D| 2D| 1 | 1 |
|SZ| 3B| 2C| 1 | 1 | 2D|
|SQ| 1 | 2A | | 2E| 1 |
Krok 2
| | A | B | C | D | E |
|-|-|-|-|-|-|
|SU| 1 | 1 | 2B| 2B| 3D|
|SW| 2B| 1 | 2B| 1 | 2D|
|SX| 2B| 1 | 1 | 2C| 3D|
|SY| 3B| 2D| 2D| 1 | 1 |
|SZ| 3B| 2C| 1 | 1 | 2D|
|SQ| 1 | 2A | 3B| 2E| 1 |
### Zadanie 8
**W przedstawionej poniżej sieci uszkodzeniu ulega połączenie między routerami D i E . Załóżmy, że w sieci działa algorytm wektora odległości wykorzystujący technikę zatruwania ścieżki zwrotnej (poison reverse). Pokaż — opisując krok po kroku jakie komunikaty są przesyłane między routerami — że może powstać cykl w routingu.**

Krok 0
| | A | B | C | D |
|-|-|-|-|-|-|
|SX| 3B | 2D | 2D | |
D rozsyla ze juz nie moze sie dostac
Krok 1
| | A | B | C | D |
|-|-|-|-|-|-|
|SX| | | 4A | |
A wysyla C ze umie (przez B)
Krok 2
| | A | B | C | D |
|-|-|-|-|-|-|
|SX| | | | 5B |
B wysyla D ze umie (przez A)...
### Zadanie 9
**Pokaż, że przy wykorzystaniu algorytmu stanu łączy też może powstać cykl w routingu. W tym celu skonstruuj sieć z dwoma wyróżnionymi, sąsiadującymi ze sobą routerami A i B.**
<pre>**A - B**
| |
D - C</pre>
**Załóż, że wszystkie routery znają graf całej sieci. W pewnym momencie łącze między A i B ulega awarii, o czym A i B od razu się dowiadują. Zalewają one sieć odpowiednią aktualizacją. Pokaż, że w okresie propagowania tej aktualizacji (kiedy dotarła ona już do części routerów a do części nie) może powstać cykl w routingu.**
Powiedzmy, że D wysyła pakiet do B przez A, dzieje się awaria i A wylicza, że powinno odesłać pakiet D i jeśli D nie wyliczy nowego stanu na czas to odesle znowu A itd.
Algorytmy stanu łączy:
✦ Powiadom wszystkich o sieciach, do których jesteś połączony bezpośrednio.
✦ Na podstawie takich sąsiedztw zbuduj graf sieci i oblicz lokalnie najkrótsze ścieżki.
## Warsztaty 3
### Robienie RIPA
sudo nano /etc/frr/daemons
zmien ripd=no na yes
sudo systemctl start frr
sudo vtysh
configure terminal
router rip
version 2
network 192.168.1.0/24
usuwanie
no network adres_sieci
quit quit
copy running-config startup-config