December 28, 2010

Applying DNS to different subnets

Dissecting dhcpd.conf. Censored where appropriate (hopefully). Color-coded questions at bottom of post.

*PrivatePaste w/ Indentations here*

ddns-update-style interim;
ddns-domainname "dyn.company.com.";

key DHCP_COMPANY {
*omitted*
}

zone dyn.orderdis.com. {
primary XXX.XXX.0.50;
key DHCP_COMPANY;
}
zone XXX.XXX.in-addr.arpa. {
primary XXX.XXX.0.50;
key DHCP_COMPANY;
}

authoritative;
ddns-update-style interim;
deny duplicates;
authoritative;
default-lease-time 345600;
max-lease-time 691200;
option domain-name-servers XXX.XXX.0.50,XXX.XXX.255.250;
option netbios-name-servers XXX.XXX.0.50;

subnet XXX.XXX.0.0 netmask 255.255.0.0 {
one-lease-per-client on;
option broadcast-address XXX.XXX.255.255;
option domain-name "dyn.company.com";
option netbios-name-servers XXX.XXX.255.254;
option netbios-name-servers XXX.XXX.0.50;
option netbios-node-type 8;
option routers XXX.XXX.255.1;
option subnet-mask 255.0.0.0;
update-optimization on;
update-static-leases on;
class "Sayson480i" {
match if (substring(hardware,1,3) = 00:08:5d);
}
class "etherboot-an983" {
match if (substring(hardware,1,3) = 00:04:e2);
next-server XXX.XXX.255.254;
filename "nbi-2.6.0-thin1";
option root-path "/nfs/thin3";
}
class "etherboot-3c59x" {
match if (substring(hardware,1,3) = 00:01:02);
if substring (option vendor-class-identifier, 0, 9) = "PXEClient" {
next-server XXX.XXX.255.254;
filename "eb-5.2.2-3c905c-tpo.zpxe";
} else if substring (option vendor-class-identifier, 0, 9) = "PXEclient" {
next-server XXX.XXX.255.254;
filename "eb-5.2.2-3c905c-tpo.zpxe";
} else if substring (option vendor-class-identifier, 0, 9) = "Etherboot" {
next-server XXX.XXX.255.254;
filename "nbi-2.6.0-thin1";
option vendor-encapsulated-options 3c:09:45:74:68:65:72:62:6f:6f:74:ff;
} else {
next-server XXX.XXX.255.254;
option root-path "/nfs/thin2";
}
}
pool {
range XXX.XXX.2.0 XXX.XXX.2.254;
option domain-name-servers 208.67.222.123,208.67.220.123;
allow members of "etherboot-an983";
allow members of "etherboot-3c59x";
}
pool {
range XXX.XXX.3.0 XXX.XXX.3.254;
option domain-name-servers 208.67.222.123,208.67.220.123;
allow members of "Sayson480i";
}
pool {
range XXX.XXX.0.50 XXX.XXX.0.254;
option domain-name-servers 8.8.8.8,8.8.4.4;
deny unknown clients;
}
pool {
range XXX.XXX.1.50 XXX.XXX.1.112;
option domain-name-servers 208.67.222.123,208.67.220.123;
allow unknown clients;
}
}
subnet 127.0.0.0 netmask 255.255.255.0 {
}

host XXXXX1 {
hardware ethernet XX:XX:XX:XX:XX:XX;
option domain-name "company.com";
fixed-address XXX.XXX.0.45;
}
host XXXXX2 {
hardware ethernet XX:XX:XX:XX:XX:XX;
option domain-name "company.com";
fixed-address XXX.XXX.1.45;
}
host XXXXX3 {
hardware ethernet XX:XX:XX:XX:XX:XX;
option domain-name "company.com";
fixed-address XXX.XXX.2.45;
}
host XXXXX4 {
hardware ethernet XX:XX:XX:XX:XX:XX;
option domain-name "company.com";
fixed-address XXX.XXX.255.45;
}

1) What is this? What is it for and do?

2) What is this? What is it for and do?

3) Paying more attention to domain-name-servers, but what does this mean? Does it mean it applies to *EVERYTHING* -- literally all subnets and pools specified in this file?

4) And what is this? :?

5) I think here it gets specific about different subnets or ranges. Can I specify domain-name-servers for each range like I did here? Or would that be an invalid move?

If it is a valid move, then it should do something like this (as far as applying DNS to specified range):
* Apply DNS 208.67.222.123 and DNS 208.67.220.123 to XXX.XXX.2.0 through XXX.XXX.2.254, to XXX.XXX.3.0 through XXX.XXX.3.254, to XXX.XXX.1.50 through XXX.XXX.1.112
* Apply DNS 8.8.8.8 and DNS 8.8.4.4 to XXX.XXX.0.50 through XXX.XXX.0.254

Is this correct? :(

6) What is this little piece?