Articles

Routingtabellen (TCP/IP-nätverksadministration, 3: e upplagan)

Boka hem

föregående nästa

2.4. Routingtabellen

Gateways ruttdata mellan nätverk, men alla nätverksenheter, värdar och gateways måste fatta routningsbeslut. Formost värdar, routingbesluten är enkla:

  • om destinationsvärden finns i det lokala nätverket levereras data till destinationsvärden.

  • om destinationsvärden finns i ett fjärrnätverk överförs data till en lokal gateway.

ip-routingbeslut är helt enkelt tabelluppslag. Paket är routedtoward sina destinationer enligt anvisningarna av routingtable (även kallad forwardingtable). Routingtabellen kartlägger destinationer till routeroch nätverksgränssnittet som IP måste använda för att nå den destinationen.Att undersöka routingtabellen på ett Linux-system visar detta.

på ett Linux-system, användruttkommandot med-noption för att visa routingtabellen. Alternativet-n förhindrar rutt från att konvertera IP-adresser till värdnamn, vilket ger en tydligare visning. Här är en routingtabellfrån ett prov Red Hat-system:

Thenetstat-kommandot används för att undersöka routingtable på Solaris 8-system. Ett exempel på Solaris behandlas senare iDetta kapitel.

# 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

på ett Linux-system visar route-Ncommand routingtabellen med följande fält:

Destination

värdet mot vilken destinations-IP-adressenmatchas.

Gateway

routern som ska användas för att nå den specifikadestination.

Genmask

adressmasken som används för att matcha en IP-adress till värdet som visas i målfältet.

flaggor

vissa egenskaper på denna rutt.De möjliga Linux-flaggvärdena är:

flaggorna R, M,C, I och ! är specifika för Linux. De andra flaggorna används på mostUnix-system.

U

indikerar att rutten är upp och i drift.

H

indikerar att detta är en rutt till en viss värd(de flesta rutter är till nätverk).

g

indikerar att rutten använder en externgateway. Systemets nätverksgränssnitt ger rutter tilldirekt anslutna nätverk. Alla andra rutter använder externa gateways.Direktanslutna nätverk har inte g-flagguppsättningen; alla andrarutter gör det.

r

indikerar en rutt som installerades, förmodligen av adynamic routing protocol som körs på detta system, med hjälp av det här alternativet.

D

indikerar att denna rutt har lagts till på grund av ett ICMP-Omdirigeringsmeddelande. När ett system lär sig om en routevia en ICMP-omdirigering, lägger den till rutten till dess routingtabell så attytterligare paket som är bundna till den destinationen inte behöver ändras. Systemet använder D-flaggan för att markera dessa rutter.

M

indikerar en rutt som modifierades, troligen av adynamic routing protocol som körs på detta system, med themod-alternativet.

A

indikerar en cachelagrad rutt som har en associeradinträde i Arp-tabellen.

C

indikerar att denna rutt kom från kernelrouting cache. De flesta system använder två routingtabeller: Forwardinginformationsbasen (FIB), som är tabellen Vi är intresserade aveftersom den används för routingbeslutet och kernel routingcache, som listar källan och destinationen för nyligen användar rutter. Denna flagga är dokumenterad, men jag har aldrig sett C flaggan ina routing tabell notering, även när notering routing cache.

L

indikerar att destinationen för dettarutt är en av adresserna på den här datorn. Dessa ”localroutes” finns bara i routingcachen.

B

anger en rutt vars destination är en broadcastaddress. Dessa ”sändningsvägar” finns bara irouting cache. Solaris tilldelar flaggan till båda sändningsadresserna och nätverksadresserna; dvs. både 172.16.255.255 och 172.16.0.0 ärges B-flaggan av Solaris systems som lever på nätverket172.16.0.0/16.

I

anger en rutt som använder loopback-gränssnittet för något annat syfte än att adressera loopback-nätverket. Dessa ”interna rutter” finns bara i routingcachen.

!

indikerar att datagram som är bundna till thisdestination kommer att avvisas. Linux tillåter dig att manuellt installera ”negativa” rutter. Det här är rutter som uttryckligen blockerardata som är bundna till en viss destination. Detta är Linux-specifikt ochsällan används, men det är en möjlig flagginställning.

metrisk

”kostnaden” för rutten. Måttet används för attsortera dubbla rutter om några visas i tabellen. Utöver detta krävs adynamic routing protocol för att använda metriken.

Ref

antalet gånger rutten har refererats till upprätta en anslutning. Detta värde används inte av Linux-system.

använd

antalet gånger denna rutt letades upp av IP.

Iface

namnet på det nätverksgränssnitt som används av denna rutt.

nätverksgränssnittet är nätverkets hårdvara och mjukvara som IP använder för att kommunicera med detfysiska nätverket. Se Kapitel 6, ”konfigurera gränssnittet” fördetaljer.

varje post i routingtabellen börjar med adestinationsvärde. Destinationsvärdet är nyckeln mot vilken IP-adressen matchas för att avgöra om detta är rätt väg att använda för att nå IP-adressen. Destinationenvärdet kallas vanligtvis ”destinationsnätverket”, även om det inte behöver vara en nätverksadress. Destinationvärdet kan vara en värdadress, en multicast-adress, ett adressblock som täcker en aggregering av många nätverk eller ett speciellt värde för standardrutten eller loopback-adressen. I alla fall innehåller dock fältet Destination det värde mot vilketdestinationsadressen från IP-paketet matchas för att avgöra om ifIP ska leverera datagrammet med den här rutten.

genmaskfältet är den bitmask som IP gäller fördestinationsadress från paketet för att se om adressen matchar destinationsvärdet i tabellen. Om en bit är på i bitmasken, denmotsvarande bit i destinationsadressen är betydande formatering av adressen. Således skulle adressen 172.16.50.183 matcha den andra posten i provtabellen eftersom och adressen med255.55.255.0 avkastning 172.16.50.0.

När en adress matchar en post i tabellen berättar Gatewayfield IP hur man når den angivna destinationen. Om Gateway-fältet innehåller IP-adressen till arouter används routern. Om Gateway-fältet innehåller alla 0s (0.0.0.0 när route körs med-n) eller en asterisk (*närroute körs utan-n) är thedestination network ett direktanslutet nätverk och”gateway” är datorns nätverksgränssnitt. Det sista fältet som visas för varje tabellpost är nätverksgränssnittet som används för rutten. I exemplet är det antingen det första Ethernetinterface(eth0) eller loopback-gränssnittet (lo). Destination, gateway, mask ochgränssnitt definierar rutten.

de återstående fyra fälten (Ref, Use, Flags och Metric) visar information om rutten. Dessa informationsfält har endast marginellt värde. Somesystems håller en exakt räkning i Ref-fältet; andra, som Linux, använder det inte riktigt. Linux använder användarfältet för att räkna antalet gånger som aroute behövde slås upp eftersom det inte fanns i routingcachewhen IP behövde det. Vissa andra system visar antalet paketöverförs via rutten i fältet Använd. Flaggfältet visar information som ofta är uppenbar även utan flaggorna: varje rutt har u-flaggan setbecause varje rutt i routingtabellen är upp per definition, andlooking at the Gateway field berättar om en externalgateway används eller inte utan att leta efter g-flaggan. Metricvalue används endast om du kör någraversion av RoutingInformation Protocol (RIP) på ditt system. Bli inte distraherad av denna information. Hjärtat i routingtabellen är rutten,som består av destinationen, masken, porten och gränssnittet.

IP använder informationen från routingtabellen (vidarebefordringstabellen)för att konstruera de rutter som används för aktiva anslutningar. Rutternaassocierade med aktiva anslutningar lagras i routingcache. På Linuxsystems kan routingcachen granskas genom att lägga till-C-argumentet till kommandoraden 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

routingcachen skiljer sig från routingtabellen eftersom cachen visar etablerade rutter. Routingtabellen används för att fatta beslut om routing; routingcachen användsefter beslutet har fattats. Routing cachshows källan och destinationen för en nätverksanslutning och thegateway och gränssnitt som används för att göra den anslutningen.

Linux ger ett bra exempel för att visa innehållet i routingtable eftersom Linux route kommandot visar thetable så tydligt. På Solaris-system har theroute-kommandot en helt annan syntax. Whenrunning Solaris, visa routing tabellens innehåll med thenetstat-nrcommand. Alternativet-r talar om för netstat att visa routingtabellen, och-n-alternativet berättar för netstat attvisa tabellen i numerisk form.

Linux inkorporeraradressmaskinformationen i rutningstabellens display. Solaris 8 stöder adressmasker; det visar dem bara inte närdisplaying routingtabellen.

% 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

den första tabellposten är loopback-ruttenför den lokala värden. Detta är den loopbackaddress som tidigare nämnts som ett reserverat Nätverksnummer. Eftersom everysystem använder loopback-rutten för att skicka datagram till sig själv, finns en entryfor loopback-gränssnittet i varje värds routingtabell.H-flaggan är inställd eftersom Solaris skapar en rutt till en specifik värd(127.0.0.1), inte en rutt till ett helt nätverk (127.0.0.0).Vi ser loopback-anläggningen igen när vi diskuterar kernelconfiguration och ifconfig-kommandot. För närvarande är dock vårt verkliga intresse för externa rutter.

en annan unik post i denna routingtable är den med ordet ”standard” idestinationsfältet. Den här posten är för defaultroute, och gatewayen som anges i den här posten är thedefault gateway. Standardvägen är den andrareserverade nätverksnumret som nämnts tidigare: 0.0.0.0. Defaultgateway används när det inte finns någon specifik rutt i tabellen fora destination nätverksadress. Till exempel har denna routingtabell noentry för nätverk 192.168.16.0. Om IP tar emot några datagramsadresserade till detta nätverk, kommer det att skicka dem via standard gateway172.16. 12. 1.

alla gateways som visas i routingtabellen är på nätverkdirekt anslutna till det lokala systemet. I provet som visas ovan betyder det att gateway-adresserna alla börjar med 172.16.12 oavsett destinationsadress. Detta är det enda nätverket tillsom denna provvärd är direkt ansluten, och därför är denendast nätverk till vilket det direkt kan leverera data. Gateways somen värd använder för att nå resten av Internet måste vara på sitt delnät.

i Figur 2-4 ersätts IP-lagret av två värdar och agateway på vårt imaginära nätverk med en liten bit arouting-tabell som visar destinationsnätverk och de gateways som används för att nå dessa destinationer. Antag att adressmasken som används förnätverk 172.16.0.0 är 255.255.255.0. När källvärden (172.16.12.2) skickar data till destinationsvärden (172.16.1.2), dentillämpar adressmasken för att bestämma att den ska leta efterdestinationsnätverksadress 172.16.1.0 i routingtabellen. Tabellen i källvärden visar att data som är bundna till 172.16.1.0 skickas till gateway 172.16.12.3. Källvärden vidarebefordrar paketettill porten. Gatewayen gör samma steg och tittar uppdestinationsadressen i sin routingtabell. Gateway 172.16.12.3 thenmakes direkt leverans genom dess 172.16.1.5 gränssnitt. Genom att undersöka rutningstabellerna i Figur 2-4 visas att alla systemlista endast gateways på nätverk som de är direkt anslutna till.Detta illustreras av det faktum att 172.16.12.1 är standardvägen för både 172.16.12.2 och 172.16.12.3, men eftersom 172.16.1.2cannot nå nätverk 172.16.12.0 direkt, det har en annan defaultroute.

figur 2-4

figur 2-4. Tabellbaserad routing

en routingtabell innehåller inte end-to-endroutes. En rutt pekar bara på nextgateway, kallad next hop, längs vägen tilldestinationsnätet. Hostrelies på den lokala porten för att leverera data, och gatewayrelies på andra gateways. När ett datagram flyttas från en gateway till en annan, bör det så småningom nå en som är direkt ansluten tilldess destinationsnätverk. Det är den här sista gatewayen som äntligenlevererar data till destinationsvärden.

som vi ser i kapitel 7, ”konfigurera Routing”, får vissa routningsprotokoll, som OSPF och BGP,end-to-end routinginformation. Ändå är paketetfortfarande gått till nästa hop-router.

IP använder nätverksdelen av adressen för att dirigera datagrammellan nätverk. Den fullständiga adressen,inklusive värdinformationen, används för att göra slutleverans när datagrammet når thedestination network.

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

Library Navigation Links

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *