EN ESTA PÁGINA
Ejemplo: Reenvío de paquetes a la interfaz de descarte
En este ejemplo, se muestra cómo usar el enrutamiento de descarte para mitigar los ataques de denegación de servicio (DoS), proteger los recursos vitales de la red de ataques externos, proporcionar servicios de protección a los clientes para que cada cliente pueda iniciar su propia protección, y registrar y rastrear intentos de DoS.
Requisitos
No se requiere ninguna configuración especial más allá de la inicialización del dispositivo antes de configurar este ejemplo.
Descripción general
En el enrutamiento de descarte, los enrutadores se configuran con reglas que no permite que millones de solicitudes se envíen a la misma dirección en un corto período de tiempo. Si se reciben demasiadas solicitudes en un corto período de tiempo, el enrutador simplemente descarta las solicitudes sin reenviarlas. Las solicitudes se envían a un enrutador que no reenvía los paquetes. Las rutas problemáticas a veces se denominan rutas de descarte o rutas de seguridad negra. Los tipos de rutas que se deben descartar se identifican como ataques a clientes de pares u otros clientes, ataques de clientes a pares u otros clientes, controladores de ataque, que son hosts que proporcionan instrucciones de ataque, y espacios de direcciones no asignados, conocidos como bogons o direcciones IP no válidas.
Después de identificar el intento de ataque, los operadores pueden implementar una configuración para mitigar el ataque. Una forma de configurar el enrutamiento de descarte en Junos OS es crear una ruta estática de descarte para cada salto siguiente utilizado para rutas de descarte. Una ruta estática de descarte usa la discard opción.
Por ejemplo:
user@host# show routing-options
static {
route 192.0.2.101/32 discard;
route 192.0.2.103/32 discard;
route 192.0.2.105/32 discard;
}
user@host> show route protocol static terse inet.0: 3 destinations, 3 routes (3 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both A V Destination P Prf Metric 1 Metric 2 Next hop AS path * ? 192.0.2.101/32 S 5 Discard * ? 192.0.2.103/32 S 5 Discard * ? 192.0.2.105/32 S 5 Discard
Otra estrategia, que es el enfoque principal de este ejemplo, es usar la política de enrutamiento y la interfaz de descarte. En este enfoque, la interfaz de descarte contiene el siguiente salto que está asignando a las rutas de ruta nula. Una interfaz de descarte solo puede tener una unidad lógica (unidad 0), pero puede configurar varias direcciones IP en la unidad 0.
Por ejemplo:
user@host# show interfaces dsc
unit 0 {
family inet {
address 192.0.2.102/32 {
destination 192.0.2.101;
}
address 192.0.2.104/32 {
destination 192.0.2.103;
}
address 192.0.2.106/32 {
destination 192.0.2.105;
}
}
}
user@host> show interfaces terse dsc
b
Interface Admin Link Proto Local Remote
dsc up up
dsc.0 up up inet 192.0.2.102 --> 192.0.2.101
192.0.2.104 --> 192.0.2.103
192.0.2.106 --> 192.0.2.105La ventaja de usar una interfaz de descarte en lugar de usar rutas estáticas de descarte es que la interfaz de descarte le permite configurar y asignar filtros a la interfaz para contar, iniciar sesión y tomar muestras del tráfico. Esto se demuestra en este ejemplo.
Para descartar paquetes realmente, se requiere una política de enrutamiento adjunta a las sesiones del BGP. Para localizar rutas aptas para descartar, puede usar un filtro de rutas, una lista de acceso o un valor de comunidad BGP.
Por ejemplo, así es como usaría un filtro de ruta:
Filtro de ruta
protocols {
bgp {
import blackhole-by-route;
}
}
policy-options {
policy-statement blackhole-by-route {
term specific-routes {
from {
route-filter 10.10.10.1/32 exact;
route-filter 10.20.20.2/32 exact;
route-filter 10.30.30.3/32 exact;
route-filter 10.40.40.4/32 exact;
}
then {
next-hop 192.0.2.101
}
}
}
}
Figura 1 muestra la red de ejemplo.

El ejemplo incluye tres enrutadores con sesiones de BGP externas (EBGP) establecidas.
El dispositivo R1 representa el dispositivo atacante. El dispositivo R3 representa el enrutador más cercano al dispositivo que está siendo atacado. El dispositivo R2 mitiga el ataque reenviando paquetes a la interfaz de descarte.
En el ejemplo, se muestra un filtro saliente aplicado a la interfaz de descarte.
Un problema con el uso de un único filtro de ruta null es la visibilidad. Todos los paquetes de descarte aumentan el mismo contador. Para ver qué categorías de paquetes se descartan, utilice el uso de clase de destino (DCU) y asocie una clase definida por el usuario con cada comunidad de rutas null. A continuación, haga referencia a las clases de DCU en un filtro de firewall. Para obtener ejemplos relacionados, consulte Ejemplo: Agrupación de prefijos de origen y destino en una clase de reenvío y Ejemplo: Configurar un filtro de limitación de velocidad basado en la clase de destino.
En comparación con el uso de filtros de ruta y listas de acceso, usar un valor de comunidad es el enfoque administrativamente menos difícil y el más escalable. Por lo tanto, este es el enfoque que se muestra en este ejemplo.
De forma predeterminada, el siguiente salto debe ser igual a la dirección del par del BGP externo (EBGP). Para modificar el siguiente salto para los servicios de ruta null, es necesario configurar la función multihop en las sesiones del EBGP.
Configuración rápida de CLI muestra la configuración de todos los dispositivos en Figura 1.
En la sección #configuration756__policy-discard-st se describen los pasos del dispositivo R2.
Configuración
Procedimiento
Configuración rápida de CLI
Para configurar rápidamente este ejemplo, copie los siguientes comandos, péguelos en un archivo de texto, elimine los saltos de línea, cambie los detalles necesarios para que coincidan con su configuración de red y, luego, copie y pegue los comandos en la CLI en el [edit] nivel de jerarquía.
Dispositivo R1
set interfaces fe-1/2/0 unit 0 family inet address 10.0.0.1/30 set interfaces lo0 unit 0 family inet address 192.168.0.1/32 set protocols bgp group ext type external set protocols bgp group ext peer-as 200 set protocols bgp group ext neighbor 10.0.0.2 set routing-options autonomous-system 100
Dispositivo R2
set interfaces fe-1/2/0 unit 0 family inet address 10.0.0.2/30 set interfaces fe-1/2/1 unit 0 family inet address 10.1.0.1/30 set interfaces dsc unit 0 family inet filter output log-discard set interfaces dsc unit 0 family inet address 192.0.2.102/32 destination 192.0.2.101 set interfaces lo0 unit 0 family inet address 192.168.0.2/32 set protocols bgp import blackhole-policy set protocols bgp group ext type external set protocols bgp group ext multihop set protocols bgp group ext export dsc-export set protocols bgp group ext neighbor 10.0.0.1 peer-as 100 set protocols bgp group ext neighbor 10.1.0.2 peer-as 300 set policy-options policy-statement blackhole-policy term blackhole-communities from community blackhole-all-routers set policy-options policy-statement blackhole-policy term blackhole-communities then next-hop 192.0.2.101 set policy-options policy-statement dsc-export from route-filter 192.0.2.101/32 exact set policy-options policy-statement dsc-export from route-filter 192.0.2.102/32 exact set policy-options policy-statement dsc-export then community set blackhole-all-routers set policy-options policy-statement dsc-export then accept set policy-options community blackhole-all-routers members 100:5555 set routing-options static route 192.0.2.102/32 next-hop 192.0.2.101 set routing-options autonomous-system 200 set firewall filter log-discard term one then count counter set firewall filter log-discard term one then log
Dispositivo R3
set interfaces fe-1/2/1 unit 0 family inet address 10.1.0.2/30 set interfaces lo0 unit 0 family inet address 192.168.0.3/32 set interfaces lo0 unit 0 family inet address 192.0.2.102/32 set protocols bgp group ext type external set protocols bgp group ext peer-as 200 set protocols bgp group ext neighbor 10.1.0.1 set routing-options autonomous-system 300
Procedimiento paso a paso
El siguiente ejemplo requiere que navegue por varios niveles en la jerarquía de configuración. Para obtener instrucciones sobre cómo hacerlo, consulte Usar el Editor de CLI en modo de configuración la Guía del usuario de la CLI de Junos OS.
Para configurar el dispositivo R2:
Cree las interfaces del enrutador.
[edit interfaces] user@R2# set fe-1/2/0 unit 0 family inet address 10.0.0.2/30 user@R2# set fe-1/2/1 unit 0 family inet address 10.1.0.1/30 user@R2# set lo0 unit 0 family inet address 192.168.0.2/32
Configure un filtro de firewall que coincida con todos los paquetes y recuentos, y registre los paquetes.
[edit firewall filter log-discard term one] user@R2# set then count counter user@R2# set then log
Cree una interfaz de descarte y aplique el filtro de firewall de salida.
Los filtros de firewall de entrada no tienen ningún impacto en este contexto.
[edit interfaces dsc unit 0 family inet] user@R2# set filter output log-discard user@R2# set address 192.0.2.102/32 destination 192.0.2.101
Configure una ruta estática que envíe el siguiente salto a la dirección de destino especificada en la interfaz de descarte.
[edit routing-options static] user@R2# set route 192.0.2.102/32 next-hop 192.0.2.101
Configure el emparejamiento BGP.
[edit protocols bgp ] user@R2# set group ext type external user@R2# set group ext multihop user@R2# set group ext neighbor 10.0.0.1 peer-as 100 user@R2# set group ext neighbor 10.1.0.2 peer-as 300
Configure las políticas de enrutamiento.
[edit policy-options policy-statement blackhole-policy term blackhole-communities] user@R2# set from community blackhole-all-routers user@R2# set then next-hop 192.0.2.101 [edit policy-options policy-statement dsc-export] user@R2# set from route-filter 192.0.2.101/32 exact user@R2# set from route-filter 192.0.2.102/32 exact user@R2# set then community set blackhole-all-routers user@R2# set then accept [edit policy-options community blackhole-all-routers] user@R2# set members 100:5555
Aplique las políticas de enrutamiento.
[edit protocols bgp ] user@R2# set import blackhole-policy user@R2# set group ext export dsc-export
Configure el número de sistema autónomo (AS).
[edit routing-options] user@R2# set autonomous-system 200
Resultados
Desde el modo de configuración, confirme su configuración mediante la emisión de los show interfacescomandos , show protocols show policy-options, show routing-options, yshow firewall. Si el resultado no muestra la configuración deseada, repita las instrucciones en este ejemplo para corregir la configuración.
[edit]
user@R2# show interfaces
fe-1/2/0 {
unit 0 {
family inet {
address 10.0.0.2/30;
}
}
}
fe-1/2/1 {
unit 0 {
family inet {
address 10.1.0.1/30;
}
}
}
dsc {
unit 0 {
family inet {
filter {
output log-discard;
}
address 192.0.2.102/32 {
destination 192.0.2.101;
}
}
}
}
lo0 {
unit 0 {
family inet {
address 192.168.0.2/32;
}
}
}
user@R2# show protocols
bgp {
import blackhole-policy;
group ext {
type external;
multihop;
export dsc-export;
neighbor 10.0.0.1 {
peer-as 100;
}
neighbor 10.1.0.2 {
peer-as 300;
}
}
}
user@R2# show policy-options
policy-statement blackhole-policy {
term blackhole-communities {
from community blackhole-all-routers;
then {
next-hop 192.0.2.101;
}
}
}
policy-statement dsc-export {
from {
route-filter 192.0.2.101/32 exact;
route-filter 192.0.2.102/32 exact;
}
then {
community set blackhole-all-routers;
accept;
}
}
community blackhole-all-routers members 100:5555;
user@R2# show routing-options
static {
route 192.0.2.102/32 next-hop 192.0.2.101;
}
autonomous-system 200;
user@R2# show firewall
filter log-discard {
term one {
then {
count counter;
log;
}
}
}
Si ha terminado de configurar el dispositivo, ingrese commit desde el modo de configuración.
Verificación
Confirme que la configuración funciona correctamente.
- Borrar los contadores de firewall
- Hacer ping a la dirección 192.0.2.101
- Comprobar el filtro de salida
- Comprobar el atributo de la comunidad
Borrar los contadores de firewall
Propósito
Despejar los contadores para asegurarse de que está empezando desde un estado cero (0) conocido.
Acción
Desde el dispositivo R2, ejecute el
clear firewallcomando.user@R2> clear firewall filter log-discard
Desde el dispositivo R2, ejecute el
show firewallcomando.user@R2> show firewall filter log-discard Filter: /log-discard Counters: Name Bytes Packets counter 0 0
Hacer ping a la dirección 192.0.2.101
Propósito
Envíe paquetes a la dirección de destino.
Acción
Desde el dispositivo R1, ejecute el ping comando.
user@R1> ping 192.0.2.101 PING 192.0.2.101 (192.0.2.101): 56 data bytes ^C --- 192.0.2.101 ping statistics --- 4 packets transmitted, 0 packets received, 100% packet loss
Significado
Como se esperaba, la solicitud de ping falla y no se envía ninguna respuesta. Los paquetes se están descartando.
Comprobar el filtro de salida
Propósito
Verifique que el filtro de firewall del dispositivo R2 funcione correctamente.
Acción
Desde el dispositivo R2, ingrese el show firewall filter log-discard comando.
user@R2> show firewall filter log-discard Filter: log-discard Counters: Name Bytes Packets counter 336 4
Significado
Como se esperaba, el contador se está incrementando.
El paquete ping lleva 20 bytes adicionales de sobrecarga IP, así como 8 bytes del encabezado ICMP.
Comprobar el atributo de la comunidad
Propósito
Compruebe que la ruta se etiqueta con el atributo community.
Acción
Desde el dispositivo R1, ingrese el show route extensive comando, usando la dirección de vecino para el dispositivo R2, 192.0.2.101.
user@R1> show route 192.0.2.101 extensive
inet.0: 4 destinations, 4 routes (4 active, 0 holddown, 0 hidden)
192.0.2.101/32 (1 entry, 1 announced)
TSI:
KRT in-kernel 192.0.2.101/32 -> {10.0.0.2}
*BGP Preference: 170/-101
Next hop type: Router, Next hop index: 684
Address: 0x94141d8
Next-hop reference count: 2
Source: 10.0.0.2
Next hop: 10.0.0.2 via fe-1/2/0.0, selected
Session Id: 0x8000a
State: <Active Ext>
Local AS: 100 Peer AS: 200
Age: 53:03
Validation State: unverified
Task: BGP_200.10.0.0.2+63097
Announcement bits (1): 2-KRT
AS path: 200 I
Communities: 100:5555
Accepted
Localpref: 100
Router ID: 192.168.0.2
Significado
Como era de esperar, cuando el dispositivo R2 anuncia la ruta 192.0.2.101 al dispositivo R1, el dispositivo R2 agrega la etiqueta de comunidad 100:5555.
