1/47
Część 4: Warstwa 3 - routing, pakiety i adresy IP

Witam na czwartym wykładzie!

W poprzednich częściach poznaliśmy warstwy 1 i 2 modelu ISO/OSI – fizyczną transmisję bitów oraz adresację MAC umożliwiającą komunikację w obrębie lokalnej sieci LAN. Dziś wkraczamy w kluczowy obszar sieci komputerowych: warstwę sieciową, czyli warstwę 3. To właśnie tutaj odbywa się routing, czyli proces wyznaczania drogi dla pakietów danych pomiędzy odległymi sieciami, które mogą znajdować się na różnych kontynentach. Poznamy adresy IP, maski podsieci, routery i protokoły routingu – fundament działania globalnego Internetu.

Routing to proces podejmowania decyzji o tym, którą drogą przesłać pakiet do sieci docelowej, realizowany przez routery na podstawie tablic routingu. Adres IP pełni funkcję jednoznacznego identyfikatora interfejsu sieciowego w całej sieci — bez niego komunikacja między odległymi sieciami byłaby niemożliwa, ponieważ warstwa druga operuje wyłącznie w obrębie jednego segmentu LAN.

Warstwa trzecia wprowadza pojęcie sieci logicznej, która może obejmować wiele segmentów fizycznych połączonych routerami. Dzięki adresacji hierarchicznej (część sieciowa + część hosta) routing staje się skalowalny — router nie musi znać każdego hosta, wystarczy mu znajomość tras do poszczególnych podsieci, co radykalnie zmniejsza rozmiar tablic routingu.

2/47
Problem: ograniczenia sieci lokalnej (LAN)

Zastanówmy się, co by było, gdyby cały Internet działał jak jedna wielka sieć Ethernet – bez podziału na mniejsze segmenty. Każde urządzenie na świecie odbierałoby każdą ramkę broadcastową, a tablice adresów MAC musiałyby pomieścić miliardy wpisów. Przełączniki nie byłyby w stanie obsłużyć takiego ruchu, a domeny rozgłoszeniowe objęłyby cały glob. To oczywiście niemożliwe do zrealizowania. Potrzebujemy sposobu na logiczne dzielenie sieci na mniejsze, zarządzalne fragmenty oraz na łączenie ich ze sobą w sposób uporządkowany. Rozwiązaniem tego problemu jest warstwa sieciowa – Layer 3.

W sieci Ethernet rozgłoszenia (broadcasty) docierają do wszystkich urządzeń w tej samej domenie kolizyjno-rozgłoszeniowej, co przy dużej liczbie hostów prowadzi do niepotrzebnego obciążania procesorów kart sieciowych wszystkich stacji. Każde urządzenie musi przerwać pakiet broadcastowy, nawet jeśli nie jest jego adresatem, co w skali setek lub tysięcy hostów powoduje znaczną degradację wydajności.

Tablica MAC w przełączniku ma ograniczoną pojemność — pamięć CAM (Content Addressable Memory) mieści zwykle od kilku tysięcy do kilkudziesięciu tysięcy wpisów, a przekroczenie tego limitu zmusza przełącznik do zalewania (floodingu) ramek na wszystkie porty, co jeszcze pogłębia problem rozgłoszeniowy. Podział sieci na mniejsze segmenty logiczne za pomocą routerów umożliwia izolację domen rozgłoszeniowych, ograniczając zasięg broadcastów wyłącznie do jednej podsieci.

3/47
Rola warstwy 3: warstwa sieciowa

Warstwa sieciowa (Network Layer) to trzecia warstwa modelu ISO/OSI, która odpowiada za dostarczanie pakietów od źródła do celu, nawet jeśli znajdują się one w różnych, odległych sieciach. Jej podstawowym zadaniem jest routing, czyli wybór optymalnej trasy. Aby to umożliwić, warstwa 3 wprowadza własny system adresacji, niezależny od adresów MAC – są to adresy IP. W przeciwieństwie do przełącznika L2, który operuje na ramkach i adresach MAC, urządzenia L3 (routery) operują na pakietach i adresach IP.

  • Adresacja logiczna: nadaje każdemu urządzeniu unikalny adres IP w obrębie całej sieci.
  • Routing: wybiera najlepszą ścieżkę dla danych między sieciami.
  • Fragmentacja: dzieli pakiety na mniejsze części, jeśli sieć docelowa ma mniejsze MTU.
  • Enkapsulacja: otacza segmenty warstwy 4 (transportowej) w pakiety L3.

Warstwa sieciowa enkapsuluje jednostkę danych PDU (Protocol Data Unit) w pakiet, dodając nagłówek zawierający adres źródłowy i docelowy warstwy trzeciej oraz takie pola jak TTL (Time to Live) czy identyfikator protokołu. Każdy router na trasie zmniejsza pole TTL o co najmniej jeden — gdy osiągnie zero, pakiet jest odrzucany, co zapobiega zapętlaniu się pakietów w sieci.

Fragmentacja w warstwie sieciowej dzieli pakiet na mniejsze części, gdy jego rozmiar przekracza MTU (Maximum Transmission Unit) łącza, a po stronie odbiorcy fragmenty są ponownie składane w całość. W protokole IPv6 zadanie fragmentacji przeniesiono wyłącznie na host nadawczy (fragmentacja po drodze jest zabroniona), co upraszcza działanie routerów i przyspiesza przetwarzanie pakietów.

4/47
Ramka (L2) vs Pakiet (L3)

Zrozumienie różnicy między ramką (frame) a pakietem (packet) jest kluczowe. Ramka to jednostka danych warstwy 2 – zawiera nagłówki z adresami MAC źródła i celu oraz dane. Działa tylko w obrębie jednej sieci LAN. Pakiet to jednostka danych warstwy 3 – zawiera nagłówki z adresami IP źródła i celu. Routery odczytują adresy IP z pakietów, aby podejmować decyzje routingu. Proces ten wygląda następująco: host źródłowy tworzy pakiet IP, następnie enkapsuluje go w ramkę Ethernet i wysyła do routera. Router odrzuca ramkę, odczytuje pakiet IP, podejmuje decyzję routingu, po czym pakuje pakiet w nową ramkę (z nowym adresem MAC) i wysyła dalej.

Router, odbierając ramkę z interfejsu, usuwa jej nagłówek i zakończenie warstwy drugiej (de-encji), analizuje nagłówek pakietu warstwy trzeciej, po czym tworzy nową ramkę dopasowaną do technologii łącza wyjściowego — na przykład ramka Ethernet wejściowa może zostać przekształcona w ramkę PPP przy łączu szeregowym. Router nie modyfikuje adresów IP źródłowego i docelowego (chyba że stosuje NAT), ale adresy MAC źródłowy i docelowy ulegają całkowitej zmianie na każdym skoku.

Pakiet podróżujący przez Internet od nadawcy do odbiorcy przechodzi przez wiele routerów, z których każdy wykonuje tę samą sekwencję: odbiór ramki → dekapsulacja → odczyt adresu docelowego → sprawdzenie tablicy routingu → enkapsulacja w nową ramkę → wysłanie. Zjawisko to nazywa się routingiem z przeskokami (hop-by-hop) i stanowi fundament działania wszystkich sieci IP.

5/47
Urządzenie nr 1: router

Router jest podstawowym urządzeniem warstwy 3. Jego głównym zadaniem jest łączenie różnych sieci IP i przekazywanie pakietów między nimi na podstawie tablicy routingu. Router działa jak inteligentny rozgałęziacz ruchu – analizuje adres IP docelowy pakietu i na podstawie swojej tablicy routingu decyduje, przez który interfejs wysłać pakiet dalej.

  • Każdy interfejs routera należy do innej podsieci IP.
  • Router nie przekazuje dalej ruchu broadcastowego – to on wyznacza granicę domeny rozgłoszeniowej.
  • Routery wykorzystują protokoły routingu (np. OSPF, EIGRP) do wymiany informacji o sieciach.
  • Router może pełnić wiele funkcji dodatkowych: NAT, DHCP, ACL, VPN.

Router jest urządzeniem warstwy trzeciej, które podejmuje decyzję o przekazaniu pakietu na podstawie logicznego adresu docelowego zawartego w nagłówku IP. Każdy interfejs routera należy do innej podsieci IP, a router nie przesyła dalej rozgłoszeń warstwy drugiej (broadcastów L2) — tym samym izoluje domeny rozgłoszeniowe, co jest kluczową różnicą w stosunku do przełączników warstwy drugiej.

Tablica routingu przechowuje wpisy pochodzące z trzech źródeł: bezpośrednio podłączonych sieci (connected), tras statycznych konfigurowanych ręcznie przez administratora oraz tras dynamicznych pozyskiwanych przez protokoły rutingu, takie jak OSPF (Open Shortest Path First) czy BGP (Border Gateway Protocol). Router wybiera trasę o najdłuższym dopasowaniu prefiksu (longest prefix match), czyli najbardziej precyzyjną ścieżkę do celu.

6/47
Adresacja IPv4: system dziesiętny i binarny

Adres IPv4 (Internet Protocol version 4) to 32-bitowa liczba zapisana w systemie dziesiętnym z kropkami – na przykład 192.168.1.10. Każdy z czterech oktetów (8 bitów) może przyjmować wartości od 0 do 255. To daje w sumie około 4,3 miliarda możliwych adresów (2^32). W systemie binarnym adres 192.168.1.10 wygląda następująco: 11000000.10101000.00000001.00001010. Zrozumienie zapisu binarnego jest niezbędne do obliczania masek podsieci, adresów sieciowych i rozgłoszeniowych. Proszę zapamiętać wartości poszczególnych bitów w oktecie: 128, 64, 32, 16, 8, 4, 2, 1.

Adres IPv4 ma długość 32 bitów — ponieważ człowiekowi trudno operować ciągami binarnymi, zapisuje się go w postaci czterech oktetów (8-bitowych grup) oddzielonych kropkami, każdy w zakresie 0–255. Binarny zapis każdego oktetu to osiem bitów, gdzie waga kolejnych pozycji wynosi odpowiednio 128, 64, 32, 16, 8, 4, 2 i 1 — suma wag zapalonych bitów daje wartość dziesiętną oktetu.

Konwersja między systemami jest niezbędna przy projektowaniu podsieci i obliczaniu adresów sieciowych. Na przykład adres 192.168.1.10 w zapisie binarnym to 11000000.10101000.00000001.00001010 — każda jedynka oznacza włączenie odpowiadającej jej wagi, a każde zero jej wyłączenie, co po zsumowaniu daje wspomniane wartości dziesiętne.

7/47
Struktura adresu IP: sieć i host

Każdy adres IPv4 składa się z dwóch logicznych części: adresu sieci (network ID) i adresu hosta (host ID). To, która część jest siecią, a która hostem, określa maska podsieci.

  • Network ID: identyfikuje konkretną sieć IP. Wszystkie urządzenia w tej samej sieci mają identyczną tę część adresu.
  • Host ID: identyfikuje konkretne urządzenie (interfejs) w danej sieci. Musi być unikalny w obrębie tej sieci.

Przykładowo, w adresie 192.168.1.10 z maską 255.255.255.0 (/24), sieć to 192.168.1 (pierwsze trzy oktety), a host to 10 (ostatni oktet). Dzięki tej hierarchicznej strukturze routery mogą kierować ruchem do całych sieci, zamiast pamiętać każdy pojedynczy adres.

Adres IP jest podzielony na dwie logiczne części: identyfikator sieci (network ID) określa, do której podsieci należy urządzenie, a identyfikator hosta (host ID) jednoznacznie wskazuje konkretne urządzenie w obrębie tej sieci. Granicę między tymi częściami wyznacza maska podsieci — bez niej nie można stwierdzić, która część adresu należy do sieci, a która do hosta.

Gdy host chce wysłać pakiet do innego urządzenia, najpierw oblicza, czy adres docelowy znajduje się w tej samej podsieci — jeśli tak, wysyła ramkę bezpośrednio do odbiorcy przez przełącznik; jeśli nie, kieruje pakiet do bramy domyślnej (routera), która zajmuje się dalszym przekazaniem. Decyzja ta jest możliwa właśnie dzięki porównaniu identyfikatorów sieciowych.

8/47
Maska podsieci (Subnet Mask)

Maska podsieci (subnet mask) to 32-bitowa liczba, która wskazuje, które bity adresu IP należą do części sieciowej, a które do hosta. Bity maski ustawione na 1 oznaczają część sieciową, bity na 0 oznaczają część hosta. Maska jest zawsze ciągiem jedynek, po którym następuje ciąg zer – nigdy nie ma przerwań. Standardowo maskę zapisuje się w notacji dziesiętnej z kropkami, np. 255.255.255.0, albo w notacji skróconej CIDR, np. /24 (liczba 24 oznacza 24 bity ustawione na 1). Im więcej bitów sieciowych (większy prefiks), tym więcej możliwych podsieci, ale mniej hostów w każdej z nich.

Maska podsieci to 32-bitowa liczba, w której bity o wartości 1 oznaczają część sieciową adresu, a bity o wartości 0 — część hostową. W zapisie dziesiętnym maska przyjmuje postać ciągu czterech oktetów, na przykład 255.255.255.0 oznacza, że pierwsze 24 bity są częścią sieci, a pozostałe 8 bitów są przeznaczone dla hostów.

Notacja CIDR (Classless Inter-Domain Routing) upraszcza zapis maski, podając po adresie ukośnik i liczbę bitów sieciowych, np. /24 odpowiada masce 255.255.255.0. Im dłuższy prefiks (większa liczba po ukośniku), tym mniejsza liczba dostępnych hostów w podsieci, ale jednocześnie więcej możliwych podsieci w całej przestrzeni adresowej.

9/47
Operacja logiczna AND: wyznaczanie adresu sieci

Aby wyznaczyć adres sieci, do której należy dane urządzenie, wykonujemy operację logiczną AND na adresie IP i masce podsieci. AND działa następująco: 1 AND 1 = 1, 1 AND 0 = 0, 0 AND 1 = 0, 0 AND 0 = 0. Innymi słowy, wynik to 1 tylko wtedy, gdy oba bity są równe 1. Przykład: adres IP 192.168.1.10 (11000000.10101000.00000001.00001010) AND maska 255.255.255.0 (11111111.11111111.11111111.00000000) = 192.168.1.0 (11000000.10101000.00000001.00000000). Wynik 192.168.1.0 to adres sieci. Dzięki tej operacji router wie, czy pakiet jest przeznaczony do hosta w tej samej sieci, czy też musi zostać przesłany dalej.

Operacja logiczna AND na poziomie bitów między adresem IP a maską podsieci pozwala wyznaczyć adres sieci — każdy bit adresu jest mnożony przez odpowiadający mu bit maski (1 × 1 = 1, 1 × 0 = 0). Ponieważ maska ma bity sieciowe ustawione na 1, a hostowe na 0, wynik AND zeruje wszystkie bity hosta, pozostawiając nienaruszone bity sieci — w ten sposób otrzymujemy adres sieciowy.

Przykładowo dla adresu 192.168.1.37 z maską 255.255.255.0 (/24) operacja AND daje 192.168.1.0 — jest to adres sieci. Zmiana choćby jednego bitu w adresie lub masce daje inny wynik, dlatego poprawność maski jest kluczowa przy konfiguracji interfejsów sieciowych i tras statycznych w routerach.

10/47
Adres sieci i adres rozgłoszeniowy

W każdej podsieci IP dwa adresy są zarezerwowane i nie mogą być przypisane do żadnego urządzenia.

  • Adres sieci (Network Address): to pierwszy adres w danej podsieci, w którym wszystkie bity hosta są równe 0. Służy do identyfikacji samej sieci. Na przykład: 192.168.1.0/24.
  • Adres rozgłoszeniowy (Broadcast Address): to ostatni adres w podsieci, w którym wszystkie bity hosta są równe 1. Pakiety wysłane na ten adres są dostarczane do wszystkich hostów w danej sieci. Na przykład: 192.168.1.255/24.

Pozostałe adresy w zakresie między adresem sieci a broadcastem mogą być przypisywane hostom. Dla sieci /24 dostępnych jest zatem 254 adresy hostów (2^8 - 2).

Adres sieci (pierwszy adres w podsieci) ma wszystkie bity hosta wyzerowane — nie można go przypisać żadnemu interfejsowi, ponieważ służy wyłącznie do identyfikacji całej podsieci w tablicach routingu. Adres rozgłoszeniowy (broadcast) ma wszystkie bity hosta ustawione na 1 — pakiet wysłany na ten adres trafia do wszystkich urządzeń w danej podsieci.

Liczbę hostów możliwych do zaadresowania w podsieci oblicza się według wzoru 2^n − 2, gdzie n to liczba bitów hosta. Odejmuje się dwa adresy właśnie dlatego, że jeden jest zarezerwowany dla adresu sieci, a drugi dla adresu rozgłoszeniowego. Na przykład w sieci /24 (8 bitów hosta) dostępnych jest 2^8 − 2 = 254 adresy dla urządzeń końcowych.

11/47
Prywatne vs publiczne adresy IP

Nie wszystkie adresy IPv4 są publicznie dostępne w Internecie. Część z nich została zarezerwowana dla sieci prywatnych (RFC 1918) – mogą być używane dowolnie wewnątrz organizacji, ale nie są routowane w publicznym Internecie.

  • Klasa A: 10.0.0.0 – 10.255.255.255 (maska /8)
  • Klasa B: 172.16.0.0 – 172.31.255.255 (maska /16)
  • Klasa C: 192.168.0.0 – 192.168.255.255 (maska /24)

Adresy publiczne są unikalne globalnie i przydzielane przez organizacje takie jak IANA. Każde urządzenie podłączone bezpośrednio do Internetu musi posiadać publiczny adres IP. Adresy prywatne są powszechnie stosowane w sieciach domowych i firmowych, a dostęp do Internetu uzyskują za pomocą mechanizmu NAT.

RFC 1918 definiuje trzy zakresy adresów prywatnych: 10.0.0.0/8 (ponad 16 milionów adresów), 172.16.0.0/12 (około 1 miliona adresów) oraz 192.168.0.0/16 (65 536 adresów). Adresy te mogą być używane dowolnie w sieciach wewnętrznych, ale nie są rutowane w publicznym Internecie — routery ISP odrzucają pakiety z takimi adresami źródłowymi.

Adresy publiczne są unikalne globalnie i przydzielane przez regionalne rejestry internetowe (RIPE NCC dla Europy, ARIN dla Ameryki Północnej itd.). Aby host z adresem prywatnym mógł komunikować się z Internetem, konieczne jest zastosowanie translacji adresów sieciowych (NAT), która zamienia prywatny adres źródłowy na publiczny adres interfejsu zewnętrznego routera.

12/47
Brama domyślna (Default Gateway)

Brama domyślna (default gateway) to adres IP interfejsu routera w lokalnej sieci LAN, który służy jako punkt wyjścia dla ruchu kierowanego do innych sieci. Gdy host chce wysłać pakiet do urządzenia w innej podsieci, najpierw sprawdza, czy adres docelowy znajduje się w jego własnej sieci (za pomocą operacji AND na adresie IP i masce). Jeśli nie – pakiet jest wysyłany do bramy domyślnej. Brama domyślna musi znajdować się w tej samej sieci IP co host. Bez prawidłowo skonfigurowanej bramy domyślnej host może komunikować się tylko z urządzeniami w swojej lokalnej sieci LAN.

Brama domyślna to adres IP routera, do którego host wysyła wszystkie pakiety przeznaczone dla sieci innych niż lokalna. Jeśli host nie zna trasy do konkretnej sieci docelowej, używa właśnie trasy domyślnej (0.0.0.0/0), której następnym skokiem jest adres bramy — bez tego wpisu host nie opuści swojej podsieci.

W konfiguracji hosta brama domyślna musi należeć do tej samej podsieci co interfejs hosta — w przeciwnym razie ramka nie może zostać dostarczona bezpośrednio na poziomie warstwy drugiej. Protokoły DHCP (Dynamic Host Configuration Protocol) automatycznie przekazują adres bramy domyślnej wraz z resztą parametrów konfiguracyjnych, zwalniając użytkownika z ręcznego wpisywania tych danych.

13/47
Pełny kwartet konfiguracyjny hosta

Aby host mógł w pełni funkcjonować w sieci IP, musi posiadać cztery podstawowe parametry konfiguracyjne – tzw. kwartet konfiguracyjny.

  1. Adres IP: unikalny adres logiczny hosta w danej sieci, np. 192.168.1.10.
  2. Maska podsieci: określa, która część adresu IP to sieć, a która to host, np. 255.255.255.0.
  3. Brama domyślna: adres IP routera, przez który host wysyła pakiety do innych sieci, np. 192.168.1.1.
  4. Serwer DNS: adres IP serwera tłumaczącego nazwy domenowe (jak google.com) na adresy IP, np. 8.8.8.8.

Brak któregokolwiek z tych parametrów uniemożliwia pełną komunikację sieciową – host nie będzie mógł np. przeglądać stron internetowych.

Podstawową konfigurację hosta w sieci IPv4 stanowią cztery parametry: adres IP jednoznacznie identyfikujący interfejs w sieci, maska podsieci określająca przynależność do podsieci, brama domyślna wskazująca router wyjściowy oraz adres serwera DNS (Domain Name System) tłumaczącego nazwy domenowe na adresy IP. Brak któregokolwiek z tych parametrów uniemożliwia prawidłową komunikację sieciową.

Adres DNS jest często pomijany przez początkujących administratorów — bez niego host nie jest w stanie rozwiązać nazwy takiej jak www.example.com na adres IP, choć nadal może komunikować się z innymi urządzeniami za pomocą samych adresów IP. W praktyce DNS jest krytyczny, ponieważ większość usług sieciowych (przeglądarki WWW, klienty poczty) opiera się na nazwach domenowych, a nie na adresach liczbowych.

14/47
Komenda ipconfig /all

W systemie Windows podstawowym narzędziem do diagnostyki konfiguracji IP jest komenda ipconfig. Uruchomiona z przełącznikiem /all wyświetla szczegółowe informacje o wszystkich interfejsach sieciowych w systemie. Zobaczysz tam między innymi: adres IPv4, maskę podsieci, bramę domyślną, adresy serwerów DNS, adres MAC, informację o tym, czy adres IP jest przydzielany przez DHCP oraz datę jego dzierżawy. W systemach Linux/macOS odpowiednikiem jest komenda ifconfig lub ip addr. To pierwsze narzędzie, które powinieneś uruchomić, gdy napotkasz problemy sieciowe na swoim komputerze.

W systemie Windows polecenie ipconfig /all wyświetla szczegółowe informacje o wszystkich interfejsach sieciowych, w tym adres fizyczny MAC, adres IPv4, maskę podsieci, bramę domyślną, serwery DNS oraz status dzierżawy DHCP. W systemach Linux odpowiednikiem jest polecenie ip addr (lub przestarzałe ifconfig), które pokazuje podobne dane, ale w bardziej zwięzłej formie.

Polecenia te są podstawowym narzędziem diagnostycznym przy rozwiązywaniu problemów sieciowych — pozwalają szybko sprawdzić, czy host otrzymał poprawną konfigurację od serwera DHCP, czy nie występuje konflikt adresów IP (komunikat o duplikacie adresu) oraz czy interfejs ma łączność fizyczną (link-local address lub status media disconnected). Bez tych informacji dalsza diagnostyka, taka jak testowanie łączności poleceniem ping, może być myląca.

15/47
Klasy adresów i standard CIDR

Pierwotnie adresacja IPv4 była oparta na klasach: A (0.0.0.0–127.255.255.255, /8), B (128.0.0.0–191.255.255.255, /16) i C (192.0.0.0–223.255.255.255, /24). Klasy były sztywne i prowadziły do marnowania adresów. Rozwiązaniem był standard CIDR (Classless Inter-Domain Routing). CIDR pozwala na dowolny podział bitów sieci/hosta (np. /23, /27), co daje znacznie większą elastyczność i efektywność wykorzystania przestrzeni adresowej. Na przykład sieć /26 (maska 255.255.255.192) dzieli standardową sieć /24 na 4 podsieci po 62 hosty każda. CIDR jest dziś powszechnie stosowany, a tradycyjny podział na klasy ma już głównie znaczenie historyczne.

Historyczny podział adresów IPv4 na klasy A (1.0.0.0–126.255.255.255), B (128.0.0.0–191.255.255.255) i C (192.0.0.0–223.255.255.255) opierał się na sztywnych maskach — odpowiednio /8, /16 i /24. Prowadziło to do ogromnego marnotrawstwa przestrzeni adresowej, ponieważ organizacja potrzebująca 300 adresów musiała otrzymać całą klasę B (65 534 adresy), z której większość pozostawała niewykorzystana.

Standard CIDR (Classless Inter-Domain Routing) zniósł sztywne klasy i wprowadził dowolne maski o dowolnej długości, umożliwiając precyzyjne dopasowanie wielkości podsieci do rzeczywistych potrzeb — na przykład /23 (512 adresów) dla potrzeby 300 hostów zamiast klasy B. CIDR pozwolił też na agregację tras (route aggregation lub supernetting), co radykalnie zmniejszyło rozmiar tablic routingu w routerach szkieletowych Internetu.

16/47
Tablica routingu: mapa drogowa routera

Tablica routingu (routing table) to fundamentalna struktura danych w każdym routerze. Zawiera informacje o znanych sieciach i interfejsach, przez które są one osiągalne. Można ją porównać do mapy drogowej – router zagląda do niej za każdym razem, gdy musi podjąć decyzję o dalszej drodze pakietu.

  • Sieć docelowa (Network Destination): adres sieci IP, do której chcemy dotrzeć.
  • Maska sieci (Netmask): maska podsieci dla sieci docelowej.
  • Następny skok (Next Hop / Gateway): adres IP następnego routera na ścieżce do celu.
  • Interfejs (Interface): port routera, przez który należy wysłać pakiet.
  • Metryka (Metric / Distance): koszt trasy, używany do porównywania wielu ścieżek do tej samej sieci.

Każdy wpis w tablicy routingu zawiera co najmniej cztery podstawowe elementy: adres sieci docelowej wraz z maską (określające, do której podsieci wpis się odnosi), adres następnego skoku (next-hop), czyli adres IP kolejnego routera na drodze do celu, oraz interfejs wyjściowy, przez który router ma wysłać pakiet. Dodatkowo metryka (koszt) określa preferencję trasy — im niższa wartość, tym trasa jest bardziej atrakcyjna.

Router porównuje adres docelowy pakietu ze wszystkimi wpisami w tablicy, wybierając ten o najdłuższym dopasowaniu prefiksu — na przykład dla celu 192.168.1.100 spośród tras 192.168.0.0/16 i 192.168.1.0/24 wybrana zostanie ta druga, ponieważ jest bardziej precyzyjna. Trasa domyślna (0.0.0.0/0) ma najkrótszy prefiks i jest używana tylko wtedy, gdy żaden inny wpis nie pasuje do adresu docelowego.

17/47
Jak router przetwarza pakiet?

Proces routowania pakietu przez router można opisać w kilku krokach. Zrozumienie tego procesu jest kluczowe dla administracji sieciami.

  1. Router odbiera ramkę Ethernet na interfejsie wejściowym. Sprawdza adres MAC docelowy – jeśli zgadza się z adresem interfejsu, ramka jest akceptowana.
  2. Router odrzuca nagłówek ramki L2 (de-encapsulation) i odczytuje nagłówek pakietu IP, aby poznać docelowy adres IP.
  3. Router przeszukuje swoją tablicę routingu w poszukiwaniu trasy, która pasuje do adresu docelowego (najdłuższe dopasowanie – longest prefix match).
  4. Jeśli trasa zostanie znaleziona, router sprawdza interfejs wyjściowy i adres następnego skoku (next hop).
  5. Router enkapsuluje pakiet IP w nową ramkę L2 z odpowiednim docelowym adresem MAC i wysyła ramkę przez interfejs wyjściowy.

Po odebraniu ramki z interfejsu fizycznego router sprawdza pole FCS ramki warstwy drugiej, aby zweryfikować jej integralność. Jeśli adres MAC docelowy w ramce nie jest zgodny z adresem interfejsu routera ani adresem rozgłoszeniowym, ramka jest odrzucana na poziomie warstwy łącza. Po potwierdzeniu poprawności ramki router usuwa nagłówek warstwy drugiej i odczytuje nagłówek IP, analizując przede wszystkim docelowy adres IP oraz pole TTL (Time to Live).

Zanim router sięgnie po tablicę routingu, dekrementuje wartość TTL w pakiecie — jeśli spadnie do zera, pakiet jest odrzucany, a nadawca otrzymuje komunikat ICMP Time Exceeded. Następnie router przeszukuje tablicę routingu w poszukiwaniu najdłuższego dopasowania prefiksu (longest prefix match) dla docelowego adresu IP. Gdy wpis zostanie znaleziony, router tworzy nową ramkę warstwy łącza: podmienia adres MAC źródłowy na własny adres interfejsu wyjściowego, a docelowy na adres MAC następnego skoku (next-hop) uzyskany przez ARP.

18/47
Komenda show ip route (Cisco)

W systemie IOS urządzeń Cisco kluczową komendą do diagnostyki routingu jest show ip route. Wyświetla ona całą tablicę routingu z oznaczeniami typów tras.

  • C – Connected: sieć bezpośrednio podłączona do interfejsu routera.
  • L – Local: adres IP samego interfejsu (w nowszych IOS).
  • S – Static: trasa wprowadzona ręcznie przez administratora.
  • O – OSPF: trasa poznana przez protokół OSPF.
  • D – EIGRP: trasa poznana przez protokół EIGRP.
  • R – RIP: trasa poznana przez protokół RIP.
  • S* – Default route: trasa domyślna (brama ostatniej szansy), oznaczona jako S*.

W systemie Cisco IOS polecenie `show ip route` wyświetla tablicę routingu IP, w której każdy wpis oznaczony jest literowym kodem źródła trasy. Kod C oznacza sieć bezpośrednio podłączoną (connected), L — lokalny adres interfejsu (local), S — trasę statyczną (static), a S* — domyślną trasę statyczną (static default). Kody O, D i R pochodzą odpowiednio z protokołów dynamicznych: OSPF, EIGRP oraz RIP, przy czym każdy z tych protokołów ma własną miarę odległości (metrykę) i priorytet administracyjny.

Administrative distance (AD) to wartość liczbowa określająca wiarygodność źródła trasy — im niższa, tym bardziej zaufane źródło. Dla tras bezpośrednio podłączonych AD wynosi 0, dla tras statycznych 1, dla tras EIGRP 90, OSPF 110, a dla RIP 120. Gdy router otrzymuje informację o tej samej sieci docelowej z dwóch różnych protokołów, wybiera wpis o niższej wartości AD, co zapobiega konfliktom w tablicy routingu.

19/47
Sieci bezpośrednio podłączone

Najprostszym typem tras w tablicy routingu są sieci bezpośrednio podłączone (Connected Routes). Router automatycznie dodaje je do tablicy routingu, gdy tylko interfejs zostanie skonfigurowany z adresem IP i zostanie włączony (no shutdown). Jeśli router ma interfejs GigabitEthernet0/0 z adresem 192.168.1.1/24, to automatycznie pojawi się trasa do sieci 192.168.1.0/24 przez ten interfejs. Router wie, że hosty w tej sieci są osiągalne bezpośrednio – nie musi kierować pakietów do żadnego innego routera. Trasy Connected mają najwyższy priorytet (najniższą odległość administracyjną, wynoszącą 0).

Trasa bezpośrednio podłączona (oznaczona kodem C) pojawia się w tablicy routingu automatycznie w momencie przypisania adresu IP z maską do interfejsu routera i podniesienia jego stanu administracyjnego oraz fizycznego (up/up). Router zakłada wówczas, że cała przestrzeń adresowa zdefiniowana przez kombinację adresu i maski znajduje się za tym interfejsem, co pozwala mu kierować pakiety bezpośrednio do hostów w tej samej podsieci bez konieczności odpytywania jakiegokolwiek protokołu routingu.

Wraz z trasą C dodawana jest automatycznie trasa L (local), która wskazuje dokładnie na adres IP przypisany do interfejsu. Trasa L ma maskę /32, ponieważ reprezentuje pojedynczy interfejs routera, a nie całą podsieć. Gdy interfejs zostanie wyłączony administracyjnie (shutdown) lub wystąpi awaria fizyczna, obie trasy — zarówno C, jak i L — są natychmiast usuwane z tablicy routingu, co uniemożliwia dalszą transmisję przez to łącze.

20/47
Routing statyczny: zalety i wady

Routing statyczny polega na ręcznym wprowadzaniu tras do tablicy routingu przez administratora. Administrator decyduje, którędy pakiety mają trafiać do poszczególnych sieci i konfiguruje to za pomocą komend. Routing statyczny ma zarówno zalety, jak i wady.

Zaletą jest przede wszystkim bezpieczeństwo i przewidywalność – administrator ma pełną kontrolę nad ścieżkami ruchu. Trasy statyczne nie obciążają routera dodatkowymi obliczeniami i nie generują ruchu sieciowego. Są idealne dla małych sieci lub tras domyślnych. Wadą jest brak skalowalności – w dużych sieciach ręczne konfigurowanie setek tras jest niepraktyczne i podatne na błędy. Ponadto, w przypadku awarii łącza, trasa statyczna nie zostanie automatycznie zmieniona – administrator musi ręcznie zaktualizować konfigurację.

Routing statyczny wymaga ręcznego wprowadzenia każdej trasy przez administratora, co daje pełną kontrolę nad ścieżkami przepływu danych w sieci i eliminuje ryzyko związane z niepożądanymi aktualizacjami pochodzącymi od sąsiednich routerów. Rozwiązanie to jest bezpieczne, ponieważ router nie wysyła żadnych informacji o swoich trasach poza sieć lokalną, a sam nie ufa reklamacjom pochodzącym z protokołów dynamicznych. Trasy statyczne są także całkowicie przewidywalne — nie ulegają zmianie przy fluktuacjach łącza ani przy zmianach topologii, co ułatwia diagnostykę.

Zasadniczą wadą routingu statycznego jest brak skalowalności: w sieci składającej się z kilkudziesięciu lub więcej routerów ręczne utrzymanie wszystkich wpisów staje się niepraktyczne i wysoce podatne na błędy konfiguracji. Ponadto trasy statyczne nie adaptują się do awarii łącza — jeśli router pośredni ulegnie awarii, pakiety kierowane trasą statyczną są odrzucane, dopóki administrator nie zmodyfikuje konfiguracji ręcznie. Z tych powodów routing statyczny stosuje się głównie w sieciach brzegowych oraz w trasach domyślnych, gdzie liczba wpisów jest niewielka.

21/47
Konfiguracja trasy statycznej w CLI

W systemie Cisco IOS trasę statyczną konfiguruje się w trybie konfiguracyjnym globalnym za pomocą komendy ip route. Składnia jest następująca: najpierw podajemy adres sieci docelowej, potem jej maskę, a na końcu adres IP następnego skoku (next-hop) lub interfejs wyjściowy.

Przykład konfiguracji trasy statycznej do sieci 10.10.10.0/24 przez router o adresie 192.168.1.1:

Router(config)# ip route 10.10.10.0 255.255.255.0 192.168.1.1

Można również określić interfejs wyjściowy zamiast adresu next-hop:

Router(config)# ip route 10.10.10.0 255.255.255.0 GigabitEthernet0/1

W systemie Linux trasę statyczną dodaje się komendą ip route add.

W systemie Cisco IOS polecenie `ip route` przyjmuje składnię: `ip route sieć_docelowa maska {adres_następnego_skoku | interfejs_wyjściowy} [dystans_administracyjny]`. Na przykład `ip route 192.168.10.0 255.255.255.0 10.0.0.2` informuje router, że pakiety do sieci 192.168.10.0/24 mają być przekazywane do routera o adresie 10.0.0.2. Opcjonalny parametr AD pozwala ustawić priorytet trasy statycznej względem tras poznanych dynamicznie.

W systemie Linux trasę statyczną dodaje się poleceniem `ip route add` — na przykład `ip route add 192.168.20.0/24 via 10.0.0.1 dev eth0`. W przeciwieństwie do Cisco IOS, w systemie Linux maskę podaje się w notacji prefiksu CIDR, a nie w formacie dziesiętnym z kropkami. Trasy statyczne w Linuksie są nietrwałe (znikają po restarcie), chyba że zostaną umieszczone w odpowiednim pliku konfiguracyjnym dystrybucji, na przykład /etc/network/interfaces w Debianie lub przez skrypty ifup.

22/47
Brama ostatniej szansy (Default Route)

Trasa domyślna (default route), zwana również bramą ostatniej szansy, to specjalny wpis w tablicy routingu, który pasuje do każdego adresu IP, do którego nie ma bardziej szczegółowej trasy. Jest oznaczana jako 0.0.0.0/0 – sieć 0.0.0.0 z maską 0.0.0.0 oznacza „wszystkie sieci". Domyślnie routery Cisco mają skonfigurowaną trasę domyślną tylko jeśli administrator ją doda. W sieciach brzegowych (łączących sieć wewnętrzną z Internetem) trasa domyślna kieruje cały ruch do Internetu do routera dostawcy ISP. W systemie Windows trasa domyślna jest konfigurowana automatycznie przez ustawienie bramy domyślnej w konfiguracji IP. Komenda Cisco: ip route 0.0.0.0 0.0.0.0 203.0.113.1.

Trasa domyślna (domyślna brama) to wpis w tablicy routingu o adresie sieci 0.0.0.0 i masce 0.0.0.0, który odpowiada prefiksowi 0.0.0.0/0. Router używa tej trasy, gdy dla przychodzącego pakietu nie znajdzie żadnego bardziej szczegółowego dopasowania w tablicy routingu — stanowi ona mechanizm awaryjny dla całego ruchu, którego miejsce docelowe nie jest jawnie zdefiniowane. W systemie Cisco IOS trasa domyślna może być statyczna (oznaczona kodem S*) lub poznana dynamicznie przez protokół routingu.

Brama ostatniej szansy (gateway of last resort) to pojęcie określające adres IP następnego skoku, do którego router przekazuje pakiety pasujące do trasy domyślnej. W warunkach domowych jest to zazwyczaj adres interfejsu LAN routera dostawcy usług internetowych. W konfiguracji Cisco trasę domyślną można ustawić poleceniem `ip route 0.0.0.0 0.0.0.0 adres_bramy`, a w systemie Linux komendą `ip route add default via adres_bramy`.

23/47
Routing dynamiczny: automatyzacja mapy

Routing dynamiczny to mechanizm, w którym routery automatycznie wymieniają się informacjami o znanych sieciach za pomocą protokołów routingu dynamicznego. Administrator nie musi ręcznie wprowadzać tras – routery uczą się od siebie nawzajem. Gdy w sieci pojawi się nowa trasa lub jedna z istniejących ulegnie awarii, routery automatycznie aktualizują swoje tablice routingu. Dzięki temu sieć jest samoadaptująca się i odporna na zmiany topologii. Popularne protokoły routingu dynamicznego to RIP, EIGRP (Cisco) oraz OSPF (otwarty standard). Routing dynamiczny jest niezbędny w dużych i złożonych sieciach, gdzie ręczne zarządzanie trasami byłoby niemożliwe.

Routing dynamiczny polega na automatycznej wymianie informacji o dostępnych sieciach pomiędzy routerami za pomocą wyspecjalizowanych protokołów, takich jak OSPF, EIGRP czy RIP. Routery uczestniczące w tym samym protokole dynamicznym okresowo wysyłają i odbierają komunikaty zawierające wpisy tablic routingu, dzięki czemu każdy router samodzielnie buduje obraz topologii sieci bez ingerencji administratora. W przypadku zmiany topologii, na przykład awarii łącza, routery automatycznie przeliczają ścieżki i propagują zaktualizowane informacje do sąsiadów.

Główną zaletą routingu dynamicznego jest zdolność do samoadaptacji (self-healing) — sieć jest odporna na pojedyncze awarie, a pakiety są przekierowywane alternatywnymi ścieżkami bez ręcznej interwencji. Protokoły dynamiczne różnią się między sobą szybkością zbieżności (convergence), złożonością obliczeniową, metryką wyboru ścieżki oraz zakresem skalowalności. OSPF zapewnia szybką zbieżność w dużych sieciach korporacyjnych, podczas gdy RIP, ze swoją prostą metryką liczby skoków, sprawdza się wyłącznie w niewielkich topologiach.

24/47
IGP vs EGP: podział protokołów

Protokoły routingu dynamicznego dzielą się na dwie główne kategorie ze względu na obszar działania.

  • IGP (Interior Gateway Protocols): protokoły używane wewnątrz jednego systemu autonomicznego (AS), czyli w obrębie jednej organizacji lub jednego dostawcy. Przykłady: RIP (Routing Information Protocol), OSPF (Open Shortest Path First), EIGRP (Enhanced Interior Gateway Routing Protocol). IGP optymalizują routing pod kątem wydajności i szybkości zbieżności.
  • EGP (Exterior Gateway Protocols): protokoły używane między różnymi systemami autonomicznymi, np. między różnymi dostawcami Internetu. Obecnie jedynym stosowanym protokołem EGP jest BGP (Border Gateway Protocol). BGP jest podstawą routingu w globalnym Internecie.

Rozróżnienie między IGP a EGP jest kluczowe dla zrozumienia architektury Internetu.

Protokoły bram wewnętrznych (IGP — Interior Gateway Protocols) działają wewnątrz jednego systemu autonomicznego (AS), czyli sieci zarządzanej przez jedną organizację. Do najpopularniejszych protokołów IGP należą OSPF (Open Shortest Path First) oparty na algorytmie Dijkstry, EIGRP (cisco) oraz RIP (Routing Information Protocol) używający algorytmu Bellmana-Forda. IGP-y są zoptymalizowane pod kątem szybkiej zbieżności i precyzyjnej metryki, co jest kluczowe w sieciach LAN/WAN o złożonej topologii.

Protokoły bram zewnętrznych (EGP — Exterior Gateway Protocols) służą do wymiany tras między różnymi systemami autonomicznymi, głównie w rdzeniu Internetu. Jedynym powszechnie stosowanym protokołem EGP jest BGP (Border Gateway Protocol), który opiera się na politykach routingu, a nie na metrykach technicznych — administratorzy poszczególnych AS-ów decydują, które trasy reklamować sąsiadom i jakim warunkom podlegają. BGP jest protokołem ścieżek wektorowych (path vector) i wymaga starannej konfiguracji, ponieważ błędy w polityce mogą prowadzić do blackholingu ruchu na globalną skalę.

25/47
Jak router buduje ramkę? Protokół ARP

Router wie, przez który interfejs i do jakiego następnego routera (next hop) ma wysłać pakiet. Aby jednak wysłać ramkę Ethernet, potrzebuje adresu MAC urządzenia docelowego. Tu z pomocą przychodzi protokół ARP (Address Resolution Protocol). Router sprawdza swoją tablicę ARP – jeśli nie ma w niej adresu MAC dla adresu IP next-hopu, wysyła zapytanie ARP (broadcast) w sieci lokalnej: „Kto ma adres IP X.X.X.X? Proszę podać swój adres MAC". Urządzenie o podanym adresie IP odpowiada swoim adresem MAC. Router zapisuje to powiązanie w tablicy ARP (cache ARP) i może już skonstruować ramkę z poprawnym docelowym adresem MAC.

Protokół ARP (Address Resolution Protocol) jest niezbędny, gdy router lub host zna docelowy adres IP warstwy trzeciej, ale nie zna odpowiadającego mu adresu MAC warstwy drugiej. W takiej sytuacji nadawca wysyła ramkę ARP Request na adres rozgłoszeniowy MAC (FF:FF:FF:FF:FF:FF) w ramach swojej podsieci, pytając: „Kto ma adres IP X.X.X.X?”. Wszystkie hosty w segmencie odbierają to żądanie, ale odpowiada (unicastem) tylko ten, którego adres IP jest zgodny z zapytaniem, przesyłając swój adres MAC w pakiecie ARP Reply.

Router przed opuszczeniem pakietu przez interfejs wyjściowy musi zbudować nową ramkę warstwy drugiej, w której adres MAC źródła należy do niego, a adres MAC przeznaczenia należy do następnego skoku. Aby go poznać, router zagląda do lokalnej tablicy ARP (ARP cache), a jeśli wpis nie istnieje, inicjuje zapytanie ARP. Wpis ARP pozostaje w pamięci podręcznej przez ograniczony czas (zwykle kilka minut), po czym wygasa i w razie potrzeby jest odświeżany, co zapobiega gromadzeniu się nieaktualnych informacji o adresach fizycznych.

26/47
Problem wyczerpania adresów IPv4

Adresy IPv4 to 32-bitowe liczby, co daje około 4,3 miliarda możliwych adresów. W momencie projektowania Internetu w latach 80. wydawało się to liczbą ogromną. Jednak wraz z globalną eksplozją Internetu, smartfonów, laptopów, serwerów i urządzeń IoT, pula wolnych adresów IPv4 szybko się kurczyła. W lutym 2011 roku IANA (Internet Assigned Numbers Authority) przydzieliła ostatnie bloki adresów IPv4 do regionalnych rejestrów (RIR). W kwietniu 2017 roku ARIN (rejestr dla Ameryki Północnej) ogłosił wyczerpanie swojej puli. Dziś uzyskanie nowego bloku adresów IPv4 jest bardzo trudne i kosztowne. Rozwiązaniem długoterminowym jest IPv6.

Przestrzeń adresowa IPv4 wynosi 2^32, czyli około 4,3 miliarda unikalnych adresów, co w latach osiemdziesiątych XX wieku wydawało się liczbą niewyczerpalną. Dynamiczny rozwój Internetu, upowszechnienie smartfonów, laptopów i urządzeń IoT spowodowały, że liczba ta okazała się dramatycznie niewystarczająca. W lutym 2011 roku organizacja IANA rozdała ostatnie bloki adresów regionalnym rejestrom (RIR), a w 2017 roku ARIN (Ameryka Północna) ogłosiła wyczerpanie swojej puli adresów IPv4.

Konsekwencje wyczerpania adresów IPv4 są odczuwalne na całym świecie: dostawcy usług internetowych muszą stosować translację NAT (Network Address Translation) na szeroką skalę, co komplikuje architekturę sieci i utrudnia komunikację end-to-end. Rozwiązaniem docelowym jest protokół IPv6 z przestrzenią 2^128 adresów, który oprócz ogromnej puli adresów oferuje wbudowane bezpieczeństwo IPsec, uproszczoną strukturę nagłówka oraz autokonfigurację bezstanową (SLAAC). Mimo tych zalet migracja do IPv6 postępuje wolno ze względu na koszty modernizacji infrastruktury i konieczność utrzymania współistnienia obu protokołów w trybie podwójnego stosu (dual stack).

27/47
Jak działa NAT?

NAT (Network Address Translation) to mechanizm, który pozwala wielu urządzeniom w sieci prywatnej współdzielić jeden publiczny adres IP w Internecie. Router z NAT-em zamienia prywatne adresy IP (np. 192.168.x.x) na swój własny publiczny adres IP podczas wysyłania ruchu do Internetu. Gdy pakiet powraca, router odwraca operację – zamienia publiczny adres IP na odpowiedni prywatny adres urządzenia w sieci LAN. NAT działa dzięki zapisywaniu w specjalnej tablicy (NAT table) informacji o każdym połączeniu. Dzięki NAT tysiące urządzeń w sieci domowej mogą korzystać z Internetu za pomocą jednego publicznego adresu IP przydzielonego przez dostawcę ISP.

NAT (Network Address Translation) to mechanizm, w którym router z interfejsem w sieci prywatnej (inside) i interfejsem w sieci publicznej (outside) zamienia prywatne adresy źródłowe pakietów na jeden lub więcej publicznych adresów IP. Gdy host z sieci wewnętrznej (np. 192.168.1.10) wysyła pakiet do Internetu, router zapamiętuje w tablicy translacji (NAT table) oryginalne parametry sesji: adres źródłowy, port źródłowy, adres docelowy i port docelowy, a następnie podmienia adres źródłowy na własny adres publiczny.

Tablica NAT przechowuje mapowania między prywatnymi a publicznymi adresami wraz z informacją o porcie, co pozwala routerowi odwrócić translację dla pakietów powracających z Internetu — na podstawie docelowego portu i adresu router odszukuje odpowiedni wpis i przekazuje pakiet do właściwego hosta wewnętrznego. NAT rozwiązuje problem ograniczonej liczby publicznych adresów IPv4, ale jednocześnie łamie zasadę komunikacji end-to-end, utrudnia działanie protokołów przenoszących adresy IP w warstwie aplikacji (np. FTP, SIP) i wymaga dodatkowych mechanizmów, takich jak ALG (Application Layer Gateway) lub STUN/TURN w przypadku VoIP.

28/47
PAT (NAT Overload): magia portów

Podstawowa wersja NAT (tzw. NAT statyczny) mapuje jeden adres prywatny na jeden adres publiczny – to nie rozwiązuje problemu oszczędności adresów. Prawdziwą oszczędność przynosi PAT (Port Address Translation), znany również jako NAT Overload. PAT mapuje wiele prywatnych adresów IP na jeden publiczny adres IP, ale każde połączenie identyfikuje za pomocą unikalnego numeru portu TCP/UDP. Gdy dwa komputery w sieci LAN chcą jednocześnie otworzyć tę samą stronę WWW, PAT przypisuje każdemu z nich inny port źródłowy (np. 12345 i 12346) w swojej tablicy translacji. Dzięki temu router wie, który pakiet odpowiedzi należy do którego komputera. PAT jest standardem w domowych routerach.

PAT (Port Address Translation), znany również jako NAT z przeciążeniem (NAT Overload), to wariant NAT, w którym wiele prywatnych adresów IP wewnątrz sieci lokalnej jest mapowanych na jeden publiczny adres IP, co umożliwia jednoczesne prowadzenie tysięcy sesji przez jedno łącze internetowe. Router rozróżnia poszczególne sesje na podstawie numeru portu źródłowego warstwy transportowej (TCP lub UDP) — każda nowa sesja otrzymuje unikalny port źródłowy na interfejsie zewnętrznym, nawet jeśli pierwotnie wiele hostów wewnętrznych używało tego samego portu.

Mechanizm PAT jest podstawą działania domowych routerów broadbandowych: kilkanaście urządzeń (laptopy, telefony, telewizory Smart TV) współdzieli jedno publiczne IP dostarczone przez operatora. Router prowadzi szczegółową tablicę translacji, w której przechowuje pięcioelementową krotkę: protokół, prywatne IP:port, publiczne IP:port, docelowe IP:port. Kluczowym ograniczeniem PAT jest wyczerpanie puli dostępnych portów (65535 portów na jeden adres IP) oraz problemy z protokołami, które wymagają stałego portu lub inicjują sesje zwrotne z zewnątrz, jak VoIP czy gry sieciowe.

29/47
Konfiguracja NAT na routerze Cisco

Konfiguracja PAT (NAT Overload) na routerze Cisco wymaga kilku kroków. Poniższy przykład pokazuje, jak skonfigurować NAT, aby urządzenia w sieci wewnętrznej 192.168.1.0/24 mogły korzystać z Internetu przez interfejs zewnętrzny z adresem publicznym 203.0.113.1.

  1. Zdefiniuj listę dostępu (ACL), która określa, które adresy prywatne mają być translowane: access-list 1 permit 192.168.1.0 0.0.0.255.
  2. Oznacz interfejs wewnętrzny: interface GigabitEthernet0/0 -> ip nat inside.
  3. Oznacz interfejs zewnętrzny: interface GigabitEthernet0/1 -> ip nat outside.
  4. Włącz NAT (PAT) w trybie globalnym: ip nat inside source list 1 interface GigabitEthernet0/1 overload.

Po tej konfiguracji ruch z sieci LAN będzie automatycznie translowany na adres interfejsu zewnętrznego.

Konfiguracja NAT z przeciążeniem (PAT) na routerze Cisco wymaga kilku kroków. Najpierw definiuje się listę dostępu (ACL) określającą, które adresy wewnętrzne podlegają translacji — na przykład `access-list 1 permit 192.168.1.0 0.0.0.255`. Następnie poleceniem `ip nat inside source list 1 interface serial 0/0/0 overload` wiąże się zdefiniowaną listę z interfejsem zewnętrznym, włączając mechanizm przeciążenia portów. Bez słowa kluczowego `overload` router działałby w trybie dynamicznego NAT 1:1, co wymagałoby tylu publicznych adresów, ile prywatnych hostów jednocześnie inicjuje sesje.

Ostatnim krokiem jest oznaczenie interfejsów poleceniami `ip nat inside` na interfejsie wewnętrznym (LAN) oraz `ip nat outside` na interfejsie zewnętrznym (WAN). Router Cisco samodzielnie zarządza tablicą translacji, a jej zawartość można podejrzeć komendą `show ip nat translations`. Wpisy są dynamicznie dodawane przy nawiązywaniu nowych sesji i usuwane po zakończeniu transmisji lub po upływie czasu bezczynności (idle timeout), co zapobiega przepełnieniu tablicy nieaktualnymi mapowaniami.

30/47
NAT statyczny: wystawianie serwera

NAT statyczny (Static NAT) to odmiana NAT, w której konkretny adres prywatny jest mapowany na konkretny adres publiczny w sposób trwały (1:1). Jest to przydatne, gdy chcemy udostępnić serwer wewnętrzny (np. WWW, FTP) z sieci prywatnej do Internetu. Użytkownicy z zewnątrz łączą się na publiczny adres IP routera, a router przekazuje ruch do odpowiedniego serwera wewnętrznego. Konfiguracja w Cisco IOS: ip nat inside source static 192.168.1.100 203.0.113.10. To polecenie mapuje wewnętrzny adres 192.168.1.100 na zewnętrzny adres 203.0.113.10. NAT statyczny wymaga posiadania publicznego adresu IP dla każdego wystawionego serwera.

NAT statyczny (Static NAT) tworzy stałe, ręcznie zdefiniowane mapowanie w relacji 1:1 między adresem prywatnym wewnątrz sieci lokalnej a publicznym adresem IP na zewnątrz. W przeciwieństwie do NAT dynamicznego lub PAT, mapowanie to jest trwałe i nie wymaga inicjacji sesji z wewnątrz — pakiety przychodzące z Internetu na określony publiczny adres IP są zawsze przekazywane do tego samego prywatnego hosta. Na routerze Cisco konfiguruje się je poleceniem `ip nat inside source static 192.168.1.100 203.0.113.10`.

Static NAT znajduje zastosowanie przede wszystkim przy udostępnianiu usług z sieci wewnętrznej do Internetu — na przykład serwera WWW, serwera poczty elektronicznej lub terminala VPN. Ze względu na mapowanie 1:1 każde wystawione urządzenie zużywa oddzielny publiczny adres IP, co jest kosztowne w warunkach deficytu publicznych IPv4. Alternatywą jest przekierowanie portów (port forwarding) w połączeniu z PAT, gdzie wiele serwerów wewnętrznych może współdzielić jeden publiczny adres IP, a router kieruje ruch na podstawie numeru portu docelowego.

31/47
Dlaczego nie wpisujemy IP ręcznie? Problemy

Ręczna konfiguracja adresacji IP na każdym urządzeniu (tzw. konfiguracja statyczna) jest możliwa, ale w praktyce nie jest zalecana w większych sieciach z kilku powodów.

  • Błędy konfiguracji: łatwo o literówkę, wpisanie złej maski lub adresu IP, który jest już zajęty – skutkuje to brakiem komunikacji.
  • Duplikacja adresów: dwa urządzenia mogą przypadkowo otrzymać ten sam adres IP, co powoduje konflikt i awarię sieci.
  • Brak skalowalności: w sieci z setkami komputerów ręczne konfigurowanie każdego z nich jest niepraktyczne i czasochłonne.
  • Trudności w zarządzaniu zmianami: jeśli zmieniamy adresację sieci (np. nowy zakres IP), musimy ręcznie zaktualizować każde urządzenie.

Rozwiązaniem tych problemów jest DHCP – dynamiczna konfiguracja hostów.

Ręczne przypisywanie adresów IP każdemu urządzeniu w sieci o znaczącej liczbie hostów jest podatne na błędy konfiguracji, takie jak literówki w adresie, nieprawidłowa maska podsieci czy pomylenie adresu bramy domyślnej. Konsekwencją może być nie tylko brak łączności pojedynczego urządzenia, ale także konflikt adresów (IP address conflict), gdy dwa hosty otrzymają ten sam adres IP — wówczas jeden z nich lub oba tracą łączność, a diagnostyka takiego problemu w sieci z setkami stacji roboczych bywa czasochłonna.

Brak scentralizowanego zarządzania adresacją uniemożliwia również łatwe skalowanie sieci. Gdy administrator musi zmienić schemat adresacji (np. przejść do innej podsieci), musi ręcznie przekonfigurować każde urządzenie, co jest praktycznie nierealne w sieci powyżej kilkudziesięciu węzłów. Problemy te pogłębiają się w środowiskach z urządzeniami mobilnymi, które często zmieniają punkt przyłączenia do sieci — ręczna konfiguracja IP dla każdego nowego połączenia jest nieakceptowalna z punktu widzenia wygody użytkownika i czasu pracy działu IT.

32/47
DHCP: dynamiczne przydzielanie konfiguracji

DHCP (Dynamic Host Configuration Protocol) to protokół, który automatycznie przydziela hostom parametry konfiguracji IP. Gdy komputer z włączoną opcją DHCP łączy się z siecią, wysyła zapytanie, a serwer DHCP (często wbudowany w router) udziela mu odpowiedzi z kompletnym kwartetem konfiguracyjnym: adresem IP, maską podsieci, bramą domyślną i adresem DNS. Adresy IP są dzierżawione na określony czas (lease time) – po jego upływie host musi odnowić dzierżawę. Dzięki DHCP administracja siecią jest znacznie prostsza, a konflikty adresów IP są praktycznie wyeliminowane. DHCP działa na porcie UDP 67 (serwer) i 68 (klient).

Dynamic Host Configuration Protocol (DHCP) automatyzuje proces przydzielania adresów IP i innych parametrów konfiguracji sieciowej. Serwer DHCP przechowuje pulę adresów (scope) i na żądanie klienta przydziela mu adres IP na określony czas (lease time), po którym adres może zostać odnowiony lub zwrócony do puli. Oprócz adresu IP klient otrzymuje także adres bramy domyślnej, adres serwera DNS oraz maskę podsieci, co całkowicie eliminuje potrzebę ręcznej konfiguracji na stacji roboczej.

Protokół DHCP opiera się na transporcie UDP i wykorzystuje port 67 dla serwera oraz port 68 dla klienta. Komunikacja między klientem a serwerem może odbywać się w ramach jednej podsieci (przez rozgłoszenie warstwy drugiej) lub za pośrednictwem agenta przekazującego (DHCP relay agent), który pośredniczy między klientem a serwerem znajdującym się w innej sieci VLAN. Czas dzierżawy (lease time) dobiera się w zależności od charakteru sieci — krótki (np. 1 godzina) w sieciach z dużą rotacją urządzeń (hotspoty, Wi-Fi publiczne), dłuższy (24–48 godzin) w sieciach stałych.

33/47
Cykl życia DHCP: proces DORA

Proces przydzielania adresu IP przez DHCP składa się z czterech kroków, które w branży określa się akronimem DORA (Discover, Offer, Request, Acknowledgment).

  1. Discover (Odkrycie): klient wysyła rozgłoszeniowy pakiet DHCPDISCOVER w poszukiwaniu serwera DHCP. Ponieważ nie ma jeszcze adresu IP, źródłowy adres IP to 0.0.0.0.
  2. Offer (Oferta): serwer DHCP odbiera Discover i odpowiada pakietem DHCPOFFER (również broadcast), oferując klientowi konkretny adres IP oraz pozostałe parametry.
  3. Request (Żądanie): klient wybiera ofertę (zwykle pierwszą) i wysyła DHCPREQUEST, potwierdzając chęć otrzymania oferowanego adresu.
  4. Acknowledgment (Potwierdzenie): serwer potwierdza przydzielenie adresu pakietem DHCPACK. Klient może teraz skonfigurować swój interfejs sieciowy.

Cały proces trwa zwykle ułamki sekundy i jest całkowicie niewidoczny dla użytkownika.

Proces uzyskania adresu IP przez klienta DHCP składa się z czterech etapów, znanych pod akronimem DORA: Discover, Offer, Request, Acknowledgment. W pierwszej fazie (Discover) klient, który nie ma adresu IP, wysyła komunikat rozgłoszeniowy z adresem źródłowym 0.0.0.0 i docelowym 255.255.255.255, zawierający identyfikator transakcji (XID). Serwer DHCP odbiera to żądanie i w fazie Offer odpowiada komunikatem zawierającym proponowany adres IP, czas dzierżawy oraz parametry konfiguracyjne — oferta jest wstępnie zarezerwowana, ale jeszcze nie przypisana na stałe.

W trzeciej fazie (Request) klient odsyła do serwera komunikat z potwierdzeniem wyboru oferty (w przypadku wielu serwerów klient wybiera jeden). Serwer kończy proces fazą Acknowledgment, w której potwierdza przypisanie adresu, finalizuje dzierżawę i rejestruje mapowanie w swojej bazie. Po pomyślnym zakończeniu DORA klient konfiguruje interfejs sieciowy otrzymanymi parametrami. W przypadku wygaśnięcia połowy czasu dzierżawy klient próbuje odnowić dzierżawę (DHCPREQUEST unicastem), co pozwala zachować ten sam adres IP bez przerywania połączeń sieciowych.

34/47
Router jako serwer DHCP (CLI)

W sieciach małych i średnich router często pełni również funkcję serwera DHCP. W systemie Cisco IOS konfiguracja serwera DHCP jest prosta i sprowadza się do kilku komend w trybie konfiguracyjnym globalnym. Najpierw tworzymy pulę DHCP za pomocą komendy ip dhcp pool NAZWA_PULI. Następnie definiujemy sieć i maskę, bramę domyślną oraz serwer DNS. Możemy również wykluczyć adresy statyczne (np. dla serwerów) z zakresu DHCP. Przykład: ip dhcp excluded-address 192.168.1.1 192.168.1.10, a następnie w puli: network 192.168.1.0 255.255.255.0, default-router 192.168.1.1, dns-server 8.8.8.8. Router przypisze adresy z zakresu od .11 do .254.

Po skonfigurowaniu puli DHCP za pomocą polecenia `ip dhcp pool` oraz zdefiniowaniu sieci i bramy domyślnej, administrator musi wykluczyć adresy zastrzeżone dla urządzeń infrastrukturalnych, takich jak routery, przełączniki czy serwery, używając polecenia `ip dhcp excluded-address` w trybie konfiguracji globalnej. Bez tego zabiegu router mógłby przydzielić adres interfejsu bramy innemu hostowi, co nieodwracalnie zerwałoby łączność w podsieci. Opcjonalne parametry, jak adres serwera DNS czy domeny wyszukiwania, przekazywane są w opcjach DHCP 6 i 15.

Warto pamiętać, że Cisco IOS domyślnie wiąże dzierżawę na 24 godziny, co można zmienić komendą `lease`. Kluczową zaletą DHCP na routerze jest scentralizowane zarządzanie przestrzenią adresową w małych i średnich sieciach — administrator nie musi ręcznie konfigurować statycznych adresów na każdym komputerze, a wyłączenie zakresu chroni adresy krytyczne przed przypadkowym przydzieleniem.

35/47
Kombi-urządzenie: domowy router SOHO

Większość urządzeń dostępnych w sklepach dla domu i małego biura (SOHO – Small Office / Home Office) to tak naprawdę kombi-urządzenia, które łączą w sobie funkcje kilku urządzeń sieciowych w jednej obudowie.

  • Router: łączy sieć lokalną z Internetem, wykonuje NAT i routing.
  • Przełącznik (Switch): wbudowany switch Ethernet (zwykle 4 porty) obsługuje ruch L2 w sieci LAN.
  • Access Point (AP): wbudowana karta Wi-Fi działa jako punkt dostępowy dla urządzeń bezprzewodowych.
  • Serwer DHCP: automatycznie przydziela adresy IP urządzeniom w sieci lokalnej.
  • Zapora sieciowa (Firewall): podstawowa ochrona przed nieautoryzowanym dostępem z Internetu.

Te kompaktowe urządzenia są wygodne, ale mają ograniczone możliwości konfiguracyjne i wydajnościowe w porównaniu do sprzętu klasy korporacyjnej.

Kombi-urządzenie SOHO (ang. Small Office / Home Office) łączy w jednej obudowie funkcje routera warstwy 3, przełącznika warstwy 2 (najczęściej 4-portowego), punktu dostępu bezprzewodowego, serwera DHCP oraz sprzętowej zapory sieciowej (NAT/firewall). Dzięki takiej integracji użytkownik domowy otrzymuje pojedyncze urządzenie, które po podłączeniu do łącza ISP i skonfigurowaniu przez kreator WWW natychmiast udostępnia Internet wszystkim urządzeniom w sieci lokalnej.

Z punktu widzenia warstwy 3 najważniejszym elementem takiego urządzenia jest translacja adresów NAT (PAT), która pozwala dzielić jeden publiczny adres IPv4 między wiele prywatnych hostów. Współczesne routery SOHO oferują także zaawansowane funkcje, takie jak QoS priorytetyzujące ruch VoIP czy gry sieciowe, oraz proste listy ACL dla rodzicielskiej kontroli dostępu, choć ich wydajność i niezawodność ustępują dedykowanym urządzeniom klasy korporacyjnej.

36/47
Listy kontroli dostępu: ACL

ACL (Access Control List) to lista reguł (wpisów) skonfigurowana na routerze, która kontroluje, który ruch sieciowy może być przekazywany, a który ma być blokowany. ACL są podstawowym narzędziem bezpieczeństwa na routerach. Działają poprzez analizowanie nagłówków pakietów IP i porównywanie ich z regułami w liście. Każda reguła określa warunki (np. źródłowy adres IP, docelowy adres IP, port TCP/UDP) oraz akcję (permit – zezwól, lub deny – zablokuj). Reguły są przetwarzane sekwencyjnie od góry do dołu. Gdy pakiet pasuje do reguły, odpowiednia akcja jest wykonywana, a dalsze reguły nie są sprawdzane. Jeśli żadna reguła nie pasuje, pakiet jest domyślnie odrzucany (implicit deny).

Lista kontroli dostępu (ACL) to sekwencyjnie przetwarzana lista reguł `permit` (zezwól) lub `deny` (odrzuć), którą stosuje się na interfejsie routera do filtrowania ruchu przychodzącego lub wychodzącego. Każda reguła jest sprawdzana po kolei; po pierwszym dopasowaniu router natychmiast wykonuje daną akcję i pomija dalsze wpisy, co oznacza, że kolejność reguł ma kluczowe znaczenie dla poprawności filtrowania.

Na końcu każdej listy ACL domyślnie istnieje niejawna reguła `deny any` (ang. implicit deny), która odrzuca cały ruch niespełniający żadnej z jawnie zdefiniowanych reguł. Dlatego administrator musi zawsze pamiętać o dodaniu odpowiedniej reguły zezwalającej na ruch zarządczy (np. SSH) przed zastosowaniem ACL na interfejsie — w przeciwnym razie niejawna odmowa natychmiast odetnie dostęp do routera.

37/47
ACL standardowe i rozszerzone

W systemie Cisco IOS wyróżniamy dwa podstawowe typy list ACL: standardowe i rozszerzone. ACL standardowe (numery 1-99, 1300-1999) filtrują tylko na podstawie źródłowego adresu IP. Są prostsze, ale mniej precyzyjne. ACL rozszerzone (numery 100-199, 2000-2699) filtrują na podstawie źródłowego i docelowego adresu IP, protokołu (TCP, UDP, ICMP) oraz portów. Są bardziej elastyczne i pozwalają na precyzyjną kontrolę ruchu. Przykład ACL rozszerzonej blokującej ruch HTTP z sieci 192.168.1.0/24 do serwera 10.0.0.1: access-list 100 deny tcp 192.168.1.0 0.0.0.255 host 10.0.0.1 eq 80. ACL stosuje się na interfejsie za pomocą komendy ip access-group w odpowiednim kierunku (in lub out).

Standardowa ACL (numery 1–99 oraz 1300–1999) filtruje wyłącznie na podstawie źródłowego adresu IP, co czyni ją prostą, ale mało precyzyjną — nie rozróżnia przeznaczenia, protokołu ani portu warstwy transportowej. Z tego powodu standardowe ACL stosuje się najczęściej jak najbliżej miejsca docelowego ruchu, ponieważ nie są w stanie odróżnić np. ruchu WWW od poczty elektronicznej.

Rozszerzona ACL (numery 100–199 oraz 2000–2699) pozwala natomiast określić protokół (TCP, UDP, ICMP), źródłowy i docelowy adres IP oraz numery portów, co daje możliwość precyzyjnego blokowania tylko wybranych usług. Dzięki temu rozszerzone ACL umieszcza się jak najbliżej źródła ruchu, oszczędzając pasmo — przykład to zezwolenie wyłącznie na ruch HTTP do serwera WWW, przy jednoczesnym blokowaniu pozostałych usług na tym samym hoście.

38/47
Protokół ICMP: diagnostyka sieci

ICMP (Internet Control Message Protocol) to protokół pomocniczy warstwy 3, który służy do diagnostyki i raportowania błędów w sieciach IP. Nie służy do przesyłania danych użytkownika, lecz do przesyłania komunikatów kontrolnych między urządzeniami sieciowymi. Routery i hosty używają ICMP do informowania o problemach, takich jak: „cel nieosiągalny" (Destination Unreachable), „przekroczony czas TTL" (Time Exceeded), czy „echo request/reply" (ping). Najbardziej znanym zastosowaniem ICMP jest narzędzie ping, które wysyła pakiety ICMP Echo Request i czeka na odpowiedź Echo Reply, mierząc czas odpowiedzi i sprawdzając dostępność hosta. ICMP nie ma portów TCP/UDP – działa bezpośrednio na IP.

ICMP (Internet Control Message Protocol) jest protokołem pomocniczym warstwy sieciowej, służącym do raportowania błędów i diagnostyki połączeń. Do najważniejszych komunikatów należą: Destination Unreachable (typ 3) informujący, że pakiet nie może dotrzeć do celu z powodu nieosiągalnej sieci, hosta lub portu, Time Exceeded (typ 11) wysyłany, gdy czas życia pakietu (TTL) wygasł, oraz Echo Request (typ 8) i Echo Reply (typ 0) używane w narzędziu ping.

Routery generują komunikaty ICMP również w sytuacji, gdy odebrany pakiet jest zbyt duży dla łącza wychodzącego — wtedy wysyłany jest komunikat Fragmentation Needed (kod 4 w typie 3), kluczowy dla mechanizmu PMTUD (Path MTU Discovery). Bez ICMP wiele protokołów warstw wyższych nie mogłoby dostosować rozmiaru pakietów do możliwości łącza, co prowadziłoby do ich cichego odrzucania i problemów z łącznością.

39/47
Diagnoza: ping i traceroute

Ping i traceroute to dwa podstawowe narzędzia diagnostyczne warstwy 3, dostępne w każdym systemie operacyjnym. Ping wysyła pakiety ICMP Echo Request do określonego hosta i czeka na odpowiedź. Wyświetla czas odpowiedzi (RTT – Round Trip Time) w milisekundach oraz ewentualne straty pakietów. Pozwala szybko sprawdzić, czy host jest osiągalny i jakie są opóźnienia. Traceroute (Windows: tracert, Linux: traceroute) pokazuje pełną ścieżkę, jaką pakiety pokonują od źródła do celu. Wykorzystuje pole TTL (Time To Live) w nagłówku IP – wysyła pakiety z TTL=1, TTL=2 itd., a kolejne routery na trasie odsyłają komunikat ICMP Time Exceeded, ujawniając tym samym swój adres IP. Traceroute jest nieoceniony przy lokalizacji problemów sieciowych.

Narzędzie ping wysyła pakiety ICMP Echo Request do hosta docelowego i mierzy czas odpowiedzi (RTT – Round Trip Time), informując o liczbie utraconych pakietów, co pozwala szybko ocenić dostępność urządzenia oraz jakość łącza. Stabilny czas odpowiedzi rzędu kilku milisekund w sieci lokalnej świadczy o sprawnym okablowaniu i przełącznikach, natomiast wzrost RTT lub utrata pakietów mogą wskazywać na przeciążenie łącza lub uszkodzenie fizyczne.

Narzędzie traceroute wykorzystuje pole TTL (Time to Live) w nagłówku IP do śledzenia trasy pakietu: wysyła kolejne datagramy z TTL rosnącym od 1, a każdy router, który zmniejszy TTL do zera, odsyła komunikat ICMP Time Exceeded. W efekcie otrzymujemy listę adresów IP wszystkich routerów pośrednich wraz z czasem odpowiedzi, co jest nieocenione przy lokalizacji wąskich gardeł lub asymetrii ścieżek w rozległych sieciach ISP.

40/47
Dlaczego wprowadzamy IPv6?

Podstawowym powodem wprowadzenia IPv6 (Internet Protocol version 6) jest wyczerpanie puli adresów IPv4. IPv6 używa 128-bitowych adresów, co daje astronomiczną liczbę około 340 undecylionów adresów (2^128). To wystarczy, aby przypisać adres IP do każdego atomu na powierzchni Ziemi wielokrotnie. Brak adresów IPv4 wymusił stosowanie NAT, który komplikuje architekturę sieci i utrudnia komunikację typu peer-to-peer. IPv6 przywraca model komunikacji end-to-end, w którym każde urządzenie ma swój własny, globalnie unikalny adres publiczny. Dodatkowo IPv6 upraszcza nagłówek pakietu, co przyspiesza jego obsługę przez routery. Wprowadzenie IPv6 jest procesem stopniowym – obecnie większość ruchu internetowego wciąż korzysta z IPv4.

Podstawowym powodem wprowadzenia IPv6 było wyczerpanie puli adresów IPv4 — w lutym 2011 roku IANA rozdała ostatnie bloki adresów, a regionalne rejestry (RIPE, ARIN) wyczerpały swoje zapasy w kolejnych latach. IPv6 stosuje 128-bitowy adres, co daje około 3,4×10^38 możliwych adresów, czyli ponad 665 biliardów adresów na każdy milimetr kwadratowy powierzchni Ziemi, całkowicie eliminując problem niedoboru.

IPv4 opierał się na modelu end-to-end, który został naruszony przez powszechne stosowanie NAT — translacja adresów łamie zasadę przejrzystej komunikacji między hostami. IPv6 przywraca ten model, zapewniając każdemu urządzeniu globalnie unikalny adres publiczny, co upraszcza aplikacje peer-to-peer, VoIP i gry sieciowe oraz eliminuje konieczność stosowania przekierowywania portów w bramach domowych.

41/47
Zapis adresu IPv6

Adres IPv6 ma 128 bitów i zapisywany jest w systemie szesnastkowym, podzielony na 8 grup po 16 bitów, oddzielonych dwukropkami. Oto przykładowy pełny adres IPv6:

2001:0db8:0000:0000:0000:8a2e:0370:7334

Zapis można uprościć na dwa sposoby. Po pierwsze, można pominąć wiodące zera w każdej grupie: 2001:db8:0:0:0:8a2e:370:7334. Po drugie, można zastąpić jeden ciąg kolejnych grup zer symbolem podwójnego dwukropka (::), ale można go użyć tylko raz w adresie: 2001:db8::8a2e:370:7334. Prefiks sieci w IPv6 zapisuje się podobnie jak CIDR, np. /64 oznacza, że pierwsze 64 bity to adres sieci, a pozostałe 64 bity to adres interfejsu. Standardowa sieć LAN IPv6 ma zawsze prefiks /64.

Adres IPv6 zapisuje się jako osiem 16-bitowych grup w zapisie szesnastkowym, oddzielonych dwukropkami, np. 2001:0db8:85a3:0000:0000:0000:0042:8329. Aby skrócić zapis, można pominąć wiodące zera w każdej grupie oraz zastąpić najdłuższy ciąg grup zerowych podwójnym dwukropkiem (::), co daje formę 2001:db8:85a3::42:8329 — skrócenie stosuje się tylko raz, aby uniknąć niejednoznaczności.

Standardowym prefiksem sieci lokalnej w IPv6 jest /64, co oznacza, że pierwsze 64 bity stanowią prefiks sieciowy, a pozostałe 64 bity identyfikują interfejs. Taka długość prefiksu jest wymagana przez mechanizm SLAAC do automatycznej konfiguracji adresów i pozostawia ogromną przestrzeń dla identyfikatorów interfejsów — wystarczającą, by każdy host mógł generować wiele adresów jednocześnie (prywatne, publiczne, tymczasowe).

42/47
Zalety IPv6: nie tylko więcej adresów

IPv6 to nie tylko większa pula adresów – wprowadza szereg istotnych ulepszeń w porównaniu do IPv4.

  • Brak NAT: każde urządzenie ma globalnie unikalny adres, co upraszcza komunikację i aplikacje sieciowe.
  • Autokonfiguracja (SLAAC): urządzenia mogą automatycznie skonfigurować swój adres IPv6 bez potrzeby serwera DHCP (Stateless Address Autoconfiguration).
  • Wbudowane IPsec: IPv6 został zaprojektowany z myślą o bezpieczeństwie – IPsec jest integralną częścią protokołu.
  • Efektywniejszy routing: uproszczony nagłówek pakietu przyspiesza jego obsługę przez routery. Brak sumy kontrolnej w nagłówku (jest w warstwie wyższej).
  • Brak rozgłaszania (broadcast): zamiast broadcastu IPv6 używa multicastu i anycastu, co zmniejsza obciążenie sieci.

IPv6 wprowadza mechanizm SLAAC (Stateless Address Autoconfiguration), który pozwala hostowi automatycznie skonfigurować adres na podstawie prefiksu rozgłaszanego przez router w pakietach Router Advertisement — bez potrzeby centralnego serwera DHCP. Dzięki SLAAC każde urządzenie samo generuje swój identyfikator interfejsu (np. metodą EUI-64 lub losowo) i weryfikuje jego unikalność za pomocą ND (Neighbor Discovery), eliminując ręczne konfiguracje w sieciach dowolnej wielkości.

IPv6 natywnie wspiera IPsec (Authentication Header i Encapsulating Security Payload), co zapewnia szyfrowanie i uwierzytelnianie na poziomie warstwy sieciowej bez dodatkowych nakładek. Ponadto IPv6 całkowicie rezygnuje z rozgłaszania (broadcastu), zastępując go transmisją grupową (multicast) i unicastem, co znacząco zmniejsza niepotrzebny ruch w sieci i poprawia wydajność routingu w środowiskach operatorskich.

43/47
Podsumowanie funkcji routera

Router to centralne urządzenie warstwy 3, które pełni wiele kluczowych funkcji w sieci. Poniżej zestawienie najważniejszych z nich:

  • Routing: przekazywanie pakietów między sieciami na podstawie tablicy routingu.
  • NAT/PAT: translacja adresów prywatnych na publiczny adres IP.
  • DHCP: automatyczne przydzielanie konfiguracji IP urządzeniom w sieci LAN.
  • ACL: filtrowanie ruchu sieciowego na podstawie reguł bezpieczeństwa.
  • Firewall: ochrona przed nieautoryzowanym dostępem z zewnątrz.
  • VPN: tworzenie bezpiecznych tuneli sieciowych przez Internet.
  • QoS: priorytetyzacja ruchu sieciowego dla ważnych aplikacji.
  • Diagnostyka: obsługa protokołów ICMP (ping, traceroute) do monitorowania sieci.

Router jako urządzenie warstwy 3 realizuje szereg kluczowych funkcji sieciowych: trasowanie pakietów między podsieciami na podstawie tablicy routingu, translację adresów NAT umożliwiającą współdzielenie publicznych adresów IPv4, serwer DHCP do automatycznego przydzielania konfiguracji IP oraz listy ACL do filtrowania ruchu według zdefiniowanych reguł bezpieczeństwa.

Nowoczesne routery rozszerzają swój zakres o zaporę ogniową (stateful firewall) inspekcyjną na poziomie sesji, tunelowanie VPN (IPsec, OpenVPN, WireGuard) dla bezpiecznej komunikacji przez sieć publiczną oraz mechanizmy QoS (Quality of Service) gwarantujące odpowiednie pasmo dla krytycznych aplikacji, takich jak telemedycyna czy transmisje wideo w czasie rzeczywistym. Każda z tych funkcji może być konfigurowana zarówno z linii poleceń (CLI), jak i przez graficzny interfejs zarządzania.

44/47
Warstwa 3 jako spoiwo Internetu

Warstwa sieciowa jest prawdziwym spoiwem globalnego Internetu. To właśnie na tym poziomie różnorodne sieci LAN (Ethernet, Wi-Fi, światłowody) łączą się w jedną, spójną całość. Routery na całym świecie, połączone w ogromną sieć wzajemnych połączeń, tworzą szkielet Internetu. Bez warstwy 3 każda sieć LAN byłaby izolowaną wyspą – nie moglibyśmy wysłać e-maila, obejrzeć filmu na YouTube ani wyszukać informacji w Google. Adresacja IP i routing to mechanizmy, które sprawiają, że Internet jest skalowalny, elastyczny i odporny na awarie. Zrozumienie warstwy 3 jest kluczowe dla każdego administratora sieci i inżyniera IT, ponieważ to tutaj podejmowane są najważniejsze decyzje dotyczące przepływu danych.

Warstwa sieciowa stanowi spoiwo całego Internetu — to właśnie adresacja IP i routing umożliwiają komunikację między milionami autonomicznych sieci (AS) zarządzanych przez różnych operatorów na całym świecie. Bez jednolitego protokołu warstwy 3, którym dziś jest IP (IPv4 i IPv6), każda sieć LAN pozostałaby izolowaną wyspą, a globalna łączność na skalę planety nie byłaby możliwa.

Kluczowym osiągnięciem projektowym jest decyzyjność warstwy 3: router podejmuje autonomiczne decyzje o przekazywaniu pakietu, kierując się wyłącznie adresem docelowym i zawartością tablicy routingu, bez znajomości aplikacji czy danych użytkownika. Ta bezstanowość i prostota pozwala skalować Internet do miliardów urządzeń, a protokoły routingu dynamicznego, takie jak BGP, zapewniają automatyczne dostosowywanie tras do zmian topologii w skali globalnej.

45/47
Praktyczna diagnostyka L3: Checklist

Gdy napotkasz problem sieciowy na poziomie warstwy 3, oto praktyczna lista kontrolna (checklist) kroków diagnostycznych, które warto wykonać:

  1. Sprawdź konfigurację IP hosta: ipconfig /all (Windows) lub ip addr (Linux). Czy host ma adres IP, maskę, bramę i DNS?
  2. Przetestuj komunikację z bramą domyślną: ping 192.168.1.1 (lub adres swojej bramy). Jeśli brak odpowiedzi, problem jest w sieci LAN.
  3. Przetestuj komunikację z zewnętrznym adresem IP: ping 8.8.8.8. Jeśli działa, a ping do nazwy domenowej nie – problem jest z DNS.
  4. Wykonaj traceroute do celu: tracert 8.8.8.8 (Windows) lub traceroute 8.8.8.8 (Linux), aby zobaczyć, gdzie pakiet się zatrzymuje.
  5. Sprawdź tablicę routingu: route print (Windows) lub ip route (Linux). Czy istnieje trasa domyślna?
  6. Sprawdź tablicę ARP: arp -a. Czy adres MAC bramy domyślnej jest poprawny (nie jest niekompletny)?

Podstawowa diagnostyka warstwy 3 rozpoczyna się od sprawdzenia konfiguracji IP hosta za pomocą polecenia `ipconfig` (Windows) lub `ip addr` (Linux) — należy zweryfikować adres IP, maskę podsieci oraz bramę domyślną. Następnie wykonuje się ping do bramy domyślnej, aby potwierdzić łączność w sieci lokalnej, a później ping do adresu publicznego, np. 8.8.8.8, co weryfikuje działanie routingu i NAT.

W przypadku problemów z łącznością należy uruchomić traceroute do docelowego hosta, co wskaże, na którym przeskoku następuje przerwanie trasy. Wgląd w lokalną tablicę routingu (`route print` lub `ip route`) pozwala sprawdzić, czy istnieje domyślna trasa (0.0.0.0/0), a polecenie `arp -a` ukazuje mapowanie adresów IP na adresy MAC w sieci lokalnej, co pomaga wykryć konflikty adresów lub brak odpowiedzi protokołu ARP.

46/47
Ewolucja warstwy sieciowej

Warstwa sieciowa przeszła długą drogę ewolucji od czasów pierwszych sieci ARPANET. W początkowych latach (lata 80.) stosowano protokół NCP (Network Control Protocol), który został zastąpiony przez IP w 1983 roku – to wydarzenie jest uznawane za narodziny nowożytnego Internetu. W kolejnych dekadach adresacja IPv4 ewoluowała od sztywnych klas do elastycznego CIDR. Wyczerpanie adresów IPv4 wymusiło powszechne stosowanie NAT, który stał się tymczasowym rozwiązaniem problemu braku adresów. Równolegle trwały prace nad IPv6 – protokół ten został ustandaryzowany w 1998 roku (RFC 2460), ale jego globalna adopcja postępuje wciąż wolniej, niż oczekiwano. Dziś obserwujemy stopniowe przechodzenie na IPv6, zwłaszcza w sieciach operatorów komórkowych i dużych dostawców Internetu.

Protokół IP, który dziś stanowi fundament Internetu, został wprowadzony 1 stycznia 1983 roku podczas tzw. Flag Day, kiedy ARPANET całkowicie przesiadł się z protokołu NCP na pakietową rodzinę TCP/IP. W latach 90. wprowadzono bezklasowy routing CIDR (Classless Inter-Domain Routing), który zastąpił sztywny podział na klasy A, B, C, umożliwiając elastyczne dzielenie przestrzeni adresowej i spowalniając wyczerpywanie adresów.

Kolejną rewolucją było powszechne zastosowanie NAT (Network Address Translation) w połowie lat 90., które tymczasowo przedłużyło żywotność IPv4, ale wprowadziło komplikacje w komunikacji end-to-end. Obecnie trwa stopniowe wdrażanie IPv6 — według danych Google udział IPv6 w ruchu globalnym przekracza 45%, a w sieciach operatorów mobilnych sięga nawet 70%, co świadczy o nieuchronnej, choć rozłożonej w czasie, ewolucji warstwy sieciowej.

47/47
Podsumowanie części 4

Najważniejsze punkty:

  • Warstwa 3 (sieciowa) odpowiada za routing i adresację logiczną (IP) – łączy różne sieci LAN w jedną globalną sieć.
  • Podstawowym urządzeniem L3 jest router, który podejmuje decyzje na podstawie tablicy routingu.
  • Adres IPv4 składa się z 32 bitów, zapisywanych w notacji dziesiętnej z kropkami. Maska podsieci oddziela część sieciową od hosta.
  • Routing może być statyczny (ręczna konfiguracja) lub dynamiczny (automatyczne protokoły, jak OSPF, EIGRP, BGP).
  • NAT/PAT pozwala wielu urządzeniom w sieci prywatnej współdzielić jeden publiczny adres IP.
  • ARP mapsuje adresy IP na adresy MAC, umożliwiając enkapsulację pakietów w ramki Ethernet.
  • DHCP automatyzuje przydzielanie konfiguracji IP hostom (proces DORA).
  • Narzędzia diagnostyczne: ping (ICMP) i traceroute służą do sprawdzania osiągalności i śledzenia ścieżki pakietów.
  • IPv6 rozwiązuje problem wyczerpania adresów IPv4, oferując 128-bitowe adresy i dodatkowe usprawnienia.

Dziękuję za uwagę. Na następnym wykładzie omówimy warstwy wyższe modelu ISO/OSI – transportową, sesji, prezentacji i aplikacji.

Warstwa sieciowa modelu OSI jest odpowiedzialna za adresację logiczną, trasowanie pakietów między różnymi sieciami oraz fragmentację datagramów. W ramach części 4 omówiliśmy budowę i klasy adresów IPv4, mechanizm maski podsieci i VLSM, protokół ARP, zasadę działania routerów oraz tablic routingu, a także protokoły DHCP i NAT umożliwiające automatyzację konfiguracji i współdzielenie adresów.

Następnie szczegółowo przeanalizowaliśmy listy kontroli dostępu ACL w wersji standardowej i rozszerzonej, protokół ICMP oraz narzędzia diagnostyczne ping i traceroute. Część poświęconą zakończyliśmy wprowadzeniem do IPv6 — jego budową adresu, zaletami (SLAAC, IPsec, brak NAT) oraz perspektywami adopcji — co stanowi naturalny kierunek rozwoju warstwy sieciowej w dobie wyczerpania adresów IPv4.