Skip to content

brettlangdon/realm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Realm

GoDoc

A simple non-recursive DNS server written in go.

Installation

Go get

go get -u github.com/brettlangdon/realm/cmd/...

Build

git clone https://github.com/brettlangdon/realm
cd ./realm
make

Usage

$ realm --help
usage: realm [--bind BIND] [ZONE [ZONE ...]]

positional arguments:
  zone                   DNS zone files to serve from this server

options:
  --bind BIND            [<host>]:<port> to bind too [default: :53]
  --help, -h             display this help and exit

Zone file

To run a server you must have a DNS zone file.

A simple example looks like the following:

$ORIGIN example.com.     ; designates the start of this zone file in the namespace
$TTL 1h                  ; default expiration time of all resource records without their own TTL value
example.com.  IN  SOA   ns.example.com. username.example.com. ( 2007120710 1d 2h 4w 1h )
example.com.  IN  NS    ns                    ; ns.example.com is a nameserver for example.com
example.com.  IN  NS    ns.somewhere.example. ; ns.somewhere.example is a backup nameserver for example.com
example.com.  IN  MX    10 mail.example.com.  ; mail.example.com is the mailserver for example.com
@             IN  MX    20 mail2.example.com. ; equivalent to above line, "@" represents zone origin
@             IN  MX    50 mail3              ; equivalent to above line, but using a relative host name
example.com.  IN  A     192.0.2.1             ; IPv4 address for example.com
              IN  AAAA  2001:db8:10::1        ; IPv6 address for example.com
ns            IN  A     192.0.2.2             ; IPv4 address for ns.example.com
              IN  AAAA  2001:db8:10::2        ; IPv6 address for ns.example.com
www           IN  CNAME example.com.          ; www.example.com is an alias for example.com
wwwtest       IN  CNAME www                   ; wwwtest.example.com is another alias for www.example.com
mail          IN  A     192.0.2.3             ; IPv4 address for mail.example.com
mail2         IN  A     192.0.2.4             ; IPv4 address for mail2.example.com
mail3         IN  A     192.0.2.5             ; IPv4 address for mail3.example.com

Example taken from here.

Starting the server

realm ./domain.zone

By default realm binds to port 53, which usually requires root, so you may need to run sudo realm ./domain.zone.

You can also specify any number of zone files by providing multiple zone files.

realm ./first.domain.zone ./second.domain.zone

About

A simple non-recursive DNS server written in Go.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published