0% del curso completado
ACLs IPv4 I: estándar, numeradas y con nombre (4.6 parcial)
📋 En esta lección
Las ACLs son el mecanismo de filtrado fundamental de IOS — y un lenguaje que ya has visto asomar en NAT, OSPF y las líneas VTY. Aquí construyes la base: cómo se evalúa una ACL (orden, primera coincidencia, deny implícito), las wildcards de una vez por todas, las ACLs estándar numeradas y con nombre, y las dos reglas de colocación que evitan los desastres clásicos.
Qué es una ACL
Una ACL (Access Control List) es una lista ordenada de reglas permit/deny que se compara contra cada paquete. Sus empleos: filtrar tráfico en interfaces (el de este par de lecciones), y seleccionar tráfico para otros procesos — ya la usaste eligiendo quién se traduce en NAT (8.3), quién alcanza las VTY (access-class, 10.2) y qué interfaces participan en OSPF (7.4). La sintaxis es una; los clientes, muchos.
Las tres reglas de evaluación
Grábalas — todo el comportamiento de las ACLs deriva de ellas:
- De arriba abajo, primera coincidencia gana. El paquete se compara contra cada línea en orden; la primera que casa decide (permit o deny) y se deja de evaluar. Las líneas posteriores no existen para ese paquete.
- Deny implícito al final. Toda ACL termina con un
deny anyinvisible: lo no permitido explícitamente, se descarta. Una ACL con solo denies bloquea todo (los denies + el implícito). Corolario: toda ACL de filtrado necesita al menos un permit. - El orden importa: de lo específico a lo general. Si la línea general va primero, la específica de después jamás se evalúa — el clásico "permit de la red entera antes que el deny del host problemático" que deja el deny muerto.
Wildcards: cerrando el círculo
La wildcard mask de la lección 4.1, ahora en su hábitat: bit a 0 = "debe coincidir", bit a 1 = "me da igual".
host 10.1.10.50 = 10.1.10.50 0.0.0.0 ← un host exacto
10.1.10.0 0.0.0.255 = la subred /24
10.1.0.0 0.0.255.255 = el /16
any = 0.0.0.0 255.255.255.255 ← todo
El atajo de siempre: wildcard = 255.255.255.255 − máscara. Y las palabras clave host y any hacen legible el 90% de las líneas reales.
ACL estándar: filtrar por origen
La ACL estándar solo mira la IP de origen — nada más. Numeradas 1-99 (y 1300-1999):
R1(config)# access-list 10 remark === Bloquear la red de invitados hacia servidores ===
R1(config)# access-list 10 deny 10.9.50.0 0.0.0.255
R1(config)# access-list 10 permit any
Línea a línea: el remark documenta (tu yo del futuro lo agradece); el deny corta a los invitados; el permit any final es imprescindible — sin él, el deny implícito bloquearía también a todos los demás.
Aplicarla: interfaz y dirección
Una ACL no hace nada hasta aplicarse — a una interfaz, en una dirección:
R1(config)# interface GigabitEthernet0/2
R1(config-if)# ip access-group 10 out ← filtra lo que SALE por Gi0/2
in = el tráfico que entra al router por esa interfaz (se filtra antes de enrutar); out = el que sale por ella (después de enrutar). El punto de vista es siempre el del router — la fuente clásica de confusión: el tráfico de los PCs hacia el router entra (in) por la interfaz LAN, y sale (out) por la interfaz hacia los servidores.
⚡ La regla de colocación de las estándar
Una estándar solo sabe de dónde viene el paquete — no a dónde va. Colocada cerca del origen, bloquearía al origen hacia todos los destinos (incluidos los legítimos). Por eso: estándar, cerca del DESTINO — en la última interfaz antes del recurso protegido, donde el daño colateral es cero. (La extendida, que sabe origen y destino, se coloca cerca del origen — próxima lección.)
Una interfaz admite una ACL por protocolo y dirección (una IPv4 in, una IPv4 out) — la política de esa interfaz vive en una sola lista.
ACLs con nombre: la forma moderna
Las numeradas funcionan, pero access-list 10 no cuenta qué hace. Las named ACLs dan nombre y editor:
R1(config)# ip access-list standard INVITADOS-NO-SERVIDORES
R1(config-std-nacl)# 10 deny 10.9.50.0 0.0.0.255
R1(config-std-nacl)# 20 permit any
Las dos ventajas operativas:
- Nombre descriptivo — la config se autodocumenta.
- Números de secuencia editables: puedes insertar una línea entre dos existentes (
15 deny host 10.9.50.99) o borrar una concreta (no 10) sin tocar el resto. Con las numeradas clásicas, editar significaba borrar la ACL entera y reescribirla (y en el hueco entre borrar y reescribir... la interfaz quedaba sin filtro — sí, eso ha causado incidentes). Los números por defecto van de 10 en 10, dejando hueco para insertar.
(Truco actual: las numeradas también aceptan edición por secuencia entrando con ip access-list standard 10 — el modo con nombre para una lista numerada.)
Verificación
R1# show access-lists
Standard IP access list INVITADOS-NO-SERVIDORES
10 deny 10.9.50.0, wildcard bits 0.0.0.255 (247 matches)
20 permit any (18734 matches)
R1# show ip interface Gi0/2 | include access list
Outgoing access list is INVITADOS-NO-SERVIDORES
Los contadores de matches son tu detector: una línea con 0 matches eternos o no recibe ese tráfico… o está después de otra que ya lo caza (regla 1). Y show ip interface responde la otra mitad: ¿está aplicada, y en qué dirección? — una ACL perfecta sin access-group filtra exactamente nada.
Relación con otros conceptos
- Las wildcards son las de 4.1/7.4; el
access-classde las VTY (10.2) era una estándar con otro verbo de aplicación. - La selección de tráfico para NAT (8.3) usaba esta misma sintaxis — ahora entiendes sus reglas de evaluación.
- Las extendidas (protocolo, destino, puertos) y los casos reales completos: próxima lección — junto con dónde colocarlas.
- El aislamiento de invitados/IoT que las VLANs prometían (5.1, 9.5) se materializa exactamente aquí.
Resumen
ACL = lista ordenada de permit/deny: primera coincidencia gana, deny implícito final (siempre hace falta un permit), específico antes que general. Wildcards: 0 = coincide, 1 = da igual (host, any como atajos). Estándar (1-99): filtra solo por origen → se coloca cerca del destino para no causar daño colateral. Se aplica con ip access-group <acl> in|out — dirección siempre desde el punto de vista del router, una ACL por protocolo y dirección. Con nombre (ip access-list standard NOMBRE): autodocumentada y editable por números de secuencia (insertar/borrar líneas sin reescribir la lista). Verifica con show access-lists (contadores de matches — el detector de líneas muertas) y show ip interface (¿aplicada?, ¿dirección?).