Introdução
Este documento descreve que uma ACL IPv6 com um prefixo all-zero em uma ACE pode corresponder a todos os pacotes IPv6 e sua solução.
Pré-requisitos
Requisitos
A Cisco recomenda que você tenha conhecimento destes tópicos:
- Configuração de ACL (Access Control List, Lista de controle de acesso) IPv6 nos roteadores Cisco IOS® XR
- Programação de hardware ACL em roteadores Cisco IOS® XR
Componentes Utilizados
As informações neste documento são baseadas nestas versões de software e hardware:
- A ACL IPv6 é aplicada com compactação de nível 2 ou 3
- Versão XR do Cisco IOS® sem correção do bug da Cisco ID CSCwe08250
As informações neste documento foram criadas a partir de dispositivos em um ambiente de laboratório específico. Todos os dispositivos utilizados neste documento foram iniciados com uma configuração (padrão) inicial. Se a rede estiver ativa, certifique-se de que você entenda o impacto potencial de qualquer comando.
Informações de Apoio
O endereço IPv6 ::/128 é reservado para Endereço não especificado na RFC(Request For Comments) 4291. Ele nunca deve ser atribuído a nenhum nó, portanto, é uma prática recomendada negar esse endereço na filtragem Bogon IPv6.
Problema
Uma ACL IPv6 que inclui uma ACE (Entrada de Controle de Acesso) de ::/128 pode corresponder a qualquer pacote IPv6 na interface à qual ele foi aplicado.
Um exemplo dessa observação no laboratório é mostrado abaixo.
Configurando uma ACL IPv6 com ::/128 correspondendo aos endereços de origem e destino IPv6, respectivamente:
ipv6 access-list PREFIX_ALL_ZERO
10 remark ** HOST MASK **
11 deny ipv6 any host :: log
12 deny ipv6 host :: any log
Enviando o tráfego PING(Packet Internet or Inter-Network Groper) para um endereço de destino IPv6 diferente de zero:
RP/0/RP0/CPU0:router#ping fd00:4860:1:1::150 count 100 timeout 0
Thu Sep 14 12:30:23.412 UTC
pings with timeout=0 may result in system instability and
control protocol flaps resulting in traffic impact.
Do you really want to continue[confirm with only 'y' or 'n'] [y/n] :y
Type escape sequence to abort.
Sending 100, 100-byte ICMP Echos to FD00:4860:1:1::150, timeout is 0 seconds:
....................................................................................................
Success rate is 0 percent (0/100)
O pacote foi descartado pelo ACE11:
RP/0/RP0/CPU0:router#show access-lists ipv6 PREFIX_ALL_ZERO hardware ingress location 0/RP0/CPU0
Thu Sep 14 12:30:46.346 UTC
ipv6 access-list PREFIX_ALL_ZERO
11 deny ipv6 any host :: log (100 matches)
12 deny ipv6 host :: any log
Ao remover a ACE 11, as quedas são movidas para a ACE 12:
RP/0/RP0/CPU0:router#clear access-list ipv6 PREFIX_ALL_ZERO hardware ingress location 0/RP0/CPU0
Thu Sep 14 12:31:34.899 UTC
RP/0/RP0/CPU0:router#ping fd00:4860:1:1::150 count 100 timeout 0
Thu Sep 14 12:31:39.482 UTC
pings with timeout=0 may result in system instability and
control protocol flaps resulting in traffic impact.
Do you really want to continue[confirm with only 'y' or 'n'] [y/n] :y
Type escape sequence to abort.
Sending 100, 100-byte ICMP Echos to FD00:4860:1:1::150, timeout is 0 seconds:
....................................................................................................
Success rate is 0 percent (0/100)
RP/0/RP0/CPU0:router#show access-lists ipv6 PREFIX_ALL_ZERO hardware ingress location 0/RP0/CPU0
Thu Sep 14 12:31:45.229 UTC
ipv6 access-list PREFIX_ALL_ZERO
12 deny ipv6 host :: any log (100 matches)
Essas ACEs devem descartar apenas pacotes com o endereço de origem ou destino sendo apenas zeros.
No entanto, todo o tráfego, mesmo com origem ou destino nem todos os zeros, estava sendo descartado.
Cuidado: esse comportamento incompatível é aplicado ao comprimento da marca de sub-rede IPv6 de /1 a /128 para uma ACE, não apenas a /128 no exemplo.
Solução
A versão XR do Cisco IOS® com a correção do bug da Cisco ID CSCwe08250 corrige esse comportamento errado.
Em um roteador Cisco IOS® XR executando sem essa correção, existe uma solução:
- Use ACLs híbridas e mova o ::/<x> da ACL para um grupo de objetos de rede para corresponder o endereço de origem ou de destino com apenas zeros.