Some more pointer that might be of use.
You can use <tags>
to assign different DHCP options to different DHCP pools:
$ man dnsmasq
DNSMASQ(8) System Manager's Manual DNSMASQ(8)
NAME
dnsmasq - A lightweight DHCP and caching DNS server.
SYNOPSIS
dnsmasq [OPTION]...
DESCRIPTION
dnsmasq is a lightweight DNS, TFTP, PXE, router advertisement and DHCP server. It is
intended to provide coupled DNS and DHCP service to a LAN.
[...]
OPTIONS
Note that in general missing parameters are allowed and switch off functions, for
instance "--pid-file" disables writing a PID file. On BSD, unless the GNU getopt
library is linked, the long form of the options does not work on the command line; it
is still recognised in the configuration file.
[...]
-F, --dhcp-range=[tag:<tag>[,tag:<tag>],][set:<tag>,]<start-addr>[,<end-
addr>|<mode>][,<netmask>[,<broadcast>]][,<lease time>]
-F, --dhcp-range=[tag:<tag>[,tag:<tag>],][set:<tag>,]<start-IPv6addr>[,<end-
IPv6addr>|constructor:<interface>][,<mode>][,<prefix-len>][,<lease time>]
Enable the DHCP server. Addresses will be given out from the range <start-addr>
to <end-addr> and from statically defined addresses given in dhcp-host options.
If the lease time is given, then leases will be given for that length of time.
The lease time is in seconds, or minutes (eg 45m) or hours (eg 1h) or "infi‐
nite". If not given, the default lease time is one hour. The minimum lease time
is two minutes. For IPv6 ranges, the lease time maybe "deprecated"; this sets
the preferred lifetime sent in a DHCP lease or router advertisement to zero,
which causes clients to use other addresses, if available, for new connections
as a prelude to renumbering.
[...]
The optional set:<tag> sets an alphanumeric label which marks this network so
that dhcp options may be specified on a per-network basis. When it is prefixed
with 'tag:' instead, then its meaning changes from setting a tag to matching it.
Only one tag may be set, but more than one tag may be matched.
[...]
Below an example of using those tags to hand out different DHCP options to the pools/scope:
#Create different dhcp scopes for each of the three simulated subnets here, using tags for ID
#Format is: dhcp-range=<your_tag_here>,<start_of_scope>,<end_of_scope>,<subnet_mask>,<lease_time>
#
dhcp-range=subnet0,10.0.0.5,10.0.0.250,255.255.255.0,8h
dhcp-range=subnet1,10.0.1.5,10.0.1.250,255.255.255.0,8h
dhcp-range=subnet2,10.0.2.5,10.0.2.250,255.255.255.0,8h
#Setup different options for each of the unique subnets, since default gateways will be different
#The format for this is: dhcp-options=<your_tags_here>,<option>,<option_value> - 3 is router
#
dhcp-options=subnet0,3,10.0.0.1
dhcp-options=subnet1,3,10.0.1.1
dhcp-options=subnet2,3,10.0.2.1
If you create DHCP (static) reservations for known clients, you can assign them to the different pools:
-G, --dhcp-host=[<hwaddr>][,id:<client_id>|*][,set:<tag>][,<ipaddr>][,<host‐
name>][,<lease_time>][,ignore]
Specify per host parameters for the DHCP server. This allows a machine with a
particular hardware address to be always allocated the same hostname, IP address
and lease time. A hostname specified like this overrides any supplied by the
DHCP client on the machine. It is also allowable to omit the hardware address
and include the hostname, in which case the IP address and lease times will
apply to any machine claiming that name. For example --dhcp-
host=00:20:e0:3b:13:af,wap,infinite tells dnsmasq to give the machine with hard‐
ware address 00:20:e0:3b:13:af the name wap, and an infinite DHCP lease.
--dhcp-host=lap,192.168.0.199 tells dnsmasq to always allocate the machine lap
the IP address 192.168.0.199.