udns_resolver.c:916: dns_submit_dn: Assertion `q->dnsq_origdnl0 > 0' failed.
Iñaki Baz Castillo
ibc at aliax.net
Tue Jul 5 17:56:22 MSD 2011
2011/7/5 Iñaki Baz Castillo <ibc at aliax.net>:
> 2011/7/5 Iñaki Baz Castillo <ibc at aliax.net>:
>> Hi, note that I don't mean "a._" but "a. _" (with space, so you must
>> enclose the string between "" to pass it as a single argument to the
>> call).
>> Sorry, I was wrong, please use ".a _".
>
> I've tested your code with "a. _" and produces:
>
> .a _: valid domain but no data of requested type
>
> However in my Ruby C extension (which uses udns asyncronously) it
> produces ("today") a timeout so tempfail.
Ok, I've captured a trace and the DNS query sent by udns is wrong (I
attach the full capture exported from wireshark to txt):
Source: 192.168.1.16 (192.168.1.16)
Destination: 8.8.8.8 (8.8.8.8)
User Datagram Protocol, Src Port: 56776 (56776), Dst Port: domain (53)
Source port: 56776 (56776)
Destination port: domain (53)
Length: 133
Checksum: 0xe83e [validation disabled]
[Good Checksum: False]
[Bad Checksum: False]
Domain Name System (query)
Transaction ID: 0x4a9f
Flags: 0x0100 (Standard query)
0... .... .... .... = Response: Message is a query
.000 0... .... .... = Opcode: Standard query (0)
.... ..0. .... .... = Truncated: Message is not truncated
.... ...1 .... .... = Recursion desired: Do query recursively
.... .... .0.. .... = Z: reserved (0)
.... .... ...0 .... = Non-authenticated data: Unacceptable
Questions: 1
Answer RRs: 0
Authority RRs: 0
Additional RRs: 1
Queries
<Unknown extended label>: type Unknown (40891), class Unknown (0)
Name: <Unknown extended label>
Type: Unknown (40891)
Class: Unknown (0x0000)
Additional records
<Root>: type Unused, class Unknown (43378)
Name: <Root>
Type: Unused (unused)
Class: Unknown (0xa972)
Time to live: 19181 days, 4 hours, 20 minutes, 15 seconds
Data length: 0
The DNS replies "0010 = Reply code: Server failure (2)". Note that I'm
using DNS server 8.8.8.8 (Google) in this case, without using unbound.
--
Iñaki Baz Castillo
<ibc at aliax.net>
-------------- next part --------------
No. Time Source Destination Protocol Info
1 0.000000 192.168.1.16 8.8.8.8 DNS Standard query Unknown (40891) <Unknown extended label>
Frame 1: 169 bytes on wire (1352 bits), 169 bytes captured (1352 bits)
Arrival Time: Jul 5, 2011 15:52:16.061911000 CEST
Epoch Time: 1309873936.061911000 seconds
[Time delta from previous captured frame: 0.000000000 seconds]
[Time delta from previous displayed frame: 0.000000000 seconds]
[Time since reference or first frame: 0.000000000 seconds]
Frame Number: 1
Frame Length: 169 bytes (1352 bits)
Capture Length: 169 bytes (1352 bits)
[Frame is marked: False]
[Frame is ignored: False]
[Protocols in frame: sll:ip:udp:dns]
[Coloring Rule Name: UDP]
[Coloring Rule String: udp]
Linux cooked capture
Packet type: Sent by us (4)
Link-layer address type: 1
Link-layer address length: 6
Source: LiteonTe_20:55:c0 (70:f1:a1:20:55:c0)
Protocol: IP (0x0800)
Internet Protocol, Src: 192.168.1.16 (192.168.1.16), Dst: 8.8.8.8 (8.8.8.8)
Version: 4
Header length: 20 bytes
Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00)
0000 00.. = Differentiated Services Codepoint: Default (0x00)
.... ..0. = ECN-Capable Transport (ECT): 0
.... ...0 = ECN-CE: 0
Total Length: 153
Identification: 0x0000 (0)
Flags: 0x02 (Don't Fragment)
0... .... = Reserved bit: Not set
.1.. .... = Don't fragment: Set
..0. .... = More fragments: Not set
Fragment offset: 0
Time to live: 64
Protocol: UDP (17)
Header checksum: 0x688c [correct]
[Good: True]
[Bad: False]
Source: 192.168.1.16 (192.168.1.16)
Destination: 8.8.8.8 (8.8.8.8)
User Datagram Protocol, Src Port: 56776 (56776), Dst Port: domain (53)
Source port: 56776 (56776)
Destination port: domain (53)
Length: 133
Checksum: 0xe83e [validation disabled]
[Good Checksum: False]
[Bad Checksum: False]
Domain Name System (query)
Transaction ID: 0x4a9f
Flags: 0x0100 (Standard query)
0... .... .... .... = Response: Message is a query
.000 0... .... .... = Opcode: Standard query (0)
.... ..0. .... .... = Truncated: Message is not truncated
.... ...1 .... .... = Recursion desired: Do query recursively
.... .... .0.. .... = Z: reserved (0)
.... .... ...0 .... = Non-authenticated data: Unacceptable
Questions: 1
Answer RRs: 0
Authority RRs: 0
Additional RRs: 1
Queries
<Unknown extended label>: type Unknown (40891), class Unknown (0)
Name: <Unknown extended label>
Type: Unknown (40891)
Class: Unknown (0x0000)
Additional records
<Root>: type Unused, class Unknown (43378)
Name: <Root>
Type: Unused (unused)
Class: Unknown (0xa972)
Time to live: 19181 days, 4 hours, 20 minutes, 15 seconds
Data length: 0
No. Time Source Destination Protocol Info
2 0.001218 192.168.1.16 8.8.8.8 DNS Standard query Unknown (40891) <Unknown extended label>
Frame 2: 169 bytes on wire (1352 bits), 169 bytes captured (1352 bits)
Arrival Time: Jul 5, 2011 15:52:16.063129000 CEST
Epoch Time: 1309873936.063129000 seconds
[Time delta from previous captured frame: 0.001218000 seconds]
[Time delta from previous displayed frame: 0.001218000 seconds]
[Time since reference or first frame: 0.001218000 seconds]
Frame Number: 2
Frame Length: 169 bytes (1352 bits)
Capture Length: 169 bytes (1352 bits)
[Frame is marked: False]
[Frame is ignored: False]
[Protocols in frame: sll:ip:udp:dns]
[Coloring Rule Name: UDP]
[Coloring Rule String: udp]
Linux cooked capture
Packet type: Sent by us (4)
Link-layer address type: 1
Link-layer address length: 6
Source: LiteonTe_20:55:c0 (70:f1:a1:20:55:c0)
Protocol: IP (0x0800)
Internet Protocol, Src: 192.168.1.16 (192.168.1.16), Dst: 8.8.8.8 (8.8.8.8)
Version: 4
Header length: 20 bytes
Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00)
0000 00.. = Differentiated Services Codepoint: Default (0x00)
.... ..0. = ECN-Capable Transport (ECT): 0
.... ...0 = ECN-CE: 0
Total Length: 153
Identification: 0x0000 (0)
Flags: 0x02 (Don't Fragment)
0... .... = Reserved bit: Not set
.1.. .... = Don't fragment: Set
..0. .... = More fragments: Not set
Fragment offset: 0
Time to live: 64
Protocol: UDP (17)
Header checksum: 0x688c [correct]
[Good: True]
[Bad: False]
Source: 192.168.1.16 (192.168.1.16)
Destination: 8.8.8.8 (8.8.8.8)
User Datagram Protocol, Src Port: 56776 (56776), Dst Port: domain (53)
Source port: 56776 (56776)
Destination port: domain (53)
Length: 133
Checksum: 0xf11d [validation disabled]
[Good Checksum: False]
[Bad Checksum: False]
Domain Name System (query)
Transaction ID: 0xbac9
Flags: 0x0100 (Standard query)
0... .... .... .... = Response: Message is a query
.000 0... .... .... = Opcode: Standard query (0)
.... ..0. .... .... = Truncated: Message is not truncated
.... ...1 .... .... = Recursion desired: Do query recursively
.... .... .0.. .... = Z: reserved (0)
.... .... ...0 .... = Non-authenticated data: Unacceptable
Questions: 1
Answer RRs: 0
Authority RRs: 0
Additional RRs: 1
Queries
<Unknown extended label>: type Unknown (40891), class Unknown (0)
Name: <Unknown extended label>
Type: Unknown (40891)
Class: Unknown (0x0000)
Additional records
<Root>: type Unused, class Unknown (43378)
Name: <Root>
Type: Unused (unused)
Class: Unknown (0xa972)
Time to live: 19181 days, 4 hours, 20 minutes, 15 seconds
Data length: 0
No. Time Source Destination Protocol Info
3 2.804494 8.8.8.8 192.168.1.16 DNS Standard query response, Server failure
Frame 3: 169 bytes on wire (1352 bits), 169 bytes captured (1352 bits)
Arrival Time: Jul 5, 2011 15:52:18.866405000 CEST
Epoch Time: 1309873938.866405000 seconds
[Time delta from previous captured frame: 2.803276000 seconds]
[Time delta from previous displayed frame: 2.803276000 seconds]
[Time since reference or first frame: 2.804494000 seconds]
Frame Number: 3
Frame Length: 169 bytes (1352 bits)
Capture Length: 169 bytes (1352 bits)
[Frame is marked: False]
[Frame is ignored: False]
[Protocols in frame: sll:ip:udp:dns]
[Coloring Rule Name: UDP]
[Coloring Rule String: udp]
Linux cooked capture
Packet type: Unicast to us (0)
Link-layer address type: 1
Link-layer address length: 6
Source: Draytek_96:73:28 (00:50:7f:96:73:28)
Protocol: IP (0x0800)
Internet Protocol, Src: 8.8.8.8 (8.8.8.8), Dst: 192.168.1.16 (192.168.1.16)
Version: 4
Header length: 20 bytes
Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00)
0000 00.. = Differentiated Services Codepoint: Default (0x00)
.... ..0. = ECN-Capable Transport (ECT): 0
.... ...0 = ECN-CE: 0
Total Length: 153
Identification: 0x2843 (10307)
Flags: 0x00
0... .... = Reserved bit: Not set
.0.. .... = Don't fragment: Not set
..0. .... = More fragments: Not set
Fragment offset: 0
Time to live: 47
Protocol: UDP (17)
Header checksum: 0x9149 [correct]
[Good: True]
[Bad: False]
Source: 8.8.8.8 (8.8.8.8)
Destination: 192.168.1.16 (192.168.1.16)
User Datagram Protocol, Src Port: domain (53), Dst Port: 56776 (56776)
Source port: domain (53)
Destination port: 56776 (56776)
Length: 133
Checksum: 0x70a9 [validation disabled]
[Good Checksum: False]
[Bad Checksum: False]
Domain Name System (response)
[Request In: 5]
[Time: -1.197343000 seconds]
Transaction ID: 0xbac9
Flags: 0x8182 (Standard query response, Server failure)
1... .... .... .... = Response: Message is a response
.000 0... .... .... = Opcode: Standard query (0)
.... .0.. .... .... = Authoritative: Server is not an authority for domain
.... ..0. .... .... = Truncated: Message is not truncated
.... ...1 .... .... = Recursion desired: Do query recursively
.... .... 1... .... = Recursion available: Server can do recursive queries
.... .... .0.. .... = Z: reserved (0)
.... .... ..0. .... = Answer authenticated: Answer/authority portion was not authenticated by the server
.... .... ...0 .... = Non-authenticated data: Unacceptable
.... .... .... 0010 = Reply code: Server failure (2)
Questions: 1
Answer RRs: 0
Authority RRs: 0
Additional RRs: 1
Queries
<Unknown extended label>: type Unknown (40891), class Unknown (0)
Name: <Unknown extended label>
Type: Unknown (40891)
Class: Unknown (0x0000)
Additional records
<Root>: type Unused, class Unknown (43378)
Name: <Root>
Type: Unused (unused)
Class: Unknown (0xa972)
Time to live: 19181 days, 4 hours, 20 minutes, 15 seconds
Data length: 0
No. Time Source Destination Protocol Info
4 4.001800 192.168.1.16 8.8.8.8 DNS Standard query Unknown (40891) <Unknown extended label>
Frame 4: 169 bytes on wire (1352 bits), 169 bytes captured (1352 bits)
Arrival Time: Jul 5, 2011 15:52:20.063711000 CEST
Epoch Time: 1309873940.063711000 seconds
[Time delta from previous captured frame: 1.197306000 seconds]
[Time delta from previous displayed frame: 1.197306000 seconds]
[Time since reference or first frame: 4.001800000 seconds]
Frame Number: 4
Frame Length: 169 bytes (1352 bits)
Capture Length: 169 bytes (1352 bits)
[Frame is marked: False]
[Frame is ignored: False]
[Protocols in frame: sll:ip:udp:dns]
[Coloring Rule Name: UDP]
[Coloring Rule String: udp]
Linux cooked capture
Packet type: Sent by us (4)
Link-layer address type: 1
Link-layer address length: 6
Source: LiteonTe_20:55:c0 (70:f1:a1:20:55:c0)
Protocol: IP (0x0800)
Internet Protocol, Src: 192.168.1.16 (192.168.1.16), Dst: 8.8.8.8 (8.8.8.8)
Version: 4
Header length: 20 bytes
Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00)
0000 00.. = Differentiated Services Codepoint: Default (0x00)
.... ..0. = ECN-Capable Transport (ECT): 0
.... ...0 = ECN-CE: 0
Total Length: 153
Identification: 0x0000 (0)
Flags: 0x02 (Don't Fragment)
0... .... = Reserved bit: Not set
.1.. .... = Don't fragment: Set
..0. .... = More fragments: Not set
Fragment offset: 0
Time to live: 64
Protocol: UDP (17)
Header checksum: 0x688c [correct]
[Good: True]
[Bad: False]
Source: 192.168.1.16 (192.168.1.16)
Destination: 8.8.8.8 (8.8.8.8)
User Datagram Protocol, Src Port: 56776 (56776), Dst Port: domain (53)
Source port: 56776 (56776)
Destination port: domain (53)
Length: 133
Checksum: 0xe83e [validation disabled]
[Good Checksum: False]
[Bad Checksum: False]
Domain Name System (query)
Transaction ID: 0x4a9f
Flags: 0x0100 (Standard query)
0... .... .... .... = Response: Message is a query
.000 0... .... .... = Opcode: Standard query (0)
.... ..0. .... .... = Truncated: Message is not truncated
.... ...1 .... .... = Recursion desired: Do query recursively
.... .... .0.. .... = Z: reserved (0)
.... .... ...0 .... = Non-authenticated data: Unacceptable
Questions: 1
Answer RRs: 0
Authority RRs: 0
Additional RRs: 1
Queries
<Unknown extended label>: type Unknown (40891), class Unknown (0)
Name: <Unknown extended label>
Type: Unknown (40891)
Class: Unknown (0x0000)
Additional records
<Root>: type Unused, class Unknown (43378)
Name: <Root>
Type: Unused (unused)
Class: Unknown (0xa972)
Time to live: 19181 days, 4 hours, 20 minutes, 15 seconds
Data length: 0
No. Time Source Destination Protocol Info
5 4.001837 192.168.1.16 8.8.8.8 DNS Standard query Unknown (40891) <Unknown extended label>
Frame 5: 169 bytes on wire (1352 bits), 169 bytes captured (1352 bits)
Arrival Time: Jul 5, 2011 15:52:20.063748000 CEST
Epoch Time: 1309873940.063748000 seconds
[Time delta from previous captured frame: 0.000037000 seconds]
[Time delta from previous displayed frame: 0.000037000 seconds]
[Time since reference or first frame: 4.001837000 seconds]
Frame Number: 5
Frame Length: 169 bytes (1352 bits)
Capture Length: 169 bytes (1352 bits)
[Frame is marked: False]
[Frame is ignored: False]
[Protocols in frame: sll:ip:udp:dns]
[Coloring Rule Name: UDP]
[Coloring Rule String: udp]
Linux cooked capture
Packet type: Sent by us (4)
Link-layer address type: 1
Link-layer address length: 6
Source: LiteonTe_20:55:c0 (70:f1:a1:20:55:c0)
Protocol: IP (0x0800)
Internet Protocol, Src: 192.168.1.16 (192.168.1.16), Dst: 8.8.8.8 (8.8.8.8)
Version: 4
Header length: 20 bytes
Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00)
0000 00.. = Differentiated Services Codepoint: Default (0x00)
.... ..0. = ECN-Capable Transport (ECT): 0
.... ...0 = ECN-CE: 0
Total Length: 153
Identification: 0x0000 (0)
Flags: 0x02 (Don't Fragment)
0... .... = Reserved bit: Not set
.1.. .... = Don't fragment: Set
..0. .... = More fragments: Not set
Fragment offset: 0
Time to live: 64
Protocol: UDP (17)
Header checksum: 0x688c [correct]
[Good: True]
[Bad: False]
Source: 192.168.1.16 (192.168.1.16)
Destination: 8.8.8.8 (8.8.8.8)
User Datagram Protocol, Src Port: 56776 (56776), Dst Port: domain (53)
Source port: 56776 (56776)
Destination port: domain (53)
Length: 133
Checksum: 0xf11d [validation disabled]
[Good Checksum: False]
[Bad Checksum: False]
Domain Name System (query)
Transaction ID: 0xbac9
Flags: 0x0100 (Standard query)
0... .... .... .... = Response: Message is a query
.000 0... .... .... = Opcode: Standard query (0)
.... ..0. .... .... = Truncated: Message is not truncated
.... ...1 .... .... = Recursion desired: Do query recursively
.... .... .0.. .... = Z: reserved (0)
.... .... ...0 .... = Non-authenticated data: Unacceptable
Questions: 1
Answer RRs: 0
Authority RRs: 0
Additional RRs: 1
Queries
<Unknown extended label>: type Unknown (40891), class Unknown (0)
Name: <Unknown extended label>
Type: Unknown (40891)
Class: Unknown (0x0000)
Additional records
<Root>: type Unused, class Unknown (43378)
Name: <Root>
Type: Unused (unused)
Class: Unknown (0xa972)
Time to live: 19181 days, 4 hours, 20 minutes, 15 seconds
Data length: 0
More information about the udns
mailing list