cancelar
Mostrar resultados para 
Pesquisar em vez de 
Queria dizer: 
cancel
2570
Apresentações
20
Útil
2
Comentários
tomy.tim
VIP
VIP

j.png

 

Às 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. E porque era difícil para mim entender isso. E realmente lendo muito encontrei uma forma de entender e vou explicar do meu jeito.

1.      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.

k.png

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.

l.png

  • 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.

2. 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!


3. 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]

Se mostrarán las entradas que han sido aprendidas dinámicamente. Puede añadir la palabra clave address para especificar una sola dirección MAC, o las palabras clave interface o vlan para ver las direcciones que han sido aprendidas en una interfaz o VLAN específica.

 
Para ver el tamaño de la tabla CAM, utilice el comando show mac address-table count

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.

 

4. MAIS QUE UM SIMPLES ROTEAMENTO E COMUTAÇÃOV

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.

5. MAIS SOBRE LA TCAM

O TCAM é basicamente uma versão especial do CAM criada para pesquisa rápida de tabelas. Como não foi mencionado anteriormente, o TCAM pode obter três resultados diferentes ao realizar pesquisas: 0, 1 e X (não me importo com o estado).

Com esse estranho terceiro estado, o TCAM é perfeito para construir e pesquisar tabelas para correspondências mais longas, como tabelas de roteamento IP organizadas por prefixos IP.

Há apenas uma condição: os prefixos IP devem ser classificados antes de serem armazenados no TCAM para que os prefixos mais longos estejam na posição de prioridade mais alta (local de endereço mais baixo) em uma tabela. Isso nos permite sempre selecionar o prefixo mais longo dos resultados fornecidos e, portanto, permite a correspondência de Longest-Prefix Matching.

Para ver el uso actual de recursos TCAM, utilice el comando EXEC show tcam counts. Para ver la partición actual de la TCAM, puede utilizar el comando EXEC show sdm prefer

6. ARQUITETURA DE TCAM

Na Imagem 2 abaixo, uma das explicações mais simples da CEF que encontrei na net. Basicamente mostra o uso do FIB à esquerda e a tabela de adjacências à direita. O FIB é armazenado na tabela TCAM e a tabela de adjacência é armazenada na RAM. Então, ele mostra sem palavras o que falamos anteriormente na seção "ROUTER".

tomy.JPG

 

Descrevemos a aplicação de CAMs para encaminhamento de pacotes em roteadores de rede. Primeiro, resumimos brevemente o encaminhamento de pacotes e, em seguida, mostramos como um CAM implementa as operações necessárias.

Abaixo estão outros exemplos de abordagens que usam CAMs para classificação e pesquisa.

Os roteadores de rede encaminham pacotes de dados de uma porta de entrada para outra porta de saída, usando uma função de pesquisa de endereço. A função de pesquisa de endereço examina o endereço de destino do pacote e seleciona a porta de saída associada a esse endereço.V


O roteador mantém uma lista, chamada tabela de roteamento, que contém endereços de destino e suas portas de saída correspondentes. Um exemplo da tabela de roteamento simplificada é mostrado na Tabela I. Todas as quatro entradas na tabela são endereços de 5 bits (não 32 como ipv4, todos os outros são iguais aos reais), com o bit de estado não importa, "X", correspondendo a 0 e a . com um 1 nessa posição. Devido aos bits "X", as três primeiras entradas na tabela representam um intervalo de endereços de entrada, ou seja, a entrada 1 mapeia todos os endereços no intervalo 10100 a 10111 para a porta A. O roteador procura nesta tabela o endereço de destino de cada pacote de entrada e seleciona a porta de saída apropriada. Por exemplo, se o roteador recebe um pacote com o endereço de destino 10100, o pacote é encaminhado para a porta A. Para o endereço de entrada 01101, a pesquisa de endereço corresponde à entrada 2 e à entrada 3 na tabela. A entrada 2 é selecionada porque possui o menor número de bits "X" ou, alternativamente, possui o prefixo mais longo, indicando que é o caminho mais direto para o destino. Esse método de pesquisa é chamado de correspondência de prefixo mais longo.

A Fig. 2 ilustra como um CAM realiza a pesquisa de endereços implementando a tabela de roteamento mostrada na Tabela I. À esquerda da Fig. 2, o endereço de destino do pacote 01101 é a entrada para o CAM. Como na tabela, dois locais coincidem, com o Codificador (prioritário) escolhendo a entrada superior e gerando o local correspondente 01, que corresponde ao caminho mais direto.

Este local de correspondência é o endereço de entrada para uma RAM que contém uma lista de portas de saída, conforme mostrado na Fig. 2. Uma operação de leitura da RAM resulta na designação da porta, porta B, na qual o pacote de entrada é encaminhado. Podemos visualizar a saída do local de correspondência do CAM como um ponteiro que recupera a palavra associada da RAM. No caso particular de encaminhamento de pacotes, a palavra associada é a designação da porta de saída. Este sistema CAM/RAM é uma implementação completa de um mecanismo de pesquisa de endereços para encaminhamento de pacotes.

7. PROCESSO DE PESQUISA PARALELA DO TCAM DENTRO DO CIRCUITO

Na realidade, os chips CAM e TCAM têm uma lógica ligeiramente diferente do que você imagina.

Para todas as entradas que corresponderem à procurada, a entrada do Encoder receberá um sinal "verdadeiro", e todas as entradas não correspondentes retornarão uma saída "falsa", sem problemas. O problema está no início do processo. Antes que a busca comece, todas as entradas para o TCAM fecham o circuito de entrada de palavras do TCAM e exibem "true" no lado do Codificador. Todas as entradas estão temporariamente no estado de correspondência. Quando a pesquisa paralela for executada, todas as entradas que tiverem pelo menos um bit que não corresponda à entrada pesquisada serão interrompidas.

Aqui está a explicação do "estado não importa", no processo de pesquisa, quando a pesquisa atinge o bit X ("estado não importa"), não altera o estado dessa linha de correspondência. É por isso que as linhas #2 e #3 combinam, e é por isso que o TCAM é perfeito para pesquisar prefixos mais longos.

Isso também explica por que a memória TCAM consome tanta energia. Você precisa ativar todos os circuitos para poder realizar uma pesquisa, não apenas os que correspondem. O espaço limitado de memória e o consumo de energia associado a um grande número de circuitos ativos em paralelo são os principais problemas do TCAM.

CONCLUSÃO

Bom meus amigos, deixe-me dizer que as tabelas CAM e TCAM estavam na minha lista de estudos, eu procurei quase todas essas informações por conta própria pesquisando em sites diferentes. Também é novo para mim, então, por favor, corrija-me nos comentários se eu tiver cometido algum erro...

Atte.

Tomy Tim

Comentários

Excelente Tomy. Só estou vendo agora as suas contribuições por aqui. Muito bom.

Forte abraço

tomy.tim
VIP
VIP

Olá @joaolucasbmacedo obrigado pelo comentario, não esqueça de curtir o conteúdo. Abraços e #VQV

Primeiros Passos

Encontre respostas, faça perguntas e conecte-se com nossa comunidade de especialistas da Cisco de todo o mundo.

Estamos felizes por você estar aqui! Participe de conversas e conecte-se com sua comunidade.