Introduzione
In questo documento viene spiegato come configurare le route-map che sono applicate con il comando redistribute dei protocolli di routing dinamico.
Prerequisiti
Requisiti
Nessun requisito specifico previsto per questo documento.
Componenti usati
Per questo documento, è stato usato il software Cisco IOS® versione 12.3.
Le informazioni discusse in questo documento fanno riferimento a dispositivi usati in uno specifico ambiente di emulazione. Su tutti i dispositivi menzionati nel documento la configurazione è stata ripristinata ai valori predefiniti. Se la rete è operativa, valutare attentamente eventuali conseguenze derivanti dall'uso dei comandi.
Premesse
In questa sezione viene fornita una panoramica delle route map utilizzate nel software Cisco IOS.
Nozioni di base sulle route-map
Le route-map hanno molte caratteristiche in comune con gli ACL (Access Control List) ampiamente noti. Questi sono alcuni dei tratti comuni a entrambi:
- Si tratta di una sequenza ordinata di istruzioni singole; ciascuno di essi ha ottenuto un permesso o ha ottenuto un rifiuto. Per valutare la route, gli ACL o le route-map eseguono una scansione dell'elenco, in un ordine prestabilito, e valutano i criteri di ogni istruzione corrispondente. L'analisi degli elenchi viene interrotta quando viene trovata la prima corrispondenza tra istruzioni e viene eseguita un'azione associata alla corrispondenza tra istruzioni.
- Si tratta di meccanismi generici: i criteri corrispondono e l'interpretazione delle corrispondenze è determinata dal modo in cui vengono applicati. La stessa route-map applicata a attività diverse può avere un'interpretazione diversa.
Di seguito sono elencate le possibili differenze tra route-map e ACL:
- Le route map utilizzano spesso gli ACL come criteri di corrispondenza.
- Il risultato principale della valutazione di un elenco degli accessi è una risposta affermativa o negativa. Un ACL consente o nega l'immissione di dati. Applicato alla ridistribuzione, un ACL determina se una determinata route può (route corrisponde a un'istruzione di autorizzazione ACL) o non può (corrisponde a un'istruzione di negazione) essere ridistribuita. Le mappe di percorso tipiche non solo consentono (alcune) route ridistribuite, ma modificano anche le informazioni associate alla route quando questa viene ridistribuita in un altro protocollo.
- Le route map sono più flessibili degli ACL e possono essere verificate sulla base di criteri non verificabili dagli ACL. Ad esempio, una route-map può verificare se la route è interna o se ha un tag specifico.
- A differenza delle route-map, ogni ACL termina, per convenzione di progettazione, con un'istruzione implicit deny. Se viene raggiunta la fine di una route-map quando vengono eseguiti tentativi di corrispondenza, il risultato dipende dall'applicazione specifica della route-map. Fortunatamente, le route-map applicate alla ridistribuzione si comportano allo stesso modo degli ACL: se la route non soddisfa nessuna clausola della route-map, la ridistribuzione della route viene negata, come se la route-map contenesse l'istruzione deny alla fine.
Il comando di configurazione redistribute del protocollo dinamico consente di applicare un ACL o una route-map. Le differenze descritte in questa sezione identificano quando utilizzare una route-map nel processo di ridistribuzione. Le route map sono preferibili se si intende modificare le informazioni durante la ridistribuzione o se sono necessarie funzionalità più potenti per abbinare le funzionalità rispetto a quelle fornite da un ACL. Al contrario, se le route devono essere scelte semplicemente in base al loro prefisso o maschera, Cisco consiglia di usare un ACL (o elenco di prefissi equivalente) direttamente nel comando redistribute. In questo caso, l'uso di una route-map comporterebbe un maggior numero di comandi di configurazione per raggiungere lo stesso obiettivo. Le route-map sono sempre applicate al traffico in entrata e non hanno alcun effetto sul traffico in uscita.
Apri prima percorso più breve
Questa è una route-map tipica da OSPF a EIGRP (Open Shortest Path First to Enhanced Interior Gateway Routing Protocol), applicata con un comando redistribute:
!
router eigrp 1
redistribute ospf 1 route-map ospf-to-eigrp
default-metric 20000 2000 255 1 1500
!--- Output suppressed.
!
route-map ospf-to-eigrp deny 10
match tag 6
match route-type external type-2
!
route-map ospf-to-eigrp permit 20
match ip address prefix-list pfx
set metric 40000 1000 255 1 1500
!
route-map ospf-to-eigrp permit 30
set tag 8
!
Queste sono le osservazioni importanti dell'esempio:
- Le clausole della route-map sono numerate. In questo esempio, le clausole hanno numeri sequenziali 10, 20 e 30. I numeri sequenziali consentono di effettuare queste operazioni:
- Eliminare facilmente una clausola specifica senza influire sulle altre parti della route-map.
- Inserisce una nuova clausola tra due clausole correnti.
Cisco consiglia di numerare le clausole in intervalli di 10 per riservare spazi numerici per l'inserimento di clausole in futuro, se necessario.
- Le route-map possono avere clausole permit e deny. In route-map ospf-to-eigrp, è presente una clausola deny (con numero sequenziale 10) e due clausole permit. La clausola deny impedisce la ridistribuzione delle route che soddisfano l'istruzione. Pertanto, si applicano le seguenti regole:
- Se si utilizza un ACL in una clausola permit della route-map, le route autorizzate dall'ACL vengono ridistribuite.
- Se si utilizza un ACL in una clausola deny della route-map, le route autorizzate dall'ACL non vengono ridistribuite.
- Se si utilizza un ACL in una clausola route-map allow o deny e l'ACL nega una route, la corrispondenza della clausola route-map non verrà trovata e verrà valutata la clausola route-map successiva.
- Ogni clausola della route-map ha due tipi di comandi:
- match — seleziona le route a cui deve essere applicata questa clausola.
- set — modifica le informazioni da ridistribuire nel protocollo di destinazione.
Per ogni route ridistribuita, il router valuta innanzitutto il comando match di una clausola nella route-map. Se i criteri di corrispondenza hanno esito positivo, la route viene ridistribuita o rifiutata come indicato dalla clausola di autorizzazione o di negazione e alcuni dei relativi attributi vengono modificati tramite i comandi set. Se i criteri di corrispondenza non vengono soddisfatti, questa clausola non è applicabile alla route e il software Cisco IOS procede alla valutazione della route rispetto alla clausola successiva nella route-map. L'analisi della route-map continua finché non viene trovata una clausola i cui criteri di corrispondenza soddisfano la route o finché non si raggiunge la fine della route-map.
- Il comando match o set può mancare o essere ripetuto più volte in ciascuna clausola, se viene soddisfatta una delle seguenti condizioni:
- Se in una clausola sono presenti più comandi match, devono essere tutti soddisfatti affinché la route possa soddisfare la clausola. In altre parole, viene applicato l'algoritmo AND.
- Se un comando match fa riferimento a più oggetti in un unico comando, è possibile utilizzare l'algoritmo logico OR. Ad esempio, nei comandi match ip address 101 121, una route è consentita se è consentita dall'elenco degli accessi 101 o dall'elenco degli accessi 121.
- Se il comando match non è presente, tutte le route soddisfano la clausola. Nell'esempio precedente, tutte le route che raggiungono la clausola 30 soddisfano il criterio; pertanto, la fine della route-map non viene mai raggiunta.
- Se un comando set non è presente in una clausola di autorizzazione route-map, la route viene ridistribuita senza modificare gli attributi correnti.
Non configurare un comando set in una clausola deny route-map perché la clausola deny impedisce la ridistribuzione della route. Nessuna informazione da modificare.
Una clausola route-map senza un comando matchset esegue un'azione. Una clausola di autorizzazione vuota consente la ridistribuzione delle restanti route senza alcuna modifica. Una clausola deny vuota non consente la ridistribuzione di altre route. Si tratta dell'azione predefinita se una route-map viene analizzata completamente ma non viene trovata alcuna corrispondenza esplicita.
In base alle informazioni contenute in questa sezione, la route-map OSPF/EIGRP esegue le seguenti operazioni:
- Impedisce la ridistribuzione di tutte le route OSPF esterne di tipo 2 con il tag impostato a 6.
- Ridistribuisce nel protocollo EIGRP tutte le route che corrispondono all'elenco dei prefissi pfx, con cinque valori metrici, ossia 40000, 1000, 255, 1 e 1500.
- Ridistribuisce tutte le altre route e imposta i tag a 8 (impostazione predefinita).
Comandi usati nelle route-map applicate alla ridistribuzione
In questa sezione vengono trattati questi argomenti:
Configurazione dei comandi match e set non supportati nelle route-map
Le route map sono meccanismi generici che possono essere utilizzati in molte configurazioni, incluso il comando redistribute descritto in precedenza. Ad esempio, è possibile configurare il comando match length in una route-map per il routing basato sulle policy (PBR) per eseguire una determinata azione quando vengono inoltrati pacchetti della lunghezza specificata. Tuttavia, il comando match length non deve essere utilizzato nelle route-map applicate alla ridistribuzione.
È possibile configurare i comandi match e set in una route-map non supportata (o senza effetto) in un contesto in cui sia stata applicata una route-map (o in cui verrà applicata in un momento successivo). Supponiamo ad esempio uno scenario in cui il comando match length della route-map sia stato applicato alla ridistribuzione. Nella ridistribuzione, la route-map viene applicata a ciascuna route inserita nella tabella di routing dal protocollo specificato nel comando redistribute. Pertanto, quando un router esegue una route-map, interpreta solo i comandi che hanno senso nel contesto dell'applicazione della route-map. In questo esempio, il comando match length menzionato nella mappa-percorso di ridistribuzione non ha alcun effetto sulla ridistribuzione. Rimane nella configurazione della route-map e può essere visualizzato nella configurazione in uso del router. Tuttavia, indipendentemente dal fatto che il comando sia presente o meno nella route-map, non ha alcune effetto sulla ridistribuzione della route.
Pertanto, il router consente di configurare tutti i tipi di comandi match e set, ma devono essere applicati logicamente alla situazione. In caso contrario, la configurazione potrebbe creare molta confusione o eseguire attività non corrette.
Non usare i comandi senza effetto nel contesto di una route-map, anche se sembrano innocui, in quanto potrebbero verificarsi i seguenti problemi:
-
I comandi senza effetto possono ostacolare i risultati che si desidera ottenere. Il problema può creare confusione.
-
I comandi non supportati possono essere supportati nelle versioni future del software Cisco IOS. Il comportamento della mappa di percorso può subire modifiche indesiderate dopo i futuri aggiornamenti del software.
-
Non tutti i comandi sono completamente innocui; prendiamo in considerazione, ad esempio, il comando set metric +/-, che specifica il cambio di metrica e viene utilizzato con l'annuncio delle route BGP. Questo comando può aumentare o diminuire la metrica corrente di una route di un determinato valore prima di propagarla.
La forma +/- di questo comando non è supportata da alcuni protocolli. Vedere Supporto mappa route EIGRP e in altri scenari viene interpretata come il comando set metric con il segno omesso. Si consideri ad esempio questa route-map:
!--- This redistribution route-map is very dangerous!
route-map ospf-to-ospf permit 10
set metric +2
!
Questa configurazione sembra ridistribuire tutte le route da un processo OSPF a un altro, mentre aumenta la metrica di tutte le route di due. Tuttavia, in realtà la metrica di tutte le route viene impostata sullo stesso valore, uguale a 2. Questa situazione è imprevista nella configurazione del router.
Questa route-map ha un effetto ancora meno intuitivo:
!--- This redistribution route-map is very dangerous!
route-map ospf-to-ospf permit 10
set metric +2
!
Anziché ridurre la metrica delle route ridistribuite, la configurazione imposta la metrica a 367 (un valore positivo, in quanto una metrica negativa non è possibile quando il comando set metric viene interpretato omettendo il segno).
Natura duplice del protocollo nella ridistribuzione della route-map
Le route-map applicate alla ridistribuzione usano due protocolli di routing:
Ogni protocollo di routing può supportare il proprio set di attributi di routing.
Nella configurazione della route-map di ridistribuzione:
-
I comandi match della route-map verificano gli attributi di una route che sono supportati dal protocollo che ha fornito la route originale per la ridistribuzione.
-
I comandi set della route-map modificano gli attributi delle route che sono supportati dal protocollo sui cui le route vengono ridistribuite.
I comandi sono elencati nella sezione Tabelle di supporto dei comandi di questo documento e sono divisi per match e set per evidenziare la natura duplice del protocollo nella ridistribuzione delle route-map.
Tabelle di supporto dei comandi
In questa sezione vengono descritti i comandi supportati nelle route-map e inclusi nei comandi redistribute. Esistono sette protocolli di routing da cui è possibile ridistribuire le route; tuttavia, ci sono solo cinque su cui le route possono essere ridistribuite. Le route connesse e statiche non sono protocolli di routing dinamici e possono fornire solo informazioni da ridistribuire in altri protocolli.
In questa sezione non sono inclusi i comandi match e set supportati nelle route map del software Cisco IOS versione 12.3, ma che non sono applicabili nel contesto di ridistribuzione.
I protocolli IS-IS (Intermediate System-to-Intermediate System) e BGP possono trasmettere le informazioni sulle route CLNS (Connectionless Network Service) insieme alle route IP. Per essere precisi, le tabelle in questa sezione riportano anche i comandi relativi al CLNS che possono essere usati nelle route-map di ridistribuzione di questi protocolli.
È possibile usare i protocolli RIP (Routing Information Protocol), OSPF, IS-IS e BGP per trasmettere le route IPv6; le route map di ridistribuzione per questi protocolli possono contenere comandi specifici di IPv6. I comandi match ip e set ip riguardano specificamente la ridistribuzione dei prefissi IPv4. I comandi match ipv6 e set ipv6 riguardano specificamente la ridistribuzione dei prefissi IPv6. È possibile usare i comandi match clns e set clns solo se si usa una route-map per ridistribuire le route CLNS sul protocollo di routing.
La tabella 1 e la tabella 2 usano le seguenti convenzioni:
-
I comandi supportati sono contrassegnati con aYes.
-
I comandi non supportati sono contrassegnati da un trattino lungo (—).
-
I comandi non supportati di cui è noto che eseguiranno un'azione (probabilmente un'azione non desiderata) sono contrassegnate da No.
Tabella 1 – Comandi route-map per trovare le route installate nelle tabelle di routing in base ai protocolli
Comando
|
Supporto di ridistribuzione
|
connesso
|
statico
|
RIP
|
EIGRP
|
OSPF
|
IS-IS
|
BGP
|
match clns address
|
—
|
Sì
|
—
|
—
|
—
|
Sì
|
Sì
|
match clns next-hop
|
—
|
Sì
|
—
|
—
|
—
|
Sì
|
—
|
match interface
|
Sì
|
Sì
|
Sì
|
Sì
|
Sì
|
Sì
|
—
|
match ip address
|
Sì
|
Sì
|
Sì
|
Sì
|
Sì
|
Sì
|
Sì
|
match ip address prefix-list
|
Sì
|
Sì
|
Sì
|
Sì
|
Sì
|
Sì
|
Sì
|
match ip next-hop
|
—
|
Sì
|
Sì
|
Sì
|
Sì
|
Sì
|
Sì
|
match ip next-hop prefix-list
|
—
|
No
|
No
|
No
|
No
|
No
|
No
|
match ip route-source
|
—
|
—
|
Sì
|
Sì
|
Sì
|
—
|
Sì
|
match ip route-source prefix-list
|
—
|
—
|
No
|
No
|
No
|
—
|
No
|
match ipv6 address [prefix-list]
|
Sì
|
Sì
|
Sì
|
—
|
Sì
|
Sì
|
Sì
|
match ipv6 next-hop [prefix-list]
|
—
|
Sì
|
Sì
|
—
|
—
|
—
|
Sì
|
match ipv6 route-source [prefix-list]
|
—
|
—
|
Sì
|
—
|
—
|
—
|
Sì
|
match metric
|
—
|
—
|
Sì
|
Sì
|
Sì
|
Sì
|
Sì
|
match policy-list
|
Sì
|
Sì
|
Sì
|
Sì
|
Sì
|
Sì
|
Sì
|
match route-type external
|
—
|
—
|
—
|
Sì
|
Sì
|
Sì
|
Sì
|
match route-type internal
|
—
|
—
|
—
|
Sì
|
Sì
|
—
|
Sì
|
match route-type local
|
—
|
—
|
—
|
—
|
—
|
—
|
Sì
|
match route-type nssa-external
|
—
|
—
|
—
|
—
|
Sì
|
—
|
—
|
match route-type {level-1|level-2}
|
—
|
—
|
—
|
—
|
—
|
Sì
|
—
|
match tag
|
—
|
Sì
|
Sì
|
Sì
|
Sì
|
Sì
|
Sì
|
Tabella 2 - Comandi che modificano gli attributi della route durante la ridistribuzione nel protocollo di destinazione
Comando
|
Supporto di ridistribuzione
|
RIP
|
EIGRP
|
OSPF
|
IS-IS
|
BGP
|
set as-path tag
|
—
|
—
|
—
|
—
|
Sì
|
set community
|
—
|
—
|
—
|
—
|
Sì
|
set ip next-hop
|
—
|
—
|
—
|
—
|
Sì
|
set ip next-hop peer-address
|
—
|
—
|
—
|
—
|
No
|
set ipv6 next-hop
|
—
|
—
|
—
|
—
|
Sì
|
set level {backbone|stub-area}
|
—
|
—
|
No
|
—
|
—
|
set level {level-1|level-2|level-1-2}
|
—
|
—
|
—
|
Sì
|
—
|
set local-preference
|
—
|
—
|
—
|
—
|
Sì
|
set metric
|
Sì
|
—
|
Sì
|
Sì
|
Sì
|
set metric +/-
|
No
|
—
|
No
|
No
|
No
|
set metric eigrp-metric
|
—
|
Sì
|
—
|
—
|
—
|
set metric +/- eigrp-metric
|
—
|
No
|
—
|
—
|
—
|
set metric-type internal
|
—
|
—
|
—
|
Sì
|
—
|
set metric-type external
|
—
|
—
|
—
|
Sì
|
—
|
set metric-type {type-1|type-2}
|
—
|
—
|
Sì
|
—
|
—
|
set nlri
|
—
|
—
|
—
|
—
|
Sì
|
set origin
|
—
|
—
|
—
|
—
|
Sì
|
set tag
|
Sì
|
Sì
|
Sì
|
—
|
—
|
set weight
|
—
|
—
|
—
|
—
|
Sì
|
Conclusioni
Le route-map sono strumenti molto potenti ma complessi per la ridistribuzione delle route. Permettono di gestire informazioni di routing molto dettagliate quando sono ridistribuite tra i protocolli. Tuttavia, possono essere pericolosi e possono creare black hole o un flusso di traffico non ottimale nella rete. È necessario progettare le reti con molta attenzione se si intende utilizzare complesse funzioni di ridistribuzione tra più protocolli di routing.
Informazioni correlate