Buenas,
La configuración de los servicios necesarios para arrancar máquinas por PXE puede ser compleja. Con backharddi-ng intentamos autoconfigurarlos, pero no siempre con éxito.
La autoconfiguración tiene en cuenta las siguientes premisas:
-Ya existe un único servidor DHCP en la red que no tiene habilitadas las capacidades para arrancar equipos por PXE.
-No hay servicio en la red de proxy DHCP ya que se va a levantar uno.
-No hay servicio de tftp ejecutándose en la máquina dónde se va a ejecutar el servicio de red backharddi-ng, ya que se va a levantar uno.
Los servicios que se levantan y autoconfiguran junto con el servicio de red backharddi-ng son dos:
-Un servicio tftp (dnsmasq en modo exclusivo tftp) que publica el contenido de /var/lib/tftp. Escucha en el puerto udp 69.
-Un servicio proxyDHCP configurado para escuchar en las subredes autodetectadas. Éste servicio de proxyDHCP es una extensión de DHCP usado para levantar máquinas por PXE (la rom pxe del equipo cliente debe soportarlo). Escucha en el puerto udp 4011.
Una vez iniciado el servicio de red, se debe ver dos procesos colgando del proceso backharddi-ng con la salida del comando "ps faux", tal que así:
/usr/bin/python /usr/bin/twistd --pidfile=/var/run/backharddi-ng.pid --rundir=/var/lib/backharddi-ng/ --python=/etc/backharddi-ng/backharddi-ng.tac
\_ /usr/sbin/dnsmasq --port=0 -d -R -h -C /dev/null --enable-tftp --tftp-root=/var/lib/tftpboot
\_ /usr/sbin/dnsmasq --port=0 -d -R -h -C /dev/null --pxe-service=x86PC,Backharddi-NG,backharddi-ng/pxelinux --log-dhcp --dhcp-range=192.168.137.2,
Con "sudo netstat -puln" se deben ver los procesos corriendo en los puertos indicados anteriormente.
Y lo más importante para depurar, el fichero de log del servicio de red: /var/log/backharddi-ng.log. Debe tener entradas como éstas si todo a arrancado correctamente:
2012-05-31 20:57:19+0200 [-] [tftp] dnsmasq: started, version 2.59 DNS disabled
2012-05-31 20:57:19+0200 [-] [tftp] dnsmasq: compile time options: IPv6 GNU-getopt DBus i18n DHCP TFTP conntrack IDN
2012-05-31 20:57:19+0200 [-] [tftp] dnsmasq-tftp: TFTP root is /var/lib/tftpboot
2012-05-31 20:57:19+0200 [-] [proxydhcp] dnsmasq: started, version 2.59 DNS disabled
2012-05-31 20:57:19+0200 [-] [proxydhcp] dnsmasq: compile time options: IPv6 GNU-getopt DBus i18n DHCP TFTP conntrack IDN
2012-05-31 20:57:19+0200 [-] [proxydhcp] dnsmasq-dhcp: DHCP, proxy on subnet 192.168.20.2
2012-05-31 20:57:19+0200 [-] [proxydhcp] dnsmasq-dhcp: DHCP, proxy on subnet 192.168.137.2
Un arranque de un equipo con éxito, produce los siguientes mensajes:
2012-05-31 21:13:51+0200 [-] [proxydhcp] dnsmasq-dhcp: 717905790 vendor class: PXEClient:Arch:00000:UNDI:002001
2012-05-31 21:13:51+0200 [-] [proxydhcp] dnsmasq-dhcp: 717905790 vendor class: PXEClient:Arch:00000:UNDI:002001
2012-05-31 21:13:51+0200 [-] [proxydhcp] dnsmasq-dhcp: 717905790 PXE(wlan0) 192.168.137.5 08:00:27:ca:5f:7e backharddi-ng/pxelinux.0
2012-05-31 21:13:51+0200 [-] [proxydhcp] dnsmasq-dhcp: 717905790 tags: wlan0
2012-05-31 21:13:51+0200 [-] [proxydhcp] dnsmasq-dhcp: 717905790 bootfile name: backharddi-ng/pxelinux.0
2012-05-31 21:13:51+0200 [-] [proxydhcp] dnsmasq-dhcp: 717905790 next server: 192.168.137.2
2012-05-31 21:13:51+0200 [-] [proxydhcp] dnsmasq-dhcp: 717905790 sent size: 1 option: 53:message-type 05
2012-05-31 21:13:51+0200 [-] [proxydhcp] dnsmasq-dhcp: 717905790 sent size: 4 option: 54:server-identifier 192.168.137.2
2012-05-31 21:13:51+0200 [-] [proxydhcp] dnsmasq-dhcp: 717905790 sent size: 9 option: 60:vendor-class 50:58:45:43:6c:69:65:6e:74
2012-05-31 21:13:51+0200 [-] [proxydhcp] dnsmasq-dhcp: 717905790 sent size: 17 option: 97:client-machine-id 00:cb:33:65:25:99:3f:4c:7a:9b:b0:72:dd...
2012-05-31 21:13:51+0200 [-] [proxydhcp] dnsmasq-dhcp: 717905790 sent size: 7 option: 43:vendor-encap 47:04:80:00:00:00:ff
2012-05-31 21:13:52+0200 [-] [tftp] dnsmasq-tftp: error 0 TFTP Aborted received from 192.168.137.5
2012-05-31 21:13:52+0200 [-] [tftp] dnsmasq-tftp: failed sending /var/lib/tftpboot/backharddi-ng/pxelinux.0 to 192.168.137.5
2012-05-31 21:13:52+0200 [-] [tftp] dnsmasq-tftp: sent /var/lib/tftpboot/backharddi-ng/pxelinux.0 to 192.168.137.5
2012-05-31 21:13:52+0200 [-] [tftp] dnsmasq-tftp: file /var/lib/tftpboot/backharddi-ng/pxelinux.cfg/cb336525-993f-4c7a-9bb0-72dd95b9355e not found
2012-05-31 21:13:52+0200 [-] [tftp] dnsmasq-tftp: file /var/lib/tftpboot/backharddi-ng/pxelinux.cfg/01-08-00-27-ca-5f-7e not found
2012-05-31 21:13:52+0200 [-] [tftp] dnsmasq-tftp: file /var/lib/tftpboot/backharddi-ng/pxelinux.cfg/C0A88905 not found
2012-05-31 21:13:52+0200 [-] [tftp] dnsmasq-tftp: file /var/lib/tftpboot/backharddi-ng/pxelinux.cfg/C0A8890 not found
2012-05-31 21:13:52+0200 [-] [tftp] dnsmasq-tftp: sent /var/lib/tftpboot/backharddi-ng/pxelinux.cfg/C0A889 to 192.168.137.5
2012-05-31 21:13:52+0200 [-] [tftp] dnsmasq-tftp: sent /var/lib/tftpboot/backharddi-ng/menu.c32 to 192.168.137.5
2012-05-31 21:13:52+0200 [-] [tftp] dnsmasq-tftp: sent /var/lib/tftpboot/backharddi-ng/pxelinux.cfg/C0A889 to 192.168.137.5
2012-05-31 21:13:56+0200 [-] [tftp] dnsmasq-tftp: sent /var/lib/tftpboot/backharddi-ng/linux-backharddi-ng to 192.168.137.5
2012-05-31 21:14:04+0200 [-] [tftp] dnsmasq-tftp: sent /var/lib/tftpboot/backharddi-ng/minirt-backharddi-ng.gz to 192.168.137.5
2012-05-31 21:14:10+0200 [-] [proxydhcp] dnsmasq-dhcp:
2813294714 vendor class: d-i
2012-05-31 21:14:12+0200 [-] [proxydhcp] dnsmasq-dhcp:
2813294714 vendor class: d-i
Un saludo.