{"repo":"m3047/rkvdns","free":true,"listed":false,"github":"https://github.com/m3047/rkvdns","clone":"git clone https://github.com/m3047/rkvdns.git","description":"DNS Proxy Server for Redis","language":"Python","stars":10,"topics":["asyncio","proxy-server","python3","redis","logging","dns-server"],"license":"AGPL-3.0","category":"databases-storage","readme_excerpt":"rkvdns DNS Caching/Reverse Proxy Server for Redis Tested with Python 3.6 and 3.11; dnspython 1.15 and 2.2. In a nutshell: or more succinctly using SHARDS instead of KEYS : Here is a detailed explanation. Use any DNS library. In any language. Async, or sync. Honey badger don't care. The cybersecurity / observability value proposition. In case you're looking for a checklist to scope your own DNS server project, here's the checklist I wish I'd had when I wrote this: DNS Server Implementation Checklist DNS Scale and Failover DNS scales really well. It's a well understood problem. Many server implementations exist, and many scaling techniques as well. DNS Caching and TTLs The whole point of DNS is to offload work. Caching is its middle name. Unsurprisingly it has time to live ... just like Redis! This service picks up TTLs from Redis and propagates them in the DNS cache. DNS WAF DNS extensions such as Response Policy Zones provide the equivalent of a Web Application Firewall, with access control and query filtering. The \"Data Diode\" RKVDNS is strictly readonly, simplifying your attack surface assessment for Redis. Use it as DNS! Sure, why not? If values can be converted to addresses, they will be returned for A and AAAA queries. Integer Support DNS understands 32 and 128 bit integers (big endian) natively. Prerequisites Python 3.6 or better python redis dnspython root access in order to listen on a privileged port (port 53) For production use you should put this behind a caching f","default_branch":null,"files":null,"tree":[],"storefront":"/r/m3047","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/m3047/rkvdns/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}