Bryan K. Wright
2006-Jun-12 20:28 UTC
[Samba] nmblookup receives response, but doesn't show it
Hi folks, I find that nmblookup seems to be receiving responses to name queries, but ignoring them. Here's what's happening: # nmblookup somehost querying somehost on x.y.255.255 name_query failed to find name somehost But watching the transaction with ethereal on the local host, I see that: 1. nmblookup on local udp port nnnn (some random number above 1024) sends an nbns packet to udp port 137 on the broadcast address 2. "somehost" immediately responds with an appropriate packet from port 137 on somehost, directed at port nnnn on the local host. This packet contains the correct IP address of somehost. Nonetheless, nmblookup acts as though it never received anything, and retries the request two more times before giving up. (Each of the additional tries also results in a correct response from somehost.) iptables isn't the culprit, since I'm allowing anything with a dport or sport of udp 137. (Also, I wouldn't even be seeing these packets with ethereal if they were blocked.) What's going on here? It looks like nmblookup is just choosing to ignore the responses. FWIW: samba-3.0.20, Linux 2.6.12 Thanks in advance for any suggestions. Bryan -- =======================================================================Bryan Wright |"If you take cranberries and stew them like Physics Department | applesauce, they taste much more like prunes University of Virginia | than rhubarb does." -- Groucho Charlottesville, VA 22901| (434) 924-7218 | bryan@virginia.edu ========================================================================
Jeremy Allison
2006-Jun-12 20:36 UTC
[Samba] nmblookup receives response, but doesn't show it
On Mon, Jun 12, 2006 at 08:27:52PM +0000, Bryan K. Wright wrote:> Hi folks, > > I find that nmblookup seems to be receiving > responses to name queries, but ignoring them. Here's what's > happening: > > # nmblookup somehost > querying somehost on x.y.255.255 > name_query failed to find name somehost > > But watching the transaction with ethereal on the local > host, I see that: > > 1. nmblookup on local udp port nnnn (some random number above 1024) > sends an nbns packet to udp port 137 on the broadcast address > 2. "somehost" immediately responds with an appropriate packet > from port 137 on somehost, directed at port nnnn on the local host. > This packet contains the correct IP address of somehost. > > Nonetheless, nmblookup acts as though it never received anything, > and retries the request two more times before giving up. (Each of > the additional tries also results in a correct response from > somehost.) > > iptables isn't the culprit, since I'm allowing anything > with a dport or sport of udp 137. (Also, I wouldn't even > be seeing these packets with ethereal if they were blocked.) > > What's going on here? It looks like nmblookup is > just choosing to ignore the responses.You can always check by running under gdb and seeing if it wakes up on the response. Jeremy