Operazioni CEF su switch L3 vs router


21

Comprendo che gli switch L3 utilizzano CEF per un inoltro di pacchetti più veloce. Tuttavia, CEF non funzionerà per i pacchetti che devono essere sottoposti a NAT. Questo significa che CEF non è utilizzato dai router edge e dagli switch edge L3? L'utilità di CEF è limitata alla LAN?

Risposte:


8

NAT può ovviamente usare CEF. Questo è dalla guida di Cisco qui: http://www.cisco.com/en/US/tech/tk648/tk361/technologies_q_and_a_item09186a00800e523b.shtml

Q. What kind of routing performance can be expected when using Cisco IOS NAT?

    A. Cisco IOS NAT supports Cisco Express Forwarding switching, fast switching, and process switching. For 12.4T release and later, fast-switching path is no longer supported. For Cat6k platform, the switching order is Netflow (HW switching path), CEF, process path.

    Performance depends on several factors:

        The type of application and its type of traffic

        Whether IP addresses are embedded

        Exchange and inspection of multiple messages

        Source port required

        The number of translations

        Other applications running at the time

        The type of hardware and processor

Le piattaforme più grandi che eseguono IOS-XR, in cui la FIB viene distribuita alle schede di linea, supportano anche NAT di livello carrier, quindi la sua utilità non è limitata alla sola LAN.

Inoltre, molti switch L3 di Cisco semplicemente non fanno affatto NAT


2
Tecnicamente sul percorso CEF dall'ingresso all'uscita hai punti di inserimento per funzionalità (come NAT). Se esiste questo punto di inserimento, la funzione funziona con CEF abilitato. Ma a differenza della ricerca L3, potrebbe non esserci alcun miglioramento delle prestazioni osservabile per questa funzione, poiché CEF sta semplicemente fornendo dati per la funzione, non modificando la funzione stessa. Ma soprattutto si tratta di dettagli non importanti, dettaglio importante è, mantenere abilitato CEF.
ytti,

18

CEF è la parola di Cisco per il loro FIB. Quando nel interruttore L3 si fa 'sh ip CEF', nessuna di queste informazioni viene effettivamente utilizzato per spingere i pacchetti a tutti, questo è solo un software trie che viene utilizzato per popolare l'hardware ASIC.

CEF è il termine usato da Cisco per descrivere il proprio codice di archiviazione / recupero dei dati ottimizzato, non è una tecnologia specifica con una funzione specifica.

Nella maggior parte delle piattaforme HW non è possibile eseguire semplicemente la confezione senza CEF, poiché la struttura dei dati CEF è necessaria per compilare le informazioni specifiche HW.
Alcune funzionalità come MPLS dipendono anche dalla struttura dei dati CEF e quindi non funzioneranno senza di essa.

La commutazione LAN (L2) non viene sottratta tramite CEF, quindi non dipende affatto dal CEF.

Consiglio questo libro per informazioni abbastanza aggiornate su CEF (è scritto dopo una riscrittura CEF intorno a 12.2 S)

Se si vincola la definizione CEF di IP Trie FIB, ovviamente questo non può essere utilizzato per NAPT, perché non è possibile predeterminare cosa è nattato e dove. Ma, come spiegato, CEF non è una tecnologia specifica, è un concetto più ampio, e quindi è discutibile se CEF è o meno una funzionalità NAT, vorrei sbagliare a parte che è la funzionalità CEF:

bu.ip.fi#sh cef features global  | b Local
  Global Local features not attached to a specific interface:
     NAT
bu.ip.fi#

Non farei mai nulla senza CEF ed è probabilmente solo per motivi legacy che esiste la scelta di disabilitarlo. Considera Juniper, non hanno un termine specifico che usano per descrivere lo stesso concetto, in quanto non hanno bisogno di differenziarlo da qualche metodo alternativo, poiché tale alternativa inferiore non esiste.


5
Solo per aggiungere a questo: CEF è il percorso di commutazione, un albero di informazioni per l'inoltro delle informazioni e così via, quindi il nome 'CEF' può essere usato in molti modi e aggiunge confusione. In realtà, NAT è supportato nel percorso CEF (come lo sono anche migliaia di altre funzioni), ma le tabelle costruite CEF non contengono alcune delle informazioni necessarie per cambiare il pacchetto semplicemente utilizzandole come indicato da ytti, è necessario consultare voci aggiuntive (sono costruiti e gestiti dal codice NAT). Tuttavia, se il pacchetto può essere commutato nel percorso CEF senza ricorrere al cambio di processo, è comunque supportato da funzionalità CEF.
Łukasz Bromirski il

9

Questo significa che CEF non è utilizzato dai router edge e dagli switch edge L3? L'utilità di CEF è limitata alla LAN?

CEF è utile perché consente a un router di riscrivere rapidamente le informazioni di Layer2 durante le operazioni di inoltro di Layer3. I router WAN devono riscrivere le informazioni dell'intestazione Layer2 proprio come fanno gli switch LAN ... CEF è estremamente utile per entrambi i tipi di router.

A un CEF di alto livello svolge due funzioni:

  • Contiene una copia shadow della tabella di routing, che mappa il prefisso instradato su un hop successivo
  • Contiene un riferimento a una tabella di adiacenza di Layer2, che fornisce informazioni memorizzate nella cache sulle intestazioni di Layer2 necessarie per riscrivere il pacchetto IP tramite l'hop successivo di uscita menzionato nel primo punto.

Esempio:

Considera questo router che ha un collegamento WLC HDLC su Serial1 / 0 e una connessione LAN tramite FastEthernet0 / 0 ...

R1#show adjacency internal
Protocol Interface                 Address
IP       Serial1/0                 point2point(5)
                                   0 packets, 0 bytes
                                   0F000800             <--------- HDLC Header rewrite info
                                   CEF   expires: 00:02:17
                                         refresh: 00:00:17
                                   Epoch: 0
                                   Fast adjacency disabled
                                   IP redirect enabled
                                   IP mtu 1500 (0x0)
                                   Fixup disabled
                                   Adjacency pointer 0x6663D3E0, refCount 5
                                   Connection Id 0x000000
                                   Bucket 6

Supponiamo che un pacchetto IPv4 che va a 192.0.2.1 entri nel router da FastEthernet0 / 0 sulla LAN e debba uscire da Serial1 / 0 sulla WAN (il fatto che stia uscendo da Serial1 / 0 si trova nella tabella CEF ... e nel CEF tabella fa riferimento alla tabella di adiacenza).

Quando il router riceve il pacchetto IPv4 da FastEthernet0 / 0, il router deve rimuovere l'intestazione ethernet e anteporre l' intestazione HDLC , 0F000800poiché è una destinazione IPv4 ( 0x0800esiste un valore "tipo" HDLC per dire che l'intestazione successiva è IPv4).

Se CEF non ha memorizzato nella cache le informazioni (banali) di riscrittura per Serial1 / 0, è necessario cercare le informazioni manualmente a livello di switch di processo (che è molto lento). Questi valori della tabella di adiacenza non cambieranno finché l'incapsulamento su Serial1 / 0 non cambierà; pertanto, Cisco IOS memorizza nella cache le informazioni di riscrittura dell'adiacenza nella tabella di adiacenza.

Le informazioni di riscrittura diventano più coinvolte quando si guardano i frame-relay o i PVC ATM.

Questo documento su CCO (ID documento: 17812) potrebbe spiegare le cose meglio di me, rielaborando molto contenuto CCO


Le operazioni di livello 2 non saranno consultate solo dalla CAM? Le operazioni di livello 3 consulteranno la FIB, dove opera CEF e se è necessario un controllo più approfondito dei pacchetti a livello 3 (nel caso di un pacchetto che deve essere sottoposto a NAT) non renderà inutile CEF per i router WAN?
Michael,

1
CEF in particolare non è usato per / cache / adiacenza o ricerche l3, questo è "cambio rapido" (che non è più supportato). CEF è pre-build, quindi tutti i dati di cui potresti mai aver bisogno per adiacenza o ricerca l3, sono già in una struttura che è ottimale per la ricerca con vincoli stabiliti da una determinata piattaforma.
ytti,

@ytti, mi dispiace ma CEF fa le informazioni di adiacenza della cache, penso che ti stai confondendo su come viene popolata la cache (IMHO supponi che il pacchetto debba essere puntato per essere memorizzato nella cache, ma questo non è vero) ... Uno delle differenze sostanziali tra CEF e gli altri metodi di commutazione (come fast-switching) è che CEF è pre-calcolato. Tuttavia, CEF deve ancora memorizzare le informazioni nella cache, altrimenti deve essere esaminato a livello di switch di processo ... molto lentamente, e il motivo per cui abbiamo bisogno di CEF per entrambe le interfacce LAN e WAN.
Mike Pennington,

Penso che non siamo d'accordo su cosa significhi "memorizzazione nella cache", ma sì, il punto chiave è, è pre-build e per molte funzionalità (come MPLS) è solo una struttura per i dati, non esiste un archivio "switching process" per ripiegare a.
ytti,

@ChristianDelapena, stai confondendo le implementazioni hardware di una tabella di ricerca hardware (memoria CAM) con il processo software IOS che popola le tabelle di ricerca hardware (cioè CEF). CEF esiste quindi è possibile mappare una voce del prefisso layer3 al protocollo richiesto per riscrivere le informazioni su layer2 ... tuttavia, layer2 potrebbe essere costituito da molti protocolli diversi, come frame-relay, atm, packet-over-sonet, hdlc, ppp o ethernet. .. tutti questi protocolli possono contenere IPv4, ma hanno bisogno di campi specifici compilati nelle loro intestazioni prima di poter prendere quel pacchetto IP e incapsularlo per l'elaborazione del prossimo router WAN
Mike Pennington,
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.