Wykład8.doc

(76 KB) Pobierz
Inicjalizacja Winsock

Sieci komputerowe wykład 8.

 

Routing.

 

Rutowanie IP (routing, ruting, trasowanie).

 

Spojrzenie od strony hosta wysyłającego datagram: w przypadku, gdy docelowy host (IP) jest połączony bezpośrednio (połączenie punkt-punkt) lub leży w sieci LAN bezpośrednio dołączonej do hosta, wówczas datagram IP jest wysyłany bezpośrednio do punktu lub sieci. W pozostałych przypadkach host wysyła datagram do domyślnego rutera.

Systemy wielodostępne (w tym różne odmiany Unixa, Windows 2000 Serwer) można skonfigurować tak, by pełniły role ruterów.

 

W ogólności (zarówno dla zwykłych hostów jak i ruterów) warstwa IP może dostać datagram do przesłania od innego protokołu (warstwy), np. TCP, UDP. Może również otrzymać datagram od warstwy sieciowej.

System operacyjny (moduły realizujące IP) przechowują w pamięci tablicę rutowania. Tablica ta jest przeszukiwania po nadejściu pakietu. Oprogramowanie warstwy IP sprawdza adres przeznaczenia.

W przypadku, gdy jest to jeden z własnych adresów lub adres typu broadcast, wówczas datagram przekazywany jest do oprogramowania odpowiedniego protokołu (protokół ten jest określony w nagłówku IP).

W przeciwnym przypadku (adres docelowy jest adresem „obcym”) pakiet przesyłany jest dalej, zgodnie z algorytmem wykorzystującym tablicę rutowania. Jeśli oprogramowanie realizujące warstwę IP nie jest skonfigurowane do rutowania, wówczas pakiet, który przyjdzie z zewnątrz i zawiera docelowy adres IP „obcy”, zostaje odrzucony (bez generowania jakichkolwiek komunikatów).

 

Zapis w tablicy rutowania zawiera wiersze o następujących polach:

Adres IP przeznaczenia. Może to być adres hosta lub sieci.

Adres IP rutera następnego przejścia lub adres sieci bezpośrednio przyłączonej.

Znaczniki.

Określenie interfejsu sieciowego, na który ma być przesłany datagram.

 

Przykładowy wydruk tablicy rutowania z hosta działającego w systemie Unix (Biblia TCP/IP):

svr4 – adres IP 140.252.13.34

svr4% netstat -rn

Routing tables

Destination                            Gateway                            Flags              Recfnt              Use              Interface

140.252.13.65              140.252.13.35              UGH              0                            0              emd0

127.0.0.1                            120.0.0.1                            UH              1                            0              lo0

default                            140.252.13.33              UG              0                            0              emd0

140.252.13.32              140.252.13.34              U              4                            25043              emd0

 

Znaczniki:

U              Trasa gotowa do wykorzystania (up).

G              Trasa prowadzi do kolejnego gatewaya (rutera), czyli trasa jest pośrednia. Jeśli znacznik nie występuje, to znaczy, że host jest dołączony bezpośrednio.

H              Trasa prowadzi do hosta (adres przeznaczenia to pełny adres hosta). Jeśli nie występuje, to znaczy, że trasa prowadzi do sieci.

D              Trasa została utworzona na podstawie komunikatu przekierowania ICMP.

M              Trasa została zmodyfikowana na podstawie komunikatu przekierowania ICMP.

 

Recfnt (reference count) oznacza liczbę aktywnych połączeń (TCP) na trasie.

Use oznacza liczbę pakietów przesłanych określoną trasą.

 

 

Na ogół IP nie zna całej trasy do punktu przeznaczenia. Datagram może być przekazany do rutera, który powinien znać następny fragment trasy.

 

Typowe działania przy przeszukiwaniu tablicy rutowania:

1.      Poszukiwanie rekordu z IP hosta przeznaczenia.

2.      Poszukiwanie rekordu z IP sieci.

3.      Poszukiwanie rekordu z wpisem „domyślny” (default).

 

Obecnie rutery muszą uwzględniać adresowanie podsieci.

 

Jeśli kroki te zakończą się niepowodzeniem, wówczas uznaje się, że datagramu nie da się dostarczyć.

Adres IP przeznaczenia nie ulega po drodze zmianie. Jednak na każdym z łączy może być używany inny nagłówek warstwy łącza, który zawsze zawiera adres łącza właściwy do następnego punktu trasy.

 

Działanie warstwy IP:

 

demon

rutowania

(routed, gated)

 

TCP

UDP

polecenie netstat -r

polecenie route

 















uaktualnianie z siąsiednich ruterów

 



ICMP



tak





interfejsy sieciowe

 



przekazanie, jeśli włączona  taka opcja

 

tablica

rutowa-nia







warstwa IP

 

 

przekierowanie ICMP

 



rutowanie źródłowe

 



nie





kolejka wejściowa IP

opcje IP

 

Czy jeden z własnych adresów IP

(lub rozgłoszeniowy)?

 

Wyjście: wyznaczyć ruter kolejnego przeskoku (jeśli to konieczne)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Komunikaty ICMP o nieosiągalnym hoście lub nieosiągalnej sieci (host unreachable, network unreachable).

 

Odpowiedni komunikat ICMP zostaje wysłany przez ruter do nadawcy datagramu w przypadku gdy nie może wysłać datagramu ani przekazać go dalej. Niektóre implementacje TCP/IP wysyłaja komunikat o nieosiągalnej sieci, jeśli adres przeznaczenia nie jest adresem hosta w lokalnej podsieci dostępnej dla rutera. W innych implementacjach wysyłane są tylko komunikaty o nieosiągalnym hoście.

Komunikat taki może pochodzić od rutera, który nie ma wpisów domyślnych (domeny rutowania górnego poziomu).

 

 

Komunikaty ICMP o przekierowaniu.

 

 

host

 

1) datagram IP









 

3) przekierowanie ICMP











2) datagram IP







 

ruter 1

 

ruter 2

 

 





 

 

Komunikaty ICMP o przekierowaniu pozwalają hostom TCP/IP nic nie „wiedzieć” o rutingu. Hosty mogą zacząć pracę z jedną domyślną trasą i uczyć się topologii sieci (w szczególności informacji o rutowaniu) poprzez otrzymywanie komunikatów ICMP.

 

Komunikaty ICMP o przekierowaniu powinny być generowane przez rutery, ale korzystać z nich mogą tylko hosty – nie rutery.

 

Inicjalizacja i zmiany tablicy rutowania w hoście.

 

1)     Pliki inicjujące (startowe), np. /etc/netstart,  /etc/rc.local,  /etc/rc.inet,  /etc/inet/rc.inet,  /etc/defaultrouter. Jest to rutowanie statyczne.

2)     Polecenie route (rutowanie statyczne).

 

 

 

 

 

 

Postać polecenia route w systemie Windows 2000:

 

ROUTE [-f] [-p] [command [destination]

                  [MASK netmask]  [gateway] [METRIC metric]  [IF interface]

 

  -f           Clears the routing tables of all gateway entries.  If this is

               used in conjunction with one of the commands, the tables are

               cleared prior to running the command.

  -p           When used with the ADD command, makes a route persistent across

               boots of the system. By default, routes are not preserved

               when the system is restarted. Ignored for all other commands,

               which always affect the appropriate persistent routes. This

               option is not supported in Windows 95.

  command      One of these:

                 PRINT     Prints  a route

                 ADD       Adds    a route

                 DELETE    Deletes a route

                 CHANGE    Modifies an existing route

  destination  Specifies the host.

  MASK         Specifies that the next parameter is the 'netmask' value.

  netmask      Specifies a subnet mask value for this route entry.

               If not specified, it defaults to 255.255.255.255.

  gateway      Specifies gateway.

  interface    the interface number for the specified route.

  METRIC       specifies the metric, ie. cost for the destination.

 

All symbolic names used for destination are looked up in the network database

file NETWORKS. The symbolic names for gateway are looked up in the host name

database file HOSTS.

 

If the command is PRINT or DELETE. Destination or gateway can be a wildcard,

(wildcard is specified as a star '*'), or the gateway argument may be omitted.

 

If Dest contains a * or ?, it is treated as a shell pattern, and only

matching destination routes are printed. The '*' matches any string,

and '?' matches any one char. Examples: 157.*.1, 157.*, 127.*, *224*.

Diagnostic Notes:

    Invalid MASK generates an error, that is when (DEST & MASK) != DEST.

    Example> route ADD 157.0.0.0 MASK 155.0.0.0 157.55.80.1 IF 1

             The route addition failed: The specified mask parameter is invalid.

(Destination & Mask) != Destination.

 

Examples:

 

    > route PRINT

    > route ADD 157.0.0.0 MASK 255.0.0.0  157.55.80.1 METRIC 3 IF 2

             destination^      ^mask      ^gateway     metric^    ^

                                                         Interface^

      If IF is not given, it tries to find the best interface for a given

      gateway.

    > route PRINT

    > route PRINT 157*          .... Only prints those matching 157*

    > route DELETE 157.0.0.0

    > route PRINT

 

W systemach Unixowych składnia może być różna (patrz man route). W niektórych wersjach route nie potrafi wypisać zawartości tablicy rutowania. Należy wówczas użyć polecenia netstat z opcją –r (lub –rn aby widzieć tylko adresy IP bez nazw domenowych).

 

3)     Komunikaty ICMP router discovery. Po starcie systemu host przesyła komunikat ICMP z prośba o informacje (rozgłoszeniowy – router solicitation). Jeden lub więcej ruterów odpowiada przesyłając komunikat ICMP ogłoszeniowy.

4)     Co pewien czas rutery rozgłaszają komunikaty (ze wszystkich interfejsów obsługujących broadcast i multicast), aby hosty mogły zaktualizować tablice rutowania.

 

 

Format komunikatu rogłoszeniowego router solicitation ICMP:

 

typ (10) – bity 0-7,

kod (0)              – bity 8-15,

suma kontrolna – bity 16-31,

nie używane (same zera) – bity 32-63

 

Format komunikatu ogłoszeniowego router advertisment ICMP:

 

typ (9) – bity 0-7,

kod (0)              – bity 8-15,

suma kontrolna – bity 16-31,

liczba adresów – bity 32-39,

rozmiar obszaru adresów (2) – bity 40-47,

czas życia – bity 48-63,

adres rutera1 – 4 bajty,

poziom preferencji1 – 4 bajty (większe wartości oznaczają rutery bardziej preferowane)

adres rutera2 – 4 bajty,

poziom preferencji2 – 4 bajty

.....

Czas życia określa w sekundach jak długo rozgłaszane adresy należy uznać za ważne. Standardowo domyślny ruter w sieci rozszyła komunikat rozgłoszeniowy co kilka minut z czasem życia do 30 min.

 

Kiedy interfejs rutera przestaje pracować, wówczas ruter wysyła komunikat rozgłoszeniowy z tego interfejsu z czasem życia 0.

 

 


Rutowanie dynamiczne – wymiana informacji między ruterami.

 

...

Zgłoś jeśli naruszono regulamin