Wszystkie zagadnienia: Teoria
średni sieciklasy adresówNATmatura rozszerzona z informatyki

Klasy adresów IP i adresy prywatne

Klasy adresów IPv4 od A do E rozpoznawane po pierwszym bajcie w zapisie binarnym, adresy prywatne RFC 1918 i NAT, czyli translacja adresów na routerze domowym.

01

Opis

Historycznie adresy IPv4 podzielono na klasy, żeby z góry ustalić, ile bitów przypada na sieć, a ile na hosty. O klasie decyduje pierwszy bajt adresu – a dokładniej jego kilka pierwszych bitów w zapisie binarnym. Dziś stosuje się elastyczniejszy podział przy pomocy masek, ale klasy nadal pojawiają się w pytaniach.

Osobno wydzielono adresy prywatne. Nie są one routowane w internecie – można ich używać dowolnie w sieciach domowych i firmowych, bo nigdy nie trafią na zewnątrz. Dzięki temu ten sam adres 192.168.0.1 może istnieć w milionach mieszkań naraz.

Żeby urządzenie z adresem prywatnym mogło korzystać z internetu, router stosuje NAT – podmienia adres prywatny na swój publiczny i pamięta, komu odesłać odpowiedź.

Cztery zasady, które wystarczą do większości pytań:

  • Klasę czyta się z pierwszego bajtu, nigdy z całego adresu. Bajty drugi, trzeci i czwarty nie mają tu żadnego znaczenia. 192.14.56.10 i 192.168.0.1 mają ten sam pierwszy bajt, więc obydwa są klasy C – choć tylko drugi z nich jest adresem prywatnym.
  • Rozstrzygają pierwsze bity, nie cała liczba. Klasa A zaczyna się od bitu 0, klasa B od 10, klasa C od 110, klasa D od 1110, klasa E od 1111. Po zamianie pierwszej liczby na osiem bitów odpowiedź widać od razu.
  • Prywatny to nie to samo co „z klasy C". Pule prywatne wykroiła norma RFC 1918 z trzech różnych klas: 10.x z klasy A, 172.16–31.x z klasy B, 192.168.x z klasy C. Adres spoza tych trzech zakresów jest publiczny, niezależnie od klasy.
  • NAT nie jest własnością adresu, tylko czynnością routera. Adres prywatny sam z siebie nie „zamienia się" w publiczny – zamienia go urządzenie na styku sieci lokalnej z internetem, zapisując tę podmianę w swojej tablicy.

Rozwinięcia ogólnych skrótów sieciowych (LAN, WAN, ISP, RFC, IETF…) zbiera słownik skrótów sieciowych.

02

Skróty i rozwinięcia

NAT
Network Address Translation translacja adresów: podmiana adresu IP w nagłówku pakietu przechodzącego przez router
PAT
Port Address Translation odmiana NAT, w której wiele urządzeń dzieli jeden adres publiczny, a rozróżnia je numer portu
NAPT
Network Address and Port Translation oficjalna nazwa PAT w dokumentach IETF; w routerach domowych spotykana jako „maskarada"
SNAT
Source NAT podmiana adresu nadawcy – to robi router domowy dla ruchu wychodzącego
DNAT
Destination NAT podmiana adresu odbiorcy – tak działa przekierowanie portów dla ruchu przychodzącego
03

Jak to działa

### Krok 1: zamień pierwszą liczbę na osiem bitów

Adres 131.125.94.11 – interesuje nas wyłącznie 131. Odejmujemy kolejne wagi bitów, od największej:

waga: 128 64 32 16 8 4 2 1 131 ≥ 128 → bit 1, zostaje 3 3 < 64 → bit 0 3 < 32 → bit 0 3 < 16 → bit 0 3 < 8 → bit 0 3 < 4 → bit 0 3 ≥ 2 → bit 1, zostaje 1 1 ≥ 1 → bit 1, zostaje 0 wynik: 131 = 10000011

Adres zaczyna się od bitów 10, więc należy do klasy B. Tak samo liczy się każdy inny pierwszy bajt: 191 to 10111111 (znowu 10 – klasa B, mimo że liczba jest bliska 192), a 192 to 11000000 (bity 110 – klasa C).

W praktyce nie trzeba zamieniać całego bajtu – wystarczą cztery progi: 128, 192, 224 i 240.

### Krok 2: odczytaj podział na sieć i host

Klasa mówi, ile bitów adresu opisuje sieć, a ile pojedynczy komputer w tej sieci:

  • Klasa A – 1 bit stały (0) + 7 bitów numeru sieci, czyli 2⁷ = 128 możliwości. Dwie pule są wyłączone z użytku (0.x i 127.x), więc zostaje 2⁷ − 2 = 126 sieci. Na hosty przypadają 24 bity: 2²⁴ − 2 = 16 777 214 hostów w jednej sieci.
  • Klasa B – 2 bity stałe (10) + 14 bitów sieci, czyli 2¹⁴ = 16 384 sieci, po 2¹⁶ − 2 = 65 534 hostów.
  • Klasa C – 3 bity stałe (110) + 21 bitów sieci, czyli 2²¹ = 2 097 152 sieci, po 2⁸ − 2 = 254 hostów.
  • Klasa D (224–239) to multicast, czyli adresowanie całych grup odbiorców naraz, a klasa E (240–255) jest zarezerwowana i nieużywana. W żadnej z nich nie przydziela się adresów zwykłym komputerom.

Odejmowane w każdej klasie dwa adresy to adres sieci (na miejscach hosta same zera) i adres rozgłoszeniowy (same jedynki) – rachunki na maskach opisuje hasło obliczanie adresu sieci i rozgłoszeniowego.

Ten sztywny podział był marnotrawstwem: firma potrzebująca 300 komputerów dostawała całą klasę B, czyli 65 534 adresy. Dlatego klasy zastąpił zapis bezklasowy z dowolną maską (CIDR) – opisany w haśle adresowanie IP i maski.

### Krok 3: sprawdź, czy adres jest prywatny

Norma RFC 1918 wydzieliła trzy pule adresów, których nie routuje żaden router w internecie:

  • 10.0.0.0 – 10.255.255.255 (zapis 10.0.0.0/8) – 2²⁴ = 16 777 216 adresów, cała jedna sieć klasy A,
  • 172.16.0.0 – 172.31.255.255 (zapis 172.16.0.0/12) – 2²⁰ = 1 048 576 adresów, szesnaście sąsiednich sieci klasy B,
  • 192.168.0.0 – 192.168.255.255 (zapis 192.168.0.0/16) – 2¹⁶ = 65 536 adresów, 256 sieci klasy C.

Razem 17 891 328 adresów, których każdy może użyć u siebie w domu. Poza tymi zakresami adres jest publiczny – również 172.32.0.1, choć zaczyna się tak samo jak pula prywatna.

Swój adres prywatny odczytasz poleceniem ipconfig (Windows) albo ip a (Linux, macOS). Adresu publicznego komputer nie zna – należy on do routera i przydziela go dostawca internetu.

### Krok 4: NAT, czyli jak dwa komputery dzielą jeden adres

W domu jest jeden adres publiczny, powiedzmy 83.24.117.6, a urządzeń kilka. Router pośredniczy: dla każdego wychodzącego połączenia podmienia adres nadawcy na własny publiczny i nadaje mu wolny numer portu źródłowego, który zapisuje w tablicy translacji razem z prawdziwym nadawcą. Odmiana NAT z portami nazywa się PAT albo maskaradą i to ona działa w każdym routerze domowym.

Laptop 192.168.1.10 i tablet 192.168.1.11 łączą się z tym samym serwerem 142.250.203.174 na porcie 443 i – przypadkiem – obydwa wybrały ten sam port źródłowy 52310. Router zapisuje:

  • wpis 1: 192.168.1.10:52310 widziany na zewnątrz jako 83.24.117.6:40001,
  • wpis 2: 192.168.1.11:52310 widziany na zewnątrz jako 83.24.117.6:40002.

Serwer odpowiada na 83.24.117.6:40001. Router zagląda do tablicy, widzi wpis 1, przepisuje adres odbiorcy z powrotem na 192.168.1.10:52310 i wysyła pakiet do laptopa. Odpowiedź na port 40002 trafi do tabletu. Bez numerów portów router nie miałby jak odróżnić tych dwóch rozmów.

Wynika stąd ważne ograniczenie: połączenie musi zacząć się od wewnątrz, bo dopiero wtedy powstaje wpis w tablicy. Pakiet przychodzący z internetu bez zaproszenia nie pasuje do żadnego wpisu i router go odrzuca. Żeby serwer w sieci domowej był dostępny z zewnątrz, trzeba ręcznie dodać przekierowanie portów – stały wpis w rodzaju „wszystko, co przyjdzie na port 25565 mojego adresu publicznego, oddaj komputerowi 192.168.1.20". Alternatywą jest tunel VPN. Samą translację wykonuje router.

Adres 127.0.0.1 to pętla zwrotna, wskazująca zawsze na własny komputer; opisuje ją hasło adresowanie IP i maski.

04

Wizualizacja

Tabela wejściowa
Urządzenie w domuNadawca pakietuOdbiorca pakietu
Laptop192.168.1.10:52310142.250.203.174:443
Tablet192.168.1.11:52310142.250.203.174:443
→
Wynik
Ten sam pakiet za routeremNadawca po NATOdbiorca pakietu
Laptop83.24.117.6:40001142.250.203.174:443
Tablet83.24.117.6:40002142.250.203.174:443
05

Tabela

Rozpoznawanie klasy po pierwszym bajcie oraz sprawdzenie, czy adres jest prywatny
AdresPierwszy bajt binarnieKlasaPrywatny czy publicznyUwaga
10.0.0.500001010Aprywatnypoczątek puli 10.0.0.0/8 – cały pierwszy bajt 10 jest prywatny
62.21.99.400111110Apublicznyzwykły adres klasy A, jakich używa się w internecie
127.0.0.101111111poza klasamiżadne z dwóchpętla zwrotna; pula 127 jest wyłączona z użytku, stąd klasa A kończy się na 126
128.12.67.9010000000Bpublicznynajmniejszy adres klasy B; zadanie z 2008 roku, odpowiedź Prawda
131.125.94.1110000011Bpublicznypoprawna odpowiedź w zadaniu z 2006 roku
141.125.294.111–brakżadne z dwóch294 nie mieści się w bajcie, więc to w ogóle nie jest adres IPv4
172.16.0.110101100Bprywatnypoczątek puli 172.16.0.0/12
172.31.255.25410101100Bprywatnyostatni użyteczny adres tej samej puli prywatnej
172.32.0.110101100Bpublicznyten sam pierwszy bajt, a już poza pulą prywatną – częsta pułapka
191.12.56.110111111Bpublicznynajwiększy pierwszy bajt klasy B; zadanie z 2008 roku pytało o klasę C, odpowiedź Fałsz
192.14.56.1011000000Cpublicznyzadanie z 2008 roku pytało o klasę B, odpowiedź Fałsz; nie każdy adres od 192 jest prywatny
192.168.0.111000000Cprywatnytypowy adres routera w sieci domowej
201.93.93.9311001001Cpublicznydystraktor z zadania z 2006 roku – bity 110, więc klasa C
224.0.0.911100000Dżadne z dwóchmulticast: adres grupy odbiorców, nie pojedynczego komputera
240.0.0.111110000Eżadne z dwóchpula zarezerwowana, nieprzydzielana urządzeniom
255.255.255.25511111111E z zakresużadne z dwóchrozgłoszenie ograniczone – do wszystkich w tej samej sieci
06

Porównanie

CechaAdres prywatnyAdres publiczny
Kto go przydzielaadministrator sieci lokalnej albo router przez DHCPdostawca internetu z puli, którą sam otrzymał
Routowany w internecienie – routery odrzucają takie pakietytak
Unikatowośćtylko w obrębie jednej sieci lokalnejw skali całego internetu
Zakresy10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16wszystko poza pulami prywatnymi i specjalnymi
Przykład192.168.0.183.24.117.6
Dostępność z zewnątrztylko przez NAT, przekierowanie portów albo VPNbezpośrednio
Kosztdarmowy, do dowolnego użytkuwliczony w abonament, stały adres zwykle za dopłatą
Ile ich jest17 891 328 adresów łączniereszta z 2³² adresów IPv4, pula już wyczerpana
Nazwa angielskaprivate address, RFC 1918 addresspublic address, globally routable address
07

Typowe błędy

Klasa czytana z całego adresu. Do rozpoznania klasy służy wyłącznie pierwszy bajt. Adresy 192.14.56.10 i 192.168.0.1 różnią się wszystkim poza pierwszą liczbą, a klasę mają tę samą – C. Odwrotnie: 191.12.56.1 i 192.14.56.10 wyglądają niemal identycznie, a leżą po dwóch stronach granicy między klasą B a C.

„Wszystko od 192 jest prywatne." Prywatna jest dokładnie pula 192.168.0.0/16, a nie cała klasa C. 192.14.56.10 to normalny adres publiczny – i właśnie o niego pyta arkusz z 2008 roku. Ten sam błąd w drugą stronę: 10.0.0.5 jest prywatny, mimo że należy do klasy A.

172.32.x.x wzięte za adres prywatny. Pula prywatna z klasy B kończy się na 172.31.255.255. Drugi bajt musi mieścić się w przedziale 16–31; 172.15.x.x i 172.32.x.x są publiczne. To najczęściej mylona granica ze wszystkich trzech zakresów RFC 1918.

Liczby sieci i hostów podane bez odjęcia dwójki. Klasa A to nie 2⁷ = 128 sieci, tylko 126, i nie 2²⁴ hostów, tylko 16 777 214. Dwa adresy w każdej sieci są zajęte (sieć i rozgłoszenie), a w klasie A odpadają jeszcze pule 0.x i 127.x. Arkusz z 2014 roku uznał zdanie z „2⁷ adresów sieci i 2²⁴ adresów hostów" za fałszywe właśnie z tego powodu.

127.0.0.1 zaliczone do klasy A. Pierwszy bajt zaczyna się wprawdzie od bitu 0, ale cała pula 127 została wyjęta z puli użytkowej na pętlę zwrotną. Klasa A obejmuje więc numery sieci od 1 do 126 i to jest odpowiedź na pytanie, dlaczego zakres nie sięga do 127.

NAT mylony z zaporą sieciową. NAT to translacja adresów, a nie mechanizm bezpieczeństwa. To, że pakiet z zewnątrz nie ma pasującego wpisu w tablicy i przepada, jest skutkiem ubocznym, a nie regułą filtrowania. Za świadome blokowanie ruchu odpowiada zapora sieciowa.

08

Zapamiętaj

  • Klasę rozstrzygają pierwsze bity pierwszego bajtu: A – 0, B – 10, C – 110, D – 1110, E – 1111.
  • W zapisie dziesiętnym: A to 1–126, B to 128–191, C to 192–223, D to 224–239, E to 240–255.
  • Domyślne maski klas: A – 255.0.0.0, B – 255.255.0.0, C – 255.255.255.0.
  • Klasa A daje 126 sieci po 16 777 214 hostów, B – 16 384 sieci po 65 534 hosty, C – 2 097 152 sieci po 254 hosty.
  • Adresy prywatne RFC 1918: 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 – razem 17 891 328 adresów.
  • Adres od 192 nie musi być prywatny; prywatna jest tylko pula 192.168.x.x.
  • NAT podmienia adres prywatny na publiczny i zapisuje w tablicy numer portu, po którym rozpozna, komu odesłać odpowiedź.
09

Sprawdź się

Pięć urządzeń widocznych w pewnej sieci szkolnej:

UrządzenieAdres IPv4
Serwer szkolny150.254.30.7
Drukarka172.20.10.4
Router192.168.0.1
Kamera10.0.0.44
Grupa odbiorców224.0.0.251

Uzupełnij tabelę na podstawie tych adresów:

PytanieOdpowiedź
Pierwszy bajt adresu serwera w zapisie binarnym
Klasa adresu serwera
Domyślna maska tej klasy
Klasa adresu drukarki
Czy adres drukarki jest prywatny (tak albo nie)
Klasa adresu routera
Ile hostów mieści jedna sieć klasy C
Klasa adresu kamery
Ile sieci daje klasa A
Klasa adresu grupy odbiorców

Żeby drukarka mogła pobrać aktualizację ze strony w internecie, router podmienia jej adres prywatny na swój adres publiczny – mechanizm ten nazywa się . Dwie rozmowy prowadzone w tym samym czasie router odróżnia po zapisanych w tablicy numerach .

10

Najczęściej zadawane pytania

Jak najszybciej rozpoznać klasę adresu?

Patrz tylko na pierwszą liczbę i porównaj ją z czterema progami: poniżej 128 to klasa A, 128–191 to B, 192–223 to C, 224–239 to D, od 240 w górę to E. Jeśli zadanie podaje definicję w postaci bitów (a CKE zwykle podaje), zamień pierwszą liczbę na osiem bitów i porównaj początek: 0, 10, 110, 1110, 1111.

Dlaczego klasa A kończy się na 126, a nie na 127?

Bo z 2⁷ = 128 możliwych numerów sieci dwa nie są przydzielane: numer 0 i numer 127. Zostaje 2⁷ − 2 = 126 sieci klasy A i to jest ta liczba, o którą pyta arkusz. Pula 127 jest zarezerwowana na pętlę zwrotną, opisaną w haśle adresowanie IP i maski.

Ile adresów mieści każda pula prywatna?

10.0.0.0/8 to 2²⁴ = 16 777 216 adresów, 172.16.0.0/12 to 2²⁰ = 1 048 576 adresów, a 192.168.0.0/16 to 2¹⁶ = 65 536 adresów. Największa pula pochodzi z klasy A i dlatego używają jej duże sieci firmowe, a najmniejsza – z klasy C i wystarcza w domu.

Czy dwa domy mogą mieć ten sam adres prywatny?

Tak i zwykle mają. Adres 192.168.0.1 istnieje w milionach mieszkań naraz, bo pakiet z takim adresem nigdy nie wychodzi poza sieć lokalną – router podmienia go na swój publiczny. Unikatowy musi być tylko adres publiczny.

Czym różni się NAT od PAT?

Sam NAT podmienia wyłącznie adres IP, więc w klasycznej postaci potrzebuje jednego adresu publicznego na jedno urządzenie. PAT dokłada do tego numer portu i dzięki temu dziesiątki urządzeń mieszczą się za jednym adresem. W routerach domowych działa właśnie PAT, choć w potocznym języku i w zadaniach mówi się po prostu „NAT".

Czy adres prywatny da się otworzyć z internetu?

Nie bezpośrednio. Potrzebne jest przekierowanie portów na routerze albo połączenie VPN – inaczej pakiet z zewnątrz nie pasuje do żadnego wpisu w tablicy translacji i router go odrzuca.

Jak sprawdzić swój adres prywatny i publiczny?

Prywatny pokazuje ipconfig w Windowsie albo ip a w Linuksie i macOS – to adres karty sieciowej, zwykle 192.168.x.x. Publicznego komputer nie zna, bo należy on do routera: trzeba zajrzeć na stronę statusu routera w pole „adres WAN" albo zapytać dowolnego serwisu w internecie, jaki adres widzi.

Czy klasy są dziś jeszcze używane?

W praktyce zastąpił je podział bezklasowy z dowolną maską, w którym granica między częścią sieciową a hostową może wypaść w dowolnym miejscu – ćwiczy to hasło obliczanie adresu sieci i rozgłoszeniowego. Klasy zostały jako pojęcie historyczne i wciąż bywają sprawdzane na egzaminie. W adresowaniu IPv6 klas nie ma w ogóle.

Przećwicz w zadaniach maturalnych

Do tego hasła nie mamy jeszcze przypisanych pojedynczych zadań. Cały spis zadań maturalnych z tego działu jest tutaj:

Zadania z działu: Teoretyczne

↗

Powiązane zagadnienia