diff options
author | Jean Cyr <jcyr@dillobits.com> | 2013-11-10 01:19:50 -0500 |
---|---|---|
committer | Jean Cyr <jcyr@dillobits.com> | 2013-11-10 01:19:50 -0500 |
commit | 48ebcfa9b56921dc0470f43504a9bd3426cf1953 (patch) | |
tree | d09a6256633462410f1d0ef9895ed96c010bf9ed /config/bind | |
parent | e27e034ec6d8ef1011373ec5d1e479cbe906b111 (diff) | |
download | pfsense-packages-48ebcfa9b56921dc0470f43504a9bd3426cf1953.tar.gz pfsense-packages-48ebcfa9b56921dc0470f43504a9bd3426cf1953.tar.bz2 pfsense-packages-48ebcfa9b56921dc0470f43504a9bd3426cf1953.zip |
bind - optionally add static dhcp leases at zone A records
Similar to 'unbound' feature to avoid the need to duplicate static host
addresses in both DHCP and BIND.
- Add 'Register DHCP static mappings' checkbox to zone form
- if checked, enumerate all static DHCP hosts and add to zone, such that
their name can be resolved.
Diffstat (limited to 'config/bind')
-rw-r--r-- | config/bind/bind.inc | 12 | ||||
-rw-r--r-- | config/bind/bind_zones.xml | 7 |
2 files changed, 18 insertions, 1 deletions
diff --git a/config/bind/bind.inc b/config/bind/bind.inc index a288dcfb..436f352e 100644 --- a/config/bind/bind.inc +++ b/config/bind/bind.inc @@ -435,6 +435,14 @@ EOD; $zone_conf .= "$hostname \t IN $hosttype $hostvalue \t$hostdst\n"; } + if (($zone[regdhcpstatic] == 'on') && is_array($config['dhcpd'])) { + foreach ($config['dhcpd'] as $dhcpif => $dhcpifconf) + if(is_array($dhcpifconf['staticmap']) && isset($dhcpifconf['enable'])) + foreach ($dhcpifconf['staticmap'] as $host) + if ($host['ipaddr'] && $host['hostname']) { + $zone_conf .= "{$host['hostname']}\tIN A\t{$host['ipaddr']}\n"; + } + } if ($zone['customzonerecords']!=""){ $zone_conf .= "\n\n;\n;custom zone records\n;\n".base64_decode($zone['customzonerecords'])."\n"; } @@ -609,6 +617,7 @@ function bind_print_javascript_type_zone(){ document.iform.forwarders.disabled = 1; document.iform.dnssec.disabled = 0; document.iform.backupkeys.disabled = 0; + document.iform.regdhcpstatic.disabled = 0; document.iform.ipns.disabled = 0; document.iform.mail.disabled = 0; document.iform.serial.disabled = 0; @@ -625,6 +634,7 @@ function bind_print_javascript_type_zone(){ document.iform.forwarders.disabled = 1; document.iform.dnssec.disabled = 0; document.iform.backupkeys.disabled = 0; + document.iform.regdhcpstatic.disabled = 0; document.iform.ipns.disabled = 1; document.iform.mail.disabled = 1; document.iform.serial.disabled = 1; @@ -641,6 +651,7 @@ function bind_print_javascript_type_zone(){ document.iform.forwarders.disabled = 0; document.iform.dnssec.disabled = 1; document.iform.backupkeys.disabled = 1; + document.iform.regdhcpstatic.disabled = 1; document.iform.ipns.disabled = 1; document.iform.mail.disabled = 1; document.iform.serial.disabled = 1; @@ -657,6 +668,7 @@ function bind_print_javascript_type_zone(){ document.iform.forwarders.disabled = 1; document.iform.dnssec.disabled = 1; document.iform.backupkeys.disabled = 1; + document.iform.regdhcpstatic.disabled = 1; document.iform.ipns.disabled = 1; document.iform.mail.disabled = 0; document.iform.serial.disabled = 0; diff --git a/config/bind/bind_zones.xml b/config/bind/bind_zones.xml index 77893417..d5cbe1b8 100644 --- a/config/bind/bind_zones.xml +++ b/config/bind/bind_zones.xml @@ -72,7 +72,6 @@ <tab> <text>Zones</text> <url>/pkg.php?xml=bind_zones.xml&id=0</url> - <active/> </tab> <tab> <text>Sync</text> @@ -385,6 +384,12 @@ </rowhelper> </field> <field> + <fieldname>regdhcpstatic</fieldname> + <fielddescr>Register DHCP static mappings</fielddescr> + <description>If this option is set, then DHCP static mappings will be registered in DNS, so that their name can be resolved.</description> + <type>checkbox</type> + </field> + <field> <type>listtopic</type> <name>Custom Zone Domain records</name> <fieldname>temp02</fieldname> |