jueves, 25 de julio de 2013

BGP:Algoritmo selección ruta BGP

Uno de los pilares fundamentales para entender bgp es el algoritmo de selección de rutas o prefijos de BGP.

Para la gente acostumbrada a los IGP, BGP puede llegar a ser un poco confuso, este artículo pretende dejar claro como se decide que ruta se introduce en la tabla de rutas por BGP en un router cisco, en los routers de otros fabricantes el proceso va a ser muy similar, salvo por algunos detalles que se es exclusivo de Cisco.

BGP tan solo va a meter una ruta por defecto en la tabla de rutas para un único destino, esta ruta se elegirá comparando una serie de argumentos, que en caso de empate en el primero, se pasará al segundo, tercero, cuarto...etc hasta que se encuentre una ruta a considerar válida.

1. WEIGHT:

La ruta que tenga el mayor peso se instalará en la tabla de routing. Se trata de un atributo específico de Cisco Systems.

Se trata de un atributo que tan solo es representativo en el router, el router no le anuncia a otros routers que peso tienen las rutas, se trata de un mecanismo de control muy sencillo para elegir por donde queremos que el tráfico transite.

Una forma sencilla de configurarlo:
router bgp 200
neighbor 10.10.10.10 remote-as 100
neighbor 10.10.10.10 weight 200
También se pueden usar route-maps para fijar o matchear el weight.

2. LOCAL_PREFERENCE:

La ruta que tenga la mayor local preference se instala en la tabla de routing. Se trata de un atributo que es significativo en el sistema autónomo local, por lo que se anuncia a routers del mismo AS para influirlos, pero no se anuncia a routers de otros AS.

Por defecto el valor de la local preference es 100.

Forma de configurarlo:

router bgp 200
neighbor 10.10.10.10 remote-as 100
bgp default local-preference 200
Tambíen se pueden usar route-maps para fijar o matchear la local preference.

3. Redes originadas por medio de un network o un aggregate-address:

Estas rutas apareceran como internal en los routers, al contrario que las rutas que han sido redistribuidas de otro protocolo de routing...etc.

4. La ruta que pase por menos sistemas autónomos:

Por defecto BGP intenta pasar por el mínimo número de sistemas autónomos, para evitar bucles de routing.
Se puede configurar que a ciertas rutas se les añadan AS en el atributo AS PATH para que el resto de
routers penalicen estas rutas.

router bgp 65001
 neighbor 10.1.0.3 remote-as 65100
 neighbor 10.1.0.3 route-map prepend out
!
route-map prepend permit 10
 set as-path prepend 65001 65001 65001
5. Origen mas bajo:

Esto es simplemente que las rutas cuyo orígen es un IGP o locales, son preferidas a las aprendidas por un EGP, y estas son preferidas ante las rutas con orígen incompleto.

6. Rutas con un campo MED menor:

Por defecto los routers anuncian las rutas con el campo MED a 0, pero cuando son rutas redistribuidas de otro protocolo en BGP se añade la métrica del IGP al atributo MED en la ruta de BGP.
Por supuesto, como todo, se puede cambiar o matchear con route-maps.

Un documento muy bueno para leer con una buena dosis de café encima, que trata esto y muchas otras cosas es:

http://www.cisco.com/en/US/tech/tk365/technologies_tech_note09186a00800c95bb.shtml

No hay comentarios:

Publicar un comentario