Przejdź do głównej zawartości

Linux RHCE - Routing IP oraz tworzenie tras routingu statycznego. Tablice tras.

Routing czyli trasowanie w informatyce oznacza wyznaczanie trasy i wysyłanie nią pakietów danych w sieciach komputerowych. Trasowanie ma na celu możliwie najlepiej optymalnie dostarczyć pakiet do celu. Początkowo jako jedyne kryterium było posiadanie jak najdokładniejszej trasy do celu. Obecnie protokoły trasowania mogą uwzględniać podczas wyboru trasy również takie parametry jak priorytet pakietu, natężenie ruchu w poszczególnych segmentach sieci itp. Jeżeli posiadamy system posiadający dwa lub więcej interfejsów sieciowych należy wybrać którym z nich kierowany będzie ruch i w jaki sposób. Wydając polecenie "route" możemy wyświetlić aktualną trasę routingu oraz zmienić ją jeżeli zachodzi taka potrzeba. 

Wyznaczanie trasy jest procesem kierowania pakietów poprzez labirynt różnych sieci znajdujących się pomiędzy jego źródłem, a miejscem docelowym. W systemach TCP/IP przypomina to pytanie o drogę w nieznanym kraju. Pierwsza napotkana osoba może wskazać Ci drogę do właściwego miasta. Gdy już trafisz do danego miasta, następna osoba będzie w stanie powiedzieć Ci jak dostać się na właściwą ulicę, a jeżeli będziesz już bardzo blisko ktoś wskaże Ci poszukiwany budynek.

Słowo "trasowanie" (ang.routing) powszechnie stosowane jest jako oznaczenie dwóch rzeczy:

  • szukania adresu w tablicy tras, by móc przekazać pakiet do miejsca docelowego
  • tworzenia tablicy tras

TABLICE TRAS (tablice routingu)

Aby zobaczyć tablice tras danej wydajemy polecenie netstat -r. Możemy również dodać przełącznik w postaci netstat -rn co spowoduje pominięcie odpytywania systemu DNS, a wszystkie informacje zostaną przedstawione w postaci numerycznej co na ogół jest bardziej przydatne. 

Więcej informacji na temat polecenia netstat będzie w kolejnych częściach.

Pole Destination zawiera zwykle adres sieci, pole Gateway musi zawierać pełny adres IP lokalnego interfejsu sieciowego lub sąsiadującego hosta; W przypadku jądra systemu linux można tu użyć 0.0.0.0 , aby wywołać bramę domyślną.

Tablice mogą być konfigurowane statycznie, dynamicznie lub przy użyciu połączenia tych dwóch metod. Trasa statyczna to trasa utworzona bezpośrednio przy użyciu polecenie route. Trasy statyczne powinny pozostać w tablicy tras, aż do wyłączenia komputera; Są one najczęściej konfigurowane podczas uruchamiania systemu przez jeden ze skryptów startowych. 

W stabilnej sieci lokalnej trasowanie statyczne jest wydajne, łatwe w zarządzaniu i niezawodne. Rozwiązanie to wymaga od administratora dokładnej znajomości sieci w czasie uruchamiania systemu, a jej topologia nie może się często zmieniać. 

Konfigurowanie tras statycznych

Polecenie route służy do definiowania tras statycznych, jawnych wpisów w tablicy tras, które nigdy się nie zmieniają , nawet po uruchomieniu demona trasującego. Dodając nowy komputer do sieci lokalnej zwykle wystarczy ustawić tylko trasę domyślną. 

Trasowanie odbywa się w warstwie IP. W momencie nadejścia pakietu zmierzającego do jakiegoś innego komputera, jego docelowy adres IP jest porównywany z trasami zapisanymi w tablicy tras jądra. Jeśli adres odpowiada trasie w tabeli, pakiet zostaje przesłany na adres IP następnej bramy powiązanej z tą trasą. 

Podczas przesyłania pakietów mogą wystąpić dwie sytuacje specjalne: 
  • Pierwszy występuje wtedy jeżeli pakiet może być dostarczony do jakiegoś komputera podłączonego bezpośrednio do tej samej sieci . W takiej sytuacji adresem następnej bramy w tabeli tras będzie interfejs jednego z lokalnych hostów, a pakiet trafi bezpośrednio do miejsca przeznaczenia. Ten typ trasy trzeba bezpośrednio samodzielnie wprowadzić do tablicy tras podczas konfigurowania interfejsu stosując polecenie ifconfig.
  • Drugi przypadek występuje wtedy, gdy żadna z tras w tablicy nie odpowiada adresowi docelowemu. W takiej sytuacji wywołana zostaje trasa domyślna ( jeżeli istnieje) , a w przeciwnym wypadku do nadawcy zwrócony zostanie komunikat ICMP mówiący o tym, że dana sieć lub dany host nie jest dostępny ("network unrechable" lub "host unrechable")
Dużo sieci lokalnych posiada tylko jedno wyjście na świat więc potrzebujemy tylko jednej trasy domyślnej wskazującej to wyjście. W sieciach szkieletowych internetu routery nie posiadają tras domyślnych i jeżeli cel nie posiada swojego wpisu w tablicy tras, jest nieosiągalny.

Każde polecenie route dodaje lub usuwa jedną trasę. Jest to jedno z tych poręcznych poleceń uniksowych , które działa we wszystkich systemach ale w każdym z nich ma nieco inną składnię.

Składnia polecenia route : route [opcje]

route - wyświetlanie i manipulacja tabelą routingu IP ( sam program "route" na chwile obecną uważany jest a przestarzały, a jego następcą jest "ip route") 

Opcje : 
    • add - dodanie trasy routingu 
    • del - Usunięcie istniejącej trasy routingu
    • flush - wyczyszczenie wszystkich tymczasowych tras
    • target - docelowa sieć lub host. Podawany jako adres IP lub nazwa sieci
    • -net - celem jest sieć 
    • -host - celem jest host 
Przykłady: 

route add -net 127.0.0.0

Dodanie wpisu loopback z maską 255.0.0.0 oraz powiązanie go z urządzeniem "lo"  ( urządzenie loopback musi być wcześniej ustawione przy użyciu ifconfig)

route add -net 192.56.76.0 netmask 255.255.255.0 dev eth0

Dodanie domyślnej trasy routingu do sieci 192.56.76.x przez interfejs "eth0". 


Komentarze

Najczęściej czytane w tym miesiącu

50 popularnych pytań dotyczących systemu Linux zadawanych na rozmowach kwalifikacyjnych. (Pytania & Odpowiedzi)

Jak dodać użytkownika w systemie Windows z poziomu konsoli CMD? (net user, net localgroup)

Generowanie testowych plików o określonej wielkości