Sommario

Introduzione

Comportamento CEF sulla piattaforma Cisco IOS XE

Verifica adiacenza CEF

Fenomeno comune osservato

Conclusioni

Introduzione

Questo documento descrive la funzionalità Cisco Express Forwarding (CEF) sui dispositivi basati su Cisco IOS® XE. A differenza di altri router Cisco, i router basati su Cisco IOS XE sono modulari non solo in termini di hardware, ma anche di software. Per questo motivo, anche il comportamento della maggior parte delle funzionalità e dei protocolli è leggermente diverso. Vedrai anche come vengono gestite le tabelle CEF sui dispositivi basati su Cisco IOS XE e come vengono gestite le tabelle Border Gateway Protocol (BGP) in termini di aggiornamenti CEF sulle piattaforme Cisco IOS XE.

Comportamento CEF sulla piattaforma Cisco IOS XE

Aggiornamento tabella CEF nella piattaforma XE

Sui dispositivi Cisco IOS XE come ASR1000, il control plane è separato dal piano di inoltro. Ogni aggiornamento che deve essere passato dal piano di controllo al piano dati deve passare attraverso il flusso di dati mostrato nel diagramma di flusso. Ad esempio, nel caso del CEF, quando si apprende un prefisso sul piano di controllo, questo aggiornamento passa dal piano di controllo (IOSd) al gestore di inoltro del piano di controllo (FMAN-RP). Il gestore di inoltro sul control plane utilizza utility del kernel come lsmpi, collegamenti Hyper-Transport (HT) e così via per passare l'aggiornamento al gestore di inoltro del piano di inoltro (ESP) (FMAN-FP). Il manager di inoltro invia l'aggiornamento al Quantum Flow Processor (QFP) che programma il microcodice QFP in modo da programmare finalmente il sottosistema QFP che esegue l'inoltro effettivo dei pacchetti nei dispositivi Cisco Aggregation Services Router (ASR).

Per controllare l'aggiornamento CEF su ciascuno di questi moduli software, è possibile utilizzare vari comandi. Questo è il processo passo passo.

Per controllare il CEF sul piano di comando:

Router#show ip cef

Prefix                     Next Hop             Interface

0.0.0.0/0                  no route

0.0.0.0/8                  drop

0.0.0.0/32                 receive

1.1.1.1/32                 10.10.10.1           GigabitEthernet0/0/0

2.2.2.2/32                 receive              Loopback1

10.10.10.0/24              attached             GigabitEthernet0/0/0

10.10.10.0/32              receive              GigabitEthernet0/0/0

Router#show platform software ip rp active cef summary

Forwarding Table Summary

Name             VRF id  Table id    Protocol         Prefixes    State

------------------------------------------------------------------------------------------------

Default          0       0           IPv4             20          OM handle: 0x404a4df8

Router#show platform software ip rp active cef detail

Forwarding Table

0.0.0.0/0 -> OBJ_ADJ_NOROUTE (0), urpf: 5

Prefix Flags: Default, Default route handler

OM handle: 0x404a91e8

0.0.0.0/8 -> OBJ_ADJ_DROP (0), urpf: 13

Prefix Flags: unknown

OM handle: 0x404bd5e8

0.0.0.0/32 -> OBJ_ADJ_RECEIVE (0), urpf: 12

Prefix Flags: Receive

OM handle: 0x404bd298

1.1.1.1/32 -> OBJ_ADJACENCY (16), urpf: 20

Prefix Flags: unknown

OM handle: 0x404fec70

Per controllare i dettagli CEF nel piano di inoltro (ESP):

Router#show platform software ip fp active cef detail

Forwarding Table

0.0.0.0/0 -> OBJ_ADJ_NOROUTE (0), urpf: 5

Prefix Flags: Default, Default route handler

aom id: 73, HW handle: 0x4310df8 (created)

0.0.0.0/8 -> OBJ_ADJ_DROP (0), urpf: 13

Prefix Flags: unknown

aom id: 90, HW handle: 0x4362cd8 (created)

0.0.0.0/32 -> OBJ_ADJ_RECEIVE (0), urpf: 12

Prefix Flags: Receive

aom id: 86, HW handle: 0x4333568 (created)

127.0.0.0/8 -> OBJ_ADJ_DROP (0), urpf: 13

Prefix Flags: unknown

aom id: 91, HW handle: 0x4387048 (created)

224.0.0.0/4 -> OBJ_ADJ_DROP (0), urpf: 13

Prefix Flags: unknown

aom id: 92, HW handle: 0x43870d8 (created)

Router#show platform software ip fp active cef summary

Forwarding Table Summary

Name             VRF id  Table id    Protocol         Prefixes    State

------------------------------------------------------------------------------------------------

Default          0       0           IPv4             20          hw: 0x43010a8 (created)

Questi comandi possono essere utilizzati anche quando si verificano problemi CEF sul dispositivo. Ad esempio, sebbene le route vengano apprese, i prefissi non sono raggiungibili. È possibile esaminare tutti i moduli per verificare se tutte le tabelle CEF sono aggiornate correttamente o meno.

Verifica adiacenza CEF

Analogamente, potete controllare ulteriormente la tabella adiacente CEF per tutte le informazioni sul layer 2 relative ai prefissi adiacenti.

Per controllare l'adiacenza CEF sul piano di comando:

Router#show adjacency gigabitEthernet 0/0/0 detail

Protocol Interface                 Address

IP       GigabitEthernet0/0/0      10.10.10.1(11)

72772 packets, 4622727 bytes

epoch 0

sourced in sev-epoch 0

Encap length 14

0062EC6B89000062EC6BEC000800

L2 destination address byte offset 0

L2 destination address byte length 6

Link-type after encap: ip

ARP

Router#show platform software adjacency rp active

Number of adjacency objects: 4

Adjacency id: 0x10 (16)

Interface: GigabitEthernet0/0/0, IF index: 8, Link Type: MCP_LINK_IP

Encap: 0:62:ec:6b:89:0:0:62:ec:6b:ec:0:8:0

Encap Length: 14, Encap Type: MCP_ET_ARPA, MTU: 1500

Flags: no-l3-inject

Incomplete behavior type: None

Fixup: unknown

Fixup_Flags_2: unknown

Nexthop addr: 10.10.10.1

IP FRR MCP_ADJ_IPFRR_NONE 0

OM handle: 0x404ea1d8

È necessario annotare l'ID adiacenza per controllare i dettagli relativi a questa particolare adiacenza nel piano di inoltro. In questo caso, l'ID adiacente è 16.

Per controllare l'adiacenza CEF sul piano di inoltro:

Router#show platform software adjacency fp active index 16

Number of adjacency objects: 4

Adjacency id: 0x10 (16)

Interface: GigabitEthernet0/0/0, IF index: 8, Link Type: MCP_LINK_IP

Encap: 0:62:ec:6b:89:0:0:62:ec:6b:ec:0:8:0

Encap Length: 14, Encap Type: MCP_ET_ARPA, MTU: 1500

Flags: no-l3-inject

Incomplete behavior type: None

Fixup: unknown

Fixup_Flags_2: unknown

Nexthop addr: 10.10.10.1

IP FRR MCP_ADJ_IPFRR_NONE 0

aom id: 114, HW handle: 0x43ae148 (created)

Qui, si vede che le informazioni di adiacenza CEF è popolato in Gestione inoltro (FMAN) su FP. FMAN FP invia queste informazioni al driver del client QFP che programma la tabella di inoltro QFP che sarà utilizzata per l'inoltro alla fine. Dal comando precedente, copiare l'handle dell'hardware per controllare le informazioni di inoltro su QFP.

Router#show pla hard qfp act feature cef-mpls adjacency handle 0x43ae148

Adj Type: : IPV4 Adjacency

Encap Len: : 14

L3 MTU: : 1500

Adj Flags: : 0

Fixup Flags: : 0

Output UIDB: :

Interface Name: GigabitEthernet0/0/0

Encap: : 00 62 ec 6b 89 00 00 62 ec 6b ec 00 08 00

Next Hop Address: : 10.10.10.1

Lisp Fixup HW Ptr: : 0x767b28f0

Next HW OCE Ptr: : 00000000

CM   HW    Ptr:: 946947588

Fixup_Falgs_2: : 0

In questo caso, tutte le tabelle adiacenti vengono aggiornate correttamente e il router è pronto per l'inoltro. Tuttavia, l'intero processo di isolamento richiede molti comandi e la conoscenza dell'architettura modulare ad un certo livello. Per semplificare questa operazione, è stato introdotto di recente un comando che fornisce informazioni consolidate da tutti i moduli.

Nota: Per i dispositivi con una tabella di routing lunga, l'esecuzione di questo comando potrebbe richiedere alcuni minuti.

Il comando è show ip cef platform detail.

Fenomeno comune osservato

Per tutti i dispositivi modulari Cisco IOX XE nelle situazioni in cui viene appreso un numero elevato di prefissi sul router, normalmente è necessario del tempo per programmare tutti i prefissi in tutti i moduli di inoltro. Questa condizione può essere rilevata molto frequentemente sui router posizionati nella tabella di routing BGP completa di provider edge learning dell'ISP.

Nel Technical Assistance Center sono stati ricevuti pochi casi in cui è stato rilevato che dopo l'accensione della sessione BGP e l'aggiornamento della route BGP nella tabella di routing, i prefissi non sono raggiungibili per un determinato periodo di tempo. In genere, sono necessari 20-30 secondi e dipende dalla piattaforma del router su cui eseguire il ping di tali prefissi. Di seguito è riportato un esempio di scenario di test:

Pagent è uno strumento per la generazione del traffico che viene usato per inviare un milione di route BGP al router ASR1002HX.

Anche se le route BGP vengono apprese sul dispositivo e la tabella CEF del control plane viene aggiornata, la rete interna non è in grado di eseguire il ping dei prefissi appresi per alcuni secondi. Sulla base della discussione sul CEF, è chiaro che è necessario aggiornare le voci del CEF su ciascun modulo software. È possibile osservare una conseguenza di questo comportamento in questo particolare scenario in cui i prefissi non sono raggiungibili a causa del fatto che non sono stati aggiornati nella tabella di inoltro ESP. Di seguito vengono riportati alcuni output di ASR1002HX come riferimento.

Le tabelle BGP vengono aggiornate con tutte le route da un milione.

Router#show ip bgp summary

BGP router identifier 1.1.1.1, local AS number 100

BGP table version is 1, main routing table version 1

1000002 network entries using 248000496 bytes of memory

1000002 path entries using 128000256 bytes of memory

100002/0 BGP path/bestpath attribute entries using 26400528 bytes of memory

100000 BGP AS-PATH entries using 5402100 bytes of memory

0 BGP route-map cache entries using 0 bytes of memory

0 BGP filter-list cache entries using 0 bytes of memory

BGP using 407803380 total bytes of memory

BGP activity 8355774/7355772 prefixes, 9438985/8438983 paths, scan interval 60 secs

Neighbor        V           AS  MsgRcvd MsgSent   TblVer  InQ OutQ             Up/Down                                 State/PfxRcd

10.10.10.2      4          100       5       2              1    0             0 00:00:58                                         1

20.20.20.2      4          100  100002       3              1    0             0 00:01:02                                   1000000

Sebbene la tabella BGP contenga un milione di prefissi, la tabella CEF del gestore di inoltro ha ancora appreso solo 48613 prefissi.

Se si attendono 20-30 secondi, viene visualizzata la tabella CEF FP completamente aggiornata con un milione di prefissi.

Router#show platform software ip fp active cef summary

Forwarding Table Summary

Name             VRF id  Table id    Protocol         Prefixes    State

------------------------------------------------------------------------------------------------

Default          0       0           IPv4             48613       hw: 0x2edce98 (created)

Conclusioni

Quando si utilizzano dispositivi ad architettura modulare basati su Cisco IOS XE per l'inoltro di problemi correlati, è necessario verificare le informazioni relative alla tabella di inoltro da tutti i moduli software. Lo scenario BGP illustrato può essere considerato come un comportamento previsto con questa piattaforma in quanto il dispositivo impiega alcuni secondi per aggiornare i prefissi in tutti i moduli software.