Jakie masz pytanie?

lub

Co by się stało, gdyby na przełomie lat 70. i 80. XX wieku zmieniono przeznaczenie zakresów adresów IPv4 od 0.0.0.1 do 0.255.255.255 oraz od 240.0.0.0 do 255.255.255.254 na pulę adresów publicznych?

historia protokołu IPv4 pula adresów IP ograniczenia sieci internet
avatar

Gość (83.4.*.*)



Odpowiedź:

Wyobraź sobie świat, w którym problem wyczerpania adresów IPv4, o którym głośno było dekadę temu, zostałby odroczony o kilka dobrych lat, a może nawet o całą dekadę. Choć dzisiaj standardem staje się IPv6, wciąż żyjemy w rzeczywistości zdominowanej przez stary, dobry protokół czwartej wersji. Gdyby na przełomie lat 70. i 80. XX wieku, kiedy fundamenty Internetu dopiero krzepły, podjęto inne decyzje dotyczące tzw. „zarezerwowanych” zakresów, dzisiejsza sieć mogłaby wyglądać nieco inaczej. Mowa o sieci 0 (0.0.0.0/8) oraz mitycznej Klasie E (240.0.0.0/4), które od dziesięcioleci leżą niemal odłogiem.

Czym właściwie są te „zakazane” zakresy?

W architekturze IPv4 nie wszystkie adresy są równe. Kiedy inżynierowie z IETF (Internet Engineering Task Force) projektowali protokół, wydawało im się, że 4,3 miliarda adresów to liczba wręcz nieskończona. Dlatego z lekką ręką odkładali całe bloki „na później” lub do celów specjalnych.

Zakres 0.0.0.0/8 (czyli od 0.0.0.1 do 0.255.255.255) został zarezerwowany jako „ten host w tej sieci”. W praktyce używa się go głównie podczas startu systemu, gdy urządzenie nie ma jeszcze swojego adresu i pyta serwer DHCP o nadanie IP. Z kolei zakres 240.0.0.0/4 (od 240.0.0.0 do 255.255.255.254), znany jako Klasa E, został oznaczony jako „zarezerwowany do przyszłych zastosowań”. Problem w tym, że ta przyszłość nigdy nie nadeszła w taki sposób, jak planowano.

Matematyka ukrytych adresów

Sprawdźmy, o jakiej skali w ogóle mówimy. Ile adresów zyskalibyśmy, gdyby te dwa bloki trafiły do puli publicznej?

  1. Sieć 0 (0.0.0.0/8): Jest to blok typu /8. W systemie IPv4 blok /8 zawiera ~$2^{32-8} = 2^{24}~#$ adresów.
    ~$2^{24} = 16\,777\,216~#$ adresów.

  2. Klasa E (240.0.0.0/4): Jest to blok typu /4. Zawiera on ~$2^{32-4} = 2^{28}~#$ adresów.
    ~$2^{28} = 268\,435\,456~#$ adresów.

Suma dodatkowych adresów:
~$16\,777\,216 + 268\,435\,456 = 285\,212\,672~#$

Wynik to ponad 285 milionów adresów IP. Dla porównania, to więcej niż cała pula adresów przypisana dla takich krajów jak Chiny czy Indie w pewnych etapach rozwoju sieci. To około 6,6% całej teoretycznej przestrzeni IPv4.

Co by się zmieniło w latach 80.?

Gdyby decyzję o upublicznieniu tych zakresów podjęto na samym początku, czyli przed oficjalnym wdrożeniem TCP/IP w 1983 roku, dzisiaj nie byłoby z tym żadnego problemu. Programiści piszący pierwsze stosy sieciowe dla systemów Unix czy wczesnych wersji Windowsa po prostu uznaliby te adresy za „normalne”.

W takim scenariuszu:

  • Opóźnienie IPv6: Prawdopodobnie presja na przejście na nowy protokół pojawiłaby się kilka lat później. 285 milionów adresów to ogromny zapas, który mógłby wystarczyć na dodatkowe 3-5 lat gwałtownego wzrostu Internetu w latach 2000.
  • Tańsze adresy IP: Na rynku wtórnym ceny adresów IPv4 (które obecnie potrafią kosztować fortunę) byłyby niższe ze względu na większą podaż.
  • Uproszczona infrastruktura: Więcej firm mogłoby pozwolić sobie na posiadanie publicznych adresów dla każdego urządzenia, co nieco opóźniłoby powszechne (i kłopotliwe) wprowadzanie NAT (Network Address Translation).

Dlaczego nie zrobiono tego później?

Można zapytać: skoro to aż 285 milionów adresów, to dlaczego nie „odblokowano” ich w latach 90. lub po roku 2000? Tutaj pojawia się problem tzw. hardcodowania.

Przez dekady programiści na całym świecie wpisywali w kod systemów operacyjnych, routerów i firewalli proste reguły: „jeśli adres zaczyna się od 240 lub 0, odrzuć pakiet”. To zachowanie jest zaszyte w miliardach urządzeń – od starych routerów w szafach serwerowych po oprogramowanie w pralkach i lodówkach.

Gdybyśmy nagle zaczęli używać Klasy E w publicznym Internecie, miliony urządzeń uznałyby te pakiety za błędne lub niebezpieczne i po prostu by je ignorowały. To stworzyłoby „Internet dwóch prędkości”, gdzie nowsze systemy widziałyby te adresy, a starsze byłyby na nie całkowicie ślepe.

Ciekawostka o Linuxie

Warto wiedzieć, że nowoczesne jądra Linuxa od lat mają zaimplementowane poprawki, które pozwalają na używanie Klasy E jako normalnych adresów (tzw. unicast). Jednak dopóki giganci tacy jak Microsoft (Windows) czy producenci sprzętu sieciowego (Cisco, Juniper) nie zrobią tego samego na masową skalę i w starych wersjach softu, te adresy pozostaną „martwą strefą”.

Czy to by nas uratowało przed końcem IPv4?

Krótka odpowiedź brzmi: nie. Choć 285 milionów adresów brzmi imponująco, w skali globalnej to wciąż kropla w morzu potrzeb. Przy miliardach smartfonów, czujników IoT i serwerów, te dodatkowe miliony zostałyby „połknięte” w ciągu kilku lat.

Zmiana przeznaczenia tych zakresów na przełomie lat 70. i 80. byłaby genialnym posunięciem z perspektywy czasu, ale wtedy nikt nie przypuszczał, że lodówka będzie potrzebowała własnego IP. Dzisiaj te zarezerwowane bloki są raczej pomnikiem pionierskich czasów Internetu – przypominają nam o tym, jak trudno jest przewidzieć skalę technologii, która zmienia świat.

Podziel się z innymi: