Articles

La Tabella di Routing (TCP/IP di Amministrazione di Rete, 3 ° Edizione)

Prenota Home

Precedente Avanti

2.4. La tabella di routing

I gateway instradano i dati tra le reti, ma tutti i dispositivi di rete, gli host e i gateway, devono prendere decisioni di routing. Formost host, le decisioni di routing sono semplici:

  • Se l’host di destinazione si trova sulla rete locale, i dati vengono consegnati all’host di destinazione.

  • Se l’host di destinazione si trova su una rete remota, i dati vengono inoltrati a un gateway locale.

Le decisioni di routing IP sono semplicemente ricerche di tabelle. I pacchetti vengono instradati verso le loro destinazioni come indicato da routingtable (chiamato anche forwardingtable). La tabella di routing associa le destinazioni all’interfaccia di rete routerand che IP deve utilizzare per raggiungere tale destinazione.L’esame della tabella di routing su un sistema Linux mostra questo.

Su un sistema Linux, utilizzare il comando route con-noption per visualizzare la tabella di routing. Il-n optionprevents percorso dalla conversione di indirizzi IP tohostnames, che dà una visualizzazione più chiara. Ecco una tabella di routing da un sistema Red Hat di esempio:

Il comando Netstat viene utilizzato per esaminare la tabella di routing sui sistemi Solaris 8. Un esempio di Solaris è trattato più avanti in questo capitolo.

# 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

Su un sistema Linux, il percorso -ncommand visualizza la tabella di routing con i seguenti campi:

Destinazione

Il valore con cui l’IP di destinazione addressis abbinati.

Gateway

Il router da utilizzare per raggiungere la specifica destinazione.

Genmask

La maschera di indirizzo utilizzata per abbinare un indirizzo IP al valore mostrato nel campo di destinazione.

Contrassegna

Alcune caratteristiche di questo percorso.I possibili valori di flag Linux sono:

I flag R, M,C, I e ! sono specifici per Linux. Gli altri flag sono usati sulla maggior parte dei sistemi Tunix.

U

Indica che il percorso è attivo e operativo.

H

Indica che questa è una rotta verso un host specifico (la maggior parte delle rotte sono verso reti).

G

Indica che il percorso utilizza un externalgateway. Le interfacce di rete del sistema forniscono percorsi perreti collegate direttamente. Tutti gli altri percorsi utilizzano gateway esterni.Le reti collegate direttamente non hanno il flag G impostato; tutte le altre rotte lo fanno.

R

Indica un percorso che è stato installato, probabilmente dal protocollo di routing adynamic in esecuzione su questo sistema, utilizzando l’opzione thereinstate.

D

Indica che questa rotta è stata aggiunta a causa di un messaggio di reindirizzamento ICMP. Quando un sistema viene a conoscenza di un routevia un reindirizzamento ICMP, aggiunge il percorso alla sua tabella di routing in modo che i pacchetti aggiuntivi associati a tale destinazione non debbano essere indirizzati. Il sistema utilizza il flag D per contrassegnare questi percorsi.

M

Indica un percorso che è stato modificato, probabilmente dal protocollo di routing dinamico in esecuzione su questo sistema, utilizzando l’opzione mod.

A

Indica un percorso memorizzato nella cache che ha un associatedentry nella tabella ARP.

C

Indica che questa rotta proveniva dalla cache kernelrouting. La maggior parte dei sistemi utilizza due tabelle di routing: ForwardingInformation Base (FIB), che è la tabella a cui siamo interessati perché viene utilizzata per la decisione di routing, e il kernel routingcache, che elenca l’origine e la destinazione dei percorsi utilizzati di recente. Questo flag è documentato, ma non ho mai visto il flag C ina elenco della tabella di routing, anche quando si elenca la cache di routing.

L

Indica che la destinazione di thisroute è uno degli indirizzi di questo computer. Questi “localroutes” si trovano solo nella cache di routing.

B

Indica un percorso la cui destinazione è un broadcastaddress. Questi “percorsi di trasmissione” si trovano solo nella cache di routing. Solaris assegna il flag a entrambi gli indirizzi broadcast e gli indirizzi di rete; ad esempio, sia 172.16.255.255 che 172.16.0.0 sono assegnati al flag B dai sistemi Solaris che vivono su rete172.16.0.0/16.

I

Indica un percorso che utilizza l’interfaccia di loopback per scopi diversi dall’indirizzamento della rete di loopback. Questi “percorsi interni” si trovano solo nella cache di routing.

!

Indica che i datagrammi associati a questodestinazione verranno rifiutati. Linux consente di installare manualmente percorsi “negativi”. Queste sono rotte che bloccano esplicitamente i dati associati a una destinazione specifica. Questo è specifico per Linux e utilizzato in modo raro, ma è una possibile impostazione di flag.

Metrica

Il “costo” del percorso. La metrica viene utilizzata perordinare percorsi duplicati se presenti nella tabella. Oltre a questo, è necessario il protocollo di routing adynamic per utilizzare la metrica.

Ref

Il numero di volte in cui è stato fatto riferimento alla route per stabilire una connessione. Questo valore non viene utilizzato dai sistemi Linux.

Usa

Il numero di volte in cui questo percorso è stato cercato da IP.

Iface

Il nome dell’interfaccia di rete utilizzata da questa rotta.

L’interfaccia di rete è l’hardware e il software di accesso alla rete che IP utilizza per comunicare con la rete fisica. Vedere Capitolo 6, “Configurazione dell’interfaccia” perdettagli.

Ogni voce nella tabella di routing inizia con il valore di adestination. Il valore di destinazione è la chiave rispetto alla quale viene abbinato l’indirizzo IP per determinare se questo è il percorso corretto da utilizzare per raggiungere l’indirizzo IP. Il destinationvalue viene solitamente chiamato “rete di destinazione”, sebbene non sia necessario che sia un indirizzo di rete. Il valore di destinazione può essere un indirizzo host, un indirizzo multicast, un blocco di indirizzoche copre un’aggregazione di molte reti o un valore speciale per l’indirizzo di route o loopback predefinito. In tutti i casi, tuttavia, il campo di destinazione contiene il valore rispetto al quale viene abbinato l’indirizzo di destinazione dal pacchetto IP per determinare se ifIP deve consegnare il datagramma utilizzando questa rotta.

Il campo Genmask è la maschera di bit che IP applica all’indirizzo di destinazione dal pacchetto per vedere se l’indirizzo corrisponde al valore di destinazione nella tabella. Se un bit è attivo nella maschera di bit, il bit corrispondente nell’indirizzo di destinazione è significativo formattando l’indirizzo. Pertanto, l’indirizzo 172.16.50.183 corrisponderebbe alla seconda voce nella tabella di esempio perché ANDing l’indirizzo with255.55. 255.0 rendimenti 172.16.50.0.

Quando un indirizzo corrisponde a una voce nella tabella, Gatewayfield indica a IP come raggiungere la specifica destinazione. Se il campo Gateway contiene l’indirizzo IP di arouter, viene utilizzato il router. Se il campo Gateway contiene tutti gli 0 (0.0.0.0 quando route viene eseguito con-n) o un asterisco (* quando route viene eseguito senza-n), la rete di destinazione è una rete collegata direttamente e il”gateway” è l’interfaccia di rete del computer. L’ultimo campo visualizzato per ogni voce della tabella è l’interfaccia di rete utilizzata per il percorso. Nell’esempio, è la prima Ethernetinterface(eth0) o l’interfaccia di loopback (lo). La destinazione, il gateway, la maschera e l’interfaccia definiscono il percorso.

I restanti quattro campi (Ref, Use, Flags e Metric) visualizzano informazioni di supporto sulla rotta. Questi campi informativi hanno solo un valore marginale. Alcuni sistemi mantengono un conteggio accurato nel campo Ref; altri, suchas Linux, non lo usano davvero. Linux usa Usefield per contare il numero di volte in cui aroute doveva essere cercato perché non era nella cache di routing quando l’IP ne aveva bisogno. Alcuni altri sistemi mostrano il numero di pacchettitrasmesso tramite il percorso nel campo Usa. Il Flagsfield visualizza informazioni che sono spessoobvious anche senza i flag: ogni percorso ha il flag U impostato perché ogni percorso nella tabella di routing è attivo per definizione, e guardando il campo Gateway ti dice se viene utilizzato o meno un externalgateway senza cercare il flag G. Il Metricvalue viene utilizzato solo se si esegue someversion del RoutingInformation Protocol (RIP) sul sistema. Non essere distratto da queste informazioni. Il cuore della tabella di routing è il percorso, che è composto dalla destinazione, dalla maschera, dal gateway e dall’interfaccia.

IP utilizza le informazioni dalla tabella di routing (la tabella di inoltro) per costruire i percorsi utilizzati per le connessioni attive. I routesassociated con connessioni attive vengono memorizzati nel routingcache. Su Linuxsystems, la cache di routing può essere esaminata aggiungendo l’argomento-C alla riga di comando di theroute:

$ 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

La cache di routing è diversa dalla tabella di routing perché thecache mostra percorsi stabiliti. La tabella di routing viene utilizzato per makerouting decisioni; la cache di routing è usedafter la decisione è presa. Il cacheshows di routing l’origine e la destinazione di una connessione di rete e thegateway e l’interfaccia utilizzata per effettuare tale connessione.

Linux fornisce un buon esempio per mostrare il contenuto della routingtable perché il comando Linux route visualizza la tabella in modo così chiaro. Sui sistemi Solaris, il comando route ha una sintassi molto diversa. Whenrunning Solaris, visualizzare il contenuto della tabella di routing con thenetstat-nrcommand. L’opzione-r consente a netstat di visualizzare la tabella di routing e l’opzione-n indica a netstat di visualizzare la tabella in forma numerica.

Linux incorpora le informazioni sulla maschera di indirizzo nella visualizzazione della tabella di routing. Solaris 8supporta le maschere di indirizzo; semplicemente non le mostra quandodisplay della tabella di routing.

% 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

La prima voce della tabella è il percorso di loopback per l’host locale. Questo è il loopbackaddress menzionato in precedenza come numero di rete riservato. Poiché everysystem utilizza il percorso di loopback per inviare datagrammi a se stesso, un ingresso per l’interfaccia di loopback si trova nella tabella di routing di ogni host.Il flag H è impostato perché Solaris crea una rotta verso un host specifico(127.0.0.1), non una rotta verso un’intera rete (127.0.0.0).Vedremo di nuovo la funzione di loopback quando discuteremo kernelconfiguration e il comando ifconfig. Per ora, tuttavia, il nostro vero interesse è in rotte esterne.

Un’altra voce univoca in questo routingtable è quella con la parola “default” nel campo thedestination. Questa voce è per defaultroute e il gateway specificato in questa voce è il gateway predefinito. Il percorso predefinito è il numero di rete otherreserved menzionato in precedenza: 0.0.0.0. Il defaultgateway viene utilizzato ogni volta che non esiste un percorso specifico nella tabella per un indirizzo di rete di destinazione. Ad esempio, questa tabella di routing ha noentry per la rete 192.168.16.0. Se IP riceve qualsiasi datagramsaddressed a questa rete, li invierà tramite il gateway172.16.12.1 predefinito.

Tutti i gateway che appaiono nella tabella di routing sono su networksdirectly connected to the local system. Nell’esempio mostrato sopra, ciò significa che gli indirizzi del gateway iniziano tutti con 172.16.12 indipendentemente dall’indirizzo di destinazione. Questa è l’unica rete a cui questo host di esempio è direttamente collegato, e quindi è l’unica rete a cui può fornire direttamente i dati. I gateway che l’host utilizza per raggiungere il resto di Internet devono essere sulla sua sottorete.

In Figura 2-4, il livello IP di due host e agateway sulla nostra rete immaginaria è sostituito da un piccolo pezzo di tabella di arouting, che mostra le reti di destinazione e i gateway utilizzati per raggiungere quelle destinazioni. Supponiamo che la maschera di indirizzo utilizzata perrete 172.16.0.0 sia 255.255.255.0. Quando l’host di origine(172.16.12.2) invia i dati all’host di destinazione (172.16.1.2), applica la maschera di indirizzo per determinare che dovrebbe cercare l’indirizzo di rete di destinazione 172.16.1.0 nella tabella di routing. La tabella di instradamento nell’host di origine mostra che i dati associati a 172.16.1.0 vengono inviati al gateway 172.16.12.3. L’host di origine inoltra il pacchetto al gateway. Il gateway esegue gli stessi passaggi e cerca l’indirizzo di destinazione nella sua tabella di routing. Gateway 172.16.12.3 thenmakes consegna diretta attraverso la sua interfaccia 172.16.1.5. Esaminando le tabelle di therouting in Figura 2-4 mostra che tutti i systemslist solo gateway su reti a cui sono direttamente collegati.Ciò è illustrato dal fatto che 172.16.12.1 è il defaultgateway sia per 172.16.12.2 che per 172.16.12.3, ma perché 172.16.1.2cannot raggiungere la rete 172.16.12.0 direttamente, ha un diverso defaultroute.

Figura 2-4

Figura 2-4. Routing basato su tabelle

Una tabella di routing non contiene rotte end-to-end. Un percorso punta solo al nextgateway, chiamato the next hop, lungo il percorso alla rete di destinazione. Il hostrelies sul gateway locale per fornire i dati, e il gatewayrelies su altri gateway. Mentre un datagramma si sposta da un gateway a un altro, dovrebbe alla fine raggiungere uno che è direttamente connesso alla sua rete di destinazione. È quest’ultimo gateway che finalmentedeliver i dati all’host di destinazione.

Come vedremo nel Capitolo 7, “Configurazione del routing “, alcuni protocolli di routing, come OSPF e BGP,ottengono informazioni di routing end-to-end. Tuttavia, il pacchetto èancora passato al router next-hop.

IP utilizza la porzione di rete dell’indirizzo per instradare il datagrambetween reti. L’indirizzo completo, incluse le informazioni sull’host, viene utilizzato per effettuare la consegna finale quando il datagramma raggiunge la rete di destinazione.

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

Library Navigation Links

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *