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