Introducción
Este documento describe que una ACL IPv6 con un prefijo de cero en una ACE puede coincidir con todos los paquetes IPv6 y su solución alternativa.
Prerequisites
Requirements
Cisco recomienda que tenga conocimiento sobre estos temas:
- Configuración de ACL (lista de control de acceso) IPv6 en routers Cisco IOS® XR
- Programación de hardware ACL en routers Cisco IOS® XR
Componentes Utilizados
La información que contiene este documento se basa en las siguientes versiones de software y hardware.
- La ACL IPv6 se aplica con el nivel de compresión 2 o 3
- Versión de Cisco IOS® XR sin corrección del Id. de error de Cisco CSCwe08250
La información que contiene este documento se creó a partir de los dispositivos en un ambiente de laboratorio específico. Todos los dispositivos que se utilizan en este documento se pusieron en funcionamiento con una configuración verificada (predeterminada). Si tiene una red en vivo, asegúrese de entender el posible impacto de cualquier comando.
Antecedentes
La dirección IPv6 ::/128 está reservada para la dirección no especificada en RFC(Request For Comments) 4291. Nunca se debe asignar a ningún nodo, por lo que se recomienda denegar esta dirección en el filtrado de Bogon IPv6.
Problema
Una ACL IPv6 que incluya una ACE (entrada de control de acceso) de ::/128 puede coincidir con cualquier paquete IPv6 en la interfaz a la que se aplicó.
A continuación se muestra un ejemplo de esta observación en el laboratorio.
Configuración de una ACL IPv6 con ::/128 coincidentes con las direcciones de origen y 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
Envío de tráfico PING (Packet Internet o Inter-Network Groper) a una dirección de destino IPv6 distinta de cero:
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)
ACE11 descartó el paquete:
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
Al remover el ACE 11, las caídas se mueven al 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)
Se supone que estas ACE solamente descartan paquetes con la dirección de origen o de destino siendo todos ceros.
Sin embargo, se descartaba todo el tráfico, incluso con ceros en el origen o el destino.
Precaución: este comportamiento de discordancia se aplica a la longitud de la marca de subred IPv6 de /1 a /128 para una ACE, no sólo a /128 en el ejemplo.
Solución
La versión de Cisco IOS® XR con la corrección del Id. de error de Cisco CSCwe08250 corrige este comportamiento incorrecto.
En un router Cisco IOS® XR que se ejecuta sin esa corrección, existe una solución alternativa:
- Utilice ACL híbridas y mueva el ::/<x> de la ACL a un grupo de objetos de red para hacer coincidir la dirección de origen o de destino con todos los ceros.