El reenvío de ruta inversa de unidifusión (RPF) funciona en tres modos distintos y puede ayudar a reducir el vector de ataque de un enrutador, específicamente de direcciones IP falsificadas.
Modo estricto
(config-if)#ip verify unicast source reachable-via rx
En modo estricto, un enrutador inspeccionará y verificará la dirección IP de origen de un paquete entrante contra su tabla Base de información de reenvío (FIB) para encontrar una ruta coincidente. Si se puede acceder a la ruta a esa dirección IP de origen a través de la interfaz en la que se recibió , se recibirá el paquete. Por defecto, una ruta predeterminada no se considera en modo estricto (como se configuró anteriormente).
Opciones de modo estricto:
Después de la configuración del modo estricto Unicast RPF en una interfaz determinada, un enrutador ya no puede hacer ping en esa interfaz:
#sh ip int bri | ex unas|Int
FastEthernet0/0 11.0.11.1
#ping 11.0.11.1
.....
Success rate is 0 percent (0/5)
Verificación de los paquetes descartados URPF:
#show ip int fa0/0 | i ^ [1-9]+ verification drops
5 verification drops
#show ip traffic | i unicast
0 no route, 5 unicast RPF, 0 forced drop
Este comportamiento puede modificarse agregando la allow-self-ping
sintaxis:
(config-if)#ip verify unicast source reachable-via rx allow-self-ping
Además, como se mencionó en su pregunta, el modo estricto puede permitir que las direcciones IP de origen del paquete entrante se verifiquen con una ruta predeterminada. Esto está habilitado por la sintaxis allow-default
:
En modo estricto, agregar la sintaxis allow-default
por sí sola solo evitará la recepción de la dirección IP de origen del paquete entrante que tenga una ruta a través de una interfaz diferente a la recibida. Esto supone que no hay listas de acceso o rutas nulas configuradas en el enrutador. Todas las direcciones de origen enrutables a las que se puede acceder desde la interfaz que reciben coincidirán con rutas específicas o con la ruta predeterminada.
Sin embargo, si fuera a emplear rutas nulas, la ruta más específica se evaluará primero, antes de que la verificación URPF llegue a la ruta predeterminada, y actuará como una lista negra para los rangos de IP maliciosos conocidos.
Ejemplo: todo el tráfico procedente de 3.0.0.0/8 se eliminará mediante la verificación URPF:
(config-if)#ip verify unicast source reachable-via rx allow-default
(config)#ip route 3.0.0.0 255.0.0.0 null 0
Bad-Source-RTR#ping 11.0.11.1 so l1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 11.0.11.1, timeout is 2 seconds:
Packet sent with a source address of 3.3.3.3
.....
Success rate is 0 percent (0/5)
Además, puede especificar una Lista de control de acceso (ACL) en lugar de agregar la allow-default
sintaxis para lograr una lista estructurada de direcciones permitidas y denegadas. Las direcciones a las que se puede acceder desde la interfaz en la que se recibieron y que coinciden en una ACL definida se descartan o se permiten en consecuencia.
!
access-list 23 permit 3.0.0.0 0.255.255.255
access-list 23 deny 4.0.0.0 0.255.255.255 log
access-list 23 permit any
!
(config)#int fa0/0
(config-if)#ip verify unicast source reachable-via rx 23
Finalmente, puede especificar una ACL con la allow-default
sintaxis, pero no tendrá ningún efecto. Los paquetes no se verificarán con las ACL especificadas con la allow-default
opción.
#ip verify unicast source reachable-via rx allow-default ?
<1-199> A standard IP access list number
<1300-2699> A standard IP expanded access list number
Modo suelto
R1(config-if)#ip verify unicast source reachable-via any
En modo suelto, un enrutador inspeccionará la dirección IP de origen de un paquete entrante y lo comparará con su tabla FIB para encontrar una ruta coincidente. Si se puede acceder a la ruta a esa dirección IP de origen, se puede recibir el paquete, independientemente de la interfaz en la que se recibió. Por defecto, una ruta predeterminada no se considera en modo suelto (como se configuró anteriormente).
El modo suelto y el modo estricto tienen opciones de configuración similares; Las principales diferencias son la sintaxis que se usa ( any
vs. rx
) y si la dirección IP de origen del paquete entrante es accesible a través de la interfaz en la que se recibió.
(config-if)#ip verify unicast source reachable-via any ?
<1-199> A standard IP access list number
<1300-2699> A standard IP expanded access list number
allow-default Allow default route to match when checking source address
allow-self-ping Allow router to ping itself (opens vulnerability in
verification)
Modo VRF
El modo VRF puede aprovechar el modo suelto o estricto en un VRF dado y evaluará la dirección IP de origen de un paquete entrante contra la tabla VRF configurada para un vecino eBGP.
Referencias:
Libro blanco de Cisco URPF
Descripción de la guía de configuración de URPF de reenvío de ruta inversa de unidifusión