Podstawy routingu

IP routing
Podstawy routingu:
- Dla prostego połączenia dwóch maszyn Point-Point oraz w przypadku pojedynczej sieci lokalnej, np. w standardzie Ethernet bądź też Token Ring, IP routing sprowadza się do wysłania odpowiedniego datagramu wprost do odbiorcy. W przeciwnym razie host wysyła swoje datagramy do domyślnego routera, który po obróbce przesyła je dalej do odpowiedniego punktu docelowego.
- Prawie każdy system operacyjny (w szczególności systemy wywodzące się od standardu Unix) może zostać skonfigurowny w ten sposób, aby maszyna zachowywała się jak router. Istnieje zasadnicza różnica pomiędzy zwykłym hostem a routerem - host nigdy nie przekazuje dalej datagramów z jednego interfejsu na inny. Dla routera tzw. Forwarding jest podstawowym zadaniem).
- Po otrzymaniu ramki warstwa sieciowa w routerze sprawdza, czy docelowy adres IP datagramu należy do któregoś z adresów przypisanych jej samej, lub też czy nie jest adresem Broadcastowym. W takim przypadku przekazuje ona dane warstwie transportu (w obrębie tej samej maszyny) - protokołowi określonemu w odpowiednim polu datagramu. W przeciwnym przypadku, gdy datagram posiada obcy adres IP:
- Zwykły host odrzuca ramkę.
- Router przekazuje ramkę dalej.
Przekazywanie datagramów podlega tzw. tablicy routingu:
| __tablica routingu__ | ||||
| __adres docelowy__ | __next-hoop router__ | __S/N__ | __N-H/I__ | __interface__ |
| xx:xx:xx:xx:xx:xx xx:xx:xx:xx:xx:xx ... | xx:xx:xx:xx:xx:xx xx:xx:xx:xx:xx:xx ... | 1 / 0 1 / 0 ... | 1 / 0 1 / 0 ... | xxxx xxxx ... |
- Adres docelowy - może być zarówno adresem pojedynczego hosta jak i całej sieci (określa to flaga opisana poniżej). W przypadku indywidualnej stacji część adresu opisująca hosta ma wpisany numer maszyny, sieć natomiast ma ów część wypełnioną zerami.
- Next-hoop router - adres routera następnego etapu/przeskoku znajdującego się w bezpośrednio podłączonej sieci. Zamiast ów adresu może tutaj się znaleĄć adres sieci jednego z interfejsów fizycznych routera (jeżeli dla tego IP datagram może zostać dostarczony wprost do odbiorcy). Next-Hop Router nie jest adresem końcowym, ale już może być w stanie przekazać datagram właściwej stacji. Jeżeli nie - przekazuje datagram następnemu routerowi, itd. aż do adresata.
- S/N (Single/Network) - flaga określająca czy adres docelowy należy do pojedynczego hosta czy też jest adresem sieciowym.
- N-H/I (Next-Hop Router/Interface) - flaga określająca czy adres next-hoop określa router następnego przeskoku czy też może adres sieci dostępnej poprzez interfejs maszyny.
- Interface - określa poprzez jaki interfejs fizyczny ma być dostarczony datagram do danego adresu.
Jak widać po tablicy, warstwa IP tak naprawdę nie zna dokładnej drogi do każdego hosta. Przesyłając datagram do kolejnego routera zakłada, że jest on naprawdę bliżej stacji docelowej i że będzie w stanie dostarczyć datagram bezpośrednio do niej. Specyfika routingu IP pozwala na znaczne zmniejszenie wielkości tabel routingu - ogranicza to zawarte w nich wpisy do kilku tysięcy pozycji zamiast kilku milionów.
Po otrzymaniu datagramu, router wykonuje kolejno czynności:
- Przeszukuje tablicę porównując adres docelowy datagramu z pierwszą kolumną. Jeżeli go odnajdzie, przekazuje ramkę dalej za pomocą odpowiedniego interfejsu (są tutaj ściśle określone wszelkie łącza typu punkt-punkt).
- Przeszukuje tablice porównując cześć sieciową adresu IP datagramu z adresami sieciowymi zawartymi w pierwszej kolumnie. Używa w tym celu maski podsieci (musi wiedzieć ile bitów adresu odpowiada sieci, a ile hostom). Jeżeli odnajdzie właściwą pozycję - puszcza ramkę dalej po odpowiednim interfejsie.
- Ostatecznie szuka w tablicy wpisu domyślnego (Default), po czym przekazuje ramkę do odpowiedniego, przypisanego mu routera.
- Jeżeli żadna z powyższych możliwości nie poskutkuje - datagram jest uznawany za niemożliwy do dostarczenia. Router zwraca wtedy błąd: 'Host/network unreachable'.
Przykład 1:

- Prosty przykład - host 1 w lokalnej sieci 142.25.5.0 chce przesłać datagram IP do hosta znajdującego się w tej samej sieci - 142.25.5.50.
- Kiedy warstwa IP w stacji 1 otrzyma datagram od wyższych warstw, zaczyna przeszukiwać własną tablicę routingu. Dowiaduje się z niej, że stacja nr. 2 znajduje się w tej samej, połączonej bezpośrednio sieci.
- Datagram zostaje przekazany do medium transmisyjnego i dostarczony do stacji nr. 2 jako ramka Ethernetowa. 48-mio bitowego adresu fizycznego stacji nr. 2, host 142.25.5.13 szuka za pomocą protokołu ARP (Address Resolution Protocol).
Przykład 2:

- Bardziej skomplikowana sytuacja - stacja nr. 1 (142.25.5.13) chce połączyć się z hostem ftp.microsoft.com (207.46.133.140).
- Warstwa sieciowa stacji przeszukuje tablice routingu, ale nie znajduje żadnych odpowiadających pytaniu pozycji, wobec czego kieruje datagram do domyślnego routera 142.25.5.10 (poprzez medium Ethernetowe, po uprzednim zapytaniu ARP o adres fizyczny).
- Stacja GT stwierdza, że dany datagram nie jest przeznaczony dla niej - próbuje przekazać go dalej. Przeszukuje więc własną tablicę routingu i również nie znajduje odpowiedniej pozycji hosta/sieci. Analogicznie więc przekazuje datagram do domyślnego dla niej routera którym jest GT2 (142.25.1.2). Używa w tym celu bezpośredniego połączenia modemowego SLIP. Ponieważ stacja GT obsługuje dwa interfejsy sieciowe tworzące osobne podsieci, posiada dwa różne adresy IP.
- Stacja GT2 postępuje identycznie - po przeszukaniu własnej tablicy przekazuje datagram do domyślnego routera - 142.25.1.1, po uprzednim zapytaniu ARP o adres fizyczny.
- Router Gateway będący bramką na świat dla owej sieci postępuje dokładnie tak samo. Wykorzystuje przy tym adres swego domyślnego routera - 142.25.17.6.
- Z przykładu tego wynika jedna bardzo ważna cecha routingu - podczas przekazywania datagramu pomiędzy poszczególnymi routerami Next-Hop nigdy nie zmienia się docelowy adres IP datagramu. Zmieniają sie jedynie adresy i opcje warstw fizycznych używanych do transmisji.
Aby dodawać komentarze musisz być zalogowany!
