# Sets log facility
log-facility local1;

# Allow leasequery i.e. source-verify dhcp
allow leasequery;

# set server-identifier
server-identifier 172.16.0.1;

ignore client-updates;

# Remember Agent info in leases file
stash-agent-options on;

# One lease per client
one-lease-per-client true;

#Lease Times can be overridden below
default-lease-time 604800;
max-lease-time 604800;
min-lease-time 302400;


# Time offset for TOD (This is CST)
#Fall
#option time-offset -21600;
#Spring
option time-offset -18000;

# Cable Modem Class
class "CM" {
        # only match if first 6 chars of option 61 are docsis
        match if (substring(option vendor-class-identifier,0,6) = "docsis");
        spawn with hardware;
}
# Match anything Else
class "CPE" {
        match if ((substring(option vendor-class-identifier,0,6) != "docsis"));
        spawn with hardware;
}

# subnet of listening IP on dhcp Server
# just needs to be there to have server listen 
subnet 172.16.0.1 netmask 255.255.255.0 {

}

# create groups for common options very useful for assigning config files to modems 
group Gold {
	filename = "gold.bin";
	option bootfile-name = "gold.bin";
}

# subnet for first CMTS IP-BUNDLE ips
shared-network CMTS1 {
	# subnet for modems
	subnet 10.1.0.0 netmask 255.255.255.0 {
		# Required Options 
		option tftp-server-name "172.16.0.1";
		option time-servers 172.16.0.1;
		option log-servers 172.16.0.1;
		next-server 172.16.0.1;
		pool {
			deny unknown-clients;
			allow members of "CM";
			deny members of "CPE";
			range 10.1.0.2 10.1.0.254;
		}
	}
	#subnet for CPEs, repeat as necessary
	subnet 192.168.1.0 netmask 255.255.255.0 {
		# required options 
		name-servers 4.2.2.2, 8.8.8.8;
		pool {
			allow unknown-clients;
			allow members of "CPE";
			deny members of "CM";
			range 192.167.1.2 192.168.1.254;
		}
	}	
}

# subnet for second CMTS IP-BUNDLE ips
shared-network CMTS2 {
	# subnet for modems
	subnet 10.2.0.0 netmask 255.255.255.0 {
		# Required Options 
		option tftp-server-name "172.16.0.1";
		option time-servers 172.16.0.1;
		option log-servers 172.16.0.1;
		next-server 172.16.0.1;		
		pool {
			deny unknown-clients;
			allow members of "CM";
			deny members of "CPE";
			range 10.2.0.2 10.2.0.254;
		}
	}
	#subnet for CPEs, repeat as necessary
	subnet 192.168.2.0 netmask 255.255.255.0 {
		# required options 
		name-servers 4.2.2.2, 8.8.8.8;
		pool {
			allow unknown-clients;
			allow members of "CPE";
			deny members of "CM";
			range 192.167.2.2 192.168.2.254;
		}
	}	
}

host device1 {
  hardware ethernet 00:17:10:1b:09:de;
  group "Gold";
}