SIK02.rst

Sieci Komputerowe

Podstawy

Adresacja IPv4

Aby potrafić obliczać i wyznaczać adresy IP należy mieć podstawową wiedzę z zakresu systemu binarnego i dziesiętnego oraz konwersji pomiędzy nimi.

Podstawowe pojęcia:

Adres internetowy (adres IP) - adres przypisany do komputera lub interfejsu sieciowego,
Podsieć - grupa adresów sieciowych zgrupowanych pod wspólnym adresem sieci,
Maska podsieci - 32 bity używane do opisu, które bity adresu sieciowego odpowiadają za adres sieciowy a które za adres komputera w podsieci,
Interfejs - punkt połączenia między komputerem a siecią prywatną lub publiczną.

Adres IP służy do identyfikacji komputera w sieci Internet. Adres ten składa się z 32 bitów, które dzielą się na część sieciową i część hosta.

Adres IP jest rozbity na 4 grupy po osiem bitów (oktety) oddzielonych kropkami. Każdy oktet jest zapisywany w postaci liczby dziesiętnej, tłumaczonej z liczby binarnej i przyjmuje wartość pomiędzy 0 a 255.

11000000.00111000.01001100.00000011

Jest tym samym co

192.56.76.3

Do określenia adresu podsieci stosujemy maskę podsieci:

Adres: 172.16.17.30 - 10101100.00010000.00010001.00011110
Maska: 255.255.240.0 - 11111111.11111111.11110000.00000000

podsieć = 10101100.00010000.00010000.00000000 = 172.16.16.0

Każda sieć posiada dwa szczególne adres: tzw. adres rozgłoszeniowy - złożony z samych jedynek w części hosta oraz adres sieci złożony z samych zer w części hosta. Dla powyższego przykładu:

Maska: 255.255.240.0 - 11111111.11111111.11110000.00000000
Adres rozgłoszeniowy: 172.16.31.255 - 10101100.00010000.00011111.11111111
Adres sieci: 172.16.16.0 - 10101100.00010000.00010000.00000000

W początkowych fazach sieci internet wyróżniano tzw. klasy adresów:

Ważną konsekwencją istnienia klas adresów są tzw. adresy sieci prywatnych:

10.0.0.0 - 10.255.255.255
172.16.0.0 - 172.31.255.255
192.168.0.0 - 192.168.255.255

Rozpoznaj, czy posiadasz prywatny czy publiczny adres IP.

Zgodnie z RFC 3330 ↓ komunikacja w jednym komputerze możliwa jest poprzez adresy mieszczące się w puli 127.0.0.0/8. Oznacza to, że jeżeli wystąpi odwołanie do adresu 127.x.x.x, gdzie za x podstawi się liczby od 0 do 255 (1 do 255 w przypadku ostatniego bajtu), to zawsze odnosi się ono do hosta lokalnego.

Loopback to wirtualne urządzenie sieciowe, które ma tylko jedno wejście. Często przypisuje się do niego adres 127.0.0.1 pozwala ono na lokalne testowanie własnego interfejsu sieciowego, z adresem tym związana jest też nazwa localhost.

ping localhost

IPv6

IPv6 to nowa wersja protokołu warstwy internetowej (IP) w zestawie protokołów TCP / IP. Standard RFC 2460 (IPv6) został wydany w grudniu 1998 roku. „W dniu 14 września 2012 r. RIPE NCC wyczerpało swoją regularną pulę IPv4” (RIPE NCC to regionalny rejestr internetowy (RIR) dla Europy, Azji Zachodniej i byłego ZSRR). Rozwiązanie przedłużające życie IPv4 to tzw. NAT (translacja adresów sieciowych) - zwiększa pojemność przestrzeni adresowej IPv4 poprzez współdzielenie adresu IPv4 między klientami.

Dostawcy usług internetowych byli pierwszą grupą, która rozpoczęła wdrażanie protokołu IPv6 w swoich sieciach, a prym wiodą sieci komórkowe. Na przykład w T-Mobile USA ponad 90% ruchu odbywa się przez IPv6, a Verizon Wireless jest tuż za nim na poziomie 82,25%. Comcast i AT&T mają swoje sieci w 63% i 65%.

IPv4: 32 bity lub 4 bajty

4.200.000.000 możliwych adresowalnych węzłów (czyli tyle ile obecnie użytkowników internetu na świecie)

IPv6: 128 bitów lub 16 bajtów

3.4 * 10^38 możliwych adresowalnych węzłów
340,282,366,920,938,463,374,607,432,768,211,456

Przykłady adresów IPv4:

fe80 :: 878c: 0000: 181a: f72e
fe80 :: 878c: 0: 181a: f72e
fe80 :: 878c :: 181a: f72e

W adresie URL jest ujęty w nawiasy kwadratowe (RFC3986)

http: // [2001: db8: 4f3a :: 206: ae14]: 8080 / index.html

Dla IPv4 nie występuje coś takiego jak maski podsieci, ale w zapisie adresu stosujemy zapis prefiksowy znany z IPv4.

Pierwotne zalecenie dotyczące przydzielania przestrzeni adresowej IPv6 użytkownikom końcowym było następujące:

  • / 48 (65 536 podsieci) w ogólnym przypadku, z wyjątkiem bardzo dużych abonentów

  • / 64 (pojedyncza podsieć), gdy wiadomo, że jeden i tylko jeden podsieć jest wymagana przez projekt

  • / 128 (pojedynczy adres), gdy jest absolutnie wiadomo, że łączy się jedno i tylko jedno urządzenie

Dwa zakresy adresów są zarezerwowane dla przykładów i dokumentacji przez RFC 3849

3FFF: FFFF :: / 32
2001: 0DB8 :: / 32

W protokole IPv6 wyróżniamy trzy typy adresów:

  • adres unicast (adres indywidualny), identyfikujący unikalnie pojedynczy interfejs,

  • adres multicast (adresy grupowy), identyfikujący zbiór interfejsów zainteresowany otrzymywaniem danego typu ruchu, gdzie pakiet dostarczany jest do wszystkich interfejsów posiadających dany adres IP,

  • adres anycast (adresy jeden z wielu), identyfikujący zbiór interfejsów udostępniających tę samą usługę, gdzie pakiet dostarczany jest tylko do jednego interfejsu o danym adresie IP, tego który jest najbliżej według tablicy routingu

Typ adresu IPv6 określany jest na podstawie jego najbardziej znaczących bitów (tych od strony lewej).

Unspecified 00...0 (128 bits) ::/128
Loopback 00...1 (128 bits) ::1/128
Multicast 11111111 ff00::/8
Link-Local unicast 1111111010 fe80::/10
Global Unicast (everything else)

Adres 0:0:0:0:0:0:0:1 (::1) jest adresem pętli zwrotnej (Loopback Address). Może być wykorzystywany, kiedy chcemy wysłać pakiet sami do siebie. Nie przypisuje się go do żadnego fizycznego interfejsu. Jest przypisany do wirtualnego interfejsu loopback. Adres ::1 jest typu unicast o zakresie Link-Local.

Rekomendacje sposobu zapisu adresu IPv6 (m.in. kompresja zer):

Sprawdź, czy posiadasz adres IPv6

Polecenia sieciowe systemu Linux

ifconfig

Służy do wyświetlania interfejsów sieciowych i edycji ich ustawień. Obecnie komenda ta przestała być częścią najpopularniejszych edycji systemu Linux. Nie działa także na wydziałowych komputerach.

ifconfig

ip

Nowszy odpowiednik ifconfig

ip

ip addr

Sprawdzanie adresu internetowego w systemie linux:

ip addr

ping

Polecenie ping służy do sprawdzenia połączenia między dwoma hostami. Działa tak samo jak w systemie windows.

ping google.com

Ważne pliki systemu linux:

/etc/hosts - odwzorowanie nazw hostów do adresów IP
/etc/networks - odwzorowanie nazw sieciowych do adresów IP
/etc/services - przypisanie nazw serwisów do numerów portów

Porty

Porty służą jako końcówki komunikacyjne w połączeniach typu TCP i UDP. Port jest 16-bitowym numerem z zakresu 0 do 65535. Niektóre numery portów (od 0 do 1023) są określone jako ogólnie znane (ang. well known ports) oraz zarezerwowane na standardowo przypisane do nich usługi, takie jak np. WWW czy poczta elektroniczna. Stąd numeracje portów dzielimy na trzy zakresy:

Well Known Ports: o numerach od 0 do 1023.
Registered Ports: o numerach od 1024 do 49151
Dynamic and/or Private Ports: o numerach od 49152 do 65535

Przykłady:

21: FTP Server
22: SSH Server (remote login)
25: SMTP (mail server)
53: Domain Name System (Bind 9 server)
80: World Wide Web (HTTPD server)
110: POP3 mail server
143: IMAP mail server
443: HTTP over Transport Layer Security/Secure Sockets Layer (HTTPDS server)
445: microsoft-ds, Server Message Block over TCP

Do wyświetlenia otwartych portów może posłużyć nam polecenie netstat:

netstat -a
netstat -nal | grep LISTEN

Podział sieci na podsieci dla IPv4

Załóżmy, że firma posiada jeden adres IP. Jak rozplanować adresację sieci tak by podzielić ją pomiędzy kilka lokalizacji (budynków).

Zasady:
z części komputerowej zapożyczamy pewną liczbę bitów po to, by przedłużyć część sieciową
w zapożyczonej części numerujemy podsieci
każda podsieć jest sama w sobie siecią IP, dlatego ma własne adresy szczególne (adres sieci i rozgłoszeniowy)

Przykład:

Podzielić sieć 150.10.0.0 z maską 255.255.0.0 (/16) na cztery podsieci, podając w wyniku:
adres i maskę każdej podsieci
zakres adresów komputerów w każdej podsieci
adres rozgłoszeniowy w każdej podsieci

Odpowiedź :

pierwsza
150.10.0.0, 255.255.192.0
150.10.0.1 - 150.10.63.254
150.10.63.255
druga
150.10.64.0, 255.255.129.0
150.10.64.1 - 150.10.127.254
150.10.127.255
trzecia
150.10.128.0, 255.255.192.0
150.10.128.1 - 150.10.191.254
150.10.191.255
czwarta
150.10.192.0, 255.255.192.0
150.10.192.1 - 150.10.255.254
150.10.255.255

Dla opornych

Film na temat adresacji (do obejrzenia w domu)

Podział sieci na podsieci różnej wielkości (VLSM)

Podział na sieci różnej wielkości stosujemy w wypadku gdy nie zadowala nas równomierny podział. Na najwyższym poziomie dzielimy sieci na części by zaspokoić największe wymagania i następnie schodzimy na coraz to mniejsze.

Szczegóły można znaleźć np. tutaj:

Uwaga! Aby rozwiązanie takie działało wraz z adresem IP musi być przekazywana maska. Protokoły wspierające VLSM:
RIP v2 (IETF),
OSPF (IETF),
EIGRP(Cisco).

CIDR

Stosowane na początku rozwoju sieci internet pojęcie sieci danej klasy zastąpiono bardziej elastycznym pojęciem blok adresów CIDR, w którym istotna jest tylko długość maski. Liczba adresów w bloku CIDR jest dowolną (w ustalonym zakresie) potęgą liczby 2.

W CIDR długość maski podsieci jest dostosowana do potrzeb danej podsieci lub wpisu w tablicy routingu (po angielsku variable length subnet masks VLSM), a nie ustalana jedna dla całej sieci. CIDR pozwala na efektywniejsze wykorzystywanie puli adresów IP oraz zmniejszenie tablic routingu.

Zasada działania:

Mając dany zakres adresów IP sieci, wyodrębniamy z ich części sieciowych najdłuższy wspólny podciąg bitów, tym samym skracamy część sieciową i tworzymy uogólniony adres IP sieci (tzw. adres nadsiecilub CIDR, ang.supernet address lub CIDR address).

nmap

Nmap (ang. Network Mapper) jest narzędziem open source do eksploracji sieci.

man nmap

Zadanie (10 pkt)

Wykonaj polecenie

lsof -i

aby zobaczyć jakich portów używają uruchomione w systemie programy. Wejdź na stronę prowadzącego skopiuj wpis pokazujący na którym porcie przeglądarka łączy się ze stroną prowadzącego.

Zadanie (20 pkt)

Adres komputera docelowego to 150.254.78.69

Sprawdź jak za pomocą polecenia nmap sprawdzić, które porty na komputerze są otwarte. Prowadzący uruchomił za pomocą netcat serwer na swoim komputerze, serwer działa na losowym porcie o numerze między 2000-2100.

Określ za pomocą nmap na jakim porcie działa serwer a następnie uruchom klienta za pomocą netcat i prześlij prowadzącemu swoje dane: imie i nr indeksu.

Uwaga! każde zakończone sukcesem połączenie z serwer powoduje restart na losowym porcie, stąd może wystąpić konieczność kilkukrotnego przeszukania za pomocą nmap (gdyż serwer może zostać w międzyczasie zrestartowany).

Na Moodle podaj w treści swój numer indeksu.

Podejrzyj przez stronę

, czy Ci się udało.

Uwaga! Zadanie to musi być wykonywane wewnątrz sieci wydziałowej - komputer wydziałowy lub przez połączenie SSH.

Zadanie (50 pkt)

  1. Znajdź adres sieci i adres rozgłoszeniowy mając adres IP hosta i maskę:

    212.10.Pierwsze trzy cyfry Twojego numeru indeksu modulo 255 . Ostatnie trzy cyfry twojego numeru indeksu modulo 255 - maska 23

    Np. dla numeru 287046 będzie to 212.10.32.46, maska 23.

  2. Dla adresu Adres: 10.3.pierwsze trzy cyfry Twojego numeru indeksu modulo 255. Ostatnie trzy cyfry twojego numeru indeksu modulo 255. Maska: 255.255.255.240. Podaj adres sieci, liczbę adresów w podsieci, adres rozgłoszeniowy

  3. Dokonaj podziału na 1020 równych podsieci sieci o adresie 192.168.0.0/20. Podaj adres pierwszej, drugiej i 1020 podsieci.

  4. Mając do dyspozycji sieć 88.123.pierwsze trzy cyfry Twojego numeru indeksu modulo 255.0. Maska długości 24, wydziel trzy podsieci z który w podsieci A i B zmieści się przynajmniej 45 komputerów a w sieci C minimum 110 komputerów.

  5. Dokonaj agregacji CIDR adresów sieci z zakresu

    202.1.96.0/24
    202.1.97.0/24
    202.1.98.0/24
    ...
    202.1.126.0/24
    202.1.127.0/24

Zadanie (10 pkt)

Użytkownik wywołał funkcję

ip route show

i otrzymał odpowiedź:

192.167.1.0/24 dev wlp0s20f3 proto kernel scope link src 192.167.1.104 metric 600

Wytłumacz co oznacza otrzymana przez niego odpowiedź systemu.

Zadanie (10 pkt)

Podaj swój adres IP wersji 4 i zamień go na adres w wersji IPv6 w modelu "IPv6 6-to-4 tunnels".

Skorzystaj z informacji zawartych na stronie https://routing-bits.com/2009/03/19/converting-ipv4-to-ipv6/ (wystarczy dodać przedrostek 2002: i przeliczyć nasz adres IPv4 na postać szesnastkową).

Moodle

System przesyłania zadań:

Moodle:

Proszę zalogować się na stronie (logujemy się takimi samymi danymi jak na komputery wydziałowe) dopisać się do odpowiedniej grupy zajęciowej oraz odpowiedzi w formie tekstowej.

Uwaga! Odpowiedzi można przesyłać tylko raz między 26.X.2020 1:00 A.M. - 31.X.2020 1:00 A.M.

*

Wykorzystano materiały z:

http://www.cs.put.poznan.pl/mlibuda/adrIP1.pdf

http://www.cyberciti.biz/faq/linux-unix-open-ports/

http://www.cs.put.poznan.pl/mlibuda/adrIP2.pdf

https://www.networkers.pl/index.php/protokol-ipv6/28-ipv6-typy-adresow-i-ich-budowa