Saturday, May 21, 2011

IPv6 Readiness Assesment

Consultando documentación sobre la conocida herramienta de red IT Guru Network Planner de OPNET acabo de redescubrir una perla que llevaba largo tiempo buscando.

IPv6 IT Guru CompressorSe trata del módulo denominado “IPv6 Planning and Operations”, el cual puede servirnos de una fantástica ayuda si estamos interesados en la realización de evaluaciones y auditorias de IPv6 con el objetivo de facilitar los despliegues.

Todo ello en tan sólo 5 sencillos pasos:
   1.- Documenta la red
   2.- Evalúa la disponibilidad de IPv6
   3.- Diseña la migración a IPv6
   4.- Predice el impacto de la migración
   5.- Genera informes de conclusiones

Lo único que todavía me sigue dejando intranquilo es que no logro entender porqué OPNET ahora parte de Riverbed al igual que otros muchos fabricantes se empeñan en seguir queriendo vendernos el concepto de "migración a IPv6" cuando en realidad dudo mucho que la mayoría de empresas, universidades y mucho menos los ISPs se puedan permitir el lujo de olvidarse completamente de IPv4, pues ambos protocolos están condenados a convivir durante décadas.

Thursday, May 05, 2011

OpenDNS bajo IPv6

OpenDNS: Servidores de DNS gratuitos ahora también disponibles a través de IPv6 (2620:0:ccc::2 & 2620:0:ccd::2)

Wednesday, May 04, 2011

Zsync: Alternativa a rsync para sincronizar grandes ficheros

Siempre me he sentido atraído por la elegancia con la que rsync solventa mediante algoritmos tipo ‘window checksum’ la necesidad de descargar grandes ficheros partiendo de versiones parciales.

Sin embargo rsync ahorra ancho de banda permitiendo intercambiar únicamente los bloques de datos modificados enviándolos de forma incremental (llamados deltas) a costa de un consumo elevado de CPU tanto en el cliente como el servidor.
 
Este elevado consumo de procesador tanto en la aplicación cliente como en el servidor tiene el grave inconveniente de no escalar adecuadamente, pues unos pocos clientes concurrentes son capaces de saturar a un servidor no excesivamente potente.

En el modelo de distribución actual de servicios, es muy habitual encontrarnos con que un fichero voluminoso, digamos una imagen de CD o DVD de una distribución de Linux debe ser descargada por múltiples clientes. De esta forma si en vez de tener que hacer los pesados cálculos computacionales de checksums de bloques una y otra vez, el servidor almacenase esta información en algún otro sitio, la ganancia sería enorme.

Pues bien, zsync permite hacer justamente esto, en el servidor se computan una sola vez los checksums necesarios y se almacenan en un fichero adicional con extensión .zsync. Este fichero .zsync es consultado por los clientes que desean sincronizar y son ellos los únicos que realizan los cómputos necesarios para averiguar que bloques han de descargar. Una vez la versión zsync que corre en el cliente conoce los bloques que ha de descargar, esta procede a descargarlos mediante el protocolo HTTP 1.1 abriendo múltiples conexiones simultáneas para obtenerlos.

Imaginemos un escenario bastante frecuente.

Tras haber descargado la versión Alternate del CD de Ubuntu 11.04 a 64 bits. Posteriormente cambiamos de idea y preferimos la versión server. Aunque ambas imágenes .iso son distintas muchos de los paquetes de ambas versiones serán los mismos por lo que es de esperar que ambos ficheros tengan algunas partes comunes, de hecho en este caso con zsync nos ahorramos descargar casi la mitad del contenido de nuevo.

En este caso, como el 48.9% del contenido de la versión server era igual a la de la versión alternate que ya habíamos descargado, nos hemos ahorrado descargar 357 MB.

Por cierto, el comando fue algo tan simple como:
$ zsync -i ubuntu-11.04-alternate-amd64.iso http://releases.ubuntu.com/releases/11.04/ubuntu-11.04-server-amd64.iso.zsync
zsync, rsync, jigdo, metafiles, torrents, ... todos ellos intentan atajar el problema de distribuir grandes ficheros por la red a miles de usuarios, pero cada una tiene sus propias particularidades, ¿Para vosotros cuál es la mejor de ellas, alguna preferencia?