jerome boileau schrieb:
Hi,
I'm testing an ENUM DNS server (BIND9) with Openser 1.2.0. It seems that
Openser Enum module doesn't support wildcard and non terminal NAPTR record.
Enum module is working well when the NAPTR record is defined in the ENUM DNS
with complete phone number and ‘u’ flag. Here is an example of the NAPTR
record:
1.2.3.4.5.6.7.8.9.3.3.enum1.net IN NAPTR 10 100 "u" "E2U+sip"
"!^.*$!sip:+33987654321@example.com!".
When I declared a wildcard in the ENUM DNS (ie: *.enum1.net IN NAPTR 10
100 "u" "E2U+sip" "!^.*$!sip:+33987654321@example.com!".),
enum_query
function didn't find the NAPTR record.
The following message is returned in the log, enum_query(): No NAPTR record
found for
1.2.3.4.5.6.7.8.9.3.3.enum1.net.
Openser is not able to differ between wildcard and normal records. The
wildcard handling is done in the DNS server. So, there can not be a
problem with openser, but with your zone file.
e.g. this should work:
======================
*.enum1.net IN NAPTR 10 100 "u" "E2U+sip"
Here
1.2.3.4.5.6.7.8.9.3.3.enum1.net should return the wildcard NAPTR
e.g this does not work:
=======================
*.enum1.net IN NAPTR 10 100 "u" "E2U+sip"
1.2.3.enum1.net IN NAPTR 10 100 "u" "E2U+sip"
Here
4.enum1.net should return the wildcard NAPTR,
but
1.2.3.4.5.6.7.8.9.3.3.enum1.net will return NXDOMAIN as wildcard
works only if there are not other records below the lable.
regardind non-terminal NAPTR. AFAIK they are not supported. IMO they are
impossible to understand and implement correctly :-)
regards
Klaus
Should resolver (ie resolve.c source file) or enum module be modified to
handle wildcard or is it just a parameter to set ?
In case of wildcard CNAME record instead of NAPTR, openser behave in the
same way, the CNAME record was not found.
I also tried to use a non-terminal NAPTR to forward the ENUM DNS query
towards another domain. Here is the NAPTR record declared in the ENUM DNS:
1.2.3.4.5.6.7.8.9.3.3.enum1.net IN NAPTR 10 100 "" ""
"!^.*([0-9]{11})$!\\1.enum2.net!".
By using sip_match function, the enum_query (ie do_query) function discards
the NAPTR record without ‘u’ flag.
I removed the check on the flag (comment sip_match function) so the NAPTR
record is not discarded.
But instead of looking for the terminal NATR record, enum_query function
overwrites the Request URI with the non-terminal NAPTR record.
Is the handling of non terminal NAPTR fixed in a new version of enum module
? If not, is it planned ?
Thanks in advance for your help.
Best regards,
Jérôme