opengnsys-1.0.3 (#8) - Llamada a la funcion "Arrancar" (#98) - Message List

Llamada a la funcion "Arrancar"
 unsolved

Hola a todos! Me llamo Daniel Sanchez, soy tecnico del Laboratorio de Calculo de la Facultat de Informatica de Barcelona, perteneciente a la Universidad Politecnica de Catalunya. Despues de evaluar varias alternativas a nuestro querido Rembo, y haber utilizado durante bastante tiempo el Tivoli, hemos decidido pasarnos a Opengnsys para la gestion de aulas. Estuvimos evaluando el "Altiris Deployment Server", pero era demasiado complejo. De momento estamos muy contentos, en un par de semanas hemos conseguido una instalacion estable, hemos hecho imagenes sin problemas, y seguimos probando.

Una de las cosas que estamos intentando hacer funcionar es el tema del arranque remoto, con el Wake-on-LAN. Nuestra red es bastante compleja, con firewalls por todas partes, y ya sabiamos que tendriamos problemas. Los firewalls evitan que estos paquetes salten de una red a otra y necesito retocar la manera en que se manda el Magic Packet para hacerlo funcionar. He estado resiguiendo los menus para a ver exactamente que hace la funcion "Arrancar", osea a que binario se llama al final, o a que libreria se recurre, pero no lo he conseguido. Veo que hay una serie de estructuras que crean los menus en pantalla, que llaman a funciones definidas, que en algun momento llaman a la base de datos, que consigue los parametros de esta tabla, pero de ahi ya no he sido capaz de seguir ...

mysql> select * from comandos;
+-----------+-------------------------+------------------------------------+------------------------------------------+--------------------+--------+-------------+-------------------------+-----------------------------------------+-------------+--------+
| idcomando | descripcion             | pagina                             | gestor                                   | funcion            | urlimg | aplicambito | visuparametros          | parametros                              | comentarios | activo |
+-----------+-------------------------+------------------------------------+------------------------------------------+--------------------+--------+-------------+-------------------------+-----------------------------------------+-------------+--------+
|         1 | Arrancar                | ../comandos/Arrancar.php           | ../comandos/gestores/gestor_Comandos.php | Arrancar           |        |          31 |                         | nfn;iph;mac                             |             |      1 |
|         2 | Apagar                  | ../comandos/Apagar.php             | ../comandos/gestores/gestor_Comandos.php | Apagar             |        |          31 |                         | nfn;iph;mac                             |             |      1 |
|         3 | Restaurar Imagen        | ../comandos/RestaurarImagen.php    | ../comandos/gestores/gestor_Comandos.php | RestaurarImagen    |        |          28 | dsk;par;idi;nci;ipr;ptc | nfn;iph;mac;dsk;par;idi;nci;ipr;ifs;ptc |             |      1 |
|         4 | Crear Imagen            | ../comandos/CrearImagen.php        | ../comandos/gestores/gestor_Comandos.php | CrearImagen        |        |          16 | dsk;par;idi;nci;ipr;cpt | nfn;iph;mac;dsk;par;idi;nci;ipr;cpt;    |             |      1 |
|         5 | Reiniciar               | ../comandos/Reiniciar.php          | ../comandos/gestores/gestor_Comandos.php | Reiniciar          |        |          31 |                         | nfn;iph;mac;                            |             |      1 |
|         6 | Inventario Hardware     | ../comandos/InventarioHardware.php | ../comandos/gestores/gestor_Comandos.php | InventarioHardware |        |          16 |                         | nfn;iph;mac;                            |             |      1 |
|         7 | Inventario Software     | ../comandos/InventarioSoftware.php | ../comandos/gestores/gestor_Comandos.php | InventarioSoftware |        |          16 | par                     | nfn;iph;mac;par                         |             |      1 |
|         8 | Ejecutar Script         | ../comandos/EjecutarScripts.php    | ../comandos/gestores/gestor_Comandos.php | EjecutarScript     |        |          31 | iph;tis;dcr;scp         | nfn;iph;tis;dcr;scp                     |             |      1 |
|         9 | Iniciar Sesion          | ../comandos/IniciarSesion.php      | ../comandos/gestores/gestor_Comandos.php | IniciarSesion      |        |          31 | par                     | nfn;iph;par                             |             |      1 |
|        10 | Particionar y Formatear | ../comandos/Configurar.php         | ../comandos/gestores/gestor_Comandos.php | Configurar         |        |          28 | dsk;cfg;                | nfn;iph;mac;dsk;cfg;par;cpt;sfi;tam;ope |             |      0 |
+-----------+-------------------------+------------------------------------+------------------------------------------+--------------------+--------+-------------+-------------------------+-----------------------------------------+-------------+--------+

En fin, ¿alguien me podria describir la sequencia completa de las opciones de los menus? O al menos a que binario y los parametros se llama exactamente para hacer un "Arrancar".

Que gozada, poder escribir en un foro tecnico en castellano...

Un saludo a todos

  • Message #269

    Hola Daniel, soy Alonso de la Universidad de Sevilla, la persona que ha desarrollado el servicio de administración de Opengnsys (ogAdmServer) que es el encargado de enviar la trama WOL a la red para despertar a los clientes. No puedes ver nada en la base de datos porque todos está en este programa y te explico...

    La Universidad de Zaragoza tenía el mismo problema que vosotros y es que el "Magic packet" cuya estructura supongo conocerás se envía normalmente por broadcast así que tienes por medio filtros, no te funciona. Yo modifique este servicio para que enviara esta trama a una IP concreta y me funcionó, abajo te envío las instrucciones que le dí a la gente de Zaragoza para que probará esto mismo.

    Esta modifición no se contempla como definitiva en Opengnsys y es opcional porque enviar a una IP concreta la trama WOL implica que la tabla ARP de los routers o dispositivos intermedios entre las subredes tengan configurado el parámetros de "persistencia" de las MAC almacenadas, que normalmente son dinámicas y se eliminan después de un tiempo de inactividad, no sé si me explico. De cuaquier manera te envío el correo de marras para que te sirva de ayuda:

    ==============================================

    Buenos días, Delia.

    He estado haciendo pruebas con el servicio de administración de Opengnsys encargado de enviar el comando arrancar a los clientes. He modificado el código para el “magic packet” se lo envíe directamente a la dirección IP en lugar de hacerlo a una dirección broadcast y parece que funciona, al menos en clientes de la misma subred. Si quieres probar en tu escenario, sólo tendrías que bajarte este instalador:

    http://opengnsys.es/svn/branches/version1.0-tickets/wake_on_lan_por_IP_unicast_ticket513/intaller-info/install_services.sh

    y ejecutarlo. Siempre puedes volver atrás copiando de nuevo el binario del servicio que se guarda como medida de seguridad en /opt/opengnsys/tickets.

    A mi me han funcionado estas pruebas del wake on lan a una dirección IP concreta pero consultado con algunos profesores de Redes de por aquí, me han confirmado que efectivamente, si los routers no tiene las entradas de los clientes de forma estática en su tabla interna, es posible que no puedan encontrar a los que llevan un tiempo apagado.

    • Message #271

      Hola Alonso, había visto tu solución con IP por unicast, pero no acababa de entender porque no veía el código en la rama principal de opengensys. Gracias al instalador que me pasas podré aplicarlo a mi instalación fácilmente.

      De todas formas, yo creo que la solución final seria enviar el WOL por broadcast si tus clientes están en tu misma subred, o por unicast si están en otras, y dotar la red de los mecanismos de relay necesarios para hacer llegar el paquete a esa red, de manera parecida al DHCP.

      Para hacer saltar un paquete WOL entre redes sin firewalls, esta documentación explica bastante bien cómo hacerlo, eso si, basándose en routers/switches CISCO: [http://www.cisco.com/en/US/products/hw/switches/ps5023/products_configuration_example09186a008084b55c.shtml ]

      Como nuestra red de PC para alumnos está basada en routers-firewalls, no hemos podido aplicar ninguna de estas soluciones y hemos optado por montar un relay de WOL expresamente, que haga "saltar" este paquete hacia la red destinataria. Una vez en la red destino, lo transformamos en un broadcast, así llega a todos los PCs. De esta forma no dependemos de si las MACs sean más o menos persistentes.

      Para crear este relay, nos hemos basado en el código udprelay de Luke Bratch, ( http://www.bratch.co.uk/udprelay/)

      Os dejo aqui una pequeña modificacion del código para permitir direcciones de broadcast destino. La dejo en el fichero adjunto. Corriendo este daemon en los firewalls puedes pasar el paquete de una red a otra como unicast, y al final, hacerlo "explotar" como broacast en la destinataria.

      Muchísimas gracias por la ayuda, espero que el código os sea útil.

      Un saludo.

      P.D: Por cierto, la URL ya no funciona, ahora la correcta es esta: http://opengnsys.es/svn/branches/version1.0-tickets/Resueltos/wake_on_lan_por_IP_unicast_ticket513/installer-info/install_services.sh

      • Message #272

        Hola.

        Se ha cambiado la URL, pero también se va a añadir el instalador en la nueva versión, con lo que podrá ejecutarse desde el directorio /opt/opengnsys/lib del propio servidor.

        Cuando tengamos liberada la versión 1.0.4, estará disponible esta funcionalidad.

        Saludos.

Attachments (1)

Download all attachments as: .zip