diff --git a/modules/policy/README.rst b/modules/policy/README.rst index d8f95d847d2a296b4ee1b6d80e7b6ccdd5327f0a..0d37b1f6c9c8fb20a0aaf8fe7e357410e76a1f9c 100644 --- a/modules/policy/README.rst +++ b/modules/policy/README.rst @@ -36,12 +36,21 @@ A *filter* selects which queries will be affected by specified Actions_. There a Applies the action if query name suffix matches one of suffixes in the table (useful for "is domain in zone" rules). -.. note:: For speed this filter requires domain names in DNS wire format, not textual representation, so each label in the name must be prefixed with its length. Always use convenience function :func:`policy.todnames` for automatic conversion from strings! For example: - .. code-block:: lua policy.add(policy.suffix(policy.DENY, policy.todnames({'example.com', 'example.net'}))) +.. note:: For speed this filter requires domain names in DNS wire format, not textual representation, so each label in the name must be prefixed with its length. Always use convenience function :func:`policy.todnames` for automatic conversion from strings! For example: + +.. _IDN: + +.. note:: Non-ASCII is not supported. + + Knot Resolver does not provide any convenience support for IDN. + Therefore everywhere (all configuration, logs, RPZ files) you need to deal with the + `xn\-\- forms <https://en.wikipedia.org/wiki/Internationalized_domain_name#Example_of_IDNA_encoding>`_ + of domain name labels, instead of directly using unicode characters. + .. function:: domains(action, domain_table) Like :func:`policy.suffix` match, but the queried name must match exactly, not just its suffix. @@ -691,6 +700,8 @@ Response policy zones log_groups({'policy'}) + See also :ref:`non-ASCII support note <IDN>`. + .. function:: rpz(action, path, [watch = true]) diff --git a/modules/predict/README.rst b/modules/predict/README.rst index 634c8d45ccfaa0b0ec24cb80c089998337d799e7..966c4ca4e1d73fd8aa2a04f44dc09b04a1781d6d 100644 --- a/modules/predict/README.rst +++ b/modules/predict/README.rst @@ -22,7 +22,7 @@ Prediction ---------- The predict module can also learn usage patterns and repetitive queries, -though this mechanism is basically a prototype. +though this mechanism is a prototype and **not recommended** for use in production or with high traffic. For example, if it makes a query every day at 18:00, the resolver expects that it is needed by that time and prefetches it ahead of time. @@ -41,13 +41,12 @@ Example configuration modules = { predict = { + -- this mode is NOT RECOMMENDED for use in production window = 15, -- 15 minutes sampling window period = 6*(60/15) -- track last 6 hours } } -Defaults are as above: 15 minutes window, 6 hours period. - Exported metrics ----------------