string(14) "attribute >>>>" array(0) { }

Balanceo de carga en EIGRP

string(14) "attribute >>>>" array(6) { ["width"]=> string(3) "600" ["height"]=> string(3) "323" ["hwstring_small"]=> string(23) "height='68' width='128'" ["file"]=> string(14) "2012/01/11.jpg" ["sizes"]=> array(2) { ["thumbnail"]=> array(3) { ["file"]=> string(14) "11-150x150.jpg" ["width"]=> string(3) "150" ["height"]=> string(3) "150" } ["medium"]=> array(3) { ["file"]=> string(14) "11-300x161.jpg" ["width"]=> string(3) "300" ["height"]=> string(3) "161" } } ["image_meta"]=> array(10) { ["aperture"]=> string(1) "0" ["credit"]=> string(0) "" ["camera"]=> string(0) "" ["caption"]=> string(0) "" ["created_timestamp"]=> string(1) "0" ["copyright"]=> string(0) "" ["focal_length"]=> string(1) "0" ["iso"]=> string(1) "0" ["shutter_speed"]=> string(1) "0" ["title"]=> string(0) "" } } array(6) { ["width"]=> string(3) "568" ["height"]=> string(3) "275" ["hwstring_small"]=> string(23) "height='61' width='128'" ["file"]=> string(14) "2012/01/21.jpg" ["sizes"]=> array(2) { ["thumbnail"]=> array(3) { ["file"]=> string(14) "21-150x150.jpg" ["width"]=> string(3) "150" ["height"]=> string(3) "150" } ["medium"]=> array(3) { ["file"]=> string(14) "21-300x145.jpg" ["width"]=> string(3) "300" ["height"]=> string(3) "145" } } ["image_meta"]=> array(10) { ["aperture"]=> string(1) "0" ["credit"]=> string(0) "" ["camera"]=> string(0) "" ["caption"]=> string(0) "" ["created_timestamp"]=> string(1) "0" ["copyright"]=> string(0) "" ["focal_length"]=> string(1) "0" ["iso"]=> string(1) "0" ["shutter_speed"]=> string(1) "0" ["title"]=> string(0) "" } } array(6) { ["width"]=> string(3) "521" ["height"]=> string(3) "185" ["hwstring_small"]=> string(23) "height='45' width='128'" ["file"]=> string(14) "2012/01/31.jpg" ["sizes"]=> array(2) { ["thumbnail"]=> array(3) { ["file"]=> string(14) "31-150x150.jpg" ["width"]=> string(3) "150" ["height"]=> string(3) "150" } ["medium"]=> array(3) { ["file"]=> string(14) "31-300x106.jpg" ["width"]=> string(3) "300" ["height"]=> string(3) "106" } } ["image_meta"]=> array(10) { ["aperture"]=> string(1) "0" ["credit"]=> string(0) "" ["camera"]=> string(0) "" ["caption"]=> string(0) "" ["created_timestamp"]=> string(1) "0" ["copyright"]=> string(0) "" ["focal_length"]=> string(1) "0" ["iso"]=> string(1) "0" ["shutter_speed"]=> string(1) "0" ["title"]=> string(0) "" } } array(6) { ["width"]=> string(3) "522" ["height"]=> string(3) "156" ["hwstring_small"]=> string(23) "height='38' width='128'" ["file"]=> string(14) "2012/01/41.jpg" ["sizes"]=> array(2) { ["thumbnail"]=> array(3) { ["file"]=> string(14) "41-150x150.jpg" ["width"]=> string(3) "150" ["height"]=> string(3) "150" } ["medium"]=> array(3) { ["file"]=> string(13) "41-300x89.jpg" ["width"]=> string(3) "300" ["height"]=> string(2) "89" } } ["image_meta"]=> array(10) { ["aperture"]=> string(1) "0" ["credit"]=> string(0) "" ["camera"]=> string(0) "" ["caption"]=> string(0) "" ["created_timestamp"]=> string(1) "0" ["copyright"]=> string(0) "" ["focal_length"]=> string(1) "0" ["iso"]=> string(1) "0" ["shutter_speed"]=> string(1) "0" ["title"]=> string(0) "" } } array(6) { ["width"]=> string(3) "421" ["height"]=> string(3) "102" ["hwstring_small"]=> string(23) "height='31' width='128'" ["file"]=> string(14) "2012/01/51.jpg" ["sizes"]=> array(2) { ["thumbnail"]=> array(3) { ["file"]=> string(14) "51-150x102.jpg" ["width"]=> string(3) "150" ["height"]=> string(3) "102" } ["medium"]=> array(3) { ["file"]=> string(13) "51-300x72.jpg" ["width"]=> string(3) "300" ["height"]=> string(2) "72" } } ["image_meta"]=> array(10) { ["aperture"]=> string(1) "0" ["credit"]=> string(0) "" ["camera"]=> string(0) "" ["caption"]=> string(0) "" ["created_timestamp"]=> string(1) "0" ["copyright"]=> string(0) "" ["focal_length"]=> string(1) "0" ["iso"]=> string(1) "0" ["shutter_speed"]=> string(1) "0" ["title"]=> string(0) "" } } array(6) { ["width"]=> string(3) "497" ["height"]=> string(2) "64" ["hwstring_small"]=> string(23) "height='16' width='128'" ["file"]=> string(14) "2012/01/61.jpg" ["sizes"]=> array(2) { ["thumbnail"]=> array(3) { ["file"]=> string(13) "61-150x64.jpg" ["width"]=> string(3) "150" ["height"]=> string(2) "64" } ["medium"]=> array(3) { ["file"]=> string(13) "61-300x38.jpg" ["width"]=> string(3) "300" ["height"]=> string(2) "38" } } ["image_meta"]=> array(10) { ["aperture"]=> string(1) "0" ["credit"]=> string(0) "" ["camera"]=> string(0) "" ["caption"]=> string(0) "" ["created_timestamp"]=> string(1) "0" ["copyright"]=> string(0) "" ["focal_length"]=> string(1) "0" ["iso"]=> string(1) "0" ["shutter_speed"]=> string(1) "0" ["title"]=> string(0) "" } } array(6) { ["width"]=> string(3) "491" ["height"]=> string(2) "62" ["hwstring_small"]=> string(23) "height='16' width='128'" ["file"]=> string(14) "2012/01/71.jpg" ["sizes"]=> array(2) { ["thumbnail"]=> array(3) { ["file"]=> string(13) "71-150x62.jpg" ["width"]=> string(3) "150" ["height"]=> string(2) "62" } ["medium"]=> array(3) { ["file"]=> string(13) "71-300x37.jpg" ["width"]=> string(3) "300" ["height"]=> string(2) "37" } } ["image_meta"]=> array(10) { ["aperture"]=> string(1) "0" ["credit"]=> string(0) "" ["camera"]=> string(0) "" ["caption"]=> string(0) "" ["created_timestamp"]=> string(1) "0" ["copyright"]=> string(0) "" ["focal_length"]=> string(1) "0" ["iso"]=> string(1) "0" ["shutter_speed"]=> string(1) "0" ["title"]=> string(0) "" } } array(6) { ["width"]=> string(3) "423" ["height"]=> string(3) "106" ["hwstring_small"]=> string(23) "height='32' width='128'" ["file"]=> string(14) "2012/01/81.jpg" ["sizes"]=> array(2) { ["thumbnail"]=> array(3) { ["file"]=> string(14) "81-150x106.jpg" ["width"]=> string(3) "150" ["height"]=> string(3) "106" } ["medium"]=> array(3) { ["file"]=> string(13) "81-300x75.jpg" ["width"]=> string(3) "300" ["height"]=> string(2) "75" } } ["image_meta"]=> array(10) { ["aperture"]=> string(1) "0" ["credit"]=> string(0) "" ["camera"]=> string(0) "" ["caption"]=> string(0) "" ["created_timestamp"]=> string(1) "0" ["copyright"]=> string(0) "" ["focal_length"]=> string(1) "0" ["iso"]=> string(1) "0" ["shutter_speed"]=> string(1) "0" ["title"]=> string(0) "" } } array(6) { ["width"]=> string(3) "529" ["height"]=> string(3) "155" ["hwstring_small"]=> string(23) "height='37' width='128'" ["file"]=> string(13) "2012/01/9.jpg" ["sizes"]=> array(2) { ["thumbnail"]=> array(3) { ["file"]=> string(13) "9-150x150.jpg" ["width"]=> string(3) "150" ["height"]=> string(3) "150" } ["medium"]=> array(3) { ["file"]=> string(12) "9-300x87.jpg" ["width"]=> string(3) "300" ["height"]=> string(2) "87" } } ["image_meta"]=> array(10) { ["aperture"]=> string(1) "0" ["credit"]=> string(0) "" ["camera"]=> string(0) "" ["caption"]=> string(0) "" ["created_timestamp"]=> string(1) "0" ["copyright"]=> string(0) "" ["focal_length"]=> string(1) "0" ["iso"]=> string(1) "0" ["shutter_speed"]=> string(1) "0" ["title"]=> string(0) "" } } array(6) { ["width"]=> string(3) "562" ["height"]=> string(3) "159" ["hwstring_small"]=> string(23) "height='36' width='128'" ["file"]=> string(14) "2012/01/10.jpg" ["sizes"]=> array(2) { ["thumbnail"]=> array(3) { ["file"]=> string(14) "10-150x150.jpg" ["width"]=> string(3) "150" ["height"]=> string(3) "150" } ["medium"]=> array(3) { ["file"]=> string(13) "10-300x84.jpg" ["width"]=> string(3) "300" ["height"]=> string(2) "84" } } ["image_meta"]=> array(10) { ["aperture"]=> string(1) "0" ["credit"]=> string(0) "" ["camera"]=> string(0) "" ["caption"]=> string(0) "" ["created_timestamp"]=> string(1) "0" ["copyright"]=> string(0) "" ["focal_length"]=> string(1) "0" ["iso"]=> string(1) "0" ["shutter_speed"]=> string(1) "0" ["title"]=> string(0) "" } } array(6) { ["width"]=> string(3) "492" ["height"]=> string(2) "65" ["hwstring_small"]=> string(23) "height='16' width='128'" ["file"]=> string(15) "2012/01/111.jpg" ["sizes"]=> array(2) { ["thumbnail"]=> array(3) { ["file"]=> string(14) "111-150x65.jpg" ["width"]=> string(3) "150" ["height"]=> string(2) "65" } ["medium"]=> array(3) { ["file"]=> string(14) "111-300x39.jpg" ["width"]=> string(3) "300" ["height"]=> string(2) "39" } } ["image_meta"]=> array(10) { ["aperture"]=> string(1) "0" ["credit"]=> string(0) "" ["camera"]=> string(0) "" ["caption"]=> string(0) "" ["created_timestamp"]=> string(1) "0" ["copyright"]=> string(0) "" ["focal_length"]=> string(1) "0" ["iso"]=> string(1) "0" ["shutter_speed"]=> string(1) "0" ["title"]=> string(0) "" } } array(6) { ["width"]=> string(3) "557" ["height"]=> string(2) "44" ["hwstring_small"]=> string(23) "height='10' width='128'" ["file"]=> string(14) "2012/01/12.jpg" ["sizes"]=> array(2) { ["thumbnail"]=> array(3) { ["file"]=> string(13) "12-150x44.jpg" ["width"]=> string(3) "150" ["height"]=> string(2) "44" } ["medium"]=> array(3) { ["file"]=> string(13) "12-300x23.jpg" ["width"]=> string(3) "300" ["height"]=> string(2) "23" } } ["image_meta"]=> array(10) { ["aperture"]=> string(1) "0" ["credit"]=> string(0) "" ["camera"]=> string(0) "" ["caption"]=> string(0) "" ["created_timestamp"]=> string(1) "0" ["copyright"]=> string(0) "" ["focal_length"]=> string(1) "0" ["iso"]=> string(1) "0" ["shutter_speed"]=> string(1) "0" ["title"]=> string(0) "" } } array(6) { ["width"]=> string(3) "260" ["height"]=> string(3) "175" ["hwstring_small"]=> string(23) "height='86' width='128'" ["file"]=> string(14) "2012/01/13.jpg" ["sizes"]=> array(1) { ["thumbnail"]=> array(3) { ["file"]=> string(14) "13-150x150.jpg" ["width"]=> string(3) "150" ["height"]=> string(3) "150" } } ["image_meta"]=> array(10) { ["aperture"]=> string(1) "0" ["credit"]=> string(0) "" ["camera"]=> string(0) "" ["caption"]=> string(0) "" ["created_timestamp"]=> string(1) "0" ["copyright"]=> string(0) "" ["focal_length"]=> string(1) "0" ["iso"]=> string(1) "0" ["shutter_speed"]=> string(1) "0" ["title"]=> string(0) "" } } array(0) { }
news and informations automotive,business,crime,health,life,politics,science,technology,travelautomotive,business,crime,health,life,politics,science,technology,travel

Sabemos que los protocolos de enrutamiento dinámicos soportan balanceo de carga sobre rutas de igual coste o igual métrica.  En el caso de EIGRP también tenemos disponible esta característica. En este post vamos a tratar este tema teniendo en cuenta que EIGRP está diseñado para ser utilizado en redes grandes con varias decenas de routers.

Como hemos visto hasta ahora, EIGRP utiliza como métricas por defecto el ancho de banda y el retardo acumulado de los enlaces y aplica una fórmula que da lugar a métricas que pueden tomar valores de 8 o 10 cifras.  Esto hace que en redes grandes con un buen número de posibles alternativas para llegar a un mismo destino, sea muy difícil encontrar dos o más rutas con exactamente la misma métrica para alcanzar una red.

Podría darse el caso de tener varias formas de llegar a un mismo destino pero con métricas ligeramente diferentes.  Sus valores de ancho de banda efectivo y retraso acumulado podrían no ser exactamente iguales, pero sí lo suficientemente parecidos como para que sea interesante utilizar de forma simultánea estas rutas aplicando balanceo de carga.  Por ejemplo, podríamos calcular dos rutas para un mismo destino con las métricas siguientes:

  • Ruta 1: 2172416
  • Ruta 2: 2168312

Las métricas no son exactamente iguales y EIGRP no utilizaría las dos, sino sólo la ruta 2, aunque la ruta 1 sea casi “tan buena” como la 2.  Esto se debe a que por defecto, el balanceo de carga sólo se realiza sobre rutas de igual métrica.

Como administradores de la red, podemos modificar este comportamiento de forma que EIGRP considere “iguales” las dos rutas y utilice las dos para enviar los paquetes.

Vamos a realizar el ejemplo usando la topología que hemos usado en el post anterior:

http://www.franciscosepulveda.eu/2012/01/02/configuracion-estatica-de-vecinos-eigrp/

Si vamos al router Madrid y le pedimos que nos muestre su tabla de enrutamiento:

Vemos que sólo aparece una ruta para llegar a la red 10.10.10.0/24.  Si miramos en la tabla de topología:

Sólo vemos una entrada para la red 10.10.10.0/24, aunque haya dos posibles caminos.  Esto ocurre porque no se cumple la condición de factibilidad de la segunda y por eso no aparece como sucesor factible.  Esto podemos comprobarlo si pedimos al router que nos muestre la tabla de topología con todos los enlaces:

Como vemos en la imagen, realmente hay dos formas de alcanzar la red 10.10.10.0/24, pero no tenemos sucesor factible porque no se cumple la condición de factibilidad, es decir, la distancia anunciada por el router Paris (192.168.0.2), que tiene el valor 2172416, no es estrictamente inferior a la distancia factible, que también tiene el valor 2172416.  El sucesor para la red 10.10.10.0/24 desde el router Madrid es el router Roma, pero Paris no es el sucesor factible.

Empezaremos modificando esta situación, ya que sólo podremos aplicar balanceo de carga sobre rutas de coste desigual si son rutas de sucesor o de sucesor factible.  Dicho de otro modo, si una ruta no es sucesor factible no podremos usarla para balancear carga.

Para hacer que la ruta desde Madrid a la red 10.10.10.0/24 pasando por Paris sea una ruta de sucesor factible, vamos a modificar el ancho de banda del enlace serie que une Paris con Roma.  Este enlace tiene el ancho de banda por defecto de cualquier enlace serie, 1544 kbps:

Vamos a aumentarlo.  Tenemos que hacerlo tanto en Paris como en Roma:

Ya lo hemos modificado:

Y si ahora revisamos la tabla de topología del router Madrid:

Vemos que para la red 10.10.10.0/24 tenemos dos entradas, la de sucesor con una distancia factible de 2172416, y la de sucesor factible con una distancia anunciada de 2171392.  Como la distancia anunciada del router Paris (192.168.0.2) es inferior a la distancia calculada a través del router Roma (192.168.0.10), se cumple la condición de factibilidad y tenemos a Paris como sucesor factible.

Ahora que contamos con un sucesor y un sucesor factible, ya podemos hacer que Madrid utilice las dos rutas de forma simultánea para llegar a 10.10.10.0/24, es decir, para aplicar balanceo de carga.  Si observamos la tabla de enrutamiento de Madrid:

Vemos que sólo aparece una ruta, la de sucesor.  Para cambiar esto vamos a usar el comando “variance”.  La varianza es un multiplicador que nos permitirá utilizar dos o más rutas para balancear carga hacia un mismo destino incluso si sus métricas no son idénticas.  La única condición será que estas rutas sean sucesores factibles, ya que en caso contrario, EIGRP no las utilizará para el balanceo.

Como hemos dicho, la varianza es un multiplicador.  Su funcionamiento es el siguiente:

  1. Supongamos que tenemos 3 rutas posibles para llegar a una misma red y que sus métricas son 1000000, 1500000 y 2100000.  La ruta con métrica 1000000 será la de sucesor y supondremos que se cumple la condición de factibilidad para las otras dos.
  2. La varianza es un valor que multiplicado por la distancia factible nos da el límite para las métricas por debajo del cual se van a considerar rutas de igual costo.  Esta varianza puede tomar valores entre 1 y 128, siendo 1 por defecto.  Esto significa que, en el funcionamiento por defecto, se considerarán rutas de igual costo aquellas cuya métrica se encuentre entre 1000000 y 1000000*1, es decir, para aplicar balanceo de carga deben ser iguales las métricas.
  3. Si damos a la varianza el valor 2, se realizará balanceo de carga entre todas las rutas cuyas métricas estén entre 1000000 y 1000000*2, es decir, entre 1000000 y 2000000, por lo que la tercera ruta quedaría fuera de este balanceo.

Como queremos que el router Madrid utilice las dos posibles rutas hasta la red 10.10.10.0/24 para aplicar balanceo de carga, tenemos que modificar su valor de varianza:

Y si ahora miramos la tabla de enrutamiento:

Donde vemos claramente dos posibles rutas para llegar a la red 10.10.10.0/24 con métricas diferentes.  Igualmente, si hacemos un traceroute, vemos que los paquetes siguen dos caminos distintos: