mirror of
https://github.com/NLnetLabs/unbound.git
synced 2025-12-20 23:00:56 -05:00
- Use QTYPE=A for QNAME minimisation.
- Keep track of number of time-outs when performing QNAME minimisation. Stop minimising when number of time-outs for a QNAME/QTYPE pair is more than three. git-svn-id: file:///svn/unbound/trunk@3782 be551aaa-1e26-0410-a405-d3ace91eadb9
This commit is contained in:
parent
48acd0bf4d
commit
5b63c08c72
6 changed files with 76 additions and 52 deletions
|
|
@ -1,3 +1,9 @@
|
||||||
|
13 June 2016: Ralph
|
||||||
|
- Use QTYPE=A for QNAME minimisation.
|
||||||
|
- Keep track of number of time-outs when performing QNAME minimisation.
|
||||||
|
Stop minimising when number of time-outs for a QNAME/QTYPE pair is
|
||||||
|
more than three.
|
||||||
|
|
||||||
13 June 2016: Wouter
|
13 June 2016: Wouter
|
||||||
- Fix #778: unbound 1.5.9: -h segfault (null deref).
|
- Fix #778: unbound 1.5.9: -h segfault (null deref).
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -148,6 +148,7 @@ iter_new(struct module_qstate* qstate, int id)
|
||||||
iq->qchase = qstate->qinfo;
|
iq->qchase = qstate->qinfo;
|
||||||
outbound_list_init(&iq->outlist);
|
outbound_list_init(&iq->outlist);
|
||||||
iq->minimise_count = 0;
|
iq->minimise_count = 0;
|
||||||
|
iq->minimise_timeout_count = 0;
|
||||||
if (qstate->env->cfg->qname_minimisation)
|
if (qstate->env->cfg->qname_minimisation)
|
||||||
iq->minimisation_state = INIT_MINIMISE_STATE;
|
iq->minimisation_state = INIT_MINIMISE_STATE;
|
||||||
else
|
else
|
||||||
|
|
@ -2008,7 +2009,7 @@ processQueryTargets(struct module_qstate* qstate, struct iter_qstate* iq,
|
||||||
iq->dp->name))) {
|
iq->dp->name))) {
|
||||||
iq->qinfo_out.qname = iq->dp->name;
|
iq->qinfo_out.qname = iq->dp->name;
|
||||||
iq->qinfo_out.qname_len = iq->dp->namelen;
|
iq->qinfo_out.qname_len = iq->dp->namelen;
|
||||||
iq->qinfo_out.qtype = LDNS_RR_TYPE_NS;
|
iq->qinfo_out.qtype = LDNS_RR_TYPE_A;
|
||||||
iq->qinfo_out.qclass = iq->qchase.qclass;
|
iq->qinfo_out.qclass = iq->qchase.qclass;
|
||||||
iq->minimise_count = 0;
|
iq->minimise_count = 0;
|
||||||
}
|
}
|
||||||
|
|
@ -2023,6 +2024,7 @@ processQueryTargets(struct module_qstate* qstate, struct iter_qstate* iq,
|
||||||
iq->qinfo_out.qname = iq->qchase.qname;
|
iq->qinfo_out.qname = iq->qchase.qname;
|
||||||
iq->qinfo_out.qname_len = iq->qchase.qname_len;
|
iq->qinfo_out.qname_len = iq->qchase.qname_len;
|
||||||
iq->minimise_count++;
|
iq->minimise_count++;
|
||||||
|
iq->minimise_timeout_count = 0;
|
||||||
|
|
||||||
/* Limit number of iterations for QNAMEs with more
|
/* Limit number of iterations for QNAMEs with more
|
||||||
* than MAX_MINIMISE_COUNT labels. Send first MINIMISE_ONE_LAB
|
* than MAX_MINIMISE_COUNT labels. Send first MINIMISE_ONE_LAB
|
||||||
|
|
@ -2059,8 +2061,9 @@ processQueryTargets(struct module_qstate* qstate, struct iter_qstate* iq,
|
||||||
&iq->qinfo_out.qname_len,
|
&iq->qinfo_out.qname_len,
|
||||||
labdiff-1);
|
labdiff-1);
|
||||||
}
|
}
|
||||||
if(labdiff < 1 ||
|
if(labdiff < 1 || (labdiff < 2
|
||||||
(labdiff < 2 && iq->qchase.qtype == LDNS_RR_TYPE_DS))
|
&& (iq->qchase.qtype == LDNS_RR_TYPE_DS
|
||||||
|
|| iq->qchase.qtype == LDNS_RR_TYPE_A)))
|
||||||
/* Stop minimising this query, resolve "as usual" */
|
/* Stop minimising this query, resolve "as usual" */
|
||||||
iq->minimisation_state = DONOT_MINIMISE_STATE;
|
iq->minimisation_state = DONOT_MINIMISE_STATE;
|
||||||
else {
|
else {
|
||||||
|
|
@ -2077,10 +2080,17 @@ processQueryTargets(struct module_qstate* qstate, struct iter_qstate* iq,
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(iq->minimisation_state == SKIP_MINIMISE_STATE)
|
if(iq->minimisation_state == SKIP_MINIMISE_STATE) {
|
||||||
/* Do not increment qname, continue incrementing next
|
iq->minimise_timeout_count++;
|
||||||
* iteration */
|
if(iq->minimise_timeout_count < MAX_MINIMISE_TIMEOUT_COUNT)
|
||||||
iq->minimisation_state = MINIMISE_STATE;
|
/* Do not increment qname, continue incrementing next
|
||||||
|
* iteration */
|
||||||
|
iq->minimisation_state = MINIMISE_STATE;
|
||||||
|
else
|
||||||
|
/* Too many time-outs detected for this QNAME and QTYPE.
|
||||||
|
* We give up, disable QNAME minimisation. */
|
||||||
|
iq->minimisation_state = DONOT_MINIMISE_STATE;
|
||||||
|
}
|
||||||
if(iq->minimisation_state == DONOT_MINIMISE_STATE)
|
if(iq->minimisation_state == DONOT_MINIMISE_STATE)
|
||||||
iq->qinfo_out = iq->qchase;
|
iq->qinfo_out = iq->qchase;
|
||||||
|
|
||||||
|
|
@ -2158,7 +2168,7 @@ processQueryResponse(struct module_qstate* qstate, struct iter_qstate* iq,
|
||||||
iq->num_current_queries--;
|
iq->num_current_queries--;
|
||||||
if(iq->response == NULL) {
|
if(iq->response == NULL) {
|
||||||
/* Don't increment qname when QNAME minimisation is enabled */
|
/* Don't increment qname when QNAME minimisation is enabled */
|
||||||
if (qstate->env->cfg->qname_minimisation)
|
if(qstate->env->cfg->qname_minimisation)
|
||||||
iq->minimisation_state = SKIP_MINIMISE_STATE;
|
iq->minimisation_state = SKIP_MINIMISE_STATE;
|
||||||
iq->chase_to_rd = 0;
|
iq->chase_to_rd = 0;
|
||||||
iq->dnssec_lame_query = 0;
|
iq->dnssec_lame_query = 0;
|
||||||
|
|
|
||||||
|
|
@ -69,6 +69,9 @@ struct rbtree_t;
|
||||||
* QNAMEs with a lot of labels.
|
* QNAMEs with a lot of labels.
|
||||||
*/
|
*/
|
||||||
#define MAX_MINIMISE_COUNT 10
|
#define MAX_MINIMISE_COUNT 10
|
||||||
|
/* max number of time-outs for minimised query. Prevents resolving failures
|
||||||
|
* when the QNAME minimisation QTYPE is blocked. */
|
||||||
|
#define MAX_MINIMISE_TIMEOUT_COUNT 3
|
||||||
/**
|
/**
|
||||||
* number of labels from QNAME that are always send individually when using
|
* number of labels from QNAME that are always send individually when using
|
||||||
* QNAME minimisation, even when the number of labels of the QNAME is bigger
|
* QNAME minimisation, even when the number of labels of the QNAME is bigger
|
||||||
|
|
@ -377,6 +380,11 @@ struct iter_qstate {
|
||||||
* outgoing queries when QNAME minimisation is enabled.
|
* outgoing queries when QNAME minimisation is enabled.
|
||||||
*/
|
*/
|
||||||
int minimise_count;
|
int minimise_count;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Count number of time-outs. Used to prevent resolving failures when
|
||||||
|
* the QNAME minimisation QTYPE is blocked. */
|
||||||
|
int minimise_timeout_count;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
52
testdata/iter_resolve_minimised.rpl
vendored
52
testdata/iter_resolve_minimised.rpl
vendored
|
|
@ -30,7 +30,7 @@ MATCH opcode qtype qname
|
||||||
ADJUST copy_id
|
ADJUST copy_id
|
||||||
REPLY QR NOERROR
|
REPLY QR NOERROR
|
||||||
SECTION QUESTION
|
SECTION QUESTION
|
||||||
com. IN NS
|
com. IN A
|
||||||
SECTION AUTHORITY
|
SECTION AUTHORITY
|
||||||
com. IN NS a.gtld-servers.net.
|
com. IN NS a.gtld-servers.net.
|
||||||
SECTION ADDITIONAL
|
SECTION ADDITIONAL
|
||||||
|
|
@ -46,8 +46,8 @@ MATCH opcode qtype qname
|
||||||
ADJUST copy_id
|
ADJUST copy_id
|
||||||
REPLY QR NOERROR
|
REPLY QR NOERROR
|
||||||
SECTION QUESTION
|
SECTION QUESTION
|
||||||
com. IN NS
|
com. IN A
|
||||||
SECTION ANSWER
|
SECTION AUTHORITY
|
||||||
com. IN NS a.gtld-servers.net.
|
com. IN NS a.gtld-servers.net.
|
||||||
SECTION ADDITIONAL
|
SECTION ADDITIONAL
|
||||||
a.gtld-servers.net. IN A 192.5.6.30
|
a.gtld-servers.net. IN A 192.5.6.30
|
||||||
|
|
@ -58,7 +58,7 @@ MATCH opcode qtype qname
|
||||||
ADJUST copy_id
|
ADJUST copy_id
|
||||||
REPLY QR NOERROR
|
REPLY QR NOERROR
|
||||||
SECTION QUESTION
|
SECTION QUESTION
|
||||||
example.com. IN NS
|
example.com. IN A
|
||||||
SECTION AUTHORITY
|
SECTION AUTHORITY
|
||||||
example.com. IN NS ns.example.com.
|
example.com. IN NS ns.example.com.
|
||||||
SECTION ADDITIONAL
|
SECTION ADDITIONAL
|
||||||
|
|
@ -74,20 +74,8 @@ MATCH opcode qtype qname
|
||||||
ADJUST copy_id
|
ADJUST copy_id
|
||||||
REPLY QR NOERROR
|
REPLY QR NOERROR
|
||||||
SECTION QUESTION
|
SECTION QUESTION
|
||||||
example.com. IN NS
|
example.com. IN A
|
||||||
SECTION ANSWER
|
SECTION AUTHORITY
|
||||||
example.com. IN NS ns.example.com.
|
|
||||||
SECTION ADDITIONAL
|
|
||||||
ns.example.com. IN A 1.2.3.4
|
|
||||||
ENTRY_END
|
|
||||||
|
|
||||||
ENTRY_BEGIN
|
|
||||||
MATCH opcode qtype qname
|
|
||||||
ADJUST copy_id
|
|
||||||
REPLY QR NOERROR
|
|
||||||
SECTION QUESTION
|
|
||||||
www.example.com. IN NS
|
|
||||||
SECTION ANSWER
|
|
||||||
example.com. IN NS ns.example.com.
|
example.com. IN NS ns.example.com.
|
||||||
SECTION ADDITIONAL
|
SECTION ADDITIONAL
|
||||||
ns.example.com. IN A 1.2.3.4
|
ns.example.com. IN A 1.2.3.4
|
||||||
|
|
@ -99,8 +87,20 @@ ADJUST copy_id
|
||||||
REPLY QR NOERROR
|
REPLY QR NOERROR
|
||||||
SECTION QUESTION
|
SECTION QUESTION
|
||||||
www.example.com. IN A
|
www.example.com. IN A
|
||||||
|
SECTION AUTHORITY
|
||||||
|
example.com. IN NS ns.example.com.
|
||||||
|
SECTION ADDITIONAL
|
||||||
|
ns.example.com. IN A 1.2.3.4
|
||||||
|
ENTRY_END
|
||||||
|
|
||||||
|
ENTRY_BEGIN
|
||||||
|
MATCH opcode qtype qname
|
||||||
|
ADJUST copy_id
|
||||||
|
REPLY QR NOERROR
|
||||||
|
SECTION QUESTION
|
||||||
|
www.example.com. IN AAAA
|
||||||
SECTION ANSWER
|
SECTION ANSWER
|
||||||
www.example.com. IN A 10.20.30.40
|
www.example.com. IN AAAA ::123
|
||||||
SECTION AUTHORITY
|
SECTION AUTHORITY
|
||||||
example.com. IN NS ns.example.com.
|
example.com. IN NS ns.example.com.
|
||||||
SECTION ADDITIONAL
|
SECTION ADDITIONAL
|
||||||
|
|
@ -112,35 +112,35 @@ STEP 10 QUERY
|
||||||
ENTRY_BEGIN
|
ENTRY_BEGIN
|
||||||
REPLY RD
|
REPLY RD
|
||||||
SECTION QUESTION
|
SECTION QUESTION
|
||||||
www.example.com. IN A
|
www.example.com. IN AAAA
|
||||||
ENTRY_END
|
ENTRY_END
|
||||||
|
|
||||||
STEP 20 CHECK_OUT_QUERY
|
STEP 20 CHECK_OUT_QUERY
|
||||||
ENTRY_BEGIN
|
ENTRY_BEGIN
|
||||||
MATCH qname qtype opcode
|
MATCH qname qtype opcode
|
||||||
SECTION QUESTION
|
SECTION QUESTION
|
||||||
com. IN NS
|
com. IN A
|
||||||
ENTRY_END
|
ENTRY_END
|
||||||
|
|
||||||
STEP 30 CHECK_OUT_QUERY
|
STEP 30 CHECK_OUT_QUERY
|
||||||
ENTRY_BEGIN
|
ENTRY_BEGIN
|
||||||
MATCH qname qtype opcode
|
MATCH qname qtype opcode
|
||||||
SECTION QUESTION
|
SECTION QUESTION
|
||||||
example.com. IN NS
|
example.com. IN A
|
||||||
ENTRY_END
|
ENTRY_END
|
||||||
|
|
||||||
STEP 40 CHECK_OUT_QUERY
|
STEP 40 CHECK_OUT_QUERY
|
||||||
ENTRY_BEGIN
|
ENTRY_BEGIN
|
||||||
MATCH qname qtype opcode
|
MATCH qname qtype opcode
|
||||||
SECTION QUESTION
|
SECTION QUESTION
|
||||||
www.example.com. IN NS
|
www.example.com. IN A
|
||||||
ENTRY_END
|
ENTRY_END
|
||||||
|
|
||||||
STEP 50 CHECK_OUT_QUERY
|
STEP 50 CHECK_OUT_QUERY
|
||||||
ENTRY_BEGIN
|
ENTRY_BEGIN
|
||||||
MATCH qname qtype opcode
|
MATCH qname qtype opcode
|
||||||
SECTION QUESTION
|
SECTION QUESTION
|
||||||
www.example.com. IN A
|
www.example.com. IN AAAA
|
||||||
ENTRY_END
|
ENTRY_END
|
||||||
|
|
||||||
STEP 60 CHECK_ANSWER
|
STEP 60 CHECK_ANSWER
|
||||||
|
|
@ -148,9 +148,9 @@ ENTRY_BEGIN
|
||||||
MATCH all
|
MATCH all
|
||||||
REPLY QR RD RA NOERROR
|
REPLY QR RD RA NOERROR
|
||||||
SECTION QUESTION
|
SECTION QUESTION
|
||||||
www.example.com. IN A
|
www.example.com. IN AAAA
|
||||||
SECTION ANSWER
|
SECTION ANSWER
|
||||||
www.example.com. IN A 10.20.30.40
|
www.example.com. IN AAAA ::123
|
||||||
SECTION AUTHORITY
|
SECTION AUTHORITY
|
||||||
example.com. IN NS ns.example.com.
|
example.com. IN NS ns.example.com.
|
||||||
SECTION ADDITIONAL
|
SECTION ADDITIONAL
|
||||||
|
|
|
||||||
14
testdata/iter_resolve_minimised_nx.rpl
vendored
14
testdata/iter_resolve_minimised_nx.rpl
vendored
|
|
@ -30,7 +30,7 @@ MATCH opcode qtype qname
|
||||||
ADJUST copy_id
|
ADJUST copy_id
|
||||||
REPLY QR NOERROR
|
REPLY QR NOERROR
|
||||||
SECTION QUESTION
|
SECTION QUESTION
|
||||||
com. IN NS
|
com. IN A
|
||||||
SECTION AUTHORITY
|
SECTION AUTHORITY
|
||||||
com. IN NS a.gtld-servers.net.
|
com. IN NS a.gtld-servers.net.
|
||||||
SECTION ADDITIONAL
|
SECTION ADDITIONAL
|
||||||
|
|
@ -46,8 +46,8 @@ MATCH opcode qtype qname
|
||||||
ADJUST copy_id
|
ADJUST copy_id
|
||||||
REPLY QR NOERROR
|
REPLY QR NOERROR
|
||||||
SECTION QUESTION
|
SECTION QUESTION
|
||||||
com. IN NS
|
com. IN A
|
||||||
SECTION ANSWER
|
SECTION AUTHORITY
|
||||||
com. IN NS a.gtld-servers.net.
|
com. IN NS a.gtld-servers.net.
|
||||||
SECTION ADDITIONAL
|
SECTION ADDITIONAL
|
||||||
a.gtld-servers.net. IN A 192.5.6.30
|
a.gtld-servers.net. IN A 192.5.6.30
|
||||||
|
|
@ -58,7 +58,7 @@ MATCH opcode qtype qname
|
||||||
ADJUST copy_id
|
ADJUST copy_id
|
||||||
REPLY QR NOERROR
|
REPLY QR NOERROR
|
||||||
SECTION QUESTION
|
SECTION QUESTION
|
||||||
example.com. IN NS
|
example.com. IN A
|
||||||
SECTION AUTHORITY
|
SECTION AUTHORITY
|
||||||
example.com. IN NS ns.example.com.
|
example.com. IN NS ns.example.com.
|
||||||
SECTION ADDITIONAL
|
SECTION ADDITIONAL
|
||||||
|
|
@ -74,8 +74,8 @@ MATCH opcode qtype qname
|
||||||
ADJUST copy_id
|
ADJUST copy_id
|
||||||
REPLY QR NOERROR
|
REPLY QR NOERROR
|
||||||
SECTION QUESTION
|
SECTION QUESTION
|
||||||
example.com. IN NS
|
example.com. IN A
|
||||||
SECTION ANSWER
|
SECTION AUTHORITY
|
||||||
example.com. IN NS ns.example.com.
|
example.com. IN NS ns.example.com.
|
||||||
SECTION ADDITIONAL
|
SECTION ADDITIONAL
|
||||||
ns.example.com. IN A 1.2.3.4
|
ns.example.com. IN A 1.2.3.4
|
||||||
|
|
@ -86,7 +86,7 @@ MATCH opcode qtype qname
|
||||||
ADJUST copy_id
|
ADJUST copy_id
|
||||||
REPLY QR NXDOMAIN
|
REPLY QR NXDOMAIN
|
||||||
SECTION QUESTION
|
SECTION QUESTION
|
||||||
ent.example.com. IN NS
|
ent.example.com. IN A
|
||||||
SECTION AUTHORITY
|
SECTION AUTHORITY
|
||||||
example.com. SOA ns.example.com. h.example.com. 2007090504 1800 1800 2419200 7200
|
example.com. SOA ns.example.com. h.example.com. 2007090504 1800 1800 2419200 7200
|
||||||
ENTRY_END
|
ENTRY_END
|
||||||
|
|
|
||||||
22
testdata/iter_resolve_minimised_refused.rpl
vendored
22
testdata/iter_resolve_minimised_refused.rpl
vendored
|
|
@ -30,7 +30,7 @@ MATCH opcode qtype qname
|
||||||
ADJUST copy_id
|
ADJUST copy_id
|
||||||
REPLY QR NOERROR
|
REPLY QR NOERROR
|
||||||
SECTION QUESTION
|
SECTION QUESTION
|
||||||
com. IN NS
|
com. IN A
|
||||||
SECTION AUTHORITY
|
SECTION AUTHORITY
|
||||||
com. IN NS a.gtld-servers.net.
|
com. IN NS a.gtld-servers.net.
|
||||||
SECTION ADDITIONAL
|
SECTION ADDITIONAL
|
||||||
|
|
@ -46,8 +46,8 @@ MATCH opcode qtype qname
|
||||||
ADJUST copy_id
|
ADJUST copy_id
|
||||||
REPLY QR NOERROR
|
REPLY QR NOERROR
|
||||||
SECTION QUESTION
|
SECTION QUESTION
|
||||||
com. IN NS
|
com. IN A
|
||||||
SECTION ANSWER
|
SECTION AUTHORITY
|
||||||
com. IN NS a.gtld-servers.net.
|
com. IN NS a.gtld-servers.net.
|
||||||
SECTION ADDITIONAL
|
SECTION ADDITIONAL
|
||||||
a.gtld-servers.net. IN A 192.5.6.30
|
a.gtld-servers.net. IN A 192.5.6.30
|
||||||
|
|
@ -58,7 +58,7 @@ MATCH opcode qtype qname
|
||||||
ADJUST copy_id
|
ADJUST copy_id
|
||||||
REPLY QR NOERROR
|
REPLY QR NOERROR
|
||||||
SECTION QUESTION
|
SECTION QUESTION
|
||||||
example.com. IN NS
|
example.com. IN A
|
||||||
SECTION AUTHORITY
|
SECTION AUTHORITY
|
||||||
example.com. IN NS ns.example.com.
|
example.com. IN NS ns.example.com.
|
||||||
SECTION ADDITIONAL
|
SECTION ADDITIONAL
|
||||||
|
|
@ -74,7 +74,7 @@ MATCH opcode qtype qname
|
||||||
ADJUST copy_id
|
ADJUST copy_id
|
||||||
REPLY QR REFUSED
|
REPLY QR REFUSED
|
||||||
SECTION QUESTION
|
SECTION QUESTION
|
||||||
refused.example.com. IN NS
|
refused.example.com. IN A
|
||||||
ENTRY_END
|
ENTRY_END
|
||||||
|
|
||||||
ENTRY_BEGIN
|
ENTRY_BEGIN
|
||||||
|
|
@ -82,7 +82,7 @@ MATCH opcode qtype qname
|
||||||
ADJUST copy_id
|
ADJUST copy_id
|
||||||
REPLY QR REFUSED
|
REPLY QR REFUSED
|
||||||
SECTION QUESTION
|
SECTION QUESTION
|
||||||
www.refused.example.com. IN NS
|
www.refused.example.com. IN A
|
||||||
ENTRY_END
|
ENTRY_END
|
||||||
|
|
||||||
ENTRY_BEGIN
|
ENTRY_BEGIN
|
||||||
|
|
@ -90,9 +90,9 @@ MATCH opcode qtype qname
|
||||||
ADJUST copy_id
|
ADJUST copy_id
|
||||||
REPLY QR NOERROR
|
REPLY QR NOERROR
|
||||||
SECTION QUESTION
|
SECTION QUESTION
|
||||||
www.refused.example.com. IN A
|
www.refused.example.com. IN AAAA
|
||||||
SECTION ANSWER
|
SECTION ANSWER
|
||||||
www.refused.example.com. IN A 10.20.30.40
|
www.refused.example.com. IN AAAA ::1
|
||||||
SECTION AUTHORITY
|
SECTION AUTHORITY
|
||||||
example.com. IN NS ns.example.com.
|
example.com. IN NS ns.example.com.
|
||||||
SECTION ADDITIONAL
|
SECTION ADDITIONAL
|
||||||
|
|
@ -104,7 +104,7 @@ STEP 10 QUERY
|
||||||
ENTRY_BEGIN
|
ENTRY_BEGIN
|
||||||
REPLY RD
|
REPLY RD
|
||||||
SECTION QUESTION
|
SECTION QUESTION
|
||||||
www.refused.example.com. IN A
|
www.refused.example.com. IN AAAA
|
||||||
ENTRY_END
|
ENTRY_END
|
||||||
|
|
||||||
STEP 20 CHECK_ANSWER
|
STEP 20 CHECK_ANSWER
|
||||||
|
|
@ -112,9 +112,9 @@ ENTRY_BEGIN
|
||||||
MATCH all
|
MATCH all
|
||||||
REPLY QR RD RA NOERROR
|
REPLY QR RD RA NOERROR
|
||||||
SECTION QUESTION
|
SECTION QUESTION
|
||||||
www.refused.example.com. IN A
|
www.refused.example.com. IN AAAA
|
||||||
SECTION ANSWER
|
SECTION ANSWER
|
||||||
www.refused.example.com. IN A 10.20.30.40
|
www.refused.example.com. IN AAAA ::1
|
||||||
SECTION AUTHORITY
|
SECTION AUTHORITY
|
||||||
example.com. IN NS ns.example.com.
|
example.com. IN NS ns.example.com.
|
||||||
SECTION ADDITIONAL
|
SECTION ADDITIONAL
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue