opengnsys-1.0.6 (#12) - Configurar arranque del cliente por DHCP (#242) - Message List

Configurar arranque del cliente por DHCP
 solved

Hola compañeros,

en la Universidad de Barcelona tenemos un problema. Desde el Departamento de Comunicaciones, se ha decidido, por seguridad, implementar IP SOURCE GUARD. Este, impide que los equipos clientes configuren una IP manualmente y obliga a pedirla por DHCP (no sirve configurar manualmente la misma IP que otorgaria el DCHP).

En las aulas donde lo hemos provado, el cliente no arranca, ya que se bloquea el acceso a la red. Hemos visto que la IP en cliente se configura manualmente a partir de la variable IP del tftpboot, que a la vez, se contruye en el fichero www/includes/tftputils.php al cambiar los equipos en Netbootavanzado.

También hemos visto que modificando manualmente para que la variable ip en el fichero de un equipo en el menu.lst, sea "ip=dhcp", el cliente arranca, aunque con hostname diferente, ya que no se especifica en el fichero de arranque. Por lo que modificando el fichero tftputils.php para que genere la linea ip=dhcp también nos funciona.

Total, vemos que toqueteando un poco podemos hacer que el cliente configure la ip por dhcp, pero: 1. No sabemos las consecuencias y efectos secundarios (por ejemplo no tener el hostname), 2. ¿Hay que tocar algun fichero más? (hemos visto el el script bin/setclientmode también gernera los ficheros de arranque, pero no sabemos que hacen exactamente, porque lo hemos cambiado y no hemos visto cambios) y 3.Hay alguna manera más fácil de hacerlo?

Muchas gracias y un saludo des de la UB !

Víctor

  • Message #528

    Hola, Victor:

    Para utilizar la opción ip=dhcp sin cambiar el fichero www/includes/tftputils.php podrías crear una plantilla de arranque PXE. tftputils.php cambia la cadena "INFOHOST" de la plantilla por la variable siguiente:

    $infohost=" LANG=$lang".
                      " ip=$ip:$server:$router:$netmask:$hostname:$netiface:none" .
                      " group=$group" .
                      " ogrepo=$repo" .
                      " oglive=$repo" .
                      " oglog=$server" .
                      " ogshare=$server";
    

    La variable group es opcional ya que sólo se utiliza si se realiza postconfiguración por grupo, de forma que podrías crear una plantilla común para todas las aulas. Tomando como referencia la plantilla PXE que arranca en modo usuario habría que cambiar dos líneas donde se pasan los parámetros del kernel:

    #kernel /boot/ogvmlinuz ro boot=oginit quiet splash vga=788 irqpoll acpi=on og2nd=sqfs ogprotocol=smb ogactiveadmin=false ogdebug=false ogupdateinitrd=true INFOHOST
    kernel /boot/ogvmlinuz ro boot=oginit quiet splash vga=788 irqpoll acpi=on og2nd=sqfs ogprotocol=smb ogactiveadmin=false ogdebug=false ogupdateinitrd=true ip=dhcp ogrepo=IPREPO oglive=IPREPO oglog=IPSERVER  ogshare=IPSERVER
    

    IPREPO e IPSERVER no son variables, sino la ip de tu repositorio y servidor

    La plantilla la puedes crear desde la parte de administración de la consola, está explicado aquí

    Por otro lado he estado haciendo pruebas y si pongo la opción ip=dhcp, el cliente toma el nombre que tiene definido en el archivo de configuración dhcp y la variable $HOSTNAME no está vacía sino que toma este valor. Supongo que los nombre que tiene tus clientes también los toma del dhcp. En nuestro caso tenemos definido el mismo nombre en el dhcp y en OpenGnsys por lo que no hay problema. No sé si os viene bien hacer esto.

    OpenGnsys suele usar la ip cuando manda cualquier comando esto no debería dar problemas, pero para cosas concretas sí utiliza el nombre del equipo. Por ejemplo en la postconfiguración al ponerle el nombre del equipo al sistema operativo toma la variable $HOSTNAME que tenga el cliente de OpenGnsys.

    Hasta ahora

    • Message #534

      Gracias Irina.

      Lo he probado y todo perfecto! Ahora a mirar de que Comunicaciones nos otorgue el HOSTNAME que toca en el DHCP :)

      Un saludo!

Attachments

No attachments created.