-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathAcrylicConfiguration.Template.ini
490 lines (490 loc) · 26.8 KB
/
AcrylicConfiguration.Template.ini
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
;
; IF YOU MAKE ANY CHANGES TO THIS FILE YOU HAVE TO RESTART THE ACRYLIC DNS PROXY SERVICE OR CONSOLE IN ORDER TO SEE THEIR EFFECTS.
;
[GlobalSection]
;
; The IP address of your primary DNS server. You can use an IPv4 address in quad-dotted notation or an IPv6 address in colon-separated groups.
;
; Upon installation it points to the primary Google Public DNS server.
;
PrimaryServerAddress=8.8.8.8
;
; The TCP/UDP port your primary DNS server is supposed to be listening to. The default value of 53 is the standard port for DNS resolution. You should change this value only if you are using a non standard DNS server or a protocol different than UDP/TCP (e.g. the standard port for the DNS-over-HTTPS protocol is 443).
;
PrimaryServerPort=53
;
; The protocol to use with your primary DNS server.
;
; The currently supported protocols are UDP, TCP, SOCKS5 and DOH (DNS-over-HTTPS).
;
; When using the UDP protocol, Acrylic forwards DNS requests using UDP or TCP, in accordance with RFC 5625.
;
; When using the TCP protocol, Acrylic forwards DNS requests using TCP only. Since establishing a TCP connection for every DNS request requires a significant amount of time and the number of TCP connections that can be opened in a unit of time is limited by the Operating System, this protocol should be used only in situations where using the UDP protocol isn't possible for some reason.
;
; When using the SOCKS5 protocol, Acrylic forwards DNS requests to your primary DNS server using a SOCKS 5 proxy as an intermediary, in accordance with RFC 1928. Currently, only the NO AUTHENTICATION REQUIRED method for SOCKS 5 is supported.
;
; When using the DOH protocol, Acrylic forwards DNS requests to your primary DNS server using DNS-over-HTTPS, a protocol for performing DNS resolution via HTTPS and thus increase user privacy and security by preventing eavesdropping and manipulation of DNS data by man-in-the-middle attacks. Be aware though that when using DNS-over-HTTPS, the encryption algorithms (e.g. the TLS version) your Operating System can use must match at least one your primary DNS server accepts, and this is not always the case depending on the combination of your Operating System version and the chosen DNS server. For example, old Windows versions can have a hard time establishing an HTTPS connection with DNS servers requiring TLS 1.1 or 1.2, and thus may require the installation of specific updates.
;
PrimaryServerProtocol=UDP
;
; When using the DNS-over-HTTPS protocol, you must specify below the query path of your primary DNS server.
;
PrimaryServerDoHProtocolPath=
;
; When using the DNS-over-HTTPS protocol, you must specify below the host name of your primary DNS server.
;
PrimaryServerDoHProtocolHost=
;
; When using the DNS-over-HTTPS protocol, you can specify below whether Acrylic should connect to the internet using your system proxy configuration (System) or directly without using a proxy (Direct).
;
PrimaryServerDoHProtocolConnectionType=System
;
; When using the DNS-over-HTTPS protocol, you can specify below whether or not Acrylic is allowed to reuse existing TCP connections when sending requests to your primary DNS server. Since establishing a TCP connection for every DNS request requires a significant amount of time and the number of TCP connections that can be opened in a unit of time is limited by the Operating System, reusing existing TCP connections is an effective way to improve the performance of the DNS-over-HTTPS protocol.
;
PrimaryServerDoHProtocolReuseConnections=Yes
;
; When using the DNS-over-HTTPS protocol, you can specify below whether or not Acrylic should use the WinHttp library, instead of the WinINet library, when sending requests to your primary DNS server. For Acrylic's purposes WinHttp is more efficient and therefore preferable, but having the possibility to choose between the two at the DNS server level can help with some compatibility issues that may arise.
;
PrimaryServerDoHProtocolUseWinHttp=Yes
;
; Here is a known good DNS-over-HTTPS configuration for the Quad9 Public DNS server:
;
; PrimaryServerAddress=9.9.9.9
; PrimaryServerPort=443
; PrimaryServerProtocol=DOH
; PrimaryServerDoHProtocolPath=dns-query
; PrimaryServerDoHProtocolHost=dns.quad9.net
;
; Here is a known good DNS-over-HTTPS configuration for the Google Public DNS server:
;
; PrimaryServerAddress=8.8.8.8
; PrimaryServerPort=443
; PrimaryServerProtocol=DOH
; PrimaryServerDoHProtocolPath=dns-query
; PrimaryServerDoHProtocolHost=dns.google
;
; Here is a known good DNS-over-HTTPS configuration for the CloudFlare Public DNS server:
;
; PrimaryServerAddress=1.1.1.1
; PrimaryServerPort=443
; PrimaryServerProtocol=DOH
; PrimaryServerDoHProtocolPath=dns-query
; PrimaryServerDoHProtocolHost=cloudflare-dns.com
;
; When using the SOCKS5 protocol, you can specify below the IP address of the SOCKS 5 proxy server to use as an intermediary to your primary DNS server. You can use an IPv4 address in quad-dotted notation or an IPv6 address in colon-separated groups.
;
PrimaryServerSocks5ProtocolProxyAddress=
;
; When using the SOCKS5 protocol, you can specify below the TCP port the SOCKS 5 proxy server described above is supposed to be listening to.
;
PrimaryServerSocks5ProtocolProxyPort=
;
; The domain name affinity mask is a list of semicolon separated values or wildcards that allows to restrict which DNS server particular domain names get forwarded to.
;
; In the following example only the requests for domain names ending with ".com" get forwarded to the primary DNS server:
;
; PrimaryServerDomainNameAffinityMask=*.com
;
; In the following example only the requests for domain names ending with ".com" and ".org" get forwarded to the primary DNS server:
;
; PrimaryServerDomainNameAffinityMask=*.com;*.org
;
; Negations can be expressed by prepending a caret (^) to the value or wildcard.
;
; In the following example only the requests for domain names NOT ending with ".com" or ".org" get forwarded to the primary DNS server (the last catch-all value is particularly important in this case because, if missing, no request would ever be forwarded to the primary DNS server):
;
; PrimaryServerDomainNameAffinityMask=^*.com;^*.org;*
;
; Rules for domain name affinity masks are evaluated according to the order in which they are written, with the first positive rule that matches and the first negative rule that doesn't match determining, respectively, a positive result (i.e. the DNS query is forwarded to the DNS server) or a negative result (i.e. the DNS query is NOT forwarded to the DNS server). If none of the defined rules match then a negative result is determined.
;
PrimaryServerDomainNameAffinityMask=
;
; The query type affinity mask is list of semicolon separated values that allows to restrict which DNS server particular query types get forwarded to.
;
; In the following example only the requests for A, AAAA, MX and SRV query types get forwarded to the primary DNS server:
;
; PrimaryServerQueryTypeAffinityMask=A;AAAA;MX;SRV
;
; All DNS query types are supported, either explicitly using A, AAAA, ANY, CNAME, HTTPS, MX, NS, PTR, SOA, SRV and TXT or implicitly using their decimal values.
;
PrimaryServerQueryTypeAffinityMask=
;
; You can specify below whether to ignore failure responses coming from the primary DNS server.
;
IgnoreFailureResponsesFromPrimaryServer=No
;
; You can specify below whether to ignore negative responses coming from the primary DNS server.
;
IgnoreNegativeResponsesFromPrimaryServer=No
;
; The configuration of your secondary DNS server.
; For more details refer to the primary DNS server configuration comments.
;
; Upon installation it points to the secondary Google Public DNS server.
;
SecondaryServerAddress=8.8.4.4
SecondaryServerPort=53
SecondaryServerProtocol=UDP
SecondaryServerDoHProtocolPath=
SecondaryServerDoHProtocolHost=
SecondaryServerDoHProtocolConnectionType=System
SecondaryServerDoHProtocolReuseConnections=Yes
SecondaryServerDoHProtocolUseWinHttp=Yes
SecondaryServerSocks5ProtocolProxyAddress=
SecondaryServerSocks5ProtocolProxyPort=
SecondaryServerDomainNameAffinityMask=
SecondaryServerQueryTypeAffinityMask=
IgnoreFailureResponsesFromSecondaryServer=No
IgnoreNegativeResponsesFromSecondaryServer=No
;
; The configuration of your tertiary DNS server.
; For more details refer to the primary DNS server configuration comments.
;
TertiaryServerAddress=
TertiaryServerPort=53
TertiaryServerProtocol=UDP
TertiaryServerDoHProtocolPath=
TertiaryServerDoHProtocolHost=
TertiaryServerDoHProtocolConnectionType=System
TertiaryServerDoHProtocolReuseConnections=Yes
TertiaryServerDoHProtocolUseWinHttp=Yes
TertiaryServerSocks5ProtocolProxyAddress=
TertiaryServerSocks5ProtocolProxyPort=
TertiaryServerDomainNameAffinityMask=
TertiaryServerQueryTypeAffinityMask=
IgnoreFailureResponsesFromTertiaryServer=No
IgnoreNegativeResponsesFromTertiaryServer=No
;
; The configuration of your quaternary DNS server.
; For more details refer to the primary DNS server configuration comments.
;
QuaternaryServerAddress=
QuaternaryServerPort=53
QuaternaryServerProtocol=UDP
QuaternaryServerDoHProtocolPath=
QuaternaryServerDoHProtocolHost=
QuaternaryServerDoHProtocolConnectionType=System
QuaternaryServerDoHProtocolReuseConnections=Yes
QuaternaryServerDoHProtocolUseWinHttp=Yes
QuaternaryServerSocks5ProtocolProxyAddress=
QuaternaryServerSocks5ProtocolProxyPort=
QuaternaryServerDomainNameAffinityMask=
QuaternaryServerQueryTypeAffinityMask=
IgnoreFailureResponsesFromQuaternaryServer=No
IgnoreNegativeResponsesFromQuaternaryServer=No
;
; The configuration of your quinary DNS server.
; For more details refer to the primary DNS server configuration comments.
;
QuinaryServerAddress=
QuinaryServerPort=53
QuinaryServerProtocol=UDP
QuinaryServerDoHProtocolPath=
QuinaryServerDoHProtocolHost=
QuinaryServerDoHProtocolConnectionType=System
QuinaryServerDoHProtocolReuseConnections=Yes
QuinaryServerDoHProtocolUseWinHttp=Yes
QuinaryServerSocks5ProtocolProxyAddress=
QuinaryServerSocks5ProtocolProxyPort=
QuinaryServerDomainNameAffinityMask=
QuinaryServerQueryTypeAffinityMask=
IgnoreFailureResponsesFromQuinaryServer=No
IgnoreNegativeResponsesFromQuinaryServer=No
;
; The configuration of your senary DNS server.
; For more details refer to the primary DNS server configuration comments.
;
SenaryServerAddress=
SenaryServerPort=53
SenaryServerProtocol=UDP
SenaryServerDoHProtocolPath=
SenaryServerDoHProtocolHost=
SenaryServerDoHProtocolConnectionType=System
SenaryServerDoHProtocolReuseConnections=Yes
SenaryServerDoHProtocolUseWinHttp=Yes
SenaryServerSocks5ProtocolProxyAddress=
SenaryServerSocks5ProtocolProxyPort=
SenaryServerDomainNameAffinityMask=
SenaryServerQueryTypeAffinityMask=
IgnoreFailureResponsesFromSenaryServer=No
IgnoreNegativeResponsesFromSenaryServer=No
;
; The configuration of your septenary DNS server.
; For more details refer to the primary DNS server configuration comments.
;
SeptenaryServerAddress=
SeptenaryServerPort=53
SeptenaryServerProtocol=UDP
SeptenaryServerDoHProtocolPath=
SeptenaryServerDoHProtocolHost=
SeptenaryServerDoHProtocolConnectionType=System
SeptenaryServerDoHProtocolReuseConnections=Yes
SeptenaryServerDoHProtocolUseWinHttp=Yes
SeptenaryServerSocks5ProtocolProxyAddress=
SeptenaryServerSocks5ProtocolProxyPort=
SeptenaryServerDomainNameAffinityMask=
SeptenaryServerQueryTypeAffinityMask=
IgnoreFailureResponsesFromSeptenaryServer=No
IgnoreNegativeResponsesFromSeptenaryServer=No
;
; The configuration of your octonary DNS server.
; For more details refer to the primary DNS server configuration comments.
;
OctonaryServerAddress=
OctonaryServerPort=53
OctonaryServerProtocol=UDP
OctonaryServerDoHProtocolPath=
OctonaryServerDoHProtocolHost=
OctonaryServerDoHProtocolConnectionType=System
OctonaryServerDoHProtocolReuseConnections=Yes
OctonaryServerDoHProtocolUseWinHttp=Yes
OctonaryServerSocks5ProtocolProxyAddress=
OctonaryServerSocks5ProtocolProxyPort=
OctonaryServerDomainNameAffinityMask=
OctonaryServerQueryTypeAffinityMask=
IgnoreFailureResponsesFromOctonaryServer=No
IgnoreNegativeResponsesFromOctonaryServer=No
;
; The configuration of your nonary DNS server.
; For more details refer to the primary DNS server configuration comments.
;
NonaryServerAddress=
NonaryServerPort=53
NonaryServerProtocol=UDP
NonaryServerDoHProtocolPath=
NonaryServerDoHProtocolHost=
NonaryServerDoHProtocolConnectionType=System
NonaryServerDoHProtocolReuseConnections=Yes
NonaryServerDoHProtocolUseWinHttp=Yes
NonaryServerSocks5ProtocolProxyAddress=
NonaryServerSocks5ProtocolProxyPort=
NonaryServerDomainNameAffinityMask=
NonaryServerQueryTypeAffinityMask=
IgnoreFailureResponsesFromNonaryServer=No
IgnoreNegativeResponsesFromNonaryServer=No
;
; The configuration of your denary DNS server.
; For more details refer to the primary DNS server configuration comments.
;
DenaryServerAddress=
DenaryServerPort=53
DenaryServerProtocol=UDP
DenaryServerDoHProtocolPath=
DenaryServerDoHProtocolHost=
DenaryServerDoHProtocolConnectionType=System
DenaryServerDoHProtocolReuseConnections=Yes
DenaryServerDoHProtocolUseWinHttp=Yes
DenaryServerSocks5ProtocolProxyAddress=
DenaryServerSocks5ProtocolProxyPort=
DenaryServerDomainNameAffinityMask=
DenaryServerQueryTypeAffinityMask=
IgnoreFailureResponsesFromDenaryServer=No
IgnoreNegativeResponsesFromDenaryServer=No
;
; You can specify below whether Acrylic should sinkhole IPv6 lookups (also known as DNS requests of AAAA type) or not.
;
SinkholeIPv6Lookups=No
;
; You can direct Acrylic to forward reverse lookups (also known as DNS requests of PTR type) for private IP ranges to your DNS servers by choosing Yes instead of No. Aside from protecting you and your DNS servers from the traffic of these usually needless queries, choosing No is usually a better choice also to avoid leaking information about your private address space.
;
ForwardPrivateReverseLookups=No
;
; THE ACRYLIC DNS PROXY CACHING MECHANISM EXPLAINED
;
; When Acrylic receives a DNS request from a client the hosts cache (an in-memory static cache derived from the AcrylicHosts.txt file) is searched first. If nothing is found there the request is then searched in the address cache (an in-memory dynamic cache backed up by the AcrylicCache.dat file). At this point one of the following three cases can happen:
;
; [1] The request is not found in the address cache or its corresponding response is older than "AddressCacheScavengingTime" minutes: In this case the original request is forwarded to all of the configured DNS servers simultaneously. The response to the client is delayed until the first one of the DNS servers comes out with a valid response. All the other responses coming from the other DNS servers will be discarded.
;
; [2] The request is found in the address cache and its corresponding response is older than "AddressCacheSilentUpdateTime" minutes but not older than "AddressCacheScavengingTime minutes": In this case the response to the client is sent immediately from the address cache and the original request is also forwarded to all of the configured DNS servers simultaneously like in the previous case. The first valid response coming from one of the DNS servers will be used to silently update the address cache, while all the other responses coming from the other DNS servers will be discarded.
;
; [3] The request is found in the address cache and its corresponding response is younger than "AddressCacheSilentUpdateTime" minutes: In this case the response to the client is sent immediately from the address cache and no network activity with any of the configured DNS servers will occur.
;
; Be aware that to minimize disk activity the address cache is flushed from memory to disk only when Acrylic is stopped or the system is shut down.
;
; And now about the caching parameters:
;
; The time to live (in minutes) of a failure response in the address cache.
;
AddressCacheFailureTime=0
;
; The time to live (in minutes) of a negative response in the address cache.
;
AddressCacheNegativeTime=60
;
; The time to live (in minutes) of a positive response in the address cache.
;
AddressCacheScavengingTime=5760
;
; The time (in minutes) elapsed which an item in the address cache must be silently updated should a request occur.
;
AddressCacheSilentUpdateTime=1440
;
; The time (in minutes) elapsed which the address cache is pruned of obsolete items. A value of 0 indicates that no pruning of the address cache is ever done.
;
AddressCachePeriodicPruningTime=720
;
; The address cache domain name affinity mask is a list of semicolon separated values or wildcards that allows to restrict DNS responses for which domain names are to be cached in the address cache.
;
AddressCacheDomainNameAffinityMask=^dns.msftncsi.com;^ipv6.msftconnecttest.com;^ipv6.msftncsi.com;^www.msftconnecttest.com;^www.msftncsi.com;*
;
; The address cache query type affinity mask is list of semicolon separated values that allows to restrict DNS responses for which query types are to be cached in the address cache.
;
; All DNS query types are supported, either explicitly using A, AAAA, ANY, CNAME, HTTPS, MX, NS, PTR, SOA, SRV and TXT or implicitly using their decimal values.
;
AddressCacheQueryTypeAffinityMask=A;AAAA;CNAME;HTTPS;MX;NS;PTR;SOA;SRV;TXT
;
; You can disable any disk activity related to the address cache by choosing Yes instead of No. If you do that Acrylic will use the address cache only in memory.
;
AddressCacheInMemoryOnly=No
;
; You can disable the address cache altogether by choosing Yes instead of No. If you do that Acrylic will work as a forwarding-only DNS proxy.
;
AddressCacheDisabled=No
;
; The local IPv4 address to which Acrylic binds. A value of 0.0.0.0 indicates that Acrylic should bind to all available addresses and as such it will be able to receive DNS requests coming from all of your network interfaces. A value corresponding to the IPv4 address of one of your network interfaces instead will allow Acrylic to receive DNS requests only from that specific network interface. An empty value instead indicates that no binding should occur on IPv4.
;
LocalIPv4BindingAddress=0.0.0.0
;
; The local UDPv4 port to which Acrylic binds. The default value of 53 is the standard port for DNS resolution. You should change this value only if you are using a non standard DNS client.
;
LocalIPv4BindingPort=53
;
; The local IPv6 address to which Acrylic binds. A value of 0:0:0:0:0:0:0:0 indicates that Acrylic should bind to all available addresses and as such it will be able to receive DNS requests coming from all of your network interfaces. A value corresponding to the IPv6 address of one of your network interfaces instead will allow Acrylic to receive DNS requests only from that specific network interface. An empty value instead indicates that no binding should occur on IPv6.
;
LocalIPv6BindingAddress=0:0:0:0:0:0:0:0
;
; The local UDPv6 port to which Acrylic binds. The default value of 53 is the standard port for DNS resolution. You should change this value only if you are using a non standard DNS client.
;
LocalIPv6BindingPort=53
;
; On Windows versions prior to Windows Vista or Windows Server 2008 the IPv6 protocol is usually not installed by default. For Windows 2000 there is a Microsoft IPv6 Technology Preview package available for download while for Windows XP the IPv6 protocol must be added to the list of available network protocols in your network connection Properties window.
;
; If you want to enable local IPv6 binding for Acrylic on Windows versions prior to Windows Vista or Windows Server 2008 you can choose Yes below after having installed all the necessary prerequisites.
;
LocalIPv6BindingEnabledOnWindowsVersionsPriorToWindowsVistaOrWindowsServer2008=No
;
; The time to live (in seconds) set for DNS responses generated by Acrylic (e.g. the ones generated from mappings contained in the AcrylicHosts.txt file).
;
GeneratedResponseTimeToLive=300
;
; The maximum time (in milliseconds) to wait for a response coming from a DNS server configured with the UDP protocol.
;
ServerUdpProtocolResponseTimeout=3989
;
; The maximum time (in milliseconds) to wait for the first byte of a response coming from a DNS server configured with the TCP protocol.
;
ServerTcpProtocolResponseTimeout=3989
;
; The maximum time (in milliseconds) to wait for the other bytes of a response coming from a DNS server configured with the TCP protocol.
;
ServerTcpProtocolInternalTimeout=3989
;
; The maximum times (in milliseconds) to wait for the below events when communicating with an intermediary SOCKS 5 proxy server on behalf of a DNS server configured with the SOCKS5 protocol.
;
ServerSocks5ProtocolProxyFirstByteTimeout=3989
ServerSocks5ProtocolProxyOtherBytesTimeout=3989
ServerSocks5ProtocolProxyRemoteConnectTimeout=3989
ServerSocks5ProtocolProxyRemoteResponseTimeout=3989
;
; The hit log is a text file into which every DNS request and DNS response received by Acrylic can be logged.
;
; It is activated by specifying a non-empty value for the HitLogFileName parameter and contains lines with the following TAB-separated fields:
;
; [01] The timestamp of the DNS request or response in the format YYYY-MM-DD HH:MM:SS.FFF (local time).
; [02] The IP address from where the DNS request originates from or the DNS response is destined to.
; [03] The status code of the DNS request or response:
; X => Resolved directly by Acrylic
; H => Resolved using the hosts cache
; C => Resolved using the address cache
; F => Forwarded to at least one of your DNS servers
; R => Response accepted from one of your DNS servers
; U => Silent update accepted from one of your DNS servers
; [04] The index of the DNS server the DNS response is coming from.
; [05] The time it took (in milliseconds) for the DNS server to produce a DNS response.
; [06] The dissected DNS request or response.
;
; A dissected DNS request looks like:
;
; OC=0;RD=1;QDC=1;Q[1]=x.com;T[1]=A
;
; Where:
;
; [01] OC=0 means that the DNS operation code (OPCODE) is 0. Possible values are: 0 = a standard query (QUERY), 1 = an inverse query (IQUERY), 2 = a server status request (STATUS).
; [02] RD=1 means that the DNS response recursion desired bit (RD) is 1. If RD is set, it directs the name server to pursue the query recursively.
; [03] QDC=1 means that the number of queries (QDCOUNT) contained in the DNS request is 1.
; [04] Q[1]=x.com means that DNS query 1 refers to the "x.com" domain name.
; [05] T[1]=A means that DNS query 1 is of type A (IPv4).
;
; A dissected DNS response looks like:
;
; OC=0;RC=0;TC=0;RD=1;RA=1;AA=0;QDC=1;ANC=2;NSC=0;ARC=0;Q[1]=x.com;T[1]=CNAME;A[1]=x.com>y.com;T[2]=A;A[2]=y.com>1.2.3.4
;
; Where:
;
; [01] OC=0 means that the DNS operation code (OPCODE) is 0. Possible values are: 0 = a standard query (QUERY), 1 = an inverse query (IQUERY), 2 = a server status request (STATUS).
; [02] RC=0 means that the DNS response code (RCODE) is 0. Possible values are: 0 = no error condition, 1 = format error (the name server was unable to interpret the query), 2 = server failure (the name server was unable to process this query due to a problem with the name server), 3 = name error (meaningful only for responses from an authoritative name server, this code signifies that the domain name referenced in the query does not exist), 4 = not implemented (the name server does not support the requested kind of query), 5 = refused (the name server refuses to perform the specified operation for policy reasons).
; [03] TC=0 means that the DNS response truncated bit (TC) is 0. This bit specifies that this message was truncated due to length greater than that permitted on the transmission channel.
; [04] RD=1 means that the DNS response recursion desired bit (RD) is 0. If RD is set, it directs the name server to pursue the query recursively.
; [05] RA=1 means that the DNS response recursion available bit (RA) is 0. This bit denotes whether recursive query support is available in the name server.
; [06] AA=0 means that the DNS response authoritative answer bit (AA) is 0. This bit specifies that the responding name server is an authority for the domain name in question section.
; [07] QDC=1 means that the number of queries (QDCOUNT) contained in the DNS response is 1.
; [08] ANC=2 means that the number of answers (ANCOUNT) contained in the DNS response is 2.
; [09] NSC=0 means that the number of nameserver records (NSCOUNT) contained in the DNS response is 0.
; [10] ARC=0 means that the number of additional records (ARCOUNT) contained in the DNS response is 0.
; [11] Q[1]=x.com means that the DNS query 1 refers to the "x.com" domain name.
; [12] T[1]=CNAME means that the DNS answer 1 is of type CNAME (canonical name).
; [13] A[1]=x.com>y.com means that the DNS answer 1 that refers to the "x.com" domain name is "y.com".
; [14] T[2]=A means that the DNS answer 2 is of type A (IPv4).
; [15] A[2]=y.com>1.2.3.4 means that the DNS answer 2 that refers to the "y.com" domain name is "1.2.3.4".
;
; Regarding the HitLogFileName you can use an absolute or a relative path and a kind of daily log rotation can be achieved by including the %DATE% template within the file name. A complete list of all the templates you can use within the file name is shown below:
;
; %DATE%
; The current date in YYYYMMDD format.
;
; %TEMP%
; The current value of the TEMP environment variable.
;
; %APPDATA%
; The current value of the APPDATA environment variable.
;
; %LOCALAPPDATA%
; The current value of the LOCALAPPDATA environment variable.
;
; Examples:
;
; HitLogFileName=HitLog.%DATE%.txt
; HitLogFileName=%TEMP%\AcrylicDNSProxyHitLog.%DATE%.txt
;
HitLogFileName=
;
; The filter (a combination of one or more of the status codes explained above) which controls what gets written into the hit log.
;
HitLogFileWhat=XHCF
;
; You can enable the full dump (in addition to the DNS format dissections explained above) of DNS requests and responses into the hit log by choosing Yes instead of No.
;
HitLogFullDump=No
;
; The maximum number of hit log items that can be kept in memory before they are flushed to disk. For performance reasons the hit log is flushed to disk only when the hit log memory buffer is full, when Acrylic is stopped or when the system is shutdown, therefore you might experience a delay from when a DNS request or response is received to when its details get written into the hit log.
;
HitLogMaxPendingHits=512
;
; ALLOWING REQUESTS FROM OTHER COMPUTERS
;
; Although for security reasons the default behaviour of Acrylic is to refuse to handle requests coming from other computers, it is possible to specify below in the AllowedAddressesSection a list of IP addresses (wildcards are allowed) from which can come requests that Acrylic is allowed to handle. You have to specify a different key name for each entry, like in the following example:
;
; [AllowedAddressesSection]
; IP1=192.168.45.254 -- A single IP address
; IP2=192.168.44.100 -- Another single IP address
; IP3=192.168.100.* -- All addresses starting with 192.168.100
; IP4=172.16.* -- All addresses starting with 172.16
;
; Although not recommended for security reasons you can also allow Acrylic to handle requests coming from any IP address, like in the following example:
;
; [AllowedAddressesSection]
; IP1=*
;
; You must also create a firewall rule to allow incoming traffic directed to the two Acrylic executables: "AcrylicService.exe" and "AcrylicConsole.exe".
;
[AllowedAddressesSection]