busybox Digest, Vol 106, Issue 34

muddyboot emufly at gmail.com
Wed May 28 01:59:43 UTC 2014


Thanks for reply.

Follow your guide,I recompile busybox with only nslookup applet

## busybox .config
CONFIG_HAVE_DOT_CONFIG=y
CONFIG_DESKTOP=y
CONFIG_INCLUDE_SUSv2=y
CONFIG_PLATFORM_LINUX=y
CONFIG_FEATURE_BUFFERS_USE_MALLOC=y
CONFIG_SHOW_USAGE=y
CONFIG_FEATURE_VERBOSE_USAGE=y
CONFIG_FEATURE_COMPRESS_USAGE=y
CONFIG_FEATURE_INSTALLER=y
CONFIG_UNICODE_SUPPORT=y
CONFIG_SUBST_WCHAR=63
CONFIG_LAST_SUPPORTED_WCHAR=767
CONFIG_LONG_OPTS=y
CONFIG_FEATURE_DEVPTS=y
CONFIG_FEATURE_UTMP=y
CONFIG_FEATURE_WTMP=y
CONFIG_FEATURE_PIDFILE=y
CONFIG_PID_FILE_PATH="/var/run"
CONFIG_FEATURE_SUID=y
CONFIG_FEATURE_SUID_CONFIG=y
CONFIG_FEATURE_SUID_CONFIG_QUIET=y
CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe"
CONFIG_LFS=y
CONFIG_CROSS_COMPILER_PREFIX=""
CONFIG_SYSROOT=""
CONFIG_EXTRA_CFLAGS=""
CONFIG_EXTRA_LDFLAGS=""
CONFIG_EXTRA_LDLIBS=""
CONFIG_NO_DEBUG_LIB=y
CONFIG_INSTALL_APPLET_SYMLINKS=y
CONFIG_PREFIX="./_install"
CONFIG_FEATURE_SYSTEMD=y
CONFIG_FEATURE_RTMINMAX=y
CONFIG_PASSWORD_MINLEN=6
CONFIG_MD5_SMALL=1
CONFIG_SHA3_SMALL=1
CONFIG_FEATURE_FAST_TOP=y
CONFIG_FEATURE_EDITING=y
CONFIG_FEATURE_EDITING_MAX_LEN=1024
CONFIG_FEATURE_EDITING_HISTORY=255
CONFIG_FEATURE_EDITING_SAVEHISTORY=y
CONFIG_FEATURE_REVERSE_SEARCH=y
CONFIG_FEATURE_TAB_COMPLETION=y
CONFIG_FEATURE_EDITING_FANCY_PROMPT=y
CONFIG_FEATURE_NON_POSIX_CP=y
CONFIG_FEATURE_COPYBUF_KB=4
CONFIG_FEATURE_SKIP_ROOTFS=y
CONFIG_IOCTL_HEX2STR_ERROR=y
CONFIG_FEATURE_HWIB=y
CONFIG_GZIP_FAST=0
CONFIG_DEFAULT_SETFONT_DIR=""
CONFIG_FEATURE_VI_MAX_LEN=0
CONFIG_TELINIT_PATH=""
CONFIG_FEATURE_KILL_DELAY=0
CONFIG_INIT_TERMINAL_TYPE=""
CONFIG_FIRST_SYSTEM_ID=0
CONFIG_LAST_SYSTEM_ID=0
CONFIG_FEATURE_DEFAULT_PASSWD_ALGO=""
CONFIG_DEFAULT_MODULES_DIR=""
CONFIG_DEFAULT_DEPMOD_FILE=""
CONFIG_FEATURE_LESS_MAXLINES=0
CONFIG_FEATURE_BEEP_FREQ=0
CONFIG_FEATURE_BEEP_LENGTH_MS=0
CONFIG_FEATURE_CROND_DIR=""
CONFIG_IFUPDOWN_IFSTATE_PATH=""
CONFIG_NSLOOKUP=y
CONFIG_DHCPD_LEASES_FILE=""
CONFIG_UDHCP_DEBUG=0
CONFIG_UDHCPC_DEFAULT_SCRIPT=""
CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=0
CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS=""
CONFIG_FEATURE_MIME_CHARSET=""
CONFIG_SV_DEFAULT_SERVICE_DIR=""
CONFIG_FEATURE_SH_IS_NONE=y
CONFIG_FEATURE_BASH_IS_NONE=y
CONFIG_FEATURE_SYSLOGD_READ_BUFFER_SIZE=0
CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=0

then I run nslookup again, resolve still slow sometimes。

 I run tcupdump & wireshark to capture the dns packet, found nslookup *always* send IPV6 dns query request, but no IPV6 enabled in busybox. 

No. Time        Source                Destination          Protocol Length Info
 1 0.000000    192.168.1.64          202.103.24.68         DNS      86     Standard query 0xf27e  PTR 68.24.103.202.in-addr.arpa
 2 0.225195    202.103.24.68         192.168.1.64          DNS      170    Standard query response 0xf27e  PTR ns.wuhan.net.cn
 3 0.226985    192.168.1.64          202.103.24.68         DNS      73     Standard query 0x6d5b  A www.baidu.com
 4 0.227112    192.168.1.64          202.103.24.68         DNS      73     Standard query 0x2251  AAAA www.baidu.com
 5 0.463083    202.103.24.68         192.168.1.64          DNS      302    Standard query response 0x6d5b  CNAME www.a.shifen.com A 115.239.211.110 A 115.239.210.27
 6 5.232072    192.168.1.64          202.103.24.68         DNS      73     Standard query 0x6d5b  A www.baidu.com
 
in the above packet, nslookup start 2 query request:

ipv4 query id: 0x6d5b  (Ptk No 3)
ipv6 query id: 0x2251 (Ptk No 4)

DNS server give response for ipv4 query 0x6d5b in 236 ms (Pkt No 5), but seems that nslookup did not return the result, it still wait until timeout.

As compared to busybox nslookup, I tested nslookup from bind-9.7 in the same way, found that bind-nslookup did not send IPV6 dns query request, tcpdump packet as follows:

No.Time   Source                Destination           Protocol Length Info
 1 0.000000    192.168.1.64     202.103.24.68         DNS      73     Standard query 0xe2e3  A www.baidu.comNo.     Time       
 2 0.002403    202.103.24.68    192.168.1.64          DNS      302    Standard query response 0xe2e3  CNAME www.a.shifen.com A 115.239.211.110 A 115.239.210.27



Now maybe I can come to a conclusion it is the IPV6 query request caused nslookup very slowly, but why No IPV6 enabled in both kernel & busybox, How it send out ipv6 request ?

Then I strace nslookup by command: 

# strace -o log -t -r -T busybox nslookup www.baidu.com
   0.000028 open("/lib/libc.so.6", O_RDONLY) = 3 <0.000008>
   …
   0.000026 open("/etc/resolv.conf", O_RDONLY) = 3 <0.000008>
   0.000061 open("/etc/nsswitch.conf", O_RDONLY) = 3 <0.000023>
   0.000024 open("/lib/libnss_files.so.2", O_RDONLY) = 3 <0.000012>
   0.000022 open("/lib/libnss_dns.so.2", O_RDONLY) = 3 <0.000006>
   ...
   0.000025 open("/lib/libresolv.so.2", O_RDONLY) = 3 <0.000015>
   ...
   0.000071 open("/etc/gai.conf", O_RDONLY) = 3 <0.000028>

# cat /etc/gai.conf 
precedence ::ffff:0:0/96 100

# strace -o log -t -r -T bind9-nslookup www.baidu.com
sendmsg(20, {msg_name(16)={sa_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("202.103.24.68")}, ms
g_iov(1)=[{"a\331\1\0\0\1\0\0\0\0\0\0\3www\5baidu\3com\0\0\1\0\1", 31}], msg_controllen=0, msg_flags=0}, 0) = 31 <0.0001
23>
     0.000172 epoll_wait(3, {}, 64, 0)  = 0 <0.000005>
     0.000023 epoll_wait(3, {{EPOLLIN, {u32=20, u64=9099892551728496660}}}, 64, 1000) = 1 <0.006412>
     0.006662 epoll_ctl(3, EPOLL_CTL_DEL, 20, {EPOLLIN, {u32=20, u64=9100086065774985236}}) = 0 <0.000142>
     0.000316 recvmsg(20, {msg_name(16)={sa_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("202.103.24.68")}, ms
g_iov(1)=[{"a\331\201\200\0\1\0\3\0\5\0\5\3www\5baidu\3com\0\0\1\0\1\300"..., 65535}], msg_controllen=32, {cmsg_len=32,
cmsg_level=SOL_SOCKET, cmsg_type=0x1d /* SCM_??? */, ...}, msg_flags=0}, 0) = 260 <0.000135>
     0.000375 fstat(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(3, 1), ...}) = 0 <0.000124>
there is no libnss library call .

Thanks very much for your help !

在 2014年5月27日,下午8:00,busybox-request at busybox.net 写道:

> Send busybox mailing list submissions to
> 	busybox at busybox.net
> 
> To subscribe or unsubscribe via the World Wide Web, visit
> 	http://lists.busybox.net/mailman/listinfo/busybox
> or, via email, send a message with subject or body 'help' to
> 	busybox-request at busybox.net
> 
> You can reach the person managing the list at
> 	busybox-owner at busybox.net
> 
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of busybox digest..."
> 
> 
> Today's Topics:
> 
>   1. busybox nslookup slow on x86_64 (muddyboot)
>   2. Re: busybox nslookup slow on x86_64 (walter harms)
> 
> 
> ----------------------------------------------------------------------
> 
> Message: 1
> Date: Tue, 27 May 2014 15:34:04 +0800
> From: muddyboot <emufly at gmail.com>
> To: busybox at busybox.net
> Subject: busybox nslookup slow on x86_64
> Message-ID: <A92D0A2A-6F3F-49A0-8E3C-7E4351445F5F at gmail.com>
> Content-Type: text/plain; charset=GB2312
> 
> Hi, I found nslookup resolve very slow on x86_64 system , it cost 5 seconds or longer almost everytime.
> 
> Tested OS: Debian 7 x86_64 with kernel 3.2.5 &  LFS x86_64 with kernel 3.12
> 
> No IPv6 enabled in kernel config.
> DNS server works fine
> nslookup program from bind-9.7 works fine
> nslookup from busybox test on i686 system OK
> 
> target busybox version: 1.17.4?1.20.2?1.21.1?1.22.1
> 
> Any response for this problem is great appreciated. 
> 
> ------------------------------
> 
> Message: 2
> Date: Tue, 27 May 2014 09:40:57 +0200
> From: walter harms <wharms at bfs.de>
> To: busybox at busybox.net
> Subject: Re: busybox nslookup slow on x86_64
> Message-ID: <53844189.1060702 at bfs.de>
> Content-Type: text/plain; charset=GB2312
> 
> hello muddy,
> 
> I can not replicate that.
> test: x86_64
> busybox: 1.22.1
> 
> did you try an allnoconfig verson with only nslookup enabled ? (and things you may need).
> 
> re,
> wh
> 
> Am 27.05.2014 09:34, schrieb muddyboot:
>> Hi, I found nslookup resolve very slow on x86_64 system , it cost 5 seconds or longer almost everytime.
>> 
>> Tested OS: Debian 7 x86_64 with kernel 3.2.5 &  LFS x86_64 with kernel 3.12
>> 
>> No IPv6 enabled in kernel config.
>> DNS server works fine
>> nslookup program from bind-9.7 works fine
>> nslookup from busybox test on i686 system OK
>> 
>> target busybox version: 1.17.4?1.20.2?1.21.1?1.22.1
>> 
>> Any response for this problem is great appreciated. 
>> _______________________________________________
>> busybox mailing list
>> busybox at busybox.net
>> http://lists.busybox.net/mailman/listinfo/busybox
> 
> 
> ------------------------------
> 
> _______________________________________________
> busybox mailing list
> busybox at busybox.net
> http://lists.busybox.net/mailman/listinfo/busybox
> 
> End of busybox Digest, Vol 106, Issue 34
> ****************************************

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/busybox/attachments/20140528/b4b43a5b/attachment-0001.html>


More information about the busybox mailing list