dns

package
v1.7.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 31, 2026 License: Apache-2.0 Imports: 18 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrNXDomain      = errors.New("non existent domain")
	ErrNoQTypeRecord = errors.New("domain exists but no record matching the question type")
)

Functions

func ClearEgressDomainPatterns added in v1.6.0

func ClearEgressDomainPatterns()

ClearEgressDomainPatterns removes egress-domain public DNS overrides.

func Configure added in v1.5.0

func Configure() error

func Init added in v1.5.0

func Init() error

func LookupHostViaPublicDNS added in v1.6.0

func LookupHostViaPublicDNS(name string) ([]net.IP, error)

LookupHostViaPublicDNS resolves a hostname using configured egress DNS nameservers. It falls back to public resolvers (8.8.8.8, then 1.1.1.1) when no nameserver matches. It stops at the first resolver that returns addresses.

func MatchesEgressDomain added in v1.6.0

func MatchesEgressDomain(name string) bool

MatchesEgressDomain reports whether name should be resolved via public DNS instead of local Netmaker records.

func NormalizeEgressLookupDomain added in v1.6.0

func NormalizeEgressLookupDomain(domain string) (string, error)

NormalizeEgressLookupDomain strips a leading "*." used in egress domain policy names.

func ResolveEgressQuery added in v1.6.0

func ResolveEgressQuery(r *dns.Msg) (*dns.Msg, error)

ResolveEgressQuery forwards a DNS query to egress nameservers when the name is an egress domain.

func SyncDNS

func SyncDNS(network string, dnsEntries []models.DNSEntry) error

Sync up the DNS entries with NM server

func SyncEgressDomainPatterns added in v1.6.0

func SyncEgressDomainPatterns(domains []models.EgressDomain)

SyncEgressDomainPatterns updates the list of domain patterns answered via public DNS.

Types

type DNSResolver

type DNSResolver struct {
	DnsEntriesCacheStore map[string]dns.RR
	DnsEntriesCacheMap   map[string][]dnsRecord
}
var DnsResolver *DNSResolver

func GetDNSResolverInstance

func GetDNSResolverInstance() *DNSResolver

GetInstance

func (*DNSResolver) Lookup

func (d *DNSResolver) Lookup(m *dns.Msg) (dns.RR, error)

Lookup DNS entry in local directory

func (*DNSResolver) RegisterA

func (d *DNSResolver) RegisterA(record dnsRecord) error

Register A record

func (*DNSResolver) RegisterAAAA

func (d *DNSResolver) RegisterAAAA(record dnsRecord) error

Register AAAA record

type DNSServer

type DNSServer struct {
	DnsServer []*dns.Server
	AddrList  []string
	AddrStr   string
}

func GetDNSServerInstance

func GetDNSServerInstance() *DNSServer

GetInstance

func (*DNSServer) Start

func (dnsServer *DNSServer) Start()

Start the DNS listener

func (*DNSServer) Stop

func (dnsServer *DNSServer) Stop()

Stop the DNS listener

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL