Skip to content

sunkit02/rdns

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RDNS: Rust DNS

This is a toy implmentation of a DNS resolver based on RFC 1035. During the implementation, I loosely followed and referenced Julia Evans' tutorial Implement DNS in a Weekend. The final output of the program is modelled after the output of the dig utility.

Usage

The basic usage of the resolver is as follows where <domain-name> is a valid domain name according to RFC 1035 2.3.1:

rdns <domain-name>

The user can also specify the DNS server used to query from as follows where <server-ip> is a valid IPV4 address:

rdns @<server-ip> <domain-name>

RDATA formats supported

  • A
  • NS
  • MD
  • MF
  • CNAME
  • SOA
  • MB
  • MG
  • MR
  • NULL
  • WKS
  • PTR
  • HINFO
  • MINFO
  • MX
  • TXT
  • AAAA (RFC 1886)

Todos

  • Basic domain name resolution
  • Request timeouts
  • Caching
  • Rich cli experience
    • Selection of query type and class from cli
    • Allowing multiple DNS servers to be specified from the cli

About

Implementation of a DNS resolver

Resources

Stars

Watchers

Forks

Languages