Explicacion de ACL

  • Primera Parte 192.168.10.0 0.0.0.255: Escribir IPv4 que deseamos hacer coincidencia, El valor de la Wildcard no es de la mascara de red /, tiene otro significadi, sera para coincidir los bits de la IPv4 o a partir de que bit empezara a buscar.

  • Segunda parte 255.255.255.0 0.0.0.255: Es sobre la mascara de red / (No Wildcard), escribir valor de la mascara de red de nuestra primera parte (No Wildcard), El valor en Wildcard sera para la coincidencia exacta de nuestra mascara de red que deseamos que ingrese o denegarla, mientras mas preciso sea el segundo valor (0.0.0.0 = Valor exacto) se encargara de buscar solo esa mascara de red.

  • Comando: R1(config)# access-list <value> {permit | deny} <prefix> <wildcard> <subnet-mask> <wildcard>

Configuración

Metodo 1: ACL Extendida y Distribute-list

  • Comando: R1(config)# access-list <value> {permit | deny} <prefix> <wildcard> <subnet-mask> <wildcard>

  • Ejemplo:

  • Comando: R1(config-router)# neighbor <value> distribute-list <value_acl> {in | out}

  • Ejemplo:

Access-List: Permit = Permitir que ingrese o salga la ruta al router.
Access-List: Deny = Denegaremos que ingresen o salga la ruta del router.

In Es para permitir o Denegar las rutas que ingresen al Router.
Out Es para permitir rutas que salgan del Router.

Metodo 2: ACL Extendida y Route-Map

  • Comando: R1(config)# access-list <value> {permit | deny} <prefix> <wildcard> <subnet-mask> <wildcard>

  • Ejemplo:

  • Comando: R1(config)# route-map <name> {permit | deny} <num_seq>

  • Ejemplo:

  • Comando: R1(config-route-map)# match <criterio>

  • Ejemplo:

  • Comando: R1(config-router)# neighbor <value> route-map <name> {in | out}

  • Ejemplo: R1(config-router)# neighbor 2.2.2.2 router-map ACL in

Access-List: Permit = Permitir que ingrese o salga la ruta al router.
Access-List: Deny = Denegaremos que ingresen o salga la ruta del router.

In Es para permitir o Denegar las rutas que ingresen al Router.
Out Es para permitir rutas que salgan del Router.

Metodo 3: Prefix

  • Comando: R1(config)# ip prefix-list <nombre> seq <n> {permit | deny} <red>/<longitud> [ge <valor>] [le <valor>]
  • Ejemplo: R1(config)# ip prefix-list LISTA seq 10 deny 8.8.8.0/24 ge le 29

R1(config)# ip prefix-list LISTA seq 20 permit 0.0.0.0/0 le 32 = Permit Any. (Cambiar <seq-number> al ultimo)
Sin ge ni le, el match es sobre el prefijo y la longitud exactos. Con ellos, se coincide un rango de longitudes.

ge (greater-than-or-equal): coincide con longitudes de máscara mayores o iguales al valor.
le (less-than-or-equal): coincide con longitudes menores o iguales al valor.

  • Ejemplo: R1(config)# ip prefix-list prueba seq 10 deny 10.10.0.0/16 ge 16 le 24 = Lo que importa es la subnet.

La red 10.10.0.0/16 = Filtrada.
La red 10.0.0.0/30 = No filtrada.

Aplica el prefix-list a un vecino en BGP:

  • Comando: R1(config-router)# neighbor <ip-peer> prefix-list <nombre> {in | out}
  • Ejemplo: R1(config-router)# neighbor <ip-peer> prefix-list <nombre> {in | out}

in controla lo que ingresa al router (rutas aprendidas del vecino).
out controla lo que sale del router (rutas anunciadas al vecino).

Ejemplo

Caso 1

R2(config)# access-list 100 deny ip 6.6.6.64 0.0.0.63 255.255.255.192 0.0.0.0
R2(config)# access-list 100 permit ip any any

R2(config)# router bgp 20
R2(config-router)# neighbor 12.12.12.1 distribute-list 100 in

Una vez configurado hay que reiniciar el proceso BGP en el router.

Caso 2 (La ruta 8.8.8.0/30 no saldra de R1)

Situacion: Solo queremos dejar pasar la 8.8.8.0/30, quiere decir que no enviaremos rangos entre /26 a /29

R1(config)# ip prefix-list LISTA seq 10 deny 8.8.8.0/24 ge 26 le 29
R1(config)# ip prefix-list LISTA seq 20 permit 0.0.0.0/0 le 32 = Permit Any

R1(config)# router bgp 10
R1(config-router)# neighbor 12.12.12.2 prefix-list LISTA out

Todas las rutas entre los rangos entre /26 a /29 no seran publicados incluyendo /26 y /29.
Una vez configurado hay que reiniciar el proceso BGP en el router.

Verificación

  • Ver el contenido de un prefix-list: R1# show ip prefix-list <nombre>

  • Confirmar qué prefijos pasaron el filtro de entrada de un vecino:

R1# show ip bgp neighbors <ip-peer> received-routes
R1# show ip bgp neighbors <ip-peer> routes

received-routes muestra lo que el vecino envió antes del filtro (requiere soft-reconfiguration inbound); routes muestra lo que quedó tras aplicar el filtro.