martes, 26 de julio de 2011

Redes VPN

Normalmente los terminales de las compañías y oficinas se encuentran interconectados a través de una Red de Acceso Local (LAN), la cual permite que los equipos puedan intercambiar información, y compartir recursos: archivos, carpetas e impresoras. Para que los equipos puedan tener acceso a esta red, tienen que estar conectados directamente a ella, ya sea a través desde un punto de acceso físico conectado a un switche y un router, o a través de una conexión inalámbrica. Los equipos que no estén cableados a la red, o que no tengan alcance a la red inalámbrica no podrán unirse a ésta, ni usar los servicios de la misma.

Algunas veces se hace necesario interconectar dos redes, o un terminal con una red remota, por ejemplo, para el caso de un empleado que debe tener acceso a sus archivos en su terminal de la oficina desde un sitio remoto, o interconexión entre dos filiales de la empresa. 

Internet permite el intercambio de datos entre dos equipos cualesquiera que se encuentren conectados a la Red; sin embargo, se presentan dos inconvenientes principales: Generalmente las direcciones IP son dinámicas, y únicamente los servidores y algunos equipos con privilegios mantienen direcciones IP públicas fijas; adicionalmente, Internet es una red pública, en la cual toda la información que se transmita está sujeta a ser interceptada y manipulada por terceros. De esta forma, transmitir datos directamente por Internet, sin ningún tipo de seguridad, es peligroso, sobre todo para las empresas que deben mantener reserva de mucha información relevante.

De acuerdo a las necesidades anteriormente planteadas, surgen las redes VPN (Red Privada Virtual), las cuales permiten crear redes con equipos que físicamente se encuentran distribuidos en diferentes redes locales. El medio de transmisión de la información de las VPN es a través de Internet, sin embargo, los datos son cifrados, de tal forma que únicamente pueden ser interpretados por el terminal y por el servidor de acceso de la VPN. En la siguiente figura se muestra el esquema de una red VPN:


Las redes VPN constan de un servidor VPN, encargado de gestionar las conexiones entrantes de los clientes, y de cifrar la información que se transmite a través de la red. Una vez un usuario se conecta, éste recibe una dirección IP virtual, tal como si se estuviera conectando a una red LAN, y como si un router le asignara una IP para la red local. Una vez conectados, los usuarios pueden compartir archivos, usar servicios como SSH, escritorios remotos, etc., estando físicamente en diferentes partes del mundo, y conectados a redes locales independientes, únicamente con acceso a Internet.

Existe una gran cantidad de herramientas para implementar VPN, algunas de ellas gratis, y otras licenciadas. El uso de la herramienta, depende de la aplicación final y del nivel de seguridad y operatividad deseado para la red. La herramienta OpenVPN es una herramienta adecuada y fácil de usar para la implementación de redes virtuales. En la página de OpenVPN se puede encontrar muy buena información y documentación para su manejo y administración.


jueves, 21 de julio de 2011

Virtualización de servidores

Hoy en día las pequeñas y medianas empresas, especialmente las del sector tecnológico, tienen la necesidad de implementar un servidor, en el cual puedan albergar servicios como: sitio Web, administración de documentación, plataformas de gestión de proyectos y de personal, almacenamiento de datos; y para empresas más especializadas: bases de datos, servidores de correo, servidores de autenticación, entre otros.

Los equipos y el hardware de los computadores avanza a pasos agigantados, y hoy en día es posible adquirir un equipo con capacidades excepcionales, a muy bajo costo relativo. De esta forma, los servicios de virtualización aprovechan estas capacidades de alto rendimiento de los servidores que se pueden adquirir en el mercado de hoy en día, y así es posible tener una gran cantidad de servidores virtuales, con uno o unos pocos servidores físicos.

Entre las principales ventajas que tienen los servidores virtualizados se encuentran:
  1. Poco hardware: Para tener muchos servidores ya no es necesario tener grandes centros de cómputo con complejos sistemas de interconexión, redes, fuentes de alimentación, y un gran consumo de energía. Por ejemplo, se pueden implementar fácilmente 50 servidores en un equipo físico con muy buenas características, instalado en un solo rack.
  2. Balance de cargas: Con los sistemas de virtualización existentes es posible sacarle un provecho máximo al hardware de procesamiento, ya que el sistema de administración de recursos permite asignar recursos a cada máquina dependiendo de sus necesidades, y de esta forma se asignan más recursos a los servidores que más carga tengan en el momento, y se liberan recursos de servidores que tengan poco trabajo.
  3. Alta disponibilidad: Es posible tener siempre servidores de backup para el caso que alguno se caiga o falle, el otro pueda entrar sin tener ni un solo instante de corte de servicio. Adicionalmente, el software de virtualización permite ingresar y retirar servidores sin necesidad de tener que apagar el sistema.
  4. Integración con otras herramientas: Las compañías que fabrican el software de virtualización incluyen herramientas interesantes que permiten ser aplicadas con la virtualización de servidores. Entre las herramientas que se ofrecen, se encuentra una para virtualización de escritorios, la cual le permite a los clientes tener toda la información y aplicaciones almacenadas en el servidor, pudiendo acceder desde cualquier parte y desde cualquier terminal con conexión a Internet.
Las dos principales compañías que fabrican software de virtualización para servidores son Vmware y Citrix.

Para una mayor información sobre software de virtualización, consultar la documentación en línea de Vmware y de Citrix.

jueves, 14 de julio de 2011

Single board computer

Un single board computer es básicamente una tarjeta que incluye todos los elementos que debe tener un computador tradicional, como procesador, memoria RAM, memoria no volátil, conectividad de red, puertos USB, salida para monitor, entre otros. Esta tarjeta es de un tamaño mucho más reducido que una motherboard normal.

En un sinble board computer es posible instalar un sistema operativo (Linux, android, inclusive Windows), y permite tener casi las mismas capacidades que un computador común y corriente, teniendo en cuenta que tiene recursos de procesador y memoria más limitados, pero trae consigo tres beneficios clave para determinadas aplicaciones: bajo costo, tamaño pequeño y bajo consumo de energía.

De esta forma, es posible desarrollar aplicaciones que requieran una gran cantidad de procesamiento, o interfaces de red e Internet, las cuales no se pueden implementar en un sistema con un microcontrolador, o sería demasiado complejas de diseñar desde ceros. Así, la implementación de la solución se reduce al desarrollo de software, sin tener que preocuparse por el hardware de interfaces de red, memoria, procesamiento, etc.

El equipo EFIKA MX SMARTTOP es un buen equipo, que incluye el sistema operativo Linux y soporta la ejecución de aplicaciones en python, c, c++, servicios Web, etc. A continuación se muestra una imagen de este sistema:

Las especificaciones técnicas del hardware son las siguientes:
  • Procesador Freescale i.MX515 (ARM Cortex-A8 800 MHz)
  • Unidad de procesamiento de gráficos 3D
  • Salida de video HDMI
  • 512 MB de RAM
  • Almacenamiento no volátil SSD de 8 GB
  • Ethernet de 10/100 Mbit/s
  • WiFi 802.11 b/g/n
  • Lector de tarjetas SDHC
  • 2 puertos USB
  • Salida de audio estéreo con jacks de 3.5 mm
  • Entrada de micrófono con jack de 3.5 mm
  • Parlante incorporado
  • Peso: 250 gramos
  • Dimensiones: 160 x 115 x 20 mm
Como se puede observar, incluye todas las características básicas de un computador de escritorio, y se envía con sistema operativo Linux Ubuntu preinstalado, de tal forma que únicamente basta con conectar teclado y mouse y encenderlo para comenzar a usarlo.

Lo más atractivo de este sistema son sus dimensiones y peso, lo cual lo hace útil incluso para ser usado en aplicaciones vehiculares, además es muy robusto pues no incluye partes móviles (disco duro); adicionalmente su consumo es bajo (menor que 5W a 12V), por lo cual es factible para ser usado en aplicaciones alimentadas con baterías.

Otro aspecto a fundamental para considerar un equipo de este tipo para determinada solución es su precio, aproximadamente 130 USD, el cual es muy reducido en comparación al precio de un computador de escritorio o portátil convencional.

En OSP Ltda. se adquirieron estos dispositivos con el fin de evaluarlos, y se llevaron a cabo las siguientes pruebas de forma exitosa:
  • Conexión a red WiFi.
  • Acceso a internet.
  • Permite instalación de aplicaciones haciendo uso de la herramienta de gestor de paquetes de Ubuntu.
  • Servidor de escritorio remoto.
  • Ejecuta correctamente aplicaciones desarrolladas en Python.
  • Soporta una Webcam conectada al puerto USB y permite capturar imágenes y videos.
  • Ejecuta aplicaciones tipo Web implementadas en en framework Django con el servidor Web de desarrollo de python.
Esta es una muy buena herramienta, con la cual se han obtenido buenos resultados en las pruebas que se han realizado, y es completamente recomendable para desarrollar aplicaciones en las cuales es necesario el poder de procesamiento y hardware de un computador, pero se requiere reducir tamaño, consumo y costos.

Dejo un video muy interesante de una conferencia donde se explica detalladamente el sistema: