Narzędzia użytkownika

Narzędzia witryny


Pasek boczny

sk1:routing_wstep

To jest stara wersja strony!


Routing

Trasowanie (routing) – wyznaczenie dalszej drogi, którą zostanie wysłany pakiet. Jest wykonywane na warstwie sieci.

Na każdym urządzeniu wyznaczany jest adres IP następnego skoku i interface którym pakiet zostanie wysłany (nigdy cała trasa).

Urządzenia podejmują decyzję na podstawie tablicy tras (routing table, http://en.wikipedia.org/wiki/Routing_table).

Tablica routingu - lista znanych sieci i tras no nich.
Wpisy w tablicy definiują przynajmniej:

  • cel - sieć docelową (np. 1.2.0.0/16, 192.168.2.0/24)
  • trasę - adres następnego skoku (np. 3.4.5.6, 192.168.1.1) lub/i port wyjściowy (slo1, tun2)
    • typowo podaje się tylko adres następnego skoku
    • dla sieci bezpośrednio podłączonych podaje się tylko urządzenie
  • metrykę - koszt wysłania daną trasą pakietu, używany do porównywania tras, (np. 0, 1, 10, 679842)
  • w routerach CISCO (na których będą kolejne zajęcia) dodatkowo parametr administrative distance (AD), który jest używany do rozstrzygania wyboru trasy jeśli więcej protokołów routingu poda trasę do tej samej sieci

Schemat wyboru trasy:

  • wybiera się trasy do sieci w których znajduje się docelowy adres o najdłuższej masce, np.:
    172.21.0.0/16 via 172.16.0.16 dev eth2
    172.21.0.0/24 via 172.16.0.24 dev eth2 
    172.21.0.0/28 via 172.16.0.28 dev eth2

    pakiet kierowany do 172.21.0.15 zostanie wysłany przez 172.16.0.28, a
    pakiet kierowany do 172.21.0.55 zostanie wysłany przez 172.16.0.24

  • jeśli wybór nie jest jednoznaczny - trasa o najmniejszym koszcie, np.:
    150.254.44.0/23 dev wlan0  proto kernel  scope link  src 150.254.45.39  metric 2003
    150.254.44.0/23 dev wlan1  proto kernel  scope link  src 150.254.44.149  metric 1002

    tu zawsze wybrana jest trasa przez 150.254.44.149, jako ta o niższym koszcie

  • jeśli wybór nie jest jednoznaczny - pierwsza w tablicy.
    default via 150.254.44.1 dev wlan0
    default via 150.254.130.42 dev eth0

Zwykle definiuje się w tablicy tras trasę domyślną.
Czasam jest ona traktowana "specjalnie" – pokazywana w osobnym miejscu lub opisana jako default (zamiast adresu sieci).
Jeśli nie – do zdefiniowania trasy domyślnej używa się adresu 0.0.0.0/0

Sposoby uzyskiwania informacji o trasach:

  • ręczna konfiguracja
  • użycie protokołów routingu

Protokoły trasowania można podzielić ze względu na obszar działania:

  • wewnętrzne (IGP - Interior Gateway Protocol), np. RIP, EIGRP, OSPF, IS-IS
  • zewnętrzna (EGP - Exterior Gateway Protocol) - obecnie (jedynym) używanym jest BGP

albo ze względu na sposób działania:

  • wektora odległości (distance vector), np. RIP, IGRP – znają sąsiadów i koszt dotarcia do istniejących sieci
  • stanu łącza (link state), np. OSPF, IS-IS – znają wszystkie połączenia w sieci
  • wektora ścieżki (path-vector), np. BGP, używany tam gdzie sieć jest za duża by w/w działały – znają sąsiadów i ścieżki dotarcia do sieci sobie podległych

http://en.wikipedia.org/wiki/Routing

Wyświetlanie tablic routingu w systemie Linux

Wypisanie trasy - route / ip route [list/show]
Sprawdzenie trasy do konkretnego adresu - ip route get [addr]

Polityka systemu względem ruchu przechodzącego

Domyślnie Linux nie pozwala na przekazywanie (forward) pakietów. Aby zmienić to zachowanie, należy wykonać:
sysctl net.ipv4.conf.all.forwarding=1
lista dostępnych zmiennych - sysctl -a -r 'net\.ipv.\.conf\..*\.forwarding'
więcej informacji - man 8 sysctl i man 7 ip

albo starsze sysctl net.ipv4.ip_forward=1

Można też skorzystać z katalogu /proc echo 1 > /proc/sys/net/ipv4/ip_forward

Dodatkowo na większości produkcyjnych systemów firewall domyślnie zabrania na przepuszczanie ruchu

Narzędzia związane z trasowaniem w systemie Linux

Dodanie trasy ip route add <addr>/<mask> [via <addr>] [dev <ifname>]
Dodanie trasy przez następny skok ip route add <addr>/<mask> via <addr>
np.: ip r add 192.168.5.0/24 via 192.168.0.254
Dodanie trasy przez urządzenie ip route add <addr>/<mask> dev <ifname>
np.: ip r add 192.168.6.0/24 dev tun0
Dodanie trasy domyślnej ip route add default via <następny skok> [dev <urządzenie>]
np.: ip r add default via 192.168.0.1
Usunięcie trasy ip route del <specyfkacja trasy>
np.: ip r del 192.168.5.0/24 via 192.168.0.254
Usunięcie całej tablicy routinug ip route flush

Trasa może definiować zarówno urządzenie jak i adres następnego skoku.

Podanie samego urządzenia starczy tylko w specjalnych przypadkach, takich jak np. sieć bezpośrednio połączona.

Przy definiowaniu trasy można podać też inne opcje mające wpływ na wybór trasy (metric, src, mtu) jak i też na sposób wysyłania nią pakietów (np. opcje TCP).

Pomoc: man route / man ip-route

Narzędzia do sprawdzania trasy pakietu:

  • tracepath
  • traceroute (w sali lab. potrzeba przełącznika -T lub -I do ominięcia firewalla)
  • mtr

Pętle routingu (przypomnienie).

Specjalne trasy odrzucające pakiety - throw unreachable prohibit blackhole, np:
ip r a blackhole 10.0.0.0/8
ip r a unreachable 10.0.0.0/8
(zamiast takich tras zaleca się stosowanie firewalla)

Slajdy

Appendix: Komendy dla Windowsa

  • Obsługa tablicy routingu – polecenie route
    • Wyświetlenie tablicy tras route print
    • Dodanie trasy: route add <SIEĆ> mask <MASKA> <NEXT_HOP> (np. route add 192.168.1.0 mask 255.255.255.0 10.0.0.1)
    • Usunięcie trasy route delete <SIEĆ> (uwaga! jeśli jest wiele tras do tego samego adresu sieci z różnymi maskami – wszystkie będą usunięte!)
  • Sprawdzenie trasy tracert
  • Włączenie ruchu przechodzącego:
    • Wpisanie wartości 1 typu DWORD do HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\IPEnableRouter
    • Podobne działanie daje udostępnienie połączenia internetowego (ppm na połączeniu sieciowym / "Właściwości" / karta "Udostępnianie" / "Zezwalaj innym użytkownikom sieci na łączenie się poprzez połączenie internetowe tego komputera")
sk1/routing_wstep.1460378471.txt.gz · ostatnio zmienione: 2016/04/11 14:41 (edycja zewnętrzna)