Proyecto de Servidor de Rutas Bogon

Languages: en | es

Introducción

Un prefijo Bogon es una ruta que actualmente no debe aparecer en la tabla de enrutamiento de Internet. Un paquete enrutado sobre la Internet pública (not incluídas las VPN u otros túneles) no debería tener una dirección origen perteneciente a ningún rango declarado como Bogon. Estas se encuentran frecuentemente como direcciones de origen de ataques de Denegación de Servicio Distribuídos (DDoS).

Existen una variedad de formas de determinar los bogons y las asignaciones del IANA. La meta del Proyecto de Servidor de Rutas es proveer estos datos y actualizarlos mediante una sesión eBGP multisalto. Mediante esto se puede lograr la automatización del filtrado de manera muy simple incluso en redes de gran envergadura.

Los Bogons ingresan ocasionalmente dentro de la tabla mundial de enrutamiento como un error de configuración de un router. El Bogon route-server puede ayudarlo a evitar la propagación de esos errores o el ingreso de esos prefijos.

Otros métodos de rastreo y filtrado de Bogons pueden ser encontrados en la Página de Referencia sobre Bogons.

ADVERTENCIAS

N.B.: Por favor recuerde que este es un servicio gratuíto. El mismo se brinda de una forma no garantizada y sin garantías. Usted es dueño de su propia red, y es responsable por el (mal) uso de estos datos. Nosotros deseamos que sean de utilidad para usted y para su red. APRENDA ACERCA DE SU RED.

Por favor note que si usted utiliza espacio de direccionamiento IP definido en RFC1918 de forma interna, usted puede necesitar el filtrado de esos anuncios desde los Servidores de Rutas Bogon. Esto puede lograrse de manera muy sencilla mediante la utilización de route-maps o prefix-lists. Por favor no dude en contactarnos si necesita asistencia con estos filtros.

Detalles Técnicos

El peering es creado sobre una sesión eBGP multihop. Los routers utilizados para este peering son una colección de Routers Cisco 4500M y 2600; los mismos se utilizan para el único propósito de anuncio de los prefijos bogon. Actualmente existen 10 bogon route-servers en línea; 5 en los Estados Unidos, 2 en Europa, 2 en Asia y 1 en Africa. Nosotros recomendamos encarecidamente que usted haga sesiones con al menos 2 route-servers separados geográficamente por cuestiones de redundancia.

Los prefijos Bogon son anunciados en forma desagregada; siendo el 29 de OCTUBRE de 2008 esta lista incluye 44 prefijos. El ASN para todos los Bogon route-servers es 65333. Un ASN privado se usa para asegurar que la filtración sea fácilmente detectada y prevenida. Cada prejo es etiquetad con una community, 65333:888, para poder filtrar con más facilidad. Las sesiones de peering permiten el uso de un password. Los bogon route-servers no aceptan prefijos desde sus vecinos.

Nota para aquellos que usen Zebra: Zebra todavía no soporta el uso de passwords RFC 2385 en las sesiones de peering. Nosotros vamos a hacer la excepción del requerimiento de passwords TCP MD5 con los usuarios de este software.

Los Bogon route-servers anuncian los prefijos bogon mediante una combinación de comandos BGP network y rutas estáticas. Cuando un prefijo es asignado por el IANA a alguno de los RIRs, la ruta estática es removida y el prefijo Bogon es rápidamente eliminado de los anuncios BGP. Es fácil, limpio y funciona perfecto.

Filtrando Bogons Automáticamente

Entonces cómo uso los prefijos con la community 65333:888 para generar un filtro de Bogon? Obviamente hay miles de métodos. Un posible método es usar un route-map y una ruta con un next-hop hacia la interfase null0 (Cisco). Nosotros hemos recolectado los ejemplos que figuran a continuación desde nuestra propia experiencia y desde muchos contribuyentes que nos ayudaron.

Ejemplo de Router Cisco

router bgp <su ASN>
  neighbor x.x.x.x remote-as 65333
  neighbor x.x.x.x ebgp-multihop 255
  neighbor x.x.x.x description <su Descripción>
  neighbor x.x.x.x prefix-list cymru-out out
  neighbor x.x.x.x route-map CYMRUBOGONS in
  neighbor x.x.x.x password <su password asignado por nosotros>
  neighbor x.x.x.x maximum-prefix 100 threshold 90
!
! Recuerde configurar su Router Cisco para manejar el nuevo estilo
! de visualización de communities.
ip bgp-community new-format
!
! Declare un Bogon next-hop en todos los Routers que reciben los Bogons.
ip route 192.0.2.1 255.255.255.255 null0
!
! Configure una community list para aceptar los prefijos Bogon dentro del
! route-map.
ip community-list 10 permit 65333:888
!
! Configure el route-map. Recuerde aplicarlo a las sesiones apropiadas
! de peering.
route-map CYMRUBOGONS permit 10
  description Filtrar Bogons aprendidos desde los Bogon Route-Servers de cymru.com
  match community 10
  set ip next-hop 192.0.2.1
!
ip prefix-list cymru-out seq 5 deny 0.0.0.0/0 le 32

Ejemplo de Router Cisco con peer-groups

Con la llegada de múltiples Bogon route-servers, el uso de peer-groups de BGP en Cisco es muy conveniente. Gracias a John Brown por el ejemplo original.

router bgp <your asn>
  neighbor cymru-bogon peer-group
  neighbor cymru-bogon ebgp-multihop 255
  neighbor cymru-bogon description <Descripción General>
  neighbor cymru-bogon prefix-list cymru-out out
  neighbor cymru-bogon route-map CYMRUBOGONS in
  neighbor cymru-bogon maximum-prefix 100 threshold 90
!
  neighbor x.x.x.x remote-as 65333
  neighbor x.x.x.x peer-group cymru-bogon
  neighbor x.x.x.x description <Descripción Específica>
  neighbor x.x.x.x password <su password asignado por el Team Cymru>

Ejemplo de Router Juniper

routing-options {
    static {
        route 192.0.2.1/32 {
            discard;
            no-readvertise;
            retain;
        }
    }

    /* Si usted ha declarado 192.0.2.0/24 como Bogon agregue esta linea. */
    martians {
     192.0.2.1/32 exact allow;
    }

    autonomous-system <su AS va aquí>;
}

protocols {
    bgp {
        group CYMRU {
            type external;
            description "peering para recibir los bogons desde CYMRU";
            import CYMRU-bogons-in;
            authentication-key "clave secreta"; # DATOS-SECRETOS
            export deny-all;
            peer-as 65333;
            multihop 255;
            neighbor <IP del bogon route-server>;
            family inet {
                unicast {
                    prefix-limit {
                        maximum 100;
                        teardown 100;
                    }
                }   
            }
        }
    }
}

policy-options {
    policy-statement CYMRU-bogons-in {
        term 1 {
            from {
                protocol bgp;
                as-path CYMRU-private-asn;
                community CYMRU-bogon-community;
            }
            then {
      /* backup en caso de que no-export es limpiado internamente */
                community add dont-announce;
                next-hop 192.0.2.1;
                accept;
            }
        }
        then reject;    #  acción por defecto
    }

    policy-statement deny-all {
        then reject;
    }

    community dont-announce members <su AS va aquí>:<alguna community que suprima anuncios fuera de su AS>; 

    community CYMRU-bogon-community members [ no-export 65333:888 ];

    as-path CYMRU-private-asn 65333;
}

Ejemplo de Force10 router

router bgp <su AS va aquí>
  neighbor IPV4_BOGONS peer-group
  neighbor IPV4_BOGONS route-map CYMRUBOGONS in
  neighbor IPV4_BOGONS distribute-list CYMRU-OUT out
  neighbor IPV4_BOGONS maximum-prefix 100 90
  neighbor IPV4_BOGONS soft-reconfiguration inbound
  neighbor IPV4_BOGONS no shutdown
  neighbor x.x.x.x remote-as 65333
  neighbor x.x.x.x peer-group IPV4_BOGONS
  neighbor x.x.x.x description <su descripción>
  neighbor x.x.x.x ebgp-multihop 255
  neighbor x.x.x.x password <el password asignado por el Team Cymru>
  neighbor x.x.x.x no shutdown
! Hacer una ruta estática como esta en todos los routers que reciben la lista de Bogons.
ip route 192.0.2.1 255.255.255.255 null0
!
! Configurar una community list para aceptar los prefijos Bogon dentro del
! route-map.
ip community-list CYMRU_COMMUNITY
 permit 65333:888
!
! Configurar el route-map.  Recuerde aplicarlo a todas las
! sesiones de peering.
route-map CYMRU_BOGONS permit 10
  description Filtrar bogons aprendidos desde los Bogon route-servers de cymru.com.
  match community CYMRU_COMMUNITY
  set next-hop 192.0.2.1
!
ip prefix-list CYMRU_OUT
  seq 5 deny any

Ejemplo de OpenBSD bgpd

El proyecto bgpd de OpenBSD puede ser usado para hacer peering con los Bogon route-servers. Nuestras gracias a Pete Vickers por este ejemplo.

# fragmento de configuración de /etc/bgpd.conf
#
# Basadi en la configuración de Pete Vickers del 05/2004.
#
# Modificado ligeramente para entremezclarse con pf, y
#   además para aplicar políticas a las rutas originadas por Cymru
#   que se reciben desde los peers IBGP.
#
# Configurar las sesiones con Cymru
#
group "peering bogon" {
  remote-as 65333
  local-address <MI-IP-DEL-ROUTER>
  multihop 64
  announce none
  max-prefix 1000
  tcp md5sig password <PASSWORD-ASIGNADO-POR-CYMRU>
  neighbor <IP-DEL-BOGON-ROUTE-SERVER-1>
  neighbor <IP-DEL-BOGON-ROUTE-SERVER-2>
  # ... etc
}
#
#
# ¿Qué hacer con los updates? (puede ser usado con updates desde los
# peers del cymru, pero además desde peers IBGP si otros routers
# en este AS también obtienen los bogons). El "nexthop
# blackhole" es un poco extraño dada la config de pf,
# pero lo tenemos en cuenta en caso de que el filtrado de paquetes esté
# deshabilitado en cualquier lugar.
#
allow from any community 65333:888 set pftable "bogons"
allow from any community 65333:888 set nexthop blackhole


# Fragmento de código de /etc/pf.conf
#
table <bogons> persist
#
# No permito orígenes o destinos Bogon
block quick from <bogons> to any
block quick from any to <bogons>

Ejemplo de Mikrotik RouterOS

Este ejemplo de cómo configurar un equipo con Mikrotik RouterOS para usar el Bogon Route Server Project está disponible gracias a Ariel S. Weher.

# Config hecha por Ariel S. Weher, basada en el ejemplo de Cisco del Team Cymru's.
# Testeada con éxito en la versión 3.X de Mikrotik RouterOS.

/routing bgp instance
set default as=<SU_NUMERO_DE_AS> client-to-client-reflection=yes comment="" disabled=no \
    ignore-as-path-len=no name=default out-filter="" redistribute-connected=\
    no redistribute-ospf=no redistribute-other-bgp=no redistribute-rip=no \
    redistribute-static=no router-id=<SU-DIRECCION-IP-DE-ROUTER_ID>


/ip firewall address-list
add address=<Dirección.IP.de.la.SESION#1.del.Team-Cymru> comment="TEAM-CYMRU BOGON Server #1" disabled=no list=BGP-NEIGHBORS
add address=<Dirección.IP.de.la.SESION#2.del.Team-Cymru> comment="TEAM-CYMRU BOGON Server #2" disabled=no list=BGP-NEIGHBORS

/ip firewall filter
add action=accept chain=input comment="BGP Neighbors" disabled=no dst-port=179 protocol=\
    tcp src-address-list=BGP-NEIGHBORS 

/ip route
add comment="Ruta para descartar paquetes Bogon" disabled=no distance=1 dst-address=192.0.2.1/32 type=blackhole

/routing bgp peer
add address-families=ip comment="TEAM-CYMRU BOGON Server #1" disabled=no hold-time=3m in-filter=BOGON-SERVER-IN \
	instance=default max-prefix-limit=50 multihop=yes name=CYMRU-1 \
	nexthop-choice=default out-filter=BGP-DROP remote-address=\
    <Dirección.IP.de.la.SESION#1.del.Team-Cymru> remote-as=65333 route-reflect=no tcp-md5-key=Password_Recibido_Desde_El_Cymru ttl=255

add address-families=ip comment="TEAM-CYMRU BOGON Server #2" disabled=no hold-time=3m in-filter=BOGON-SERVER-IN \
	instance=default max-prefix-limit=50 multihop=yes name=CYMRU-1 \
	nexthop-choice=default out-filter=BGP-DROP remote-address=\
    <Dirección.IP.de.la.SESION#2.del.Team-Cymru> remote-as=65333 route-reflect=no tcp-md5-key=Password_Recibido_Desde_El_Cymru ttl=255
	
/routing filter
add action=accept bgp-communities=65333:888 chain=BOGON-SERVER-IN comment="" \
    disabled=no invert-match=no protocol=bgp set-out-nexthop=192.0.2.1
add action=discard chain=BOGON-SERVER-IN comment="" disabled=no invert-match=\
    no protocol=bgp
add action=discard chain=BGP-DROP comment="" disabled=no invert-match=no \
    protocol=bgp

Si ninguno de estos métodos funcionaron para usted, por favor contáctenos para que le demos asistencia. Nosotros estamos anciosos por escuchar sus sugerencias acerca de otras formas de filtrado

Cómo obtengo una Sesión de Peering?

Para conectarse con el Bogon Route Server, por favor contacte a team-cymru@cymru.com. Cuando solicite la sesión de peering, por favor incluya la siguiente información en su email:

  1. Su número de AS
  2. La(s) direccion(es) IP que usted quiera usar para conectarse
  3. Indique si su equipo soporta passwords MD5 en las sesiones de BGP
  4. Opcional: su clave pública GPG/PGP

Nosotros normalmente preveemos múltiples sesiones de peering (al menos 2) para lograr redundancia. Si usted desea más o menos sesiones que 2 por favor solicítelo en su pedido. Nosotros trataremos de responder la solicitud de peering dentro del período de un dí hábil.

Recuerde que usted debe ser capaz de recibir hasta 100 prefijos y ser capaz de hacer peering multihop contra un ASN privado. Si usted configura inadecuadamente su peering y enruta todos los paquetes destinados para las direcciones Bogon a los Bogon route-servers, su sesión de peering será eliminada.

Agradecimientos

Los filtros de Bogon gratuítos, el monitoreo, y el seguimiento son posibles gracias a las amables donaciones de peering, hosting, equipos y tiempo de muchos individuos and organizaciones. Si usted desea donar a la causa, ya sea con una sesión de peering, equipo viejo, o un buen café :), por favor contacte al Team Cymru.

Esperamos que estos links, referencias, y monitoreo sean de utilidad para usted. Por favor comparta sus sugerencias, comentarios, y referencias con nosotros! Dirija sus comentarios al team-cymru@cymru.com.