Otro título sugerido: Como hacerle la vida imposible a tu sysadmin – parte 2

Si no leyeron el artículo anterior: Como hacerle la vida imposible a tu sysadmin deberían empezar por ahí para entender de que estoy hablando. Para los cortos de tiempo resumo brevemente:

Por un lado: Tenés acceso a una PC que remotamente corre Linux, puede ser un servidor que administres o la PC de tu casa, da lo mismo. No hace falta disponer de privilegios de super-usuario en la PC remota. Esta PC remota corre un servidor SSH que te permite login remoto.

Por el otro: La persona que administra la red de tu trabajo te tiene impedido, no te permite chatear, usar Facebook o Twitter, no podés navegar por ciertas páginas o usar ciertos servicios.

Otra posibilidad: Estas conectado desde una red «pública» en un bar, aeropuerto o simplemente robándole internet el vecino y no tenés ninguna manera de saber quien podría estar olfateando los paquetes de datos que van y vienen, sobre todo ahora, que herramientas como Firesheep hacen que un ataque man-in-the-middle que siempre fue cosa reservada para unos pocos elegidos sea coser y cantar.

También podrías usar este sistema (o un buen tunel SSH por cada servicio a rutear haciendo las veces de Socks Proxy con todas las incomodidades que conllevaría) si estás conectado desde un enlace poco fiable en donde la pérdida de paquetes está fuera de discusión.

O si ninguna de las anteriores te convence: Simplemente por que nunca se es lo suficientemente paranoico, otro mini tutorial: Como encriptar TODO el tráfico que genera tu PC y rutearlo remotamente para evitar cualquiera de los escenarios anteriores.

Usando SSH para rutear todo el tráfico TCP que se genere en tu PC hasta un host remoto.

Usando SSH para rutear todo el tráfico TCP que se genere en tu PC hasta un host remoto.

Continúa leyendo

«Esto es Linux, no se trata de preguntar si se puede o no, se trata de preguntar como se hace.»

Saber popular.

Agregué un par de parlantes a mi sistema de audio y no me gustaba como sonaba, demasiado grave, demasiada vibración en los vidrios así que me puse en la búsqueda de algo que me permitiera ecualización global de todo el subsistema de audio en Linux, puntualmente un ecualizador para ALSA y lo encontré a la primera: ALSAEQUAL.

Alsaequal - Ecualización paramétrica de 8 bandas para tu placa de sonido en Linux

Alsaequal - Ecualización paramétrica de 8 bandas para tu placa de sonido en Linux

Por que sí, muchas aplicaciones disponen de sus propios ecualizadores pero no todas, además, eso de andar ajustando los niveles de ecualización de audio en tantos programas distintos no me cuadraba. Por otro lado, 95% del tiempo estoy escuchando musica desde MOC que no tiene ecualizador. Definitivamente necesitaba algo como esto.

ALSA-Equal como su nombre lo indica no es mas que un motor de ecualización en modo plugin para ALSA, es decir, se incrusta en ALSA y se ejecuta desde alsamixer a continuación (no, no tiene frontend todavía, pero ¿Quén lo necesita?). Dispone de un ecualizador paramétrico de 8 bandas, que no es la gran cosa pero con esas ocho bandas me basta y me sobra: Graves, medios y agudos por separado para todo lo que suene por tu placa de sonido, musíca, películas, conversaciones o los soniditos del sistema si es que tenés, etc.

Ponerlo a funcionar es bien simple: Se descarga el código fuente desde la página oficial, se compila, se instala y listo. Paso por paso, desde una consola, las instrucciones a prueba de idiotas, para copiar y pegar.Continúa leyendo

«Dime cuantos paquetes de datos pierdes y te diré cuán como la mierda navegas.»

… O de como hacer uso y abuso del comando ping para verificar un enlace de datos.

Mas que nada en conexiones inalámbricas pero puede darse en cualquier otra circunstancia también y por motivos de lo mas diversos, además de una buena latencia es muy importante evitar la pérdida de paquetes de datos entre tu PC y su interlocutor a toda costa.

Hay miles de herramientas, algunas que funcionan en modo texto, otras tantas en modo gráfico que te permiten darte una idea muy aproximada de la calidad real de un enlace de datos pero si tengo que poner primera en la lista de las mas usadas al menos por mí –y creo que por el colectivo de informáticos también– definitivamente el comando ping para consola se lleva todos los laureles, además viene preinstalado de serie en cualquier sistema operativo, sea el que sea.

De todo corazón espero que no seas usuario de Windows. Si lo sos, entonces ni te gastes en seguir leyendo, por que si bien el comando ping para windows dispone de alrededor del 2% de las funcionalidades que nos provee el mismo para Linux, todo lo que voy a explicar a continucación queda sin efecto. Si sos usuario de Windows por otro lado, he aquí otra buena razón para tener siempre un Linux cualquiera a mano, en un CD, en un pendrive o en alguna partición pequeñita, por que nunca sabés cuando lo vas a necesitar.

Volviendo al asunto, no voy a entrar en detalles sobre el principio de funcionamiento del comando ping para Linux ni a explicar como entender la salida en pantalla del mismo (para los que se estén desayunando con esto por primera vez y les interese, los remito al manual del comando) si no a centrarme en una característica puntual que lo vuelve una de las mejores herramientas a la hora de hacer verficaciones de calidad de servicio mientras se hacen modificaciones sobre el enlace de datos: La capacidad de inundación, lo que en inglés se conoce como «Flood».

Ping para Linux es la navaja suiza de las herramientas de testeo de calidad del enlace y la capacidad de floodear que posee debe ser una de las mejores herramientas «graficas» para consola que podés encontrar por ahí. Unicamente disponible para superusuarios –necesitás privilegios de root para poder usar esta caraterística– te permite conocer con presición como anda la cosa mientras toqueteás algún que otro parámetro en tu router.

La genialidad de la opción flood radica en su principio de funcionamiento: Por cada paquete de datos que se envía se imprime un punto -un » . «- en la pantalla. Por cada paquete de datos que se recibe, se borra un punto. Eso es todo.

El nombre de «flood» o inundación que sería la traducción literal proviene del hecho de que el kernel no esperará absolutamente nada entre un paquete enviado y otro, inundará la red con peticiones usando el protocolo ICMP tan rápido con el enlace en si mismo lo permita y a menos que específicamente le habilites el modo «adaptativo» pasandole al comando la opción » -A » forzará al enlace a todo lo que dé produciendo inevitablemente fallos que serás capaz de visualizar a golpe de ojo nada mas viendo como se van imprimiendo (o no) puntitos en la pantalla en tiempo real.

Dependiendo del escenario puede que te interese verificar cuanto es el máximo ancho de banda disponible en un enlace inalámbrico o cuantos paquetes pierde tu conexiòn a internet por culpa de lo anterior. Suponiendo que quisieramos hacer esta última prueba, haciendo ping contra el servidor de DNS de Google por ejemplo, el comando en cuestión es tan simple como lo que sigue:

ping -f 8.8.8.8

Que en una red sana debería devolverte algo como esto:

Usando ping con flood habilitado para verificar el estado de la conexión.

Usando ping con flood habilitado para verificar el estado de la conexión.

Y que por otro lado, en una red con problemas, debería devolverte esto otro:

Verificando una red con problemas de pérdida de paquetes con ping.

Verificando una red con problemas de pérdida de paquetes con ping.

Todos los puntitos que se ven en la última captura representaron en tiempo real la pérdida de paquetes que hubo durante todo el proceso. Usé además la opción «count» representada por » -c » para pedirle a ping que solo envíe 1000 paquetes y se detenga a continuación.

Es muy util también la opción «size» para especificar el tamaño de paquete, esto sirve para diagnosticar otro tipo de problemas por ejemplo cuando estás jugando con el MTU de tus routers o interfaces de red o el RTS o el Fragemnation Threshold de tu router inalámbrico.

Como la cabecera del protocolo ICMP utiliza siempre 8 bytes, para forjar un paquete por ejemplo de 512 bytes de tamaño necesitas tener estos 8 bytes en cuenta, restándoselos al momento de ejecutar el comando:

ping -f -c 1000 -s 504

Es muy común ver como una red inalámbrica se desempeña a la perfección con paquetes de datos pequeñitos, los de 64 bytes que envía ping por defecto (la cabecera ICMP + 56 bytes adicionales) cuando no se le especifica el tamaño pero se viene todo a pique cuando el tamaño de paquete excede los 512 o 768 bytes, por ejemplo. Y ni hablar de cuando excede al MTU que por defecto en este tipo de redes es de 1500 bytes.

También es muy útil a la hora de testear redes que tienen implementado QoS por que permite especificar los bits ToS en la cabecera del paquete, con lo que podés ver en tiempo real que tal se desempeña tu router en este sentido. Por ejemplo para el ToS «Maximice Data Throughput» basta con ejecutar:

ping -f -c 1000 -s 504 -Q 0x08

Ping: La herramienta que no te puede faltar a la hora de aislar fallos puntuales en una red. Preinstalada por defecto y gratis. ¿Que mas se puede pedir?

Hace unos días gracias a un comentario en este Blog tuve la buena fortuna de dar con Luciano Lagassa –que mas bien debería llamarse Luciano LaGassta, por que «la gasta» realmente, la tiene bastante clara programando-.

Autoproclamado ubuntero desde que vió la luz la primera versión del mismo, es el Administrador detrás de LAGA Systems dentro de la cual, de lectura obligada para el linuxero power-user destacan todos los artículos a modo de tutorial de su blog.

Hablando de todo un poco, Luciano me cuenta que tieve varios proyectos alojados en Google Project Hosting (un navegador web propio basado en webkit, su propio CMS, etc,etc.) y de entre todos sus proyectos dí con uno que quiero destacar: Mocsi, un interface gráfica e ícono para la bandeja del sistema para MOC, el reproductor de audio definitivo para la consola y mi reproductor de música de cabecera.

Extremadamente simplista, como corresponde al music player mas livianito y simple que haya visto en mi vida pero mucho mas cómodo a su vez que andar llamando a la interfaz de usuario Ncurses nativa de MOC y con un cómodo íconito para el system tray, es justo lo que le estaba faltando a MOC para ser la panacea.

Mocsi - El GUI para MOC. La frutillita del postre.

Mocsi - El GUI para MOC. La frutillita del postre.

En la página de descarga de Mocsi hay paquetes preconstruidos en formato rpm para Mandriva, Fedora, Redhat, etc y deb para Debian, Ubuntu y derivados. Además también como no podía ser de otra manera, está disponible el código fuente en formato tar.gz.

Luciano, con esta de que ahora puedo detener MOC con un simple click del mouse, me cagaste el despertador que había hecho. (En realidad controlo MOC usando lineakb y un control remoto con receptor infrarojo-a-usb, pero eso es tema para otro artículo).