Got recursion not available from message with nslookup

marckburgers wrote:

> See debug:
>
> make_server(192.168.99.26)
> make_server(192.168.99.126)
> trying origin xx.yy.local
> recursive query

Client requests for recursion…

> working on lookup 0xb8037688, query 0xb79291a8
> sending a request
> ;; Got recursion not available from 192.168.99.26, trying next server

And server 192.168.99.26 responses “not available”

> still have a worker

So client tries another server…

> Server: 192.168.99.126
> Address: 192.168.99.126#53
>
> printsection()
> Name: hostx
> Address: 192.168.99.41

And gets a response

Thats all :slight_smile:

Why recursion is not available on that server or why responses in that way?
That is something you need to investigate in first place. By reviewing dns
server log, you will get further info.

Greetings,


Camaleón

It seems OpenSuse 11.1 has changed the DNS client 10.2 did not have this warnings…

marckburgers wrote:

> It seems OpenSuse 11.1 has changed the DNS client 10.2 did not have this
> warnings…

Can you please, elaborate that? :slight_smile:

What kind of tests are you running?

Please, post here the /etc/resolv.conf of both clients (opensuse 10.2 and
11.1) and the response you are getting after running “nslookup” command in
both machines.

Greetings,


Camaleón

cat /etc/SuSE-release
openSUSE 10.2 (i586)
VERSION = 10.2
nslookup hostx
Server: 192.168.99.26
Address: 192.168.99.26#53

Name: hostx.yy.zz.local
Address: 192.168.51.41

/etc/resolv.conf:

nameserver 192.168.99.26
nameserver 192.168.99.126
search yy.zz.local

nslookup hostx

setup_system()
create_search_list()
ndots is 1.
copy_server_list()
make_server(192.168.99.26)
make_server(192.168.99.126)
lock_lookup dighost.c:3119
success
start_lookup()
setup_lookup(0x80019408)
resetting lookup counter.
cloning server list
clone_server_list()
make_server(192.168.99.26)
make_server(192.168.99.126)
trying origin yy.zz.local
recursive query
add_question()
starting to render the message
done rendering
create query 0x8003d250 linked to lookup 0x80019408
create query 0x8003d368 linked to lookup 0x80019408
do_lookup()
send_udp(0x8003d250)
bringup_timer()
have local timeout of 1
working on lookup 0x80019408, query 0x8003d250
sockcount=1
recving with lookup=0x80019408, query=0x8003d250, sock=0x8005e4f8
recvcount=1
sending a request
unlock_lookup dighost.c:3121
lock_lookup dighost.c:1957
success
send_done()
sendcount=0
check_if_done()
list empty
unlock_lookup dighost.c:1966
recv_done()
lock_lookup dighost.c:2633
success
recvcount=0
lookup=0x80019408, query=0x8003d250
before parse starts
after parse
printmessage()
printsection()
still pending.
cancel_lookup()
check_if_done()
list empty
unlock_lookup dighost.c:1966
recv_done()
lock_lookup dighost.c:2633
success
recvcount=0
lookup=0x80019408, query=0x8003d250
before parse starts
after parse
printmessage()
printsection()
still pending.
cancel_lookup()
check_if_done()
list empty
clear_query(0x8003d368)
clear_query(0x8003d250)
sockcount=0
check_next_lookup(0x80019408)
try_clear_lookup(0x80019408)
cleared
freeing server 0x8001c190 belonging to 0x80019408
freeing server 0x8001c9a8 belonging to 0x80019408
start_lookup()
check_if_done()
list empty
shutting down
dighost_shutdown()
done, and starting to shut down
cancel_all()
lock_lookup dighost.c:3135
unlock_lookup dighost.c:3073
success
unlock_lookup dighost.c:3165
destroy_libs()
freeing task
freeing taskmgr
lock_lookup dighost.c:3192
success
flush_server_list()
freeing commctx
freeing socketmgr
freeing timermgr
destroy DST lib
detach from entropy
unlock_lookup dighost.c:3336
Server: 192.168.99.26
Address: 192.168.99.26#53

Name: hostx.yy.zz.local
Address: 192.168.51.41

cat /etc/SuSE-release
openSUSE 11.1 (i586)
VERSION = 11.1

/etc/resolv.conf:

nameserver 192.168.99.26
nameserver 192.168.99.126
search yy.zz.local

nslookup hostx
;; Got recursion not available from 192.168.99.26, trying next server
Server: 192.168.99.126
Address: 192.168.99.126#53

Name: hostx.yy.zz.local
Address: 192.168.51.41

nslookup hostx -d2

setup_system()
create_search_list()
ndots is 1.
copy_server_list()
make_server(192.168.99.26)
make_server(192.168.99.126)
lock_lookup dighost.c:3276
success
start_lookup()
setup_lookup(0xb7f7e688)
resetting lookup counter.
cloning server list
clone_server_list()
make_server(192.168.99.26)
make_server(192.168.99.126)
trying origin yy.zz.local
recursive query
add_question()
starting to render the message
done rendering
create query 0xb7870010 linked to lookup 0xb7f7e688
create query 0xb78701a8 linked to lookup 0xb7f7e688
do_lookup()
send_udp(0xb7870010)
bringup_timer()
have local timeout of 1
working on lookup 0xb7f7e688, query 0xb7870010
sockcount=1
recving with lookup=0xb7f7e688, query=0xb7870010, sock=0xb7872008
recvcount=1
sending a request
unlock_lookup dighost.c:3278
lock_lookup dighost.c:2102
success
send_done()
sendcount=0
check_if_done()
list empty
unlock_lookup dighost.c:2131
recv_done()
lock_lookup dighost.c:2789
success
recvcount=0
lookup=0xb7f7e688, query=0xb7870010
before parse starts
sending query 0xb78701a8

send_udp(0xb78701a8)
bringup_timer()
have local timeout of 5
working on lookup 0xb7f7e688, query 0xb78701a8
sockcount=2
recving with lookup=0xb7f7e688, query=0xb78701a8, sock=0xb7872168
recvcount=1
sending a request
;; Got recursion not available from 192.168.99.26, trying next server
clear_query(0xb7870010)
sockcount=1
check_next_lookup(0xb7f7e688)
still have a worker
unlock_lookup dighost.c:3022
lock_lookup dighost.c:2102
success
send_done()
sendcount=0
check_if_done()
list empty
unlock_lookup dighost.c:2131
recv_done()
lock_lookup dighost.c:2789
success
recvcount=0
lookup=0xb7f7e688, query=0xb78701a8
before parse starts
after parse
printmessage()
Server: 192.168.99.126
Address: 192.168.99.126#53

printsection()
Name: hostx.yy.zz.local
Address: 192.168.51.41
still pending.
cancel_lookup()
check_if_done()
list empty
clear_query(0xb78701a8)
sockcount=0
check_next_lookup(0xb7f7e688)
try_clear_lookup(0xb7f7e688)
destroy
freeing server 0xb7f80a00 belonging to 0xb7f7e688
freeing server 0xb7f81218 belonging to 0xb7f7e688
start_lookup()
check_if_done()
list empty
shutting down
dighost_shutdown()

done, and starting to shut down
cancel_all()
lock_lookup dighost.c:3292
unlock_lookup dighost.c:3230
success
unlock_lookup dighost.c:3322
destroy_libs()
freeing task
freeing taskmgr
lock_lookup dighost.c:3352
success
flush_server_list()
freeing commctx
freeing socketmgr
freeing timermgr
destroy DST lib
detach from entropy
unlock_lookup dighost.c:3405

marckburgers wrote:

> openSUSE 10.2 (i586)
>
> nslookup hostx
>
> recursive query
>
> Server: 192.168.99.26
> Address: 192.168.99.26#53
>
> Name: hostx.yy.zz.local
> Address: 192.168.51.41

> openSUSE 11.1 (i586)
>
> nslookup hostx
>
> recursive query
>
> ;; Got recursion not available from 192.168.99.26, trying next server

This is indeed quite odd.

Both clients are requesting for “recursive queries”, there is no
difference on this: clients are acting the same way.

So the only way to debug this is by reviewing dns server log for you to see
why is rejecting one host but serving the other.

On client-side there is no much you can do.

Greetings,


Camaleón