Najprostszą formą routingu są trasy do sieci, które router „widzi" bezpośrednio na swoich portach. Gdy tylko podłączymy kabel i poprawnie skonfigurujemy adres IP na interfejsie, urządzenie automatycznie dodaje wpis oznaczony literą C (Connected) do swojej tablicy.
Takie połączenia są uznawane za najbardziej wiarygodne, ponieważ router nie potrzebuje pośredników, aby wysłać do nich dane. Ich metryka (czyli koszt dotarcia) wynosi zawsze 0. To fundament, na którym budujemy całą resztę — bez poprawnie działających sieci bezpośrednich żaden inny protokół routingu nie będzie w stanie nawiązać połączenia ze światem.
Routing statyczny to metoda, w której administrator osobiście wskazuje routerowi drogę do odległych sieci. Zamiast liczyć na automatykę, ręcznie wpisujemy każdą trasę, co daje nam pełną kontrolę nad tym, którędy płyną dane firmowe.
Wpisy te są oznaczone w tablicy literą S (Static). Ich główną cechą jest „upór" — raz wpisana trasa nie zniknie sama, dopóki administrator jej nie usunie. Jest to idealne rozwiązanie do małych oddziałów firm, gdzie jest tylko jedno wyjście do Internetu, lub do stabilnych połączeń między dwoma biurami, które nigdy się nie zmieniają.
Trasy statyczne mają dwie ogromne zalety: są niezwykle bezpieczne i nie obciążają sprzętu. Ponieważ routery nie muszą „rozmawiać" ze sobą, aby wymieniać informacje o trasach, nikt z zewnątrz nie może podesłać nam fałszywych danych o topologii sieci. Oszczędzamy też procesor i pamięć routera, co pozwala na stabilniejszą pracę starszych urządzeń.
Głównym minusem jest brak odporności na awarie. Jeśli kabel na trasie statycznej zostanie przecięty, router nie będzie wiedział, jak go ominąć, dopóki człowiek nie zmieni konfiguracji. Dlatego trasy statyczne stosujemy tam, gdzie topologia jest prosta, a każda zmiana jest rzadka i planowana z dużym wyprzedzeniem.
Konfiguracja trasy statycznej (np. w systemach Cisco) sprowadza się do jednej, logicznej linii poleceń. Składnia wygląda następująco: ip route [cel] [maska] [następny-krok].
Pole „cel" i „maska" mówią routerowi, o jakiej odległej sieci mowa. Parametr „następny-krok" (Next-Hop) to adres IP sąsiada, do którego należy „kopnąć" pakiet, aby przybliżył się do celu. Można też zamiennie podać nazwę własnego portu (np. GigabitEthernet0/0), co informuje router: „po prostu wyrzuć pakiet tym portem, a on już trafi tam, gdzie trzeba".
Adres Next-Hop (następny skok) to adres IP routera-sąsiada, który znajduje się o jeden krok bliżej celu. To fundamentalna zasada działania Internetu: żaden router nie musi znać całej drogi od Polski do USA. Wystarczy, że wie, komu następnemu przekazać „pałeczkę".
Dzięki temu tablice routingu pozostają małe i czytelne. Każde urządzenie dba tylko o to, aby pakiet wyszedł poprawnym wyjściem w stronę właściwego sąsiada. Jeśli każdy uczestnik tej sztafety poprawnie skonfiguruje swój Next-Hop, dane bezbłędnie dotrą do odbiorcy na drugim końcu świata.
Standardowa trasa statyczna służy do połączenia dwóch konkretnych miejsc. Wyobraźmy sobie, że router w biurze w Łodzi musi wiedzieć, jak wysłać pakiety do serwera w biurze w Warszawie. Administrator wpisuje dokładną trasę tylko dla tego jednego połączenia.
Jest to najbezpieczniejszy sposób łączenia oddziałów firm, określany często jako Stub Routing. Ponieważ trasa jest sztywna i bardzo konkretna, mamy pewność, że ruch do warszawskiego serwera nie „zbłądzi" i nie zostanie przesłany przez przypadkowe, mniej bezpieczne łącza u operatora.
Przykład konfiguracji w systemie Cisco IOS: ip route 10.10.20.0 255.255.255.0 172.16.1.1.
Trasa domyślna (Default Route) to ratunek w sytuacjach, gdy router nie ma zielonego pojęcia, gdzie wysłać pakiet. Zapisujemy ją za pomocą samych zer: 0.0.0.0 0.0.0.0, co oznacza: „jeśli adres docelowy nie pasuje do żadnej innej trasy, wyślij go tutaj".
To właśnie trasa domyślna pozwala nam przeglądać Internet. Twój domowy router nie spamięta adresów wszystkich stron na świecie — ma po prostu jeden wpis, który mówi: „wszystko, czego nie znam lokalnie, wysyłaj do mojego dostawcy Internetu (ISP)". Jest to tzw. Gateway of Last Resort (Brama Ostatniej Szansy).
Stosowanie tras domyślnych to potężne uproszczenie w projektowaniu sieci. Zamiast uczyć każdy router w firmie drogi do tysięcy zewnętrznych serwisów, wystarczy, że wszystkie urządzenia będą wysyłać nieznany ruch „w górę" — do głównego routera brzegowego (Edge Router), który jako jedyny ma pełną wiedzę o połączeniach zewnętrznych.
Taka hierarchia sprawia, że sieć działa stabilniej, a tablice routingu na mniejszych przełącznikach pozostają puste i szybkie. Trasa domyślna to „najmniej precyzyjna" trasa, więc zgodnie z zasadą Longest Prefix Match, zostanie wybrana tylko wtedy, gdy naprawdę nie ma lepszej alternatywy.
Pływająca trasa statyczna (Floating Static Route) to nasza polisa ubezpieczeniowa na wypadek awarii kabla. Polega na wpisaniu dwóch tras do tego samego celu: jednej przez szybki światłowód, a drugiej przez wolniejsze łącze zapasowe (np. LTE).
Trik polega na ustawieniu wyższego Dystansu Administracyjnego (AD) dla łącza zapasowego. W rezultacie router „widzi" tę trasę w pamięci, ale dopóki działa szybki światłowód, trasa zapasowa nie pojawia się w tablicy (pływa pod powierzchnią). Gdy tylko główne łącze padnie, trasa zapasowa natychmiast „wypływa" i przejmuje ruch bez przerywania pracy firmy.
Stary standard IPv4 pozwalał na stworzenie około 4 miliardów adresów. W latach 80. wydawało się to nieskończonością, ale dziś, gdy lodówki, żarówki i zegarki chcą mieć swój własny adres IP, ta pula po prostu się skończyła. Jesteśmy w fazie krytycznego niedoboru „wolnych numerów".
IPv6 nie jest tylko poprawką — to zupełnie nowy fundament. Oferuje on tak kolosalną liczbę adresów (340 undecylionów), że moglibyśmy nadać unikalny adres każdemu atomowi na powierzchni Ziemi. Oprócz ilości, IPv6 upraszcza nagłówki pakietów i eliminuje potrzebę stosowania NAT-u, co sprawia, że komunikacja bezpośrednia stanie się znowu prosta i naturalna.
Adresy IPv6 mają 128 bitów długości, co zapisujemy w ośmiu blokach (heks-tetach) oddzielonych dwukropkami. Ponieważ byłoby to za długie dla systemu dziesiętnego, używamy zapisu szesnastkowego (0-9 oraz A-F).
Przykładowy adres wygląda tak: 2001:0db8:85a3:0000:0000:8a2e:0370:7334. Choć na pierwszy rzut oka wygląda to groźnie, system ten jest bardzo logiczny. Pierwsza połowa adresu (64 bity) zazwyczaj identyfikuje sieć operatora i firmy, a druga połowa to unikalny numer samego urządzenia, co drastycznie upraszcza przydzielanie adresów w dużych biurach.
Inżynierowie wiedzieli, że nikt nie chce pisać 32 znaków adresu IP, dlatego wprowadzono dwie zasady skracania. Zasada 1: pomijamy wszystkie wiodące zera w blokach (zamiast 0db8 piszemy db8). Zasada 2: jeden ciąg zer (nawet bardzo długi) możemy zastąpić podwójnym dwukropkiem ::.
Dzięki temu adres typu 2001:db8:0000:0000:0000:0000:0000:0001 staje się krótkim i czytelnym 2001:db8::1. Ważne: znaku :: można użyć tylko raz, bo inaczej komputer nie wiedziałby, ile zer „rozpakować" w którym miejscu.
W IPv6 zrezygnowano całkowicie z uciążliwego „rozsyłania do wszystkich" (broadcast). Zamiast tego mamy trzy precyzyjne typy komunikacji. Unicast to klasyczny list do jednej osoby. Multicast to transmisja do grupy zainteresowanych osób (np. tylko dla routerów OSPF).
Najciekawszym nowym graczem jest Anycast. Pozwala on na nadanie tego samego adresu kilku serwerom na świecie (np. serwerom Google). Gdy wpiszesz taki adres, sieć IP automatycznie skieruje Cię do tego urządzenia, które jest fizycznie najbliżej Ciebie. To fundament nowoczesnych, szybkich usług internetowych (CDN).
Adresy Link-Local (zaczynające się od fe80::) to specyfika świata IPv6. Każde urządzenie nadaje go sobie samo, bez pytania nikogo o zgodę. Te adresy nigdy nie wychodzą poza dany kabel (segment sieci), ale są niezbędne do „rozmów technicznych" między sąsiadującymi urządzeniami.
To właśnie przez Link-Local routery wymieniają się informacjami o trasach lub znajdują najbliższą drukarkę. Nawet jeśli router nie ma połączenia ze światem (brakuje mu adresu globalnego), wciąż może zarządzać siecią lokalną właśnie dzięki tym automatycznym adresom, co czyni IPv6 znacznie bardziej odpornym na błędy konfiguracyjne.
W rozwiązywaniu problemów warstwy 3 kierujemy się zasadą „od ogółu do szczegółu". Zaczynamy od prostego polecenia ping, aby sprawdzić, czy cel w ogóle żyje. Jeśli ping zawodzi, wyciągamy cięższe działo: traceroute (lub tracert w Windows).
Traceroute to Rentgen sieci — pokazuje nam każdy router po drodze. Jeśli zobaczysz, że pakiety giną np. na czwartym „skoku", wiesz dokładnie, który administrator musi usiąść do pracy. Zawsze sprawdzaj też tablicę routingu poleceniem show ip route — to tam najczęściej kryje się błąd w postaci literówki w masce lub błędnego adresu bramy.
Zakończyliśmy omawianie fundamentów przesyłania danych. Wiemy już, że adres IP to logiczna tożsamość urządzenia, która pozwala na globalną nawigację. Poznaliśmy magię subnettingu, która porządkuje chaos wewnątrz firm, oraz nauczyliśmy się ręcznie budować drogi dla danych za pomocą tras statycznych.
Zrozumieliśmy też, dlaczego IPv6 jest naszą nieuniknioną przyszłością i jak uproszczono w nim przesyłanie informacji. Ta wiedza pozwala nam przejść do najbardziej fascynującego etapu: routingu dynamicznego, gdzie routery zaczynają ze sobą rozmawiać i same dbać o to, aby sieć nigdy nie przestała działać.
Zasadnicza różnica między routingiem statycznym a dynamicznym to sposób radzenia sobie ze zmianami. W tradycyjnym podejściu (statycznym) to inżynier jest mózgiem sieci — jeśli coś się psuje, musi ręcznie zareagować. W podejściu dynamicznym routery używają specjalnych algorytmów, aby samodzielnie odkrywać topologię i reagować na awarie w ułamku sekundy.
Podczas gdy trasy statyczne są świetne dla małych firm i „końcówek" sieci, routing dynamiczny jest niezbędny wszędzie tam, gdzie mamy wiele połączeń i nie możemy pozwolić sobie na przestoje. Routery dynamiczne nieustannie szepczą do siebie, sprawdzając: „Czy to łącze wciąż działa? Czy znalazłeś jakąś szybszą drogę?".
Protokoły routingu dzielimy na dwie ligi. IGP (Interior Gateway Protocols) to protokoły „domowe" — stosujemy je wewnątrz jednej firmy lub kampusu (np. OSPF czy EIGRP). Ich zadaniem jest jak najszybsze znalezienie wolnej drogi od biurka pracownika do serwera w piwnicy.
EGP (Exterior Gateway Protocols) to protokoły „dyplomatyczne" — służą do łączenia całych sieci operatorów (Systemów Autonomicznych). Najważniejszym i jedynym dziś przedstawicielem tej grupy jest BGP. Można powiedzieć, że IGP dba o porządek wewnątrz budynku, a EGP zarządza ruchem na autostradach między miastami (państwami).
Protokoły IGP mają dwa sposoby działania. Distance Vector (Wektor Odległości, np. RIP) działa na zasadzie plotki: „Sąsiad mi powiedział, że do Google idzie się tędy i jest to 5 klatek stąd". Router wierzy na słowo i przekazuje plotkę dalej. To proste, ale powolne i podatne na pętle.
Link-State (Stan Łącza, np. OSPF) jest znacznie mądrzejszy. Zamiast plotek, każdy router zbiera dokładne dane o każdym kablu i urządzeniu w sieci i buduje sobie własną, kompletną interaktywną mapę (topologię). Dzięki temu, gdy coś się zepsuje, router nie pyta nikogo o zdanie, tylko sam oblicza nową drogę na podstawie posiadanej mapy.
Proces budowania mapy zaczyna się od komunikatów LSA (Link-State Advertisement). Każdy router krzyczy do sąsiadów: „Cześć, nazywam się Router A i mam podłączone dwa kable: jeden do sieci X, drugi do Routera B". Te ogłoszenia są przekazywane dalej („zalewane"), aż każdy router w sieci otrzyma komplet puzzli.
Wszystkie te ogłoszenia trafiają do wspólnej bazy danych LSDB (Link-State Database). Magia polega na tym, że po kilku sekundach każdy router w sieci ma identyczną kopię tej bazy. Od tego momentu każde urządzenie widzi całą sieć tak samo, co eliminuje chaos i sprzeczne informacje o trasach.
Gdy mapa (LSDB) jest już gotowa, router uruchamia algorytm SPF (Shortest Path First), znany matematykom jako algorytm Dijkstry. Działa on jak nawigacja GPS w samochodzie: bierze mapę wszystkich dróg, nakłada na nie ograniczenia prędkości (koszty łącz) i oblicza najszybszą ścieżkę do każdego celu.
Wynikiem jest drzewo najkrótszych ścieżek, gdzie obecny router jest pniem, a wszystkie sieci docelowe to liście. Wyliczone w ten sposób trasy trafiają do tablicy routingu. Co ważne: jeśli jakieś łącze padnie, algorytm odpala się ponownie tylko na dotkniętym obszarze, co sprawia, że OSPF jest niezwykle szybki w naprawianiu błędów.
OSPF to „król" współczesnych sieci lokalnych i korporacyjnych. Jego nazwa „Open" oznacza, że nie należy do żadnej firmy — router Cisco może bez problemu rozmawiać przez OSPF z urządzeniem Juniper czy Mikrotik. Jest to protokół tzw. bezklasowy, co oznacza, że świetnie rozumie nowoczesny podział na podsieci (VLSM/CIDR).
Główne powody, dla których inżynierowie kochają OSPF, to błyskawiczna reakcja na awarie oraz niesamowita skalowalność. Można w nim budować sieci łączące tysiące routerów, a dzięki systemowi obszarów (areas), cała ta struktura pozostanie stabilna i łatwa w zarządzaniu.
OSPF jest jak uniwersalny scyzoryk sieciowca. Można go spotkać wszędzie: od małych serwerowni po ogromne centra danych dostawców usług. Posiada mechanizmy, które pozwalają mu na inteligentne rozkładanie ruchu — jeśli do celu prowadzą dwa identyczne łącza, OSPF wyśle dane obydwoma naraz (Equal-Cost Multi-Path).
Standard ten nieustannie ewoluuje. Mamy wersję OSPFv2 dla klasycznego protokołu IPv4 oraz OSPFv3, który został od podstaw zaprojektowany dla świata IPv6. Pozwala to administratorom stosować te same sprawdzone zasady i narzędzia niezależnie od tego, jakiego rodzaju IP używają w swojej firmie.
Aby OSPF mógł działać, każdy router musi mieć unikalne „imię i nazwisko", czyli Router ID (RID). Jest to 32-bitowa liczba zapisana w formacie adresu IP (np. 1.1.1.1). Służy ona do identyfikacji, kto jest autorem danego ogłoszenia o topologii i pomaga unikać chaosu przy synchronizacji baz danych.
Zasady wyboru RID są ściśle określone: router bierze numer ręcznie wpisany przez administratora. Jeśli go nie ma, wybiera najwyższy adres IP ze swoich wirtualnych portów (loopback), a jeśli i tych brakuje — najwyższy adres z fizycznych portów. Dobrą praktyką jest ręczne nadawanie RID, abyśmy zawsze wiedzieli, który router „mówi" w logach systemowych.
Routery OSPF nie zaczynają od razu przesyłać map sieci — najpierw muszą się oficjalnie „przedstawić" i zaprzyjaźnić. Robią to za pomocą pakietów Hello, wysyłanych co kilka sekund na adres multicastowy. To tak zwane badanie terenu (Neighbor Discovery).
Aby routery zostały sąsiadami (adjacency), muszą się zgadzać w kilku kwestiach: muszą być w tym samym obszarze (area), mieć takie same hasła oraz te same ustawienia czasowe. To mechanizm ochronny — zapobiega on przypadkowemu podłączeniu obcego routera do naszej firmowej struktury i chroni przed błędami w konfiguracji.
Relacja między routerami budowana jest etapami. Zaczynamy od stanu Down (cisza), potem idziemy do Init (usłyszałem sąsiada), aż do 2-Way (widzimy się nawzajem). Na tym etapie routery wiedzą już o swoim istnieniu, ale jeszcze nie znają swoich map sieci.
Kolejne stany (ExStart, Exchange, Loading) to twarda negocjacja: „Co ty masz w swojej bazie? Czego mi brakuje?". Routery wymieniają się streszczeniami danych i dociągają brakujące elementy. Celem jest stan Full — oznacza on pełną symbiozę, w której oba urządzenia mają identyczną wiedzę o świecie i mogą zacząć stabilnie przesyłać ruch użytkowników.
Pakiet Hello pełni dwie funkcje: znajduje nowych sąsiadów oraz pilnuje obecnych. Jeśli router przestanie wysyłać Hello (bo np. ktoś wypiął kabel), sąsiedzi zauważą to po upływie tzw. Dead Interval. Uznają wtedy, że sąsiad „umarł" i natychmiast wyrzucą wszystkie trasy prowadzące przez niego z tablicy routingu.
Ten mechanizm pozwala sieci OSPF na automatyczne leczenie. Jeśli jeden router ulegnie awarii, cała reszta dowie się o tym w ciągu kilku sekund i znajdzie alternatywną drogę, zanim użytkownicy w ogóle zauważą problem z dostępem do aplikacji.
Synchronizacja ogromnych baz danych mogłaby zapchać sieć, dlatego OSPF robi to sprytnie. Zamiast wysyłać od razu tysiące tras, routery przesyłają sobie pakiet DBD (Database Description). To taki „spis treści" ich wiedzy o sieci.
Router odbiera taki spis, sprawdza go ze swoim i mówi: „O, widzę, że znasz drogę do biura w Londynie, której ja nie mam. Prześlij mi szczegóły!". Dzięki temu przesyłamy tylko to, co jest faktycznie potrzebne, oszczędzając czas i pasmo łącz, co jest kluczowe w dużych strukturach międzynarodowych.
Gdy router wykryje luki w swojej wiedzy po przejrzeniu spisu treści (DBD), wysyła LSR (Link-State Request) — konkretną prośbę o dosłanie brakujących detali. W odpowiedzi otrzymuje LSU (Link-State Update). To właśnie te pakiety niosą w sobie „mięso", czyli faktyczne dane o topologii sieci.
Pakiety LSU są najważniejsze w całej pracy OSPF. Są one wysyłane nie tylko przy pierwszym spotkaniu routerów, ale również zawsze wtedy, gdy w sieci coś się zmieni (np. aktywowano nową podsieć WiFi). Dzięki nim informacja o nowym zasobie dociera do każdego zakątka firmy w czasie liczonym w milisekundach.
OSPF nie uznaje zasady „wyślij i zapomnij". Każda ważna informacja o topologii (LSU) musi zostać potwierdzona. Służy do tego krótki pakiet LSAck (Link-State Acknowledgment). To jak wysłanie SMS-a z potwierdzeniem: „Dostałem mapę, dziękuję".
Jeśli nadawca nie otrzyma LSAck w określonym czasie, wyśle informację jeszcze raz. Ten mechanizm gwarantuje, że nawet przy słabym jakościowo łączu, bazy danych wszystkich routerów będą prędzej czy później identyczne. Spójność to w OSPF słowo klucz — bez niej sieć mogłaby wpaść w pętle i przestać działać.
W OSPF nie liczy się liczba routerów po drodze, ale jakość „drogi". Metryką jest Koszt (Cost). Oblicza się go prostym wzorem: dzieli się stałą wartość (referencyjną) przez prędkość łącza. Oznacza to, że im szybszy kabel, tym mniejszy ma koszt, a OSPF zawsze wybiera ścieżkę o najmniejszej sumie kosztów.
To bardzo logiczne: router woli wysłać dane dłuższą drogą przez trzy szybkie światłowody niż krótką drogą przez jeden wolny kabel telefoniczny. Dzięki temu OSPF naturalnie dąży do maksymalnego wykorzystania najszybszej dostępnej infrastruktury w firmie.
Domyślna wartość referencyjna w OSPF to 100 Mb/s. Została ona ustalona w czasach, gdy 100 mega było szczytem technologii. Problem w tym, że przy takich ustawieniach kabel 100 Mb/s, 1 Gb/s i 10 Gb/s dostają taką samą ocenę — koszt 1. Dla routera są więc identyczne.
W nowoczesnych sieciach administrator musi koniecznie zmienić tzw. Reference Bandwidth. Podnosząc tę wartość na wszystkich urządzeniach, przywracamy routerom zdolność rozróżniania między „szybkim" a „superszybkim" łączem, co jest kluczowe dla poprawnego kierowania ruchem w nowoczesnych centrach danych.
W ogromnych sieciach (tysiące routerów) jedna wspólna mapa byłaby za ciężka do przetworzenia. Dlatego OSPF pozwala na podział sieci na obszary (areas). To jak dzielenie państwa na województwa — każdy router musi znać na pamięć tylko mapę swojego województwa. O reszcie kraju wie tylko tyle, w którą stronę jechać.
Podział ten radykalnie przyspiesza pracę routerów — mniejsza mapa to szybsze obliczenia i mniejsze ryzyko, że awaria w jednym biurze spowoduje „przeliczanie wszystkiego" na drugim końcu świata. To fundament budowania sieci o zasięgu globalnym.
W OSPF istnieje jeden specjalny obszar: Area 0, zwany obszarem szkieletowym (backbone). Jest to obowiązkowe centrum dowodzenia. Każdy inny obszar (np. Area 10, Area 20) musi być fizycznie lub logicznie podłączony bezpośrednio do Area 0.
Cały ruch między różnymi obszarami musi przejść przez to „rondo centralne". Taki projekt gwiazdy gwarantuje, że w sieci nigdy nie powstaną pętle routingu międzystrefowego. Area 0 to najpilniej strzeżona i najlepiej zaprojektowana część każdej dużej sieci korporacyjnej.
Wszystkie obszary poza zerowym nazywamy standardowymi. Routery wewnątrz nich żyją w błogiej nieświadomości szczegółów reszty świata — wiedzą wszystko o swoich sąsiadach, ale o innych sieciach dowiadują się od specjalnych wysłanników: routerów ABR (Area Border Router).
ABR to router, który stoi „rozkrokiem" między dwoma obszarami (np. 0 i 10). To on decyduje, jakie informacje o trasach przekazać dalej i dba o to, aby lokalne problemy w Area 10 nie zakłócały spokoju w reszcie firmy. Dzięki ABR cała sieć OSPF staje się modularna, elegancka i niezwykle odporna na błędy.