I'm not sure this is very easy. You can only specify a single gateway with "option routers" and if this is done globally then all clients will be assigned the same gateway address.
The only way to differ these is to use either a subnet or a pool declaration whereby each subnet or pool is assigned its own gateway.
I suspect that you don't want to subnet your clients so that only leaves pools.
In order to use a pool you have to have some way of distinguishing between the client machines. Typically this would be by the hardware address. Let's suppose that we wanted to pool those clients with hardware addresses beginning with 00:FF and all others into a separate pool:
class "setone" {
match if substring (hardware, 1, 2) = 00:FF;
}
subnet 192.168.1.0 netmask 255.255.255.0 {
option subnet-mask 255.255.255.0;
pool {
deny members of "setone";
range 192.168.1.4 192.168.1.59;
option routers 192.168.1.1;
}
pool {
allow members of "setone";
range 192.168.1.60 192.168.1.100;
option routers 192.168.1.2;
}
}
OK, that should work if we were to include all the other required parameters either globally or by group. Trouble is you probably don't want to distinguish between client hardware in this manner and I can't think how else you could differentiate the pools.
What you could try, AND DON'T BLAME ME IF IT DOESN'T WORK ( I've never tried it!!!):
Assuming you have 90 clients say, create the first pool with 45 addresses in its range and the second pool with the rest. Forget the "allow / deny" bits here!
What I suspect MAY happen is that once the first pool runs out of addresses, the second pool comes into play. Either that or the clients pick up an address from the first pool and then are reassigned a lease from the second, so it's the second one which runs out first. As I say, I don't know. I've never tried it, never likely to.
Good Luck
Carl.
|