Articles

Tabela routingu (Administracja sieci TCP/IP, 3-e wydanie)

strona główna

Poprzedni Dalej

2.4. Tabela routingu

bramy trasują dane między sieciami, ale wszystkie urządzenia sieciowe, hosty, a także bramy, muszą podejmować decyzje o routingu. Formost hostów, decyzje o routingu są proste:

  • Jeśli host docelowy znajduje się w sieci lokalnej, dane są dostarczane do hosta docelowego.

  • Jeśli host docelowy znajduje się w sieci zdalnej, dane są przekazywane do bramy lokalnej.

decyzje o routingu IP są po prostu wyszukiwaniem tabel. Pakiety są routedtoward ich przeznaczenia zgodnie z kierunkiem routingtable (zwany także forwardingtable). Tabela routingu mapuje miejsca docelowe do routera i interfejsu sieciowego, których IP musi użyć, aby dotrzeć do tego miejsca docelowego.Badanie tabeli routingu w systemie Linux pokazuje to.

w systemie Linux użyj polecenia route z opcją-noption, aby wyświetlić tabelę routingu. Opcja-n prevents umożliwia konwersję adresów IP na nazwy hostów, co daje wyraźniejszy obraz. Poniżej znajduje się tabela routingu z przykładowego systemu Red Hat:

polecenie Thenetstat służy do badania tabeli routingu w systemach Solaris 8. Przykład Solarisa został omówiony w dalszej części tego rozdziału.

# route -nKernel IP routing tableDestination Gateway Genmask Flags Metric Ref Use Iface172.16.55.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0172.16.50.0 172.16.55.36 255.255.255.0 UG 0 0 0 eth0127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo0.0.0.0 172.16.55.1 0.0.0.0 UG 0 0 0 eth0

w systemie Linux, route-ncommand wyświetla tabelę routingu z następującymi polami:

Destination

wartość który docelowy adres IP jest dopasowany.

Gateway

Router, którego należy użyć do osiągnięcia określonego celu.

Genmask

Maska adresu używana do dopasowania adresu IP do wartości pokazanej w polu Miejsce docelowe.

flagi

niektóre cechy tej trasy.Możliwe wartości flagi Linuksa to:

flagi R, M,C, I, i ! są specyficzne dla Linuksa. Pozostałe flagi są używane w systemach mostUnix.

U

wskazuje, że trasa jest gotowa i działa.

H

wskazuje, że jest to trasa do określonego hosta(większość tras to sieci).

G

wskazuje, że trasa korzysta z zewnętrznegateway. Interfejsy sieciowe systemu zapewniają trasy doniepowiązanych sieci. Wszystkie inne trasy korzystają z zewnętrznych bram.Bezpośrednio podłączone sieci nie mają ustawionej flagi G; wszystkie inne trasy mają.

R

wskazuje trasę, która została zainstalowana, prawdopodobnie przez protokół routingu dynamicznego działający w tym systemie, przy użyciu opcji thereinstate.

D

wskazuje, że ta trasa została dodana z powodu wiadomości przekierowania ICMP. Gdy system dowie się o routevii przekierowania ICMP, dodaje trasę do swojej tabeli routingu, aby dodatkowe pakiety związane z tym miejscem nie musiały być kierowane. System używa flagi D do oznaczania tych tras.

M

wskazuje trasę, która została zmodyfikowana, prawdopodobnie przez adynamiczny protokół routingu działający w tym systemie, przy użyciu opcji themod.

A

wskazuje buforowaną trasę, która ma asocjację w tabeli ARP.

C

wskazuje, że ta trasa pochodzi z pamięci podręcznej kernelrouting. Większość systemów używa dwóch tabel routingu: ForwardingInformation Base (FIB), która jest tabelą, którą jesteśmy zainteresowani, ponieważ jest używana do podejmowania decyzji o routingu, oraz jądra routingcache, które wymienia źródło i miejsce docelowe ostatnio używanych tras. Ta flaga jest udokumentowana, ale nigdy nie widziałem flagi C Ina routing table listing, nawet gdy listing routing cache.

L

wskazuje, że celem tej trasy jest jeden z adresów tego komputera. Te „trasy lokalne” znajdują się tylko w pamięci podręcznej routingu.

B

wskazuje trasę, której celem jest broadcastaddress. Te „trasy transmisji” znajdują się tylko w pamięci podręcznej. Solaris przypisuje flagę zarówno adresom nadawanym, jak i adresom sieciowym; tj. zarówno 172.16.255.255, jak i 172.16.0.0 otrzymują flagę B przez systemy Solaris działające w sieci172.16.0.0/16.

I

wskazuje trasę, która wykorzystuje interfejs loopback w jakimś celu innym niż adresowanie sieci loopback. Te „trasy wewnętrzne”znajdują się tylko w pamięci podręcznej routingu.

!

wskazuje, że datagramy związane z tegodestynacja zostaną odrzucone. Linux pozwala na ręczne instalowanie „negatywnych” tras. Są to trasy, które jawnie blockdata związane do określonego miejsca docelowego. Jest to specyficzne dla Linuksa i często używane, ale jest to możliwe ustawienie flagi.

metryczny

„koszt” trasy. Metryka służy do ograniczenia duplikatów tras, jeśli występują w tabeli. Poza tym, adynamic routing protocol jest wymagane do korzystania z metryki.

Ref

ile razy trasa została odwołana do połączenia. Wartość ta nie jest używana przez systemy Linux.

użyj

ile razy ta trasa była wyszukiwana przez IP.

Iface

nazwa interfejsu sieciowego używanego przez tę trasę.

interfejs sieciowy to sprzęt i oprogramowanie sieciowe, których IP używa do komunikacji z siecią fizyczną. Zobacz Rozdział 6, „Konfigurowanie interfejsu” fordetails.

każdy wpis w tabeli routingu zaczyna się od wartości przypisania. Wartość docelowa to klucz, do którego dopasowany jest adres IP, aby określić, czy jest to właściwa droga do osiągnięcia adresu IP. Wartość destinationvalue jest zwykle nazywana „siecią docelową”, chociaż nie musi to być adres sieciowy. Wartością destinationvalue może być adres hosta, adres multiemisji, blok adresowy obejmujący agregację wielu sieci lub specjalna wartość dla domyślnej trasy lub adresu pętli zwrotnej. Jednak we wszystkich przypadkach pole testination zawiera wartość, do której jest dopasowany adres docelowy z pakietu IP, aby określić, czy IP powinien dostarczyć datagram przy użyciu tej trasy.

pole Genmask jest maską bitową, którą IP stosuje do adresu destination z pakietu, aby sprawdzić, czy adres pasuje do wartości destination w tabeli. Jeśli bit jest włączony w masce bitów, bit odpowiadający w adresie docelowym jest znaczącym formatowaniem adresu. Tak więc adres 172.16.50.183 pasowałby do drugiego wpisu w tabeli próbek, ponieważ i adres z255. 55.255.0.172.16.50.0

gdy adres pasuje do wpisu w tabeli, pole Gatewayfield mówi IP, jak dotrzeć do określonego adresu. Jeśli pole Gateway zawiera adres IP aroutera, używany jest router. Jeśli pole Gateway zawiera wszystkie 0s (0.0.0.0, gdy trasa jest uruchamiana z-n) lub gwiazdkę ( * , gdy trasa jest uruchamiana bez-n), sieć testowa jest siecią bezpośrednio podłączoną, a”gateway” jest interfejsem sieciowym komputera. Ostatnie pole wyświetlane dla każdego wpisu w tabeli to interfejs sieciowy używany dla trasy. W przykładzie jest to albo pierwszy Ethernetinterface (eth0), albo interfejs loopback(lo). Cel, Brama, maska i interfejs definiują trasę.

pozostałe cztery pola (Ref, Use, Flags i Metric) wyświetlają informacje o trasie. Te pola informacyjne mają jedynie wartość marginalną. Niektóre systemy liczą dokładnie w polu Ref; inne, takie jak Linux, tak naprawdę go nie używają. Linux używa pola Usefield do zliczania ile razy aroute musi być wyszukane, ponieważ nie było go w pamięci podręcznej routingu, gdy IP go potrzebował. Niektóre inne systemy pokazują liczbę pakietów przekazywanych przez trasę w polu Użyj. Pole Flagsfield wyświetla informacje, które często są widoczne nawet bez flag: każda trasa ma ustawioną flagę U, ponieważ każda trasa w tabeli routingu jest z definicji up, a patrząc na pole Gateway, dowiesz się, czy używana jest zewnętrzna Droga bez szukania flagi G. Wartość metryczna jest używana tylko wtedy, gdy w systemie uruchomisz którąś wersję protokołu RoutingInformation Protocol (RIP). Nie rozpraszaj się tą informacją. Sercem tabeli routingu jest trasa, która składa się z miejsca docelowego, maski, bramy i interfejsu.

IP używa informacji z tabeli routingu (tabeli przekazywania)do konstruowania tras używanych do aktywnych połączeń. Routesassociated with active connections are stored in the routingcache. Na Linuxsystemach, cache routingu może być sprawdzony przez dodanie argumentu-C do wiersza poleceń route:

$ route -CnKernel IP routing cacheSource Destination Gateway Flags Metric Ref Use Iface127.0.0.1 127.0.0.1 127.0.0.1 l 0 0 0 lo192.203.230.10 172.16.55.3 172.16.55.3 l 0 0 0 lo172.16.55.1 172.16.55.255 172.16.55.255 ibl 0 0 243 lo172.16.55.2 172.16.55.255 172.16.55.255 ibl 0 0 15 lo172.16.55.3 192.203.230.10 172.16.55.1 0 0 0 eth0127.0.0.1 127.0.0.1 127.0.0.1 l 0 0 0 lo172.16.55.3 132.163.4.9 172.16.55.1 0 0 0 eth0172.16.55.2 172.16.55.3 172.16.55.3 il 0 0 149 lo172.16.55.3 172.16.55.2 172.16.55.2 0 1 0 eth0132.163.4.9 172.16.55.3 172.16.55.3 l 0 0 0 lo

bufor routingu różni się od tabeli routingu, ponieważ bufor pokazuje ustalone trasy. Tabela routingu służy do podejmowania decyzji o routingu; bufor routingu jest używany po podjęciu decyzji. Pamięć podręczna routingu pokazuje źródło i miejsce docelowe połączenia sieciowego oraz drogę i interfejs używane do nawiązania tego połączenia.

Linux jest dobrym przykładem na pokazanie zawartości tabeli routingtable, ponieważ polecenie trasy Linuksa wyświetla tabelę tak wyraźnie. W systemach Solaris polecenie theroute ma zupełnie inną składnię. Podczas uruchamiania Solarisa wyświetla zawartość tabeli routingu za pomocą polecenia setstat-nrcommand. Opcja-r odsyła netstat do wyświetlenia tabeli routingu, a opcja-N każe netstatowi odtworzyć tabelę w formie numerycznej.

Linux włącza informacje o masce adresu w wyświetlaniu tabeli routingu. Solaris 8 obsługuje maski adresów; po prostu nie pokazuje ich podczas wyświetlania tabeli routingu.

% netstat -nr Routing Table: IPv4 Destination Gateway Flags Ref Use Interface ----------- ----------- ----- ---- ----- --------- 127.0.0.1 127.0.0.1 UH 1 298 lo0 default 172.16.12.1 UG 2 50360 172.16.12.0 172.16.12.2 U 40 111379 dnet0 172.16.2.0 172.16.12.3 UG 4 1179 172.16.1.0 172.16.12.3 UG 10 1113 172.16.3.0 172.16.12.3 UG 2 1379 172.16.4.0 172.16.12.3 UG 4 1119

pierwszy wpis tabeli jest routerem pętli zwrotnej dla lokalnego hosta. Jest to loopbackaddress wymieniony wcześniej jako zarezerwowany numer sieci. Ponieważ everysystem używa trasy pętli zwrotnej do wysyłania datagramów do siebie, wpis dla interfejsu pętli zwrotnej znajduje się w tabeli routingu każdego hosta.Flaga H jest ustawiona, ponieważ Solaris tworzy trasę do określonego hosta(127.0.0.1), a nie trasę do całej sieci (127.0.0.0).Ponownie zobaczymy funkcję loopback, gdy omówimy konfigurację kernelconfiguration i polecenie ifconfig. Na razie jednak naszym prawdziwym zainteresowaniem są trasy zewnętrzne.

innym unikalnym wpisem w tej tabeli routingtable jest ten ze słowem „default” w polu destination. Ten wpis dotyczy trasy defaultroute, a bramą określoną w tym wpisie jest brama default. Domyślną trasą jest inny wspomniany wcześniej numer sieci reserved: 0.0.0.0. Defaultgateway jest używany, gdy nie ma określonej trasy w tabeli docelowego adresu sieciowego. Na przykład, ta tabela routingu nie ma dostępu do sieci 192.168.16.0. Jeśli IP otrzyma jakieś datagramyadresowane do tej sieci, wyśle je za pomocą domyślnego gateway172.16. 12. 1.

wszystkie bramy, które pojawiają się w tabeli routingu znajdują się w sieciach bezpośrednio podłączonych do systemu lokalnego. W powyższym przykładzie oznacza to, że wszystkie adresy bramek zaczynają się od 172.16.12, niezależnie od adresu docelowego. Jest to jedyna sieć, do której ten host próbki jest bezpośrednio podłączony, a zatem jest to jedyna sieć, do której może bezpośrednio dostarczać dane. Bramy, których używa host, aby dotrzeć do reszty Internetu, muszą znajdować się w jego podsieci.

na rysunku 2-4 warstwa IP dwóch hostów i agateway w naszej wyimaginowanej sieci jest zastępowana małym kawałkiem tabeli arouting, pokazującej sieci docelowe i bramy używane do tych miejsc docelowych. Załóżmy, że maska adresu użyta dlanetwork 172.16.0.0 to 255.255.255.0. Gdy host źródłowy(172.16.12.2) wysyła dane do hosta docelowego (172.16.1.2), stosuje maskę adresu, aby określić, że powinien szukać adresu sieciowego testowania 172.16.1.0 w tabeli routingu. Tabela Routing w źródłowym hoście pokazuje, że dane związane z 172.16.1.0 są wysyłane do bramy 172.16.12.3. Host źródłowy przekazuje pakiet do bramki. Brama wykonuje te same kroki i wyszukuje adresdestination w tabeli routingu. Gateway 172.16.12.3 umożliwia bezpośrednią dostawę za pośrednictwem interfejsu 172.16.1.5. Analiza tabel z Rys. 2-4 pokazuje, że wszystkie systemy zawierają tylko bramki w sieciach, do których są bezpośrednio podłączone.Ilustruje to fakt, że 172.16.12.1 jest domyślną ścieżką dla 172.16.12.2 i 172.16.12.3, ale ponieważ 172.16.1.2nie może bezpośrednio dotrzeć do sieci 172.16.12.0, ma inną domyślną trasę.

rysunek 2-4

rysunek 2-4. Routing oparty na tabelach

tabela routingu nie zawiera tras typu end-to-end. Trasa wskazuje tylko na następną drogę, zwaną następnym przeskokiem, wzdłuż ścieżki do sieci docelowej. Hostrelies na lokalnej bramie do dostarczania danych i gatewayrelies na innych bramach. Ponieważ datagram przenosi się z jednej bramy do drugiej, powinien ostatecznie dotrzeć do takiej, która jest bezpośrednio podłączona do swojej sieci docelowej. Jest to ostatnia brama, która ostatecznie odtwarza dane do hosta docelowego.

jak zobaczymy w Rozdziale 7 „Konfigurowanie routingu”, niektóre protokoły routingu, takie jak OSPF i BGP, uzyskują kompleksowe informacje o routingu. Niemniej jednak Pakiet jest nadal przekazywany do routera next-hop.

IP używa sieciowej części adresu do kierowania datagrambetween sieci. Pełny adres, w tym informacje o Hostie,jest używany do ostatecznego dostarczenia, gdy datagram dotrze do sieci Destination.

Previous Home Next
2.3. Internet Routing Architecture Book Index 2.5. Address Resolution

Library Navigation Links

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *