WillyXJ / facileManager

A modular suite of web apps built with the sysadmin in mind.
www.facilemanager.com
GNU General Public License v2.0
87 stars 37 forks source link

[BUG] wrong syntax for option check-names in a zone file #571

Closed cahluor closed 1 year ago

cahluor commented 1 year ago

Please prefix your issue title with one of the following: [BUG], [ISSUE], [FEATURE REQUEST], [MODULE REQUEST], [OTHER].

Replace everything between stars with current version of your facileManager and module installations:
fM Version : 4.3.0 fmDNS Version : 5.2.1

In raising this issue, I confirm the following (please check boxes, eg [X]):


(BUG | ISSUE) Expected Behavior:

generate this config : zone "example.com" { type master; file "/etc/bind/zones/master/db.example.com.hosts"; check-names warn; }

(BUG | ISSUE) Actual Behavior:

generate this config : zone "example.com" { type master; file "/etc/bind/zones/master/db.example.com.hosts"; check-names master warn; }

then log :

Mar 1 16:37:13 ns2 named[25364]: /etc/bind/zones/zones.conf.common:128: 'master' unexpected Mar 1 16:37:13 ns2 named[25364]: reloading configuration failed: unexpected token Mar 1 16:37:13 ns2 rndc[25406]: rndc: 'reload' failed: unexpected token Mar 1 16:37:13 ns2 systemd[1]: bind9.service: control process exited, code=exited status=1 Mar 1 16:37:13 ns2 systemd[1]: Reload failed for BIND Domain Name Server.

(BUG | ISSUE) Steps to reproduce:

add the option "check-names" in the additional options sections of a zone

When we add the option "check-names" in the options of a zone, the interface force to chose (master | slave | response | secondary) which is ok of the option is global on the server but don't work in a zone.

you can see it here : https://docstore.mik.ua/orelly/networking_2ndEd/dns/ch04_05.htm#FOOTNOTE-26 at the bottom of the page

While looking if the bug was allready known, I saw in the changelog that the syntax for this option was corrected for version 1.3 in 2014 but I am using version 5.2

WillyXJ commented 1 year ago

Have you taken any upgrade paths to get to v5.2? If so, what was your initial version you installed? I’m unable to reproduce this with a new installation of v5.2, but I see an upgrade that potentially could have caused this.

cahluor commented 1 year ago

hummm, I upgraded from facileManager 3.4.1 with fmDNS 3.4

WillyXJ commented 1 year ago

Would you please provide the output of this SQL query from your database?

SELECT * FROM `fm_dns_functions` WHERE `def_option` = 'check-names';
cahluor commented 1 year ago

Here is the result : "def_id";"def_function";"def_option_type";"def_option";"def_type";"def_multiple_values";"def_clause_support";"def_zone_support";"def_dropdown";"def_max_parameters";"def_minimum_version" "32";"options";"global";"check-names";"( master | slave | response | secondary ) ( warn | fail | ignore )";"no";"Z";"MS";"yes";"1"; "932";"options";"global";"check-names";"( master | slave | response | secondary ) ( warn | fail | ignore )";"no";"O";;"yes";"1";

WillyXJ commented 1 year ago

This will be fixed in the next release. If you need it working before then, run the following SQL query against your database:

UPDATE `fm_dns_functions` SET `def_type` = '( warn | fail | ignore )' WHERE `def_option` = 'check-names' AND `def_clause_support`='Z';

You will also need to save your configuration option for check-names again for the saved value to be updated. The next release will automatically fix that.

In addition, this temporary SQL query will break the check-names for any instance you want to use it in the global options. The next release will have code changes to fix it.

cahluor commented 1 year ago

Thanks, I'll wait next release

WillyXJ commented 1 year ago

This is now fixed in fmDNS 5.3.0 and later.