Contents

Introduction

Comportamento CEF na plataforma Cisco IOS XE

Verificar a adjacência do CEF

Fenômeno comum observado

Conclusão

Introduction

Este documento descreve o recurso Cisco Express Forwarding (CEF) em dispositivos baseados no Cisco IOS® XE. Diferentemente de outros roteadores Cisco, os roteadores baseados no Cisco IOS XE são modulares por natureza não apenas em termos de hardware, mas também de software. Devido a essa natureza, o comportamento da maioria dos recursos e protocolos também é um pouco diferente. Você também verá como as tabelas CEF são mantidas em dispositivos baseados no Cisco IOS XE e como as tabelas BGP (Border Gateway Protocol) são gerenciadas em termos de atualizações CEF em plataformas Cisco IOS XE.

Comportamento CEF na plataforma Cisco IOS XE

Atualização da tabela CEF dentro da plataforma XE

Nos dispositivos Cisco IOS XE, como o ASR1000, o plano de controle é separado do plano de encaminhamento. Sempre que qualquer atualização precisar ser passada do plano de controle para o plano de dados, ela deve passar pelo fluxo de dados mostrado no diagrama de fluxo. Por exemplo, no caso do CEF sempre que qualquer prefixo é aprendido no plano de controle, essa atualização passa do plano de controle (IOSd) para o gerenciador de encaminhamento do plano de controle (FMAN-RP). O gerenciador de encaminhamento no plano de controle usa utilitários de kernel como lsmpi, links Hyper-Transport (HT) e assim por diante para passar a atualização para o gerenciador de encaminhamento de plano de encaminhamento (ESPs) (FMAN-FP). O gerenciador de encaminhamento envia a atualização ao QFP (Quantum Flow Processor) que programa o microcódigo QFP para programar finalmente o subsistema QFP que faz o encaminhamento real de pacotes nos dispositivos do ASR (Aggregation Services Router) da Cisco.

Há vários comandos que você pode usar para verificar a atualização do CEF em cada um desses módulos de software. Esse é o processo passo a passo para isso.

Para verificar o CEF no plano de controle:

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

Para verificar os detalhes do CEF no plano de encaminhamento (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)

Esses comandos também podem ser usados quando você enfrenta problemas de CEF no dispositivo. Por exemplo, embora as rotas sejam aprendidas, os prefixos não podem ser alcançados. Você pode navegar por todos os módulos para ver se todas as tabelas CEF estão atualizadas corretamente ou não.

Verificar a adjacência do CEF

Da mesma forma, você pode verificar ainda mais a tabela de adjacência CEF para todas as informações da Camada 2 sobre os prefixos adjacentes.

Para verificar a adjacência de CEF no plano de controle:

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

Você precisa observar o ID de adjacência para verificar os detalhes sobre essa adjacência específica no plano de encaminhamento. Nesse caso, o ID de adjacência é 16.

Para verificar a adjacência de CEF no plano de encaminhamento:

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)

Aqui, você vê que as informações de adjacência do CEF são preenchidas no gerenciador de encaminhamento (FMAN) no FP. O FMAN FP envia essas informações ao driver do cliente QFP, que programa a tabela de encaminhamento QFP que será usada eventualmente para encaminhamento. Do comando anterior, copie o identificador de hardware para verificar as informações de encaminhamento no 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

Aqui, você sabe que todas as tabelas de adjacência são atualizadas corretamente e o roteador está encaminhando pronto. No entanto, todo o processo de isolamento tem muitos comandos e exige conhecimento da arquitetura modular em um certo nível. Assim, para simplificar isso, foi introduzido recentemente um comando que dá informações consolidadas de todos os módulos.

Note: Para os dispositivos com uma tabela de roteamento longa, esse comando pode levar vários minutos para ser executado.

O comando é show ip cef platform detail.

Fenômeno comum observado

Para todos os dispositivos modulares do Cisco IOX XE nas situações em que um grande número de prefixos é aprendido no roteador, normalmente leva algum tempo para programar todos os prefixos em todos os módulos de encaminhamento. Isso pode ser visto com muita frequência nos roteadores que estão na borda do provedor aprendendo a tabela de roteamento BGP completa do ISP.

No Centro de Assistência Técnica, houve poucos casos recebidos em que se viu que depois que a sessão BGP é ativada e mesmo a rota BGP é atualizada na tabela de roteamento, os prefixos não podem ser alcançados por um tempo. Normalmente, leva de 20 a 30 segundos e depende da plataforma do roteador para fazer ping nesses prefixos. Por exemplo, aqui está um cenário de teste:

O Pagent é uma ferramenta gerador de tráfego que é usada para enviar um milhão de rotas BGP para o roteador ASR1002HX.

Aqui você vê que, mesmo se as rotas BGP forem aprendidas no dispositivo e a tabela CEF do plano de controle for atualizada, a rede interna não poderá fazer ping nos prefixos aprendidos por mais alguns segundos. Com base na discussão sobre o CEF, é claro que você precisa atualizar as entradas do CEF em cada módulo de software. Você pode ver uma consequência desse comportamento neste cenário específico em que os prefixos não podem ser alcançados devido ao fato de não terem sido atualizados na tabela de encaminhamento ESP. Aqui estão algumas saídas do ASR1002HX para referência.

As tabelas BGP são atualizadas com todas as rotas de um milhão.

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

Embora a tabela BGP tenha um milhão de prefixos, a tabela CEF do gerenciador de encaminhamento tinha apenas 48613 prefixos aprendidos ainda.

Se você esperar de 20 a 30 segundos, verá a tabela CEF FP totalmente atualizada com um milhão de prefixos.

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)

Conclusão

Ao lidar com dispositivos de arquitetura modular baseados no Cisco IOS XE para encaminhar problemas relacionados, você deve verificar as informações relacionadas à tabela de encaminhamento de todos os módulos de software. O cenário BGP explicado pode ser considerado como comportamento esperado com esta plataforma, pois o dispositivo leva alguns segundos para atualizar os prefixos em todos os módulos de software.