Contents

Introdução

Pré-requisitos

Requisitos

Componentes Utilizados

Informações de Apoio

Problema

Solução

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.