Documentation
¶
Overview ¶
Package dnsutil defines an API to analyze and archive information related to the DNS protocol.
This package is a work in progress and makes no API stability promises.
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ( ErrCanceledRequest = errors.New("dnsutil: canceled request") ErrBadRequest = errors.New("dnsutil: bad request") ErrNotSupported = errors.New("dnsutil: not supported") ErrInternal = errors.New("dnsutil: internal error") //limit errors ErrLimitDNSClientQueries = errors.New("dnsutil: max queries per dns client") ErrLimitResolvedNamesIP = errors.New("dnsutil: max names resolved for an ip") )
Some standard errors returned by interfaces.
Functions ¶
This section is empty.
Types ¶
type CacheResponse ¶
type CacheResponse struct {
// Result is true if was resolved
Result bool `json:"result"`
// Last time resolved
Last time.Time `json:"last,omitempty"`
// Store time of cache
Store time.Time `json:"store"`
}
CacheResponse stores cache response information.
type Finder ¶
type Finder interface {
GetResolv(ctx context.Context, id uuid.UUID) (ResolvData, bool, error)
ListResolvs(ctx context.Context, filters []ResolvsFilter, rev bool, max int, next string) ([]ResolvData, string, error)
}
Finder is the interface for archive finder DNS information.
type ResolvCache ¶
type ResolvCache interface {
ResolvCollector
ResolvChecker
}
ResolvCache interface defines a cache for dns resolutions.
type ResolvChecker ¶
type ResolvChecker interface {
Check(ctx context.Context, client, resolved net.IP, name string) (CacheResponse, error)
}
ResolvChecker is the interface for checks in a resolv cache. Params client and resolved are required, name can be empty.
type ResolvCollector ¶
type ResolvCollector interface {
Collect(ctx context.Context, client net.IP, name string, resolved []net.IP, cnames []string) error
}
ResolvCollector interface collects to the cache resolved ip address information.
type ResolvData ¶
type ResolvData struct {
ID uuid.UUID `json:"id"`
Timestamp time.Time `json:"timestamp"`
Duration time.Duration `json:"duration"`
Server net.IP `json:"server"`
Client net.IP `json:"client"`
//query
QID uint16 `json:"qid"`
Name string `json:"name"`
IsIPv6 bool `json:"isIPv6"`
QueryFlags ResolvQueryFlags `json:"queryFlags"`
//response
ReturnCode int `json:"returnCode"`
ResolvedIPs []net.IP `json:"resolvedIPs,omitempty"`
ResolvedCNAMEs []string `json:"resolvedCNAMEs,omitempty"`
ResponseFlags ResolvResponseFlags `json:"responseFlags"`
//tld calculated info
TLD string `json:"tld"`
TLDPlusOne string `json:"tldPlusOne"`
}
ResolvData stores information about DNS domain name resolutions.
type ResolvQueryFlags ¶
type ResolvQueryFlags struct {
Do bool `json:"do"`
AuthenticatedData bool `json:"authenticatedData"`
CheckingDisabled bool `json:"checkingDisabled"`
}
ResolvQueryFlags stores information about resolv query flags
type ResolvResponseFlags ¶
type ResolvResponseFlags struct {
AuthenticatedData bool `json:"authenticatedData"`
}
ResolvResponseFlags stores information about resolv response flags
Directories
¶
| Path | Synopsis |
|---|---|
|
grpc
|
|
|
archive
Package archive implements a dnsutil.Archive client and a ready to use service component.
|
Package archive implements a dnsutil.Archive client and a ready to use service component. |
|
finder
Package finder implements a dnsutil.Finder client and a ready to use service component.
|
Package finder implements a dnsutil.Finder client and a ready to use service component. |
|
resolvcheck
Package resolvcheck implements a dnsutil.ResolvChecker client and a ready to use service component.
|
Package resolvcheck implements a dnsutil.ResolvChecker client and a ready to use service component. |
|
resolvcollect
Package resolvcollect implements a dnsutil.ResolvCollector client and a ready to use service component.
|
Package resolvcollect implements a dnsutil.ResolvCollector client and a ready to use service component. |
|
Package parallel allows multiple checks in paralell using dnsutil.ResolvChecker interface.
|
Package parallel allows multiple checks in paralell using dnsutil.ResolvChecker interface. |