A ACL muda em detalhes

As ACLs (Lista de controle de acesso) em dispositivos de rede podem ser implementadas tanto em hardware quanto em software, ou mais comumente em ACLs baseadas em hardware e software. E se tudo ficar claro com as ACLs baseadas em software, essas são as regras armazenadas e processadas na RAM (ou seja, no Plano de Controle), com todas as restrições que se seguem, entenderemos como as ACLs baseadas em hardware são implementadas e funcionam. nosso artigo. Como exemplo, usaremos os comutadores da série Extreme Networks ExtremeSwitching.



Como estamos interessados ​​em ACLs baseadas em hardware, a implementação interna do Data Plane, ou realmente chipsets usados ​​(ASIC), é de suma importância para nós. Os comutadores de todas as linhas de produtos da Extreme Networks são construídos nos ASICs da Broadcom e, portanto, a maioria das informações abaixo também se aplica a outros comutadores no mercado e implementados nos mesmos ASICs.

Como pode ser visto na figura acima, o "ContentAware Engine", separadamente para "ingresso" e "saída", é responsável pela operação da ACL no chipset. Arquitetonicamente, eles são os mesmos, apenas o "egresso" é menos escalável e menos funcional. Fisicamente, o "ContentAware Engine" é a memória TCAM mais a lógica associada, e cada regra de ACL do usuário ou do sistema é uma máscara de bits simples gravada nessa memória. É por isso que o processamento do tráfego de chipset é realizado por unidade e sem degradação do desempenho.

Fisicamente, o mesmo TCAM de entrada / saída, por sua vez, é logicamente dividido em vários segmentos (dependendo da quantidade de memória e plataforma), as chamadas "fatias da ACL". Por exemplo, o mesmo acontece com o mesmo HDD fisicamente no seu laptop quando você cria várias unidades lógicas - C: \>, D: \>. Cada fatia da ACL, por sua vez, consiste em células de memória, na forma de "strings" onde "regras" são gravadas (regras / máscaras de bits).


A divisão do TCAM em fatias de ACL possui uma certa lógica. Em cada fatia da ACL individual, somente "regras" compatíveis podem ser escritas. Se alguma das “regras” não for compatível com a anterior, ela será gravada na seguinte na ordem ACL-slice, não importa quantas linhas livres sob as “regras” permaneçam na anterior.

De onde vem essa compatibilidade ou incompatibilidade das regras da ACL? O fato é que uma “linha” do TCAM em que “regras” é escrita tem um comprimento de 232 bits e é dividida em vários campos - Fixo, Campo1, Campo2, Campo3. A memória TCAM de 232 bits ou 29 bytes é suficiente para gravar uma máscara de bit de um endereço MAC ou IP específico, mas muito menos do que o cabeçalho do pacote Ethernet completo. Em cada fatia ACL individual, o ASIC produz uma pesquisa independente de acordo com a máscara de bits definida em F1-F3. Em geral, essa pesquisa pode ser realizada no primeiro cabeçalho Ethernet de 128 bytes. Na verdade, precisamente porque a pesquisa pode ser realizada por 128 bytes e apenas 29 bytes podem ser gravados, para uma pesquisa correta, um deslocamento deve ser definido em relação ao início do pacote. O deslocamento para cada fatia da ACL é definido quando a primeira regra é gravada nela e, se a necessidade de outro deslocamento for encontrada ao gravar a próxima regra, essa regra será considerada incompatível com a primeira e será gravada na próxima fatia da ACL.

A tabela abaixo mostra a ordem de compatibilidade das condições especificadas na ACL. Cada linha separada contém máscaras de bits compatíveis entre si e não compatíveis com outras linhas.


Cada pacote individual processado pelo ASIC executa uma pesquisa paralela em cada fatia da ACL. A validação é realizada antes da primeira correspondência na fatia da ACL, mas várias correspondências são permitidas para o mesmo pacote na fatia da ACL diferente. Cada “regra” individual tem uma ação correspondente que deve ser executada se a condição (máscara de bits) corresponder. Se ocorreu uma correspondência em várias fatias da ACL de uma só vez, no bloco "Resolução de conflitos de ação", com base na prioridade da fatia da ACL, é tomada uma decisão sobre qual executar. Se a "ação" (permitir / negar) e o "modificador de ação" (contagem / QoS / log / ...) forem escritos na ACL, no caso de várias correspondências, apenas a "ação" de maior prioridade será executada, o "modificador de ação" será tudo feito. O exemplo abaixo mostra que ambos os contadores serão aumentados e mais prioridade será negada.


“Guia de soluções da ACL” com informações mais detalhadas sobre como as ACLs estão disponíveis publicamente no extremenetworks.com . Qualquer dúvida que surja ou permaneça sempre pode ser feita à nossa equipe de escritório - cis@extremenetworks.com .

Source: https://habr.com/ru/post/pt486070/


All Articles