Proteção contra cache de vizinhos Discovery
RESUMO O NDP Cache Protection permite que você proteja o mecanismo de roteamento contra determinados tipos de ataques de negação de serviço (DoS) em cenários de implantação IPv6.
Visão geral da proteção contra cache do Vizinho Discovery
Os mecanismos de roteamento podem ser suscetíveis a certos ataques de negação de serviço (DoS) em cenários de implantação do IPv6. As sub-redes IPv6 em geral tendem a ser muito grandes , por exemplo, uma /64
sub-rede pode ter um alto número de endereços não assinados. O plano de controle do mecanismo de roteamento executa a resolução de endereços para endereços desconhecidos. Um invasor pode sobrecarregar rapidamente o plano de controle do mecanismo de roteamento gerando solicitações de resolução para esse espaço de endereço não assinado, resultando em um excesso de cache. O invasor depende tanto do número de solicitações geradas quanto da taxa em que as solicitações estão enfileiradas. Tais cenários podem vincular recursos do roteador e impedir que o Mecanismo de Roteamento responda a solicitações de vizinhos válidas e mantenha as entradas de cache de vizinhos existentes, resultando efetivamente em um ataque DoS para usuários legítimos.
As estratégias para mitigar esses ataques do DoS são as seguintes:
Filtrar espaço de endereço não usado.
Minimize o tamanho das sub-redes.
Configure rotas de descarte para sub-redes.
Aplique limites ao tamanho e à taxa de resolução para entradas no cache de descoberta de vizinhos.
O impacto do cache de descoberta de vizinhos pode ser minimizado restringindo o número de vizinhos IPv6 e novos endereços de next-hop não resolvidos que podem ser adicionados ao cache. Você pode definir limites por interface usando as nd6-max-cache
declarações de configuração ou nd6-new-hold-limit
o sistema em todo o sistema usando a declaração de nd-system-cache-limit
configuração.
Para plataformas de pequeno porte, como ACX, EX22XX, EX3200, EX33XX e SRX, o padrão é de 20.000.
Para plataformas de médio porte, como EX4200, EX45XX, EX4300, EX62XX, QFX e MX, o padrão é de 75.000.
Para o resto das plataformas, o padrão é de 100.000.
Configuração da proteção contra cache de descoberta de vizinhos
Os mecanismos de roteamento podem ser suscetíveis a certos tipos de ataques de negação de serviço (DoS) em cenários de implantação IPv6. As sub-redes IPv6 em geral tendem a ser muito grandes; por exemplo, uma /64
sub-rede pode ter um alto número de endereços não assinados. O plano de controle do mecanismo de roteamento executa a resolução de endereços para endereços desconhecidos. Um invasor pode sobrecarregar rapidamente o plano de controle do mecanismo de roteamento gerando solicitações de resolução para esse espaço de endereço não assinado, resultando em um excesso de cache. Um invasor depende tanto do número de solicitações geradas quanto da taxa em que as solicitações estão enfileiradas.
O processo de descoberta de vizinhos é que parte do plano de controle que implementa o Protocolo de Descoberta de Vizinhos. Ela é responsável por realizar a resolução de endereços e manter as entradas no cache vizinho. Uma maneira de mitigar os ataques do DoS é aplicando limites ao tamanho do cache de descoberta de vizinhos e à taxa de resolução de novas entradas de next-hop, e priorizando determinadas categorias de tráfego de descoberta de vizinhos. Você pode configurar limites para o cache de descoberta de vizinhos por interface e sistema em todo o sistema.
Antes de começar, certifique-se de que você está executando o Junos OS Release 15.1 ou posterior.
Os limites locais se aplicam a interfaces individuais e são definidos para entradas resolvidas e não resolvidas na fila de descobertas de vizinhos, enquanto os limites globais se aplicam em todo o sistema.
Para configurar a proteção contra cache de descoberta de vizinhos em uma interface:
Para verificar a configuração, execute o show interfaces interface-name
comando operacional.
Para configurar a proteção contra cache de descoberta de vizinhos em todo o sistema:
Configure o limite em todo o sistema para o cache de descoberta de vizinhos.
[edit] user@host# set system nd-system-cache-limit limit
Para verificar os limites configurados em todo o sistema, execute o show system statistics icmp6
comando operacional.
Para plataformas de pequeno porte, como ACX, EX22XX, EX3200, EX33XX e SRX, o padrão é de 20.000.
Para plataformas de médio porte, como EX4200, EX45XX, EX4300, EX62XX, QFX e MX, o padrão é de 75.000.
Para o resto das plataformas, o padrão é de 100.000.
Exemplo: configurar a proteção contra cache de descoberta de vizinhos para evitar ataques de negação de serviço
Este exemplo mostra como configurar um limite para o número de entradas de vizinhos IPv6 que podem ser adicionadas à descoberta do vizinho. Aplicar limites ao número de entradas no cache reduz os ataques de negação de serviço (DoS). O recurso de cache de descoberta de vizinhos oferece suporte a dois tipos de limites:
Local — os limites locais são configurados por interface e são definidos para entradas resolvidas e não resolvidas no cache de descoberta de vizinhos.
Global — Os limites globais aplicam-se em todo o sistema. Um limite global é definido separadamente para interfaces públicas e interfaces de gerenciamento, por exemplo, fxp0. A interface de gerenciamento tem um único limite global e sem limite local. O limite global impõe um limite de todo o sistema em entradas para o cache de descoberta de vizinhos, inclusive para a interface de loopback para a instância de roteamento interno, bem como interfaces de gerenciamento e interfaces públicas.
Requisitos
Este exemplo requer roteadores da Série MX executando o Junos OS Release 15.1 ou posterior.
Visão geral
Os mecanismos de roteamento podem ser suscetíveis a certos tipos de ataques DoS em cenários de implantação IPv6. As sub-redes IPv6 em geral tendem a ser muito grandes — por exemplo, uma /64
sub-rede pode ter um alto número de endereços não assinados, que podem ser usados para realizar ataques DoS. O plano de controle do mecanismo de roteamento executa a resolução de endereços para endereços desconhecidos. Um invasor pode sobrecarregar rapidamente o plano de controle do mecanismo de roteamento, gerando solicitações de resolução para esse espaço de endereço não assinado e sobrecarregando a fila. O invasor depende tanto do número de solicitações geradas quanto da taxa em que as solicitações estão enfileiradas.
O processo de descoberta de vizinhos é que parte do plano de controle que implementa o Protocolo de Descoberta de Vizinhos. Ela é responsável por realizar a resolução de endereços e manter o cache vizinho. Uma maneira de mitigar os ataques do DoS é aplicando limites aos limites da fila de descoberta de vizinhos, o que pode ser feito restringindo o tamanho da fila e a taxa de resolução, e priorizando determinadas categorias de tráfego de descoberta de vizinhos.
Configuração
Para configurar a proteção contra cache de descoberta de vizinhos, execute essas tarefas:
- Configuração rápida da CLI
- Configuração da proteção contra cache de descoberta de vizinhos
- Resultados
Configuração rápida da CLI
Para configurar rapidamente este exemplo, copie os seguintes comandos, cole-os em um arquivo de texto, remova quaisquer quebras de linha, altere os detalhes necessários para combinar com a configuração de sua rede e copie e cole os comandos na CLI no nível de [edit]
hierarquia e, em seguida, entre no commit
modo de configuração.
set interfaces ge-0/3/0 unit 5 family inet6 nd6-max-cache 100 set interfaces ge-0/3/0 unit 5 family inet6 nd6-new-hold-limit 100
Você também pode configurar um limite em todo o sistema para o número de entradas de vizinhos IPv6 no cache de descoberta de vizinhos. Esse limite também inclui a interface de loopback, interfaces de gerenciamento e as interfaces públicas.
set system nd-system-cache-limit 100
A distribuição de limite da nd-system-cache-limit
declaração para diferentes tipos de interface é realizada de acordo com determinadas porcentagens fixas. Quando nd-system-cache-limit
é definido como X e o limite de cache de descoberta de vizinhos da interface de roteamento interno é Y (o padrão é 200), então:
Limite máximo de cache público= Z 80% de (X- Y)
Limite máximo de cache da interface de gerenciamento (por exemplo, fxp0), M = 20% de (X-Y)
Configuração da proteção contra cache de descoberta de vizinhos
Procedimento passo a passo
O exemplo a seguir exige que você navegue por vários níveis na hierarquia de configuração. Para obter informações sobre como navegar pela CLI, consulte o uso do Editor de CLI no modo de configuração no guia de usuário da CLI.
Para configurar a proteção de cache de descoberta de vizinhos por interface:
Configure o
nd6-max-cache
end6-new-hold-limit
.[edit] user@host# set interfaces ge-0/3/0 unit 5 family inet6 nd6-max-cache 100 user@host# set interfaces ge-0/3/0 unit 5 family inet6 nd6-new-hold-limit 100
Resultados
Para confirmar a proteção do cache de descoberta de vizinhos localmente, entre no show interfaces ge-0/3/0
modo de configuração. Se a saída não exibir a configuração pretendida, repita as instruções neste exemplo para corrigir a configuração.
[edit] user@host# show interfaces ge-0/3/0 unit 5{ family inet6 { nd6-max-cache 100; nd6-new-hold-limit 100; } }
Verificação
Confirme que a configuração está funcionando corretamente.
- Verificando a proteção contra cache de descoberta de vizinhos globalmente
- Verificando a proteção do cache de descoberta de vizinhos localmente
Verificando a proteção contra cache de descoberta de vizinhos globalmente
Propósito
Verifique se a saída reflete o limite de todo o sistema para o cache de descoberta de vizinhos.
Ação
Do modo operacional, execute o show system statistics icmp6
comando.
user@host> show system statistics icmp6 icmp6: 79 Calls to icmp_error 0 Errors not generated because old message was icmp error 0 Errors not generated because rate limitation Output histogram: 79 unreach 30 echo 163 multicast listener query 6 multicast listener report 940 neighbor solicitation 694184 neighbor advertisement 0 Messages with bad code fields 0 Messages < minimum length 0 Bad checksums 0 Messages with bad length Input histogram: 10 echo reply 6 multicast listener report 693975 neighbor solicitation Histogram of error messages to be generated: 0 No route 0 Administratively prohibited 0 Beyond scope 79 Address unreachable 0 Port unreachable 0 Time exceed transit 0 Time exceed reassembly 0 Erroneous header field 0 Unrecognized next header 0 Unrecognized option 0 Unknown 0 Message responses generated 0 Messages with too many ND options 100000 Max System ND nh cache limit 79840 Max Public ND nh cache limit 200 Max IRI ND nh cache limit 19960 Max Management intf ND nh cache limit 79840 Current Public ND nexthops present 4 Current IRI ND nexthops present 0 Current Management ND nexthops present 909266 Total ND nexthops creation failed as limit reached 909266 Public ND nexthops creation failed as public limit reached 0 IRI ND nexthops creation failed as iri limit reached 0 Management ND nexthops creation failed as mgt limit reached
Significado
O limite de todo o sistema aplicado nas entradas de cache de descoberta de vizinhos é 100000.
Management ND nexthops creation failed as mgt limit reached indica a contagem de quedas para a interface de gerenciamento quando o limite de todo o sistema é atingido. Total ND nexthops creation failed as limit reached indica falha para interfaces de instâncias de roteamento público, público ou interno, e Public ND nexthops creation failed as public limit reached indica a contagem de quedas para interfaces públicas quando o limite em todo o sistema para o número de entradas é atingido.
Verificando a proteção do cache de descoberta de vizinhos localmente
Propósito
Verifique se a saída reflete os limites da interface configurada.
Ação
Do modo operacional, execute o show interfaces ge-0/3/0
comando.
user@host> show interfaces ge-0/3/0 Logical interface ge-0/2/0.8 (Index 348) (SNMP ifIndex 690) Flags: Up SNMP-Traps 0x4000 VLAN-Tag [ 0x8100.8 ] Encapsulation: ENET2 Input packets : 181628 Output packets: 79872 Protocol inet6, MTU: 1500 Max nh cache: 100000, New hold nh limit: 100000, Curr nh cnt: 79840, Curr new hold cnt: 0, NH drop cnt: 0 Flags: Is-Primary Addresses, Flags: Is-Preferred Is-Primary Destination: 8001:1::/64, Local: 8001:1::1:1 Addresses, Flags: Is-Preferred Destination: fe80::/64, Local: fe80::56e0:3200:8c6:e0a4 Protocol multiservice, MTU: Unlimited
Significado
O número máximo de entradas totais e o número máximo de entradas para novos endereços de next-hop não resolvidos que podem ser anexados à interface ge-0/3/0 é 100000.
NH drop cnt refere-se ao número de solicitações de descoberta de vizinhos que não foram atendidos porque os limites máximos de tamanho da fila da interface foram atingidos.