CISCO

CISCO – CAM TCAM

Entenda as memorias de Switches e roteadores da cisco

Publicado

em

As vezes me pergunto como a tabela CAM e sua irmã mais avançada, a TCAM, são tão fascinantes porque funcionam de maneira diferente da RAM tradicional que conhecemos. E porque era difícil para mim entender isso. E realmente lendo muito encontrei uma forma de entender e vou explicar do meu jeito.

Memoria CAM e TCAM

Quando TCAM – Ternary Content Addressable Memory é usado em roteadores L3, ele é usado para realizar uma pesquisa de endereço mais rápida para permitir o roteamento rápido.

Em switches, CAM (Content Addressable Memory) é usado para construir e consultar a tabela de endereços MAC para tomar decisões de encaminhamento L2. Ao implementar a pesquisa de prefixo de roteador no TCAM, estamos movendo o processo de pesquisa da Base de Informações de Encaminhamento do software para o hardware.

CAM é um tipo especial de memória usado pelos switches Cisco. No caso da RAM, o IOS utiliza um endereço de memória para obter os dados armazenados neste local de memória, enquanto no CAM o IOS faz o contrário. Ele usa os dados e o CAM retorna o endereço onde os dados estão armazenados. O CAM também é considerado mais rápido que o RAM, pois o CAM pesquisa toda a memória em uma única operação.

No CAM é usada a representação binária exata de uma palavra, em um aplicativo de rede essa palavra provavelmente será um endereço IP, por exemplo 11000000.10101000.01110001.00000000 (192.168.1.0). Embora isso seja definitivamente útil, as redes operam com uma grande coleção de endereços IP, e armazenar cada um individualmente exigiria uma quantidade significativa de memória.

Na rede, essas palavras de dados sequenciais são prefixos IP. Portanto, para o exemplo acima, se quisermos armazenar a coleção desse endereço IP e os 254 IPs que o seguem, no TCAM ficaria assim: 11000000.10101000.01110001.XXXXXXXXXX (192.168.1.0/24).

Este método de armazenamento significa que podemos fazer perguntas ao ASIC como “para onde devo enviar pacotes com endereço IP de destino 192.168.1.19?”, para o qual o ASIC pode ter uma resposta pronta em um único ciclo de clock, pois não precisa percorre toda a memória, mas pode referenciar diretamente key(chave). Essa resposta geralmente é uma referência a um endereço de memória na RAM tradicional, onde mais dados podem ser armazenados, como a porta de saída.

Ao implementar o TCAM, permitimos que o processo de busca de endereços não dependa do número de entradas de prefixo, pois a principal característica do TCAM é que ele é capaz de buscar todas as suas entradas em paralelo. Isso significa que não importa quantos prefixos de endereço sejam armazenados no TCAM, o roteador encontrará a correspondência de prefixo mais longa em uma única operação. Um pouco confuso, então vamos ver a próxima foto.

A Fig 1 mostra como a pesquisa FIB funciona e aponta para uma entrada na tabela de adjacências. O processo de pesquisa passa por todas as entradas na tabela TCAM em uma única operação.

CAM VS TCAM

Os switches multicamadas encaminham quadros e pacotes em velocidade de fio através do uso de hardware ASIC (Application Specific Integrated Circuits). Componentes específicos da camada 2 e da camada 3, como tabelas de roteamento (para onde esse pacote vai), listas de controle de acesso (ACLs) (este pacote é permitido), são armazenados em cache no hardware. As tabelas de roteamento, comutação, ACL e QoS (qual prioridade deve ser dada a este pacote), são armazenadas na memória de tabela de alta velocidade para que decisões e restrições de encaminhamento possam ser feitas em hardware de alta velocidade. Os switches consultam essas tabelas para obter informações de resultados, como determinar se um pacote com um endereço IP de destino específico deve ser descartado com base em uma ACL. Como resultado do uso do TCAM, a aplicação de ACLs não afeta o desempenho do switch.

O Router

Em roteadores, como roteadores Cisco high-end, o TCAM é usado para habilitar o CEF – Cisco Express Forwarding em hardware. O CEF está construindo a tabela FIB da tabela RIB (tabela de roteamento) e a tabela de adjacência da tabela ARP para construir cabeçalhos L2 pré-preparados para cada próximo vizinho de salto.

O TCAM encontra, em uma tentativa, cada prefixo de destino dentro do FIB. Cada prefixo em FIB aponta para o cabeçalho L2 da tabela de adjacências previamente preparada para cada interface de saída. O roteador cola o cabeçalho do pacote em questão e o envia por essa interface. Parece rápido fazer assim? É tão rápido!

SWITCH

No mundo dos switches de camada 2, a memória CAM é mais comumente usada, pois permite que o switch construa e pesquise tabelas de endereços MAC. O endereço MAC é sempre exclusivo, portanto, a arquitetura CAM e o recurso de pesquisa têm apenas correspondências exatas e são perfeitos para pesquisa de endereços MAC. Isso dá ao switch a capacidade de verificar todos os endereços MAC de todos os hosts conectados a todas as portas em uma operação e descobrir para onde enviar os pacotes recebidos.

As tabelas CAM fornecem apenas dois resultados: 0 (verdadeiro) ou 1 (falso). O CAM é mais útil para construir tabelas que procuram correspondências exatas, como tabelas de endereços MAC. A tabela CAM é a tabela principal usada para tomar decisões de encaminhamento da camada 2. No caso das tabelas de encaminhamento da camada 2, o switch deve encontrar uma correspondência exata para um endereço MAC de destino ou o switch enviará o pacote para todos. a VLAN.

Quando um quadro chega ao switch com um endereço MAC de destino de uma entrada na tabela CAM, o quadro é encaminhado apenas para fora da porta associada a esse endereço MAC específico. As informações que um switch usa para realizar uma pesquisa em uma tabela CAM são chamadas de key (chave). Por exemplo, uma pesquisa de camada 2 usaria um endereço MAC de destino e um ID de VLAN como chave.

Para visualizar o conteúdo da tabela CAM, você pode usar o seguinte comando EXEC:

Switch# show mac address-table dynamic [address mac-address | interface type mod/num | vlan vlan-id]


Nota: O problema com a tabela CAM é que ela só pode fazer correspondências exatas em uns e zeros (CAM binário), e aqui vem o TCAM.

MAIS QUE UM SIMPLES ROTEAMENTO E COMUTAÇÃO

Além do mapeamento de prefixo mais longo, o TCAM nos roteadores multicamadas e dispositivos de comutação de hoje é usado para armazenar ACLs, QoS e outras coisas de processamento de camada superior. Dispositivos com esta capacidade geralmente têm mais módulos de memória TCAM para poder implementar Access-List em ambas as direções e QoS ao mesmo tempo na mesma porta sem qualquer impacto no desempenho do Roteador/Switch. Todas essas diferentes funções e seu processo de busca para uma decisão são feitos em paralelo.

EM ALTA

Sair da versão mobile