]> git.ipfire.org Git - thirdparty/knot-resolver.git/log
thirdparty/knot-resolver.git
8 years agoclient-subnet WIP: mainly cache changes client-subnet-wip
Vladimír Čunát [Tue, 18 Oct 2016 11:26:02 +0000 (13:26 +0200)] 
client-subnet WIP: mainly cache changes

Status: all deckard tests succeed (non-ECS).

Design plan:

- It was decided to deviate from rfc7871, as full
implementation would be potentially very cache-hungry
(there are very many meaningful IP prefixes).
Instead, a geo DB will be used to partition IPs into discrete
categories.  That's what the authoritative NSs use AFAIK.

- For now the granularity would be a country, as used by
https://www.maxmind.com/en/geoip2-databases

- Cache deduplicates equal records for different locations.
That's implemented by splitting the mapping into two:
usual key + location -> hash, and usual key + hash -> RRdata.
Timestamp and TTL of the RRset is stored in the first part,
and the stored RRs have TTLs zeroed.
(All this forced changes in lib/cache.h API.)

8 years agoTip for running kresd in containers.
Michal Karm Babacek [Thu, 6 Oct 2016 20:20:00 +0000 (22:20 +0200)] 
Tip for running kresd in containers.

Based on [issue 28](https://github.com/CZ-NIC/knot-resolver/issues/28), we were able to boost kresd performance running in a Docker container on DockerCloud by nearly 100% by binding to a single interface:ipaddress. It might be handy for other users to know.

8 years agoMerge branch 'p/net.listen' into 'master'
Ondřej Surý [Mon, 3 Oct 2016 11:15:52 +0000 (13:15 +0200)] 
Merge branch 'p/net.listen' into 'master'

net.listen: make it more flexible

As noted in #94, it feels natural to call it like:
``net.listen({net.lo, '192.168.1.1'})``
Also minor fixes were done in that function and corresponding docs.

See merge request !46

8 years agodoc: fix a typo
Vladimír Čunát [Fri, 30 Sep 2016 13:10:55 +0000 (15:10 +0200)] 
doc: fix a typo

8 years agodaemon/worker: set query source addr for tcp
Marek Vavrusa [Tue, 27 Sep 2016 20:14:36 +0000 (20:14 +0000)] 
daemon/worker: set query source addr for tcp

8 years agoVarious little quirks required to build on FreeBSD
Ondřej Surý [Thu, 8 Sep 2016 14:48:43 +0000 (16:48 +0200)] 
Various little quirks required to build on FreeBSD

8 years agoMerge !45: various nitpicks
Vladimír Čunát [Wed, 7 Sep 2016 13:07:34 +0000 (15:07 +0200)] 
Merge !45: various nitpicks

Assortment of unimportant changes that I created during trying to understand how the whole resolution process works. Best read each commit separately.

8 years agonet.listen: make it more flexible
Vladimír Čunát [Wed, 7 Sep 2016 12:46:16 +0000 (14:46 +0200)] 
net.listen: make it more flexible

As noted in #94, it feels natural to call it like:
``net.listen({net.lo, '192.168.1.1'})``
Also, minor fixes were done in that function and corresponding docs.

8 years agodaemon/worker: retransmit based on current score
Marek Vavrusa [Mon, 5 Sep 2016 00:42:03 +0000 (17:42 -0700)] 
daemon/worker: retransmit based on current score

if the score is known (and not glued), the retry
rate is <avg(rtt), 250ms>

if the NS score is unknown or worse than 250ms,
it is always retried at this rate

all other servers in the list use default rate

8 years agolib/nsrep: respect -DFAVOUR_IPV6=X
Marek Vavrusa [Mon, 5 Sep 2016 00:40:22 +0000 (17:40 -0700)] 
lib/nsrep: respect -DFAVOUR_IPV6=X

maintainer may wish to choose neutral or even
more favoured server selection of IPv6 servers.

-DFAVOUR_IPV6=0 makes neutral server selection
-DFAVOUR_IPV6=40 gives IPv6 40ms better chance

8 years agomodules/http: changed wording
Marek Vavrusa [Sun, 4 Sep 2016 23:11:08 +0000 (16:11 -0700)] 
modules/http: changed wording

8 years agobuild: bumped version requirement to libknot 2.2.0
Marek Vavrusa [Thu, 25 Aug 2016 17:45:01 +0000 (10:45 -0700)] 
build: bumped version requirement to libknot 2.2.0

8 years agomodules/http: cleanup
Marek Vavrusa [Thu, 25 Aug 2016 17:41:29 +0000 (10:41 -0700)] 
modules/http: cleanup

8 years agobuild: cleanup, fixes for FreeBSD
Marek Vavrusa [Thu, 25 Aug 2016 17:40:00 +0000 (10:40 -0700)] 
build: cleanup, fixes for FreeBSD

8 years agomodules/daf: support multiple targets in forward
Marek Vavrusa [Thu, 25 Aug 2016 17:39:40 +0000 (10:39 -0700)] 
modules/daf: support multiple targets in forward

RTT tracking for all targets is also supported,
but no loadbalancing is done based on that yet

8 years agodaemon/worker.h: drop unused typedef qr_task_send_cb
Vladimír Čunát [Thu, 25 Aug 2016 16:11:12 +0000 (18:11 +0200)] 
daemon/worker.h: drop unused typedef qr_task_send_cb

8 years agomove worker initialization to daemon/worker.c
Vladimír Čunát [Thu, 25 Aug 2016 14:42:57 +0000 (16:42 +0200)] 
move worker initialization to daemon/worker.c

Consequently, there's no use for worker_reserve in the header.

8 years agodaemon/worker.h: move internal stuff to the end
Vladimír Čunát [Thu, 25 Aug 2016 14:27:08 +0000 (16:27 +0200)] 
daemon/worker.h: move internal stuff to the end

Also break overlong lines.

8 years agodaemon/main: error handling nitpicks
Vladimír Čunát [Thu, 25 Aug 2016 10:57:52 +0000 (12:57 +0200)] 
daemon/main: error handling nitpicks

The last hunk: we'd report worker failure even if we didn't
attempt to start it due to previous failures.

8 years agodocs nitpicks
Vladimír Čunát [Thu, 25 Aug 2016 11:38:00 +0000 (13:38 +0200)] 
docs nitpicks

8 years agodon't use kr_crypto_reinit()
Vladimír Čunát [Wed, 24 Aug 2016 15:08:53 +0000 (17:08 +0200)] 
don't use kr_crypto_reinit()

We called kr_crypto_init() just before forking and then _reinit() in
all children, but we never did any cryptography in-between - better
initialize after forking.

Note: the function is KR_EXPORT.  It might not be useful anymore, but
its removal would require bumping libkres soname.

8 years agofix version number to 1.1.1
Vladimír Čunát [Thu, 25 Aug 2016 12:35:09 +0000 (14:35 +0200)] 
fix version number to 1.1.1

Reported: https://gitlab.labs.nic.cz/knot/resolver/issues/92

8 years agoUpdate NEWS v1.1.1
Ondřej Surý [Wed, 24 Aug 2016 12:05:47 +0000 (14:05 +0200)] 
Update NEWS

8 years agoReuse packet_source address when retrying over TCP. This prevents
Ondřej Surý [Wed, 24 Aug 2016 12:03:29 +0000 (14:03 +0200)] 
Reuse packet_source address when retrying over TCP.  This prevents
timeouts over TCP when <n> first nameservers timeout over UDP as
previously the TCP would connect again to the first and only the
first nameserver in task->addrlist.

This would need to be ultimately fixed in TCP Fast Retransmit.

8 years agoAdd missing curly braces
Ondřej Surý [Wed, 24 Aug 2016 11:59:22 +0000 (13:59 +0200)] 
Add missing curly braces

8 years agoAdd missing %s
Ondřej Surý [Wed, 24 Aug 2016 09:22:33 +0000 (11:22 +0200)] 
Add missing %s

8 years agoFix querying/optional listing when retrying with different destination
Ondřej Surý [Wed, 24 Aug 2016 08:33:44 +0000 (10:33 +0200)] 
Fix querying/optional listing when retrying with different destination

8 years agoUpdate NEWS file for 1.1.1 release
Ondřej Surý [Wed, 24 Aug 2016 06:40:35 +0000 (08:40 +0200)] 
Update NEWS file for 1.1.1 release

8 years agolib/resolve: track rtt of all tried servers
Marek Vavrusa [Wed, 24 Aug 2016 00:28:47 +0000 (17:28 -0700)] 
lib/resolve: track rtt of all tried servers

when doing fast retransmit, each address may be
contacted 1-N times, but previously only cumulative
RTT was tracked for the NS that sent the answer.

now the approximate query start time is subtracted
from cumulative RTT to give an idea how long it
took since the query was actually sent, and all
the NSs that didn't respond within their retransmit
windows are penalised too

8 years agolib/resolve: fixed 0x20 with retransmit
Marek Vavrusa [Tue, 23 Aug 2016 21:17:40 +0000 (14:17 -0700)] 
lib/resolve: fixed 0x20 with retransmit

bcf3f4b made query_finalize() to be called on
each outbound query before sending, so each
retransmitted query got different 0x20 case
and the only responses from the latest contacted
NS matched.

reverted back the old behaviour where query case
is randomised when an outbound query is generated,
not before sending

8 years agolib/resolve: fixed pass through for stub mode
Marek Vavrusa [Tue, 23 Aug 2016 02:56:11 +0000 (19:56 -0700)] 
lib/resolve: fixed pass through for stub mode

REFUSED response no longer causes retry in
iterator when operating in stub mode

8 years agomodules/daf: allow forwarding to custom port
Marek Vavrusa [Tue, 23 Aug 2016 02:07:19 +0000 (19:07 -0700)] 
modules/daf: allow forwarding to custom port

example:

> daf.add 'forward 127.0.0.1@5353'

8 years agoPrint protocol used in verbose mode
Ondřej Surý [Tue, 23 Aug 2016 12:22:42 +0000 (14:22 +0200)] 
Print protocol used in verbose mode

8 years agoFixed error: added missing struct kr_query entry into Lua wrapper.
Karel Slany [Tue, 23 Aug 2016 09:14:47 +0000 (11:14 +0200)] 
Fixed error: added missing struct kr_query entry into Lua wrapper.

The missing entry caused some entries to be dear and written to wrong
positions.

8 years agoUpdate script to print all 16 bytes of IPv6 addr
Ondřej Surý [Wed, 17 Aug 2016 12:47:28 +0000 (14:47 +0200)] 
Update script to print all 16 bytes of IPv6 addr

8 years agoAdd last missing byte to IPv6 root hints
Ondřej Surý [Wed, 17 Aug 2016 12:45:56 +0000 (14:45 +0200)] 
Add last missing byte to IPv6 root hints

8 years agolib/zonecut.c: cleanup
Ondřej Surý [Wed, 17 Aug 2016 12:40:10 +0000 (14:40 +0200)] 
lib/zonecut.c: cleanup

8 years agoCorrectly encode IPv6 addresses in root hints to prevent to uint16_t conversion
Ondřej Surý [Wed, 17 Aug 2016 12:38:00 +0000 (14:38 +0200)] 
Correctly encode IPv6 addresses in root hints to prevent to uint16_t conversion

8 years agoFix missing 'else' in hexval2char()
Ondřej Surý [Mon, 15 Aug 2016 13:00:34 +0000 (15:00 +0200)] 
Fix missing 'else' in hexval2char()

8 years agowhitespace cleanups
Ondřej Surý [Mon, 15 Aug 2016 12:57:50 +0000 (14:57 +0200)] 
whitespace cleanups

8 years agowhitespace cleanups
Ondřej Surý [Mon, 15 Aug 2016 12:57:50 +0000 (14:57 +0200)] 
whitespace cleanups

8 years agoRead EnvironmentFile and user $KRESD_ARGS
Ondřej Surý [Mon, 15 Aug 2016 07:58:11 +0000 (09:58 +0200)] 
Read EnvironmentFile and user $KRESD_ARGS

8 years agoUpdate systemd units to be named after daemon
Ondřej Surý [Mon, 15 Aug 2016 07:35:14 +0000 (09:35 +0200)] 
Update systemd units to be named after daemon

8 years agochangelog: updated to 1.1.0 v1.1.0
Marek Vavrusa [Thu, 11 Aug 2016 23:41:37 +0000 (16:41 -0700)] 
changelog: updated to 1.1.0

8 years agolib/resolve: empty final answer when SERVFAIL
Grigorii Demidov [Wed, 10 Aug 2016 08:24:27 +0000 (10:24 +0200)] 
lib/resolve: empty final answer when SERVFAIL

8 years agoMerge branch 'cookies-wip' into 'master'
Marek Vavrusa [Thu, 11 Aug 2016 22:32:43 +0000 (00:32 +0200)] 
Merge branch 'cookies-wip' into 'master'

DNS Cookies

Second merge request introducing DNS cookies.

See merge request !38

8 years agoDelete static and shared library
Ondřej Surý [Thu, 11 Aug 2016 12:06:30 +0000 (14:06 +0200)] 
Delete static and shared library

8 years agoFixed an error that caused the integration tests to fail.
Karel Slany [Wed, 10 Aug 2016 14:36:49 +0000 (16:36 +0200)] 
Fixed an error that caused the integration tests to fail.

EDNS data from the packet must be erased before attempting to send the
query again.

8 years agobuild: fixed build, removed unused variables
Marek Vavrusa [Tue, 9 Aug 2016 20:54:44 +0000 (13:54 -0700)] 
build: fixed build, removed unused variables

8 years agobuild: fixed build with libknot<2.3 without cookies
Marek Vavrusa [Tue, 9 Aug 2016 20:54:26 +0000 (13:54 -0700)] 
build: fixed build with libknot<2.3 without cookies

the cookies require libknot>=2.3, Makefile didn't
check for that, and turning cookies off wasn't
possible either

8 years agoFixed a possible memory leak.
Karel Slany [Tue, 9 Aug 2016 13:45:46 +0000 (15:45 +0200)] 
Fixed a possible memory leak.

8 years agoRemoved or rephrased some comments.
Karel Slany [Tue, 9 Aug 2016 11:00:48 +0000 (13:00 +0200)] 
Removed or rephrased some comments.

8 years agoDeleted code that has already been commented out.
Karel Slany [Tue, 9 Aug 2016 10:28:24 +0000 (12:28 +0200)] 
Deleted code that has already been commented out.

8 years agoReduced the number of kr_answer_write_cookie() arguments.
Karel Slany [Fri, 5 Aug 2016 12:09:31 +0000 (14:09 +0200)] 
Reduced the number of kr_answer_write_cookie() arguments.

8 years agoFunction kr_rplan_push() fails again with null name.
Karel Slany [Thu, 4 Aug 2016 14:29:05 +0000 (16:29 +0200)] 
Function kr_rplan_push() fails again with null name.

Introduced kr_rplan_push_empty() to create empty query for DNS cookies.

8 years agoRemoved qdcount from struct kr_query.
Karel Slany [Thu, 4 Aug 2016 14:26:15 +0000 (16:26 +0200)] 
Removed qdcount from struct kr_query.

8 years agoAdapted to recent libknot changes.
Karel Slany [Thu, 4 Aug 2016 14:16:56 +0000 (16:16 +0200)] 
Adapted to recent libknot changes.

8 years agoDisabled TCP fallback on BADCOOKIE response. Failing instead.
Karel Slany [Thu, 4 Aug 2016 10:26:48 +0000 (12:26 +0200)] 
Disabled TCP fallback on BADCOOKIE response. Failing instead.

8 years agoRemoved the shallow copy from configuration code in cookie module.
Karel Slany [Sun, 31 Jul 2016 14:49:27 +0000 (16:49 +0200)] 
Removed the shallow copy from configuration code in cookie module.

8 years agoAdded checks for FAIL and DONE when calling cookie module functions.
Karel Slany [Sun, 31 Jul 2016 10:25:25 +0000 (12:25 +0200)] 
Added checks for FAIL and DONE when calling cookie module functions.

8 years agoMerged similar code into one function.
Karel Slany [Tue, 26 Jul 2016 13:39:20 +0000 (15:39 +0200)] 
Merged similar code into one function.

8 years agoRemoved comment that was out of place.
Karel Slany [Tue, 26 Jul 2016 11:40:14 +0000 (13:40 +0200)] 
Removed comment that was out of place.

8 years agoMade some function parameters const.
Karel Slany [Tue, 26 Jul 2016 11:07:05 +0000 (13:07 +0200)] 
Made some function parameters const.

8 years agoRenamed kr_resolve_query_finalize() to kr_resolve_checkout().
Karel Slany [Tue, 26 Jul 2016 10:35:16 +0000 (12:35 +0200)] 
Renamed kr_resolve_query_finalize() to kr_resolve_checkout().

8 years agoRemoved SHA algorithm structures from public interface.
Karel Slany [Tue, 26 Jul 2016 10:21:37 +0000 (12:21 +0200)] 
Removed SHA algorithm structures from public interface.

8 years agoSimplified interface of srvr_sockaddr_cc_check() as suggested in code review.
Karel Slany [Tue, 26 Jul 2016 09:56:12 +0000 (11:56 +0200)] 
Simplified interface of srvr_sockaddr_cc_check() as suggested in code review.

8 years agoRemoved code for guessing source address using NS reputation mechanism.
Karel Slany [Tue, 26 Jul 2016 09:08:16 +0000 (11:08 +0200)] 
Removed code for guessing source address using NS reputation mechanism.

8 years agoRemoved assert call as suggested in merge request.
Karel Slany [Tue, 26 Jul 2016 08:49:21 +0000 (10:49 +0200)] 
Removed assert call as suggested in merge request.

8 years agoFixed some typos.
Karel Slany [Tue, 26 Jul 2016 08:29:19 +0000 (10:29 +0200)] 
Fixed some typos.

8 years agoRemoved round brackets from documentation as suggested in merge request.
Karel Slany [Tue, 26 Jul 2016 08:26:39 +0000 (10:26 +0200)] 
Removed round brackets from documentation as suggested in merge request.

8 years agoDeleted a comment.
Karel Slany [Tue, 26 Jul 2016 08:12:22 +0000 (10:12 +0200)] 
Deleted a comment.

8 years agoRemoved a comment.
Karel Slany [Mon, 25 Jul 2016 14:26:38 +0000 (16:26 +0200)] 
Removed a comment.

8 years agoAdded a more explanatory comment.
Karel Slany [Mon, 25 Jul 2016 14:13:58 +0000 (16:13 +0200)] 
Added a more explanatory comment.

8 years agoAdded checks when accessing algorithm structures in array.
Karel Slany [Mon, 25 Jul 2016 13:26:47 +0000 (15:26 +0200)] 
Added checks when accessing algorithm structures in array.

8 years agoUsing https://www.gnu.org/licenses/ in file headers.
Karel Slany [Mon, 25 Jul 2016 11:52:43 +0000 (13:52 +0200)] 
Using https://www.gnu.org/licenses/ in file headers.

8 years agoFunction kr_resolve_query_finalize() returns error code.
Karel Slany [Mon, 25 Jul 2016 11:33:45 +0000 (13:33 +0200)] 
Function kr_resolve_query_finalize() returns error code.

8 years agoAdded src parameter in kr_resolve_query_finalize().
Karel Slany [Mon, 25 Jul 2016 11:24:52 +0000 (13:24 +0200)] 
Added src parameter in kr_resolve_query_finalize().

8 years agoRemoved assertion.
Karel Slany [Mon, 25 Jul 2016 10:42:50 +0000 (12:42 +0200)] 
Removed assertion.

8 years agoAdded a comment.
Karel Slany [Mon, 25 Jul 2016 10:38:26 +0000 (12:38 +0200)] 
Added a comment.

8 years agoAdded a check.
Karel Slany [Mon, 25 Jul 2016 10:31:53 +0000 (12:31 +0200)] 
Added a check.

8 years agoReplaced one assertion check.
Karel Slany [Mon, 25 Jul 2016 09:28:43 +0000 (11:28 +0200)] 
Replaced one assertion check.

8 years agoAdded tests for cookie length.
Karel Slany [Mon, 25 Jul 2016 09:20:27 +0000 (11:20 +0200)] 
Added tests for cookie length.

8 years agoRemoved some assignments.
Karel Slany [Mon, 25 Jul 2016 09:07:22 +0000 (11:07 +0200)] 
Removed some assignments.

8 years agoRemoved some asserts.
Karel Slany [Mon, 25 Jul 2016 09:02:52 +0000 (11:02 +0200)] 
Removed some asserts.

8 years agoExplicitly deleting cookies from responses when server functionality disabled.
Karel Slany [Fri, 22 Jul 2016 12:30:16 +0000 (14:30 +0200)] 
Explicitly deleting cookies from responses when server functionality disabled.

8 years agoMinor code enhancement.
Karel Slany [Fri, 22 Jul 2016 12:29:33 +0000 (14:29 +0200)] 
Minor code enhancement.

8 years agoReserving space for cookies also if only server cookie functionality enabled.
Karel Slany [Fri, 22 Jul 2016 12:27:25 +0000 (14:27 +0200)] 
Reserving space for cookies also if only server cookie functionality enabled.

8 years agoServed cookie queries are handled inside cookie module.
Karel Slany [Thu, 21 Jul 2016 10:13:19 +0000 (12:13 +0200)] 
Served cookie queries are handled inside cookie module.

8 years agoRemoved unnecessary square brackets from cookie module documentation.
Karel Slany [Wed, 20 Jul 2016 14:22:55 +0000 (16:22 +0200)] 
Removed unnecessary square brackets from cookie module documentation.

8 years agoPutting cookie option into request before packet is finalised.
Karel Slany [Wed, 20 Jul 2016 13:21:01 +0000 (15:21 +0200)] 
Putting cookie option into request before packet is finalised.

8 years agoDeleting cookies from EDNS OPTs before adding new ones.
Karel Slany [Wed, 20 Jul 2016 12:57:45 +0000 (14:57 +0200)] 
Deleting cookies from EDNS OPTs before adding new ones.

8 years agoMinor refactoring.
Karel Slany [Wed, 20 Jul 2016 12:27:58 +0000 (14:27 +0200)] 
Minor refactoring.

8 years agoAdded library callback for finalising outbound queries.
Karel Slany [Mon, 18 Jul 2016 15:38:36 +0000 (17:38 +0200)] 
Added library callback for finalising outbound queries.

8 years agoFixed memory leak when passing multiple cookie secrets in a single JSON string.
Karel Slany [Fri, 15 Jul 2016 13:37:47 +0000 (15:37 +0200)] 
Fixed memory leak when passing multiple cookie secrets in a single JSON string.

8 years agoFixed comparison of signed and unsigned type.
Karel Slany [Thu, 14 Jul 2016 14:57:19 +0000 (16:57 +0200)] 
Fixed comparison of signed and unsigned type.

8 years agoUsing new functions from libknot to check cookie algorithms input sanity.
Karel Slany [Thu, 14 Jul 2016 14:46:56 +0000 (16:46 +0200)] 
Using new functions from libknot to check cookie algorithms input sanity.

8 years agoChanged API of SHA256-based cookie algorithms to match recent libknot changes.
Karel Slany [Thu, 14 Jul 2016 14:40:11 +0000 (16:40 +0200)] 
Changed API of SHA256-based cookie algorithms to match recent libknot changes.

8 years agoRemoved input/output parameter from kr_nonce_write_wire().
Karel Slany [Thu, 14 Jul 2016 14:04:37 +0000 (16:04 +0200)] 
Removed input/output parameter from kr_nonce_write_wire().

8 years agoTied LRU_COOKIES_SIZE to LRU_RTT_SIZE.
Karel Slany [Thu, 14 Jul 2016 09:40:03 +0000 (11:40 +0200)] 
Tied LRU_COOKIES_SIZE to LRU_RTT_SIZE.

8 years agoDeleted unused code.
Karel Slany [Wed, 13 Jul 2016 13:09:40 +0000 (15:09 +0200)] 
Deleted unused code.