scieee AI-readable full text Open interactive document viewer

Construcción de laboratorios virtuales para la administración de sistemas y servidores

Martínez García, Marcos

Full text

UNIVERSIDAD POLITÉCNICA DE VALENCIA ESCUELA TÉCNICA SUPERIOR DE INFORMÁTICA APLICADA CONSTRUCCIÓN DE LABORATORIOS VIRTUALES PARA LA ADMINISTRACIÓN DE SISTEMAS Y SERVIDORES PROYECTO FIN DE CARRERA Autor: Marcos Martínez García Director: José Ramón García Escrivá Fecha del proyecto: 22/09/2010 Construcción de laboratorios virtuales para la administración de sistemas y servidores 2 | P á g i n a Construcción de laboratorios virtuales para la administración de sistemas y servidores 3 | P á g i n a ÍNDICE GENERAL ÍNDICE GENERAL 3 CAPÍTULO 1 INTRODUCCIÓN Y NOCIONES PREVIAS 6 1.1 Motivaciones 6 1.2 Partes del sistema 6 1.3 ¿Cómo funciona? 7 1.4 Conocimientos y tecnologías implicadas 8 1.5 Introducción a la virtualización [41] 9 1.5.1 Ventajas e inconvenientes de virtualizar un sistema operativo 10 1.5.2 Programas interesantes 10 1.5.3 Tipos de Virtualización 10 1.5.4 Nuestro caso 11 1.5.5 Paravirtualización 11 1.6 Glosario de términos 11 CAPÍTULO 2 ANTECEDENTES 15 2.1 Software de administración de servidores y máquinas virtuales 15 2.1.1 Ovirt [1] 16 2.1.2 OpenQRM[2] 16 2.1.3 ProxMox VE [6] 23 2.2 Software de monitorización de la red 23 2.2.1 Zenoss [8] 23 2.2.2 EtherApe[11] 27 2.2.3 Wireshark [12] y Tshark [13] 28 CAPÍTULO 3 ANÁLISIS Y DESCRIPCIÓN DEL PRODUCTO 32 CAPÍTULO 4 DISEÑO 35 4.1 Asignando direcciones IP y configurando la red 35 Cómo funciona la red 37 Construcción de laboratorios virtuales para la administración de sistemas y servidores 4 | P á g i n a 4.2 Acceso a los elementos del sistema para su configuración 38 4.3 Instalación de Proxmox 40 4.4 Añadiendo nodos secundarios al nodo principal [18] 42 4.5 Crear una máquina virtual con ProxMox 43 4.6 Otras funciones de ProxMox 46 4.7 Crear y administrar una máquina virtual con instrucciones de OpenVZ 46 4.8 Copias de seguridad de las máquinas virtuales 48 4.9 Ejecución de máquinas virtuales creadas en Linux en sistemas Windows 50 4.10 Restauración rápida del sistema 51 Para el nodo principal 51 Para el nodo general o secundario 52 CAPÍTULO 5 RESULTADOS Y CONCLUSIONES 54 5.1 Simulación de uso 54 Creando una plantilla 55 Preparando el sistema 56 La parte del alumno 57 Monitorización y control 58 5.2 Valoración de resultados 59 5.3 Ampliaciones futuras 60 Futuros proyectos 60 Ejemplo de uso con interfaz web 60 Correcciones 62 CAPÍTULO 6 BIBLIOGRAFÍA 64 ANEXOS 68 A.1 Scripts 68 A.1.1 NodoPrincipal 68 A.1.2 NodoGeneral 68 Construcción de laboratorios virtuales para la administración de sistemas y servidores 5 | P á g i n a Construcción de laboratorios virtuales para la administración de sistemas y servidores 6 | P á g i n a Capítulo 1 INTRODUCCIÓN Y NOCIONES PREVIAS 1.1 Motivaciones Este proyecto viene dado por la necesidad de disponer de varios sistemas para cada alumno con el fin de realizar unas prácticas, para varias asignaturas, que necesitan de unos recursos que no podrían ser obtenidos de otra forma que no sea la virtualización por el coste que ello supone. Sobre todo si hablamos de prácticas con sistemas distribuidos. Por otro lado, estos recursos limitados no se ofrecen las veinticuatro horas del día lo cual resulta incómodo y poco flexible. Otro aspecto a tener en cuenta es que para realizar muchas prácticas interesantes es necesario contar con privilegios máximos, ya sea para tener acceso a modificar partes importantes del sistema operativo como para manipular la red o las relaciones entre varias máquinas diferentes, lo cual, hasta ahora, era una limitación y presentaba un gran problema de seguridad. Con este proyecto hemos querido solucionar, entre otros, estos tres problemas: necesidad de un número mayor de recursos y de su disponibilidad y facilitar nuevas funciones y elementos configurables al alumno sin poner en riesgo la seguridad del sistema. Todo ello haciendo uso de software libre y reduciendo los costes únicamente a la compra de los equipos. 1.2 Partes del sistema A continuación vamos a nombrar y definir los dispositivos que forman nuestro proyecto así como sus funciones: Construcción de laboratorios virtuales para la administración de sistemas y servidores 7 | P á g i n a Los dispositivos con los que contamos inicialmente serán: cuatro servidores con capacidad para almacenar un importante número de máquinas virtuales cada uno, un switch encargado de la interconexión de los servidores y un quinto nodo que hará las funciones de máster, firewall, monitor de red (gracias a Zenoss y Wireshark)… Finalmente cableado de red categoría 6 que conectará las tarjetas de red (dos por nodo) Gigabit Ethernet. Las partes más importantes del sistema son: 1La entrada a nuestro sistema desde el exterior. Vendrá dada por el nodo principal del clúster llamado “puerta”. A él será donde lleguen las peticiones por parte de los alumnos que deseen tener acceso a los elementos que necesiten para sus prácticas. En este nodo se redireccionarán, gracias a IPtables, las conexiones entrantes hacia las máquinas virtuales correspondientes a cada alumno. 2Vemos también que “puerta” tiene otra tarjeta de red que comunica con la parte interna de nuestra red y desde donde se mostrará con el nombre “proxmox”. Una de sus misiones principales es la de actuar como Gateway para los nodos secundarios. 3Los nodos que vayamos añadiendo al sistema se nombrarán como nodo01, nodo02,… y serán los encargados de almacenar las MVs además de contar con un firewall por software que impedirá las conexiones entre MVs de diferentes alumnos. Todos ellos llevan el software ProxMox instalado. 4Nuestro switch es un elemento que no admite ningún tipo de configuración y sólo realiza la función de permitir la comunicación Gigabit Ethernet entre los distintos elementos. Todos los nodos son accesibles mediante SSH y mediante el puerto web seguro 443. Más tarde veremos cómo llevamos a cabo el reparto de direcciones IP. 1.3 ¿Cómo funciona? Se describe, a continuación el funcionamiento básico del sistema: 1Se registra al alumno en nuestro sistema asignándole varios puertos para que pueda repartirlos entre los diferentes servicios de sus máquinas virtuales. 2El alumno conecta contra el puerto de la interfaz web proporcionada desde “puerta” una vez autenticado en la VPN de la UPV. 3Desde allí es capaz de crear, administrar, guardar copias de seguridad o destruir sus máquinas virtuales. Construcción de laboratorios virtuales para la administración de sistemas y servidores 8 | P á g i n a 4Ahora, el alumno pude conectar a sus máquinas virtuales dirigiéndose a un puerto en concreto para cada MV dentro de “puerta” y poder así realizar las prácticas y las configuraciones oportunas. 5El alumno puede descargar copias de seguridad de sus máquinas virtuales para poder trabajar en local después de formatearlas con el software adecuado. 6Por último, un firewall impide que los alumnos puedan acceder a MVs que no les correspondan. En caso de que el profesor quiera comprobar que no hay fallos de seguridad en el sistema, es posible ver las conexiones abiertas en cada equipo gracias al software de monitorización. 1.4 Conocimientos y tecnologías implicadas ProxMox[6]: Es software libre capaz de crear y administrar máquinas virtuales basadas en plantillas así como de almacenar dichas plantillas. También tiene la capacidad de crear un clúster de varios nodos y distribuir la carga de trabajo entre ellos. Veremos las características de este software con más detalle en el capítulo 2. Open Virtuozzo: Como todos los programas utilizados es libre. Su función es la de virtualizar y proporcionarnos una interfaz de comandos entre la MV y el usuario que desea administrarla. Zenoss: Este software con licencia GPL se encarga de monitorizar el tráfico de red así como de proporcionar alarmas programables mediante mensajes SNMP y de reaccionar a situaciones que puedan ocurrir en la red. Lo veremos con más detalle en el capítulo 2 y 4. Wireshark: Es un popular sniffer que utilizaremos para escanear la red en busca de posibles funcionamientos incorrectos o conductas no permitidas entre los usuarios. Lo veremos con más detalle en los próximos capítulos. Etherape: Construcción de laboratorios virtuales para la administración de sistemas y servidores 9 | P á g i n a Monitor de red gráfico que cumple la misma función que Wireshark pero de forma más visual. IPTables: Firewall de Linux que tiene también funciones de NAT y PAT. Otras tecnologías: Navegadores web Firefox y Iceweasel, Putty, JAVA, VNC, y servidores de X. 1.5 Introducción a la virtualización [41] La virtualización, en informática, consiste en abstraer recursos procedentes del hardware de la máquina física. Así podemos obtener una versión virtual de unos recursos que no tienen por qué ser los reales y sobre los que podemos instalar cualquier software, incluido un sistema operativo, de la misma forma que lo haríamos sobre una máquina real. Finalmente obtenemos una interfaz externa diferente a la del hardware real con lo que conseguimos ocultar detalles técnicos al usuario, entre otras cosas. La virtualización de plataforma consiste en un programa que se encarga de simular un medio físico (aunque es virtual) con los recursos parciales de la máquina física, donde poder instalar un sistema operativo. Vamos a hablar de los tipos diferentes de virtualización de plataforma: - Virtualización completa La máquina virtual muestra un hardware sobre el cual es posible instalar un sistema operativo sin modificarlo previamente, es decir, diseñado para el mismo procesador. Es posible crear varias máquinas virtuales de este tipo en la misma máquina física. Aquí es donde podemos encontrar programas como los que vamos a utilizar para nuestro proyecto. Ejemplo: Openvz - Virtualización parcial La máquina virtual simula parte de los recursos hardware pero no del espacio de direcciones, permitiendo así compartir recursos y procesos. No es posible tener más de un sistema operativo invitado con este método. - Virtualización por S.O. Construcción de laboratorios virtuales para la administración de sistemas y servidores 16 | P á g i n a 2.1.1 Ovirt [1] Ésta es una de las alternativas por ser un programa de visualización y administración de máquinas virtuales, que es lo que buscamos. Para controlarlo podemos usar su interfaz web, conectando al puerto 443, como viene siendo habitual en este tipo de software. Para la virtualización usa KVM (que viene incluido en el núcleo de Linux y requiere que el procesador tenga incluida la virtualización por hardware) y aunque en su web prometen que pronto podrá integrase también Xen en forma de parche, de momento no tenemos esa posibilidad. Esto ya es una limitación, ya que Xen nos interesa, entre otras cosas, por su capacidad de paravirtualización, es decir, que el sistema operativo huésped o invitado es consciente de que está siendo virtualizado. Este conocimiento tiene como ventaja un incremento de la velocidad. Aunque también es cierto que Ovirt ha evolucionado desde que empezamos con este proyecto hasta hoy y quizá, ahora, sea una opción más interesante que entonces. 2.1.2 OpenQRM[2] Ésta fue una herramienta a la que dedicamos bastante tiempo. OpenQRM es otra alternativa para la gestión de máquinas virtuales en diferentes máquinas físicas o servidores. Una de las ventajas que posee es la enorme cantidad de cosas que es capaz de hacer. Tal vez demasiadas para este tipo de proyecto. Para las pruebas con OpenQRM utilizamos una máquina constituida por un procesador Atom a 1,6 Ghz, 1 GB de memoria RAM y 80GB de capacidad de disco duro. Construcción de laboratorios virtuales para la administración de sistemas y servidores 17 | P á g i n a Instalación [7] 1Empezamos por insertar el DVD de instalación de CentOS en el lector y dar formato al disco duro. Instalamos CentOS, configuramos la red y descargamos OpenQRM Server (A partir de la versión 6 no es necesario descargar los plugins, cómo FTP, DHCP,DNS,…, individualmente, sino que ya vienen integrados todos en un paquete “plugins”) para CentOS i386 de la página oficial. 2Lo primero que descubrimos es que nos hace falta MySQL u otra base de datos (Lo instalaremos con “yum install mysqlserver”), ya que OpenQRM va a necesitar de éste elemento para almacenar archivos como la propia información de las máquinas virtuales. 3Una vez configurado, en nuestro caso MySQL, ya podemos instalar OpenQRM. Escribimos yum install openqrm* (dentro del directorio donde hemos descargado El paquete de OpenQRM y el de los plugins) en la línea de comandos y vemos que el paquete de plugins no está firmado, por tanto, CentOS no nos va dejar instalarlo. Solución: editar el fichero “etc/yum.conf” y cambiamos el valor de la variable gpgcheck por un 0.[3] Guardaremos los mensajes que muestran por pantalla en la instalación para una posterior consulta. 4Si todo ha ido bien y después de iniciar la base de datos con la orden /etc/rc.d/init.d/mysqld start, podremos iniciar el servidor web de OpenQRM con la orden etc/init.d/openqrm-server start (también disponemos de la orden stop para pararlo y restart que sustituye a stop + start) con lo que ya podremos acceder a la interfaz de administración web desde un explorador. 5En nuestro caso usaremos Firefox. En la línea de direcciones (URLs) escribiremos http://127.0.0.1/openqrm, se nos pedirá nombre de usuario y contraseña, que por defecto es openqrm para ambos campos. Construcción de laboratorios virtuales para la administración de sistemas y servidores 18 | P á g i n a 6La primera vez que entramos tendremos que configurar los últimos detalles como la base de datos. Nótese que, en principio, si el firewall lo permite y hemos configurado correctamente la dirección IP en la instalación de OpenQRM podremos entrar a esta interfaz remotamente desde otros ordenadores que se encuentren en la red, a diferencia de ahora que lo estamos haciendo en modo local (sustituyendo 127.0.0.1 ó localhost por la dirección IP que hayamos configurado durante la instalación de OpenQRM). 7A partir de aquí la información y documentación que podemos encontrar, tanto en la página oficial cómo en otras webs relacionadas, es bastante escasa, lo cual nos hará avanzar con extrema lentitud y finalmente abandonar OpenQRM como opción. Aun así montamos un ordenador para que forme parte de nuestra red y poder empezar a virtualizar imágenes en él. Se trata de un Pentium 4 con 1GB de memoria RAM y 80GB de disco duro que hemos podido construir de retales. Así pues el ordenador que estábamos usando será el servidor, desde donde pretendemos controlar el estado de los nodos y las máquinas virtuales que en ellos se ejecutan. El Pentium 4 será el primero de los nodos. 8Instalamos CentOS sobre el nuevo ordenador, configuramos el equipo con nombre de Host “nodo1” y dominio “prueba” (nodo1.prueba). Configuramos la red: El servidor tendrá la IP privada 192.168.1.2 mientras que al nodo1 le asignamos la 192.168.1.3 con máscaras de 24 bits. La puerta de enlace será el router con la IP 192.168.1.1 que estará conectado a un switch al cual están conectados ambos ordenadores. El router y el switch están integrados en el mismo dispositivo para uso personal de la marca Edimax. Después de hacer un “ping” vemos que, efectivamente, hay conexión entre ellos. Construcción de laboratorios virtuales para la administración de sistemas y servidores 19 | P á g i n a Creando espacio para una máquina virtual Vamos a ver los pasos a seguir para llevar a cabo esta tarea: 1Dentro de la interfaz web de OpenQRM podemos encontrar un menú a la izquierda donde buscaremos la entrada Plugins/Plugin Manager. Seleccionamos VMWare para añadirlo, ya que esa es la opción que vamos a elegir, en esta primera prueba, como software para la virtualización. Pulsamos en “enable” y después en “Start”. 2Ahora podemos ir a la sección Apliances del menú, y elegir la opción ”Create”, elegimos el tipo openQRM Server y ya podremos seleccionar las características de las MV que podrán instalarse en este contenedor, tales como Nombre, número de CPUs,… También debemos de marcar como recurso la opción VMWare –Server Host. [4] 3A continuación debemos crear un almacén donde dejar las imágenes que queremos montar en nuestras máquinas virtuales. En la pestaña “Base” del menú de la izquierda de la interfaz web de OpenQRM seleccionamos el directorio “Components/Create/Storage” para ver los plugins de almacenes que tenemos. En caso de no tener ninguno iremos al administrador de plugins y añadiremos una de las opciones que nos da OpenQRM. En mi caso “Local Storage”, es decir, guardaré las imágenes en el disco duro local del servidor OpenQRM. 4Si volvemos a Storage veremos que ahora sí podemos seleccionar “Local Storage”. Seleccionamos de nuevo OpenQRM Server, click sobre “select” y ya podemos darle nombre y descripción a nuestro nuevo almacén. Guardamos y ya podemos verlo en “Components/storage”. 5Lo siguiente es crear un nuevo volumen lógico en el almacén (podemos verlo si ejecutamos la orden df –h en el terminal) vamos a “Components/Create/Image” y seleccionamos una imagen o “virtual appliance”* (podemos descargar un paquete con imágenes de [5]) para llenar el volumen lógico que hemos creado. Construcción de laboratorios virtuales para la administración de sistemas y servidores 20 | P á g i n a *Nota: las virtual appliances se crean en el siguiente paso, Administración de las máquinas virtuales. Administración de las máquinas virtuales Para poder cargar una ISO o una “template” en nuestra MV o elegir las características de los recursos de ésta, deberemos dirigirnos, en el menú de la izquierda, a la pestaña Plugins donde veremos que la opción “virtualización” se puede seleccionar gracias a haber instalado el plugin de VMWare. Hacemos click en “VMWare-server” y en VM Manager. Seleccionamos el contenedor que queramos de los que hayamos creado previamente. Ahora si podemos darle nombre a la MV, número de CPUs que va a tener, la dirección MAC, Cantidad de Memoria RAM,… Construcción de laboratorios virtuales para la administración de sistemas y servidores 21 | P á g i n a Cambiar la dirección IP del servidor OpenQRM Es interesante mencionar que cuando haya un cambio en nuestra topología de red (ya sea a nivel físico o lógico) cambiar la dirección IP que hayamos asignado a OpenQRM, durante la instalación, no es una tarea trivial. Si bien, es cierto, no deberíamos tener que cambiar la dirección de nuestro servidor muy a menudo. Las dos formas de proceder son las siguientes: Opción primera: Ya que la información de configuración básica de OpenQRM no se destruye aunque se desinstale el programa, si quisiéramos desinstalarlo y volverlo a instalar con el fin de que nos volviese a pedir una dirección IP el propio programa, no funcionaría. La solución pasa por borrar (o modificar) el archivo donde se almacena esa configuración. El nombre de ese archivo podemos obtenerlo de los mensajes que muestra OpenQRM por pantalla cuando se está instalando y será diferente en función del sistema operativo sobre el que instalemos, el árbol de directorios,... Además, hay que recordar que si reinstalamos OpenQRM deberemos borrar las claves aprendidas de los archivos “/root/.ssh/known_hosts” y “/var/lib/nxserver/home/.ssh/known_hosts” de lo contrario no coincidirían con las guardadas en la anterior instalación y jamás funcionaría. Construcción de laboratorios virtuales para la administración de sistemas y servidores 22 | P á g i n a Opción segunda: La otra forma de hacerlo es también la más elegante. 1Tendremos que abrir el archivo /usr/lib/openqrm/tftpboot/pxelinux.cfg/default con un editor de texto (vi, kate, emacs,…) y cambiar la dirección IP manualmente. 2Después iniciaremos MySQL ejecutando el comando ./mysqld start en el directorio /etc/rc.d/init.d/. 3Ahora entramos en el Shell de MySQL: #mysql –u root 4Elegimos la base de datos: >use openqrm 5Cambiamos el valor de la entrada para la dirección IP: >UPDATE `resource_info` SET `resource_openqrm server`=`192.168.x.x`,`resource_ip`=192.168.x.x` WHERE `resorce_info_info`.`resource_id`=0 LIMIT 1; 6Luego sólo nos quedará reiniciar OpenQRM. Abandono de OpenQRM Debido a la complejidad del programa y a la ausencia de la documentación necesaria para hacerlo funcionar en nuestro sistema y por otros motivos como que la gestión de las máquinas virtuales está separada del programa principal (a diferencia de ProxMox que sí que las incluye mediante Xen y OpenVirtuozzo) y la cantidad de fallos que genera y que no son fáciles de solventar con la pobre documentación de la página oficial y los pocos textos que se pueden encontrar en la red a fecha de hoy, finalmente acabaremos por abandonar la idea de utilizar OpenQRM para nuestro proyecto. Construcción de laboratorios virtuales para la administración de sistemas y servidores 23 | P á g i n a 2.1.3 ProxMox VE [6] Después de instalar y probar ProxMox hemos decidido, debido a la simplicidad de su interfaz, a la excelente documentación y a su fácil implantación y gestión de las MVs, que es la mejor opción para emplear en este sistema. Lo veremos con más detalle en el apartado de “Diseño”. 2.2 Software de monitorización de la red 2.2.1 Zenoss [8] En un principio, y tras leer la descripción de Zenoss que dan en su página web oficial como monitor de red, pensamos que Zenoss era una buena solución para observar el tráfico que circula por la red de nuestro sistema y detectar comportamientos y comunicaciones “ilegales” entre los dispositivos dentro de nuestro entorno. El propio ProxMox, desde su interfaz web, tiene un enlace para descargar una plantilla de Zenoss, concretamente es un sistema operativo básico de Ubuntu 8.04 con un Zenoss 2.5.1 preinstalado. 1Una vez creada la máquina virtual en el nodo principal (puerta.dsic.upv.es) (veremos cómo se hace en el apartado de Diseño) arrancamos Zenoss. 2Hecho esto tendremos un servidor web escuchando en el puerto 8080 de nuestra MV con Zenoss. Realizamos una conexión ssh al nodo principal (hemos utilizado Putty con la opción para soportar el entorno de ventanas X11 habilitada y el servidor de Xs gratuito VcXsrv). 3Ejecutamos la orden “firefox direcciónIPDeLaMVDeZenoss:8080”. Si hemos redireccionado bien las Xs deberíamos entrar en el modo de configuración de Zenoss y acabado esto en su interfaz web de configuración. Construcción de laboratorios virtuales para la administración de sistemas y servidores 24 | P á g i n a Para añadir los nodos de nuestra red y poder monitorizar el tráfico que pasa por sus interfaces de red tendremos que hacer dos cosas por cada nodo: 1Instalaremos un agente SNMP en cada nodo [9]. Para ello ejecutaremos las siguientes instrucciones en cada uno de ellos: - apt-get update Actualizamos los repositorios - apt-get install snmpd Instalamos el agente SNMP - nano /etc/snmp/snmpd.conf Modificamos el fichero para que nos quede como en la siguiente imagen: Construcción de laboratorios virtuales para la administración de sistemas y servidores 25 | P á g i n a - nano /etc/default/snmpd Borramos la dirección de loopback (127.0.0.1) Construcción de laboratorios virtuales para la administración de sistemas y servidores 32 | P á g i n a Capítulo 3 ANÁLISIS Y DESCRIPCIÓN DEL PRODUCTO El fin de este proyecto es el de crear un laboratorio virtual, en el cual, los alumnos puedan realizar sus prácticas conectándose a sus máquinas desde cualquier parte del mundo y a cualquier hora del día (o de la noche). El hecho de utilizar la virtualización nos va a permitir proporcionar una serie de recursos a los alumnos y realizar un tipo de prácticas que no sería posible abarcar con máquinas físicas. El sistema está constituido por una serie de servidores potentes que se encargan de alojar las máquinas virtuales. Estos nodos están conectados a un switch por medio de conexiones Gigabit Ethernet. Hemos conectado un último nodo a este switch, que será el encargado de recibir las conexiones de los alumnos y redireccionar el tráfico a las MVs correspondientes por medio de IPTables. Este último nodo se encargará de realizar otras tareas como son: 1Hacer de Gateway. 2La monitarización del tráfico de red. 3Almacén de imágenes y plantillas 4Albergar la interfaz web que permitirá a los alumnos administrar sus MVs, una vez se hayan autenticado en el servidor VPN de la UPV. 5Y la función de nodo principal de nuestro clúster ProxMox. Construcción de laboratorios virtuales para la administración de sistemas y servidores 33 | P á g i n a El software ProxMox será el encargado de crear las máquinas virtuales, utilizando las imágenes almacenadas en el disco duro local, por medio de OpenVZ, y enviarlas después a los nodos en los cuales queramos ejecutarlas. Este software también es capaz de darnos información sobre el estado en el que se encuentran las MVs (encendida, apagada, uso de CPU, uso de memoria RAM, disco duro,…) así como proporcionarnos una interfaz desde la que podemos arrancarlas, pararlas, o acceder por VNC a las máquinas, lo que nos da así un control total sobre ellas. El control de entrada se usuarios se basa en: 1Una primera fase en la cual los alumnos tendrán que autenticarse contra la VPN de la UPV. Seguidamente intentarán la conexión contra sus MVs donde se comprobará en una base de datos si el alumno está autorizado. 2El otro aspecto importante de la seguridad será proteger el acceso de los alumnos a máquinas virtuales que no les correspondan. Esto lo haremos instalando IPTables en cada uno de los nodos y monitorizando la red con software específico para asegurarnos de que las reglas de acceso son correctas. La creación y restauración de copias de seguridad de las máquinas virtuales de los usuarios se llevarán a cabo utilizando instrucciones de OpenVZ como veremos en el apartado de “Diseño”. Habrá que crear una interfaz web donde los alumnos accederán para manipular sus máquinas virtuales. La interfaz ejecutará instrucciones de OpenVZ para realizar las acciones sobre las MVs. Construcción de laboratorios virtuales para la administración de sistemas y servidores 34 | P á g i n a Construcción de laboratorios virtuales para la administración de sistemas y servidores 35 | P á g i n a Capítulo 4 DISEÑO Tras una primera reflexión nos ponemos a trabajar en la implementación del proyecto. Empezamos por abordar la parte en la que nos encargaremos de crear, físicamente, nuestra red, es decir, conectaremos las conexiones entre los dispositivos antes mencionados. Para ello utilizaremos cable de categoría 6 capaz de soportar el estándar Gigabit Ethernet al igual que las tarjetas de red que tenemos en los servidores. Una vez conectados todos los nodos al switch y el nodo principal conectado además a la red interna de la UPV, nuestra topología quedará de la siguiente manera en un primer momento. Esta composición podría ser fácilmente ampliable añadiendo nodos y switches. Podemos considerar dentro de las necesidades de un ámbito lectivo que el sistema escala bien. 4.1 Asignando direcciones IP y configurando la red Parece que el paso siguiente debería ser diseñar el reparto de direcciones IPs. Elegimos la subred 10.0.0.0/8 por ser la red privada que más IPs nos permite utilizar al proporcionarnos tres octetos Construcción de laboratorios virtuales para la administración de sistemas y servidores 36 | P á g i n a (más de 16 millones de combinaciones posibles) para darle el uso que nosotros queramos. La distribución de direcciones elegida se muestra en la siguiente figura: Explicación detallada de cada uno de los segmentos: 1La parte fija equivale a la red privada de clase A 10.0.0.0. 2Los primero cuatro bits de la parte variable se van a utilizar para diferenciar los diferentes años o cursos. El 0000 equivale al año 2010-2011, el 0001 al 2011-2012 y así sucesivamente. 3Además hemos añadido un campo versión el cual estará a 0 si estamos utilizando una versión del proyecto final o un 1 si hemos cambiado algo. Así pues cada año podríamos tener dos versiones, la normal o una más nueva. 4Los últimos 6 bits se emplean para que cada alumno pueda crear un total de 63 máquinas virtuales (ya que la primera dirección de cada alumno se reserva para utilizarse como direcciones de administración, es decir, se las asignaremos a los nodos, máquinas virtuales de monitorización u otros elementos de nuestra red distintos a las máquinas virtuales de los alumnos). 5Por último, los 13 bits restantes identificarán al alumno. Esto nos permite tener un total de 8192 alumnos matriculados por cada año y versión. Ejemplo para el alumno X, número de lista 63 (0000000111111) matriculado en el curso 2013-2014, versión normal y tercera máquina virtual que ha creado: - Binario: 0000 1010.0011 0000.0000 1111.1100 0011 - Decimal: 10.48.15.195 Como la primera dirección de cada alumno se reserva para administración, las direcciones IPs de los elementos del sistema serán: Construcción de laboratorios virtuales para la administración de sistemas y servidores 37 | P á g i n a - Puerta: Interfaz de red del nodo principal por la parte exterior a nuestra red privada. Dirección IP interna de la UPV y por tanto corresponderá con una IP pública de clase B de la forma 158.42.x.x. - ProxMox: Interfaz de red del nodo principal que se encuentra dentro de nuestra red privada y por tanto le asignaremos la primera de las IPs de Administración: 10.0.0.1 - Nodo01: Segunda IP de administración 10.0.0.65 - Nodo02: 10.0.0.129 - Nodo03: 10.0.0.193 - Nodo04: 10.0.1.1 - Zenoss: Monitor de tráfico de nuestra red: 10.0.1.65 Cómo funciona la red A continuación procedemos con la explicación del camino que realiza un paquete desde que se genera en una máquina virtual hasta que llega a un servidor externo a nuestra red, como por ejemplo un servidor web de Internet. Supongamos que queremos consultar una página web desde un navegador. Una vez generada la petición al servidor DNS, externo a nuestra red, el primer sitio dónde va un paquete, generado en una máquina virtual sobre OpenVZ, es a la interfaz virtual venet0:0 quien, como nos indica la nomenclatura, es una subinterfaz de la interfaz virtual del nodo real que alberga las máquinas virtuales, es decir la venet0 del nodo.[44] Venet0 no es más que un router virtual, que crea OpenVZ, que lee la cabecera del paquete IP y lo redirige por la interfaz real correspondiente. [43] Construcción de laboratorios virtuales para la administración de sistemas y servidores 38 | P á g i n a Esta interfaz podría ser una interfaz real como eth0 con lo que el paquete ya saldría a la red externa, pero en nuestro caso se redirigirá a la interfaz vmbr0, que crea ProxMox por defecto y que no es más que un switch virtual a través del cual las máquinas virtuales de un mismo nodo pueden comunicarse entre sí como si estuviesen conectadas mediante cables reales, donde tenemos configurada nuestra IP y máscara del nodo físico que alberga la máquina virtual que quiere realizar una conexión externa, así como el Gateway o ruta por defecto donde enviaremos los paquetes dirigidos a redes distintas a la 10.0.0.0/8. Vmbr0 debe conectarse con una interfaz real haciendo así de puente. En nuestro caso, este puente está configurado para reenviar los paquetes a través de la interfaz física eth0, como se muestra en la siguiente imagen. [45] Por último el paquete llega a puerta a su interfaz vmbr0, que es la que tenemos determinada como Gateway para los nodos secundarios, y este puente reenvía finalmente el paquete por la interfaz con IP y y Gateway externos, en nuestro caso eth0. Ahora el encargado de redirigir el paquete será el router de la UPV que hemos establecido como Gateway y que se encuentra en el mismo laboratorio que nuestros equipos. 4.2 Acceso a los elementos del sistema para su configuración Dado que los sistemas que vamos a manipular se encuentran en una zona restringida y a la cual sólo se puede tener acceso unas horas del día, una vez instalado ProxMox en cada una de las máquinas y Construcción de laboratorios virtuales para la administración de sistemas y servidores 39 | P á g i n a conectada la red de forma física y lógica, todas las pruebas y configuraciones las vamos a realizar remotamente. Para ello el servidor principal (puerta) además de aceptar peticiones en el puerto 443 de ProxMox para conexiones HTTP, también aceptará conexiones SSH en el puerto 22. Al instalar ProxMox, por defecto, se habilita este servicio. Para poder abrir programas en modo gráfico instalaremos en el PC, desde el cual vamos a trabajar desde casa, un servidor de Xs, en nuestro caso “vcxsrv”[23]. Ahora sólo debemos ejecutar el servidor de X cuando queramos hacer una conexión SSH con “puerta”, y en el software que usemos para la conexión, “Putty” en nuestro caso, habilitar la opción “permitir X11”. Si queremos administrar otros nodos de nuestra red haremos una segunda conexión SSH desde puerta hacia cualquier otra dirección IP de nuestra red o nombre de host (si hemos establecido la relación host-dirección IP en el DNS) incluidas las máquinas virtuales. Esto lo haremos ejecutando la orden “ssh” en la línea de comandos del terminal. Construcción de laboratorios virtuales para la administración de sistemas y servidores 40 | P á g i n a 4.3 Instalación de Proxmox Una vez asignadas las direcciones IPs de la red vamos a comenzar a instalar el software necesario para llevar a cabo el proyecto. El nodo principal será también el nodo principal de nuestro clúster ProxMox. 1Empezaremos Instalando ProxMox en el nodo principal. Nos aseguramos de tener una partición con espacio suficiente para instalar sobre ella ProxMox. Descargamos la ISO de su página oficial y la grabamos en un CD. ProxMox sólo se presenta en versiones para procesadores de 64bits. 2Insertamos el CD en el lector del nodo principal, arrancamos desde CD configurándolo previamente y de forma tradicional en la BIOS de la máquina, o pulsando la tecla de función 12 al arrancar (depende de la placa base que estemos utilizando). 3Tras el arranque inicial nos aparecerá una pantalla con el logotipo de ProxMox donde tendremos que pulsar la tecla “Intro/Enter”. [16][17] A continuación se nos pedirá que aceptemos los términos y condiciones de uso, después se nos informará, entre otras cosas, de que se va a proceder con el formateo del disco duro/partición y de que no se nos va a ofrecer la opción de crear un partición nueva para ProxMox. Seguidamente se nos preguntará por la zona horaria así como por el lenguaje del Construcción de laboratorios virtuales para la administración de sistemas y servidores 41 | P á g i n a teclado. Crearemos un usuario (root) y su contraseña e introduciremos un e-mail de contacto para posibles incidencias. 4Ahora introduciremos el nombre del host y su dirección IP, DNS y Puerta de enlace. Estos campos variarán en función del nodo que estemos configurando, así pues, para el nodo principal “puerta/proxmox” su Gateway será el Router perteneciente a la red de la UPV al que estemos conectados, como muchos otros servidores y PCs, mediante el switch correspondiente. Por otro lado, los nodos encargados de alojar las MVs destinadas a prácticas tendrán como Gateway a “puerta/proxmox” mientras que la información correspondiente a los DNS, dominio y máscara de red permanecerá idéntica. 5Después de hacer click en el botón “Next” se formatea la partición y se instala ProxMox seguido de un reinicio del sistema. 6Si todo ha salido bien ya podemos acceder a la interfaz de control de ProxMox desde un explorador web situado en otro ordenador (Ya sea dentro de la red de la UPV o desde fuera una vez autenticados en la VPN) realizando una conexión al puerto seguro 443 de la dirección IP que le hemos asignado. 7Veremos que aparece una pantalla de bienvenida donde debemos autenticarnos (root y la contraseña que acabamos de establecer) y accederemos a todas la opciones que ProxMox nos ofrece. También podemos ver que en nuestro clúster sólo contamos con un nodo, este Construcción de laboratorios virtuales para la administración de sistemas y servidores 48 | P á g i n a 4Para eliminar una máquina seguiremos el procedimiento inmediatamente anterior cambiando la palabra “status” por “destroy” 5OpenVZ permite otras opciones, como por ejemplo cambiar los atributos de la MV mediante la orden “set”, pero no van a ser necesarios para nuestro trabajo. 4.8 Copias de seguridad de las máquinas virtuales También será necesario que el alumno tenga la opción de guardar el estado de su máquina virtual mediante copias de seguridad. Esto le permitirá probar nuevas modificaciones sin arriesgar el trabajo ya hecho. Para llevar a cabo esta tarea vamos a usar el comando “VzDump” que consiste en una utilidad para la administración de copias de seguridad de máquinas virtuales de OpenVz. Para realizar la copia de seguridad de una MV deberemos: 1Ofrecer en nuestra interfaz gráfica la opción de seleccionar el número de MV de la cual queremos hacer el backup. 2Una vez hecho esto enviaremos la orden siguiente: “vzdump Identificador de la máquina virtual” Con ello crearemos la copia de seguridad que se almacenará en “/var/lib/vz/dump/vzdumpopenvz-Identificador de la MV seguido de la fecha y la hora”. También se creará un registro (“log”) en ese mismo directorio que podremos consultar por si queremos ofrecer más información al usuario. 3Finalmente deberíamos proporcionar como salida el nombre de la CS al alumno para que más tarde sea capaz de restaurarla. Es interesante mencionar que con el fin de que el disco duro del servidor no se llene debido a la creación desmesurada de copias, es posible seleccionar el número máximo de copias que vamos a permitir almacenar. Esto lo haremos modificando en el archivo “/etc/vzdump.conf” la variable “maxfiles: n” donde n es el número de backups máximo o con la siguiente instrucción: ”vzdump –maxfiles n” En esta segunda opción podemos añadir el identificador de la máquina, con lo cual cada MV tendría un máximo (igual o distinto) y un alumno no podría acaparar todos los espacios disponibles. VzDump tiene otras opciones interesantes como la capacidad de comprimir las copias con -- compress entre otras. Construcción de laboratorios virtuales para la administración de sistemas y servidores 49 | P á g i n a Para restaurar una máquina virtual utilizaremos la orden vzrestore cuya sintaxis es la siguiente: “vzrestore nombreDelArchivoQueContieneLaCopia identificadorDeLaMáquina” Nota: Para restaurar una máquina virtual debemos eliminar previamente la máquina con el ID que queremos restaurar o de lo contrario nos obligará a seleccionar un ID nuevo para la MV que se cree Construcción de laboratorios virtuales para la administración de sistemas y servidores 50 | P á g i n a al restaurar. Esto es fácil hacerlo de forma transparente al usuario si antes de enviar la orden “vzrestore” ejecutamos una instrucción “vzctl destroy” Si queremos más opciones podemos usar también la orden “qmrestore”, pero esta alternativa no resulta más interesante que la anterior para este proyecto. 4.9 Ejecución de máquinas virtuales creadas en Linux en sistemas Windows Se ha considerado la opción de que los alumnos puedan llevarse a casa archivos de imagen de las máquinas virtuales para poder trabajar con ellas de forma local, lo cual parece más rápido y cómodo que hacerlo remotamente, sobre todo si la red está congestionada. Para llevar a cabo esta tarea es necesario realizar sobre el archivo de imagen una serie de pasos con el fin de que ésta pueda ser ejecuta y manipulada en un sistema Windows. Tras varias pruebas con diferente software de diferentes compañías y varias horas infructuosas nos decidimos por la opción de utilizar la utilidad para convertir imágenes de Qemu: “qemu-img”. Con este comando podemos cambiar el formato de imágenes creadas con KVM, VMWare,… (lo cual resume varios problemas en una única solución) y abrir estas nuevas imágenes en un Windows en el que tengamos instalado Qemu (Para Windows) [20][21]. Para ello haremos: 1Instalar Qemu (el cual viene con qemu-img) con la orden: “apt-get install qemu” Lo haremos en un sistema Linux donde esté la MV que queremos migrar a Windows. 2Una vez hecho esto sólo tenemos que seleccionar la imagen que queremos cambiar de formato y la nueva extensión que ésta tendrá. Ejemplo para convertir una imagen de VMWare a una imagen que pueda abrirse con qemu: “qemu-img convert imagenAntigua.vmdk imagenNueva.bin” También es posible realizar el proceso contrario invirtiendo el orden. Aunque si lo que queremos es crear una MV para VMWare deberemos generar también el archivo vmx con alguna de las herramientas que podemos encontrar en la red. [22] Nota: si la imagen creada con VMWare está almacenada en varios archivos no será posible convertirla con qemu-img. Construcción de laboratorios virtuales para la administración de sistemas y servidores 51 | P á g i n a 3Lo siguiente que debemos hacer, tras descargar e instalar Qemu en Windows, es ejecutar la imagen. Para ello introducimos, en la línea de comandos, la siguiente orden: “qemu.exe –m RAMDisponible -hda NombreDelArchivo –boot –c” Nota: también es posible iniciar MVs que ejecuten modo gráfico. 4.10 Restauración rápida del sistema Para reducir el tiempo necesario en estabilizar todo el sistema cuando uno de los nodos cae o hemos de añadir uno nuevo, hemos creados dos scripts, uno para el nodo principal y otro para cualquiera de los secundarios, capaces de reinstalar la red así como formar de nuevo las relaciones entre los nodos dentro del clúster. Para el nodo principal Las tareas de recuperación completa del nodo principal en caso de avería insalvable o pérdida total del sistema son las siguientes: - Reinstalar ProxMox: La reinstalación de ProxMox consistirá en una instalación nueva del mismo. Si seguimos los pasos explicados en el punto 4.3 conseguiremos eliminar, además, de Construcción de laboratorios virtuales para la administración de sistemas y servidores 52 | P á g i n a forma automática la instalación anterior debido a que ProxMox formatea siempre la partición antes de instalarse en ella. - Restaurar la red: Lo primero que hay que hacer es configurar la red. Para ello hemos guardado el archivo “/etc/network/interfaces” en un sistema de almacenamiento seguro a modo de copia de seguridad. Así pues, si ejecutamos el primero de los scripts, de nombre “NodoPrincipal”, conseguiremos reemplazar el archivo nuevo por el que contiene la configuración de red correcta y acto seguido reiniciar las interfaces de red con la orden: /etc/init.d/networking restart - Eliminar configuraciones previas: Para que los nodos vuelvan a verse entre ellos y establezcan las relaciones pertinentes es necesario eliminar el archivo donde se guardan las configuraciones anteriores (en caso de no haber tenido que reinstalar el sistema completamente) llamado “/etc/pve/cluster.cfg” así como las posibles claves que tengamos guardadas de los otros nodos y que puede ser que no coincidan. Para ello borramos el contenido del fichero “/root/.ssh/known_hosts”. Esto también lo hará de forma automática nuestro script. - Creando de nuevo el clúster: Para esta tarea basta con que el script ejecute finalmente la orden que crea un clúster nuevo estableciendo este nodo como master del mismo: pveca -c Terminados los pasos anteriores es imprescindible ejecutar el segundo script, llamado NodoGeneral, en cada uno de los nodos secundarios. Para enviar este archivo a cada uno de ellos utilizaremos la orden “scp” o “secure copy” que nos proporciona SSH. Este programa lo utilizaremos para ejecutar el fichero con la orden sh NodoGeneral Para el nodo general o secundario Para los nodos secundarios el procedimiento a realizar es el mismo exceptuando la necesidad de configurar la red ya que, al instalar ProxMox ya configuramos la IP, máscara y servidores DNS que éste tendrá y el resto de piezas de la configuración de red se instalan de forma automática. Para finalizar sustituiremos la orden de creación del clúster por la que permite añadir un nuevo nodo: pveca –a –h 10.0.0.1 Nota: El contenido de los scripts se encuentra en forma de anexo al final de este documento. Construcción de laboratorios virtuales para la administración de sistemas y servidores 53 | P á g i n a Construcción de laboratorios virtuales para la administración de sistemas y servidores 54 | P á g i n a Capítulo 5 RESULTADOS Y CONCLUSIONES 5.1 Simulación de uso La pregunta que debemos hacernos llegados a este punto es: ¿Cómo puede una asignatura sacar partido de esta tecnología? Para responderla vamos a proponer un escenario, bastante completo, que abarque muchas de las posibilidades que tiene el proyecto además de ilustrar las secuencias necesarias para realizar las operaciones típicas generales. El escenario de ejemplo que se le va a plantear al alumno para que resuelva una práctica es el siguiente: Se le proporcionan a cada estudiante tres máquinas virtuales: una con una instalación de Tomcat; servidor que escuchará peticiones en el puerto 8080, una segunda con PostgreSQL preinstalado; este servidor de bases de datos utilizará el puerto 5432 y por último, una tercera máquina virtual con la instalación de un proxy inverso capaz de aceptar peticiones en el puerto 80. También vamos a permitir una conexión al puerto 22 (ssh) de la máquina con Tomcat para que el alumno pueda gestionarla y acceder a las otras MV, que le correspondan, dentro de la red privada mediante conexiones, también, ssh Construcción de laboratorios virtuales para la administración de sistemas y servidores 55 | P á g i n a Creando una plantilla Todo empieza por la creación de una plantilla por parte del profesor. La forma más rápida de crearla es basándonos en una de las plantillas que ofrece ProxMox o que se pueden encontrar en la web: 1Empezamos creando una máquina virtual con la plantilla base elegida tal y como se explicó en el cuarto capítulo. En nuestro caso elegiremos una de las que vienen con ProxMox con el sistema operativo CentOS 5 instalado. 2Entramos en la máquina virtual por VNC desde la interfaz de ProxMox o mediante una conexión ssh e instalamos o eliminamos los programas que queramos. Por ejemplo podríamos instalar Tomcat. 3Salimos de la MV sin detenerla, borramos su dirección IP desde la pestaña de propiedades de la MV que nos proporciona ProxMox y le damos al botón de guardado “Save”. 4Ahora sí, detenemos la máquina haciendo click en el botón “Stop”. 5Comprimimos los archivos pertenecientes a la MV y que se encuentran en el directorio /var/lib/vz/private/Identificador de la MV 6El archivo resultante lo renombramos según el formato para las templates que admite ProxMox (nombreDelSistemaOperativo-ediciónnombreDeLaMV_Versión_JuegoDeInstrucciones.tar.gz) y lo movemos finalmente al directorio donde se almacenan las templates /var/lib/vz/template/cache [46][47] Construcción de laboratorios virtuales para la administración de sistemas y servidores 56 | P á g i n a Repetiremos el proceso para las otras dos plantillas que vamos a utilizar en este ejemplo. Preparando el sistema El alumno envía un e-mail al profesor informándole de que desea realizar la práctica. El profesor elige cuatro puertos del rango 50.000 al 65.000 para asignárselos al alumno. Estos se corresponderán con los puertos 80 del proxy inverso, 8080 de Tomcat, 5432 de PostgreSQL y 22 del ssh de la máquina con Tomcat. También calculamos las IPs que puede utilizar el alumno basándonos en el rango que reservamos en el punto 4.1. Después estos datos se almacenan en un fichero, se dan de alta en el firewall de puerta para permitir el acceso de ese alumno a esos puertos (mediante NAT cuando conecten contra la IP de puerta) y también se envían al alumno para que pueda usarlos. Sólo falta crear las máquinas virtuales pertenecientes al alumno con las IPs elegidas. Al no tratarse de un sistema automático y de no tener, de momento, una interfaz dónde el usuario pueda crear y administrar sus MVs, será el profesor quien las cree basándose en las plantillas realizadas con anterioridad y balanceando la carga entre cada uno de los nodos secundarios. Esta forma de plantear el sistema nos permite poder migrar las máquinas, como ya explicamos en el punto 4.5, de forma completamente transparente al alumno. Construcción de laboratorios virtuales para la administración de sistemas y servidores 57 | P á g i n a La parte del alumno 1- “Alumno1” realiza una conexión VPN a la UPV.[25] 2Una vez conectado y autenticado en la intranet se le permite el acceso al servidor “puerta.dsic.upv.es” mediante un navegador web o una conexión ssh. En función del puerto, de los que se le han asignado, al que conecte podrá ver su servidor web o acceder a una máquina para administrarla, y de ahí también a otras. Ahora ya solo tiene que resolver el boletín de la práctica correspondiente. Construcción de laboratorios virtuales para la administración de sistemas y servidores 64 | P á g i n a Capítulo 6 BIBLIOGRAFÍA [1] http://ovirt.org Página oficial de Ovirt. (12-09-2010) [2] www.openqrm.com Página oficial de OpenQRM. (12-09-2010) [3]www.tranquilidadtecnológica.com La página ya no se encuentra disponible. (12-09-2010) [4]http://sourceforge.net/projects/openqrm Descarga gratuita de OpenQRM basado en Ubuntu 8. (12-09-2010) [5] http://www.openqrm-ng.net/downloads/base/openqrm-4.4-initrd-template-selection.tgz Enlace directo a la descarga de un paquete con varias plantillas diferentes. (12-09-2010) [6] http://pve.proxmox.com/wiki/Main_Page Página oficial de ProxMox Virtual Environment. (12-09-2010) [7]www.serverchief.com/content/how-to-install-openqrm Tutorial para instalar OpenQRM. (12-09-2010) [8] http://www.zenoss.com/ Web oficial del programa Zenoss. (12-09-2010) [9]http://www.scribd.com/doc/8410056/Configuracion-Del-Agente-Snmp-en-DebianWindowsXpWindows-Vista-Windows-Server-2003 Tutorial de configuración de un agente SNMP. (12-09-2010) [10] http://www.slideshare.net/ces1227/zenoss-manual-presentation Manual del programa Zenoss. (12-09-2010) [11] http://etherape.sourceforge.net/ Construcción de laboratorios virtuales para la administración de sistemas y servidores 65 | P á g i n a Información y descarga del programa de monitorización Etherape. (12-09-2010) [12] www.wireshark.org Página oficial del programa Wireshark. (12-09-2010) [13] http://www.wireshark.org/docs/man-pages/tshark.html Manual del programa Tshark. (12-09-2010) [14] http://www.liberouter.org/nific/usecases/rpcap/rpcap.php Información y descarga de rpcap. (12-09-2010) [15] http://blog.loftninjas.org/2008/08/ Explicación para capturar remotamente paquetes con Wireshark y Tshark. (12-09-2010) [16] http://blog.ownhost.net/page/2/ Tutorial de cómo instalas ProxMox desde el que se han extraído fotografías. (12-09-2010) [17] http://c-nergy.be/blog/?p=356 Tutorial de cómo instalar ProxMox. (12-09-2010) [18]http://www.howtoforge.com/kvm-and-openvz-virtualization-and-cloud-computing-withproxmox-ve-p2 Tutorial sobre cómo crear un clúster y añadir más nodos. (12-09-2010) [19] http://wiki.openvz.org/Differences_between_venet_and_veth Explicación de las diferencias entre las opciones venet y veth. (12-09-2010) [20] http://ytuquelees.net/convertir-una-imagen-kvmqemu-a-vmware/ Tutorial sobre cómo convertir imágenes KVM a VMWare. (12-09-2010) [21] http://www.h7.dion.ne.jp/~qemu-win/ Información y descarga de Qemu para Windows. (12-09-2010) [22] http://easyvmx.com/ Descarga del programa generador de archivos vmx easyvmx. (12-09-2010) [23] http://sourceforge.net/projects/vcxsrv/ Descarga gratuita de VcXsrv Windows X Server. (12-09-2010) Construcción de laboratorios virtuales para la administración de sistemas y servidores 66 | P á g i n a [24] http://www.java.com/es/download/ Descarga gratuita de JAVA. (12-09-2010) [25] http://www.upv.es/contenidos/miw/infoweb/infoacceso/dat/732845normalc.html Explicación de la página web de la UPV dedicada a configurar la conexión VPN necesaria para entrar en la red privada de la universidad. (12-09-2010) [26] http://forums.whirlpool.net.au/forum-replies-archive.cfm/987115.html Tema del foro de Whirlpool dedicado a proponer aplicaciones de chat sobre ssh. (12-09-2010) [27] http://forum.proxmox.com/threads/2823-What-is-IODelay Tema del foro de ProxMox donde se explica el campo IODelay. (12-09-2010) [28] www.arkoon.net/-Glosario-.html Definición del término Appliance o Plantilla en el ámbito de la virtualización. (12-09-2010) [29] es.wikipedia.org/wiki/Bit Definición del término bit en el ámbito informático.(12-09-2010) [30] es.security.ngoinabox.org/glossary Definición del término certificado de seguridad en el ámbito informático.(12-09-2010) [31] es.wikipedia.org/wiki/Cluster_(informática) Definición del término clúster en el ámbito informático.(12-09-2010) [32] es.wikipedia.org/wiki/Dominio_(redes_informáticas) Definición del término dominio en el ámbito informático.(12-09-2010) [33] es.wikipedia.org/wiki/Escalabilidad Definición del término escalabilidad. (12-09-2010) [34] http://es.wikipedia.org/wiki/Gigabit_Ethernet Definición de los tipos de tecnología Ethernet. (12-09-2010) [35] http://es.wikipedia.org/wiki/Imagen_ISO Definición del término Imagen ISO. (12-09-2010) [36] es.wikipedia.org/wiki/Máquina_virtual Construcción de laboratorios virtuales para la administración de sistemas y servidores 67 | P á g i n a Definición del término Máquina Virtual. (12-09-2010) [37] wwwdi.ujaen.es/~lina/TemasSO/glosario/GLOSARIO.htm Definición del término Sistema distribuido. (12-09-2010) [38] es.wikipedia.org/wiki/Software Descripción del término software.(12-09-2010) [39] www.faq-mac.com/noticias/31544/diccionario-basico-tecnologia Descripción de las siglas VNC. (12-09-2010) [40] www.hard-h2o.com/diccionario-informatico_s-z.html Descripción del término virtualización.(12-09-2010) [41] http://es.wikipedia.org/wiki/Virtualizaci%C3%B3n Qué es la virtualización. (11-09-2010) [42] http://es.wikipedia.org/wiki/Paravirtualizaci%C3%B3n Qué es la paravirtualización. (12-09-2010) [43] http://wiki.openvz.org/Venet Explicación sobre la interfaz de red virtual venet. (13-09-2010) [44] http://wiki.openvz.org/Traffic_shaping_with_tc Breve explicación sobre la comunicación de la máquina virtual con un servidor remoto. (13-09-2010) [45] http://pve.proxmox.com/wiki/Network_Model Explicación sobre la interfaz virtual vmbr y como configurarlo dependiendo de la utilidad que se le vaya a dar. (13-09-2010) [46] http://wiki.openvz.org/Centos_template Información sobre cómo crear plantillas OpenVZ. (14-09-2010) [47] http://forum.proxmox.com/threads/452-Creating-custom-templates?highlight=create+template Cómo crear plantillas para ProxMox y OpenVZ. (14-09-2010) Construcción de laboratorios virtuales para la administración de sistemas y servidores 68 | P á g i n a ANEXOS A.1 Scripts A.1.1 NodoPrincipal #!/bin/sh echo "" echo "Restaurando nodo principal" echo "" echo "Configurando la red" echo "" cp -v interfacesNodoP /etc/network/interfaces /etc/init.d/networking restart echo "" echo "Eliminando posibles claves antiguas" echo "" rm -v /etc/pve/cluster.cfg > /etc/pve/cluster.cfg rm -v /root/.ssh/known_hosts > /root/.ssh/known_hosts echo "" echo "Creando master del clúster" echo "" pveca -c pveca -l echo "" echo "Terminado. No olvide ejecutar la restauración en los nodos generales" A.1.2 NodoGeneral #!/bin/sh echo "" echo "Restaurando nodo general" echo "" echo "Eliminando posibles claves antiguas" echo "" rm -v /etc/pve/cluster.cfg > /etc/pve/cluster.cfg rm -v /root/.ssh/known_hosts > /root/.ssh/known_hosts echo "" echo "Añadiendo nodo al clúster" echo "" pveca -a -h 10.0.0.1 echo "" echo "Terminado" echo "" Construcción de laboratorios virtuales para la administración de sistemas y servidores 69 | P á g i n a Construcción de laboratorios virtuales para la administración de sistemas y servidores 70 | P á g i n a