• This repository has been archived on 01/Oct/2019
  • Stars
    star
    147
  • Rank 251,347 (Top 5 %)
  • Language
    Go
  • License
    BSD 3-Clause "New...
  • Created about 6 years ago
  • Updated about 5 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

DNS server with REST interface for records management built on Golang

UNMAINTAINED, PLEASE SEE OTHER ALTERNATIVES BELOW

Rind

GoDoc Build Status

Rind is a DNS server with REST interface for records management, best use is for your local service discovery, DNS forwarding and caching.

Examples

See complete example here

Start DNS server:

import github.com/owlwalks/rind

rind.Start("rw-dirpath", []net.UDPAddr{{IP: net.IP{1, 1, 1, 1}, Port: 53}})

Manage records

// Add a SRV record
curl -X POST \
  http://localhost/dns \
  -H 'Content-Type: application/json' \
  -d '{
	"Host": "_sip._tcp.example.com.",
	"TTL": 300,
	"Type": "SRV",
	"SRV": {
		"Priority": 0,
		"Weight": 5,
		"Port": 5060,
		"Target": "sipserver.example.com."
	}
}'

// Update an A record from 124.108.115.87 to 127.0.0.1
curl -X PUT \
  http://localhost/dns \
  -H 'Content-Type: application/json' \
  -d '{
	"Host": "example.com.",
	"TTL": 600,
	"Type": "A",
	"OldData": "124.108.115.87",
	"Data": "127.0.0.1"
}'

// Delete a record
curl -X DELETE \
  http://localhost/dns \
  -H 'Content-Type: application/json' \
  -d '{
	"Host": "example.com.",
	"Type": "A"
}'

Features:

  • DNS server
    • DNS forwarding
    • DNS caching
    • A record
    • NS record
    • CNAME record
    • SOA record
    • PTR record
    • MX record
    • AAAA record
    • SRV record
  • REST server
    • Create records
    • Read records
    • Update records
    • Delete records

Todo:

  • Primary, secondary model