- Adres IP – co to jest?
- Adres IP jak adres domowy
- Struktura adresu IPv4
- Adresy IP statyczne i dynamiczne
- Jak sprawdzić swój adres IP?
- Podział adresów IPv4 na klasy
- Klasa A
- Klasa B
- Klasa C
- Klasy D i E – adresy specjalne
- Przykład: Zastosowanie multicast (klasa D)
- Adresy publiczne i prywatne
- Adresy publiczne
- Adresy prywatne
- Sieć prywatna a dostęp do Internetu (NAT)
- Przykład: Adresy IP w domowej sieci Wi-Fi
- Przykład: Duża sieć korporacyjna (klasa A prywatna)
- Klasy adresów IP w dzisiejszych czasach
- Adresacja bezklasowa (CIDR)
- Czy warto znać klasy adresów IP?
Każdy, kto korzysta z Internetu, spotkał się z pojęciem adresu IP. Ale co ono tak naprawdę oznacza i jaką pełni rolę w komunikacji sieciowej? Zanim przejdziemy do omawiania klas adresów IP, wyjaśnijmy najpierw podstawy: czym jest adres IP.
Adres IP – co to jest?
Każde urządzenie podłączone do Internetu (komputer, smartfon, router itp.) otrzymuje unikalny adres IP. Ten numer działa podobnie jak adres domowy lub numer telefonu – pozwala zidentyfikować urządzenie w sieci i skierować do niego dane. Gdy wysyłamy e-mail lub otwieramy stronę internetową, nasze urządzenie podaje swój adres IP, aby odbiorca wiedział, skąd pochodzi żądanie i dokąd przesłać odpowiedź.
Adres IP jak adres domowy
Można to porównać do wysyłania tradycyjnego listu. Na kopercie wpisujemy adres odbiorcy oraz adres nadawcy, aby poczta wiedziała, dokąd dostarczyć przesyłkę i dokąd ewentualnie odesłać odpowiedź. Podobnie w sieci komputerowej każda wiadomość (pakiet danych) zawiera adres docelowy (IP urządzenia, do którego dane mają trafić) oraz adres źródłowy (IP urządzenia wysyłającego). Adres IP gwarantuje, że dane trafią do właściwego miejsca i pozwala odbiorcy wysłać odpowiedź z powrotem do nadawcy. Ważne jest, że adresy IP są unikalne – w jednej sieci nie mogą istnieć dwa urządzenia o tym samym adresie, bo byłoby to tak, jak dwa domy z identycznym adresem.
W codziennym użyciu często posługujemy się nazwami domen (np. www.example.com) zamiast surowych adresów IP. Działa tutaj system DNS (Domain Name System), pełniący rolę swoistej „książki telefonicznej” Internetu. DNS przechowuje skojarzenia między nazwami domenowymi a adresami IP. Gdy wpisujesz nazwę strony, komputer automatycznie pyta serwer DNS o odpowiadający jej adres IP i następnie może połączyć się z właściwym serwerem.
Struktura adresu IPv4
Standardowy adres IPv4 składa się z czterech liczb (tzw. oktetów) oddzielonych kropkami, na przykład 192.168.1.15
. Każda z tych liczb może mieć wartość od 0 do 255. Są to liczby zapisane w systemie dziesiętnym dla wygody człowieka, natomiast komputer widzi je w postaci binarnej (każda z tych czterech części to 8 bitów, co razem daje 32-bitowy adres). W praktyce jednak nie musimy wykonywać żadnych operacji na bitach, aby korzystać z adresów IP – wystarczy znać ich notację dziesiętną.
Warto wspomnieć, że poza IPv4 istnieje także nowsza wersja protokołu – IPv6. Adresy IPv6 są znacznie dłuższe (128-bitowe) i zapisywane za pomocą liczb szesnastkowych, więc wyglądają inaczej (np. 2001:0db8:85a3::8a2e:0370:7334
). Klasy adresów IP dotyczą jednak wyłącznie starszej wersji IPv4. Dlatego w dalszej części skupimy się na adresach IPv4 i ich podziale na klasy.
Uwaga: Adresu IP nie należy mylić z adresem MAC karty sieciowej. Adres MAC (Media Access Control) to unikalny identyfikator sprzętowy interfejsu sieciowego (nadawany przez producenta), działający na niższym poziomie komunikacji. Adres IP jest przypisywany programowo i służy do komunikacji pomiędzy różnymi sieciami (routing), podczas gdy adres MAC umożliwia rozróżnienie urządzeń w ramach lokalnego segmentu sieci (np. w tej samej sieci Ethernet).
Adresy IP statyczne i dynamiczne
Adres IP może być statyczny lub dynamiczny. Statyczny adres IP to stałe, niezmienne przypisanie – urządzenie cały czas ma ten sam adres. Takie adresy stosuje się np. dla serwerów, które muszą być zawsze dostępne pod znanym adresem (np. strona internetowa ma przypisany stały IP). Z kolei dynamiczny adres IP jest przydzielany tymczasowo, zazwyczaj przez dostawcę Internetu lub przez router w sieci lokalnej za pomocą protokołu DHCP (Dynamic Host Configuration Protocol). Oznacza to, że adres może się zmieniać – np. po zrestartowaniu połączenia internetowego możesz otrzymać od swojego ISP (dostawcy usług internetowych) inny adres IP niż poprzednio. Dla zwykłego użytkownika domowego jest to często niezauważalne i nieszkodliwe. Ważne usługi wymagające stałego adresu (jak serwery) często korzystają ze statycznych adresów.
Z punktu widzenia użytkownika, statyczny adres IP gwarantuje, że usługa uruchomiona na danym urządzeniu (np. kamera monitoringu czy serwer) zawsze będzie dostępna pod tym samym adresem. Wadą jest jednak mniejsza elastyczność i często dodatkowy koszt – wielu dostawców Internetu żąda opłaty za stały adres. Adres dynamiczny jest zazwyczaj domyślnym rozwiązaniem dla klientów indywidualnych, ponieważ pozwala efektywnie zarządzać pulą adresów przez operatora (nie wszystkie muszą być stale przydzielone). Dla zwykłego internauty zmiana adresu co jakiś czas nie stanowi problemu.
Jak sprawdzić swój adres IP?
Skoro adres IP jest tak ważny dla komunikacji, warto wiedzieć, jak go sprawdzić na własnym urządzeniu. Sposób zależy od systemu operacyjnego:
- Windows: Otwórz wiersz polecenia (np. wpisując
cmd
w menu Start) i użyj komendyipconfig
. Wyświetlone zostaną informacje o połączeniach sieciowych, w tym adres IPv4 twojego komputera (dla aktywnego połączenia, np.Adres IPv4...: 192.168.0.101
). - Linux / macOS: W terminalu użyj polecenia
ifconfig
lub nowszegoip addr
. Odszukaj sekcję dotyczącą aktywnego interfejsu sieciowego (np.eth0
lubwlan0
), gdzie będzie wpisinet 192.168...
wskazujący adres. - Smartfon / tablet: Na urządzeniach mobilnych zazwyczaj można sprawdzić adres IP w ustawieniach połączenia Wi-Fi. Przykładowo, w systemie Android wejdź w Ustawienia > Sieć i Internet > Wi-Fi, kliknij nazwę sieci, z którą jesteś połączony, a następnie sprawdź szczegóły połączenia (powinien tam być wyświetlony adres IP urządzenia, np. 192.168.0.105). W iPhonie analogicznie przejdź do Ustawień Wi-Fi, wybierz aktywną sieć i odczytaj pole „Adres IP”.
- Router: Adres publiczny przydzielony przez dostawcę możesz sprawdzić logując się do panelu administracyjnego swojego routera (należy w przeglądarce otworzyć adres, np. 192.168.0.1, i zalogować się – na stronie statusu lub konfiguracji WAN zazwyczaj wyświetlany jest bieżący adres WAN/IP routera), albo po prostu odwiedzając stronę internetową, która pokazuje nasz adres (wystarczy w wyszukiwarce wpisać frazę typu „what is my ip” – wiele serwisów wyświetli adres, pod którym widzi nas Internet).
Pamiętaj, że jeśli jesteś za routerem, na komputerze zobaczysz prywatny adres (np. 192.168.x.x), a adres publiczny będzie posiadał router. Tak więc wynik ipconfig
może wskazać 192.168.0.101, podczas gdy w Internecie widoczny będzie adres routera, np. 83.22.45.10.
Podział adresów IPv4 na klasy
Dlaczego w początkach Internetu wprowadzono podział adresów IP na klasy? Głównym powodem był podział adresacji IP do potrzeb sieci o różnej wielkości. Już we wczesnych latach rozwoju Internetu wprowadzono podział adresów IPv4 na tzw. klasy adresowe. Określono pięć klas: A, B, C, D i E. Trzy pierwsze klasy (A, B, C) przeznaczone były dla zwykłych sieci – odpowiednio dużych, średnich i małych. Klasa D zarezerwowana została dla adresowania grupowego (multicast), a klasa E dla celów eksperymentalnych i przyszłych zastosowań. Podział ten ułatwiał zarządzanie adresami i trasowanie (routing) w sieci, ponieważ po samym pierwszym fragmencie adresu można było rozpoznać, z jak dużej sieci pochodzi.
Można to zilustrować analogią do numerów telefonicznych. Duże kraje często mają krótszy numer kierunkowy (np. +1 dla USA), co zostawia więcej cyfr na faktyczny numer telefonu i pozwala obsłużyć bardzo wiele abonentów. Mniejsze kraje mają dłuższe numery kierunkowe (np. +48 dla Polski ma dwie cyfry, a są też kierunkowe trzycyfrowe), więc na resztę numeru zostaje mniej cyfr – taka strefa numeracyjna pomieści mniej numerów telefonu. Podobnie klasa A adresów IP ma krótszy prefiks sieci (czyli mniej spośród czterech oktetów adresu służy do identyfikacji sieci), za to więcej miejsca na identyfikatory urządzeń. Natomiast klasa C ma dłuższy prefiks sieciowy (więcej spośród tych czterech oktetów stanowi adres sieci), przez co każda taka sieć może zawierać mniej urządzeń. W efekcie, sieć klasy A to niewiele sieci, ale każda bardzo duża; sieć klasy C to bardzo wiele sieci, z których każda obsługuje niewielką liczbę hostów.
Warto wspomnieć, że klasy adresów można też rozpoznać po zapisie binarnym pierwszego oktetu. Klasa A to wszystkie adresy, których pierwsze bity zaczynają się od 0
; klasa B – od sekwencji 10
; klasa C – od 110
; klasa D – od 1110
; klasa E – od 1111
. Odpowiada to właśnie omówionym zakresom wartości pierwszego bajtu. Przykładowo: adres 130.0.0.1 (pierwszy oktet 130) w zapisie binarnym zaczyna się od 1000...
, a więc należy do klasy B (bo rozpoczyna się od bitów 10
).
Klasa A
Adresy klasy A mają pierwszy oktet w zakresie od 1 do 126 (wartość 127 jest wyłączona z użytku, o czym poniżej). Oznacza to, że sieć klasy A rozpoznajemy po pierwszej liczbie adresu mieszczącej się w tym przedziale. Przykładowo, adres 25.4.168.200
czy 126.0.5.9
należą do klasy A (pierwsze liczby to odpowiednio 25 i 126). W adresie klasy A pierwszy oktet to część sieciowa, a pozostałe trzy oktety to część hosta (adresu urządzenia). Innymi słowy, każdy pojedynczy adres sieci (prefiks) klasy A obejmuje ogromną liczbę adresów hostów: ponad 16 milionów możliwych urządzeń w jednej sieci (dokładnie 2^24 = 16 777 216 adresów, z czego ok. 16 777 214 można użyć dla urządzeń). Dlatego klasę A przydzielano największym podmiotom i sieciom. Przykładowo w początkach Internetu kilka instytucji i firm otrzymało na własność całe sieci klasy A. Słynna amerykańska uczelnia MIT otrzymała pulę 18.0.0.0/8, firma Apple dysponowała siecią 17.0.0.0/8, Stanford University posiadał 36.0.0.0/8, a IBM otrzymał 9.0.0.0/8. Były to więc miliony adresów do dyspozycji pojedynczych organizacji (z których w praktyce wykorzystywano tylko część).
Ponieważ tylko pierwszy bajt adresu wskazuje sieć, łatwo policzyć, że maksymalnie może istnieć 126 sieci klasy A (tyle jest możliwych wartości od 1 do 126). Każda z nich ma za to ogromny zakres adresów do wykorzystania. Adresy rozpoczynające się od 127 (np. 127.0.0.1) nie są traktowane jako klasa A – to szczególny przypadek, tzw. adres loopback (pętli zwrotnej), używany do wskazywania „samego siebie” (localhost) w ramach komputera. Dlatego żaden rzeczywisty host w sieci nie otrzymuje adresu zaczynającego się od 127.
Ciekawostka: jeden z zakresów klasy A (adresy rozpoczynające się od 10.) został przeznaczony na adresy prywatne niewidoczne w Internecie (omówimy je dokładniej w dalszej części). Jeżeli zatem ktoś zauważy, że jego komputer ma adres IP zaczynający się od 10., oznacza to, że pracuje on w sieci lokalnej używającej prywatnej puli klasy A.
Klasa B
Adresy klasy B rozpoznajemy po pierwszym oktecie w zakresie od 128 do 191. Tutaj na część sieciową adresu przeznaczone są pierwsze dwa oktety, a na część hosta – dwa ostatnie oktety. Sieć klasy B jest więc średniej wielkości: może zawierać około 65 tysięcy adresów hostów (dokładnie 2^16 = 65 536, z czego 65 534 do użytku dla urządzeń). Za to liczba różnych sieci klasy B jest większa niż w klasie A – dostępnych było maksymalnie 16 384 sieci klasy B (różne kombinacje dwóch pierwszych bajtów, od 128.0.0.0 do 191.255.0.0).
Adresy tej klasy przydzielano dużym i średnim sieciom, np. dużym firmom lub kampusom uniwersyteckim. Przykładowe adresy klasy B to np. 172.20.5.4
(adres z puli prywatnej tej klasy) oraz 185.10.0.5
(adres publiczny klasy B). Warto zauważyć, że część adresów z tej klasy również zarezerwowano jako adresy prywatne – mowa o całym paśmie 172.16.0.0 – 172.31.255.255 (szesnaście sieci klasy B), które można wykorzystywać wewnętrznie w firmach i domach. Jeżeli urządzenie ma adres zaczynający się od 172.16.–172.31., to znaczy że działa w prywatnej sieci IP.
Ciekawostka: w obrębie klasy B istnieje jeszcze jeden szczególny zakres 169.254.0.0/16. Nie jest on co prawda zaliczany do prywatnych adresów RFC1918, ale również nie funkcjonuje w Internecie. Jest to tzw. zakres adresów „link-local” – jeśli komputer nie otrzyma adresu z serwera DHCP, może automatycznie skonfigurować się adresem 169.254.x.x, aby móc komunikować się lokalnie (mechanizm APIPA – Automatic Private IP Addressing). Adresy te działają tylko w obrębie pojedynczego segmentu sieci i nie są routowane globalnie.
Klasa C
Adresy klasy C mają pierwszy oktet w zakresie od 192 do 223. Tutaj aż trzy pierwsze oktety stanowią adres sieci, a ostatni oktet – adres hosta. Pojedyncza sieć klasy C jest więc niewielka, może obsłużyć maksymalnie 254 urządzenia (256 adresów od np. 192.168.0.0 do 192.168.0.255, z czego pierwszy jest adresem sieci (tu 192.168.0.0), ostatni adresem rozgłoszeniowym (192.168.0.255), a pozostałe 254 mogą być przypisane urządzeniom). Tego typu sieci wykorzystywane są w małych lokalnych sieciach: w biurach, małych firmach, a nawet w domowych routerach Wi-Fi.
Liczba możliwych sieci klasy C jest za to bardzo duża – może przekraczać 2 miliony (dokładnie 2^21 = 2 097 152 sieci), ponieważ kombinacji trzech pierwszych oktetów (od 192.0.0.xxx do 223.255.255.xxx) jest ogromna. W czasach rozwoju Internetu klasa C była często przydzielana tysiącom mniejszych podmiotów, które potrzebowały własnej puli adresów, ale nie aż tak wielkiej jak w klasie A czy B.
Przykładowy adres klasy C to 192.168.1.100
(jest to adres z prywatnej puli 192.168.x.x) oraz 200.1.2.3
(publiczny adres klasy C). Cały zakres 192.168.0.0 – 192.168.255.255 z klasy C został przeznaczony na adresy prywatne. Dlatego np. routery domowe zazwyczaj korzystają z adresów 192.168.x.x dla siebie i urządzeń w sieci lokalnej (np. router ma 192.168.0.1, komputery 192.168.0.2, 192.168.0.3 itd.).
Klasy D i E – adresy specjalne
Pozostałe dwie klasy są używane inaczej niż klasy A, B, C:
Klasa D obejmuje adresy, w których pierwszy oktet mieści się w przedziale 224–239. Nie służy ona do adresowania pojedynczych hostów, lecz do komunikacji grupowej (multicast). Oznacza to, że pakiety wysyłane na adres z klasy D są odbierane jednocześnie przez więcej niż jeden komputer – przez całą grupę urządzeń zapisanych do danego adresu multicast. Mechanizm ten wykorzystywany jest m.in. do transmisji mediów strumieniowych (np. jednoczesne wysyłanie wideo do wielu odbiorców), transmisji w protokołach konferencyjnych, a także w pewnych protokołach sieciowych (np. rozgłaszanie informacji routingowych). Przykładowy adres z klasy D to 239.255.0.1.
Klasa E to adresy z pierwszym oktetem od 240 do 255. Zostały one zarezerwowane z myślą o przyszłych rozszerzeniach i celach eksperymentalnych. W praktyce adresy z klasy E nie są przydzielane urządzeniom i nie występują w typowej komunikacji sieciowej. Jedynym wyjątkiem jest specjalny adres rozgłoszeniowy 255.255.255.255
, który nie identyfikuje konkretnego hosta, lecz oznacza „wszystkie hosty w sieci lokalnej” – wiadomość wysłana na ten adres zostanie odebrana przez każde urządzenie w lokalnej sieci.
Uzupełniając listę szczególnych adresów: warto wspomnieć o adresie 0.0.0.0, który również nie jest przypisywany urządzeniom jako ich identyfikator. Adres 0.0.0.0 oznacza „brak konkretnego adresu” lub „wszystkie adresy” w kontekście danego hosta. Wykorzystywany jest np. w tablicach routingu do określenia trasy domyślnej (gateway ostatniej szansy) lub może być widoczny, gdy interfejs sieciowy nie posiada jeszcze żadnego przydzielonego IP.
Podsumowując klasy A, B i C: klasa A obejmuje niewielką liczbę (zaledwie 126) bardzo dużych sieci (każda do ~16 milionów hostów), klasa B to tysiące sieci średniej wielkości (po ok. 65 tysięcy hostów), a klasa C to ponad dwa miliony małych sieci (każda do 254 hostów). Ten historyczny podział pozwalał (w założeniach) przydzielać adresy adekwatnie do potrzeb – duże organizacje mogły dostać ogromną klasę A, a małe firmy jedną lub kilka sieci klasy C. Z czasem jednak okazało się, że tak sztywny podział jest mało elastyczny, co doprowadziło do zmian, o których powiemy dalej.
Przykład: Zastosowanie multicast (klasa D)
Wyobraźmy sobie dużą firmę, która chce przeprowadzić transmisję wideo na żywo do wszystkich swoich oddziałów. Mogłaby wysłać oddzielny strumień do każdego komputera (co jednak marnowałoby pasmo), ale zamiast tego korzysta z adresu multicast w klasie D. Administrator wybiera adres, powiedzmy 239.1.1.1, i konfiguruje sprzęt sieciowy tak, by komputery zainteresowane transmisją dołączyły do tej grupy multicast. Gdy rozpoczyna się transmisja, serwer wysyła strumień wideo w kierunku 239.1.1.1, a sieć dba o to, by kopiować pakiety tylko tam, gdzie są subskrybenci (komputery, które zgłosiły chęć odbioru). W ten sposób jedno nadawanie dociera do wielu odbiorców jednocześnie, bez zwielokrotniania ruchu. To właśnie przykład wykorzystania klasy D adresów IP.
Adresy publiczne i prywatne
Dopełnieniem tematu klas adresowych jest podział na adresy publiczne i adresy prywatne. Ten podział dotyczy zakresu widoczności i sposobu użycia adresu IP w sieci. Adres publiczny pozwala na bezpośredni kontakt z globalnym Internetem, podczas gdy adres prywatny jest przeznaczony do użytku w sieciach lokalnych i nie jest routowalny w globalnej sieci.
Adresy publiczne
Adres publiczny (zwany także zewnętrznym) to taki adres IP, który jest unikalny w skali całego Internetu i może być bezpośrednio osiągalny z innych sieci. Urządzenie mające publiczny adres IP może komunikować się z dowolnym innym hostem w Internecie bez dodatkowych pośredników. Przykładowo serwery stron internetowych, usług online czy routery dostawców Internetu posiadają właśnie adresy publiczne, dzięki czemu każdy użytkownik może się z nimi połączyć.
Publiczne adresy IPv4 są zarządzane przez organizacje takie jak IANA i regionalne rejestry internetowe, tak aby były one unikalne. Pula tych adresów jest ograniczona (około 4,3 miliarda możliwości) i w zasadzie została już prawie wyczerpana. Dlatego tak ważne było wprowadzenie adresów prywatnych i mechanizmów takich jak NAT – by wiele urządzeń mogło dzielić jeden adres publiczny. (NAT omówimy za chwilę.) Publiczny adres IP zazwyczaj pozwala również na ustalenie, przez jakiego operatora i w jakim regionie jest używany (zakresy adresów są rejestrowane i przypisane do określonych krajów czy dostawców).
Adresy prywatne
Adres prywatny (wewnętrzny) to adres IP przeznaczony do użytku w ramach lokalnej sieci (np. w domu, firmie, uczelni) i niebędący unikalnym w skali całego Internetu. Urządzenia mogą mieć takie same adresy prywatne w różnych sieciach, ponieważ adres prywatny jest widoczny tylko w obrębie swojej lokalnej sieci. Routery w globalnym Internecie ignorują pakiety z adresów prywatnych – oznacza to, że komputer posiadający jedynie prywatny IP nie może bezpośrednio połączyć się z publicznym Internetem. Dlatego do komunikacji ze światem takie urządzenie potrzebuje pośrednictwa routera z publicznym adresem (patrz: NAT poniżej).
Dla IPv4 wyznaczono trzy główne zakresy adresów prywatnych (zgodnie z RFC 1918):
- 10.0.0.0 – 10.255.255.255 – zakres klasy A (bardzo duża prywatna sieć, do ok. 16 milionów adresów)
- 172.16.0.0 – 172.31.255.255 – zakres klasy B (16 prywatnych sieci średniej wielkości, łącznie ok. 1 milion adresów)
- 192.168.0.0 – 192.168.255.255 – zakres klasy C (256 małych sieci prywatnych, łącznie ok. 65 tysięcy adresów)
Jak widać, prywatne pule adresów odpowiadają trzem głównym klasom – organizacja może więc wybrać odpowiedni zakres w zależności od potrzeb. Na przykład w domu zazwyczaj wystarczy niewielka sieć klasy C (np. 192.168.0.0/24), natomiast duża firma może wykorzystać ogromny zakres z klasy A (10.0.0.0/8) do adresowania swoich urządzeń wewnętrznie.
Powyższe zakresy są wspólne i ogólnodostępne – może z nich korzystać każdy w swojej sieci lokalnej. Adres publiczny jest unikalny w całym Internecie. Po publicznym IP można zazwyczaj określić operatora internetowego i przybliżony region geograficzny, z którego pochodzi. Adres prywatny jest unikalny tylko lokalnie i może powtarzać się w wielu sieciach (nie pozwala też na określenie lokalizacji użytkownika z zewnątrz, bo prywatny adres powtarza się w wielu miejscach, więc nie zdradza miejsca).
Cechy adresu publicznego:
- Unikalny w skali światowej sieci (nie powtarza się nigdzie indziej w Internecie).
- Może być bezpośrednio osiągnięty z innej sieci przez routery internetowe.
- Przydzielany zazwyczaj przez operatora (ISP) lub rejestrowany w oficjalnych bazach.
- Ograniczona liczba (IPv4), może być odpłatny lub trudno dostępny ze względu na wyczerpywanie się puli.
- Zwykle ujawnia informacje o dostawcy i przybliżonej lokalizacji (na podstawie rejestracji adresu).
Cechy adresu prywatnego:
- Ważny tylko w obrębie lokalnej sieci, może powtarzać się w wielu różnych sieciach (unikalny jedynie lokalnie).
- Nie jest routowany w globalnym Internecie (routery go nie przepuszczą dalej).
- Może być dowolnie wykorzystywany przez każdą osobę czy firmę bez zgłaszania do centralnych rejestrów.
- Ogólnodostępny i bezpłatny – puli prywatnych adresów nie da się „wyczerpać” (w razie potrzeby można użyć tych samych adresów w innej odizolowanej sieci).
- Wymaga zastosowania NAT do komunikacji z Internetem (pośrednictwo routera z publicznym IP).
Sieć prywatna a dostęp do Internetu (NAT)
Skoro adresy prywatne nie są bezpośrednio osiągalne w Internecie, jak zatem komputery w sieci domowej czy firmowej mogą przeglądać strony WWW lub wysyłać e-maile? Tutaj do gry wchodzi mechanizm NAT (Network Address Translation – translacja adresów sieciowych). NAT jest realizowany zazwyczaj przez router brzegowy łączący naszą sieć z dostawcą Internetu. Polega on na zamianie adresów prywatnych na publiczny podczas komunikacji wychodzącej i odwrotnie – na przekierowywaniu odpowiedzi z powrotem do właściwego urządzenia w sieci prywatnej.
Na przykład, jeśli komputer w sieci lokalnej ma adres 192.168.0.100 i chce połączyć się z serwerem w Internecie, wysyła pakiet do routera. Router nadpisuje adres źródłowy pakietu na swój publiczny adres (powiedzmy 83.22.45.10) i tak zmodyfikowany pakiet wyrusza do Internetu. Serwer docelowy widzi połączenie z adresu 83.22.45.10 (nie zna wewnętrznego 192.168.0.100) i odsyła odpowiedź na ten publiczny adres. Router odbiera tę odpowiedź i na podstawie wcześniej zapamiętanych informacji (skojarzenia po numerach portów komunikacyjnych) przekierowuje ją do właściwego komputera w sieci prywatnej (192.168.0.100). Dla użytkownika działa to całkowicie przezroczyście – ma on dostęp do Internetu mimo korzystania z prywatnego IP.
Można to porównać do centralki telefonicznej w firmie. Wewnątrz biura każdy pracownik ma swój numer wewnętrzny (np. 12, 13, 14…), ale na zewnątrz firma udostępnia jeden numer miejski. Gdy pracownik z numerem wewnętrznym 12 dzwoni do klienta, centrala firmy inicjuje połączenie z numeru firmowego. Klient widzi tylko jeden numer firmy, choć rozmawia z konkretnym pracownikiem. Jeśli klient oddzwoni, centrala na podstawie identyfikatora rozmowy przełączy go do odpowiedniego pracownika (nr 12). Podobnie NAT ukrywa całą sieć prywatną za jednym adresem publicznym, kierując ruch do właściwych urządzeń.
Efektem ubocznym NAT jest pewien wzrost bezpieczeństwa (komputery w sieci prywatnej są niewidoczne z Internetu, trudno się do nich dostać bez odpowiedniej konfiguracji routera). Z drugiej strony, jeśli chcemy udostępnić usługę z sieci lokalnej na zewnątrz (np. serwer gry lub kamerę IP), musimy skonfigurować router (przekierowanie portów lub inne mechanizmy), ponieważ domyślnie NAT blokuje ruch przychodzący niepowiązany z wcześniej zainicjowanymi połączeniami. Dzięki powszechnemu stosowaniu NAT i adresów prywatnych, miliardy urządzeń mogą korzystać z Internetu mając do dyspozycji zaledwie kilkaset milionów unikalnych adresów publicznych IPv4. Bez tego mechanizmu globalna pula adresów wyczerpałaby się znacznie wcześniej.
Przykład: Adresy IP w domowej sieci Wi-Fi
Rozważmy konkretną sytuację, by zobaczyć, jak wygląda praktyczne wykorzystanie adresów IP prywatnych i publicznych. Załóżmy, że Anna ma w domu router Wi-Fi od swojego dostawcy Internetu. Router ten otrzymał od operatora publiczny adres IP (np. 83.22.45.10
). Dzięki temu router jest widoczny w sieci Internet i może się łączyć z serwerami (np. stronami WWW) i odbierać od nich dane.
Jednocześnie router Anny przydziela prywatne adresy IP wszystkim domowym urządzeniom podłączonym do Wi-Fi. Korzysta przy tym z puli 192.168.0.0/24 (klasa C). Sam router ma w tej sieci adres 192.168.0.1 (pełni rolę bramy domyślnej dla pozostałych urządzeń). Laptop Anny po połączeniu z Wi-Fi otrzymał adres 192.168.0.101, smartfon 192.168.0.102, a np. telewizor 192.168.0.103.
Gdy Anna na laptopie wpisuje w przeglądarce adres strony, jej laptop (192.168.0.101) wysyła zapytanie do routera (192.168.0.1). Router stosując NAT przekazuje je do Internetu posługując się swoim publicznym adresem 83.22.45.10. Serwer WWW odsyła dane na 83.22.45.10, a router wie, że ma je przekazać do laptopa 192.168.0.101. W ten sposób cała rodzina Anny może jednocześnie korzystać z Internetu na wielu urządzeniach, mimo że dostawca przydzielił jej tylko jeden adres IPv4. Adresy prywatne 192.168.0.x umożliwiają komunikację wewnątrz domu, a adres publiczny routera zapewnia łączność ze światem.
Przykład: Duża sieć korporacyjna (klasa A prywatna)
Inny przykład to duża korporacja posiadająca tysiące urządzeń w wielu oddziałach. Taka firma może wykorzystać prywatny zakres 10.0.0.0/8 (klasa A) dla całej swojej wewnętrznej sieci. Cały zakres 10.0.0.0 do 10.255.255.255 daje ogromną pulę adresów, które firma może podzielić na mniejsze podsieci dla poszczególnych departamentów czy lokalizacji. Na przykład, centrala firmy może używać podsieci 10.1.0.0/16, oddział w innym mieście 10.2.0.0/16, itp. Każda z tych podsieci może dalej być dzielona (np. 10.1.0.0/24, 10.1.1.0/24 dla różnych budynków lub działów). W ten sposób jedna klasa A prywatna zaspokaja potrzeby adresowe całej wielkiej organizacji. Na styku z Internetem firma używa oczywiście mniejszej liczby adresów publicznych (np. po jednym na każde centrum danych, wykupionych od dostawcy) i stosuje NAT, by ukryć całą swoją rozległą sieć za kilkoma publicznymi IP.
Klasy adresów IP w dzisiejszych czasach
Wiedząc już, czym są klasy adresów IPv4, warto na koniec zaznaczyć, jak ten koncept ma się do współczesnej sieci. Otóż sztywny podział na klasy okazał się z czasem niewystarczająco elastyczny. W 1993 roku wprowadzono metodę adresacji bezklasowej (CIDR), która zastąpiła tradycyjne klasy, pozwalając na bardziej efektywne wykorzystanie puli adresów IPv4.
Adresacja bezklasowa (CIDR)
CIDR (Classless Inter-Domain Routing) to podejście, w którym rezygnuje się z sztywnego przypisania rozmiaru sieci do klasy adresu. Zamiast tego adresom IPv4 towarzyszy prefiks określający dokładną długość części sieciowej w bitach (np. /20, /28 itp.). Pozwala to przydzielać sieci o różnej wielkości, dokładnie takiej, jaka jest potrzebna, bez marnowania adresów. Przykładowo, jeśli firma potrzebuje około 1000 adresów, mogła dostać klasę B (65 tysięcy adresów, z czego 98% byłoby niewykorzystane). W adresacji bezklasowej można zamiast tego przydzielić jej zakres o prefiksie /22 (co daje 1024 adresy) – dokładnie tyle, ile potrzeba z niewielkim zapasem.
Dziś nic nie stoi na przeszkodzie, by użyć adresów dowolnego zakresu w sieciach różnej wielkości – na przykład możemy skonfigurować sieć wewnętrzną 10.0.0.0/24 (choć 10.x.x.x to klasa A, tu używamy tylko 256 adresów jak w klasie C) albo przeciwnie: zarezerwować większy blok 192.168.0.0/20 (adresy klasy C, ale 4096 adresów w jednej sieci). W adresacji bezklasowej klasy są więc nieistotne dla działania sieci – liczy się konkretny prefiks (maska podsieci), który określa podział na część sieciową i hosta.
Zmiana na adresację bezklasową została wprowadzona oficjalnie w 1993 roku. Od tego momentu nowe przydziały adresów IPv4 dokonywane były już z użyciem elastycznych prefiksów zamiast sztywnych klas. W drugiej połowie lat 90. coraz większa liczba urządzeń podłączonych do sieci spowodowała również popularyzację mechanizmu NAT i adresów prywatnych w sieciach domowych oraz firmowych. Te technologie razem znacząco opóźniły wyczerpanie się puli IPv4.
W 2011 roku oficjalnie ogłoszono wyczerpanie globalnej puli adresów IPv4 (przydzielono ostatnie wolne bloki adresowe organizacjom regionalnym). Od tego czasu wszystkie nowe sieci muszą polegać na współdzieleniu adresów (NAT) lub przenosić się na IPv6. Protokół IPv6 oferuje ogromną przestrzeń adresową (2^128 adresów) i nie używa koncepcji klas. Pełne przejście na IPv6 potrwa jednak długo, dlatego znajomość IPv4 i jego klas adresowych pozostanie przydatna jeszcze przez lata.
Czy warto znać klasy adresów IP?
Mimo, że współcześnie stosujemy adresację bezklasową, znajomość podziału na klasy adresów IPv4 nadal jest przydatna. Po pierwsze, wiele koncepcji sieciowych można łatwiej zrozumieć mając za podstawę klasy adresów – np. pojęcie maski podsieci często tłumaczy się w oparciu o domyślne maski klas A/B/C. Nawet jeśli tworzysz własną podsieć o niestandardowym rozmiarze, zwykle podaje się jej maskę w relacji do klasy podstawowej (np. „/26 w obrębie klasy C”).
Po drugie, terminy typu „adres klasy A”, „sieć klasy C” są wciąż używane skrótowo w żargonie zespołów IT czy dokumentacji. Przykładowo, mówi się tak na adresy prywatne 10.x.x.x („prywatna klasa A”) lub określa pewne podsieci mianem „klasy C” (mając na myśli sieć z maską 255.255.255.0, czyli 256 adresów). Znajomość klas ułatwia więc komunikację i rozumienie starszych materiałów.
Po trzecie, rozpoznawanie adresów prywatnych opiera się na klasach – wiedząc, że np. 192.168.x.x to prywatna klasa C, od razu wiesz, że taki adres jest lokalny. Podobnie 10.x.x.x (klasa A) czy 172.16–31.x.x (klasa B) – te zakresy szybko wpadają w pamięć. Z kolei adres, który nie mieści się w powyższych zakresach – np. 8.8.8.8 – jest adresem publicznym.
Jak widać, klasy adresów IP to nie tylko element historyczny, ale także podstawa, dzięki której łatwiej zrozumieć współczesne mechanizmy adresacji i routingu. Pojęcia te pojawiają się na co dzień – od konfiguracji domowego routera (gdzie często wpisujemy maskę 255.255.255.0 klasy C), po literaturę i egzaminy z sieci komputerowych, które nadal uczą o klasach adresów jako punkcie wyjścia do zrozumienia adresowania IP. Nawet w dobie IPv6 warto mieć pojęcie o klasach IPv4, bo wielu pojęć sieciowych szybciej nauczymy się właśnie poprzez pryzmat prostego podziału na klasy A, B, C.