REVCOMPAT() controls which RFC the REV() function adheres to.

Include one of these two commands near the top dnsconfig.js (at the global level):

REVCOMPAT("rfc2317");  // RFC 2117: Compatible with old files.
REVCOMPAT("rfc4183");  // RFC 4183: Adopt the newer standard.

REVCOMPAT() is global for all of dnsconfig.js. It must appear before any use of REV(); If not, behavior is undefined.

RFC 4183 vs RFC 2317

RFC 2317 and RFC 4183 are two different ways to implement reverse lookups for CIDR blocks that are not on 8-bit boundaries (/24, /16, /8).

Originally DNSControl implemented the older standard, which only specifies what to do for /8, /16, /24 - /32. Using REV() for /9-17 and /17-23 CIDRs was an error.

v4 defaults to RFC 2317. In v5.0 the default will change to RFC 4183. REVCOMPAT() is provided for those that wish to retain the old behavior.

For more information, see Opinion #9.

Transition plan

What's the default behavior if REVCOMPAT() is not used?

Version/9 to /15 and /17 to /23/25 to 32Warnings


RFC 4183

RFC 2317

Only if /25 - /32 are used


RFC 4183

RFC 4183


No warnings are generated if the REVCOMPAT() function is used.

Last updated