Tiny conceptual nmblookup buglet.
Christopher R. Hertel
crh at ubiqx.mn.org
Fri Nov 15 07:39:01 GMT 2002
I've come across and interesting, but mostly benign, problem with
nmblookup. Here's the deal:
IIS registers some NetBIOS names when it starts up. One of these is the
Internet Group name INet~Services<1C>. This name is translated to NBT
wire format *without* up-casing the name first (which is against the
rules, and should probably be considered a bug in IIS). The result looks
like this:
EJEOGFHEHOFDGFHCHGGJGDGFHDCACABM
The thing is, nmblookup does abide by the rules, so it up-cases all names
before encoding them. The name INET~SERVICES<1C> looks like this:
EJEOEFFEHOFDEFFCFGEJEDEFFDCACABM
Match those up and you'll see they're different.
Samba is further polite in that it decodes names and does a
case-insensitive comparison when trying to match names. Windows, it
seems, does not do this. As a (reasonable) speed hack, they just compare
the wire formats.
As a result, nmblookup cannot find the INet~Services<1C> on the network.
Chris -)-----
Ps. Yes, if I have time I'll try to work out a solution.
Pps. There's another IIS/NetBIOS name bug. IIS also registers a name
built by prepending the string "IS~" to the machine name. If the
result is too long, it will overwrite the suffix byte.
--
Samba Team -- http://www.samba.org/ -)----- Christopher R. Hertel
jCIFS Team -- http://jcifs.samba.org/ -)----- ubiqx development, uninq.
ubiqx Team -- http://www.ubiqx.org/ -)----- crh at ubiqx.mn.org
OnLineBook -- http://ubiqx.org/cifs/ -)----- crh at ubiqx.org
More information about the samba-technical
mailing list