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.00011110Maska: 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.00000000Adres rozgłoszeniowy: 172.16.31.255 - 10101100.00010000.00011111.11111111Adres 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.255172.16.0.0 - 172.31.255.255192.168.0.0 - 192.168.255.255
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
Sprawdzanie adresu internetowego w systemie linux:
ip addr
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 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 49151Dynamic and/or Private Ports: o numerach od 49152 do 65535
Przykłady:
21: FTP Server22: SSH Server (remote login)25: SMTP (mail server)53: Domain Name System (Bind 9 server)80: World Wide Web (HTTPD server)110: POP3 mail server143: IMAP mail server443: 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
Załóżmy, że firma posiada jeden adres IP. Jak rozplanować adresację sieci tak by podzielić ją pomiędzy kilka lokalizacji (budynków).
Przykład:
Odpowiedź :
pierwsza150.10.0.0, 255.255.192.0150.10.0.1 - 150.10.63.254150.10.63.255druga150.10.64.0, 255.255.129.0150.10.64.1 - 150.10.127.254150.10.127.255trzecia150.10.128.0, 255.255.192.0150.10.128.1 - 150.10.191.254150.10.191.255czwarta150.10.192.0, 255.255.192.0150.10.192.1 - 150.10.255.254150.10.255.255
Film na temat adresacji (do obejrzenia w domu)
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:
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 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:
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 służy do tego przełącznik -u. Sprawdź jak zachowa się komenda nc bez tego przełącznika.
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.
man nc
Inne sztuczki z netcatem:
Nmap (ang. Network Mapper) jest narzędziem open source do eksploracji sieci.
man nmap
Zadanie (1 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 (3 pkt)
Adres komputera docelowego to 150.254.68.149
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 (uwaga! W tym wypadku nie używaj przełącznika -u) i prześlij prowadzącemu swoje dane: imie nazwisko 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).
Uwaga! Zadanie to musi być wykonywane wewnątrz sieci wydziałowej - komputer wydziałowy lub przez połączenie SSH.
Zadanie (6 pkt)
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 23Np. dla numeru 287046 będzie to 212.10.32.46, maska 23.
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
Dokonaj podziału na 1020 równych podsieci sieci o adresie 192.168.0.0/20. Podaj adres pierwszej, drugiej i 1020 podsieci.
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.
Napisz czym jest adres, jaką ma wartość i do czego służy adres localhost (inaczej loopback adress).
Dokonaj agregacji CIDR adresów sieci z zakresu
202.1.96.0/24202.1.97.0/24202.1.98.0/24...202.1.126.0/24202.1.127.0/24
Rozwiązania zadań proszę przesłać przez stronę:
Wykorzystano materiały z:
http://www.cs.put.poznan.pl/mlibuda/adrIP1.pdf