Constants¶
There are many constants in dnsdist.
OPCode¶
These constants represent the OpCode of a query.
- DNSOpcode.Query
- DNSOpcode.IQuery
- DNSOpcode.Status
- DNSOpcode.Notify
- DNSOpcode.Update
Reference: https://www.iana.org/assignments/dns-parameters/dns-parameters.xhtml#dns-parameters-5
DNSClass¶
These constants represent the CLASS of a DNS record.
- DNSClass.IN
- DNSClass.CHAOS
- DNSClass.NONE
- DNSClass.ANY
Reference: https://www.iana.org/assignments/dns-parameters/dns-parameters.xhtml#dns-parameters-2
RCode¶
These constants represent the different RCODEs for DNS messages.
Changed in version 1.4.0: The prefix is changed from dnsdist to DNSRCode.
Changed in version 1.7.0: The lookup fallback from dnsdist to DNSRCode was removed.
- DNSRCode.NOERROR
- DNSRCode.FORMERR
- DNSRCode.SERVFAIL
- DNSRCode.NXDOMAIN
- DNSRCode.NOTIMP
- DNSRCode.REFUSED
- DNSRCode.YXDOMAIN
- DNSRCode.YXRRSET
- DNSRCode.NXRRSET
- DNSRCode.NOTAUTH
- DNSRCode.NOTZONE
RCodes below are extended RCodes that can only be matched using ERCodeRule().
- DNSRCode.BADVERS
- DNSRCode.BADSIG
- DNSRCode.BADKEY
- DNSRCode.BADTIME
- DNSRCode.BADMODE
- DNSRCode.BADNAME
- DNSRCode.BADALG
- DNSRCode.BADTRUNC
- DNSRCode.BADCOOKIE
EDNSOptionCode¶
- EDNSOptionCode.DHU
- EDNSOptionCode.ECS
- EDNSOptionCode.N3U
- EDNSOptionCode.DAU
- EDNSOptionCode.TCPKEEPALIVE
- EDNSOptionCode.COOKIE
- EDNSOptionCode.PADDING
- EDNSOptionCode.KEYTAG
- EDNSOptionCode.NSID
- EDNSOptionCode.CHAIN
- EDNSOptionCode.EXPIRE
Reference: https://www.iana.org/assignments/dns-parameters/dns-parameters.xhtml#dns-parameters-11
DNS Packet Sections¶
These constants represent the section in the DNS Packet.
- DNSSection.Question
- DNSSection.Answer
- DNSSection.Authority
- DNSSection.Additional
DNSAction¶
Changed in version 1.5.0: DNSAction.SpoofRaw has been added.
Changed in version 1.8.0: DNSAction.SpoofPacket has been added.
Changed in version 2.0.0: DNSAction.SetTag has been added.
These constants represent an Action that can be returned from LuaAction() functions.
DNSAction.Allow: let the query pass, skipping other rules
DNSAction.Delay: delay the response for the specified milliseconds (UDP-only), continue to the next rule
DNSAction.Drop: drop the query
DNSAction.HeaderModify: indicate that the query has been turned into a response
DNSAction.None: continue to the next rule
DNSAction.NoOp: continue to the next rule (used for Dynamic Block actions where None has a different meaning)
DNSAction.NoRecurse: set rd=0 on the query
DNSAction.Nxdomain: return a response with a NXDomain rcode
DNSAction.Pool: use the specified pool to forward this query
DNSAction.Refused: return a response with a Refused rcode
DNSAction.ServFail: return a response with a ServFail rcode
DNSAction.SetTag: set a tag, seeSetTagAction()(only used for Dynamic Block actions, see meth:DNSQuestion:setTag to set a tag from Lua)
DNSAction.Spoof: spoof the response using the supplied IPv4 (A), IPv6 (AAAA) or string (CNAME) value. TTL will be 60 seconds.
DNSAction.SpoofPacket: spoof the response using the supplied raw packet
DNSAction.SpoofRaw: spoof the response using the supplied raw value as record data (see alsoDNSQuestion:spoof()anddnsdist_ffi_dnsquestion_spoof_raw()to spoof multiple values)
DNSAction.Truncate: truncate the response
DNSQType¶
Changed in version 1.4.0: The prefix is changed from dnsdist. to DNSQType.
Changed in version 1.7.0: The lookup fallback from dnsdist to DNSQType was removed.
All named QTypes are available as constants, prefixed with DNSQType., e.g.:
DNSQType.AAAA
DNSQType.AXFR
DNSQType.A
DNSQType.NS
DNSQType.SOA- etc.
DNSResponseAction¶
Changed in version 1.9.0: The DNSResponseAction.Truncate value was added.
These constants represent an Action that can be returned from LuaResponseAction() functions.
DNSResponseAction.Allow: let the response pass, skipping other rules
DNSResponseAction.Delay: delay the response for the specified milliseconds (UDP-only), continue to the next rule
DNSResponseAction.Drop: drop the response
DNSResponseAction.HeaderModify: indicate that the query has been turned into a response
DNSResponseAction.None: continue to the next rule
DNSResponseAction.ServFail: return a response with a ServFail rcode
DNSResponseAction.Truncate: truncate the response, removing all records from the answer, authority and additional sections if any
