DNS UDP response truncated

Hi,

By default DNS requests are generally issued over UDP. And there is a problem if the DNS answer is too big because it gets truncated:


dig teaming.XXX.com
;; Truncated, retrying in TCP mode.

; <<>> DiG 9.4.2-P1 <<>> teaming.XXX.com
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 26060
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 21, ADDITIONAL: 16

;; QUESTION SECTION:
;teaming.XXX.com.		IN	A

;; ANSWER SECTION:
teaming.XXX.com.	86400	IN	A	172.16.10.89

;; AUTHORITY SECTION:

[snip]
...
[/snip]

;; ADDITIONAL SECTION:

[snip]
...
[/snip]

;; Query time: 1 msec
;; SERVER: 172.16.10.51#53(172.16.10.51)
;; WHEN: Thu Oct 23 11:12:09 2008
;; MSG SIZE  rcvd: 833

As we can see the response is too big (833, the limit is 512 bytes I think) and has been truncated. Then a new request has been issued in TCP. The problem is that when using Firefox for example, the request is not reissued, and then the DNS resolution fails…

To avoid having to reissue the request two solutions:

  1. increase the size of the UDP packets (to 1024 bytes here) using EDNS:

dig +bufsize=1024 teaming.XXX.com

; <<>> DiG 9.4.2-P1 <<>> +bufsize=1024 teaming.XXX.com
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 55603
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 21, ADDITIONAL: 17

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;teaming.XXX.com.		IN	A

;; ANSWER SECTION:
teaming.XXX.com.	86400	IN	A	172.16.10.89

;; AUTHORITY SECTION:

[snip]
...
[/snip]

;; ADDITIONAL SECTION:

[snip]
...
[/snip]

;; Query time: 1 msec
;; SERVER: 172.16.10.51#53(172.16.10.51)
;; WHEN: Thu Oct 23 11:21:55 2008
;; MSG SIZE  rcvd: 844

  1. To use TCP by default:

dig +tcp teaming.XXX.com

; <<>> DiG 9.4.2-P1 <<>> +tcp teaming.XXX.com
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 13283
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 21, ADDITIONAL: 16

;; QUESTION SECTION:
;teaming.XXX.com.		IN	A

;; ANSWER SECTION:
teaming.XXX.com.	86400	IN	A	172.16.10.89

;; AUTHORITY SECTION:

[snip]
...
[/snip]

;; ADDITIONAL SECTION:

[snip]
...
[/snip]

;; Query time: 1 msec
;; SERVER: 172.16.10.51#53(172.16.10.51)
;; WHEN: Thu Oct 23 11:24:34 2008
;; MSG SIZE  rcvd: 833

At last, the question:

How do I configure opensuse so it does either of the above solution by default when issuing DNS requests, rather than issue small UDP requests?
Or at least Firefox if you know…

And the bonus question:
Knowing IPV6 responses are even bigger, shouldn’t this be set by default?

Many thanks

Olivier

As far as I know Firefox, like nearly all other applications, doesn’t handle the DNS protocol by itself, but goes through libraries. And the libraries should take care of retrying in TCP when the answer is truncated. Are you sure that truncation is your problem here? Have you looked into other factors, like DNS proxies in the path, even those embedded in equipment like routers?

I can use host, nslookup, dig, ssh and for all of this DNS resolution works. But if I try to ping or to use firefox, no DNS resolution. If I use IP addresses, it works (so no problem with the servers I’m trying to reach).

I should also have mentioned that it’s on a local network, and even on the same subnet. So no weird router/DNS relay/other fancy things in between.


$ ping teaming
ping: unknown host teaming
$ ping 172.16.10.89
PING 172.16.10.89 (172.16.10.89) 56(84) bytes of data.
64 bytes from 172.16.10.89: icmp_seq=1 ttl=63 time=1.06 ms
^C
--- 172.16.10.89 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 1.060/1.060/1.060/0.000 ms
$ssh teaming
Password: 

I agree with the library thing, and my question was basically how to setup that library to it issues DNS requests via TCP or with a bigger UDP size (using EDNS options).

You don’t need to set up the library, it should do the switch to TCP as needed, as you would expect.

I would do a strace on ping to see what it is doing with when you ask for a problematic name. Note that you asked for a non-FQDN so it tries appending your seach domains.

OK, here come an interesting result after line 132.

With ping teaming (or ping teaming.XXX.com) I get:

ioctl(3, SIOCGIFCONF, {96, {{"lo", {AF_INET, inet_addr("127.0.0.1")}}, {"lo", {AF_INET, inet_addr("127.0.0.2")}}, {"eth0", {AF_INET, inet_addr("172.16.8.23")}}}}) = 0

With ping Google I get:

connect(3, {sa_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("172.16.10.51")}, 28) = 0

172.16.8.23 is my workstation’s IP address. 172.16.10.51 the DNS’.

Here is my resolv.conf file:

# generated by NetworkManager, do not edit!

domain XXX.com

search XXX.com

nameserver 172.16.10.51


(straces in a separate post)

execve("/bin/ping", "ping", "teaming"], /* 87 vars */]) = 0
brk(0)                                  = 0xb8110000
fcntl64(0, F_GETFD)                     = 0
fcntl64(1, F_GETFD)                     = 0
fcntl64(2, F_GETFD)                     = 0
access("/etc/suid-debug", F_OK)         = -1 ENOENT (No such file or directory)
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY)      = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=95759, ...}) = 0
mmap2(NULL, 95759, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb80bd000
close(3)                                = 0
open("/lib/libresolv.so.2", O_RDONLY)   = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\240\"\0\0004\0\0\0"..., 512) = 512
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb80bc000
fstat64(3, {st_mode=S_IFREG|0755, st_size=69304, ...}) = 0
mmap2(NULL, 76048, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb80a9000
fadvise64(3, 0, 76048, POSIX_FADV_WILLNEED) = 0
mmap2(0xb80b8000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xf) = 0xb80b8000
mmap2(0xb80ba000, 6416, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb80ba000
close(3)                                = 0
open("/lib/libc.so.6", O_RDONLY)        = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0Pg\1\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=1410320, ...}) = 0
mmap2(NULL, 1320528, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7f66000
fadvise64(3, 0, 1320528, POSIX_FADV_WILLNEED) = 0
mmap2(0xb80a3000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x13d) = 0xb80a3000
mmap2(0xb80a6000, 9808, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb80a6000
close(3)                                = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f65000
set_thread_area({entry_number:-1 -> 6, base_addr:0xb7f656c0, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}) = 0
open("/dev/urandom", O_RDONLY)          = 3
read(3, "\310\24\226`", 4)              = 4
close(3)                                = 0
mprotect(0xb80a3000, 8192, PROT_READ)   = 0
mprotect(0xb80b8000, 4096, PROT_READ)   = 0
mprotect(0xb80fb000, 4096, PROT_READ)   = 0
mprotect(0xb80f0000, 4096, PROT_READ)   = 0
munmap(0xb80bd000, 95759)               = 0
socket(PF_INET, SOCK_RAW, IPPROTO_ICMP) = -1 EPERM (Operation not permitted)
getuid32()                              = 1000
setuid32(1000)                          = 0
brk(0)                                  = 0xb8110000
brk(0xb8131000)                         = 0xb8131000
getpid()                                = 22510
open("/etc/resolv.conf", O_RDONLY)      = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=106, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb80d4000
read(3, "# generated by NetworkManager, d"..., 4096) = 106
read(3, "", 4096)                       = 0
close(3)                                = 0
munmap(0xb80d4000, 4096)                = 0
time(NULL)                              = 1224852592
stat64("/etc/resolv.conf", {st_mode=S_IFREG|0644, st_size=106, ...}) = 0
open("/etc/resolv.conf", O_RDONLY)      = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=106, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb80d4000
read(3, "# generated by NetworkManager, d"..., 4096) = 106
read(3, "", 4096)                       = 0
close(3)                                = 0
munmap(0xb80d4000, 4096)                = 0
socket(PF_FILE, SOCK_STREAM, 0)         = 3
fcntl64(3, F_SETFL, O_RDWR|O_NONBLOCK)  = 0
connect(3, {sa_family=AF_FILE, path="/var/run/nscd/socket"}, 110) = -1 ECONNREFUSED (Connection refused)
close(3)                                = 0
socket(PF_FILE, SOCK_STREAM, 0)         = 3
fcntl64(3, F_SETFL, O_RDWR|O_NONBLOCK)  = 0
connect(3, {sa_family=AF_FILE, path="/var/run/nscd/socket"}, 110) = -1 ECONNREFUSED (Connection refused)
close(3)                                = 0
open("/etc/nsswitch.conf", O_RDONLY)    = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=1224, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb80d4000
read(3, "#
# /etc/nsswitch.conf
#
# An ex"..., 4096) = 1224
read(3, "", 4096)                       = 0
close(3)                                = 0
munmap(0xb80d4000, 4096)                = 0
open("/etc/ld.so.cache", O_RDONLY)      = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=95759, ...}) = 0
mmap2(NULL, 95759, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb80bd000
close(3)                                = 0
open("/lib/libnss_files.so.2", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\360\30\0\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=39956, ...}) = 0
mmap2(NULL, 41624, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7f5a000
fadvise64(3, 0, 41624, POSIX_FADV_WILLNEED) = 0
mmap2(0xb7f63000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x8) = 0xb7f63000
close(3)                                = 0
mprotect(0xb7f63000, 4096, PROT_READ)   = 0
munmap(0xb80bd000, 95759)               = 0
open("/etc/host.conf", O_RDONLY)        = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=370, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb80d4000
read(3, "#
# /etc/host.conf - resolver co"..., 4096) = 370
read(3, "", 4096)                       = 0
close(3)                                = 0
munmap(0xb80d4000, 4096)                = 0
open("/etc/hosts", O_RDONLY|0x80000 /* O_??? */) = 3
fcntl64(3, F_GETFD)                     = 0x1 (flags FD_CLOEXEC)
fstat64(3, {st_mode=S_IFREG|0644, st_size=696, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb80d4000
read(3, "#
# hosts         This file desc"..., 4096) = 696
read(3, "", 4096)                       = 0
close(3)                                = 0
munmap(0xb80d4000, 4096)                = 0
open("/etc/ld.so.cache", O_RDONLY)      = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=95759, ...}) = 0
mmap2(NULL, 95759, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb80bd000
close(3)                                = 0
open("/lib/libnss_mdns4_minimal.so.2", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\220\10\0\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=10256, ...}) = 0
mmap2(NULL, 12392, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7f56000
fadvise64(3, 0, 12392, POSIX_FADV_WILLNEED) = 0
mmap2(0xb7f58000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1) = 0xb7f58000
close(3)                                = 0
mprotect(0xb7f58000, 4096, PROT_READ)   = 0
munmap(0xb80bd000, 95759)               = 0
open("/etc/ld.so.cache", O_RDONLY)      = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=95759, ...}) = 0
mmap2(NULL, 95759, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb80bd000
close(3)                                = 0
open("/lib/libnss_dns.so.2", O_RDONLY)  = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\320\v\0\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=18624, ...}) = 0
mmap2(NULL, 20616, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7f50000
fadvise64(3, 0, 20616, POSIX_FADV_WILLNEED) = 0
mmap2(0xb7f54000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3) = 0xb7f54000
close(3)                                = 0
mprotect(0xb7f54000, 4096, PROT_READ)   = 0
munmap(0xb80bd000, 95759)               = 0
time(NULL)                              = 1224852592
socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 3
ioctl(3, SIOCGIFCONF, {96, {{"lo", {AF_INET, inet_addr("127.0.0.1")}}, {"lo", {AF_INET, inet_addr("127.0.0.2")}}, {"eth0", {AF_INET, inet_addr("172.16.8.23")}}}}) = 0
ioctl(3, SIOCGIFFLAGS, {ifr_name="lo", ifr_flags=IFF_UP|IFF_LOOPBACK|IFF_RUNNING}) = 0
ioctl(3, SIOCGIFFLAGS, {ifr_name="lo", ifr_flags=IFF_UP|IFF_LOOPBACK|IFF_RUNNING}) = 0
ioctl(3, SIOCGIFFLAGS, {ifr_name="eth0", ifr_flags=IFF_UP|IFF_BROADCAST|IFF_RUNNING|IFF_MULTICAST}) = 0
ioctl(3, SIOCGIFINDEX, {ifr_name="eth0", ifr_index=2}) = 0
setsockopt(3, SOL_IP, IP_RECVTTL, [1], 4) = 0
setsockopt(3, SOL_IP, IP_MULTICAST_IF, "\0\0\0\0\0\0\0\0\2\0\0\0", 12) = 0
sendto(3, "d\211\1\0\0\1\0\0\0\0\0\0\7teaming\3XXX\3com\0\0"..., 33, 0, {sa_family=AF_INET, sin_port=htons(5353), sin_addr=inet_addr("224.0.0.251")}, 28) = 35
gettimeofday({1224852592, 798625}, NULL) = 0
poll({fd=3, events=POLLIN}], 1, 5000)  = 0
close(3)                                = 0
socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 3
ioctl(3, SIOCGIFCONF, {96, {{"lo", {AF_INET, inet_addr("127.0.0.1")}}, {"lo", {AF_INET, inet_addr("127.0.0.2")}}, {"eth0", {AF_INET, inet_addr("172.16.8.23")}}}}) = 0
ioctl(3, SIOCGIFFLAGS, {ifr_name="lo", ifr_flags=IFF_UP|IFF_LOOPBACK|IFF_RUNNING}) = 0
ioctl(3, SIOCGIFFLAGS, {ifr_name="lo", ifr_flags=IFF_UP|IFF_LOOPBACK|IFF_RUNNING}) = 0
ioctl(3, SIOCGIFFLAGS, {ifr_name="eth0", ifr_flags=IFF_UP|IFF_BROADCAST|IFF_RUNNING|IFF_MULTICAST}) = 0
ioctl(3, SIOCGIFINDEX, {ifr_name="eth0", ifr_index=2}) = 0
setsockopt(3, SOL_IP, IP_RECVTTL, [1], 4) = 0
setsockopt(3, SOL_IP, IP_MULTICAST_IF, "\0\0\0\0\0\0\0\0\2\0\0\0", 12) = 0
sendto(3, "d\211\1\0\0\1\0\0\0\0\0\0\7teaming\3XXX\3com\0\0"..., 33, 0, {sa_family=AF_INET, sin_port=htons(5353), sin_addr=inet_addr("224.0.0.251")}, 28) = 35
gettimeofday({1224852597, 802394}, NULL) = 0
poll({fd=3, events=POLLIN}], 1, 5000)  = 0
close(3)                                = 0
write(2, "ping: unknown host teaming
", 27ping: unknown host teaming
) = 27
exit_group(2)                           = ?

(don’t know about “write(2, “ping: icmp open socket: Operatio”…, 48ping: icmp open socket: Operation not permitted
) = 48”, probably strace’s influence, but “ping www.google.com” works.)

execve("/bin/ping", "ping", "www.google.com"], /* 87 vars */]) = 0
brk(0)                                  = 0xb809a000
fcntl64(0, F_GETFD)                     = 0
fcntl64(1, F_GETFD)                     = 0
fcntl64(2, F_GETFD)                     = 0
access("/etc/suid-debug", F_OK)         = -1 ENOENT (No such file or directory)
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY)      = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=95759, ...}) = 0
mmap2(NULL, 95759, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb8047000
close(3)                                = 0
open("/lib/libresolv.so.2", O_RDONLY)   = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\240\"\0\0004\0\0\0"..., 512) = 512
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb8046000
fstat64(3, {st_mode=S_IFREG|0755, st_size=69304, ...}) = 0
mmap2(NULL, 76048, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb8033000
fadvise64(3, 0, 76048, POSIX_FADV_WILLNEED) = 0
mmap2(0xb8042000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xf) = 0xb8042000
mmap2(0xb8044000, 6416, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb8044000
close(3)                                = 0
open("/lib/libc.so.6", O_RDONLY)        = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0Pg\1\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=1410320, ...}) = 0
mmap2(NULL, 1320528, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7ef0000
fadvise64(3, 0, 1320528, POSIX_FADV_WILLNEED) = 0
mmap2(0xb802d000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x13d) = 0xb802d000
mmap2(0xb8030000, 9808, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb8030000
close(3)                                = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7eef000
set_thread_area({entry_number:-1 -> 6, base_addr:0xb7eef6c0, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}) = 0
open("/dev/urandom", O_RDONLY)          = 3
read(3, "\250\262\354s", 4)             = 4
close(3)                                = 0
mprotect(0xb802d000, 8192, PROT_READ)   = 0
mprotect(0xb8042000, 4096, PROT_READ)   = 0
mprotect(0xb8085000, 4096, PROT_READ)   = 0
mprotect(0xb807a000, 4096, PROT_READ)   = 0
munmap(0xb8047000, 95759)               = 0
socket(PF_INET, SOCK_RAW, IPPROTO_ICMP) = -1 EPERM (Operation not permitted)
getuid32()                              = 1000
setuid32(1000)                          = 0
brk(0)                                  = 0xb809a000
brk(0xb80bb000)                         = 0xb80bb000
getpid()                                = 22515
open("/etc/resolv.conf", O_RDONLY)      = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=106, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb805e000
read(3, "# generated by NetworkManager, d"..., 4096) = 106
read(3, "", 4096)                       = 0
close(3)                                = 0
munmap(0xb805e000, 4096)                = 0
time(NULL)                              = 1224852613
stat64("/etc/resolv.conf", {st_mode=S_IFREG|0644, st_size=106, ...}) = 0
open("/etc/resolv.conf", O_RDONLY)      = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=106, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb805e000
read(3, "# generated by NetworkManager, d"..., 4096) = 106
read(3, "", 4096)                       = 0
close(3)                                = 0
munmap(0xb805e000, 4096)                = 0
socket(PF_FILE, SOCK_STREAM, 0)         = 3
fcntl64(3, F_SETFL, O_RDWR|O_NONBLOCK)  = 0
connect(3, {sa_family=AF_FILE, path="/var/run/nscd/socket"}, 110) = -1 ECONNREFUSED (Connection refused)
close(3)                                = 0
socket(PF_FILE, SOCK_STREAM, 0)         = 3
fcntl64(3, F_SETFL, O_RDWR|O_NONBLOCK)  = 0
connect(3, {sa_family=AF_FILE, path="/var/run/nscd/socket"}, 110) = -1 ECONNREFUSED (Connection refused)
close(3)                                = 0
open("/etc/nsswitch.conf", O_RDONLY)    = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=1224, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb805e000
read(3, "#
# /etc/nsswitch.conf
#
# An ex"..., 4096) = 1224
read(3, "", 4096)                       = 0
close(3)                                = 0
munmap(0xb805e000, 4096)                = 0
open("/etc/ld.so.cache", O_RDONLY)      = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=95759, ...}) = 0
mmap2(NULL, 95759, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb8047000
close(3)                                = 0
open("/lib/libnss_files.so.2", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\360\30\0\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=39956, ...}) = 0
mmap2(NULL, 41624, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7ee4000
fadvise64(3, 0, 41624, POSIX_FADV_WILLNEED) = 0
mmap2(0xb7eed000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x8) = 0xb7eed000
close(3)                                = 0
mprotect(0xb7eed000, 4096, PROT_READ)   = 0
munmap(0xb8047000, 95759)               = 0
open("/etc/host.conf", O_RDONLY)        = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=370, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb805e000
read(3, "#
# /etc/host.conf - resolver co"..., 4096) = 370
read(3, "", 4096)                       = 0
close(3)                                = 0
munmap(0xb805e000, 4096)                = 0
open("/etc/hosts", O_RDONLY|0x80000 /* O_??? */) = 3
fcntl64(3, F_GETFD)                     = 0x1 (flags FD_CLOEXEC)
fstat64(3, {st_mode=S_IFREG|0644, st_size=696, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb805e000
read(3, "#
# hosts         This file desc"..., 4096) = 696
read(3, "", 4096)                       = 0
close(3)                                = 0
munmap(0xb805e000, 4096)                = 0
open("/etc/ld.so.cache", O_RDONLY)      = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=95759, ...}) = 0
mmap2(NULL, 95759, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb8047000
close(3)                                = 0
open("/lib/libnss_mdns4_minimal.so.2", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\220\10\0\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=10256, ...}) = 0
mmap2(NULL, 12392, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7ee0000
fadvise64(3, 0, 12392, POSIX_FADV_WILLNEED) = 0
mmap2(0xb7ee2000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1) = 0xb7ee2000
close(3)                                = 0
mprotect(0xb7ee2000, 4096, PROT_READ)   = 0
munmap(0xb8047000, 95759)               = 0
open("/etc/ld.so.cache", O_RDONLY)      = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=95759, ...}) = 0
mmap2(NULL, 95759, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb8047000
close(3)                                = 0
open("/lib/libnss_dns.so.2", O_RDONLY)  = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\320\v\0\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=18624, ...}) = 0
mmap2(NULL, 20616, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7eda000
fadvise64(3, 0, 20616, POSIX_FADV_WILLNEED) = 0
mmap2(0xb7ede000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3) = 0xb7ede000
close(3)                                = 0
mprotect(0xb7ede000, 4096, PROT_READ)   = 0
munmap(0xb8047000, 95759)               = 0
time(NULL)                              = 1224852613
socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 3
connect(3, {sa_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("172.16.10.51")}, 28) = 0
fcntl64(3, F_GETFL)                     = 0x2 (flags O_RDWR)
fcntl64(3, F_SETFL, O_RDWR|O_NONBLOCK)  = 0
gettimeofday({1224852613, 374347}, NULL) = 0
poll({fd=3, events=POLLOUT, revents=POLLOUT}], 1, 0) = 1
send(3, "p=\1\0\0\1\0\0\0\0\0\0\3www\6google\3com\0\0\1\0\1", 32, MSG_NOSIGNAL) = 32
poll({fd=3, events=POLLIN, revents=POLLIN}], 1, 5000) = 1
ioctl(3, FIONREAD, [228])               = 0
recvfrom(3, "p=\201\200\0\1\0\5\0\7\0\0\3www\6google\3com\0\0\1\0\1"..., 1024, 0, {sa_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("172.16.10.51")}, [16]) = 228
close(3)                                = 0
socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 3
connect(3, {sa_family=AF_INET, sin_port=htons(1025), sin_addr=inet_addr("64.233.169.104")}, 16) = 0
getsockname(3, {sa_family=AF_INET, sin_port=htons(54013), sin_addr=inet_addr("172.16.8.23")}, [16]) = 0
close(3)                                = 0
dup(2)                                  = 3
fcntl64(3, F_GETFL)                     = 0x8001 (flags O_WRONLY|O_LARGEFILE)
close(3)                                = 0
write(2, "ping: icmp open socket: Operatio"..., 48ping: icmp open socket: Operation not permitted
) = 48
exit_group(2)                           = ?

I’ve seen some threads in this forum about how mDNS interferes with name resolution and how to turn it off. Apparently it affects names with .local in it. I’ve not had this problem (I don’t have that problematic suffix), but you might want to search for those threads and try the directive that turns mDNS off.

Ok, I found it: man host.conf and from this I found the directive needed:

mdns off

Wow, well done!

echo mdns off >> host.conf did it!

(it was a .local domain)

Thanks!