Skip to content

JohnnyWulgaru/dnsresolver

 
 

Repository files navigation

dnsresolver

A non standard DNS Server with multiple management interfaces. Its main function is it will do the same dns request to multiple DNS servers, if any of the servers replies with an authoritative reply it chooses that, otherwise it provides the reply from the fallback dns server. This will help in case for example you have a local dns server and you connect to work over a VPN and use that DNS server at the same time.

Diagram

image

Usage/Examples

start with interactive CLI

./dnsresolver

It will look like this:

2024/05/06 02:15:15 Starting DNS server on :53
> ?
Available commands:
stats           - Show server statistics
record          - Record Management
cache           - Cache Management
dns             - DNS Server Management
server          - Server Management
/               - Go up one level
exit, quit, q   - Shutdown the server
help, h, ?      - Show help
>

start as daemon

./dnsresolver --daemon

start in client mode (it will try to connect to the default unix socket)

./dnsresolver --client-mode

Config Files

File Usage
dnsrecords.json holds dns records
dnsservers.json holds the dns servers used for queries
dnscache.json holds queries already done if their ttl diff is still above 0
dnsresolver.json the app config

Roadmap

  • mDNS Server
  • DHCP Server
  • REST API
  • Remote Client (Over TCP)

Dependancies & Documentation

Go Mod

Go Reference

Dependancies

OpenSSF Best Practices

OpenSSF Scorecard

Code Climate issues

GitHub commit activity

Contributing

Contributions are always welcome! All contributions are required to follow the https://google.github.io/styleguide/go/

Vulnerability Reporting

Please report any security vulnerabilities to the project using issues or directly to the owner.

Code of Conduct

This project follows the go project code of conduct, please refer to https://go.dev/conduct for more details

Authors

License

I will always follow the Linux Kernel License as primary, if you require any other OPEN license please let me know and I will try to accomodate it.

License

About

DNS Server for labs and home

Resources

License

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 100.0%