Ayúdenos a mejorar su experiencia.

Háganos saber su opinión.

¿Podría dedicar dos minutos de su tiempo a completar una encuesta?

Announcement: Try the Ask AI chatbot for answers to your technical questions about Juniper products and solutions.

close
header-navigation
keyboard_arrow_up
close
keyboard_arrow_left
list Table of Contents

¿Fue útil esta traducción automática?

starstarstarstarstar
Go to English page
DESCARGO DE RESPONSABILIDAD:

Esta página será traducida por software de traducción automática de terceros. Si bien nos hemos esforzado por proporcionar una traducción de calidad, Juniper Networks no puede garantizar su corrección. En caso de duda respecto a la exactitud de la información que ofrece esta traducción, consulte la versión en inglés. El PDF descargable está disponible solo en inglés.

Ejemplo: Reenvío de paquetes a la interfaz de descarte

date_range 18-Jan-25

En este ejemplo se muestra cómo usar el enrutamiento de descarte para mitigar los ataques de denegación de servicio (DoS), proteger recursos de red vitales de ataques externos, proporcionar servicios de protección a los clientes para que cada cliente pueda iniciar su propia protección, y registrar y realizar un seguimiento de los intentos de DoS.

Requisitos

No se necesita 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 están configurados con reglas que impiden que millones de solicitudes en un corto período de tiempo se envíen a la misma dirección. 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 con agujeros negros. Los tipos de rutas que deben descartarse 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 próximo salto utilizado para las rutas de descarte. Una ruta estática de descarte utiliza la discard opción.

Por ejemplo:

content_copy zoom_out_map
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;
}
content_copy zoom_out_map
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 sólo puede tener una unidad lógica (unidad 0), pero puede configurar varias direcciones IP en la unidad 0.

Por ejemplo:

content_copy zoom_out_map
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;
        }
    }
}
content_copy zoom_out_map
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.105

La 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, registrar y muestrear el tráfico. Esto se demuestra en este ejemplo.

Para descartar paquetes realmente, se requiere una política de enrutamiento adjunta a las sesiones BGP. Para localizar rutas aptas para descartar, puede usar un filtro de ruta, una lista de acceso o un valor de comunidad BGP.

Por ejemplo, así es como usaría un filtro de ruta:

Filtro de ruta

content_copy zoom_out_map
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.

Figura 1: Red de ejemplo de interfaz de descarteRed de ejemplo de interfaz de descarte

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 de salida aplicado a la interfaz de descarte.

Nota:

Un problema con el uso de un solo filtro de ruta nula es la visibilidad. Todos los paquetes descartados incrementan el mismo contador. Para ver qué categorías de paquetes se están descartando, use el uso de clase de destino (DCU) y asocie una clase definida por el usuario con cada comunidad de ruta nula. A continuación, haga referencia a las clases DCU en un filtro de firewall. Para ver ejemplos relacionados, consulte Ejemplo: Agrupar prefijos de origen y destino en una clase de reenvío y Ejemplo: Configuración de 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, el uso de un valor de comunidad es el enfoque menos difícil administrativamente 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 BGP externo (EBGP). La modificación del siguiente salto para servicios de ruta nula requiere que la característica multisalto esté configurada en las sesiones de 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, a continuación, copie y pegue los comandos en la CLI en el nivel de [edit] jerarquía.

Dispositivo R1

content_copy zoom_out_map
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

content_copy zoom_out_map
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

content_copy zoom_out_map
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

En el ejemplo siguiente, debe explorar por varios niveles en la jerarquía de configuración. Para obtener instrucciones sobre cómo hacerlo, consulte Usar el editor de CLI en el modo de configuración la Guía del usuario de la CLI de Junos OS.

Para configurar el dispositivo R2:

  1. Cree las interfaces del enrutador.

    content_copy zoom_out_map
    [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
    
  2. Configure un filtro de firewall que coincida con todos los paquetes y cuente y registre los paquetes.

    content_copy zoom_out_map
    [edit firewall filter log-discard term one]
    user@R2# set then count counter
    user@R2# set then log
    
  3. 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.

    content_copy zoom_out_map
    [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
    
  4. Configure una ruta estática que envíe el siguiente salto a la dirección de destino especificada en la interfaz de descarte.

    content_copy zoom_out_map
    [edit routing-options static]
    user@R2# set route 192.0.2.102/32 next-hop 192.0.2.101
    
  5. Configure el emparejamiento BGP.

    content_copy zoom_out_map
    [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
    
  6. Configure las directivas de enrutamiento.

    content_copy zoom_out_map
    [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
    
  7. Aplique las directivas de enrutamiento.

    content_copy zoom_out_map
    [edit protocols bgp ]
    user@R2# set import blackhole-policy
    user@R2# set group ext export dsc-export
    
  8. Configure el número de sistema autónomo (AS).

    content_copy zoom_out_map
    [edit routing-options]
    user@R2# set autonomous-system 200
    

Resultados

Desde el modo de configuración, confirme la configuración emitiendo los show interfacescomandos , show protocols , show policy-optionsshow routing-options, y show firewall . Si el resultado no muestra la configuración deseada, repita las instrucciones en este ejemplo para corregir la configuración.

content_copy zoom_out_map
[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;
        }
    }
}
content_copy zoom_out_map
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;
        }
    }
}
content_copy zoom_out_map
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;
content_copy zoom_out_map
user@R2# show routing-options
static {
    route 192.0.2.102/32 next-hop 192.0.2.101;
}
autonomous-system 200;
content_copy zoom_out_map
user@R2# show firewall
filter log-discard {
    term one {
        then {
            count counter;
            log;
        }
    }
}

Cuando termine de configurar el dispositivo, ingrese commit en el modo de configuración.

Verificación

Confirme que la configuración funcione correctamente.

Borrar los contadores del firewall

Propósito

Borre los contadores para asegurarse de que está comenzando desde un estado cero (0) conocido.

Acción

  1. Desde el dispositivo R2, ejecute el clear firewall comando.

    content_copy zoom_out_map
    user@R2> clear firewall filter log-discard
  2. Desde el dispositivo R2, ejecute el show firewall comando.

    content_copy zoom_out_map
    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

Enviar paquetes a la dirección de destino.

Acción

Desde el dispositivo R1, ejecute el ping comando.

content_copy zoom_out_map
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 era de esperar, la solicitud de ping falla y no se envía ninguna respuesta. Los paquetes están siendo descartados.

Comprobación del filtro de salida

Propósito

Compruebe que el filtro de firewall del dispositivo R2 funciona correctamente.

Acción

En el dispositivo R2, escriba el show firewall filter log-discard comando.

content_copy zoom_out_map
user@R2> show firewall filter log-discard
Filter: log-discard                                       
Counters:
Name                                                Bytes              Packets
counter                                               336                    4

Significado

Como era de esperar, el contador se está incrementando.

Nota:

El paquete ping lleva 20 bytes adicionales de sobrecarga IP, así como 8 bytes de encabezado ICMP.

Comprobación del atributo Community

Propósito

Compruebe que la ruta se está etiquetando con el atributo community.

Acción

Desde el dispositivo R1, ingrese el show route extensive comando utilizando la dirección del vecino del dispositivo R2, 192.0.2.101.

content_copy zoom_out_map
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.

footer-navigation