SIK02.rs

Sieci Komputerowe

Podstawy *

Adresacja IP

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) - unikalny 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 - element sieciowy równoważny z połączeniem sieciowym.

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.

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

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 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

Zadanie (1 pkt)

Wykonaj polecenie

lsof -i

aby zobaczyć jakich portów używają uruchomione w systemie programy. Skopiuj wpis pokazujący na którym porcie przeglądarka łączy się ze stroną mw.vm.wmi.amu.edu.pl (wcześniej wejdź na tę stronę w przeglądarce i zaloguj się do serwisu).

Podział sieci na podsieci

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ź :

150.0.0.0 | 150.0.0.1 - 150.63.255.254 | 150.63.255.255
150.64.0.0 | 150.64.0.1 - 150.127.255.254 | 150.127.255.255
150.128.0.0
150.128.0.1 - 150.191.255.254
150.191.255.255
150.192.0.0 | 150.192.0.1 - 150.255.255.254 | 150.255.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).

IPv6

IPv6 jest rozszerzonym standardem adresowania komputerów w sieci internet. Adres w wersji szóstej posiada 128-bitów i jest zapisywany w postaci szesnastkowej z dwukropkiem separującym każdą 16-bitową sekcję adresu:

2001:0db8:0000:0001:0000:0000:0000:0001

Najważniejsze informacje o standardzie IPv6 można znaleźć np. tutaj:

Nawiązywanie połączenia między komputerami

Netcat

Polecenie netcat działa jak cat, tylko pozwala na związanie wyjścia z portem interfejsu sieciowego. Pozwala dzięki temu na uruchomienie prostego serwera i klienta TCP / UDP na lokalnych komputerach, co może być bardzo przydatne np do testowania serwisów sieciowych.

Wygląda na to, że w laboratoriach (testy zdalne) ruch TCP jest blokowany, i możemy posłużyć się jedynie serwerem z protokołem UDP.

Uruchamianie serwera dokonujemy poleceniem:

nc -l -k -u -p 2389

lub (dla windows)

nc -L -p -u 2389

Gdzie przełącznik -l mówi nam o przejściu w tryb nasłuchiwania, -p określa port a -k (lub -L) mówi, że serwer ma być utrzymany nawet po rozłączeniu klienta.

Uruchom nowy terminal i uruchom w nim program klienta:

nc -u localhost 2389

Jeżeli napiszesz coś w oknie klienta to samo powinno być wyświetlone w oknie serwera. Uwaga! w laboratoriach z jakiegoś powodu nie chce działać serwer na TCP dlatego stosujemy protokół UDP - przełącznik -u.

man nc

Inne sztuczki z netcatem:

nmap

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

man nmap

Zadanie (4 pkt)

Adres komputera docelowego zostanie podany na zajęciach.

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 nazwisko i nr indeksu.

Uwaga! użyj przełącznika -v w celu określenia, czy klientowi udało się połączyć z serwerem.

Zadanie (5 pkt)

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

    212.10.Pierwsze trzy cyfry twojego numer indeksu modulo 255. Ostatnie trzy cyfry Twojego numeru indeksu modulo 255 /23
  2. Dokonaj podziału na 28 równych podsieci sieci o adresie 172.16.0.0/22.

  3. Podziel sieć: 204.15.5.0/24 podziel na podsieci:

    netA: must support 14 hosts
    netB: must support 28 hosts
    netC: must support 2 hosts
    netD: must support 7 hosts
    netE: must support 28 host,

Podaj adresy sieci, liczbę adresów w podsieci, adresy rozgłoszeniowe

  1. Napisz czym jest adres, jaką ma wartość i do czego służy adres localhost (inaczej loopback adress)

  2. Dokonaj agregacji CIDR adresów sieci z zakresu

    212.56.132.0/24
    212.56.133.0/24
    212.56.134.0/24
    212.56.135.0/24

Zadanie dla osób nudzących się (bez punktu)

Za pomocą narzędzia netcat zaimplementuj serwer działający w taki sposób jak ten w ćwiczeniu 1.

*

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