second dhcp + drbl

Hi Steven!
Will try give details of my steps.
Configuration:
– central server „Rain“ (DHCP) connected to 12 subnets (192.168.10.x – 192.168.120.x);
– server „Drbl“ (Clonezilla) connected to same subnets;
– from 3 to 25 computers in each subnet;

==Part of dhcpd.conf from Rain===
server-identifier rain.ctd.loc;
option domain-name „ctd.loc“;
option domain-name-servers ns.ctd.loc;

subnet 192.168.10.0 netmask 255.255.255.0 {
  authoritative;
  option routers                  192.168.10.100;
  option subnet-mask              255.255.255.0;
  option broadcast-address        192.168.10.255;
  option domain-name-servers      192.168.10.100;
  option netbios-name-servers     192.168.10.100;
  host pc10-1 {
   hardware ethernet 00:aa:aa:aa:aa:03;
   fixed-address 192.168.10.1;
   }
  host pc10-2 {
   hardware ethernet 00:aa:aa:aa:aa:98;
   fixed-address 192.168.10.2;
   }

… and so on for all subnets…

  host pc12-25 {
   hardware ethernet 00:ff:ff:ff:ff:45;
   fixed-address 192.168.120.25;
   }
}
===end of dhcpd.conf===

1) Do steps from 1 to 3a by this: http://drbl.sourceforge.net/one4all ;
2) Copy dhcpd.conf from Rain, parse it with „/opt/drbl/bin/parse_dhcpd_conf“;
3) Collect parsed MAC addresses and put them into /etc/drbl/macadr-eth0.1.txt, macadr-eth0.2.txt, etc;
4) Collect parsed names/IP’s and:
  a) put them all to /opt/drbl/conf/client-ip-hostname
  b) put them to /etc/drbl/IP-grp-AA, IP-grp-BB, etc by subnets
5) Create „dummy“ interface for „WAN“ purpose (my Drbl has no internet connection);
6) Run „/opt/drbl/sbin/drblpush -i“ and used already collected MAC’s in macadr-eth0.*.txt files;
7) Run „/opt/drbl/sbin/mknic-nbi –udhcpc-port 1068“;
8) Run two dhcpd instances:
  a) /usr/sbin/dhcpd -q -pf /var/run/dhcpd67.pid
  b) /usr/sbin/dhcpd -q -pf /var/run/dhcpd1067.pid -p 1067

=== Can you suggest a way to modify /etc/init.d/dhcpd script to achieve this? ===

9) Run /opt/drbl/sbin/dcs and start enjoying =)

Now client work as follow:
– power on, PXE ROM in network card (pxeclient) asks DHCP with ip, subnet, filename, next-server options;
– Rain answers with ip and subnet options (pxeclient ignores);
– Drbl answers with ip, subnet, filename, next-server options (pxeclient accepts);
– pxeclient receive menu, then receive linux kernel and vfs file via tftp;
– linux booting in client memory, now it linuxclient 🙂 ;
– linuxclient asks ip, subnet, next-server on 1067 port, wait answer to 1068 port from „drbl“;
– Drbl answers from 1067 to clients 1068 port (linuxclient accepts);
– cloning or deploying;
– w1nd0ws booting and asks for ip and subnet (winclient);
– Rain or Drbl (who faster) answers (winclient accepts).

As result my DRBL server works in current environment.

=====================================================================
Please, let me know, if you find „proxy DHCP“ daemon for Linux! Because with it, life would be much easier (there are only one dhcpd.conf with „host“ entries)! =)

Client work WITH PROXY DHCP:
– power on, PXE ROM in network card (pxeclient) asks DHCP with ip, subnet, filename, next-server options;
– Rain answers with ip and subnet options (pxeclient ignores);
– proxyDHCP forwards the same Rain’s answer and add to it filename and next-server options (pxeclient accepts);
– pxeclient receive menu, then receive linux kernel and vfs file via tftp;
– linux booting in client memory, now it linuxclient :-);
– linuxclient asks ip, subnet, next-server on 67/68 port, wait answer from any server (/opt/drbl/sbin/mknic-nbi –check-server-name n);
– proxyDHCP forwards usual Rain’s answer and add to it filename option (linuxclient accepts);
– cloning or deploying;
– w1nd0ws booting and asks for ip and subnet (winclient);
– Rain answers (winclient accepts).
=====================================================================

Thank you for cooperate!