---
# System prepended metadata

title: Sieci

---


## 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ć. **
   ![image](https://hackmd.io/_uploads/ryvr-uwAa.png)
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.**
![image](https://hackmd.io/_uploads/SJSI8dDAT.png)
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

    