Editar ACLs en Cisco

( redes / cisco_ios )

Muchas de las veces que tenemos que editar una ACL para insertar una IP o borrar otra lo que hacemos es borrar la ACL por completo y metemos la ACL completa rectificad de nuevo, pero podemos hacerlo mucho más simple insertando y borrando reglas de una en una.

El método clásico sería copiar la ACL, borrarla y volver a crearla modificada (el primer paso es crear el ACL aunque se supone que ya está creada):

  1. Creamos la ACL:
    router#configure terminal
    router(config)#access-list 121 deny icmp any any
    router(config)#access-list 121 permit ip any any
  2. Mostramos la ACL para copiarla en un editor y modificarla:
    router#show access-list
    Extended IP access list 121
          deny icmp any any
          permit ip any any
  3. Borramos la ACL:
    router#configure terminal
    router(config)#no access-list 101 deny icmp any any
    NOTA: Si intentamos borrar una SOLA línea también borrará la ACL por completo.
  4. Comprobamos que la ACL está borrada :
    router#show access-list
    router#

Si intentamos añadir una línea lo hará al final que seguramente no sea lo que queramos especialmente si poner al final algún tipo de DENY, los líneas añadidas estarán por debajo del DENY y por lo tanto serán ignoradas.

Para insertar podemos hacer lo siguiente:

  1. Listar la ACL (los números son importantes):
    router#show access-list 121
    Extended IP access list 121
        10 deny icmp any any
        20 permit ip any any
  2. Para insertar lo que tenemos que hacer es entrar en la ACL y luego usar los números para insertar en la posición correcta:
    router#configure terminal
    router(config)#ip access-list extended 121
    router(config-ext-nacl)#6 permit icmp 10.0.0.0 0.0.0.255 any
  3. Si mostramos ahora la ACL veremos que hemos insertado una línea donde hemos indicado:
    router#show access-list 121
    Extended IP access list 121
        6 permit icmp 10.0.0.0 0.0.0.255 any
        10 deny icmp any any
        20 permit ip any any

Lo mismo para borrar una línea concreta que se puede hacer de dos formas:

  1. Listar la ACL (los números también son son importantes):
    router#show access-list 121
    Extended IP access list 121
        10 deny icmp any any
        20 permit ip any any
  2. Primero entramos en la ACL (al igual que antes:
    router#configure terminal
    router(config)#ip access-list extended 121
  3. Y ahora podemos borrar de 2 formas:
    • Usando el número de la línea:
      router#no 1
    • Negango la línea completa:
      router#no deny icmp any any
  4. Si mostramos ahora la ACL veremos que hemos insertado una línea donde hemos indicado:
    router#show access-list 121
    Extended IP access list 121
        6 permit icmp 10.0.0.0 0.0.0.255 any
        20 permit ip any any

Podemos encontrarnos el caso de que queramos insertar una ACL y no podamos por no tener un hueco donde queremos insertar la ACL como por ejemplo:

router#show access-list 121
Extended IP access list 121
    1 permit icmp 10.0.1.0 0.0.0.255 any
    2 permit icmp 10.0.2.0 0.0.0.255 any
    3 permit ip any any

Si queremos negar el ping a la IP 10.0.2.23 deberíamos añadir la ACL antes de la línea 2 para que surta efecto pero no podemos porque no hay un número donde podamos insertar con lo cual debemos renumerar la ACL de la siguiente forma:

router(config)#ip access-list resequence 121 100 20
router(config)#exit
router#show access-list 121
Extended IP access list 121
    100 permit icmp 10.0.1.0 0.0.0.255 any
    120 permit icmp 10.0.2.0 0.0.0.255 any
    140 permit ip any any

Ahora ya podemos insertar la ACL que necesitabamos.

El formato del comando es: ip access-list resequence ACL inicio intervalo.

Para una completa compresión de las ACL podemos ir a la web de Cisco que explica detalladamente las ACLs: Configuring IP Access Lists.

Modificado el 3 Enero, 2015
   

Compartiendo conocimiento desde 1995 - I.M.D. I.M.D.