Introduzione
Questo documento descrive Cisco Express Forwarding (CEF).
Prerequisiti
Requisiti
Nessun requisito specifico previsto per questo documento.
Componenti usati
Il documento può essere consultato per tutte le versioni software o hardware.
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.
Panoramica
La commutazione CEF (Cisco Express Forwarding) è una forma proprietaria di commutazione scalabile destinata a risolvere i problemi associati al demand caching. CEF è un'architettura di switching IP di layer 3 avanzata integrata in Cisco IOS che sostituisce il vecchio modello route-cache. Mantiene una propria tabella di inoltro altamente ottimizzata oltre a tabelle adiacenti separate, consentendo l'inoltro di pacchetti con velocità di linea con un coinvolgimento minimo della CPU. Ogni volta che un pacchetto arriva su un router o uno switch, il dispositivo deve decidere a chi inoltrarlo. Una volta confermata la validità del pacchetto e superata qualsiasi lista di controllo degli accessi o altre condizioni di perdita, il dispositivo consulta la sua tabella di routing per determinare l'interfaccia in uscita migliore. I router e gli switch Cisco possono eseguire questa ricerca in tre modi: commutazione di contesto, switching rapido o Cisco Express Forwarding.
Con il CEF, il dispositivo calcola in modo proattivo tutte le route e le installa in due strutture di dati ottimizzate, la base di informazioni di inoltro (FIB, Forwarding Information Base) e le tabelle adiacenti, anziché attendere che ciascun pacchetto attivi una ricerca. Sulle piattaforme moderne, queste tabelle sono sincronizzate con il piano di inoltro hardware, il che produce un sovraccarico inferiore della CPU per pacchetto, una velocità di trasmissione più elevata per pacchetto al secondo e un comportamento di inoltro coerente. Per questa ragione il CEF è abilitato per impostazione predefinita sulle moderne piattaforme Cisco e rimane fondamentale per le reti IP ad alte prestazioni.
Componenti di base CEF
- Tabella della base di informazioni sull'inoltro (FIB) - Il CEF utilizza FIB per prendere decisioni basate sul prefisso della destinazione IP, in altre parole, il FIB è il database da chi raggiungere per il CEF. Il FIB è un mirror uno a uno del RIB (IP Routing Information Base) del router, ma viene riorganizzato per velocizzare la ricerca del prefisso nell'hardware. Ogni volta che la tabella di routing IP cambia (a causa di aggiornamenti del protocollo di routing, modifiche statiche della route e così via), tali modifiche vengono immediatamente applicate nel file FIB in modo che l'inoltro utilizzi sempre informazioni aggiornate sulla topologia. Ogni voce FIB è costituita da un prefisso di destinazione e da uno o più puntatori dell'hop successivo; quando è configurato ECMP (Equal-Cost Multipath), il FIB contiene più puntatori per prefisso per supportare il bilanciamento del carico per pacchetto o per destinazione. Contenendo tutte le route note (anziché solo una cache della domanda di route utilizzate di recente), FIB elimina la necessità di manutenzione della cache route e impedisce il thrash della cache durante la modifica della topologia, offrendo prestazioni di inoltro stabili e prevedibili.
-
Tabella di adiacenza: i nodi della rete sono definiti adiacenti se possono raggiungere l'uno l'altro con un solo hop attraverso un livello di collegamento. Oltre alla FIB, il CEF utilizza tabelle adiacenti per aggiungere le informazioni sull'indirizzamento di layer 2 (indirizzo MAC, tag VLAN, interfaccia e così via) necessarie per inoltrare il pacchetto su tale collegamento. La tabella adiacente mantiene gli indirizzi dell'hop successivo di layer 2 per tutte le voci FIB. Queste voci vengono popolate quando vengono individuate le adiacenze, ad esempio tramite meccanismi quali il protocollo ARP (Address Resolution Protocol).
Modalità operative CEF
-
Modalità CEF centrale: quando la modalità CEF centrale è attivata, le tabelle FIB e adiacenti risiedono sul processore di routing e quest'ultimo esegue l'inoltro rapido. È possibile utilizzare la modalità CEF quando le schede di linea non sono disponibili per la commutazione CEF, quando è necessario utilizzare funzioni non compatibili con la commutazione CEF distribuita o quando si utilizza una piattaforma non distribuita.
-
Modalità CEF (dCEF) distribuita: quando la modalità dCEF è attivata, le schede di linea mantengono copie identiche delle tabelle FIB e adiacenti. Le schede di linea sono in grado di eseguire l'inoltro rapido da sole, riducendo il carico sul processore principale e migliorando le prestazioni del sistema. Questa modalità è destinata ad aumentare la scalabilità ed è disponibile in piattaforme distribuite o modulari in grado di distribuire le operazioni di elaborazione su due o più schede di linea. dCEF utilizza un meccanismo IPC (Inter-Process Communication) per garantire la sincronizzazione delle FIB e delle tabelle adiacenti sul processore di routing e sulle schede di linea.
CEF Basic Packet Flow
Nell'elenco di passaggi successivo viene spiegato come commutare un pacchetto con CEF:
- Il processore di interfaccia del dispositivo legge il pacchetto dal supporto di rete e lo memorizza nella memoria buffer, chiamata anello di ricezione (RX) dell'interfaccia.
- Il processore di interfaccia del dispositivo invia un interrupt di ricezione al processore principale. Il resto della commutazione si verifica durante l'interrupt.
- Il dispositivo esegue una ricerca della destinazione nel FIB con la corrispondenza più lunga, utilizzando l'indirizzo IP di destinazione come chiave di ricerca. Se la ricerca FIB ha esito negativo, il pacchetto viene scartato. Se la ricerca ha esito positivo, viene selezionato un percorso FIB e il dispositivo utilizza il puntatore per la voce adiacente corrispondente.
- Il dispositivo riscrive l'intestazione di layer 2 utilizzando la stringa di incapsulamento della tabella adiacente e posiziona il pacchetto nella coda di output corretta per la trasmissione sull'interfaccia in uscita.
- Il pacchetto commutato correttamente viene quindi accodato sull'anello di trasmissione (TX) dell'interfaccia in uscita.
Informazioni correlate