DNS/BIND resource record: using $GENERATE to make many records
Posted by Quinn McHenry in BIND and DNS
A cool feature in versions of BIND since 8.2 and 9.1 is the $GENERATE directive which can create hundreds or thousands of resource records with a single line in zone file. A common use for $GENERATE is assigning PTR records for a DHCP address range.
Given the subnet 192.168.2.0/24 which is reserved (with the exception of reserved addresses 192.168.2.1-10) for use by a DHCP server pool, reverse lookup (PTR) records of the format dhcp#.tech-recipes.com. (where # is the address) can be created with the following line in the zone file:
$GENERATE 11-254 $ PTR dhcp$.tech-recipes.com.
This will generate the following records:
11 PTR dhcp11.tech-recipes.com.
12 PTR dhcp12.tech-recipes.com.
13 PTR dhcp13.tech-recipes.com.
...
253 PTR dhcp253.tech-recipes.com.
254 PTR dhcp254.tech-recipes.com.
This code works assuming that the zone file is associated with the 2.168.192.in-addr.arpa. domain. The $GENERATE is currently only compatible with the A, AAAA, CNAME, DNAME, NS and PTR resource record types.
About Quinn McHenry
View more articles by Quinn McHenry
The Conversation
Follow the reactions below and share your own thoughts.



