]> git.ipfire.org Git - thirdparty/bind9.git/commit
Make BIND refuse to serve XFRs over DoH
authorArtem Boldariev <artem@boldariev.com>
Mon, 7 Jun 2021 13:38:39 +0000 (16:38 +0300)
committerArtem Boldariev <artem@boldariev.com>
Mon, 14 Jun 2021 08:37:36 +0000 (11:37 +0300)
commitb84fa122ced4a58cdbf25166d9fc7ebae7aa9223
treec5af09ecd7d076e83d5a914368dd5b5d04dbf216
parent009752cab08fad5b6c9e0d6e07b0c090e2f838fc
Make BIND refuse to serve XFRs over DoH

We cannot use DoH for zone transfers.  According to RFC8484 a DoH
request contains exactly one DNS message (see Section 6: Definition of
the "application/dns-message" Media Type,
https://datatracker.ietf.org/doc/html/rfc8484#section-6).  This makes
DoH unsuitable for zone transfers as often (and usually!) these need
more than one DNS message, especially for larger zones.

As zone transfers over DoH are not (yet) standardised, nor discussed
in RFC8484, the best thing we can do is to return "not implemented."

Technically DoH can be used to transfer small zones which fit in one
message, but that is not enough for the generic case.

Also, this commit makes the server-side DoH code ensure that no
multiple responses could be attempted to be sent over one HTTP/2
stream. In HTTP/2 one stream is mapped to one request/response
transaction. Now the write callback will be called with failure error
code in such a case.
bin/tests/system/doth/tests.sh
lib/isc/include/isc/netmgr.h
lib/isc/netmgr/http.c
lib/isc/netmgr/netmgr-int.h
lib/ns/query.c