Selezione del routing: specificità vs metrica


17

Comprendo che Linux sceglie il percorso più specifico verso la destinazione quando esegue il routing di selezione . Ma per quanto riguarda la metrica di un percorso? Ha una priorità più alta della specificità del percorso?

Si apprezzerebbe anche un riferimento ai dettagli dell'algoritmo di selezione del routing utilizzato da Linux.

Risposte:


26

La metrica delle rotte è di impostare la preferenza tra rotte con uguale specificità. Ciò vale per il routing in generale (ad es. Cisco, Windows, ecc.). Quindi il modello funziona come:

  1. Trova il percorso più specifico (noto anche come corrispondenza del prefisso più lunga * )
  2. Se ci sono più percorsi con la stessa specificità, scegli quello con la distanza amministrativa più bassa (questo distingue tra cose come percorsi direttamente collegati, percorsi statici e vari protocolli di routing).
  3. All'interno di quel protocollo di routing e percorso specifico (se la specificità del percorso e la distanza amministrativa sono uguali), scegli il percorso con la metrica più bassa

Si noti che ci sono altre cose che potrebbero essere in corso su un routing basato su criteri che ti consente di fare cose come route in base all'indirizzo IP di origine. Ma la specificità del percorso, la distanza amministrativa e quindi la metrica sono quelle che considererei le tre cose principali.

* Si chiama la corrispondenza del prefisso più lungo perché appare una sottorete in binario (/ 24 per esempio) 11111111.11111111.11111111.00000000. Quindi un router può semplicemente scansionare il prefisso per binari 1 e fermarsi quando raggiunge uno zero, e quindi ha abbinato il prefisso.


1
Questo non è del tutto vero su Linux, dove non c'è distinzione tra distanza metrica e amministrativa.
jch

1
@jch Does quagga and co. imitare AD impostando la metrica di conseguenza? (Non che il tuo punto non sia vitale, solo curioso)
Kyle Brandt il

1
No, Quagga implementa AD internamente nel zebrademone e invia solo le rotte selezionate al kernel, quindi il kernel non ha mai bisogno di occuparsi di AD. Dovrei controllare, ma penso che Quagga imposta la metrica del kernel su un valore costante.
Jch

Vorrei solo ricordare che ciò non è vero nei bridge Ethernet, ad esempio due percorsi identici tramite dispositivi diversi con la stessa metrica hanno comunque portato a indirizzare erroneamente il traffico sul collegamento più lungo e errato.
Areeb Soo Yasir,

9

Linux fornisce numerosi strumenti per la selezione flessibile del routing.

Tabella di routing singola

Nel caso più semplice, esiste solo una tabella di routing del kernel e nessuna route con l'attributo SRC. Questa tabella contiene una serie di route, che sono state posizionate manualmente ( ip route add), dal demone DHCP o instradando i demoni. In questo caso, il kernel sceglie:

  • il percorso più specifico;
  • se ci sono più percorsi ugualmente specifici, quello con la metrica del kernel più piccola.

Si noti che la metrica del kernel (visualizzata da ip route show) è scelta dal demone di routing e non è necessariamente correlata alla metrica di un particolare protocollo di routing. Ad esempio, Quagga usa la stessa metrica per tutte le rotte che installa nel kernel, indipendentemente dalla metrica del protocollo.

Percorsi specifici per sorgente

Linux supporta anche route con un attributo SRC che corrisponde solo a pacchetti con un determinato indirizzo di origine. SRC funziona solo per IPv6 ed è stato difettoso fino a poco tempo fa (3.11, se la memoria serve); Non consiglio di usarlo se non sai cosa stai facendo.

Più tabelle di routing

Se hai bisogno di maggiore flessibilità rispetto a quanto sopra indicato, dovrai giocare con più tabelle di routing e scrivere regole per scegliere una particolare tabella di routing per ciascun pacchetto. Una tecnica comune è l'invio sull'indirizzo di origine al fine di simulare percorsi specifici per l'origine. Un'altra tecnica consiste nell'eseguire ciascun demone di routing nella propria tabella di routing e simulare la "distanza amministrativa" di Cisco. Tutto ciò è descritto in dettaglio nel capitolo 4 della LARTC .


Questo non è ciò che fa l' srcattributo. Ti consigliamo di leggere man ip-routeo altri documenti. E funziona con IPv4. Lo uso per ottenere tutto il traffico incluso il traffico del router attraverso un singolo tunnel IPSec da rete a rete.
Zan Lynx,

1
L' RTA_SRCattributo fa esattamente quello che ho detto; è possibile accedervi con l' fromopzione del ipcomando. L' opzione ipdel comando srcimposta l' RTA_PREFSRCattributo, che è ciò che descrivi.
jch
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.