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!