dnsserver.go
func NewDNSServer(domain string) *DNSServer {
	return &DNSServer{
		Domain:     domain + ".",
		aRecords:   map[string]net.IP{},
		srvRecords: map[string][]SRVRecord{},
		aMutex:     sync.RWMutex{},
		srvMutex:   sync.RWMutex{},
	}
}
func NewDNSServer(domain string) *DNSServer {
	return &DNSServer{
		Domain:     domain + ".",
		aRecords:   map[string]net.IP{},
		srvRecords: map[string][]SRVRecord{},
		aMutex:     sync.RWMutex{},
		srvMutex:   sync.RWMutex{},
	}
}
// Create a new DNS server. Domain is an unqualified domain that will be used
// as the TLD.