Commit Graph

104 Commits

Author SHA1 Message Date
Shreyas Zare
814d1c2fd2 DnsServer: updated resolver retries default value to 2. Updated RecursiveResolveAsync() to enable async NS resolution feature when doing recursive resolution. 2022-07-03 15:29:35 +05:30
Shreyas Zare
afbbc57da4 DnsServer: updated ProcessDoHRequestAsunc() to remove trailing period from qname for HttpsJson transport protocol. Updated RecursiveResolveAsync() to handle IOException to show correct extended dns error. 2022-05-28 12:21:46 +05:30
Shreyas Zare
9ea77190d3 DnsServer: updated ProcessUdpRequestAsync() to add OPT to truncation response when request has OPT. 2022-05-14 18:52:21 +05:30
Shreyas Zare
17edbced83 DnsServer: updated ProcessZoneTransferQueryAsync() to implement AllowBothZoneAndSpecifiedNameServers option. 2022-05-14 13:42:14 +05:30
Shreyas Zare
33eb5d2266 DnsServer: updated PrepareRecursiveResolveResponse() to handle ANY response correctly. 2022-05-08 15:31:54 +05:30
Shreyas Zare
a879af9caa DnsServer: updated PrepareRecursiveResolveResponse() & RemoveOPTFromAdditional() to remove DNSSEC records when not requested. Updated CacheMaintenanceTimerCallback() to force garbage collection after removing cache records to quickly free memory. 2022-04-30 12:21:54 +05:30
Shreyas Zare
317310579c DnsServer: updated ProcessANAMEAsync() to set last used on value when returning authority records for ANAME response. 2022-04-24 17:28:17 +05:30
Shreyas Zare
32169d9313 DnsServer: Updated RecursiveResolveAsync() forwarder implementation to use ConditionalForwardingZoneCut option to trim CNAME records in response to allow the DNS server to query each CNAME separately for cases when conditional forwarder is configured for a CNAME domain. 2022-04-23 17:57:46 +05:30
Shreyas Zare
2e3b153a03 DnsServer: updated ProcessBlockedQuery() to handle other type requests correctly. Updated RecursiveResolveAsync() to handle exceptions to add exdended dns errors to failure responses when forwarder is configured. 2022-04-17 16:41:12 +05:30
Shreyas Zare
648a28cc2e DnsServer: Updated ProcessANAMEAsync() to correctly handle NO DATA and error responses. 2022-03-29 19:27:58 +05:30
Shreyas Zare
312cfb11ec DnsServer: updated min thread count based on load test. 2022-03-12 19:54:45 +05:30
Shreyas Zare
39920870ba DnsServer: Updated default settings. Updated PreProcessQueryAsync() and ProcessAuthoritativeQueryAsync() to handle dns app errors. Implemented conditional forwarding zone support for controlling DNSSEC validation for this-server option. Added validation for properties. 2022-03-12 15:40:06 +05:30
Shreyas Zare
fa417216f3 major code refactoring done. 2022-03-06 17:24:41 +05:30
Shreyas Zare
fc422563a3 DnsServer: updated DnssecValidation property to clear cache when switching on DNSSEC validation to remove all unvalidated cached records. 2022-03-06 16:09:40 +05:30
Shreyas Zare
cc2e546678 DnsServer: fixed minor issue and code refactoring changes done. 2022-02-19 13:09:38 +05:30
Shreyas Zare
428ae224ca DnsServer: implemented DNSSEC. Implemented new conditional forwarder changes. 2022-01-23 17:58:38 +05:30
Shreyas Zare
35a22bae12 DnsServer: minor refactoring done in PostProcessQuery(). 2021-11-06 13:32:35 +05:30
Shreyas Zare
13791e1d60 DnsServer: implemented EDNS support. 2021-10-30 12:18:32 +05:30
Shreyas Zare
0254f9f96c DnsServer: Added logs in ProcessZoneTransferQueryAsync() to give reasons for why zone transfer was refused. Fixed cache poisoning issue that can be done via conditional forwarder by adding sanitization checks. 2021-10-16 14:55:44 +05:30
Shreyas Zare
2aae0f6896 DnsServer: refactored code to move parsing error checks into PreProcessQueryAsync() and to allow request controller dns apps to inspect the requests to allow droping them. Updated ProcessQueryAsync() to not return FormatError when a request received has response flag set to avoid loops. 2021-10-09 16:51:20 +05:30
Shreyas Zare
3abf126b8d DnsServer: implemented allow txt blocking report option. Minor changes done. 2021-09-25 13:43:14 +05:30
Shreyas Zare
fbb6716927 minor changes 2021-09-18 19:03:08 +05:30
Shreyas Zare
47d888de7a DnsServer: minor changes done 2021-09-18 11:55:08 +05:30
Shreyas Zare
f51bc6f869 DnsServer: Updated cache timer interval to 5 mins to remove expired records quickly. Code refactoring done. Implemented new DNS app interfaces. 2021-09-11 15:29:56 +05:30
Shreyas Zare
137c32e545 DnsServer: implemented NS revalidation options. 2021-08-21 12:15:52 +05:30
Shreyas Zare
24eba0c080 DnsServer: refactored ProcessDoHRequestAsync() to implement correct sequence for qpm rate limit check for different cases. 2021-08-15 19:38:35 +05:30
Shreyas Zare
df76122125 DnsServer: checking qpm rate limit after reading real ip address for cases when DoH is behind an reverse proxy. 2021-08-15 18:18:48 +05:30
Shreyas Zare
8a21c84cf2 DnsServer: implemented TsigKey and tsig implementation changes. Fixed minor issue in ProcessCNAMEAsync() preventing the response from having expected authority records. 2021-08-14 11:45:26 +05:30
Shreyas Zare
2ce21cc7bd DnsServer: implemented tsig support changes. Implemented tsig support for all queries. Updated query rate limiting feature to use client subnet for droping requests. Added option to limit error responses independently. Removed auto client ip blocking feature since it was not much effective. 2021-08-07 12:42:02 +05:30
Shreyas Zare
a48a60f1c0 DnsServer: implemented tsig support for zone transfer. 2021-07-31 19:02:48 +05:30
Shreyas Zare
b5c9f1054c DnsServer: set max stack count to 16 to resolve badly configured zones. Implemented IXFR support. Minor code refactoring done. 2021-07-10 13:35:23 +05:30
Shreyas Zare
dd09a9f477 DnsServer: refactored the DirectQueryAsync() method to return the ProcessQueryAsync() task directly. Minor refactoring done. 2021-06-19 14:15:52 +05:30
Shreyas Zare
20b4a32eab DnsServer: updated ProcessDoHRequestAsync() to limit request max content length to 512 bytes. 2021-06-12 13:50:46 +05:30
Shreyas Zare
3b72fa06a0 DnsServer: redirecting web browser request to /dns-query to the html info page. 2021-06-05 19:08:59 +05:30
Shreyas Zare
fd41f8de63 DnsServer: implemented enable blocking feature. 2021-05-30 16:39:54 +05:30
Shreyas Zare
71d5918bc4 DnsServer: Implemented blocking type feature with custom address support. Updated QPM limit feature with refused response client blocking feature. Minor corrections and refactoring done. 2021-05-29 13:11:34 +05:30
Shreyas Zare
8aaa9d5c96 DnsServer: implemented queries per minute limit feature. Updated ProcessZoneTransferQueryAsync() code to implemented new zone transfer options. 2021-05-23 18:05:17 +05:30
Shreyas Zare
3c15e96ec7 DnsServer: Implemented IDnsClient interface for direct querying. Implemented recursion ACL options. 2021-05-16 16:52:46 +05:30
Shreyas Zare
53fc761903 DnsServer: returning ServerFailure when ANAME record fails to resolve any address. 2021-05-09 18:38:21 +05:30
Shreyas Zare
1d838af920 minor code refactoring done. 2021-05-08 16:28:02 +05:30
Shreyas Zare
776b77a165 DnsServer: updated QueryCache() method with correct condition checks for cache response. Removed reset expiry code for stale records since it was moved to cache zone manager. 2021-05-08 16:18:34 +05:30
Shreyas Zare
eaa16f93d9 DnsServer: added missing response type tags to reflect correctly in stats. Forcing recursive resolution for delegation. Code refactoring done. 2021-04-24 13:19:29 +05:30
Shreyas Zare
8825f08e76 DnsServer: updated code for resetting expiry for stale records and moved it into QueryCache() method to allow reseting to occur when the first client's request expires to quickly serve stale for other clients even before the background recursive resolution process completed. 2021-04-17 14:22:09 +05:30
Shreyas Zare
eb1005697e DnsServer: fixed bug in ProcessBlockedQuery() caused by missing else condition check which would cause the server to return Refused response when block zone is not empty and block list zone is empty. 2021-04-11 20:43:34 +05:30
Shreyas Zare
eeac4ec5a6 DnsServer: implemented UseNxDomainForBlocking option. 2021-04-11 17:42:05 +05:30
Shreyas Zare
f5da78c579 DnsServer: reusing memory stream in ReadUdpRequestAsync(). Updated ProcessAPPAsync() to return server failure when app or class path is not found. Updated CachePrefetchRefreshTimerCallback() and RefreshCacheAsync() to prevent double refresh attempts. Updated CachePrefetchRefreshTimerCallback() to use threadpool tasks for better concurrency. Updated CacheMaintenanceTimerCallback() to reset due time in finally for next interval callback and using sync lock. Fixed bug in UpdateThisServer() logic. 2021-04-10 13:58:48 +05:30
Shreyas Zare
a6f839d68c DnsServer: updated cache maintenance timers to 15 mins. Updated sequence of quering for allowed and blocked zones since the old sequence was not optimal for the current state of code. Added RCODE check in RecursiveResolveAsync() before returning the response so that serve stale works when failure response is received. 2021-04-03 12:47:45 +05:30
Shreyas Zare
c79512886c DnsServer: updated ANY request handling in ProcessQueryAsync(). 2021-03-29 15:28:08 +05:30
Shreyas Zare
557df24ade DnsServer: minor optimizations done. 2021-03-27 20:16:15 +05:30
Shreyas Zare
1378845b2c DnsServer: ignoring incomplete udp requests in ReadUdpRequestAsync(). Updated ProcessANAMEAsync() to allow supporting multiple ANAME record processing for a domain concurrently. Minor code refactoring done. 2021-03-27 16:42:38 +05:30