Skip to content
Snippets Groups Projects
Commit d6347d6d authored by Daniel Salzman's avatar Daniel Salzman
Browse files

doc: add and update information about TLS

parent feb8934a
No related branches found
No related tags found
No related merge requests found
Pipeline #126996 passed
......@@ -839,7 +839,7 @@ of the used certificate:
.. code-block:: console
... info: binding to QUIC interface ::1@853
... info: QUIC, certificate public key 0xtdayWpnJh4Py8goi8cei/gXGD4kJQ+HEqcxS++DBw=
... info: QUIC/TLS, certificate public key 0xtdayWpnJh4Py8goi8cei/gXGD4kJQ+HEqcxS++DBw=
.. TIP::
......@@ -874,10 +874,10 @@ Using :doc:`kdig<man_kdig>` we can verify that the server responds over QUIC:
;; version.server. CH TXT
;; ANSWER SECTION:
version.server. 0 CH TXT "Knot DNS 3.3.0"
version.server. 0 CH TXT "Knot DNS 3.4.0"
;; Received 468 B
;; Time 2023-08-15 15:04:36 CEST
;; Time 2024-06-21 08:30:12 CEST
;; From ::1@853(QUIC) in 1.1 ms
In this case, :rfc:`opportunistic authentication<9103#section-9.3.1>` was
......@@ -1087,6 +1087,62 @@ This mode is recommended if possible.
Knot DNS uses certificate public key pinning. This approach has much lower
overhead and in most cases simplifies configuration and certificate management.
.. _DNS_over_TLS:
DNS over TLS
============
TLS is an encrypted internet transport protocol.
Knot DNS supports DNS over TLS (DoT) (:rfc:`7858`), including zone transfers (XoT).
By default, the TCP port `853` is used for DNS over TLS.
There are the same requirements for TLS key and certificate as for :ref:`DNS_over_QUIC`.
In order to listen for incoming requests over TLS, :ref:`interface<server_listen-tls>`
must be configured.
An example of configuration of listening for DNS over TLS on the loopback interface:
.. code-block:: console
server:
listen-tls: ::1
When the server is started, it logs some interface details and public key pin
of the used certificate:
.. code-block:: console
... info: binding to TLS interface ::1@853
... info: QUIC/TLS, certificate public key 0xtdayWpnJh4Py8goi8cei/gXGD4kJQ+HEqcxS++DBw=
Using :doc:`kdig<man_kdig>` we can verify that the server responds over TLS:
.. code-block:: console
$ kdig @::1 ch txt version.server +tls
;; TLS session (TLS1.3)-(ECDHE-X25519)-(EdDSA-Ed25519)-(AES-256-GCM)
;; ->>HEADER<<- opcode: QUERY; status: NOERROR; id: 0
;; Flags: qr rd; QUERY: 1; ANSWER: 1; AUTHORITY: 0; ADDITIONAL: 1
;; EDNS PSEUDOSECTION:
;; Version: 0; flags: ; UDP size: 1232 B; ext-rcode: NOERROR
;; PADDING: 370 B
;; QUESTION SECTION:
;; version.server. CH TXT
;; ANSWER SECTION:
version.server. 0 CH TXT "Knot DNS 3.4.0"
;; Received 468 B
;; Time 2024-06-21 08:31:13 CEST
;; From ::1@853(TLS) in 9.1 ms
Zone transfer configuration and authentication profiles are almost identical
to :ref:`DNS_over_QUIC`, with the only difference being the enabling of
:ref:`remote_tls` for the corresponding remotes.
.. _query-modules:
Query modules
......
......@@ -27,7 +27,7 @@
- \ref dname — Domain name manipulation
- \ref pkt — DNS packet manipulation
- \ref probe — DNS traffic probe interface
- \ref quic — QUIC interface
- \ref quic — QUIC and TLS interface
- \ref rr — DNS resource record manipulation
- \ref rrtype — DNS resource record types
- \ref knot-tsig — TSIG operations
......
......@@ -29,7 +29,7 @@ DNS features:
* Primary and secondary server operation
* Internet (IN) and Chaos (CH) classes
* DNS extension (EDNS0, EDE, EXPIRE)
* UDP, TCP, and QUIC protocols
* UDP, TCP, TLS 1.3, and QUIC protocols
* Zone catalog generation and interpretation
* Minimal responses
* Dynamic zone updates
......@@ -73,7 +73,7 @@ Remarkable module extensions:
Remarkable supported networking features:
* TCP Fast Open (client and server)
* Opportunistic, strict, and mutual authentication profiles over QUIC
* Opportunistic, strict, and mutual authentication profiles over TLS 1.3 or QUIC
* High-performance UDP, TCP, and QUIC through AF_XDP processing (on Linux 4.18+)
* SO_REUSEPORT (on Linux) or SO_REUSEPORT_LB (on FreeBSD 12.0+) on UDP and by choice on TCP
* Binding to non-local addresses (IP_FREEBIND on Linux, IP_BINDANY/IPV6_BINDANY on FreeBSD)
......
......@@ -1282,12 +1282,12 @@ if the backup was created for only a subset of zones.
turns off some verification checks, it shouldn't be used in other cases.
.. NOTE::
For QUIC, only the auto-generated key is restored. The ``zone-restore``
command doesn't restore a user-defined QUIC key and certificate so as to
For QUIC/TLS, only the auto-generated key is restored. The ``zone-restore``
command doesn't restore a user-defined QUIC/TLS key and certificate so as to
avoid possible configuration management conflicts and they must be restored
from the backup (its subdirectory ``quic``) manually. In all cases,
restart of the Knot server after the restore is necessary for the restored
QUIC key/certificate to take effect.
QUIC/TLS key/certificate to take effect.
Limitations
-----------
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment