DNS probe
The DNS probe sends one or more queries to a DNS resolver. VirtuProbe implements the DNS wire protocol from scratch (RFC 1035 / RFC 3596) — no third-party DNS library is used, giving full control for testing and fuzzing.

Connection settings
Section titled “Connection settings”| Field | Description |
|---|---|
| Resolver | DNS server hostname or IP (e.g. 8.8.8.8, 1.1.1.1) |
| Port | Server port (default: 53) |
| Use UDP | Send queries over UDP (default: on). When the server sets the TC (truncation) bit, VirtuProbe automatically retries over TCP. Disable to force TCP for all queries. |
Queries
Section titled “Queries”Each query is an independent DNS question sent in sequence to the same resolver.
| Field | Description |
|---|---|
| Name | Domain name to resolve, e.g. example.com |
| Type | Record type: A, AAAA, MX, CNAME, TXT, NS, PTR, SOA |
| Recursion Desired | Sets the RD bit in the query (on by default) |
| Expected RCODE | Optional assertion — 0 = NOERROR, 3 = NXDOMAIN, etc. |
Queries can be reordered by dragging the handle on the left.
Record types
Section titled “Record types”| Type | Description |
|---|---|
A | IPv4 address |
AAAA | IPv6 address |
MX | Mail exchange (preference + hostname) |
CNAME | Canonical name alias |
TXT | Free-form text records (SPF, DKIM, etc.) |
NS | Authoritative nameservers |
PTR | Reverse DNS lookup (use x.x.x.x.in-addr.arpa format for the name) |
SOA | Start of authority — serial, refresh/retry/expire/minimum, primary NS |
Response
Section titled “Response”After sending, each query block shows the server’s RCODE and the returned records:
| Column | Description |
|---|---|
| Type | Record type chip |
| Name | Owner name of the record |
| Value | Parsed RDATA (IP, hostname, preference+host, text, etc.) |
| TTL | Time-to-live in seconds |
When no answers are returned (e.g. NXDOMAIN), the authority section is shown instead — typically a SOA record indicating the zone’s authoritative server.
Assertions
Section titled “Assertions”Set an Expected RCODE on any query. Common values:
| Code | Name | Meaning |
|---|---|---|
0 | NOERROR | Query answered successfully |
1 | FORMERR | Format error in the query |
2 | SERVFAIL | Server failed to complete the query |
3 | NXDOMAIN | The queried name does not exist |
4 | NOTIMP | Query type not supported by the resolver |
5 | REFUSED | Resolver refused the query (policy) |
If the actual RCODE differs from the expected value, the probe history entry is marked as failed and the query block shows a warning chip.
Variable substitution
Section titled “Variable substitution”{{variable}} placeholders are supported in resolver and name fields.
History
Section titled “History”The history panel shows the overall success/fail status and the resolver address for each past execution.
