cancelar
Mostrando los resultados de 
Buscar en lugar de 
Quiere decir: 
cancel
2689
Visitas
0
ÚTIL
17
Respuestas

BGP Load Balancing

dannytorrez
Level 1
Level 1

Buenos dias estimados,tengo la necesidad urgente de hacer un esquema de load balancing utilizando BGP para los usuarios de internet. Tengo dos proveedores que me anuncian mis redes publicas y quiero hacer un load-balancing para utilizar los dos link que tengo disponible. Básicamente lo que quiero es poder controlar que redes o host puedo enviar por un links para no tener todo saliendo por un solo proveedor…de tal manera que si alguno falla, pueda manualmente pasar las redes que están por el link caído al link que esta activo…les envio mi actual configuracion BGP con un unico link...Espero me puedan ayudar....Saludos..

neighbor 1.1.1.1 remote-as ABCDE (redes y ASN como ejemplo)

neighbor 1.1.1.1 description Unico Link

neighbor 1.1.1.1 ebgp-multihop 255

neighbor 1.1.1.1 update-source GigabitEthernet0/0

neighbor 1.1.1.1 activate

neighbor 1.1.1.1 soft-reconfiguration inbound

address-family ipv4

network 10.10.10.0 mask 255.255.255.0

network 10.10.11.0 mask 255.255.255.0

network 10.10.12.0 mask 255.255.255.0

network 10.10.13.0 mask 255.255.255.0

que configuracion tengo que implementar para lograr mi objetivo??...He revisado por internet y hay varias configuraciones que parecen apuntan hacia lo que quiero pero no estoy seguro si aplican a mi requerimiento...SC..

17 RESPUESTAS 17

Ricardo Prado Rueda
Cisco Employee
Cisco Employee

Hola Danny:

   BGP por sí solo no puede hacer balanceo de tráfico, pero lo que quieres hacer (load sharing) está permitido. Aquí hay un ejemplo de cómo hacer eso:

http://www.cisco.com/en/US/tech/tk365/technologies_configuration_example09186a00800945bf.shtml#conf4

   Básicamente, a través de un route-map le das mayor o menor peso a través del atributo Weight o Local Preference a ciertos prefijos. Para que esto funcione de la mejor manera, los dos proveedores a los que estás conectado deben mandarte prácticamente las mismas rutas para que de esta manera prefieras a uno u otro proveedor para tu tráfico de salida.

   Saludos,

Ricardo.

Estimado Ricardo, muchas gracias por tu ayuda..Estoy claro que BGP como usted dice no hace el load-balancing por si mismo, necesitamos herramientas como route-map. Como debo de hacer la segunda sesion BGP con el segundo proveedor??...Le envio la configuracion para que la revise:

neighbor 1.1.1.1 remote-as 1111 proveedor1

neighbor 1.1.1.1 description Unico Link

neighbor 1.1.1.1 ebgp-multihop 255

neighbor 1.1.1.1 update-source GigabitEthernet0/0

neighbor 1.1.1.1 activate

neighbor 1.1.1.1 soft-reconfiguration inbound

address-family ipv4

network 10.10.10.0 mask 255.255.255.0

network 10.10.11.0 mask 255.255.255.0

network 10.10.12.0 mask 255.255.255.0

network 10.10.13.0 mask 255.255.255.0

neighbor 2.2.2.2 remote-as 2222 Proveedor2

neighbor 2.2.2.2 description Unico Link

neighbor 2.2.2.2 ebgp-multihop 255

neighbor 2.2.2.2 update-source GigabitEthernet0/0

neighbor 2.2.2.2 activate

neighbor 2.2.2.2 soft-reconfiguration inbound

address-family ipv4

network 10.10.10.0 mask 255.255.255.0

network 10.10.11.0 mask 255.255.255.0

network 10.10.12.0 mask 255.255.255.0

network 10.10.13.0 mask 255.255.255.0

Despues debo de aplicar los route-map o dentro del BGP debo de indicarle que route-map va utilizar y con que redes???...Gracias por su ayuda....

Estimado Harold, gracias por su ayuda...deberia de usar route-map? o con estos comandos es sufuciente??....Gracias por su ayuda....

Hola Danny,

Puede usar route-map para anunciar las rutas hacia los proveedores pero no necesita route-map para el load balancing hacia Internet.

Saludos

Regards,
Harold Ritter, CCIE #4168 (EI, SP)

Estimado Harold, es correcta esta configuracion de BGP para el segundo proveedor??

neighbor 1.1.1.1 remote-as 1111 proveedor1

neighbor 1.1.1.1 description Unico Link

neighbor 1.1.1.1 ebgp-multihop 255

neighbor 1.1.1.1 update-source GigabitEthernet0/0

neighbor 1.1.1.1 activate

neighbor 1.1.1.1 soft-reconfiguration inbound

address-family ipv4

network 10.10.10.0 mask 255.255.255.0

network 10.10.11.0 mask 255.255.255.0

network 10.10.12.0 mask 255.255.255.0

network 10.10.13.0 mask 255.255.255.0

neighbor 2.2.2.2 remote-as 2222 Proveedor2

neighbor 2.2.2.2 description Unico Link

neighbor 2.2.2.2 ebgp-multihop 255

neighbor 2.2.2.2 update-source GigabitEthernet0/0

neighbor 2.2.2.2 activate

neighbor 2.2.2.2 soft-reconfiguration inbound

address-family ipv4

network 10.10.10.0 mask 255.255.255.0

network 10.10.11.0 mask 255.255.255.0

network 10.10.12.0 mask 255.255.255.0

network 10.10.13.0 mask 255.255.255.0

Necesito algo mas para enviar una red por el proveedor 1 y otra red por el proveedor 2???Gracuas...

Si tiene que usar un prefix-list (o route-map) diferente para cada proveedor.

!

neighbor 1.1.1.1 prefix-list proveedor1 out

neighbor 2.2.2.2 prefix-list proveedor2 out

network 10.10.10.0 mask 255.255.255.0

network 10.10.11.0 mask 255.255.255.0

network 10.10.12.0 mask 255.255.255.0

network 10.10.13.0 mask 255.255.255.0

network 10.10.10.0 mask 255.255.254.0

network 10.10.12.0 mask 255.255.254.0

!

ip route 10.10.10.0 255.255.254.0 null0

ip route 10.10.12.0 255.255.254.0 null0

!

ip prefix-list proveedor1 seq 5 permit 10.10.10.0/24

ip prefix-list proveedor1 seq 10 permit 10.10.11.0/24

ip prefix-list proveedor1 seq 15 permit 10.10.12.0/23

!        

ip prefix-list proveedor2 seq 5 permit 10.10.12.0/24

ip prefix-list proveedor2 seq 10 permit 10.10.13.0/24

ip prefix-list proveedor2 seq 15 permit 10.10.10.0/23

!        

Saludos

Regards,
Harold Ritter, CCIE #4168 (EI, SP)

Estimado Harold, a que se debe la diferencia de mascara de red de las redes 10.10.12.0/23..Es un ejemplo de subred o que es??...Entiendo lo que me indica para el anuncio de estas redes con los prefix-list, voy a realizar pruebas con ellos. Ahora estos son de salida(out), quiero que el paquete salga por ese proveedor y regrese por ese proveedor,no quiero que salga por uno y  regrese por otro.. Esto es posible??....Muchas gracias por su tiempo...

La diferencia de mascara es que si anuncia el 10.10.10.0/24 y 10.10.11.0/24 por un lado, tiene qu anunciar 10.10.10

.0/23 por el otro lado como un backup. Estas rutas que anuncia a los proveedores influenciara el trafico desde el Internet.

¿Hay una buena rason para que un paquete que salga, por un lado regrese el mismo lado? El trafico asimetrico es una cosa muy normal en el Internet. Es posible de hacer el trafico simetrico pero puede ser mucha mas dificil.

Saludos

Regards,
Harold Ritter, CCIE #4168 (EI, SP)

Hola harold, tengo una buena razon para que el trafico sea simetrico,  y es que quiero utilizar de manera independiente los dos links que  tengo disponible para aprovechar el ancho de banda de cada enlace ya que  si la descarga se viene de manera asimetrica por uno de los enlaces que  esta saturado, no me sirve ya que precisamente quiero descongestionar  ese link aprovechando el link por donde estoy enviando esa red o  host..Gracias por su tiempo...

Hola Danny,

En mi opinion, el load balancing es la solucion para decongestionar. No importa si el trafico es simetrico o asimetrico. Hay maneras de asegurar trafico simetrico pero pude ser mas o menos complicado. Por ejemplo, si esta usando NAT con un diferente bloque de direcciones IP, es facil de asegurar que el bloque 1 que salga via proveedor 1 regrese via el mismo proveedor. Pero si no esta usando NAT, puede usar algo como PBR para dirigir el trafico hacia proveedor 1 o 2 basado sobre la direccion IP fuente.

Saludos

Regards,
Harold Ritter, CCIE #4168 (EI, SP)

Estimado ricardo, tengo un problema con la configuracion de BGP con dos proveedores,  la configuracion es bien sencilla y es la que le envio. cuando levantan  las sesiones, el router escoge la ruta por el proveedor2, el trafico de  salida es enviado por este proveedor, pero el trafico de entrada es  recibida por el proveedor1. Esto me causa el problema que no puedo  aprovechar el ancho de banda de los dos link que tengo, ocasionando que  el link del proveedor 1 se me sature(la descarga). Lo que necesito es  que el trafico entrante y saliente sea por el mismo link, no que suba  por un link y baje por otro link. Ademas necesito que el router tome al  proveedor 1 como ruta preferida ya que no lo esta haciendo si no al  proveedor 2. Que necesito para que esto funcione de la forma que  quiero???...Como puedo ademas enviar el trafico de entrada y salida de  la red 10.10.10.0 y 20.20.20.0 por cualquiera de los dos link??Es decir,  la red 10.10.10.0 el trafico salga y entre por el proveedor 1 y la red  20.20.20.0 el trafico salga y entre por el proveedor 2 ????...Gracias  por su tiempo y ayuda...

router bgp 123456

bgp router-id 1.1.1.1

bgp log-neighbor-changes

neighbor 1.1.1.1 remote-as 5555

neighbor 1.1.1.1 description Enlace proveedor 1

neighbor 1.1.1.1 ebgp-multihop 255

neighbor 1.1.1.1 version 4

neighbor 1.1.1.1 update-source GigabitEthernet0/0

neighbor 1.1.1.1 activate

neighbor 1.1.1.1 soft-reconfiguration inbound

address-family ipv4

neighbor 2.2.2.2 remote-as 6666

neighbor 2.2.2.2 description Enlace Proveedor2

neighbor 2.2.2.2 version 4

neighbor 2.2.2.2 update-source GigabitEthernet0/2

neighbor 2.2.2.2 activate

neighbor 2.2.2.2 soft-reconfiguration inbound

neighbor 2.2.2.2 ebgp-multihop 255

network 10.10.10.0 mask 255.255.255.0

network 20.20.20.0 mask 255.255.255.0

network 30.30.30.0 mask 255.255.255.0

network 30.30.30.0 mask 255.255.255.0

Hola Danny:

   Con BGP existen distinas maneras de influenciar el tráfico de salida y el tráfico entrante. Para el tráfico de salida la intención es dar preferencia a un update de un vecino sobre otro y para esto puedes usar los atributos LOCAL PREFERENCE y WEIGHT. Por el contrario, para el tráfico de entrada, lo que se busca es mandar updates con atributos que ayuden a influenciar la decisión de equipos externos sobre cuál update se debe elegir y para esto se puede usar AS-PATH y de forma mucho más limitada MED.

   Ahora bien, lo que estás buscando es que cierto tráfico de una red fuente (10.10.10.0) salga por determinado link y la respuesta también regrese por dicho link. En otras palabras, tu idea es enrutar con base en el origen del tráfico para parte de esta trayectoria y esto no es posible de realizar únicamente con BGP, ya que como todos los protocolos dinámicos está basado en enrutar hacia el destino sin importar el origen.

   Para poder lograr esto, necesitas combinar BGP con PBR. Con BGP hay que influenciar el ruteo del tráfico de entrada para que Internet mande el tráfico hacia tu prefijo (10.10.10.0) por el proveedor que tú elijas. Con PBR, podemos forzar a que el tráfico originado en el mismo prefijo también salga por el mismo proveedor. PBR hace ruteo con base en el origen y se ejecuta antes del ruteo normal, por lo que si el "next-hop" no se encuentra disponible, aún existe la posibilidad de enrutar el tráfico a través de la tabla global.

   Como ejemplo usaré el prefijo 10.10.10.0 para salir a través del proveedor 1 (1.1.1.1) y el prefijo 20.20.20.0 para salir a través del proveedor 2 (2.2.2.2):

1) Usar BGP (AS-PATH) para que el tráfico entrante para 10.10.10.0 sea menos preferido por el proveedor 2 (un AS PATH mas largo es menos preferido):

access-list 10 permit 10.10.10.0

route-map BGPISP2 permit 10

match ip address 10

set as-path prepend 123456 123456 123456

2) Usar BGP (AS-PATH) para que el tráfico entrante para 20.20.20.0 sea menos preferido por el proveedor 1:

access-list 20 permit 20.20.20.0

route-map BGPISP1 permit 10

match ip address 20

set as-path prepend 123456 123456 123456

3) Usar PBR para enrutar el prefijo 10.10.10.0 hacia el proveedor 1:

route-map 2ISP1 permit 10

  match ip address 10

  set ip next-hop 1.1.1.1

4) Usar PBR para enrutar el prefijo 20.20.20.0 hacia el proveedor 2:

route-map 2ISP2 permit 10

  match ip address 20

  set ip next-hop 2.2.2.2

5) Configuración final:

router bgp 123456

neighbor 1.1.1.1 route-map BGPISP1 out

neighbor 2.2.2.2 route-map BGPISP2 out

interface

  ip policy route-map 2ISP1

interface

  ip policy route-map 2ISP2

Saludos.

Estimado Ricardo, muchas gracias por su respuesta...entiendo todo lo que me ha explicado...mejor aun con los ejemplos que me dio...He aplicado la configuracion pero el trafico de entrada(lo que recibo de internet) siempre se me divide en los dos links, es decir estoy recibiendo trafico por ambos enlaces, he aplicado el maximo set as-path prepend (10)y continuo recibiendo trafico de entrada por ambos proveedores. he logrado que el trafico de salida, suba por el proveedor que quiero, pero no puedo hacer que el trafico de entrada entre por un solo proveedor..Hago una traza desde internet a un host de la red que estoy anunciando y siempre me voy por el provedor que no quiero...Que otras opciones tengo???....Muchas gracias por su tiempo...

Estimado Ricardo, le envío la actual configuración en donde el trafico de entrada(lo que viene de internet) entra por los dos proveedores, lo que necesito es que el trafico entrante entre unicamente por un ISP(ya he logrado que el trafico salga por un solo ISP), pero el trafico entrante se divide en los dos links...Unicamente si bajo la sesion de cualquiera de los dos, el comportamiento del enlace es a como quiero...Muchas gracias por su tiempo....

router bgp 123456

bgp router-id 1.1.1.1

bgp log-neighbor-changes

neighbor 1.1.1.1 remote-as 5555
neighbor 1.1.1.1 description ***Enlace_ISP1***
neighbor 1.1.1.1 next-hop-self
neighbor 1.1.1.1 soft-reconfiguration inbound
neighbor 1.1.1.1 route-map ENLACE_ISP1-in in
neighbor 1.1.1.1 route-map ENLACE_ISP1-out out


neighbor 2.2.2.2 remote-as 6666
neighbor 2.2.2.2 description ***Enlace_ISP2***
neighbor 2.2.2.2 next-hop-self
neighbor 2.2.2.2 soft-reconfiguration inbound
neighbor 2.2.2.2 route-map ENLACE_ISP2-in in
neighbor 2.2.2.2 route-map ENLACE_ISP2-out out

network 10.10.10.0 mask 255.255.255.0
network 20.20.20.0 mask 255.255.255.0
network 30.30.30.0 mask 255.255.255.0
network 40.40.40.0 mask 255.255.255.0

access-list 10 permit 0.0.0.0

access-list 20 permit 10.10.10.0 0.0.0.255
access-list 20 permit 20.20.20.0 0.0.0.255
access-list 20 permit 30.30.30.0 0.0.0.255
access-list 20 permit 40.40.40.0 0.0.0.255


!
route-map ENLACE_ISP2-in permit 10
match ip address 10
set local-preference 300
!
route-map ENLACE_ISP2-in permit 20
set local-preference 400
!
route-map ENLACE_ISP2-out permit 10
match ip address 20

!
route-map ENLACE_ISP1-in permit 10
match ip address 10
set local-preference 200
!
route-map ENLACE_ISP1-in permit 30
set local-preference 400

route-map ENLACE_ISP1-out permit 10
match ip address 20
set as-path prepend 123456 123456 123456 123456 123456 123456 123456 123456 123456 123456