Adres IP, czyli dokąd właściwie jedzie ten samochód?
Witamy ponownie na naszej Autostradzie Pakietów, zwanej potocznie Internetem!
Ruch odbywa się normalnie. Samochody przemierzają kontynenty, bramkarz od NAT-u nadal szuka swojego zeszytu, a inteligentna lodówka złożyła już trzecie odwołanie od decyzji administracji.
Tymczasem na osiedlu Spokojna Sieć zaczyna się zupełnie nowy dramat.
Wszystko przez tablice rejestracyjne.
Każdy samochód musi mieć numer
Pewnego ranka pod urząd komunikacji podjeżdża nowy samochód.
— Dzień dobry, chciałbym dostać tablice rejestracyjne.
— Stałe czy tymczasowe?
— A jakie są lepsze?
— Zależy.
— OD CZEGO?!
— Czy chce je pan sobie ustawić sam, czy mamy je panu przydzielać automatycznie.
— A automatyczne są gorsze?
— Nie.
— A stałe lepsze?
— Niekoniecznie.
— TO PO CO SĄ DWA RODZAJE?!
— Żeby miał pan wybór. Następny!
Na naszej autostradzie każdemu urządzeniu potrzebny jest adres IP — numer, dzięki któremu można ustalić, do jakiego miejsca w sieci należy dostarczyć informacje.
W świecie IPv4 taki numer może wyglądać na przykład tak:
192.168.1.10
Cztery liczby oddzielone kropkami. Każda od 0 do 255.
— To ja poproszę numer 999.999.999.999!
— Nie ma takiego.
— A DLACZEGO?!
— Bo żadna z tych czterech liczb nie może przekraczać 255.
— To poproszę 255.255.255.255!
— Tego też panu nie przydzielimy.
— PRZECIEŻ MIEŚCI SIĘ W ZAKRESIE!
— Owszem. Ale to szczególny adres rozgłoszeniowy.
— CZYLI?!
— Może pan za jego pomocą krzyczeć do wszystkich na lokalnej drodze, ale nie może pan go sobie po prostu przykręcić do zderzaka.
— TO JAKI NUMER MOGĘ DOSTAĆ?!
— Proszę najpierw powiedzieć, na którym osiedlu pan mieszka.
Bo sam numer to jeszcze nie wszystko.
Maska podsieci, czyli gdzie kończy się osiedle
Na osiedlu Spokojna Sieć stoją samochody z adresami:
192.168.1.10
192.168.1.11
192.168.1.12
Wszystkie mieszkają w sieci 192.168.1.0/24.
— A co znaczy to /24?!
— Granicę osiedla.
— JAKĄ GRANICĘ?!
— Informację, które bity adresu opisują sieć, a które pozostają do identyfikacji urządzeń.
— Można po polsku?!
— Mamy na osiedlu pewną pulę numerów. Wiemy, które samochody należą do nas, a które mieszkają gdzie indziej.
W IPv4 zapis /24 odpowiada masce:
255.255.255.0
W takiej typowej podsieci są 256 adresów, z których 254 można zwykle przydzielić urządzeniom.
Dwa mają specjalne znaczenie:
192.168.1.0— adres sieci.192.168.1.255— adres rozgłoszeniowy.
— Czyli mam 254 miejsca parkingowe?
— W dużym uproszczeniu.
— A mogę postawić samochód pod numerem 192.168.2.10?
— To inne osiedle.
— ALE JEST TUŻ OBOK!
— Inne osiedle.
— ALE WIDZĘ GO PRZEZ PŁOT!
— To proszę pomachać. Przez płot nie pojedziemy.
I tu dochodzimy do kolejnego bohatera.
Brama domyślna, czyli wyjazd z osiedla
Komputer 192.168.1.10 chce odwiedzić sąsiada 192.168.1.11.
Nie musi wyjeżdżać na autostradę. Obaj mieszkają na tym samym osiedlu.
Ale pewnego dnia komputer chce pojechać pod adres 193.24.14.111.
— Dzień dobry, chciałbym wyjechać.
— Dokąd?
— Pod 193.24.14.111.
— To poza osiedlem. Proszę do głównej bramy.
— A gdzie ona jest?
— 192.168.1.1.
— A SKĄD MAM TO WIEDZIEĆ?!
— Powinien pan mieć wpisane w dokumentach.
Ten adres to brama domyślna (default gateway) — miejsce, do którego urządzenie przekazuje ruch przeznaczony poza lokalną sieć, jeśli nie ma bardziej szczegółowej trasy.
— A jak nie mam wpisanej bramy?
— To może pan rozmawiać z sąsiadami.
— A Internet?!
— Może być problem.
— TO JA CHCĘ DO INTERNETU!
— Proszę najpierw ustalić, gdzie jest wyjazd.
Samochód ma więc tablice, zna granice osiedla, ale nie wie, którędy się z niego wydostać.
Adres IP bez odpowiedniej konfiguracji trasy nie gwarantuje dostępu do Internetu.
A gdy już dotrze do bramy, zaczyna się nasza wcześniej poznana przygoda z routingiem.
Kto mi nadał te tablice?!
Wróćmy do urzędu komunikacji.
Przed okienkiem stoi dziesięć samochodów.
— Dzień dobry, potrzebuję adresu!
— Następny!
— Ja też!
— Następny!
— A ja jestem lodówką!
— To proszę do kolejki dla urządzeń gospodarstwa domowego.
— NIE MA TAKIEJ KOLEJKI!
— To proszę do zwykłej.
Za okienkiem siedzi DHCP (Dynamic Host Configuration Protocol) — urzędnik, który może automatycznie przydzielać adresy IP i pozostałe ustawienia sieciowe.
Ale nie robi tego na zawsze.
— Proszę, oto pański numer: 192.168.1.50.
— Dziękuję! Na zawsze?
— Na określony czas.
— JAK TO NA OKREŚLONY?!
— To dzierżawa.
— TABLICE REJESTRACYJNE NA WYNAJEM?!
— Zgadza się.
— A jak czas się skończy?!
— Może pan poprosić o przedłużenie.
— A jeśli nie zdążę?!
— Proszę się nie martwić na zapas.
DHCP przyznaje adres w ramach dzierżawy (lease). Urządzenie może ją odnawiać i zwykle otrzymuje ten sam adres, choć nie ma bezwarunkowej gwarancji, że zachowa go na zawsze.
A jak wygląda przydzielanie adresu od początku?
— DZIEŃ DOBRY! CZY JEST TU JAKIŚ URZĄD KOMUNIKACJI?!
— JEST!
— CZY MOGĘ DOSTAĆ NUMER?!
— PROSZĘ, PROPONUJĘ 192.168.1.50!
— BIORĘ!
— ZATWIERDZONE!
To cztery etapy popularnego procesu DHCPv4:
Discover → Offer → Request → Acknowledge, czyli DORA.
— Dlaczego wszyscy krzyczą?!
— Bo na początku samochód jeszcze nie ma własnego adresu i musi znaleźć urząd.
— AHA. A MOŻNA CISZEJ?!
— NIE WIEMY, DO KOGO MÓWIĆ!
Przynajmniej początkowe komunikaty DHCPv4 mogą wykorzystywać rozgłaszanie, czyli broadcast.
Ale samemu DHCP poświęcimy osobną wycieczkę. W tym urzędzie jest zdecydowanie za dużo papierologii, żeby załatwić wszystko w jednym rozdziale.
Sąsiad ukradł mi numer!
Pewnego dnia komputer podjeżdża na parking.
Patrzy na swoje tablice.
192.168.1.10
Patrzy na samochód sąsiada.
192.168.1.10
Patrzy jeszcze raz.
— PRZEPRASZAM BARDZO!
— Słucham?
— DLACZEGO PAN MA MOJE TABLICE?!
— Jakie pańskie? Sam sobie ustawiłem!
— ALE TO MÓJ NUMER!
— A SKĄD MAM WIEDZIEĆ?!
— BO JA GO MAM!
— A JA TEŻ!
— TO JEST KRADZIEŻ TOŻSAMOŚCI!
— PROSZĘ WEZWAĆ ADMINISTRATORA!
Administrator przyjeżdża, ogląda oba pojazdy i wzdycha.
— Panowie, mamy konflikt adresów IP.
— A CO TO ZNACZY?!
— Że dwa urządzenia próbują korzystać z tego samego adresu w tej samej sieci.
— I CO TERAZ?!
— Jeden z panów musi zmienić numer.
— JA BYŁEM PIERWSZY!
— A JA MAM LEPSZY SAMOCHÓD!
— To nie ma znaczenia.
— TO PO CO KUPOWAŁEM LEPSZY?!
W takich sytuacjach komunikacja może działać niestabilnie lub całkowicie się posypać.
W IPv4 w lokalnej sieci Ethernet pomaga mechanizm ARP (Address Resolution Protocol), który pozwala ustalić, jaki fizyczny adres interfejsu — MAC — odpowiada danemu adresowi IPv4.
— Mam tu adres IP 192.168.1.10. Kto to jest?!
— JA!
— JA TEŻ!
— PANOWIE, PROSZĘ POJEDYNCZO!
ARP nie jest policjantem, który rozwiązuje konflikt. Ale dzięki odpowiedziom ARP urządzenia mogą go zauważyć, a błędne skojarzenia adresów potrafią spowodować prawdziwy chaos.
Publiczne, prywatne i tajemnicze tablice
Nie każdy adres IPv4 oznacza samochód, który można bezpośrednio znaleźć z dowolnego miejsca w Internecie.
Istnieją adresy prywatne, przeznaczone do wykorzystywania w lokalnych sieciach.
Do najbardziej znanych zakresów należą:
| Zakres IPv4 | Gdzie go spotkamy? |
|---|---|
10.0.0.0/8 | Duże i małe sieci prywatne |
172.16.0.0/12 | Sieci prywatne |
192.168.0.0/16 | Często sieci domowe |
169.254.0.0/16 | Adresacja lokalna łącza |
100.64.0.0/10 | Współdzielona przestrzeń adresowa, m.in. u operatorów |
Trzy pierwsze zakresy to klasyczne prywatne adresy IPv4 z RFC 1918. Pozostałe mają inne, szczególne zastosowania.
— A jeśli mój samochód ma numer prywatny?
— To samym takim numerem nie przejedzie pan przez publiczny Internet.
— TO JAK LUDZIE WYJEŻDŻAJĄ Z OSIEDLI?!
— Zwykle przez bramkę, która zmienia tablice.
— ZNOWU TEN CZŁOWIEK Z ZESZYTEM?!
— Tak.
— CZY ON JUŻ GO ZNALAZŁ?!
— Nie.
Czyli wracamy do naszej historii o NAT i maskaradzie. 🤣
Sam sobie zrobiłem tablice, bo urząd był zamknięty
Pewnego ranka samochód uruchamia silnik.
Czeka na adres.
Czeka.
Czeka.
— HALO! JEST TAM KTO?!
Cisza.
Serwer DHCP nie odpowiada.
— NO TO PIĘKNIE!
Samochód wyciąga karton, flamaster i pisze:
169.254.34.17
— GOTOWE! MAM TABLICE!
Podjeżdża do wyjazdu na autostradę.
— Dokąd pan jedzie?
— Do Internetu!
— Z takimi tablicami?
— SAM JE ZROBIŁEM!
— Widzę.
— I CO?!
— Może pan porozmawiać z innymi samochodami na lokalnym odcinku, jeśli mają odpowiednią konfigurację.
— A INTERNET?!
— Nie przez ten adres.
— ALE PRZECIEŻ MAM NUMER!
— To nie jest przepustka na cały świat.
To IPv4 Link-Local, często kojarzone z nazwą APIPA (Automatic Private IP Addressing).
Takie adresowanie może pozwolić urządzeniom komunikować się w obrębie lokalnego łącza, gdy nie mają zwykłej konfiguracji IPv4. Nie zapewnia jednak samo z siebie routingu do Internetu.
— Czyli zrobiłem sobie tablice, które działają tylko na osiedlu?!
— Na lokalnym odcinku.
— CO ZA RÓŻNICA?!
— Administracyjna.
— JA JUŻ MAM DOSYĆ ADMINISTRACJI!
I wtedy przyjechało IPv6...
Pewnego dnia przed urzędem zatrzymuje się ogromna ciężarówka.
Za nią druga.
Trzecia.
Czwarta.
A potem konwój tak długi, że zarządca osiedla zaczyna podejrzewać inwazję.
Z pierwszej ciężarówki wysiada elegancki urzędnik.
— Dzień dobry. Przywieźliśmy nowy system numeracji.
— Po co?! Stary działa!
— Kończą się wolne numery IPv4.
— To niech pan dodrukuje!
— Nie da się dodrukować więcej różnych wartości w 32-bitowej przestrzeni adresowej.
— TO PROSZĘ ZROBIĆ WIĘKSZE TABLICE!
— Właśnie zrobiliśmy.
Urzędnik prezentuje numer:
2001:db8:1234:5678::10
Cisza.
— Co to jest?
— Adres IPv6.
— A gdzie kropki?!
— Nie ma.
— A CZEMU SĄ DWUKROPKI?!
— Bo teraz adres zapisujemy inaczej.
— A CZEMU SĄ LITERY?!
— Bo zapis jest szesnastkowy.
— A CZEMU TO JEST TAKIE DŁUGIE?!
— Bo mamy 128 bitów zamiast 32.
— STO DWADZIEŚCIA OSIEM?!
— Zgadza się.
— TO ILE PAN MA TYCH NUMERÓW?!
— Około 340 sekstylionów możliwych adresów.
— ...
— Coś jeszcze?
— TAK. CZY MA PAN NUMER, KTÓRY DA SIĘ ZAPAMIĘTAĆ?!
Urzędnik uśmiecha się.
— ::1.
— O! WRESZCIE NORMALNY!
— To adres pętli zwrotnej.
— CZYLI?!
— Do samego siebie.
— CZYLI DAŁ MI PAN NUMER, POD KTÓRYM MOGĘ ZADZWONIĆ DO SAMEGO SIEBIE?!
— Zgadza się.
— DOSKONALE. PRZYNAJMNIEJ NIKT NIE BĘDZIE ZAJMOWAŁ LINII!
🤣
IPv6, czyli numer tak wielki, że sąsiad nie chce go przepisać
W IPv4 adres miał 32 bity.
W IPv6 ma 128 bitów, a jego zapis wykorzystuje liczby szesnastkowe i dwukropki.
Na dodatek można pomijać zera na określonych zasadach.
Przykładowo:
2001:0db8:0000:0000:0000:0000:0000:0001
można zapisać krócej:
2001:db8::1
— Czyli może być krótszy?
— Tak.
— A czy zawsze będzie taki krótki?
— Nie.
— TO JAK MAM GO ZAPAMIĘTAĆ?!
— Nie musi pan. Od tego są między innymi nazwy DNS.
— A TO KOLEJNY URZĄD?!
— Raczej książka adresowa.
— CZY W TYM INTERNECIE JEST COŚ, CO NIE WYMAGA ŻADNEGO URZĘDU?!
— Oczywiście.
— CO?!
— Awaria.
— ...
IPv6 ma również inne zasady komunikacji lokalnej.
Zamiast ARP korzysta między innymi z NDP (Neighbor Discovery Protocol), działającego z użyciem ICMPv6.
Adresy mogą być konfigurowane automatycznie przez SLAAC, a także przy pomocy DHCPv6 lub ręcznie.
— Czyli nie muszę już stać w kolejce po tablice?
— W pewnych konfiguracjach samochód może przygotować sobie adres na podstawie informacji o sieci.
— SAM?!
— Tak.
— I NIE BĘDZIE KONFLIKTU?!
— Mechanizmy sprawdzania duplikatów pomagają go wykryć.
— A BRAMA DOMYŚLNA?!
— Informację o routerach można otrzymać z ogłoszeń RA.
— CO TO JEST RA?!
— Router Advertisement.
— KOLEJNY URZĘDNIK?!
— Tym razem ogłoszenie od zarządcy drogi.
— JA CHCĘ WRÓCIĆ DO KROPEK!
A gdzie podziały się rozgłoszenia?!
Nasz stary kierowca IPv4 przyzwyczaił się, że kiedy nie wie, kogo zapytać, może zawołać na całe osiedle.
— HALO, WSZYSCY! KTO MA TEN ADRES?!
A w IPv6?
— Halo, chciałbym krzyknąć do wszystkich!
— Nie mamy klasycznego broadcastu.
— JAK TO NIE MACIE?!
— Mamy multicast.
— A CO TO?!
— Wysyłanie do określonej grupy odbiorców.
— CZYLI NIE DO WSZYSTKICH?!
— Zależy od grupy.
— A JAK CHCĘ DO JEDNEGO?!
— To unicast.
— A JAK DO NAJBLIŻSZEGO Z KILKU?!
— To może być anycast.
— PAN MNIE SPECJALNIE DENERWUJE?!
— Nie. Jeszcze nie zaczęliśmy mówić o prefiksach.
— NIECH PAN JUŻ NIE ZACZYNA!
W praktyce IPv6 nie korzysta z broadcastu znanego z IPv4. W wielu miejscach jego rolę przejęły mechanizmy oparte na multicast.
IPv4 i IPv6 spotykają się na parkingu
Pewnego wieczoru przed osiedlowym sklepem spotykają się dwa samochody.
Pierwszy ma zwykłe tablice:
192.168.1.10
Drugi długie:
2001:db8:1234:5678::10
— Dzień dobry.
— Dzień dobry.
— Pan nowy?
— Tak, IPv6.
— A ja IPv4.
— Miło mi.
— To może pojedziemy razem?
— Chętnie.
— Tylko którędy?
— Ja korzystam z IPv6.
— A ja z IPv4.
— ...
— ...
— TO MY SIĘ W OGÓLE ROZUMIEMY?!
I tutaj pojawia się ważny szczegół: IPv4 i IPv6 to dwa różne protokoły adresowania. Nie komunikują się bezpośrednio tylko dlatego, że oba służą do przesyłania informacji przez Internet.
Dlatego istnieją rozwiązania takie jak dual-stack, pozwalające urządzeniu obsługiwać obie wersje, oraz mechanizmy przejściowe i translacyjne, na przykład NAT64.
— Czyli muszę mieć dwa komplety tablic?
— W dual-stack może pan mieć adres IPv4 i IPv6 jednocześnie.
— A MOGĘ MIEĆ DWA ZESZYTY?!
— Proszę pana, tylko nie zeszyty...
— A LODÓWKA?!
— Lodówka już ma trzy adresy IPv6.
— TRZY?!
— Jeden lokalny, jeden globalny i jeszcze jeden tymczasowy.
— PO CO JEJ TYLE?!
— Zależy od konfiguracji i mechanizmów prywatności.
— ALE ONA NADAL NIE WIE, GDZIE JEST MLEKO!
Co się naprawdę dzieje w wydziale komunikacji?
Adres IP jest logicznym adresem interfejsu sieciowego. Pomaga urządzeniom przesyłać informacje do właściwych miejsc, ale nie jest tym samym co adres MAC ani numer seryjny urządzenia.
Jedno urządzenie może mieć wiele adresów IP, a adresy mogą zmieniać się w czasie.
| Pojęcie | Na naszej autostradzie |
|---|---|
| Adres IPv4 | Krótszy numer rejestracyjny, 32 bity |
| Adres IPv6 | Znacznie dłuższy numer, 128 bitów |
| Maska / prefiks | Granice osiedla |
| Brama domyślna | Główny wyjazd z osiedla |
| DHCP | Urząd automatycznie przydzielający adresy |
| Statyczny IP | Numer ustawiony ręcznie |
| ARP | Ustalanie, który sąsiad ma dany adres IPv4 |
| NDP | Mechanizm odkrywania sąsiadów w IPv6 |
| SLAAC | Automatyczne konfigurowanie adresów IPv6 |
| APIPA / IPv4 Link-Local | Awaryjne tablice na lokalny odcinek |
| Dual-stack | Dwa zestawy tablic — IPv4 i IPv6 |
Nie każdy adres może być dowolnie przydzielony. Nie każdy jest globalnie osiągalny. A znajomość adresu docelowego nie oznacza jeszcze, że mamy do niego trasę.
To dlatego adresowanie, routing i NAT są ze sobą tak mocno powiązane.
Jeśli chcesz przejechać dalej po naszej Autostradzie Pakietów, zajrzyj także do tematów: DHCP, DNS, TCP i UDP.
Tymczasem w urzędzie komunikacji...
— Szefie! Mamy problem!
— JAKI ZNOWU?!
— Przyjechała lodówka.
— Znowu mleko?!
— Nie. Tym razem chce zmienić adres.
— Na jaki?
— IPv6.
— To niech dostanie.
— Ale ona chce wszystkie możliwe adresy!
— WSZYSTKIE?!
— Tak.
— PO CO?!
— Powiedziała, że wtedy na pewno znajdzie się taki, pod którym będzie mleko.
— ...
— Szefie?
— CO?!
— A toster pyta, czy może dostać adres statyczny.
— NIECH DOSTANIE!
— A komputer zgłasza konflikt adresów.
— Z KIM?!
— Z drukarką.
— A DRUKARKA?!
— Wydrukowała reklamację.
— I CO W NIEJ JEST?!
— „Nieprawidłowy adres nadawcy”.
— ...
— Szefie, wszystko w porządku?
— ZAMKNĄĆ URZĄD. IDĘ NA AUTOSTRADĘ.
— A służbowy samochód?
— CO Z NIM?!
— Nie dostał adresu z DHCP.
— TO PÓJDĘ PIESZO!!! 🤣🤣
Na następnej wycieczce zajrzymy do urzędu DHCP. Poznamy urzędnika, który rozdaje adresy na czas określony, i odkryjemy, dlaczego odnowienie dzierżawy potrafi być ważniejsze od przeglądu technicznego.
Administracja osiedla prosi o nieparkowanie samochodów pod adresem 0.0.0.0. Trwa ustalanie, gdzie właściwie znajduje się ten parking.
