Você está na página 1de 5

Tecnologia Cisco CEF no Encaminhamento de Pacotes

CEF (Cisco Express Forwarding) é o nome dado à avançada tecnologia de


encaminhamento layer-3 empregada na maioria dos equipamentos da Cisco. Uma
definição comumente adotada pela Cisco destaca que "a tecnologia CEF otimiza o
desempenho e a escalabilidade para redes com grande volumes e diferentes padrões
de tráfego, como ocorre em ambientes de produção que possuem muitas aplicações
web baseadas nos padrões da Internet."

Técnicamente essa é uma definição correta da tecnologia CEF, mas o que realmente
isso quer dizer e como essa tecnologia implica em excelente desempenho no processo
de comutação/encaminhamento de pacotes? É essa resposta o objeto de discussão
desse artigo...

Antes de entrar na discussão da tecnologia CEF propriamente dita é conveniente


apresentar um breve histórico da evolução das tecnologias de comutação adotadas
pela Cisco, a saber:

 Process Switching
 Fast Switching
 CEF

A mais antiga e simples das técnicas de encaminhamento é denominada Process-


Switching e consiste basicamente na necessidade de ação direta do processador
principal na decisão de encaminhamento de cada pacote individual. Essa técnica
possui desempenho ruim, ou seja, é lenta, porque cada pacote entrante em uma
interface de rede passa, minimamente, pelas seguintes etapas:

1. Leitura e Retirada do Cabeçalho de Camada 2


2. Cópia do Pacote de Camada 3 na Memória da CPU (Plano de Controle)
3. Lookup no Plano de Controle e Decisão de Encaminhamento
4. Realização de Processos Complementares
5. Recálculo da Função CRC p/ Geração de Novo Cabeçalho Layer-2
6. Reencapsulamento Layer-2 do Pacote Layer-3
7. Encaminhamento do Quadro na Interface de Saída 

Acontece que todo esse processo é bastante oneroso no consumo de processamento,


principalmente no que diz respeito ao lookup no plano de controle (destaque em
vermelho) que envolve outros protocolos como o ARP (IPv4) ou NDP (IPv6) para
descobrir o endereço físico associado ao IP do vizinho. Essa é a forma tradicional de
encaminhamento adotada na maioria dos roteadores residenciais e de pequeno porte
(SOHO), inclusive em vários Sistemas Operacionais terminais, o que explica esses
sistemas/dispositivos não terem o mesmo desempenho de um roteador profissional. 

Uma alternativa a esse processamento individual ocorre quando uma interface de um


roteador gera uma interrupção no processador principal ao receber um pacote para que
a decisão de encaminhamento seja tomada com base em tabelas auxiliares (estruturas
de dados) previamente armazenadas. Por enquanto essa é uma descrição bastante
generalista, mas é válido associar essa segunda abordagem com as técnicas Fast-
Switching e CEF.

A diferença entre as técnicas Fast-Switching e CEF consiste na forma pela qual cada


uma dessas técnicas irá construir/armazenar essas estruturas de dados que serão
posteriormente utilizadas no processo de decisão para agilizar o encaminhamento dos
pacotes.

Através da técnica Fast-Switching o processo anterior ocorre apenas para o primeiro


pacote de um mesmo fluxo. O primeiro pacote de um fluxo é copiado na memória da
CPU (plano de controle) para que seja realizado o procedimento de busca (lookup) e
reencapsulamento em um novo frame, afinal a cada salto mudam as informações dos
vizinhos (origem/destino). A diferença é que o processamento desse primeiro pacote
implica na construção de uma estrutura de dados chamada "fastswitching cache" que
será consultada no processo de encaminhamento dos demais pacotes que pertençam
ao mesmo fluxo (direcionados para o mesmo destino), dispensando, assim, todo o
processamento anteriormente mencionado para cada pacote individual. Nessa tabela
ficam armazenadas informações sobre os endereços IP e MAC do destino e sua
respectiva interface de saída.

Podemos dizer que Fast-Switching também utiliza a CPU (plano de controle), no


entanto o resultado da tomada de decisão de encaminhamento de um pacote implica
no armazenamento em cache (plano de dados) de como alcançar um dado destino.
Todos os demais pacotes direcionados para o mesmo destino são encaminhados mais
rapidamente através da consulta desse cache, dispensando o processo
de lookup tradicional por pacote individual. O ponto negativo é que cada novo fluxo irá
requerer a intervenção do processador principal, uma vez que cada pacote
encaminhado para um destino desconhecido nas tabelas de cache será marcado
como "punted" e direcionado para a CPU do plano de controle, aumentando a latência
de encaminhamento.

A tecnologia CEF representa uma evolução do processo de encaminhamento adotado


nos roteadores para que esses dispositivos sejam capazes de encaminhar pacotes
mais rapidamente com melhor desempenho. No CEF existem duas estruturas de dados
principais:

 Tabela de Adjacência: Tomando como referência a tecnologia Ethernet,


essa(s) tabela(s) é/são construída(s) a partir da Tabela ARP para mapear endereços IP
em MAC com o objetivo de otimizar o desempenho com menos ação dos protocolos
ARP/NDP. Ela também é construída para armazenar informações de endereços físicos
de outras tecnologias, a exemplo de Frame-Relay, ATM, PPP, etc.

 FIB (Forwarding Information Base): É uma tabela bastante enxuta que fica


armazenada no plano de dados e que é construída a partir da tabela de roteamento
que, por sua vez, é construída a partir da RIB (Routing Information Base) armazenada
no plano de controle do roteador. Essa tabela é construída a partir de tecnologia
proprietária da Cisco e possui excelente desempenho no processo de busca a
informações sobre os prefixos de rede, próximo salto e interface de saída.

Fonte: CCNP Practical Studies: Switching (Justin Menga)

Com a adoção da tecnologia CEF o tratamento dos pacotes passa pelas seguintes
etapas:

1. Leitura e Retirada do Cabeçalho de Camada 2


2. Lookup na Tabela FIB (Plano de Dados)
3. Leitura na Tabela de Adjacência
4. Reencapsulamento Layer-2 do Pacote Layer-3
5. Encaminhamento na Interface de Saída

Reparem na figura que o lookup é feito no próprio plano de dados através da FIB, sem
necessidade de resolução nenhuma no plano de controle. Um roteador com CEF ativo
(padrão) não precisa marcar pacotes como "punted" (exceto aqueles destinados a
interfaces diretamente conectadas) porque se um dado destino não estiver na FIB,
então ele não existe!
Em síntese, o segredo do desempenho otimizado da tecnologia CEF é resultado direto
do método proprietário adotado pela Cisco para construir a FIB no plano de dados a
partir da RIB no plano de controle. Uma vez que essa estrutura fica no plano de dados,
não há necessidade de consumo da CPU do plano de controle. Por fim, trago alguns
comandos de visualização que devem ajudar o leitor a enxergar melhor a
implementação prática desses conceitos nos dispositivos roteadores:

!--- Visualização da Tabela de Adjacência do CEF


Router# show adjacency
Router# show adjacency summary
Router# show adjacency detail
Router# show adjacency internal

!--- Visualização da Tabela FIB do CEF


Router# show ip cef

!--- Visualização do Cache do FastSwitching


Router# show ip cache [opções]

Você também pode gostar