EDNS Version 1
Internet Systems Consortium
950 Charter Street
Redwood City
CA
94063
US
marka@isc.org
It is impracticable to deploy new EDNS options, with EDNS
version 0, on a global scale due to inconsistent server
behaviour in deployed servers when a EDNS option is present
in the query. Most existing EDNS option deployment has been
small scale between essentially consenting implementations.
When EDNS options were added to every outgoing recursive
query made it became clear that trial and error to discover
the level of EDNS version 0 support was not practicable.
This document request that EDNS version 1 be assigned so that
consistent well defined behaviour can be seen when a EDNS option
is present.
Extended DNS (EDNS) supports adding EDNS options to the
request. Unfortunately it was not clear in the original
specification that unknown EDNS
options should be ignored. The updated EDNS specification
makes ignoring unknown EDNS
options a explicit requirement but failed to bump the EDNS
version number.
Currently there are EDNS version 0 servers that ignore
unknown EDNS options. Those that return FORMERR when unknown
EDNS options are present. Those that return BADVERS when
unknown EDNS options are present. Those that return REFUSED
when unknown EDNS options are present and presumably those
that return NOTIMP (though the author has not seen one).
FORMERR, REFUSED and NOTIMP are all returned from servers that
do not support EDNS. It is impracticable for clients to have
yet more overloading of these error codes and more trial and
error to workout what is and is not supported when there is a
clear method available to resolve the differences.
This document requests EDNS version 1 be assigned and that
the EDNS behaviour be that of
with the exception of the version being 1 rather than 0.
EDNS version 1 clients then will have well defined behaviour
when sending unknown EDNS options (they should be ignored)
to EDNS version 1 servers. BADVERS to EDNS version 0 servers
and FORMERR, REFUSED, NOTIMP to servers that do not support
EDNS and return a error code.
This is effectively a protocol reset for EDNS.
EDNS version one behaviour is identical to that described
in with the exception to that
the EDNS version is assigned to 1.
This document be the reference document for EDNS version 1.
The document does not introduce any security issues that are
not addressed in .
Extension Mechanisms for DNS (EDNS(0))
Extension Mechanisms for DNS (EDNS0)