a recursive dns resolver
1[server] 2# Address to bind tcp/udp to. 3address = "127.0.0.1" 4# Port to bind tcp/udp to. 5port = 2053 6# Location of root hints file. 7root_hints_file = "/etc/dns/root.hints" 8 9[logging] 10# Logging output: "stdout" or "file". 11output = "stdout" 12# This is used only if logging.output is "file". 13file_path = "/var/log/alky.log" 14 15[ratelimit] 16# rate: The steady-state rate of requests allowed (r in GCRA) 17# Defines how many requests are allowed per second in normal conditions 18# Type: Integer 19rate = 250 20 21# burst: Maximum number of requests allowed to exceed the steady-state rate temporarily 22# Allows for short bursts of traffic above the defined rate 23# Type: Integer 24burst = 500 25 26# window: The interval (in seconds) at which the rate limit is checked and potentially reset 27# Implements a sliding window rate limit mechanism 28# Type: Integer 29window = 3 30 31# expiration_time: Duration (in seconds) for keeping a client's rate limit data in memory 32# After this period of inactivity, a client's rate limit data is removed to free up memory 33# Type: Integer 34expiration_time = 300 35 36[metrics] 37# ClickHouse connection string 38dsn = "clickhouse://default:clickhouse@localhost:9000/default" 39 40# Number of metricsto buffer before sending to ClickHouse 41batch_size = 1000 42 43# How often to flush metrics to ClickHouse 44flush_interval = "10s" 45 46# How long to retain metrics data 47# This uses time.ParseDuration semantics 48retention_period = "720h" 49 50[cache] 51# The maximum number of items to store in the cache. 52max_items = 5000 53 54# How often the cache will evict items. 55cleanup_interval = "5m" 56 57[advanced] 58# Timeout (in milliseconds) for outgoing queries before being cancelled. 59query_timeout = 100